一言
越是困难,越要抬起头,地上可找不到任何希望!——Zetman
数据库系统概论笔记:第七章:数据库设计
本文最后更新于 377 天前,其中的信息可能已经有所发展或是发生改变。

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的主码病房号写入病人的关系中,并且标记外码:

病人(病历号,姓名,性别,病房号)

科室和病房

病房(病房号,病房地,科号)

病人对医生、科室对医生

医生(工作证号,姓名,职称,年龄,科名)

病人(病历号,姓名,性别,病房号,工作证号)

最后就是:

病人(病历号,姓名,性别,病房号,工作证号)

病房(病房号,病房地,科号)

医生(工作证号,姓名,职称,年龄,科名)

科室(科名,科地,科电话)

其中,病人对医生,的关系属性为诊治,那么这个诊治的属性就是诊治医生

病人(病历号,姓名,性别,病房号,工作证号,诊治医生)

最终:

病房(病房号,病房地,科号)

医生(工作证号,姓名,职称,年龄,科名)

科室(科名,科地,科电话)

病人(病历号,姓名,性别,病房号,工作证号,诊治医生)

(好了我已经不认识"病这个字了")

暂无评论

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇