7.1 数据库设计概述
7.2 需求分析
7.3 概念结构设计
7.3.1 概念模型
7.3.2 E-R模型
实体型:用矩形表示,矩形框内写明实体名。
属性:用椭圆形表示,并用无向边将其与相应的实体型连接起来。
联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型(1∶1,1∶n或m∶n)。联系可以具有属性。
实体型之间的联系:
一对一联系(1∶1)
一对多联系(1∶n)
多对多联系(m∶n)。
例:
7.3.4
7.3.5
7.4逻辑结构设计
主要就是ER图转关系模型
ER图向关系模型的转换原则
一个实体转换为一个关系模式,实体的属性就是关
系的属性,实体的码就是关系的码。一个联系转换为一个关系模式,与该联系相连的各
实体的码以及联系的属性均转换为该关系的属性。该关
系的码有三种情况:①如果联系为1:1,则每个实体的码都是关系的候选
码;(这种情况,可以将联系并入实体中)(将任意一端的主码加入到另一方并设置为外码,而且联系的属性也加入)②如果联系为1:n,则n端实体的码是关系的码;(将1方的主码加入到n方并设置为外码,并且联系的属性也加入n方)
③如果联系为n:m,则各实体码的组合是关系的码。(将联系本身作为一个关系模式,将双方的主码加入设置为主码,并且将联系的属性加入进来)
怎么做题呢?举个例子:
第一步:将所有实体(也就是矩形),写下来,把他们的属性写上,然后标记主码
病房(病房号,病房地)//蓝色为主码
科室(科名,科地,科电话)
病人(病历号,姓名,性别)
医生(工作证号,姓名,职称,年龄)
第二步:实体间联系的转换,按照:
①如果联系为1:1,(将任意一端的主码加入到另一方并设置为外码,而且联系的属性也加入)
②如果联系为1:n,;(将1方的主码加入到n方并设置为外码,并且联系的属性也加入n方)
③如果联系为n:m,(将联系本身作为一个关系模式,将双方的主码加入设置为主码,并且将联系的属性加入进来)
这个原则转换:
病人和病房是1对n的,所以将1的主码病房号写入病人的关系中,并且标记外码:
病人(病历号,姓名,性别,病房号)
科室和病房:
病房(病房号,病房地,科号)
病人对医生、科室对医生:
医生(工作证号,姓名,职称,年龄,科名)
病人(病历号,姓名,性别,病房号,工作证号)
最后就是:
病人(病历号,姓名,性别,病房号,工作证号)
病房(病房号,病房地,科号)
医生(工作证号,姓名,职称,年龄,科名)
科室(科名,科地,科电话)
其中,病人对医生,的关系属性为诊治,那么这个诊治的属性就是诊治医生
病人(病历号,姓名,性别,病房号,工作证号,诊治医生)
最终:
病房(病房号,病房地,科号)
医生(工作证号,姓名,职称,年龄,科名)
科室(科名,科地,科电话)
病人(病历号,姓名,性别,病房号,工作证号,诊治医生)
(好了我已经不认识"病这个字了")