ER图 关系模型

嗯,数据库设计啊...挺复杂的。

就说那个商业集团吧,2 02 2 年搞的那个数据库。
他们搞了好多实体集,就是“商店”、“商品”、“职工”这几个。

“商店”嘛,它有啥属性?商店编号,这个肯定有,唯一的。
商店名,不能叫啥都一样。
还有地址,在哪个城市,哪个区,具体在哪条街。

“商品”这边,商品号,不能乱。
商品名,你卖啥得知道。
规格,这很重要,比如大小、颜色、型号这些。
还有单价,2 02 2 年那个价格,得记下来。

“职工”呢,职工编号,也是唯一的。
姓名,张三李四。
性别,男或者女。
还有业绩,这个挺重要的,得记下来,每个月或者每年多少量。

然后呢,这些实体集之间有联系。

“商店”和“商品”之间有“销售”这个联系。
一个商店能卖好多商品,对吧?比如北京那个店,可能卖手机、卖电脑、卖衣服。
反过来也一样,一个手机可能北京店卖,上海店也卖。
这种关系在ER图里,就是双向的线,画个箭头表示多对多。

“商店”和“职工”之间有“聘用”联系。
一个商店能聘好多职工,比如1 0个人。
但是一个职工呢,只能在一个商店工作。
比如2 02 2 年,王五可能在那个北京店工作,不能在北京店和上海店同时工作。
这种关系在ER图里,就是单向的线,从职工指向商店,表示一对多。

搞清楚了这些实体和联系,然后把它转成关系模式。

“商品”这个关系模式,就是商品号、商品名、规格、单价。
商品号是主键。

“商店”这个关系模式,就是商店编号、商店名、地址。
商店编号是主键。

“销售”这个关系模式,就复杂点了。
它得有商店编号、商品号,这两个是外键,分别指向商店和商品的主键。
还得有月销售量,多少量,这个也得记下来。
比如2 02 2 年1 1 月,北京店卖了多少部手机。

“职工”这个关系模式,职工编号、姓名、性别、业绩。
职工编号是主键。
还有一个商店编号,是外键,指向商店关系模式的主键。

第二个案例,“公司”、“仓库”、“职工”。
这个也差不多。

“公司”有公司编号、公司名、地址。

“仓库”有仓库编号、仓库名、地址。

“职工”有职工编号、姓名、性别。

公司与仓库之间是“隶属”关系。
一个公司管好几个仓库,比如A公司管北京仓库、上海仓库。
但是一个仓库只能属于一个公司。
这种关系是一对多,ER图里单向线,从仓库指向公司。

仓库与职工之间是“聘用”关系。
一个仓库能聘好多职工,比如北京仓库聘5 个人。
一个职工只能在一个仓库干。
这种关系也是一对多,ER图里单向线,从职工指向仓库。

转成关系模式。

“公司”关系模式,公司编号、公司名、地址。
主键是公司编号。

“仓库”关系模式,仓库编号、仓库名、地址。
主键是仓库编号。

“职工”关系模式,职工编号、姓名、性别。
主键是职工编号。

“隶属”关系模式,包含公司编号和仓库编号。
公司编号是外键,指向公司关系模式的主键。

“聘用”关系模式,包含仓库编号和职工编号。
仓库编号是外键,指向仓库关系模式的主键。

就这样...挺麻烦的。

关系数据库设计的概念模型、逻辑模型和物理模型

关系数据库设计分三步,概念、逻辑、物理模型。

概念模型,就是用ER图画出来,业务规则全在这,不谈具体技术。

逻辑模型,把概念具体化,表、字段、主外键都有了,但还不在数据库里。

物理模型,实打实的数据存储方式,索引、存储过程啥的都有了。

这三级模型,从抽象到具体,一步步来,确保数据库设计得既对业务有用,又高效安全。

数据库系统ER模型和关系代数

数据库模式三级模式:外模式、模式、内模式。
外模式:视图。
模式:数据库表。
内模式:物理文件。

两层映像:逻辑独立、物理独立。
逻辑独立:逻辑结构变,外模式调用不变。
物理独立:内模式变,逻辑结构不变。

E-R模型:实体-关系模型。
实体:矩形,现实事件或物体。
弱实体:双边矩形,依赖实体特殊化。
联系:菱形,1 对1 、1 对多、多对多。
属性:椭圆,实体特性,表属性列名。

E-R图转关系模式: 实体转关系模式。
联系转关系模式。
1 对1 合并至一端。
1 对n合并至n端。
m对n单独转关系模式。

关系代数:基础查询语言。
操作:并、交、差、笛卡尔积、投影、选择、自然连接。
并:元组之和去重。
交:重复行。
差:前者去重。
笛卡尔积:列数相加,行数相乘。
投影:属性列选择。
选择:元组行选择。
自然连接:列数相加减重复,行数为同名属性值相同结果。