作为一个码农你已经会的:

  • CRUD
  • 联表
  • in / exists
  • 范式是什么

你不会的但是可能有点用的:

  • ER图

你不会的,但是没啥用的:

  • 关系代数

  • 存储过程

  • 触发器

  • 视图

  • 窗口函数

  • 用诡异的方法规范化范式,函数依赖

ER图

概念模型

(1)实体(Entity)。客观存在并可相互区别的事物称为实体。可以是具体的人、事、物,也可以是抽象的概念或联系。

(2)属性(Attribute)。实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。

(3)码(Key)。唯一标识实体的属性集称为码。

(4)域(Domain)。属性的取值范围称为该属性的域。

(5)实体型(Entity Type)。用实体名及其属性名集合来抽象和刻画同类实体称为实体型。比如,学生(学号,姓名,性别,年龄,系,年级)是一个实体型。

(6)实体集(Entity Set)。同型实体的集合称为实体集。比如,全体学生、女学生。

(7)联系(Relationship)。现实世界中事物内部以及事物之间的联系,在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。

以上内容本人无版权,全部为抄袭

实体关系图

Entity-Relationship Diagram

组成元素:

  1. 实体(Entity):矩形,里面是名字
  2. 属性:椭圆,实体的属性,即表中的字段,和实体用直线连接
  3. 联系:菱形,实体之间存在的关系(谓词写在菱形内),菱形与实体的连线上写1/ n/ m表示关系(关系不是仅仅一对的,还可以三个实体共用一个菱形,两两为一种关系,此外关系也并非唯一的,领导和职工既可以一对多也可以一对一)
    • 一对一 1 1
    • 一对多 1 n
    • 多对一 n 1
    • 多对多 n m

注意:题目中给出实体相关的信息并非都要作为实体的属性,尽量满足范式要求,如不应在科室下面记录医生,而应该医生的外键是科室名

补充:如何填写关系菱形中的内容?

通常人作为主语:病人入住房间,学生拥有饭卡

1:n:通常1作为主语,班级容纳学生,部门拥有员工(此时和上一条好像矛盾,事实就是愿意怎么写都行)

1:1 / m:n :靠直觉,是谁发出的动作,谁是主语

关系模型

把 ER 概念模型转换成数据库可直接使用的逻辑结构,适配关系型数据库

实体直接转一张表,实体属性为字段,实体主键为表主键

一对多 (1:N):在 “多” 的一方表增加外键,引用 “1” 方主键

一对一 (1:1):任意一方加外键

多对多 (M:N) 联系必须单独建一张中间表

主码就是主键,外码就是外键,

ER 图实体里带下划线的是主键,但实体可能存在其他能唯一标识的属性,那些全部合起来叫候选码