第 4 章 数据库设计基础
4.1 数据库的基本概念
数据是数据库中存储的基本对象,它是描述事物的符号记录。 数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合,它具
有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被 各个应用程序所共享,所以数据库技术的根本目标是解决数据共享问题。
数据库管理系统(dbms,database management system)是数据库的机构, 它是一种系统软件,负责数据库中的数据组织、数据操作、数据维护、控制及保 护和数据服务等。数据库管理系统是数据系统的核心。
为完成数据库管理系统的功能,数据库管理系统提供相应的数据语言:数据 定义语言、数据操纵语言、数据控制语言。
4.2 数据库系统的发展和基本特点
1. 数据库系统的发展
数据管理技术的发展经历了 3 个阶段:人工管理阶段、文件系统阶段和数据 库系统阶段。
关于数据管理三个阶段中的软硬件背景及处理特点,简单概括可见表 4-1。
表 4-1 数据管理三个阶段的比较
人工管理阶段 文件管理阶段 数据库系统管理阶段
背景 应用目的 科学计算 科学计算、管理 大规模管理
硬件背景 无直接存取 设备
磁盘、磁鼓
大容量磁盘
软件背景 无操作系统 有文件系统 有数据库管理系统
处理方式
批处理 联机实时处理、 批处理 分布处理、联机实时处理和 批处理
22
特点 数据管理者 人 文件系统 数据库管理系统
数据面向的 对象
某个应用程序
某个应用程序
现实世界
数据共享程度 无共享,冗余 度大 共享性差,冗余 度大
共享性大,冗余度小
数据的独立性 不独立,完全 依赖于程序
独立性差 具有高度的物理独立性和 一定的逻辑独立性
数据的结构化
无结构 记录内有结构, 整体无结构 整体结构化,用数据模型 描述
数据控制能力 由应用程序控 制
应用程序控制 由 dbms 提供数据安全性、 完整性、并发控制和恢复
2. 数据库系统的特点
数据独立性是数据与程序间的互不依赖性,即数据库中的数据独立于应用程 序而不依赖于应用程序。
数据的独立性一般分为物理独立性与逻辑独立性两种。
①物理独立性:当数据的物理结构(包括存储结构、存取方式等)改变时, 如存储设备的更换、物理存储的更换、存取方式改变等,应用程序都不用改变。
②逻辑独立性:数据的逻辑结构改变了,如修改数据模式、增加新的数据类 型、改变数据间联系等,用户程序都可以不变。
4.3 数据库系统的内部体系结构
1. 数据统系统的 3 级模式
①概念模式,也称逻辑模式,是对数据库系统中全局数据逻辑结构的描述, 是全体用户(应用)公共数据视图。一个数据库只有一个概念模式;
②外模式,外模式也称子模式,它是数据库用户能够看见和使用的局部数据 的逻辑结构和特征的描述,它是由概念模式推导而出来的,是数据库用户的数据
23
③内模式,内模式又称物理模式,它给出了数据库物理存储结构与物理存取 方法。
内模式处于最底层,它反映了数据在计算机物理结构中的实际存储形式,概 念模式处于中间层,它反映了设计者的数据全局逻辑要求,而外模式处于最外层, 它反映了用户对数据的要求。
2. 数据库系统的两级映射
两级映射保证了数据库系统中数据的独立性。
①概念模式到内模式的映射。该映射给出了概念模式中数据的全局逻辑结构 到数据的物理存储结构间的对应关系;
②外模式到概念模式的映射。概念模式是一个全局模式而外模式是用户的局 部模式。一个概念模式中可以定义多个外模式,而每个外模式是概念模式的一个 基本视图。
4.4 数据模型的基本概念
数据模型从抽象层次上描述了数据库系统的静态特征、动态行为和约束条 件,因此数据模型通常由数据结构、数据操作及数据约束三部分组成。
数据库管理系统所支持的数据模型分为 3 种:层次模型、网状模型和关系模 型。数据模型特点见表 4-2。
表 4-2 各种数据模型的特点
发展阶段 主要特点
层次模型 用树形结构表示实体及其之间联系的模型称为层次模型,上级结点与下级结点 之间为一对多的联系
网状模型 用网状结构表示实体及其之间联系的模型称为网状模型,网中的每一个结点代 表一个实体类型,允许结点有多于一个的父结点,可以有一个以上的结点没有 父结点
关系模型 用二维表结构来表示实体以及实体之间联系的模型称为关系模型,在关系模型 中把数据看成是二维表中的元素,一张二维表就是一个关系
24
4.5 e-r模型
1. e-r 模型的基本概念
①实体:现实世界中的事物可以抽象成为实体,实体是概念世界中的基本单 位,它们是客观存在的且又能相互区别的事物;
②属性:现实世界中事物均有一些特性,这些特性可以用属性来表示;
③码:唯一标识实体的属性集称为码;
④域:属性的取值范围称为该属性的域;
⑤联系:在现实世界中事物间的关联称为联系。 两个实体集间的联系实际上是实体集间的函数关系,这种函数关系可以有下
面几种:一对一的关系、一对多或多对一关系、多对多关系。
2. e-r 模型的的图示法
e-r 模型用 e-r 图来表示。
①实体表示法:在 e-r 图中用矩形表示实体集,在矩形内写上该实体集的 名字;
②属性表示法:在 e-r 图中用椭圆形表示属性,在椭圆形内写上该属性的 名称;
③联系表示法:在 e-r 图中用菱形表示联系,菱形内写上联系名。
4.6 关系模型
关系模式采用二维表来表示,一个关系对应一张二维表。可以这么说,一个 关系就是一个二维表,但是一个二维表不一定是一个关系。
元组:在一个二维表(一个具体关系)中,水平方向的行称为元组。元 组对应存储文件中的一个具体记录;
属性:二维表中垂直方向的列称为属性,每一列有一个属性名;
域:属性的取值范围,也就是不同元组对同一属性的取值所限定的范围。 在二维表中惟一标识元组的最小属性值称为该表的键或码。二维表中可能有
若干个健,它们称为表的侯选码或侯选健。从二维表的所有侯选键选取一个作为
25
值为 a 的外键或外码。 关系模型采用二维表来表示,二维表一般满足下面 7 个性质:
①二维表中元组个数是有限的——元组个数有限性;
②二维表中元组均不相同——元组的唯一性;
③二维表中元组的次序可以任意交换——元组的次序无关性;
④二维表中元组的分量是不可分割的基本数据项——元组分量的原子性;
⑤二维表中属性名各不相同——属性名唯一性;
⑥二维表中属性与次序无关,可任意交换——属性的次序无关性;
⑦二维表属性的分量具有与该属性相同的值域——分量值域的统一性。 关系操纵:数据查询、数据的删除、数据插入、数据修改。 关系模型允许定义三类数据约束,它们是实体完整性约束、参照完整性约束
以及用户定义的完整性约束。
4.7 关系代数
1. 传统的集合运算
(1)投影运算 从关系模式中指定若干个属性组成新的关系称为投影。
投影是从列的角度进行的运算,相当于对关系进行垂直分解。经过投影运算 可以得到一个新的关系,其关系模式所包含的属性个数往往比原关系少,或者属 性的排列顺序不同。
(2)选择运算 从关系中找出满足给定条件的元组的操作称为选择。
选择是从行的角度进行的运算,即水平方向抽取记录。经过选择运算得到的 结果可以形成新的关系,其关系模式不变,但其中的元组是原关系的一个子集。
(3)迪卡尔积
设有 n 元关系 r 和 m 元关系 s,它们分别有 p 和 q 个元组,则 r 与 s 的笛 卡儿积记为:r×s。
26
2. 关系代数的扩充运算
(1)交
假设有 n 元关系 r 和 n 元关系 s,它们的交仍然是一个 n 元关系,它由属于 关系 r 且由属于关系 s 的元组组成,并记为 r∩s,它可由基本运算推导而得:
r∩s = r – (r–s)
4.8 数据库设计与原理
数据库设计中有两种方法,面向数据的方法和面向过程的方法: 面向数据的方法是以信息需求为主,兼顾处理需求;面向过程的方法是以处
理需求为主,兼顾信息需求。由于数据在系统中稳定性高,数据已成为系统的核 心,因此面向数据的设计方法已成为主流。
数据库设计目前一般采用生命周期法,即将整个数据库应用系统的开发分解 成目标独立的若干阶段。它们是:需求分析阶段、概念设计阶段、逻辑设计阶段、 物理设计阶段、编码阶段、测试阶段、运行阶段和进一步修改阶段。在数据库设 计中采用前 4 个阶段。