1.某医院病房计算机管理中需要如下信息:
科室:科名,科地址,科电话,医生姓名
病房:病房号,床位号,所属科室号
医生:姓名,职称,所属科室名,年龄,工作证号
病人:病历号,姓名,性别,诊断,主管医生,病房号
其中,一个科室有多个病房,多个医生。一个病房只能属于一个科室,一个医生只属于一个科室,但可负责多个病人的诊治,一个病人的主管医生只有一个。
完成入下设计:
1)设计核算计算机管理系统的E-R图;
2)将该E-R图转换为关系模型结构;
3)指出转换结果中每个关系模式的侯选码
答:1)
2)科室(科名,科地址,科电话)
病房(病房号,床位号,科室号)
医生(工作证号,姓名,职称,科室名,年龄)
病人(病历号,姓名,性别,诊治,主管医生,病房号)
3)每个关系模式的侯选码如下:
科室的侯选码是科名
病房的侯选码是科室名+病房号
医生的侯选码是工作证号
病人的侯选码是病历号
关系模式:
1:1-将一端主码引入到另一端
1:n-把1端的主码合并(引入)到多端,意义可以更加明确,不必和原来的主码名称相同,意义相同即可。
例如:车队(车队号,车队名)
司机(。。。。,所属车队号),中的所属车队号意义更加明确。
m:n-不能合并,必须独立。关系(主码1,主码2,其他属性) ,独立出来的这个关系模式(关系) 主码1和主码2共同作为主码,-:>作为联合主键
候选码解释:
候选码(超级码)就是可以被选为主码的属性或数组,当一个关系有N个属性或属性组可以唯一标识时,则说明该关系有N个候选码,可以选定其中一个作为主码。主属性就是包含在任何候选码(当然包括主码)中的属性;非主属性就是不包含在任何候选码中的属性。
主码是候选码的子集。
2.设有如下所示的关系R(码为:课程名)
关系R
课程名 |
教师名 |
教师地址 |
C1 |
王小强 |
D1 |
C2 |
李鸿雁 |
D2 |
C3 |
王小强 |
D1 |
C4 |
张言 |
D1 |
问:1)该关系模式为第几范式?为什么?
答:(1) R∈2NF
∵R的侯选码为课程名,存在课程名→教师名,
教师名→教师地址
∴课程名→教师地址
即存在非主属性对候选码的传递函数依赖关系
∴R不属于3NF
又∵不存在非主属性对候选码的部分函数依赖
∴R∈2NF
第一范式(1NF):关系中的所有分量不可再分,即数据库表中的字段都是单一属性的,不可再分。
在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系型数据库。
例如,这样是符合的:Student(id,name,age,class)
而这样就不符合:Student(id,(first name, last name),age,class)