文 | 太阳雪
python
来源:Python 技术「ID: pythonall」数据库
程序是什么?app
简单说,程序是处理数据的计算机代码ide
几乎全部的程序均可以分为三部分工具
输入--> 处理 --> 输出学习
程序能够理解成一个加工处理数据的过程,或者工具spa
那么被加工的数据又是什么呢?设计
数据有多种形式,如文本、图像、音频、视频等等3d
不管数据形式如何,都表明的是某种信息code
大部分信息,能够通过数字化处理,变为计算机里的数据
那么信息又是什么呢?
信息就是对某个事物、事情、现象的一种描述
既然是描述,就意味着,其中包含了一些概念
概念是咱们思考、认识、交流的重要的元素
若是理解了信息是由一些概念组成的,那么就能理解:
程序处理的其实是 概念
再进一步,就能理解:
计算机是人类大脑的延伸
咱们思考、认识、交流都是基于某些概念的,并且教育的主要就是关于抽象概念的
概念表示某种具体或者抽象的事物
任何一个事物,都具备某种特性或者属性
好比一我的,具备性别、年龄、肤色、国籍等一系列属性
再好比一个课程,具备名称、级别、课时、授课老师等一系列属性
再好比一张图片,具备大小、尺寸、名称、存放位置等一系列属性
看到了吗,对这些概念的进一步分析,获取到其中的各类属性,就能获得这个概念在程序里的表示形式
一个概念在程序里的表现形式就是实体
实体,就就是创建现实世界和计算机世界之间的联系的
现实世界里,各个东西都是概念,计算机世界里各类东西都是实体
概念和实体之间是能够相互表示的
前面咱们知道了,程序处理的就是概念,那么将概念表示为实体,就能够编写为程序了
概念之间是有联系的,一样,实体之间也是有联系的
相对概念之间的联系,实体之间的联系更为简单
只有一对一
,一对多
,和多对多
的联系
是否是感受有点熟悉了,这不就是数据库表之间的联系吗?
没错,数据库表其实是用来存放概念的,好比存放人员信息,课程信息,图片信息
即它实际上存放的就是实体
平常大多数程序,并不须要和数据库打交道
但并不意味着不和实体大交道
数据库只是存放实体的一种形式,而且实现了实体之间的一对一
和一对多
的关系
一对一,意味着,两个实体之间是一一对应的,好比每一个人只有一个身份证(正常状况下),
一对多,意味着,两种实体之间具备包含的关系,好比一个家庭,由多个我的组成,或者一个学生能够同时选择多们课程
这种关联关系,在程序中会被处理成顺序处理,和循环处理
程序设计,须要像建筑图纸同样表示出来
对于实体,应该如何表示呢
经过参考各类资料,特别是学习了 《系统分析与设计方法》,并结合工做实践,我总结了一套表示实体的方法
在不一样的设计阶段,须要用到不一样的表示方式
通常分为 概要实体
和 详细实体
区别在于,概要实体不用关注实体的熟悉,而详细实体,须要关注实体的属性
今天咱们只讨论概要实体
概要实体用一个方框表示:
方框里面写实体的名称
实体之间的关系,用连接它们的线条表示
线条两端,须要特别注意,靠近外面的表示一或者多
一
是一个小短线,多
是三分叉
靠近里面的小圈,表示 0
便可以不存在,小短线表示 1
即表示必须存在
例如第一条线左端,读做:有且有一个,右端读做:有且有一个或者多个
第二条线左端,读做:没有或仅有一个,右端读做:没有或者能够有多个
第三第四咋读,你能够试试吧,欢迎留言讨论
下面咱们看一个实际的例子
这幅图,描绘了一个学校系统的基本结构,经过图示,咱们就能轻松的读取它所传递的信息
好比学校必须有一个或者多个班级,班级必须属于一个学校,
一个班级里能够没有学生或者有多个学生
一个学生能够不选或者选择多个课程
一个课程可能没有学生选择或者有多个学生选择
……
若是进一步展开,这些关系里实际上包含着业务规则,好比一个班级没有任何学生的状态多是在开学前,还没学生报名的时间点
以及 不能存在一个没有班级的学校 等等
而不一样的业务场景下,规则是不同的,全部实体图,体现当前的业务场景,并不存在适应全部场景的实体图
这就是实体关系图,经过它不只能够方便地记业务信息,并且还能够方便地交流
今天咱们梳理了程序设计中的实体部分,从程序处理的是什么开始,一直引导到程序处理的是概念这个观点,概念不只是咱们认识世界的工具,也是咱们作程序设计的基础,抓住了实体,就像抓住了程序的纲。
比心!
下次,会讨论一下程序设计的另外一个神器:数据流