学自慕课网:数据库设计(三)

逻辑设计

1.   名词解释


表7 ER图名词解释

关系

一个关系对应通常所说的一张表

元组

表中的一行即为一个元组

属性

表中的一列即为一个属性;每个属性都有一个名称,称为属性名

候选码

表中某个属性组,它可以唯一确定一个元组

主码

一个关系有多个候选码,选定其中一个为主码

属性的取值范围

分量

元组中的一个属性值

2.   实例演示

图1 实例演示


3.   常见的数据库范式

第一范式、第二范式、第三范式、BC范式

4.   数据操作异常

Ø      插入异常:如果某实体随着另一实体的存在而存在,即缺少某个实体时无法表示这个实体,那么这个表就存在插入异常。

Ø      更新异常:如果更新表所对应的某个实体实例的单独属性时,需要将多行更新,那么就说这个表存在更新异常。

Ø      删除异常:如果删除表的某一行来反映某实体实例失效时导致另一个不同实体实例信息丢失,那么这个表中就存在删除异常。

5.   数据冗余

相同的数据在多个地方存在,或者说表中的某个列可以由其他列计算得到,这样就说表中存在着数据冗余。

6.   第一范式

定义:数据库表中的所有字段都是单一属性,不可再分的。这个单一属性是由基本的数据类型所构成的,如整数、浮点数、字符串,等;

换言之,第一范式要求数据库中的表都是二维表。

7.   第二范式

定义:数据库的表中不存在非关键字段对任一候选关键字段的部分函数依赖。部分函数依赖是指存在着组合关键字中的某一关键字决定非关键字的情况。

换言之,所有单关键字段的表都符合每二范式。

商品

名称

供应商名称

价格

描述

重量

供应商电话

有效期

分类

可乐

饮料

一厂

3.00

 

250g

888888

2014.12

饮料

可乐

饮料

二厂

3.00

 

250g

666666

2014.12

饮料

 

商品ID

商品名称

价格

描述

重量

有效期

分类

1

可乐

3.00

 

250g

2014.12

饮料

 

供应商ID

供应商名称

供应商电话

1

饮料一厂

888888

2

饮料二厂

666666

 

供应商ID

商品ID

1

1

 

由于供应商和商品之间是多对多的关系

(商品名称)  —> (价格,描述,重量,商品有效期)

(供应商名称)    —> (供应商电话)

8.   第三范式

定义:第三范式是在第二范式的基础之上定义的,如果数据表中不存在非关键字段对任意候选关键字的传递函数依赖则符合第三范式。

商品名称

价格

商品描述

重量

有效期

分类

分类描述

可乐

3.00

 

250ml

2014.6

酒水饮料

碳酸饮料

苹果

8.00

 

500g

 

生鲜食品

水果

 

商品ID

商品名称

价格

商品描述

重量

有效期

1

可乐

3.00

 

250ml

2014.6

 

分类ID

分类

分类描述

1

酒水饮料

碳酸饮料

 

分类ID

商品ID

1

1

 

存在以下转递函数依赖关系:

(商品名称)  à  (分类)  à  (分类描述)

就是说存在非关键字段”分类描述”对关键字段”商品名称”的传递函数依赖

9.   BC范式(Boyce.Codd范式BCNF)

定义:在第三范式基础上,数据库表中如果不存在任何字段对任一候选关键字段的传递函数依赖则附合BC范式。也就是说如果是复合关键字,则复合关键字之间也不能存在函数依赖关系。

供应商

商品ID

供应商联系人

商品数量

饮料一厂

1

张三

10

饮料二厂

2

李四

20

饮料三厂

1

王五

20

 

供应商

商品ID

商品数量

饮料一厂

1

10

饮料一厂

2

20

饮料二厂

1

20

 

供应商

供应商联系人

饮料一厂

张三

饮料一厂

李四

饮料二厂

王五

   

假定:

供应商联系人只能受雇于一家供应商,没加供应商可以供应多个商品,则存在如下决定关系:

(供应商,商品ID)    à  (联系人,商品数量)

(联系人,商品ID)    à  (供应商,商品数量)


你可能感兴趣的:(学自慕课网:数据库设计(三))