Download presentation
Presentation is loading. Please wait.
1
第六章 数据模型转化为 关系数据库
2
将数据模型转化为数据模型的步骤 1 2 3 对每个实体建立一个表 1明确主键 2明确候选键 3确定每列属性 3.1空值 3.2数据类型
3.3默认值 3.4数据约束 通过放置外键来表示关联 2 1 强实体(1:1,1:N,M:N) 2 ID依赖(关联、多值、原型) 3 混合 4 子类型 5 递归(1:1,1:N,M:N) 明确保证最小基数的方法 3 1 M-O 2 O-M 3 M-M
3
6.1为每个实体建立一个表 将EMPLOYEE实体转换为表EMPLOYEE; 1、实体标识变为表的主键; 2、外键设置成候选键; 转换 转换
EmployeeNumber EmployeeName Phone HireDate ReviewDate EmpCode 转换 EMPLOYEE(EmployeeNumber,ename,phone, ,reviewdate,empcode)
4
E-R模型 6.2 主键选择与明确候选键 转换 1、DBMS使用主键优化表的搜索和排序;钥匙图标; 2、代理主键,自动生成的ID号,很方便;
6.2 主键选择与明确候选键 1、DBMS使用主键优化表的搜索和排序;钥匙图标; 2、代理主键,自动生成的ID号,很方便; 缺点:(1)对用户查询无意义,不便使用; (2)对分布式数据库,可能重复; 3、候选主键AK,标识表中行的唯一性; E-R模型 转换 EMPLOYEE EmployeeNumber EmployeeName Phone HireDate ReviewDate EmpCode (AK1.1) EmpCod CUSTOMER CustomerNumber Name (AK1.1) City (AK1.2) (AK2.1)
5
6.3 明确列的属性 (1)空值状态 Null 或 not NULL; (2)数据类型; (3)默认值; (4)数据约束,取值;
6
6.4 规范化 函数依赖关系的规范化 1NF ,2NF, 3NF, BCNF, 4NF 转换 规范化 转换为关系
7
6.5 1:1的强实体联系 1:1强实体联系的两种方法表示 把第一张表中的主键作为外键放在第二张表中。或者反过来放置也行。
6.5 1:1的强实体联系 1:1强实体联系的两种方法表示 把第一张表中的主键作为外键放在第二张表中。或者反过来放置也行。 我们仅用设置候选键来保障联系1:1的。 总之,1:1强实体联系,把一个表的主键作为另一个表的外键,为了强调最大基数是1,设置该外键为候选键。
8
6.5 1:N强实体 1:N强实体联系实现 学生 姓名 张三 李四 王五 系部 系名 系主任 电子信息 杨卫龙 学生 系部 系部
系名 系主任 电子信息 杨卫龙 1:N强实体联系实现 应该把“1”的那端表的主键发到“N”端表中,也就是 对于1:N强实体联系,只把父表的主键设成子表 的外键。 学生 系部 系部 张三 电子信息 杨卫龙 李四 电子信息 杨卫龙 王五 电子信息 杨卫龙
9
6.5 M:N 强实体 ? 问题:不能像1:N那样在“N”端表中放置外键。
company(company,city,country,volume,partnumber); xyz,beijing,China,200,#1 abc,shanghai,China,150,#1 xyz,beijing,China,200,#2 xyz,beijing,China,200,#3 xyz,beijing,China,200,#4 xyz,beijing,China,200,#5 part(partnumber,partnames,salesprice,reorderquantity,quantityonhand)
10
6.5 M:N 的强实体 解决办法:建立第三章表:交表 company_part_int(companyname,partnumber)
11
递归联系 1)1:1递归联系 由于是1:1的联系,因此可以将其定义成Unique使外键唯一。
12
1:N的递归联系 可以把父表的键放到子表中表示1:N的递归联系。
13
M:N递归联系 因为转N:M的联系方法是通过创建一个交表,把它分解成两个1:N的联系,这样创建一个交表。
14
View ridge 数据库
Similar presentations