第 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) 课程类别 ( 课程类别,类别名,备注 )