第6章 数据库系统基础

Download Report

Transcript 第6章 数据库系统基础

第5章 数据库技术基础
主要内容
5.1 数据库系统的基本概念
5.2 数据模型
5.3 关系数据库
5.4 数据库设计
5.5 SQL简介
 知识类型:理论
 二级所占分值:约8分
 课时:4学时
 参考书目:《数据库系统及应用》
梁树军 张建伟
中国电力出版社

在人们的周围有各种各样的数据库系统在运行。
当人们买飞机票、领发工资、查资料、买卖股
票时都需要与数据库打交道。

数据库系统已成为人们提高工作效率和管理水
平的重要手段,已成为企业提高竞争力有力武
器。

那么,什么是数据库系统?它是如何构成如何
工作的呢?我们怎样才能成功开发出一个高性
能的数据库系统呢?
走进信息时代--信息大爆炸

20世纪科技迅速发展。1946年第一台电子计算机诞生,
之后,工作、生活、学习各方面发生了巨大的变化。

社会信息量急剧膨胀(企业信息,政府信息, 科研信息),
信息大爆炸已成为众所皆知的事实。

信息已成为与材料、能源同等重要甚至更加重要的战略
性资源。离开了信息人们将无所适从。

人们迫切需要提高效率和管理水平,加强信息处理的效
率。
5.1 数据库系统的基本概念
5.1.1 数据库、数据库管理系统、数据库系统
1. 数据(Data)与数据处理(Data Processing) :
 数据: 数据的内涵相当广泛。它是指一切用于描述事物
的符号记录,包括:数字、文字、图形、图像、
声音、动画、视频、表格记录等。


为简便起见,本课程将数据于信息不作区分。
数据库中的数据具有以下特征:
 (1) 数据受数据类型和取值范围的约束。
 (2) 数据有“型”和“值”之分。
 (3) 数据有定性表示和定量表示之分。
 (4) 数据具有载体和多种表现形式。
5.1 数据库系统的基本概念
5.1.1 数据库、数据库管理系统、数据库系统
1. 数据(Data)与数据处理(Data Processing) :


数据处理: 是指对数据的收集、组织、整理、加工、存
储和传播等工作。
电子数据处理:用电子计算机进行的数据处理称为电子
数据处理(Electronic Data Processing),简称为
EDP
(1) 数据管理: 是数据处理的核心和基础.
(2) 数据加工:
(3) 数据传播:
5.1 数据库系统的基本概念
5.1.1 数据库、数据库管理系统、数据库系统
2. 数据库(Database,DB)


数据库是长期存储在计算机内、有组织的和可共享的数
据集合。
数据库中数据的特点:
数据库中数据的特点是“集成”和“共享”,即数
据库中集中了各种应用的数据,进行统一的构造和存储,
而使它们可被不同应用程序所使用。
数据库的建设规模、数据库信息量的大小和使
用频度已成为衡量一个国家信息化程度的重要标
志。

5.1 数据库系统的基本概念
5.1.1 数据库、数据库管理系统、数据库系统
3. 数据库管理系统(DBMS)
 数据库管理系统 (Database Management System,DBMS)
是专门用于管理数据库的计算机系统软件。数据库管
理系统能够为数据库提供数据的定义、建立、维护、查询
和统计等操作功能,并完成对数据完整性、安全性进行控
制的功能。它位于应用程序和操作系统中间,是整个数据
库系统的核心。
常用的DBMS:
小型的数据库管理软件:
严格意义上的DBMS系统:
只具备数据库管理系统的一些简单功能,如
具备其全部功能,包括数据组织、数据操纵、数据维护、控制
Foxpro和
Access等。
及保护和数据服务等。如ORACLE、PowerBuilder、SQLServer等
5.1 数据库系统的基本概念
5.1.1 数据库、数据库管理系统、数据库系统
仓库保管员
数据库管理系统
具体地说,这个保管员要:
可以把数据库看成是一个仓库,在仓库里存放着数据。把数
检查仓库的数据是否被允许(数据的定义问题),
据库管理系统看成仓库的保管员,负责数据的搬进、整理和
如何摆放最好(数据的结构问题),
搬出。
如何更快找到用户需要的数据并提取出来(数据的操纵问
题)
数据如何不被坏人提走(数据的安全性问题)
如何处理多个人同时来提货(并发控制问题)
当多个人同时来提货时,为了提高效率那么就可以一次
拿几张单子,顺路把需要的数据都取出来.
保管员所做的事情正是数据库管理系统需要做的事情。
5.1 数据库系统的基本概念
5.1.1 数据库、数据库管理系统、数据库系统
为完成数据库管理系统的功能,数据库管理系统提供了
相应的数据语言(Data Language)
数据定义语言(DDL):
Data Definition Language_DDL,该语言负责数据的模式
定义与数据的物理存取构建;
数据操纵语言(DML):
Data Manipulation Langugge_DML),该语言负责数据的
操纵,包括查询及增加、删除及增加、删除、修改等操作;
数据控制语言(DCL)
Data Control Language_DCL),该语言负责数据完整
性、安全性的定义与检查以及并发控制、故障恢复等功能。

5.1 数据库系统的基本概念
5.1.1 数据库、数据库管理系统、数据库系统
数据
能被计算机存储和处理的反
映客观实体信息的物理符号
记录
若干数据的集合
数据库 DB
数据库管理系统
DBMS
记录的集合
为用户提供一个建立、维护和使
用数据库的环境
5.1 数据库系统的基本概念
5.1.1 数据库、数据库管理系统、数据库系统
4. 数据库系统(DBS)
 数据库系统(Database System,DBS)是以数据库为核心
的完整的运行实体。它由以下五部分组成:
数据库(DB)
 数据库管理系统(DBMS)
 数据库管理员(Database Administrator,DBA):对数据库
进行规划、设计、维护和监视等工作的人员。
 系统硬件平台: 计算机、网络等硬件配置。
 系统软件平台: 操作系统、DBS开发工具(程序设计语言)
及接口软件。

数据库系统的要素组成
用户
用户
用户
硬
件
应用程序
应用程序员
应用开发工具
DBMS
OS
Database
DBA
数据库系统层次结构图
数据库用户
应用系统
应用开发工具软件
数据库管理系统
操作系统
硬件/数据库
数据库系统的构成结构
DBA
完成某一功能的应用程序1
DB
DBMS
相互有关联关
系的数据的
集合
DBAP 1
应用程序2
管理数据库的
DBAP 2
系统软件
应用程序n
DBAP n
Computer System
5.1 数据库系统的基本概念
5.1.1 数据库、数据库管理系统、数据库系统
5. 数据库应用系统(DBAS, Database Application System)
由数据库系统、应用软件、应用界面组成。应用软件是
由数据库系统所提供的数据库管理系统(软件)及数据库系
统开发工具所书写而成,而应用界面大多由相关的可视化工
具开发而成。
用户1
应用程序1
应用程序2
用户2
•••
•••
用户m
应用程序3
应用程序n
数
据
库
管
理
系
统
数 据 库 系 统
数据
记录
数据库
5.1 数据库系统的基本概念
5.1.2 数据库系统的特点
1. 数据管理的三个阶段
人工管理、文件系统和数据库技术等3个阶段(考点)
1) 人工管理阶段:50年代中期
(1)数据不保存:没有磁盘,无法保存数据
(2)由应用程序管理数据:没有操作系统
(3)数据不共享:即使两个不同应用涉及到相同的数
据,也必须各自定义,无法互相利用、互相参照。
(4)数据不具有独立性:数据无法独立于程序,它是
程序的组成部分
5.1 数据库系统的基本概念
5.1.2 数据库系统的特点
1. 数据管理的三个阶段
人工管理、文件系统和数据库技术等3个阶段(考点)
2)文件系统阶段(50年代后期~60年代中期)
数据仍存在
数据实现
相当程度的
共享
冗余
5.1 数据库系统的基本概念
5.1.2 数据库系统的特点
1. 数据管理的三个阶段
人工管理、文件系统和数据库技术等3个阶段(考点)
3)数据库系统阶段(60年代后):
数据共享
度高、冗
余度小
应用程序1
应用程序2
应用程序n
物理文件1
数据1
文件
数据库
系统
管理系统
物理文件2
数据2
数据库
物理文件n
数据n
数据库系统阶段
人工管理阶段文件系统阶段
5.1 数据库系统的基本概念
5.1.2 数据库系统的特点
2. 数据库系统的特点(考点)
(1)数据的集成性
(2)数据的高共享性与低冗余性
在DBS中按照多个应用的需要,采用统一的数据结
构方式,建立数据间的语义联系,组织全局的统一
数据的集成性使数据可为多个应用程序共享,数
的数据结构(即数据模式), 从而构成一个内在紧密
据的共享又极大地减少数据冗余( 数据冗余度小
联系的数据整体。而每个应用的数据则是全局结
是指重复的数据少),减少不必要的存储空间,
构的一部分,称为局部结构(即视图).
避免数据的不一致性。所谓数据的不一致性指的
是同一数据出现在不同的数据文件中,被系统的
不同应用程序使用而造成不同的值。
5.1 数据库系统的基本概念
5.1.2 数据库系统的特点
2. 数据库系统的特点(考点)
(1)数据的集成性
(2)数据的高共享性与低冗余性
(3)数据独立性:指程序与数据互不依赖。
物理独立性:
物理存储结构
数据的
逻辑独立性:
总体逻辑结构
与程序相互独立,其改变不需修改应用程。
5.1 数据库系统的基本概念
5.1.2 数据库系统的特点
2. 数据库系统的特点(考点)
(1)数据的集成性
(2)数据的高共享性与低冗余性
(3)数据独立性
(4)数据统一管理与控制:
(5)为用户提供了友好的接口
数据完整性检查:
数据的安全性保护:
并发控制:
数据恢复:
5.1 数据库系统的基本概念
5.1.3 数据库系统的三级模式结构和两级映射
1.数据库系统的三级模式
概念模式:
是数据库中全体数据的逻辑结构和特征的描述。一个数
据库只有一个概念模式,它与具体硬件、软件环境无关。
外模式(用户模式):
用户所见到的数据模式,即用户数据视图。是数据库局
部数据的逻辑结构和特征的描述。一个概念模式可以有若干
个外模式。
内模式(物理模式):
给出了数据库的物理存储结构与物理存取方法,即数据
在数据库内部的表示方式。一个数据库只有一个内模式。
三级模式图
应用
外模式
(用户数据库)
应用
外模式
(用户数据库)
概念模式
(概念数据库)
内模式
(物理数据库)
数据模式是数据库系统中数据
结构的一种表示形式,它具有
不同的层次与结构方式。
数据库
应用
外模式
(用户数据库)
5.1 数据库系统的基本概念
5.1.3 数据库系统的三级模式结构和两级映射
1.数据库系统的三级模式
三级模式总结
外模式: 最外层,反映用户对数据的要求。
概念模式:中层,反映设计者的全局数据逻辑要求。
内模式: 最低层,反映了数据在计算机物理结构中的实
际存储形式。
三级模式划分意义:
有利于保持数据库的数据独立性
5.1 数据库系统的基本概念
5.1.3 数据库系统的三级模式结构和两级映射
2.数据库系统的两级映射
(1)概念模式到内模式:
定义了数据的全局逻辑结构与数据的物理存储结构间的对
应关系.
(2)外模式到概念模式:
定义了外模式与概念模式的对应关系。每个外模式是概念
模式的一个基本视图。
DBS三级模式两层映射结构图
应用A
应用B
外模式1
应用C
应用D
外模式2
外模式3
外模式/概念模式映射
概念模式
概念模式/内模式映射
内模式
数据库
5.1 数据库系统的基本概念
5.1.3 数据库系统的三级模式结构和两级映射
2.数据库系统的两级映射
两级映射一般由DBMS实现保证了数据库系统
中数据的逻辑独立性和物理独立性,使用户能以
逻辑方式方便地访问数据库中的数据,而不必关
心数据在计算机中的具体表示方式与存储方式。
5.1 数据库系统的基本概念补充习题
(1)数据库系统的核心是______。
A. 数据模型
B. 数据库管理系统
C. 软件工具
D. 数据库
(2)下列叙述中正确的是______。
A. 数据库是一个独立的系统,不需要操作系统的支持
B. 数据库设计是指设计数据库管理系统
C. 数据库技术的根本目标是要解决数据共享的问题
D. 数据库系统中,数据的物理结构必须与逻辑结构一致
(3)下列模式中,能够给出数据库物理存储结构与物理存取方
法的是______。
A. 内模式 B. 外模式 C. 概念模式 D. 逻辑模式
(4)下述关于数据库系统的叙述中正确的是______。
A. 数据库系统减少了数据冗余
B. 数据库系统避免了一切冗余
C. 数据库系统中数据的一致性是指数据类型的一致
D. 数据库系统比文件系统能管理更多的数据
5.1 数据库系统的基本概念补充习题
(5)在数据管理技术的发展过程中,经历了人工管理阶段、
文件系统阶段和数据库系统阶段。其中数据独立性最高
的阶段是______。
A. 数据库系统
B. 文件系统
C. 人工管理
D. 数据项管理
(6)下列有关数据库的描述,正确的是______。
A. 数据库是一个DBF文件
B. 数据库是一个关系
C. 数据库是一个结构化的数据集合
D. 数据库是一组文件
(7)单个用户使用的数据视图的描述称为______。
A. 外模式
B. 概念模
C. 内模式
D. 存储模式
5.1 数据库系统的基本概念补充习题
(8) 数据独立性是数据库技术的重要特点之一,所谓数据
独立性是指___。(05.4)
A.数据与程序独立存放
B.不同的数据被存放在不同的文件中
C.不同的数据只能被对应的应用程序所使
D.以上三种说法都不对
(9) 下述说法中没有体现数据库系统特点是_____。
A. 数据面向应用程序
B. 数据结构化
C. 数据冗余小
D. 数据共享性高
(10) 数据库系统的三级模式分别为______模式、内部级模
式与外部级模式。
(11) 数据的物理结构(包括存储结构、存取方式等)的改
变都不影响数据库的逻辑结构,从而不致于引起应用
程序的变化,这是指数据的————。
5.2 概念模型与数据模型
5.2.1 模型

利用模型对事物进行描述是人们在认识改造世
界过程中广泛采用的一种方法,如汽车、飞机
模型等。

模型: 是对客观世界中复杂对象的描述。
例如,在军事上使用沙盘描述战场实况;
在建筑上用外貌图、平面图和侧面图描述一个
建筑物的外部特征和内部结构。
5.2 概念模型与数据模型
5.2.1 模型

模型可更形象直观揭示事物的本质特征,使人们对
事物有一个更全面深入的认识,从而帮助人们更好
地解决问题。

是否在进行数据库系统设计时也可以利用模型来帮
助我们完成工作呢?如果可以,我们利用何种模型
呢?

如同在建筑设计和施工的不同阶段需要不同的图纸
一样,在实施数据库应用中也需要使用不同的数据
模型。
5.2 概念模型与数据模型
5.2.1 模型

模型的分类:
概念模型(信息模型)
 逻辑模型(数据模型)
 物理模型


物理模型是对数据最低层的抽象,它
从概念模型到逻辑模型的转换是由数据库设计人员
描述数据在磁盘或磁带上的存储方式
完成的,从逻辑模型到物理模型的转换是由DBMS
和存取方法。
完成的,一般人员只需要了解逻辑模型就行了。
5.2 概念模型与数据模型
5.2.1 模型

为了能把现实世界的具体事物抽象组织为某一个
DBMS支持的数据模型,首先需要对这一管理活
动所涉及到的各种资料数据及其关系有一个全面
的清晰的认识,并通过采用概念模型来描述。

概念模型是现实世界到机器世界的中间层次。
客观世界的抽象过程
5.2 概念模型与数据模型
5.2.1 模型

模型分两个不同的层次。第一种是概念模型,也称
信息模型,是按用户的观点对数据和信息建模。另
一种是数据模型。

数据模型应满足三方面的要求:一是能比较真实地
模拟现实世界;二是容易为人所理解;三是便于在
计算机上实现。

数据模型是数据库系统的核心和基础。

各种DBMS软件都是基于某种数据模型。
5.2 概念模型与数据模型
5.2.1 模型

任何一种数据模型一般都是严格定义的概念
的集合。这些概念必须能准确是描述系统的
静态特征、动态特征和完整性约束条件。

数据模型由数据结构、数据操作和完整性约
束三个要素组成。
5.2 概念模型与数据模型
5.2.1 模型

数据模型三要素:

数据结构

数据结构用于描述数据的静态特征。

数据结构是所研究的对象类型的集合,是刻画一个
数据模型最重要的方面。

通常可以按数据结构的类型来命名数据模型,可分
为:网状模型、层次模型、关系模型、面向对象模
型。
5.2 概念模型与数据模型
5.2.1 模型

数据模型三要素:

数据操作

数据操作用于描述数据的动态特征。

数据操作是指对数据库中各种对象(型)的实例
(值)允许执行的操作的集合,包括操作及有关
的操作规则,主要有检索和更新(包括插入、删
除、修改)两大类操作。

数据模型必须准确地定义这些操作的确切含义、
操作符号、操作规则(优先级)以及实现操作的
语言。
5.2 概念模型与数据模型
5.2.1 模型

数据模型三要素:

数据的约束条件

数据的约束条件是一组完整性规则的集合。完整
性规则是给定的数据模型中数据及其联系所具有
的制约和储存规则,用以限定符合数据模型的数
据库状态以及状态的变化,以保证数据的正确、
有效和相容。如:年龄小于38,学生不及格课程
少于3门。
5.2 概念模型与数据模型
5.2.1 模型

数据(逻辑)模型的分类
有层次模型、网状模型、关系模型、面向对象模型等。
1)层次模型:
层次模型的结构是树型结构。 树中的每个结点代表一种
记录类型,这些结点满足如下规律:有且仅有一个结点
无双亲(根结点),其它结点有且仅有一个双亲结点。
2)网状模型:
以记录型为结点的网络,反映现实世界事物间复杂的联系。
一个结点可以有多个双亲结点;多个结点可以无双亲结
点。
层次模型
网状模型
关系模型的结构
主码
关
系
学生人事记录表
男
女
学号
姓名
性别
年龄
籍贯
9801
张明
男
20
江苏
9802
刘红
女
19
山东
9803
王明
女
20
北京
9839
张立
男
18
陕西
分量
关系名
域
属性名
元组(行)
属性(列)
关系模式:学生(学号、姓名、性别、年龄、籍贯)
数据模型比较(1)
层次模型
网状模型
定 满足:(1) 允许有一个以
义 只有一个结点 上的结点没有
没有双亲结点,双亲结点;允
称为根结点; 许结点有多个
(2)根以外 双亲结点,此
的其它结点有 外,还允许两
且只有一个双 个结点之间有
亲结点
多种联系。
实 行政机构、家 广泛存在
例 族关系
关系模
型
一个列
不可再
分的二
维表。
面向对象
模型
支持类、
对象、继
承等概念
的数据模
型。
学生、
课程
学生类
数据模型比较(2)
层次模型
1.简单,命令少,
优 易操纵。2.实体间
联系固定的应用系
统,层次模型性能
点 优于关系模型,不
次于网状模型。3.
良好完整性支持
网状模型
关系模型
1.能更直接 1.建立在严格
地描述现实 数学概念基础
世界。2.具 上。2.概念单
有良好性能, 一数据结构简
存取效率高。 单清晰。3.存
取路径透明,
数据独立性更
高。
面向对象
存储数据
和操作。
能定义嵌
套结构。
很强的模
型扩展能
力。节省
开销。
缺 表示非层次性不利。 其DDL语言极 查询效率不如 技术尚不
非关系型,需 成熟,无
点 插入删除限制较多。 其复杂。
查询子女结点须通 数据独立性 要对查询优化。 完全支持
过双亲结点。命令 差。
的DBMS产
趋于程序化。
品。
5.2 概念模型与数据模型
5.2.2 E-R模型与E-R图
E-R模型是一种广泛使用的概念数据模
型,该模型将现实世界的要求转化成实体、
联系、属性等几个基本概念,并可用E-R图
直观地表示出来。
5.2 概念模型与数据模型
5.2.2 E-R模型与E-R图
1.E–R模型中的有关概念
客观存在并可相互区别的事物。
(1)实体(Entity)
一个学生、一个部门、学生的一次选课。
(2)属性(Attribute)
实体所具有的某一特性,一个实体可以由若干个属
性值来描述。如学生实体可以由“学号、姓名、性
别、出生日期”等属性的属性值(20061001, 张三,
男,1988-5-6)来描述。
5.2 概念模型与数据模型
5.2.2 E-R模型与E-R图
1.E–R模型中的有关概念
(3)实体型(Entity Type):
用实体名及属性名集合来抽象和描述同类实体。
例如,
学生(学号、姓名、性别、出生年月、系、入学时间)
(4)实体集(Entity Set):
同种实体的集合。
全体学生就是一个实体集。
5.2 概念模型与数据模型
5.2.2 E-R模型与E-R图
1.E–R模型中的有关概念
(5)码 (key)
码是能唯一标识实体的属性。任意两个同类的实体
不可能有相同的码.如学生学号可作为学生实体的码,人
的身份证号可作为人实体的码.
(6)域 (domain)
属性的合理取值范围。
性别属性的域为(男、女),成绩属性域为0到150
5.2 概念模型与数据模型
5.2.2 E-R模型与E-R图
1.E–R模型中的有关概念
(7)联系(ralation):

联系是现实世界中普遍存在的。

在信息世界中,它反映为实体内部和实体之间的联系。


实体内部联系通常是指组成实体的各属性之间的联系,
如出生年份和年龄,总成绩和各科成绩。
两实体型之间的联系可分为三类:
 一对一,一对多,多对多
5.2 概念模型与数据模型
5.2.2 E-R模型与E-R图
1.E–R模型中的有关概念
学校
(7)联系:现实世界中事物间的联系。
↓↑
一对一: A中一个实体至多同B中的一实体相联系 校长
简记1:1 B中的一个实体也至多同A中的一个实体相联系
班级
一对多: A中一个实体同B中多个实体相联系
↓↑
简记1:m B中的一个实体只可同A中一个实体相联系 学生
多对多: A中一个实体同B中多个实体相联系
简记m:n B中的一个实体可同A中多个实体相联系
老师
↓↑
学生
5.2 概念模型与数据模型
5.2.2 E-R模型与E-R图
1.E–R模型中的有关概念
(7)联系:现实世界中事物间的联系。
三种联系的关系
 一对一联系是一对多联系的特例,一对多联系是多
对多联系的特例。
 两个以上的实体型之间同样存在一对一、一对多和
多对多联系。如教师、课程、参考书。
 同一实体集内各实体之间也存在一对一、一对多和
多对多联系。如职工实体集中存在领导与被领导关
系1:n。
5.2 数据模型
5.2.2 E-R模型与E-R图
2. E–R模型的图示法
在E–R图中,用不同的几何图形表示E–R模型中的三个
概念与两个联接关系。
三个概念:实体、属性和联系。
5.2 数据模型
5.2.2 E-R模型与E-R图
2. E–R模型的图示法
(1)实体集:用矩形表示,矩形内写上实体集的名字。
(2)属性: 用椭圆形表示属性,其内写上属性名称。
(3)联系: 用菱形表示联系,其内写上联系名。
(4)实体集(联系)与属性间的联接关系:用无向线段表示.
(5)实体集与联系间的联接关系:用无向线段表示,在线上
标注联系类型(1:1、1:n、n:m) 。
实体名
属性名
联系名
E-R模型
1:1模型
学号
姓名
年龄
性别
学生
1
拥有
1
校园卡
卡号
学号
部门
E-R模型
1:n模型
学号
姓名
年龄
性别
学生
n
属于
1
班级
班号
班主任
班长
E-R模型
m:n模型
学号
姓名
年龄
性别
学生
n
选修
m
课程
课号
课名
学分
学时

两个不同型实体间的联系

两个以上实体间的多元联系
施行社和景点及游客三个实体间存在三元联系

两个不同型实体间的多种联系
职工与工程间,一个职工可以参加多个工程,一个工
程可以有多个职工参加,同时一个工程由一个职工负责,
一个职工可以负责多个工程。

同一实体内部个体间的二元联系
ER图的设计方法

大体应遵两条原则:

①针对每一用户作出该用户信息的局部ER图,确定
该用户的实体、属性、联系。注意,能作为属性的
就不作为实体,利于简化ER图。

②综合局部ER图,生成总体ER图。在综合过程中,
同名实体只能出现一次,还要去掉不必要的联系,
以消除冗余。

一个系统的ER图不是惟一的,强调不同的侧面作出
的E-R图可能有很大不同。
ER图综合实例

1. 在课程管理系统中,涉及到班级,学生,课程,
教师,参考书等实体,假设,一个教师只可上一
门课程,一门课程可由多个教师讲授,可使用
多本参考书,画出该系统的E-R(概念)模型。
课程管理ER图
(1)实体属性图(画二个,其余略)
学生
学号
姓名
性别
班级
班级号
所属系
出生日期
课程管理ER图
(2)实体及联系图如下
成绩
课程
m
1
m
教师
讲授
n
参考书
组成
n
选修
n
学生
1
班级
ER图综合实例

2. 在物资管理中,一个供应商为多个项目供应
多种零件,一种零件只能保存在一个仓库中,一
个仓库中可保存多种零件,一个仓库有多名员
工值班,由一个员工负责管理.画出该物资管理
系统的E-R图。
物资管理ER图
(1)实体及属性图略
(2)实体及联系图如下
分步解析:
仓库
1
工作
n
职工
n个工人工作在一个仓库
仓库
m
存放
n
零件
1个仓库可以存放n种零件
1种零件可以存放于m个仓库
物资管理ER图
仓库
1
工作
n
员工
供应商
m
1
n
m
保管
供应
p
项目
n
n
领导
1个工人只能从属1个领导
1个领导可以领导n个工人
零件
1个供应商可以提供n种零件
1种零件可由n个供应商提供
1个供应商可以供应n个项目
1个项目可由p个供应商提供
1种项目需要n种零件
1种零件被用于 p个项目
ER图综合实例

3. 学校有若干系,每个系有若干班级和教研室,
每个教研室有若干教员,其中有的教授和副教
授各带若干研究生。每个班级有若干学生,每
个学生选修若干课程,每门课程可由若干学生
选修。用E-R图画出该校的概念模型。
作业
学校ER图
m
班级
m
组成
系部
1
1
1
组成
教研室
m
1
组成
组成
m
m
学生
m
1
指导
教员
m
选修
n
课程
成绩
m
n
讲授
学生管理系统的E-R模型
学号
姓名
出生日期
性别
班级
学生基本情况
n
拥有
学习
成绩
成绩
1
政治面貌
政治面貌ID
课程ID
政治面貌名称
课程名称
课程信息
学时
学分
5.3 关系数据库
关系数据库是基于关系数据模型的数据库。特点之一是
很多数学理论可以表示关系模型的数据操作。
5.3.1 关系数据模型
定义: 用关系(表格数据)表示实体和实体之间联系的
模型称为关系模型。关系就是二维表格。
学生选课登记表
学号
姓名
选修课程
任课教师
060123101
张一
软件工程
冯平
060123102
王二
计算机原理
王松
060123103
李三
软件工程
冯平
060123104
陈四
C语言
张文
5.3 关系数据库
5.3.1 关系数据模型
相关术语:
元组(记录):表格中每一行称作一个元组,也称为记录。
关系是元组的集合(一个表由若干个记录组成)。
分量: 元组中每一个属性值称为元组的一个分量,一个元组
是由n个元组分量组成。(表中的列而言)
n元关系:每一列是一个属性,列名为属性名。如果表格有n
列(n个属性),该关系是n元关系。
候选键(码):在众多的属性中,可唯一标识元组的属性或属性
集合叫候选键或码.
域:属性的取值范围
5.3 关系数据库
5.3.1 关系数据模型
关系的直观概念概括
表(Table),也称关系
列(Field),也称字段、分量或者属性
行(Row),也称元组、记录
码(Key),也称主键


关系模式:对关系的描述
关系模式表示:
关系名(属性1,属性2,属性3……)
5.3 关系数据库
5.3.1 关系数据模型
关系应满足性质:
(l) 表格中的每一列都是不可再分的,每行和每列的相交
点仅包含单个值;
(2) 任何列中的值必须是同一类型的,各列被指定一个相
异的名字;
(3) 各行相异,不允许重复;
(4) 行、列次序均无关。
关系性质1——同质的列
学号
姓名
性别
年龄
曾用名
9901
张三
男
20
张狗子
9902
李四
女
18
李朋
王五
9903
1
19
王麻子
9904
赵六
2
1981/2/28
赵薇
姓名2
曾用名
关系性质2—不同的属性名
学号 姓名 性别
年龄
姓名
9901 张三
男
20
张狗子
9902 李四
女
18
李朋
9903 王五
男
19
王麻子
9904 赵六
女
20
赵薇
关系性质3—属性无序
学号 姓名 性别
9901 张三 男
9902 李四 女
9903 王五 男
9904 赵六 女
年龄
20
曾用名
张狗子
18
19
20
李朋
王麻子
赵薇
学号 姓名 曾用名 性别
9901 张三 张狗子 男
9902 李四 李朋
女
9903 王五 王麻子 男
9904 赵六 赵薇
女
年龄
20
18
19
20
关系性质4—元组不重复
学号 姓名 性别
年龄
姓名
9901 张三
男
20
张狗子
9902 李四
女
18
李朋
9903 王五
男
19
王麻子
9904 赵六
女
20
赵薇
9901 张三
男
20
张狗子
重复的
元组!
元组
关系性质5—元组无序
学号 姓名 性别 年龄
9901 张三 男
20
9902 李四 女
18
9903 王五 男
19
9904 赵六 女
20
学号 姓名 性别 年龄
9904 赵六
女
20
9901 张三
9903 王五
9902 李四
男
男
女
20
19
18
关系性质6—分量是原子
孩子
父
母
大
小
李男 丁女 李一 李二
王男 肖女 王一
父
李男
母
丁女
王男
肖女
孩子
李一
李二
王一
母
丁女
丁女
肖女
孩子
李一
李二
王一
非规范化关系
父
母 大孩 小孩
李男 丁女 李一 李二
王男 肖女 王一
父
李男
李男
王男
规范化关系
关系数据库模式例
某关系的结构
整个数据库
某关系的实例
5.3.2 关系代数
5.3 关系数据库
1.关系模型基本操作(四种):
插入:在关系中增添一些元组(记录)
删除:在关系中删除一些元组(记录)
修改:对关系中的某些元组(记录),修改其属性值。
查询:在一个关系或多个关系间做查询,查询的结果也为关系
2.关系运算定义:
以集合代数运算方法对关系进行数据操作。
5.3.2 关系代数
5.3 关系数据库
2.关系运算定义:
以集合代数运算方法对关系进行数据操作。
三要素:运算对象、运算符和运算结果
分类:
传统的集合运算:完全把关系看作元组集合。
有并运算、交运算和差运算。
专门的关系运算:选择、投影、连接和除运算。
5.3.2 关系代数
5.3 关系数据库
2.关系运算
(1)并运算U: R∪S, R和S是同类型关系,结果也是关系,
其元组由R元组、S元组组成(去除重复元组)。
S
R
学号
1
2
姓名
张云
李风
R∪ S
成绩
学号
80
1
70
3
姓名
张云
王民
T=RUS
成绩
学号
80
90
姓名
成绩
1
张云
80
2
李风
70
3
王民
90
5.3.2 关系代数
5.3 关系数据库
2.关系运算
(2)差运算-: R-S,R和S的差是由属于R但不属于S的
元组构成的集合。
S
R
学号
姓名
成绩
学号
姓名
T=R-S
成绩
学号
姓名
成绩
2
李风
70
1
张云
80
1
张云
80
2
李风
70
3
王民
90
R-S
5.3.2 关系代数
5.3 关系数据库
2.关系运算
(3)交运算∩: R ∩S,所得是由那些既在R内又在S内的有序
元组所组成。
学号
姓名
T=R ∩ S
S
R
成绩
学号
姓名
成绩
学号
1
1
张云
80
1
张云
80
2
李风
70
3
王民
90
R∩S
姓名
张云
成绩
80
5.3.2 关系代数
5.3 关系数据库
2.关系运算
(4)笛卡尔积运算(×)
对于两个关系的合并操作可以用笛卡尔积表示。设有
n元关系R及m元关系S,分别有p、q个元组,关系R与S经笛
卡尔积记为R×S:这是一个n+m元关系,元组个数是p×q,
由R与S的有序组组合而成。
即在新关系中:
列数:两个源关系中列之和
行数:两个源关系中行数的乘积
R×S
关系R、S
笛卡
尔积
运算
举例
R
S
R1
R2
R3
S1
S2
a
d
g
b
e
h
C
f
i
1
3
5
2
4
6
T=RS
R1
R2
R3
S1
S2
a
a
a
d
d
d
g
g
g
b
b
b
e
e
e
h
h
h
c
c
c
f
f
f
i
i
i
1
3
5
1
3
5
1
3
5
2
4
6
2
4
6
2
4
6
传统集合运算例题
R—S
R∩S
R
A
B
C
A
B
C
A
B
C
a1
b1
c1
a1
b2
c2
a1
b1
c1
a1
b2
c2
a2
b2
c1
S
A
B
C
a1
b2
c2
a1
b3
c2
a2
b2
c1
a2
b2
c1
R∪S
R×S
A
B
C
A
B
C
a1
b1
c1
a1
b2
c2
a1
b1
c1
a1
b3
C2
a1
b1
c1
a2
b2
C1
A
B
C
a1
b1
c1
a1
b2
c2
a1
b2
c2
a1
b2
c2
a1
b2
c2
a1
b3
C2
a1
b2
c2
a2
b2
C1
a2
b2
c1
a1
b2
c2
a2
b2
c1
a1
b3
C2
a2
b2
c1
a2
b2
C1
a1
b3
c2
a2
b2
c1
5.3.2 关系代数
5.3 关系数据库
2.关系运算
(5)投影运算(π)
就是从关系中取出若干属性,组成一个新关系。
记作:πx (R) ={ t [X] | t ∈ R } X为R中的属性
例如:对学生选课登记表进行查询,查询出学生姓名与
选修课程的对应关系,就可利用投影操作,得到满足要
求的结果关系。
举例:对学生选课登记表查询,查询学生和选修课程对应关系
Π姓名,选修课程 (学生选课登记表)
学号
060123101
060123102
姓名
张一
王二
选修
课程
任课
教师
姓名
选修课程
软件
工程
冯平
张一
软件工程
计算
机原
理
王松
王二
计算机原
理
李三
软件工程
陈四
C语言
060123103
李三
软件
工程
冯平
060123104
陈四
C语
言…
张文
投影运算
5.3.2 关系代数
5.3 关系数据库
2.关系运算
(6)选择运算(σ)
在关系中选取满足给定条件的所有元组:
σF (R) ={t
| t ∈ R ∧ F(t)=‘真’} ,F为条件表达式
举例:对学生选课登记表查询,查询所有选修”软件
工程”的学生。
举例:对学生选课登记表查询,查询所有选修”软件工程”的学生。
σ选修课程=“软件工程” (学生选课登记表)
学号
姓名
选修课程
任课教师
060123101
张一
软件工程
冯平
060123102
王二
计算机原理
王松
060123103
李三
软件工程
冯平
060123104
陈四
C语言…
张文
学号
姓名
选修课程
任课教师
060123101
张一
软件工程
冯平
060123103
李三
软件工程
冯平
选择运算
举例:对学生表查询,查询年龄等于18岁的女生
δ年龄= 18 ∧ 性别=“女”(学生表)
学号
姓名
性别 年龄
所在系
070211201 张一
男
18
信息对抗
070211202 王二
男
19
信息对抗
070211203 李三
女
17
信息对抗
070211204 陈四
女
18
信息对抗
070211301 王二
男
19
探测制导
070211302 李三
女
17
探测制导
070211303 陈四
女
18
探测制导
学号
姓名
性别 年龄
所在系
070211204 陈四
女
18
信息对抗
070211303 陈四
女
18
探测制导
举例:查询学生表中年龄小于19岁的学生的姓名及所在系:
П 姓名, 所在系 (δ年龄< 19 (学生表))
学号
姓名
070211201 张一
性别 年龄
所在系
男
信息对抗
18
姓名
所在系
张一
信息对抗
070211202 王二
男
19
信息对抗
070211203 李三
女
17
信息对抗
李三
信息对抗
070211204 陈四
女
18
信息对抗
陈四
信息对抗
070211301 王二
男
19
探测制导
李三
探测制导
070211302 李三
女
17
探测制导
陈四
探测制导
070211303 陈四
女
18
探测制导
5.3.2 关系代数
5.3 关系数据库
2.关系运算
(7)自然连接:
将两个具有公共属性的关系,按公共属性值相等的条件
连接成一新的关系,并在结果中将重复的值去掉。
R∞S={tr ts | t r∈ R ∧ ts ∈ S ∧tr[A] = ts[B]}
姓名
选修课程
任课教师
学号
成绩
060123101 张一
软件工程
冯平
060123101
90
060123102 王二
计算机原理
王松
060123102
95
060123103 李三
软件工程
冯平
060123103
86
060123104 陈四
C语言
张文
060123104
88
学号
上面两个关系都具有公共属性”学号”,则连接结果如下:
学号
姓名
选修课程
任课教师
成绩
060123101
张一
软件工程
冯平
90
060123102
王二
计算机原理
王松
95
060123103
李三
软件工程
冯平
86
060123104
陈四
C语言
张文
88
R
S
R
∞ S
A
B
C
B
E
A
B
C
E
a1
b1
5
b1
3
a1
b1
5
3
a1
b2
6
b2
7
a1
b2
6
7
a2
b3
8
b3
10
a2
b3
8
10
a2
b4
12
b3
2
a2
b3
8
2
b5
2
练习:用关系代数完成操作
略
对三个关系模式:
学生(学号,姓名,性别,年龄,所在系),
课程(课程号,课程名,先导课程,学分),
选修(学号,课程号,成绩),
1. 查询张红的年龄。
2. 查询李明同学不及格的课程名称。
3. 查询选修了“计算机网络”的学生姓名。
4. 查询“计算机网络”成绩在90分以上的学生姓名。
5. 查询至少选修了2号课程和8号课程的学生姓名。
1.Π
5. Π年龄
=“张红”(学生))
姓名(δ姓名
(δ课程号=
2 ∧ 课程号=8(选修)) ∞学生)
成绩管理数据库
略
 例:在一个学生课程关系数据库中,包括学生关
系表,课程关系表,选修关系表,数据结构如下:
 1.学生(学号,姓名,性别,年龄,所在系)
 2.课程(课程号,课程名,先导课程,学分)
 3.选修(学号,课程号,成绩)
5.3 关系数据库
5.3.3 由E-R图导出关系模型
定义:根据实体及其联系模型生成数据库中的表,并确定
表的列。
规则:每个独立实体转换为一个关系,即二维表,然后根
据E-R图中各实体联系方式的不同,用不同的方法实现关系
之间的联系。
举例:一个实体E-R模型转换为关系表
学生实体E-R图
转
换
学生关系表
学号
姓名
性别
出生日期
表中的列就是E-R图中
实体所具有的属性
5.3 关系数据库
5.3.3 由E-R图导出关系模型
两个实体的E-R图,三种不同联系方式的E-R图转换
(1)一对一联系:两个实体集转换为关系,在两实体对应的
任一关系中多设一个属性作为外键(此外键是与之关联的
实体的主键)。
5.3 关系数据库
5.3.3 由E-R图导出关系模型
两个实体的E-R图,三种不同联系方式的E-R图转换
举例:两个实体:一对一联系
E-R图
系
系编号
系名字
系主任
系性质
年龄
姓名
实体: 系
实体: 系主任
属性:系编号、系名字、系性质
属性:年龄、姓名
5.3 关系数据库
5.3.3 由E-R图导出关系模型
两个实体的E-R图,三种不同联系方式的E-R图转换
举例:两个实体:一对一联系
E-R图
关系
导出
系
系编号
系(系编号,系名字,系性质)
系名字
1
拥有
系性质
系主任 (系编号,年龄,姓名)
1
系主任
年龄
姓名
实体: 系
实体: 系主任
属性:系编号、系名字、系性质
属性:年龄、姓名
5.3 关系数据库
5.3.3 由E-R图导出关系模型
两个实体的E-R图,三种不同联系方式的E-R图转换
(1)一对一联系:两个实体集转换为关系,在两实体对应的
任一关系中多设一个属性作为外键(此外键是与之关联的
举例:两个实体:一对一联系
实体的主键)。
即
1
系
系编号
系名字
系性质
拥有
1
系主任
年龄
系(系编号,系名字,系性质)
系主任 (系编号,年龄,姓名)
姓名
5.3 关系数据库
5.3.3 由E-R图导出关系模型
两个实体的E-R图,三种不同联系方式的E-R图转换
(2)一对多联系:两个实体集转换为关系,把“一”方实体
的主键纳入“多”方实体对应的关系中作为外键,若联系
包含属性,则将属性也纳入“多”方实体对应的关系中。
系
系编号
系名字
导出
1
系性质
拥有
n
年龄
教师
性别
系(系编号,系名字,系性质)
教师 (系编号,年龄,性别,姓名)
姓名
5.3 关系数据库
5.3.3 由E-R图导出关系模型
两个实体的E-R图,三种不同联系方式的E-R图转换
(3)多对多联系:两个实体集转换为关系,再为联系单独建立
一个关系。该关系中包含联系双方实体的主键。
学生
学号
姓名
导出
m
选修
班级
成绩
n
编号
课程
名称
学分
学生(学号,姓名,班级)
课程(编号,名称,学分)
选修(学号,编号,成绩)
新关系包含了两个多对多实体的主键及其联系属性
5.3 关系数据库
5.3.4 关系数据库规范化理论

一个数据库应用系统往往涉及到多方面的复杂的数据信
息。例如,在学生管理信息系统中,要涉及到学生、院
系、宿舍、课程、成绩等数据。再例如,在产品销售数
据库中设计到产品、类别、仓库、销售单、销售明细单
等数据。

如何将所涉及到的数据组织存入到数据库中?是放在一
个表中存放还是分放在几个表中存放?每个表应由哪些
属性组成?怎样设计才是科学合理的呢?

解决之法是用RDB设计理论:规范化理论
例如:产品报价数据库
5.3 关系数据库
5.3.4 关系数据库规范化理论
建立一个关系数据库系统,首先要考虑怎
样建立数据模式,即应该构造几个关系模式,
每个关系模式中需要包含哪些属性等,这是数
据库设计的问题。关系规范化主要讨论的就是
建立关系模式的指导原则,所以有人把关系数
据库规范化理论称为设计关系数据库的规范化
理论。
5.3 关系数据库
5.3.4 关系数据库规范化理论
1.关系模型的完整性规则
定义:是对关系的某种约束条件,通过三类完整性约束条件
描述。
(1)实体完整性:关系中的主关键字不能为空。如学生关系
中的“学号”属性值不能为空。(一个关系对应现实世界的一
个实体集,关系中每个元组对应一个实体。实体都具有唯一
性标识。)
实体完整性示例
学号
9901
9902
9903
9904
姓名 年龄 性别 所在系
张三 20
男 计算机
李四 18
女 计算机
王五 19
女 计算机
赵六 20
男 计算机
学号 课程号 成绩
9901
C1
90
9901
C2
80
9902
C2
70
9903
C3
80
主关键字不能为空
5.3 关系数据库
5.3.4 关系数据库规范化理论
1.关系模型的完整性规则
(1)实体完整性:
(2)参照完整性:关系中外关键字的取值,只能是空值或外
键对应关系的主键值。
外键:A是关系R中一属性,同时又是关系S主键,A为R外键
例:学生(学号,姓名,年龄,性别,专业号)
专业(专业号,专业名称)
“学号”是关系“学生”中的主关键字,输入时值不能为空。
“专业号”是关系“专业”的主键,是关系“学生”种的外键:
空值:表示尚未给该学生分配专业
非空值:必须是目标关系-“专业”关系中某个元组的“专业号”值
参照完整性例
学生关系
课程关系
主键
主键
学习成绩关系
外键
外键
学号 姓名
所在系
课程号
课程名
学时数
张三
李四
王五
赵六
计算机
计算机
计算机
计算机
C01
C02
C03
C04
高等数学
数据结构
操作系统
数据库
100
70
80
60
9901
9902
9903
9904
学号 课程号 成绩
9901
9901
9902
9904
9904
C01
C02
C04
C04
C03
90
80
90
85
70
参照完整性例
职工表(R2)
部门表(R1)
职工号 部门编号 姓名 …
9801
9802
9803
9804
9805
01
01
02
03
张三
李四
王五
赵六
钱七
外键
部门编号
部门名称
01
02
03
04
经理办公
室
人事部
公关部
技术部
…
主键
外键的取值,只能是空值或外键对应关系的主键值。
5.3 关系数据库
5.3.4 关系数据库规范化理论
1.关系模型的完整性规则
(1)实体完整性:
(2)参照完整性:
(3)用户定义完整性:
通常定义除主关键字与外关键字之外的其他属性取值
的约束。 例: 性别(男,女)
成绩(0~100)或(0-150)
前两种是任何关系数据库系统应满足的数据约束条件。
课程学分(1~3)
用户定义完整性是用户定义具体数据库时,由具体应用环
境来决定应满足的约束条件。
用户定义的完整性
5.3 关系数据库
5.3.4 关系数据库规范化理论
2.函数依赖
 数据依赖在关系模式中广泛存在,影响巨大。
 恰当的数据依赖是必要的。但不必要的数据依赖
会对关系模式产生不好的影响。
 进行数据库设计时要深入分析数据间的依赖。
 数据依赖:限定组成关系的各元组必须满足的完
整性约束条件。如属性的取值范围;或者属性值
间的相互关联(即数据依赖)。
5.3 关系数据库
5.3.4 关系数据库规范化理论
2.函数依赖
 关系模式中的数据依赖有多种,比较重要的是函数依赖、
多值依赖、连接依赖。
 函数依赖:关系模式中属性间的普遍存在函数依赖。
例:学生(学号,姓名,性别,年龄,所在系)
该关系模式中存在以下函数依赖:
学号—>姓名, 学号—>性别, 学号—>所在系。
 多值依赖:一门课由多个老师上,使用同一套参考书。
 连接依赖:关系与关系间往往存在联系。
学校关系模式的函数依赖
 如学校数据库模式:一个系有若干学生,一个学生只属
于一个系;一个系只有一个系主任;一个学生可以选修
多门课程,每门课程有若干同学选修;每个学生所学的
每门课程都有成绩。
 假设学校数据库模式仅由一个表构成。
学生(学号,所在系,系主任名,课程名,成绩)
 关系中存在的数据依赖为:
学号
系主任名
所在系
系主任名
成绩
函数依赖对关系模式的影响
 关系模式:
学生(学号,所在系,系主任名,课程名,成绩)
存在一些问题:
(1). 数据冗余太大: 所在系,系主任名,课程名重复保存。
(2). 更新异常。
(3). 插入异常。
(4). 删除异常。
 为什么会出现这些问题呢?
 因为存在不合适的数据依赖!
5.3 关系数据库
5.3.4 关系数据库规范化理论
2.函数依赖
函数依赖: 一个关系模式中,如果某个属性组X的值确定,
则其他属性的值唯一确定,称此属性组函数决定其他的属性。
或称其他属性函数依赖于此属性组。
记为X->Y
5.3 关系数据库
5.3.4 关系数据库规范化理论
函数依赖的分类:
(1)
平凡的函数依赖:若X->Y,并且Y是X的子集。
非平凡的函数依赖:若X->Y,并且Y不是X的子集。
例如:成绩表(学号,课号,成绩)
(学号,课号)→学号;平凡的函数依赖
(学号,课号)→成绩;非平凡的函数依赖
说明:
(1)对任一关系模式,平凡函数依赖必然成立。
(2)这里只讨论非平凡函数依赖。
(3)非平凡函数依赖易产生问题。
5.3 关系数据库
5.3.4 关系数据库规范化理论
函数依赖的分类:
(2)
完全函数依赖:若X->Y, X的任意子集X’,都没有X’->Y
部分函数依赖:若X->Y,并且存在X的子集X',有X'->Y
例如:完全函数依赖:课程号→ 教师
部分函数依赖:(学号,课程号)→ 教师
(3) 说明:
若有X->Y,但没有Y->X,且有Y->Z,则X->Z成立,则称为Z
(1)部分函数依赖易产生问题
传递函数依赖于X。
(2)完全函数依赖中,X为决定属性,Y为非决定属 性
例如:(学号,课号) → 课号→ 成绩
5.3 关系数据库
5.3.4 关系数据库规范化理论
3.关系模型的范式:目的是构造好的数据库
关系数据库中的关系要满足一定的要求,满足不同程度
的要求为不同的范式。
规范化的理论是E.F.Codd首先提出的。他认为,一个关
系数据库中的关系,都应满足一定的规范,才能构造出好的
数据模式,Codd把应满足的规范分成几级,每一级称为一个
范式(Normal Form)。例如满足最低要求,叫第一范式(1NF);
在1NF基础上又满足一些要求的叫第二范式(2NF);第二范式
中,有些关系能满足更多的要求,就属于第三范式(3NF)。后
来Codd和Boyce又共同提出了一个新范式:BC范式(BCNF)。以
后又有人提出第四范式(4NF)和第五范式(5NF)。范式的等级
越高,应满足的条件也越严。
5.3 关系数据库
5.3.4 关系数据库规范化理论
3.关系模型的范式:
1NF
2NF
3NF
BCNF
4NF
5NF
各种范式之间的关系
范式的等级越高,应满足的条件也越严
5.3 关系数据库
5.3.4 关系数据库规范化理论
3.关系模型的范式:
(1)第一范式:关系R中的每个属性(列)都是不可再分的,
或每个属性的域都只包含单纯值,而不是一些值的集合,
则称关系R满足第一范式。记为R∈1NF。
例: 下面的关系不符合第一范式:因为属性的域值可以拆分
学号
课程
1011
{C++ 程序设计,软件工程}
1012
{Access数据库,专业英语}
5.3 关系数据库
5.3.4 关系数据库规范化理论
3.关系模型的范式:
(1)第一范式:
学号
课程
1011
{C++ 程序设计,软件工程}
1012
{Access数据库,专业英语}
1.更新困难:
如果1011同学想把选修课程改为{Access数据库,
专业英语},则系统在处理上面临二义性:
(1)修改1011记录的课程属性值
(2)把学号属性值扩充为{1011,1012}
2.插入困难:无法在此关系中加入“成绩”属性
5.3 关系数据库
5.3.4 关系数据库规范化理论
3.关系模型的范式:
第一范式的判断方法:
(1)第一范式:
检查关系表中每个
属性值是否都是不可再
分解的最小数据单位。
将非第一范式规范为第
一范式的方法:
依次检查每个属性
的取值,如果是组合情
况,即不是最小单位,
就进行属性值的最小化
拆分。
学号
课程
1011 {C++ 程序设计,软件工程}
1012 {Access数据库,专业英语}
转换为符
合第一范式
学号
课程
1011
C++ 程序设计
1011
软件工程
1012
Access数据库
1012
专业英语
5.3 关系数据库
5.3.4 关系数据库规范化理论
3.关系模型的范式:
(2)第二范式:若R∈1NF,并且每个非主属性都完全函数依赖
于关键字,则称为是第二范式的模式,记为R∈2NF。
例:R1(姓名,学号,年龄,课程编号,课程名),学号是候
选关键字。请分析该关系数据库是否满足第二范式。
姓名
学号
年龄
课程编号
课程名
陈军
001
15
C101
数据管理技术
陈军
001
15
C102
多媒体技术应用
陈军
001
15
C105
人工智能初步
…
…
…
…
…
姓名
学号
年龄
课程编号
课程名
陈军
001
15
C101
数据管理技术
陈军
001
15
C102
多媒体技术应用
陈军
001
15
C105
人工智能初步
…
…
…
…
…
分析:上表每个属性都是单纯值,满足第一范式
非主属性“姓名” 、“年龄”函数依赖于“学号”。
(学号确定,则姓名、年龄唯一确定)
非主属性 “课程编号”、“课程名”函数不依赖于“学号”
(一个学号多门课程编号、课程名)
因为存在非关键字属性不依赖于候选关键字的情况,所以R1
不满足第二范式。
第二范式的判断方法(了解)



找出一个关系(表)中的主键
单个属性作为主键的情况比较简单,因为主键的作用就是
能唯一标识表中的每一行,关系中的非主属性都能完全函
数依赖于主键,这样的关系是第二范式。
对组合属性作为主键的那些关系,通常要判断每一个非主
键属性是否能完全函数依赖于主键,即完全由主键所决定。
若每一个非关键字属性能被主键所决定,则是第二范式,
否则,就不是。
不符合第二范式的实例及缺点
学生选课关系表:主键为: (学号,课号)
学号
姓名
系
系负责人
课号
成绩
1011
张红
计算机
刘超
2013
87
1011
张红
计算机
刘超
2011
90
1012
李丽
电子
王干
2012
80
插入异常:
无法插入还未选课的,由于该学生无课号属性,其相应的码
值一部分为空,故该学生的固有信息无法插入;
删除异常:
某学生只选了一门课,若现在要放弃这门课,由于课号是主键
的一部分,整个记录必须删除,该学生的其他信息也删除了;
修改复杂:若张红从计算机系转入动画系,必须修改系负责人,
该生选修了多门课,要修改多条记录
将不符合第二范式的变为符合第二范式实例
学号
姓名
1011
张茗
1011
1012
系
系负责人
课号
成绩
计算机
刘超
2013
87
张茗
计算机
刘超
2011
90
李丽
电子
王干
2012
80
将非第二范式规范为第二范式的方法
1)将能完全依赖主键的属性从关系中提取出来,同主键一起组成一个
关系
如:SC(学号,课号,成绩)
2)将剩余的属性同能完全依赖的主键的一部分组成一个关系
SD(学号,姓名,系,系负责人)
学号
课号
成绩
1011
2013
87
1011
2011
1012
2012
学号
姓名
系
系负责人
90
1011
张红
计算机
刘超
80
1012
李丽
电子
王干
补充习题讲解
1. 用树形结构来表示实体之间联系的模型称为______。
A. 关系模型
B. 层次模型
C. 网状模型
D. 数据模型
2. 下列说法中,不属于数据模型所描述的内容的是_____.
A. 数据结构
B. 数据操作
C. 数据查询
D. 数据约束
3. 下面列出的数据模型中_____是概念数据模型.
A. 关系模型
B. 网状模型
C. 层次模型
D. 实体-联系模型
4. 关系表中的每一横行称为一个______。
A. 元组 B. 字段 C. 属性
D. 码
5. 关系数据库管理系统能实现的专门关系运算包括______。
A. 排序、索引、统计
B. 选择、投影、连接
C. 关联、更新、排序
D. 显示、打印、制表
6. 索引属于______。
A. 模式 B. 内模式 C. 外模式 D. 概念模式
BCDABB
在关系数据库中,用来表示实体之间联系的是______。
A. 树结构 B. 网结构 C. 线性表 D. 二维表
8. 将E-R图转换到关系模式时,实体与联系都可以表示成____。
A. 属性 B. 关系 C. 键 D. 域
9. 设属性A是关系R的主属性,则属性A不能取空值(NULL),这是
A. 实体完整性约束
B. 参照完整性约束
C. 用户定义完整性约束
D. 域完整性约束
10. 下列关系运算中,____不要求关系R和S具有相同的属性个数.
A. R ∩ S B. R ∪ S C. R - S D. R × S
11. 在数据库技术中,独立于计算机系统的模型是____
A. E-R模型 B. 层次模型 C. 关系模型 D. 网状模型
12. 按条件f对关系R进行选择,其关系代数表达式为______。
A. R|X|R
B. R|X|R
C. бf(R)
D. πf(R)
iθj
7.
DBADAC
13. 在数据库的三级结构中,外模式有——
A. 1个 B. 2个 C. 3个 D. 任意多个
14. 下列关于“联系”的描述,正确的是____.
A. 联系不是实体,也没有属性
B. 联系是实体, 但没有属性
C. 联系不是实体,但有属性
D. 联系是实体,也有属性
15. 对关系S和关系R进行集合运算,结果中既包含S中元组也包
含R中元组,这种集合运算称为——
A. 并运算 B. 交运算 C. 差运算
D. 积运算
DCA
1.
如果一个工人可管理多个设施,而一个设施只被一个工人管理,则
实体“工人”与实体“设备”之间存在______联系。
2.
关系数据库管理系统能实现的专门关系运算包括选择、连接和
______。
3.
关系模型的完整性规则是对关系的某种约束条件,包括实体完整
性、______和自定义完整性。
4.
5.
6.
数据模型按不同的应用层次分为三种类型,它们是______数据模
型、逻辑数据模型和物理数据模型。
数据库系统中实现各种数据管理功能的核心软件称为______。
关系模型的数据操纵即是建立在关系上的数据操纵,一般有
______、增加、删除和修改四种操作。
1.一对多或#1:N或1:n、 2. 投影 3. 参照完整性
5. 数据库管理系统或DBMS 6. 查询
4.概念
7. 数据库管理系统常见的数据模型有层次模型、网状模型和
______三种。
8. 设关系R是4元关系,有5个元组,关系S是一个5元关系,有6
个元组,关系T是R与S的笛卡尔积,即T=R×S,则关系T是____
元关系,包括 ____个元组.
9. 在关系数据库管理系统中,表是数据库的三级模式结构中
的____模式,而用户创建的视图在数据库的三级模式结构
中属于____模式.
10.数据库的物理结构在计算机存储空间中的存放形式称为数
据库的____.
7.关系模型 8. 9、30
9.概念、外 10.内模式
5.4 数据库设计

成功的数据库设计是应用系统开发的基础。

数据库设计是一项非常复杂的工作,必须严
格按照工程化步骤实施。

数据库设计还需要丰富的经验。

数据库设计要求形成规范完整的文档资料。
5.4 数据库设计
目的:设计出能满足用户需求的性能良好的数据库。
基本任务:根据用户对象的信息需求、处理需求和数据
库支持环境(硬件、操作系统与DBMS),设计出数据模式。
信息需求:主要是指用户需要从数据库中获
得信息的内容与性质,确定用户对象的数据
及其结构,它反映了数据库的静态要求。
数据库设计中的两种方法:
处理需求:表示用户对象的行为和动作,即
用户要完成什么处理功能,它反映了数据库
面向数据的方法:以信息需求为主,兼顾处理需求
的动态要求。
面向过程的方法:以处理需求为主,兼顾信息需求

5.4 数据库设计
数据库设计过程
需求分析
(调研分析)
→ 概念设计 →
(E-R模型)
逻辑设计
(转换成某种DBMS
支持的逻辑数据模型,
如关系型)
→ 物理设计 → 实施与运行维护
(在存储设备上选定
存储结构和方法,一
般由DBMS完成)
5.4 数据库设计
1.需求分析
需求分析的任务

(1).通过详细调查现实世界要处理的对象(企业、
组织、部门等),充分了解原系统的工作情况,明
确用户各种需求,然后在此基础上确定新系统的功
能。

(2).重点是调查、收集与分析用户在数据管理中的
信息要求、处理要求、安全性要求、与完整性要求。
5.4 数据库设计
1.需求分析
需求分析的步骤
调查与初步分析用户需求需要四步:
 (1).调查组织机构总体情况
 (2).熟悉业务活动
 (3).明确用户需求
 (4).确定系统边界。
需求分析流程图
需求分析
调查组
织机构
总体情
况
熟
悉
业
务
活
动
用户
数据库设计人
员
明确
用户
需求
确定
系统
边界
DFD
DD
概念
设计
5.4 数据库设计
1.需求分析
调查的方法






(1)跟班作业
(2)开调查会
(3)请专人介绍
(4)询问
(4)设计调查表请用户填写
(5)查阅历史记录。
分析的方法
自顶向下分析
自底向上分析
5.4 数据库设计
1.需求分析
 需要形成的规范化文档:数据流图、数据字典
 数据流图:用来描述业务的流程。
 数据字典:用来描述系统中的数据。
 复杂处理过程的处理逻辑常用判断表和判断树
来描述。
数据流图一般画法
数据存储
数据来源




数据流
处理
数据流
数据输出
数据流:用标有名字的箭头表示有流向的数据。
数据处理:用标有名字的圆圈表示对数据进行加工或变换。
数据文件:以类似书本的符号表示数据暂存的处所对数据文件
进行的处理,可以用指向或离开的箭头表示。
数据来源及终点:用命名的方框表示,表明数据的来源或数据
去向。
教务管理数据流图
考试安排 成绩通知单 如未通过重修补考单
教室时间安排 教材
学生
介绍
填
选
课
单
同
意
否
P1
选课
课
程
安
排
表
课时安排
接
受
否
介绍
选课单
补考名单
教材目录
课程目录
P2
上课
准考证
成绩单
P3
考试
学生名单
课堂检查
试卷
选课名单
平时成绩
考试表
选教材 评平时成绩
教师
教室安排
教师档案
考试安排
出试卷 评成绩
进销存管理高层数据流程图
采购员
仓管员
进货单
P1
进货
验收审核
入库单
P2
入库
客户订货
缺货
出库单
销售单
P3
销售
库存台帐
进货帐
供方
销售员
付款审核
P4
出库
销售帐
客户
库存台帐
略
5.4 数据库设计
2.概念设计

概念结构设计是将需求分析得到的用户需求抽象成信
息结构(概念结构)。

概念结构独立于逻辑结构和支持数据库的DBMS。它
是现实世界和机器世界的中介,是现实世界的真实模
型,易于理解,便于同不熟悉计算机的用户进行交流,
这是整个数据设计的关键所在。

概念结构设计一般使用ER图完成。
5.4 数据库设计
2.概念设计

目的:在需求分析的基础上,确定系统中所包含的
实体,分析每个实体所具有的属性,以及实体之间
的关系。
5.4 数据库设计
2.概念设计
 概念结构方法设计分四类。最常用的方法是自底向上
方法,即自顶向下进行需求分析,再自底向上设计概
念结构。




自底向上:先定义各局部应用的概念结构,再集成为
全局概念结构。
自顶向下:先定义全局概念结构,再细化。
逐步扩充:先定义最重要的核心概念结构,再逐步扩
充形成全局概念结构。
混合策略:自顶向下和自底向上相结合,自顶向下设
计全局概念结构框架。再自底向上设计各局部应用的
概念结构。
5.4 数据库设计
2.概念设计
概念结构设计的步骤
概念结构设计
抽象数
据,设
计局部
视图
需求
分析
DFD
分ER图
集成视
图
逻辑结
构设计
总ER图
5.4 数据库设计
2.概念设计
数据库概念设计(E–R模型与视图集成法)的过程

首先选择局部应用;

再进行局部视图设计即E-R图设计;

最后对局部视图进行集成得到概念视图。
①选择局部应用:
根据系统的具体情况,在多层的的数据流图中选
择一个适当层次的数据流图,让这组图中每一部分对
应一个局部应用,以这一层次的数据流图为出发点,设
计分E-R图
教务管理的概念模型
m
学生
指
导
1
教师
m
n
选
修
n
课程
1
m
讲
授q
使
用
1
成绩
教材
教室
p
课时
5.4 数据库设计
2.概念设计
数据库概念设计(E–R模型与视图集成法)的过程
②局部视图设计次序(补充) :
局部视图设计一般有3种设计次序:
自顶向下、由底向上和由内向外
自顶向下:先从抽象级别高且普遍性强的对象开始逐
步细化、具体化与特殊化。
由底向上:先从具体的对象开始,逐步抽象、普遍化
与一般化,最后形成一个完整的视图设计。
由内向外:先从最基本与最明显的对象着手,逐步扩
充至非基本、不明显的其它对象。
5.4 数据库设计
2.概念设计
数据库概念设计(E–R模型与视图集成法)的过程
③视图集成:视图集成的实质是将所有的局部视
图统一并合并成一个完整的数据模式,在进行视
图集成时,最重要的工作便是解决局部设计中的
冲突。
命名冲突:同名异义和同义异名两种。
概念冲突:同一个概念在一处为实体,而在另
一处是属性或联系。
域冲突: 相同的属性在不同视图中有不同的
域约束冲突:不同的视图可能有不同的约束
5.4 数据库设计
3.逻辑设计和物理设计
逻辑设计:
主要工作是将E–R图转换成指定RDBMS(关系数
据库管理系统)中的关系模式。
物理设计:
设计数据库物理结构,包括选择存储结构、确定
存取方法、确定数据的存放位置并选择合理的存取路径,
以提高数据库访问速度及有效利用存储空间,一般由数
据库系统自动完成。
逻辑结构设计三步图
逻辑结构设计
概念结
构设计
转 化 为
特
定
DBMS支
持 的 数
据模型
转化为
一般数
据模型
基本ER图
转换
规则
特
定
DBMS 特
点与限制
优化模
型
优化
方法
物理
设计
逻
辑
模
型
数据库物理设计步骤
数据库物理设计
确定DB
的物理
结构
逻辑结
构设计
逻
辑
模
型
评 价
DB 的
物理结
构
物
理
模
型
数据
库实
施
数据库实施步骤图
数据库实施
建 立
数 据
库 结
构
数据库
物理设
计
物
理
模
型
组 织
数 据
入库
数据
库试
运行
编 制
调 应
用 程
序
数据库系统
数据库
运行与
维护
5.4 数据库设计
4.数据库维护和管理
1)数据库调整:数据库运行一段时间后往往产生一些
不适应的情况,需调整,由DBA(数据库管理员)完
成。
调整包括下面内容:
 调整关系模式与视图使之更能适应用户的需求;
 调整索引与集簇使数据库性能与效率更佳;
 调整分区、数据库缓冲区大小以及并发度使数据库
物理性能更好。
5.4 数据库设计
4.数据库维护和管理
2)数据库重组:运行一定时间后,不断的修改、
删除与插入造成数据库系统性能逐步下降(盘上有
废块、集簇性下降,存储空间的零散化等,从而造
成存取效率下降),需要对数据库进行重新整理,
此种工作叫数据库重组。
5.4 数据库设计
4.数据库维护和管理
3)数据库安全性控制与完整性控制:
DBA应采取措施保证数据不受非法盗用与破坏,保证
数据的正确性。
4)数据库的故障恢复:
一旦数据库中的数据遭受破坏,需要及时进行恢复。
5)数据库监控:
DBA需随时观察数据库的动态变化,并在发生错误、
故障或产生不适应情况时随时采取措施。如数据库死锁、
对数据库的误操作等;同时还需监视数据库的性能变化,
在必要时对数据库进行调整。
1. 数据库设计包括两个方面的设计内容,它们是______。
A. 概念设计和逻辑设计
C. 内模式设计和物理设计
B. 模式设计和内模式设计
D. 结构特性设计和行为特性设计
2. 视图设计一般有3种设计次序,下列不属于视图设计的是___。
A. 自顶向下
B. 由外向内 C. 由内向外
D. 自底向上
3. 在数据库设计中,将E-R图转换成关系模型的过程属于——
A. 需求分析阶段
C. 概念设计阶段
B. 逻辑设计阶段
D. 物理设计阶段
4. 在关系数据库设计中,设计视图是——阶段的工作。
A. 需求分析
B. 物理设计
C. 逻辑设计
D. 概念设计
5.全局E-R模型的设计,需要消除命名冲突、概念冲突、域冲突和———。
A. 约束冲突
B. 联系冲突
C. 类型冲突
D. 实体冲突
6.数据库设计中,在概念设计阶段可以用E-R方法,其设计出的图称为
A.实用概念图 B. 实体联系图 C. 实体表示图
D. 实体示意图
ABBDAB
1.数据库设计分为以下6个设计阶段:需求分析阶段、______、逻
辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。
2.数据库保护分为:安全性控制 、______、并发性控制和数据的
恢复。
3.数据库在经过一定时间运行后,其性能逐步下降,这时需要对数
据库进行______
4.当将局部E-R图集成为全局E-R图时,如果同一个对象在一个局部
E-R图中作为实体,而在另一个局部E-R图中作为属性,这种现象
称为————冲突。
1.
2.
3.
4.
概念设计阶段或数据库概念设计阶段
完整性控制
重组
概念