Skip to main content

数据库设计

数据库概念设计

基础概念

将需求分析转换为实体-联系模型。

  • 实体: 一个对象,类似于面向对象中的对象
  • 实体集: 由多个实体组成的集合
  • 属性: 实体的特征、性质
  • 联系: 表示实体之间的关系,多个实体之间的联系
  • 二元联系: 表示两个实体之间的联系,有如下三种关系
    1. 一对一
    2. 一对多
    3. 多对多
  • 弱实体: 某个实体集的所有属性都不足以构成自身的键值,需要连接其他实体的某些属性来构成

设计准则

  • 尽可能反映现实情况
  • 避免重复
  • 设计得尽可能简单,去除掉多余的元素
  • 数据库应该选择合理的关系(如果一个关系可以被其他关系推出,那么这个关系就是不必要的)
  • 正确选择所用的信息:
    • 一个东西要成为实体,应该要有很多信息来描述,否则应该要当成属性
    • 多元关系和多个二元关系的选择——看实际情况,符合现实即可
  • 不应该过度使用弱实体集

E-R模型转化为关系模型的一般规则

概念

  • 一对一关系

对于实体集A的实体,在实体集B中至多有1个实体与实体集A联系,A和B具有1:1的联系

  • 一对多关系

对于实体集A的实体,在实体集B中至多能找到n个与之联系;反过来说,实体集B中的每个实体,都跟实体集A中其中一个实体联系。实体集A和实体集B具有1:n的联系

  • 多对多关系

实体集A中的每个实体与实体集B中的每个实体都有联系。

转换规则

二元关系
  • 1:1联系(S,T)

选中一个关系模式,假设为S,将T的主码作为S的外码加入,将联系的单值属性加入到S中

  • 1:N联系(S,T)

将1端的主码作为N的外码加入到N端。将联系的所有单值属性加入到N端

  • N:M(S,T)

将联系转换为一个单独的关系模式,该关系模式的属性包括两端实体的码和联系本身的属性。

多元关系
  • 1:1:1(M,N,K)

选定一个关系模式(K),将另外两个关系模式(M,N)的码加入到K中作为外键。

  • 1:1:N(M,N,K)

将两个1端的关系模式(M,N)中的码,加入到K端的关系模式作为外键。

  • M:N:K(M,N,K)

将该联系转化为关系模式,将三段的码加入到该关系模式当中。