数据库笔记(补充)——数据库设计和E——R模型

实体—联系模型

  • 实体集

    • 实体(entity):现实世界中一个可以区别于其他对象的一个“事物”或对象
    • 实体集(entity set):相同类型(即具有相同性质/属性)的实体的集合
    • 外延(extension):属于实体集的实体的实际集合

      ps: 实体集和外延的关系类似于之前讲的模式和实例的关系

    • 属性(attribute):实体集中每个成员所具有的描述性性质
    • 值(value):每个实体的每个属性都有一个
  • 联系集

    • 联系(relationship):多个实体间的相互关联

    • 联系集(relationship set): 相同类型联系的集合

    • 实体集之间的关联称之为参与:实体集E1, E2, E3 参与 联系集R

    • 联系也可以具有 描述性属性

    • 实体在联系中扮演的功能称为角色

    • 参与联系集的实体集的数目称为联系集的度, 二元联系集的度为2

  • 属性

    • 域(domain)/ 值集:每个 属性 都有一个 可取值的集合 ,称为该属性的 值集

    • 简单(simple) 和复合(composite)属性

      • 简单属性不可以再分成更小的部分,而复合属性可以(例如下面的name即为复合属性)


        1.png
    • 单值(single-value)和多值(multivalued)属性

      • 单值:一个实体在的单值属性只对应一个值
      • 多值:一个实体的多值属性可以对应多个值(如,phone_number)
    • 派生(derived)属性

      • 派生属性的值可以从别的相关属性或实体派生出来

        • eg.:银行账户的余额可以从账户的存取款明细中计算出来
      • 派生属性在原则上是不用保存的,但是有时候保存派生属性可以节约计算时间(空间换时间)

  • 约束

    • 映射基数约束

      • 一对一(one-to-one)
      • 一对多(one-to-many)
      • 多对一(many-to-one)
      • 多对多(many-to-many)
    • 参与约束

      • 全部参与:实体集E的每一个实体都参与到联系集R的至少一个联系中

      • 部分参与:实体集E中只有部分实体参与到联系集R的联系中

      • 超码
      • 候选码
      • 主码
    • 从实体集中删除冗余属性

      • 要点: 删除其他实体的主键
      • 其他实体的主键相当于外建的存在,一般属于联系集的属性
      • 举个栗子:
        • instructor(ID, name, dept_name, salary),其中ID为主键

        • department(dept_name, building, budget),其中dept_name为主键

        • 属性dept_name在两个表中都出现了,所以它属于冗余属性,他又是department的主键,故应该将其从instructor表中移除(实际数据库实现的时候instructor表中是有一个dept_name属性的,他作为一个外建存在,实际上是两者的联系集是简单的1对多的关系,便没有单独成表,而是采用外键相联系)

实体——联系图

  • 基本结构

    • 分成两部分的矩形 代表 实体集

      2.png
    • 菱形 代表 联系集

      3.png
    • 未分割的矩形 代表 联系集的属性

      4.png
    • 线段 将实体集连接到联系集

      5.png
    • 虚线 将联系集属性连接到联系集

      6.png
    • 双线 显示实体在联系集中的参与度(用双线与联系集相连表示全部参与)

    • 双菱形 代表连接到弱实体集的 标志性实体集

    7.png
  • 映射基数

    • 一对一
    • 一对多
    • 多对一
    • 多对多
  • balabala,图画起来太麻烦了,其他的直接看书,下面聊一聊弱实体集

  • 弱实体集

    • 定义:没有足够的属性以形成主码的实体集称之为 弱实体集(weak entity set)

    • 先举个栗子:(由于简书不支持下划线的写法,所以下面表中所有的主码都用斜体表示)

      • course (course_id, titles, credits)

      • section (sec_id, semester, year)

      • 对于上面的两个实体集,参与如下联系集

        • sec_course(course_id, sec_id, semester, year)
      • 上面的section实体集实际上就是一个弱联系集

        • 一个section实体如果不与一个course对相关联是毫无意义的,并且只有sec_id, semester, year三个属性也是决定不了一个section的
    • 弱实体集必须于另一个称作标识(identifying)或属主和实体集(owner entity set)的实体集相关联才有意义

    • 虽然弱实体集没有主码,但是本身仍要有在依赖于强实体集的基础上的进一步区分的方法,弱实体集的分辨符/部分码(discriminator)便可以用来做进一步的区分

      • 上述例子中的sec_id, semester, year便组成了section的分辨符
      • 在画ER图的时候,组成分辨符的属性底下画虚线(可参见教材 图7-5)
    • 弱实体集的主码由 标识实体集的主码 加上 该弱实体集的分辨符 构成

    • ER图中的表示

      • 组成分辨符的属性底下画虚线,而不是实线
      • 关联弱实体集和标识性强实体集的联系集以双菱形表示
  • 接着,只需要把教材图7-15的图看懂理解,ER图的绘制基本上就没有毛病了

ER图转换为关系模式

这个不难下面简单列几点注意事项

  • 复合属性
    • 将每个子属性单独作为一个属性来处理
  • 派生属性
    • 不显示表示出来
  • 多值属性
    • 单独成表
  • 弱实体集转换
    • 对于从弱实体集转换而来的模式,该模式的主码由其所依赖的强实体集的主码与弱实体集的分辨符组成
  • 联系集
    • 多对多的情况一定单独成表
    • 联系集拥有描述性属性的情况单独成表
    • 其它情况下均可不单独成表
      • 一对一情况下讲任意实体集的主键作为另一个实体集的外建均可
      • 一对多和多对一的情况下,将“一”端的主键作为"多"端的外建
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容