- 简介
目的:将E-R图中的实体、属性和联系转换成为“关系模式”。
所谓关系模式,具有“关系型数据库”的特点——可以理解为表和字段,但是不必考虑数据类型、索引等细节。
任务:将实体模型转换成特定的DBMS所支持的数据模型的过程。
DBMS:数据库管理系统
- 初始关系模型设计
(1)实体转关系遵循的原则:
- 实体转为表,属性转为作字段。
- 联系转为表,相连实体的主键转为字段、联系自身的属性转为字段。
(2)实体间关系的转换:
分为三种——1:1、1:n,m:n
1:1关系——独立建表,随意并入
可以独立成表,也可以与任意一端所对应的表合并。
如——原实体对应关系模式分别为:
- 班级(班号,专业)
- 班长(学号,姓名)
有三种方式建表:
=====================
①独立成一张表——没什么意义,还多一张表:
- 班级(班号,专业)
- 班长(学号,姓名)
- 班级·班长(班号,班长学号)
=====================
②将关系“管理”合并到实体“班级”对应的模式后为:
- 班级(班号,专业,班长学号)
- 班长(学号,姓名)
=====================
③关系“管理”也可以合并到实体“班长”对应的模式,将关系“管理”合并到实体“班级”对应的模式后为:
- 班级(班号,专业)
- 班长(学号,姓名,班号)
1:n关系——独立建表,并入多表
可以独立建表,也可以与n端所对应的表合并。
①独立建表
- 系(系号,系名,系主任)——实体表
- 教师(编号,姓名,性别,职称)——实体表
- 管理(教师编号,系号)——关系表
============================
②合并到实体“教师”:
- 系(系号,系名,系主任)
- 教师(教师号,姓名,职称,性别,系号)
注意:只能合并到“多”的一端。
m:n关系——独立成表,主键全收
关系只能独立成表,自身的属性也转换为字段,相连的实体的主键也转换为字段,并作为新表的联合主键。
如——
- 课程(课程号,课程名,学时,类别) 实体表
- 学生(学号,姓名,性别,专业,出生日期,照片) 实体表
- 选修(学号,课程号,分数) 关系表
=====================
三个或三个以上实体间的多元关系转换为一个独立的表,转换方式同m:n关系。
- 关系模式规范化
范式定义——符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度。
说人话——一张数据表的表结构所符合的某种设计标准的级别。
数据库范式分为1NF,2NF,3NF,BCNF,4NF,5NF。
BCNF:Boyce-Codd Normal Form(巴斯-科德范式)
符合高一级范式的设计,必定符合低一级范式。例如符合2NF的关系模式,必定符合1NF。
第一范式——每一个分类必须是一个不可分的数据项。属性不可再分,确保每列的原子性。
(简单理解:每个表的每个字段不能再拆分)
第二范式——每个表只描述一件事情,每条记录有唯一标识列。
(简单理解:每个表都有主键)
第三范式——数据库表中不包含已在其它表中已包含的非主关键字信息。
(简单理解:从表只引用主表的主键,不得包含其他信息)