第1章 数据库系统概述
1、数据:
数据是数据库中存储的基本对象,在现代计算机系统中,数字、文本、图像、声音、视频等都是数据。
①数据的定义是用来记录信息的可识别的符号组合,是信息的具体表现形式。
②数据的表现形式是多样的,可以用多种不同的数据形式表示同一个信息。
③信息是客观世界中各种事物的特征或运动状态在人脑中的反映,提现了人们对事物的 认识和理解程度。(数据是信息的符号表示,又称载体;信息则是数据的内涵,是 对数据语义的解释。)
2、数据管理技术
数据管理指数据的收集、整理、组织、存储、检索和维护等操作处理过程,是数据处理的核心任务。
数据处理(也称信息处理)指从某些已知的数据出发,推导整理出一些新的数据,使其表现出一些新的信息的过程,涉及到数据的收集、管理、加工直至产生新信息的全过程。
3、数据管理技术的发展
①人工管理阶段:
特点:
(1)不保存数据
(2)应用程序管理数据
(3)数据不共享,冗余度大
(4)程序与数据不具有独立性
②文件系统管理阶段
特点:
(1)数据可以长期保存
(2)文件系统管理数据
(3)程序与数据之间有一定的独立性
缺点:
(1)数据共享性差,冗余度大
(2)数据独立性差
③数据库系统管理阶段
特点:
(1)以数据库形式保存,有结构
(2)
4、数据库系统的3个发展阶段
①第一代数据库系统
典型:层次型数据库、网状型数据库
②第二代数据库系统
典型:关系型数据库、分布式数据库
③第三代数据库系统
典型:多媒体数据库、时态数据库、空间数据库、面向对象数据库、并行数据库系统、数据仓库、移动数据库、XML数据管理技术
5、数据库(DataBase,DB)
数据库是指在计算机的存储设备上合理存放的,相关联、有结构的数据集合。
①数据库首先是在计算机的存储设备上存放的
②数据库是一个数据集合
③数据集合是有结构的
④数据集合是相关联的
⑤数据集合是合理存放的
⑥有较小的冗余度和较高的独立性
6、数据库管理系统(DataBase Management System,DBMS)
是指位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问数据库的方法,包括数据定义、查询、更新及各种数据控制。
7、数据库系统
数据库系统包括与数据库有关的整个系统,一般由数据库、数据库管理系统、应用程数据库的软硬件支撑环境、数据库管理员(DBA)和用户。
8、数据库系统的特点
①数据结构化
数据结构化是文件系统与数据库系统的根本区别之一。
数据库系统中的数据采用一定的数据模型来组织、描述和存储,数据模型不仅描述数据 本身的特征,还能够描述现实世界中各种数据组织和数据间的联系。
②数据冗余度小、共享性高,避免了数据的不一致性
③数据独立性高
数据独立性是指数据库中的数据与应用程度之间相互独立、互不依赖。
数据独立性分为逻辑独立性和物理独立性
(1)逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,数据库的逻辑结构发生变化时,用户的程序不需要改变。
(2)物理独立性是指用户的应用程序与数据库的存储结构是相互独立的。改变数据库的存储结构时,不影响逻辑结构。
④统一数据管理和控制功能
(1)数据的安全性保护
数据的安全性保护是指保护数据以防止不合法的使用造成的数据泄密和破坏,每个用户只能按规定对某些数据以某些方式进行访问和处理。
例如:用户每次进入系统时,需要输入密码
(2)数据的完整性控制
数据的完整性是指数据的正确性、有效性、相容性。
ⅰ、正确性:指数据的合法性(例如:数值型数据只能包含数字,不能包含特殊字符)
ⅱ、有效性:指数据是否在定义的有效范围(例如:月份只能用1~12的正整数表示)
ⅲ、相容性:指表示同一事实的两个数据应相同,不一致就是不相容(例如:一个人不能有两个性别)
(3)并发控制
并发控制是指多个用户同时存取或者修改数据库时,避免因发生相互干扰而提供给用户不正确的数据,防止数据库受到破坏的各种技术。(例如:多个用户可以同时读数据,但是同一时间只能允许一个用户写数据)
(4)数据库恢复
数据库恢复是指将数据库从错误状态恢复到某一正确状态的功能。
9、数据模型
数据模型是模型的一种,是对现实世界中数据特征的抽象,是数据库系统的核心和基础, 应满足三个方面的要求:
a.能比较真是的模拟现实世界
b.容易理解
c.便于在计算机上实现
①数据模型的类型
(1)概念数据模型:指按照用户的观点对数据建模,强调其语义表达能力。
其基本概念:
i、实体(Entity)
实体是现实世界中客观存在并可相互区别的事件或物体的抽象。可以是具体的人、事、物,也可以是抽象的概念或联系。
ii、属性(Attribute)
实体所具有的某一特性称为属性。
a.一个实体可以有若干个属性
b.属性往往是不可再细分的原子属性,如姓名
c.属性有型和值的区别
d.实体属性的取值一般受某个条件的约束
e.能唯一标识一个实体的属性或属性集称为实体的码。
iii、联系(Relationship)
联系分为三种:
a.一对一联系
b.一对多联系
c.多对多联系
iiii、E-R图
(2)逻辑数据模型:是指按照计算机系统的观点对数据建模,有严格的形式化定义,主要 用于DBMS实现,是对现实世界的第二级抽象。
i.关系模型
a.数据结构:关系模型用关系(即规范的二维表)来表示各类实体以及实体间的联系
b.数据操作及完整性约束:关系模型的完整性约束条件包括实体完整型、参照完整型和用户自定义完整型
c.优缺点:
c1.优点:有严格的设计理论,概念单一,结构简单直观、易理解、语言表达简练;数据独立性高,安全保密性好
c2.缺点:查询效率不高,速度慢,需要进行查询优化,采用静态数据模型
ii.面向对象模型
a.对象与封装性
b.类和继承
②数据模型的基本组成
(1)数据结构
数据结构描述数据库的组成对象及对象间的联系 是系统静态特性的描述。
(2)数据操作
数据操作是对数据库中数据对象执行的操作的集合,描述了数据的动态特征。
(3)数据完整性约束
数据的完整性约束条件是一组完整性规则的集合,定义了给定数据模型中数据及其 联系所具有的制约和依存规则,用来限定符合数据模型的数据库状态及状态的变化, 以保证数据库中数据的完整性。
10.数据库系统的体系结构
①三级模式结构
a.外模式
也称子模式或用户模式,是数据库用户能够看见的使用的局部数据结构 的逻辑结构和特征的描述。
外模式是模式的子集,一个数据库可以有多个外模式
使用外模式的优点:
i.用户无需考虑与自己无关的数据和数据结构,使程序设计工作得到简化。
ii.用户只能对自己需要的数据进行操作,有利于数据的安全和保密
iii.同一模式可以派生出多个外模式,有利于数据的独立性和共享性
b.模式
也称逻辑模式或概念模式,是对数据库中全部数据的逻辑结构和特征的描述
是数据库系统模式结构的中间层,不涉及数据的物理存储细节和硬件环境
一个数据库只能有一个模式
c.内模式
也称存储模式,是对数据库数据物理结构和存储方式的描述,是DBMS管理 最底层
一个数据库只能有一个内模式
②两级映像与数据独立性
(1)外模式/模式映像
外模式/模式影响定义了外模式与模式之间的映像关系。模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。
在每一个外模式中,数据库系统都要定义一个外模式/模式映像,也就是说,一个数据库有多个外模式/模式映像
外模式/模式映像保障了数据的逻辑独立性
(2)模式/内模式映像
模式/内模式映像定义了一个数据全局逻辑结构与存储结构之间的对应关系,同时,一个数据库只有一个模式/内模式映像。
模式/内模式映像保障了数据的物理独立性
11.数据库管理系统
①DBMS的主要功能
(1)数据定义功能
数据定义功能包括定义数据的外模式、模式、内模式,定义模式之间的映像,定义有关的约束条件等。
(2)数据操纵
数据操纵包括对数据库数据的检索、插入、修改和删除等基本操作
(3)数据库运行管理功能
对数据库的运行进行管理是DBMS的核心功能。
(4)数组织、存储和管理功能
此功能是为了提高空间利用率和存储效率
(5)数据库的建立和维护功能
数据库的建立功能是指DBMS根据数据库的定义,把实际的数据库数据存储到物理存储设备上,完成实际存放数据的数据库(目标数据库)的建库工作。
(6)通信功能
DBMS要提供与其他软件系统进行通信的功能。
②DBMS的组成
(1)数据定义语言及其翻译处理程序
(2)数据操纵语言及其编译程序
(3)数据库运行控制程序
(4)实用程序
12.关系数据库
①关系数据模型
(1)二维表:在现实生活中经常会看到一些数据以表格的形式出现
二维表作为关系的一种呈现方式,但并不严格地等同于关系,在二维表中允许有重复的行,而在关系中不允许,二维表在显示时给出了行的一种特定顺序,而关系中的元组是无序的
(2)关系:一个关系由关系名、关系模式和关系实例组成
(3)属性:二维表中垂直方向的列称为属性
(4)元组:一个元组除了第一行之外,构成二维表的每一行被称为关系的一个元组
(5)元组和基数:关系中该属性的个数称为元数,元组的个数称为基数
(6)分量:元组由若干分量构成,每个分量对应一个属性
关系中的属性名不能相同,任意两行(元组)也不能相同
②关系模型的形式化定义
(1)域:
域是一组具有相同数据类型的值的集合,又称值域(用D表示)。在关系中用来表示属性的取值范围,域中数据的个数称为域的基数。
(2)笛卡尔积
(3)关系:笛卡尔积的任一子集称为定义在域上的一个关系
(4)关系模式:
关系模式是对关系的描述,关系实际上就是关系模式在某一时刻的状态或内容,也就是说,关系模式是型,关系是它的值。关系模式是静态的,稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新者数据库表中的数据
通常把关系模式和关系统称为关系,关系模式可以形式化地表示为R(U,D,dom,F)
③关系的性质
(1)关系中不允许出现相同的元组
(2)关系中元组的顺序(即行序)可以任意
(3)关系中属性无序,即列的顺序可以任意交换
(4)同一属性名下的各个属性值必须来自于同一个域,是同一类型的数据
(5)关系中各个属性必须有不同的名字,而不同的属性可来自同一个域
(6)关系不允许在表中嵌套表
④关系的键
(1)候选键:
i.唯一性:关系R的任意两个不同元组的属性集K的值是不同的
ii.最小性:组成关系键的属性集中,任一属性都不能从属性集K中删除,否则将违背唯一性的性质
iii.能唯一标识关系中元组的一个属性或属性集就是候选键
(2)主关系键
通常在多个候选键中选择一个键作为主键
i.唯一性:每个关系必定有且仅有一个主关系键
ii.非冗余性:如果从主关系键属性集中抽去任意属性,则该属性集不再具有唯一性
iii.有效性:主关系键中的任意属性都不能为空值
(3)外部关系键
如果关系R2的一个或一组属性X不是R2的主关系键,而是另一关系R1的主关系键,则该属性或属性集X称为关系R2的外部关系键或外码
被参照关系的主关系键和参照关系的外部关系键必须定义在同一个域上
(4)主属性和非主属性
包含在任一候选关键字中的属性称为主属性(在候选键内的都是主属性),未包含在任一候选关系字中的属性称为非主属性
⑤关系的完整性约束
关系模型建立在集合代数基础上,由关系数据结构、关系操作和关系完整型约束3部分组成
关系模型提供了3类完整型约束:实体完整性、参照完整性和用户自定义完整性
(1)实体完整性
主键的值不能为空或部分为空称为实体完整性
a.实体完整性是针对基本关系而言的。现实世界的一个属性集对应于一个基本关系
b.现实世界中的实体是可区分的,即每个实体都具有唯一标识。
c.在关系中主键是唯一标识
d.主键中的属性不能取空值
(2)参照完整性
参照完整性规则用来定义外键与主键之间的引用规则,该规则的实质是不允许引用不存在的实体
外键并不一定要与引用的主键同名
(3)用户自定义完整性
指针对某一具体的关系数据库的约束条件,允许用户自定义完整性约束。
第5章 数据库设计
数据库是长期存储在计算机内、有组织的、可共享的数据集合,已成为现代信息系统的核心和基础。
数据库设计的基本步骤
四个时期:规划时期、设计时期(需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段)、实施时期、运行维护时期。
除规划时期以外,数据库系统的生存期内各阶段的主要任务如下:
1.需求分析阶段
进行数据库设计首先必须准确了解和分析用户需求,包括数据与处理需求。需求分析是整个设计过程的基础,是最困难、最耗时的一步。需求分析是否做得充分与准确,决定了在其上构建的数据库系统的速度与质量。
2.概念设计阶段
在概念设计阶段,设计人员从用户角度看待数据及其处理要求和约束,产生一个反映用户观点的概念模式,也称为组织模式。概念模式能充分反映现实世界中实体间的联系,又是各种基本数据模型的共同基础,易于向关系模型转换,其优点如下:
(1)使数据库设计各阶段的任务相对单一化,设计复杂程度降低,便于组织管理
(2)概念模式不受特定 DBMS 的限制,也独立于存储安排,因而比逻辑设计得到模式更为稳定。
(3)概念模式不含具体的 DBMS 所附加的技术细节,更容易被用户理解,因而能准确地反映用户的信息需求。
概念模型设计是整个数据库设计的关键,通过对用户需求进行综合、归纳与抽象,形成一个独立于具体 DBMS 的概念模型。如采用基于 E-R 模型的数据库设计方法,该阶段将所设计的对象抽象出 E-R 模型;如采用用户视图法,则设计出不同的用户视图。
3.逻辑设计阶段
逻辑设计阶段的任务是将概念模式转换为与特定的DBMS产品所支持的数据模型相符合的逻辑结构。如采用基于 E-R 模型的数据库设计方法,该阶段就是将所设计的 E-R 模型转换为某个DBMS 所支持的数据模型;如采用用户视图法,该阶段应进行表的规范化,列出所有关键字以及用数据结构图描述表的约束与联系,汇总各用户视图的设计结果,将所有的用户视图合成一个复杂的数据库系统。
4.物理设计阶段
数据库物理设计是为逻辑数据模型选取一个最适合应用环境的物理结构,包括存储结构(存储记录格式、存储记录安排)和存取方法。显然,数据库的物理设计完全依赖于给定的硬件环境和数据库产品。在关系模型系统中,物理设计比较简单,因为文件形式是单记录类型文件,仅包含索引机制、空间大小、块的大小等内容。
物理设计可分 5 步完成,前 3 步涉及物理结构设计,后 2 步涉及约束和具体的程序设计。
(1)存储记录结构设计:包括记录的组成、数据项的类型、长度,以及逻辑记录到存储记录的映射。
(2)确定数据存放位置:可以把经常同时被访问的数据组合在一起,通常采用记录聚集(聚簇) 技术来实现。
(3)存取方法的设计:存取路径分为主存取路径和辅存取路径,前者用于主键检索后者用于辅助键检索。
(4) 完整性和安全性考虑: 设计者应在完整性、安全性、有效性和效率方面进行分析与权衡。
(5)程序设计:在逻辑数据库结构确定后,应进行行为特性设计。
5.数据库实施阶段
根据逻辑设计和物理设计的结果,在计算机系统上建立起实际数据库结构、装入数据、测试和试运行的过程称为数据库的实施阶段,该阶段主要有3 项工作:
(1)建立实际数据库结构。描述逻设计和物理设计结果的程序(即源模式),经 DBMS编译成目标模式并执行后,便建立了实际的数据库结构。
(2)装入试验数据,对应用程序进行调试。试验数据可以是实际数据,也可由手工生成或用随机数发生器生成,应使测试数据尽可能覆盖现实世界的各种情况。
(3)装入实际数据,进入试运行状态。测量系统的性能指标是否符合设计目标。
数据库实施过程中,如果达不到预期效果,则返回,修改数据库的物理模型设计甚至逻辑模型设计。
6.数据库运行和维护阶段
数据库系统正式运行,标志着数据库设计与应用开发工作的结束和维护阶段的开始。运行维护阶段的主要任务有 4 项;
(1)维护数据库的安全性与完整性。检查系统安全性是否受到侵犯,及时调整授权和密码,实施系统转储与备份,发生故障后及时恢复。
(2)监测并改善数据库运行性能。对数据库的存储空间状况及响应时间进行分析评价,结合用户反应确定改进措施。
(3) 根据用户要求对数据库现有功能进行扩充。
(4)及时改正运行中发现的系统错误。
需求分析
需求分析的任务
1、调查分析用户活动
2、调查用户的实际需求并进行初步分析
3、进一步分析与表达用户需求,形成系统分析报告
需求分析的方法
结构化分析(Structured Analysis,SA)方法采用自顶向下、逐层分解的方式分析系统。
需求分析的常用工具
1、数据流图
DFD的设计:
(1)确定系统的输入、输出
(2)由外向里设计系统的顶层数据流图
(3)自顶向下逐层分解,绘出分层数据流图
2、数据字典
概念结构设计
概念结构设计的步骤
自底向上的设计方法是最常见的概念结构设计方法。可分为2步:
(1)数据抽象。对用户数据进行抽象,形成局部E-R模型(即用户视图)
(2)视图集成。将各个局部视图进行集成优化,形成全局E-R模型