数据库-逻辑结构设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、关系模型与ER模型:(一个关系就是一张二维表)
关系模式:→二维表
ER模型:→ER图
2、关系模型的基本概念:
教师(教师编号,A, B,姓名,性别,所在系)--主表
课程(课程号,课程名,上课教师,教师编号)--从表
关系名:实体与实体间的联系
元组----记录---行(非空)
字段----数据项---列(属性)
选修(学号,课程号,成绩)
二维表:
①将实体转为关系表
(实体名--关系名,实体属性--关系属性,即列,实体键--关系键)
②将实体的联系转为关系表(关系模式)
1:1的联系--可以转为一个独立的关系模式,也可以与任一实体合并
1:n的联系--可以转为一个独立的关系模式,也可以与n端实体合并
m:n的联系--可以转为一个关系模式
多值依赖:
平凡与非平凡依赖:
7、逻辑结构设计过程:
①写出关系模式,绘制ER图
②对关系模式转为2维关系表,并进行范式规划化,使其达到3NF
③对2维表中关系数据的完整性约束
8、练习3
1NF:实体中的属性不能再分解
实例:
学生1(学号,姓名,性别,出生日期,系部代码,入学时间,家庭成员)不属于1NF
更改后:
学生1(学号,姓名,性别,出生日期,系部代码,入学时间,家庭)
家庭(学号,家庭成员姓名,亲属关系)
2NF:实体中的非键属性完全依赖键属性
实例:
选课1(学号,课程号,系部代码,出生日期,成绩)属于1NF,不属于2NF
分析:
姓名,性别,出生日期,入学时间---由学号唯一决定
系部代码,系名,系宿舍楼----不是由学号唯一决定,相互递推出来不属于3NF
(例如:系部代码----由学号或者系名或者系宿舍楼推出)
更改后:
学生(学号,姓名,性别,出生日期,入学时间,系部代码)
系部(系部代码,系名,系宿舍楼)
5、关系数据的完整性:
键----关键字----标识属性(主键,外键,候选键)
主从关系:以该属性为主键的表就是主表,以该属性为外键的表就是从表。
3、将ER模型转换成二维表,以下面为例:
ER模型:
实体:
教师(教师编号,姓名,性别,所在系)
课程(课程号,课程名,教师编号,上课教室)
学生(学号,姓名,年龄,班级)
联系:
讲授(教师编号,课程号)
分析:
系部代码----由学号决定,出生日期---由学号决定,成绩---由学号+课程号决定
更改后:
学生(学号,系部代码,出生日期)
选课1(学号,课程号,成绩)
3NF:没有一个非键属性传递依赖于键(关键字→非关键字1....→非关键字n)
实例:
学生2(学号,姓名,性别,出生日期,系部代码,入学时间,系名,系宿舍楼)属于2NF
实体完整性:对关系的主键进行约束(用主表中不存在的元组)
用户自定义完整性:对关系中具体数据指定约束条件
教师(教师编号,A, B,姓名,性别,所在系)--主表
课程(课程号,课程名,上课教师,教师编号)--从表
6、数据依赖
完全依赖:
传递依赖:
3个或3个以上实体之间的多元化的联系--可以转为一个关系模式
相同的键的关系模式可以合并
4、关系规范化:(5个等级----5个范式-----1NF→5NF)Form
①规范化原因:消除不合适的数据依赖,即关系模式中会存在以下弊端:
数据重复(冗余)
数据不一致性
数据插入异常
数据删除异常….
②范式规范化的判定条件:
关系模式:→二维表
ER模型:→ER图
2、关系模型的基本概念:
教师(教师编号,A, B,姓名,性别,所在系)--主表
课程(课程号,课程名,上课教师,教师编号)--从表
关系名:实体与实体间的联系
元组----记录---行(非空)
字段----数据项---列(属性)
选修(学号,课程号,成绩)
二维表:
①将实体转为关系表
(实体名--关系名,实体属性--关系属性,即列,实体键--关系键)
②将实体的联系转为关系表(关系模式)
1:1的联系--可以转为一个独立的关系模式,也可以与任一实体合并
1:n的联系--可以转为一个独立的关系模式,也可以与n端实体合并
m:n的联系--可以转为一个关系模式
多值依赖:
平凡与非平凡依赖:
7、逻辑结构设计过程:
①写出关系模式,绘制ER图
②对关系模式转为2维关系表,并进行范式规划化,使其达到3NF
③对2维表中关系数据的完整性约束
8、练习3
1NF:实体中的属性不能再分解
实例:
学生1(学号,姓名,性别,出生日期,系部代码,入学时间,家庭成员)不属于1NF
更改后:
学生1(学号,姓名,性别,出生日期,系部代码,入学时间,家庭)
家庭(学号,家庭成员姓名,亲属关系)
2NF:实体中的非键属性完全依赖键属性
实例:
选课1(学号,课程号,系部代码,出生日期,成绩)属于1NF,不属于2NF
分析:
姓名,性别,出生日期,入学时间---由学号唯一决定
系部代码,系名,系宿舍楼----不是由学号唯一决定,相互递推出来不属于3NF
(例如:系部代码----由学号或者系名或者系宿舍楼推出)
更改后:
学生(学号,姓名,性别,出生日期,入学时间,系部代码)
系部(系部代码,系名,系宿舍楼)
5、关系数据的完整性:
键----关键字----标识属性(主键,外键,候选键)
主从关系:以该属性为主键的表就是主表,以该属性为外键的表就是从表。
3、将ER模型转换成二维表,以下面为例:
ER模型:
实体:
教师(教师编号,姓名,性别,所在系)
课程(课程号,课程名,教师编号,上课教室)
学生(学号,姓名,年龄,班级)
联系:
讲授(教师编号,课程号)
分析:
系部代码----由学号决定,出生日期---由学号决定,成绩---由学号+课程号决定
更改后:
学生(学号,系部代码,出生日期)
选课1(学号,课程号,成绩)
3NF:没有一个非键属性传递依赖于键(关键字→非关键字1....→非关键字n)
实例:
学生2(学号,姓名,性别,出生日期,系部代码,入学时间,系名,系宿舍楼)属于2NF
实体完整性:对关系的主键进行约束(用主表中不存在的元组)
用户自定义完整性:对关系中具体数据指定约束条件
教师(教师编号,A, B,姓名,性别,所在系)--主表
课程(课程号,课程名,上课教师,教师编号)--从表
6、数据依赖
完全依赖:
传递依赖:
3个或3个以上实体之间的多元化的联系--可以转为一个关系模式
相同的键的关系模式可以合并
4、关系规范化:(5个等级----5个范式-----1NF→5NF)Form
①规范化原因:消除不合适的数据依赖,即关系模式中会存在以下弊端:
数据重复(冗余)
数据不一致性
数据插入异常
数据删除异常….
②范式规范化的判定条件: