第 1章 数据库原理概述
1.1 数据库技术的发展
1.2 数据库系统的组成
1.3 数据库体系结构
1.4 数据模型
1.5 E-R方法
1.6 关系数据库设计理论
1.7 数据库设计步骤
1.8 关系数据库设计实例
1.1 数据库技术的发展
数据管理经历了人工管理、文件系统和数据库系统三个发
展阶段。
?人工管理阶段
20世纪 50年代中期以前, 计算机主要用于科学计算 。 当时
在硬件方面, 外存储器只有磁带, 卡片和纸带, 没有磁
盘等可以随机访问, 直接存取的设备;在软件方面, 没
有专门管理数据的软件, 没有操作系统, 数据处理的基
本方式是批处理 。 该阶段数据处理的特点是:
1、数据不保存
2,数据不具有独立性
3,数据不共享
4,系统中没有对数据进行管理的软件










1








< >
人工管理阶段数据与程序的关系图:
< >
应用程序 1
应用程序 2
应用程序 n
数据集 1
数据集 2
数据集 n
图 1-1 人工管理阶段数据与程序的关系










1








< >
?文件系统阶段
20世纪 50年代后期到 60年代中期,计算机不仅大量用于
科学计算,而且还用于数据处理。在硬件方面,外存储
器有了磁盘、磁鼓等可以直接存取的存储设备;在软件
方面,有了专门管理数据的软件,即文件系统。这一阶
段的特点是:
1,数据可以长期保存
2,程序与数据有了一定的独立性
3,数据共享性差










1








< >
文件系统阶段数据与程序的关系图:
应用程序 1
应用程序 2
应用程序 n
物理文件 1
物理文件 2
物理文件 n
文件
系统
图 1-2 文件系统阶段数据与程序的关系










1








?数据库系统阶段
20世纪 60年代后期,由于计算机用于管理的规模更加庞大,
需要计算机管理的数据急剧增长,对数据共享的要求越来
越强烈。这时在硬件方面,出现了大容量的磁盘,硬件价
格下降;软件价格上升,为编制和维护系统软件及应用程
序所需的成本相对增加。在这种情况下,将文件系统作为
数据管理的手段已经不再能满足应用的需求,数据库技术
便产生了,出现了管理数据的软件系统即数据库管理系统。
该阶段的特点是:
1、数据的共享性好,冗余度小
2,具有较高的数据独立性
3,数据由 DBMS统一管理和控制
< >










1








< >
数据库系统阶段数据与程序的关系图:
应用程序 1
应用程序 2
应用程序 n
数据库
管理系

DBMS
数据库
database
图 1-3 数据库系统阶段数据与程序的关系










1








< >
1.2 数据库系统的组成
数据库系统由数据库、数据库系统的系统软件(数据库管
理系统 DBMS)、支持数据库运行的软、硬件环境、应用程
序和数据库管理员组成。
1,数据库
2,数据库管理系统 DBMS
3,支持数据库运行的软、硬件环境
4,应用程序
5,数据库管理员 DBA










1








1.3 数据库体系结构
< >
?三级模式结构
数据库系统的三级模式是指内模式、模式和外模式,
如图 1-4所示。
应用 1 应用 2
外模式 1
应用 4 应用 5
外模式 3
应用 3
外模式 2
应用 n
外模式 n
模式
内模式
数据库
图 1-4 数据库系统的三级模式图










1








1,模式
模式也称为概念模式或逻辑模式,是数据库的总框,是数
据库中全体数据的逻辑结构和特征的描述,是所有用户的公
共数据视图。模式反映了数据的总体观,一个数据库只有一
个模式。
2,外模式
外模式也称为子模式或用户模式, 它是数据库用户使用的局
部数据的逻辑结构和特征的描述, 是数据库用户看到的数据
视图, 即与某一应用有关的数据的逻辑表示 。 一个数据库可
以有多个外模式 。
3,内模式
内模式也称为存储模式, 它是数据物理结构和存储结构的描
述, 是数据在数据库内部的表示方式 。 一个数据库只有一个
内模式 。
< >










1








< >
?三级模式之间的映射
外模式 /模式之间的映射 和 模式 /内模式之间的映射,
保证了数据库中的数据具有较高的逻辑独立性和物理
独立性。
1,外模式 /模式之间的映射:保证了数据的逻辑独立
性。
2,模式 /内模式之间的映射, 保证了数据的物理独
立性。










1








1.4 数据模型
1.4.1 实体及其联系
1,实体及其属性
现实世界中任何可以被认识、区分的事物称为实体。实体可以
是人或物,可以是实际的对象,也可以是抽象的概念,比如一
个学生,一门课程。实体所具有的特性叫做属性,一个实体可
以有若干属性来刻画。
< >
2、关键字
在实体属性中,可以用来惟一标识某一个实体的属性或属性的
最小组合称为该实体的关键字。










1








3,实体间的联系
实现世界的事物是有联系的,这种联系主要表现为两种:一种
是实体与实体之间的联系,另一种是实体集内部的联系。
实体与实体之间的联系可以分为三种类型:一对一联系、一对
多联系和多对多联系。
l一对一联系
简记成 1,1,班级和班长之间是一对一的联系。
l一对多联系
一对多的联系简记成 1,n,部门和职工之间是一对多的联系。
l多对多联系
多对多的联系简记成 m:n,学生和课程之间是多对多的联系。
< >










1


















1








4、实体集内的联系
l一对一的联系
l一对多的联系
l一对多的联系
1
1
已婚公民 婚姻 领导
职工
1 n
零部件
组装
nm
图 1-5 实体集内部的 1,1联系 图 1-6 实体集内部的 1,n联系
图 1-7 实体集内部的多对多联系
< >










1








< >
5、三个或三个以上实体之间的联系
pm
使用
供应商 项目 零件
n
图 1-8 三个实体之间的联系










1








< >
1.4.2 三种常见的数据模型
1、层次模型
2,网状模型
N1
N2 N3
N4 N5 N4
N1
N2
N3
图 1-9 层次模型 图 1-10 网状模型










1








< >
3、关系模型
在关系模型中,基本数据结构是二维表格,数据在用户观点下
的逻辑结构是一张二维表。每一张二维表称为一个关系。表中
的每一行称为一个元组,表中的每一列称为一个属性。能够惟
一地标识某一个元组的属性或最小属性组称为关系的关键字。
关系模式是对关系的描述,用关系名(属性名 1,属性名 2,…
,属性名 n)来表示。在关系模式中,关键字用下划线表示。
在关系模型中,无论是实体还是实体之间的联系都用关系模
式来表示。实体对应于关系,实体的属性对应于关系的属性。
通常用实体名作为关系名。联系名对应于关系名,联系的属性
及两端实体的关键字对应于关系的属性。例如,有, 学生, 和
,课程, 两个实体,可以分别用以下关系模式来表示:
学生( 学号,姓名,性别,年龄)
课程( 课程号,课程名,学分)










1








< >
学生实体和课程实体之间存在着选修联系, 一个学生可以选修
多门课程, 一门课程也可以被多个学生所选修, 因此, 学生和
课程之间的选修联系是多对多的联系 。 我们可以用以下关系模
式来表示:
选修 ( 学号, 课程号, 成绩 )
其中,学号和课程号分别是学生实体和课程实体的关键字,成
绩是选修联系本身的属性。










1








< >
1.4.3 关系的完整性
1,实体完整性
实体完整性规则:若属性 A是基本关系 R的主属性,则属性 A
不能取空值。
例如,在关系, 学生(学号,姓名,性别,年龄), 中,
学号属性为主属性,则学号不能取空值。
2、参照完整性
外码:设 F是基本关系 R的一个或一组属性,但不是关系 R
的码,如果 F与基本关系 S的主码 Ks相对应,则称 F是基本
关系 R的外码,并称基本关系 R为参照关系,基本关系 S为
被参照关系。
参照完整性规则:若属性或属性组 F是基本关系 R的外码,
它与基本关系 S的主码 Ks相对应(基本关系 R和 S不一定是不
同的关系),则对于 R中的每一个元组在 F上的值必须为:
l或者取空值;
l或者等于 S中某个元组的值。










1








< >
3、用户自定义完整性
用户自定义完整性是针对某一具体数据库的约束条件,由应
用环境决定,它反映了某一具体应用所涉及到的数据必须满
足的语义要求。例 如:身份证必须为 15位或 18位,年龄必须
为整数等等。










1








< >
1.5 E-R方法
1.5.1 E-R图的基本要素
在 E-R图中,用长方形表示实体,用椭圆表示属性,
用菱形表示联系。在相应的框内要写上实体名、属性
名或联系名。实体与属性之间用直线相连;联系与相
应的实体之间也用直线相连,并在直线边注明联系的
类型( 1,1,1,n,m,n)。
学生
学号 姓名 性别 年龄
m n学生 课程选

图 1-11 用 E-R图表示, 学生, 实体
图 1-12 用 E-R图表示, 选修, 联系










1








< >
1.5.2 E-R图的设计
1,设计局部 E-R图
1)明确局部应用的范围
2)确定实体和属性
划分实体和属性时,一般遵循以下的原则:
l属性是不可再分的数据项,不能再具有需要描述的性质。否
则,该属性必须定义为实体。
l属性不能与其他实体发生联系,联系只发生在实体之间。
3)确定实体之间的联系,产生局部 E-R图










1








< >
2、综合成全局 E-R图
局部概念模型的合并一般分为两步:第一步,先解决各分 E-R图之间的冲突,
将各分 E-R图合并起来生成初步 E-R图;第二步,对初步 E-R图进行修改,消除
不必要的冗余,生成基本的 E-R图。
1)合并分 E-R图,消除冲突,生成初步 E-R图
各个分 E-R图之间的冲突主要有三种类型:属性冲突、结构冲突、命名冲突。
属性冲突:属性取值单位冲突、属性域冲突
结构冲突
?同一对象在不同的应用中有不同的抽象。
?同一实体在不同的局部应用中所包含的属性不完全相同或属性的排列
次序不同。
?实体之间的联系在不同的局部应用中类型不一致。










1








< >
命名冲突
?同名异义
?异名同义
2、消除冗余,生成基本 E-R图
在各分 E-R图合并时,可能存在冗余的数据和实体间冗余
的联系。冗余的数据是指可以由基本数据导出的数据;
冗余的联系是指可以由基本联系导出的联系。










1








< >
1.5.3 从 E-R图导出关系数据模型
1,一个实体类型转换为一个关系模式
将每个实体类型转换为一个关系,实体的属性就是关系
的属性,实体的关键字就是关系的关键字。
2,一个一对一关系有以下两种转换方式
?转换为一个独立的关系模式
?与任意一端实体的关系模式合并










1








< >
3、一个一对多联系有两种转换方式
?将一对多联系转换为一个独立的关系模式
?将一对多联系与 n端实体合并
4、一个多对多联系转换为一个关系模式
关系模式名为联系名,与该联系相连的各实体的关键字及联
系本身的属性为关系模式的属性,关系模式的关键字为联系
中各实体关键字的并集。
5、同一实体集内部的联系,可将该实体集拆分为相互联系的
两个子集,然后根据它们相互间不同的联系方式按上述规则
处理。










1








< >
6,三个或三个以上实体间的多元关系转换为一个关系模式
,与该多元联系相连的各实体的关键字及联系本身的属性为
该关系模式的属性,关系模式的关键字为各实体关键字的并
集。
7,具有相同关键字的关系模式可以合并,合并后的关系模
式的属性取被合并的关系模式属性的并集,并适当调整属性
的次序及名称等。










1








< >
1.6 关系数据库的设计理论
1.6.1 数据依赖
1、属性间的联系:一对一、一对多、多对多
2、函数依赖
设 U= {A1,A2,…,An}是属性集合,R( u)是 U上的一个关系,
X,Y是 U的子集。若对于 R( U)下的任何一个可能的关系,
均有 X的每一个具体值对应于 Y的惟一具体值,则称 Y函数依
赖于 X,或 X函数决定 Y,记作 X→ Y,称 X为决定因素。
若进一步有 Y→ X,则称 X和 Y相互依赖,记作 X←→ Y。










1








< >
完全函数依赖
设 X→ Y是关系模式 R( U)上的一个函数依赖,Xˊ 是 X的真子集
,若对于 R( U)下的任何一个可能的关系,有 Xˊ→ Y,则称
Y完全函数依赖于 X。
?部分函数依赖
设 X→ Y是关系模式 R( U)上的一个函数依赖,Xˊ 是 X的真子集
,若对于 R( U)下的任何一个可能的关系,有 Xˊ→ Y,则称 Y
部分函数依赖于 X。
传递函数依赖
在 R( U)中,若 X→ Y,但 Y → X,若 X→ Z,则称 Z传递依赖
于 X。










1








< >
1.6.2 范式
1、第一范式
如果 R的所有属性都是不可再分的数据项,则称该关系属于第
一范式,记作 R∈ 1NF。对于关系来说,第一范式是自动满足
的。
2,第二范式
若 R∈ 1NF,并且它的所有非主属性都完全函数依赖于主关键
字,则称 R满足第二范式,记作 R∈ 2NF。










1








< >
3,第三范式
若 R∈ 2NF,并且它的所有非主属性都不传递函数依赖于主关
键字,则称 R满足第三范式,记作若 R∈ 3NF。
4,BCNF范式
若 R∈ 1NF,并且它的每一个决定因素都是候选关键字,则称
R属于 BCNF。










1








< >
1.6.3 关系模式的规范化
1、无损连接, 在原关系模式下,满足原关系模式依赖集的
任一实例在分解之后均能通过自然连接恢复。
2、保持函数依赖, 在, 分解 —还原, 的过程中保持原有关
系上的函数依赖集 F 。
工人( 工号,工种,定额)的分解?










1








< >
1.7 数据库设计步骤
?需求分析阶段
?概念结构设计阶段
?逻辑结构设计阶段
?物理结构设计阶段
?应用程序设计阶段
?数据库的运行维护










1








< >
1.8 关系数据库设计实例
假设某学校有若干个系,系中又有若干个专业,每个专业有
若干个班级;每个系有若干个教师,有一个系主任;教师可
以开设若干门课程,每门课程可由若干个教师讲授;每个班
级有若干个学生组成,有一个班长;学生可以选修若干门课
程,某门课程亦可由多个学生选修;每个专业有其自身的专
业设置情况;每个班级有其自身的课表。
?各分 E-R图设计
1
1 n
系 教师
组成
1 领导
图 1-13,系, 和, 教师, 之间的联系










1








< >
专业
1
包含
n

图 1-14,系, 和, 专业, 之间的联

专业 班级构成1 n
图 1-15,专业, 和, 班级, 之间的联











1








< >
1 n
1 1
班级 学生
构成
领导
图 1-16,班级, 和, 学生, 之间的联系
m
学生 选修 课程
n
图 1-17,学生, 和, 课程, 之间的联系
专业 开设 课程m n
开课学期
图 1-18,专业, 和, 课程, 之间的联系










1








< >
开设
m
上课地点 上课时间
p
教师 班级 课程
n
图 1-19,教师,,, 班级, 和, 课程, 之间的
联系










1








< >
?将各分 E-R图综合成全局 E-R图
系 专业
1
1
学生


n
m


1
n


n


1
n


1
开设
m
上课地点 上课时间
p
教师 班级 课程
n
n 设置
m
n
包含
1
1
1


开课学期










1








< >
?逻辑结构设计
?将各实体及一对一、一对多联系转换成关系模式
系 ( 系代码, 系名, 系主任 )
教师 ( 教工号, 教师名, 所在系, 性别, 职称, 联系电话, 家庭地址 )
专业 ( 专业代码, 专业名, 所在系 )
班级 ( 班级号, 班级名, 所属专业, 入学年份, 班长 )
学生 ( 学号, 姓名, 性别, 出生年月, 所在班级, 联系电话, 已修学分

课程 ( 课程号, 课程名, 总学时, 周学时, 学分, 课程类别, 类别名,
备注 )










1








< >
?将多对多联系转换为关系模式
选修 ( 学号, 课程号, 成绩 )
开设 ( 班级号, 课程号, 任课教师, 上课地点, 上课时间 )
设置( 专业代码,课程号,开课学期)
?运用规范化理论对各关系模式进行优化
将, 课程, 分解成:
1) 课程 ( 课程号, 课程名, 课程类别, 总学时, 周学时, 学分 )
2) 课程类别 ( 课程类别, 类别名, 备注 )