Download - 数据库原理与实践 ( ACCESS 版)
1.1 数据库基本概念
数据 : 事物特性的反映和描述,是符号的集合。信息是和数据 :
数据是信息的符号表示(或称为载体),信息则是数据的内涵,是对数据语义的解释。
数据处理 : 为对数据的收集、存储、加工、分类、检索、传播等一系列活动。 。
1.1.1 数据与数据处理
1.1.2 数据库
数据库 : 是存放数据的仓库,是对现实世界有用信息的抽取、加工和处理,并按一定格式长期存储在计算机内的、有组织的、可共享的数据集合。
基本特点: ( 1 )数据结构化 ( 2 )数据独立性 ( 3 )数据冗余低 ( 4 )统一的数据管理和控制
数据的组织级别:一般可以分为四级:数据项、记录、文件和数据库。
定义数据的最小单位,也叫元素、基本项、字段等
是处理和存储信息的基本单位,是关于一个实体的数据总和
给定类型的记录的全部具体值的集合
是具有特定联系的多种类型的记录的集合
1.1.3 数据库管理系统
数据库管理系统:是位于用户与操作系统( OS)之间的一层数据管理软件,为用户或应用程序提供访问数据库的方法。
基本功能: ( 1 )对象定义功能 ( 2 )数据操纵功能 ( 3 )数据操纵功能 ( 4 )数据组织、存储和管理
1.1.4 数据库系统的组成
主要由硬件、数据库、软件和用户 4 部分构成。
用 户
软 件
数据库
硬 件
初级用户 专业用户 DBA 应用程序员
应用界面 查询 数据库模式 应用程序
DBMS
数据库
OS
计算机硬件
1.2 数据管理的发展
20世纪 50年代中期以前,计算机主要用于科学计算。
1.2.1 人工管理阶段
硬件:只有卡片、纸带、磁带等,没有可以直接访问、直接存取的外部存取设备。软件:没有操作系统,也没有专门管理数据的软件。数据由程序自行携带:数据与程序不能独立,数据不能长期保存。
20世纪 50年代中期至60年代中期,操作系统的出现标志着数据管理步入一个新的阶段 。
1.2.2 文件系统阶段
文件的逻辑结构与物理结构脱钩:程序和数据分离,使数据与程序有了一定的独立性。程序与数据分别存放在外存储器上:各个应用程序可以共享一组数据,实现以文件为单位的数据共享。
1.2.4 分布式数据库系统阶段
分布式系统是物理上分散逻辑上集中的数据库系统。每个结点(场地)都是拥有集中式数据库的计算机系统。
数据库的数据物理上分布,逻辑上是一个整体。每个场地既执行局部应用,也可执行全局应用。各地的计算机由数据通信网络相联系。
1.2.5 数据管理新技术
面向对象数据库: 20世纪 90年代以后,人们把大量的精力花在研究“面向对象的数据库系统,简称“ OO数据库系统”上。两个主要特点: 对象数据模型能完整地描述现实世界的数据结构,能表达数据间嵌套、递归联系;具有面向对象技术的封装性和继承性的特点,提高了软件的可重用性。
多媒体数据库:多媒体数据库系统(简称 MDBS)是结合数据库技术和多媒体技术,能够有效实现对格式化和非格式化的多媒体数据进行存储、管理和操纵等功能的数据库系统。
不能简单认为多媒体数据库只是对传统数据库的一种简单扩充或者试图用传统技术来处理多媒体数据。多媒体数据库存储和处理的是复杂对象用户可最大限度地忽略各媒体间差异,实现对多媒体数据的管理和操作。
主动数据库:主动数据库是相对于传统数据库的被动性而言的。主动数据库系统( ADBMS)具有主动提供服务功能,并且能以一种统一的机制实现各种主动服务的数据库系统。一个主动数据库系统可表示为:
ADBS = DBS + EB + EM。
DBS:传统数据库系统,用来存储、操作管理数据EB: ECA规则库,用来存储 ECA规则EM:事件监测器,一旦检测到某事件发生就主动触发系统,按照 EB中指定的规则执行相应的动作
数据仓库:是指为了满足中高层管理人员预测和决策分析的需要,在传统数据库的基础上产生能够满足预测和决策分析需要的数据环境。
数据仓库是面向主题的
数据仓库是集成的
数据仓库是稳定的
数据仓库随时间变化
当前的数据仓库系统中,直接面向用户的部分前端工具主要有两类:联机分析处理( OLAP)的分析查询型工具和数据挖掘( DM)的挖掘型工具。
1.4 客观世界的数据表示
1.4.1 现实世界
数据的抽象表示的三个阶段:现实世界、概念世界、数据世界
现实世界里的客观事物是我们进行管理的对象,这些对象之间既有区别,也有联系。这种区别和联系取决于事物本身的特性。
1.4.2 概念世界
概念世界是现实世界在人脑中的反映,是对客观事物及其联系的抽象,概念世界也称为信息世界。
实体:客观存在并可相互区别的事物
实体集:同型实体的集合
实体型:用实体名及其属性名集合来描述同类实体属性:实体所具有的某一特性域:属性的取值范围主码:唯一标识实体的属性集
概念世界的表示:概念模型是现实世界到机器世界的一个中间层次,与具体的 DBMS 无关。它从用户的观点出发,将管理对象的客观事物及他们之间的联系,用容易为人所理解的语言或形式表述出来。 E-R图(实体联系图)是描述概念模型的主要工具。
1.4.3 数据世界
数据世界是信息世界进一步数据化的结果 。数据项:又称字段,是数据库数据中的最小逻辑单位,用来描述实体的属性。记录:是数据项的集合,一个记录由若干个数据项组成,用来描述实体。文件:是一组同类记录的集合,用来描述实体集。
1.5 数据模型
1.5.1 数据模型的概念
数据模型是数据库的基础,是数据库的形式框架,用于描述一组数据的概念和定义。
三个层面
概念数据模型:是面向数据库用户现实世界的数据模型,主要用来描述世界的概念化结构。
逻辑数据模型:是用户从数据库所看到的数据模型,是具体的 DBMS所支持的数据模型。
物理数据模型:是描述数据在存储介质上组织结构的数据模型,与 DBMS、操作系统和硬件有关。
三个要素
数据结构:研究数据之间的组织形式(数据的逻辑结构)、数据的存储形式(数据的物理结构)以及数据对象的类型等 。
数据操作:是指对数据库中的各种对象(型)的实例(值)允许执行的操作集合,包括操作及有关操作规则,用于描述系统的动态特性 。
数据完整性约束:是一组完整性规则的集合。指明数据及其联系所具有的制约和储存规则,以保证数据的正确性、有效性和相容性。
1.5.2 数据模型的组成要素
元组:表中的行。一行为一个元组,对应存储文件中的一个记录值。属性:表中的列,每一列有一个属性名。属性值相当于记录中的数据项或者字段值。候选关键字:能够唯一地标识一个元组的属性或属性组合。主关键字:选择作为元组区分标志的侯选关键字。外关键字:一个关系中的属性或属性组合并不是该关系的关键字,但它们是另外一个关系的关键字。
1.8.2 关系数据库的体系结构
关系模型基本上遵循数据库的三级体系结构。在关系模型中,概念模式是关系模式的集合,外模式是关系子模式的集合,内模式是存储模式的集合。
关系模式:
关系模式 S( SNO, SNAME, SGE, SEX, SDEPT)关系模式 C( CNO, CNANE, CDEPT, TNAME)关系模式 SC( SNO, CNO, SCORE)
存储模式:描述关系是如何在物理存储设备上存储,关系存储时的基本组织方式是文件。由于关系模式有关键码,因此存储一个关系可以用散列方法或索引方法实现,如果关系中元组数目较少( 100以内),也可以用堆文件的方式实现。此外,还可以对任意的属性集建立辅助索引。
1.8.4 关系代数
传统的集合运算:并、差、交、笛卡儿积运算和除。
并:设关系 R 和 S 具有相同的关系模式, R 和 S 的并是由属于 R 或属于 S 的元组构成的集合,记为 R∪S。
{ | ¡Å }R S t t R t S t 是元组变量, R 和 S 的元数相同。
差:设关系 R 和 S 具有相同的关系模式, R 和 S 的差是由属于 R 但不属于 S 的元组构成的集合,记为 R-S。
{ | }¡ÄR S t t R t S t 是元组变量, R 和 S 的元数相同
交:关系 R 和 S 的交是由既属于 R 又属于 S 的元组构成的集合,记为 R∩S,这里要求 R 和 S 定义在相同的关系模式上。形式定义如下:
t 是元组变量, R 和 S 的元数相同。
{ | }¡ÄR S t t R t S
笛卡儿积:设关系 R 和关系 S 的元数分别为 r 和 s 。定义 R 和 S 的笛卡儿积 R×S是一个 (r+ s)元的元组集合,每个元组的前 r 个分量(属性值)来自 R 的一个元组,后 s 个分量是 S 的一个元组,记为 R×S。形式定义如下 。形式定义如下:
{ | , }¡Är s r sR S t t t t t R t S
例 设关系R、S如下:R ( A, B,C )a 1
c d 4 fc 3 d
S ( A,B,C ) b 2 a
d 4 f
(A,B,C) a 1 c b 2 a c 3 d d 4 f
(A, B,C) a 1 cc 3 d
(A,B,C) d 4 f
R∪S :
R-S :
R∩S :
S (A , BB) aa 11 bb 22
例 R ( A , B , C ) a 1 c b 2 f
a 1 c aa 11a 1 c bb 22b 2 f aa 11b 2 f bb 22
( R.A, B , C , S.A , BB )R×S:
除:设关系 R 和 S 的元数分别为 r 和 s (设 r>s>
0 ),那么 R÷S是一个( r-s)元的元组的集合。 R÷S是满足下列条件的最大关系: R÷S中每个元组 t 与 S 中每个元组 u 组成的新元组 <t, u>必在关系 R 中。形式定义如下:
1, 2, , 1, 2, , 1, 2, ,( ) (( ( ) ) )r s r s r sR S R R S R
U V
A B C D C D
a b c d c d
a b e f e f
c a c d
U÷V
A B
a b
选择:从一个关系 R 中选出满足条件表达式 F 的元组,构成一个新关系,记为 F(R) 。
бstatus > 20 ( S ) = ( SNO , SNAME , STATUS , CITY )
S3 Blake 30 Paris S5 Adams 30 Athens
S ( SNO , SNAME , STATUS , CITY )
S1 Smith 20 London S2 Jones 10 Paris S3 Blake 30 Paris S4 Clark 20 London S5 Adams 30 Athens
例 供应商
专门的关系运算:主要包括选择、投影和连接运算。
投影:从一个关系 R 中选出属性 ( 组 )A, 构成一个新关系,记为 ПA ( R )。
( SNO , SNAME ) S1 Smith S2 Jones S3 Blake S4 Clark S5 Adams
ПSNO , SNAME(S)=
б ( status > 10)∧ ( SNO < ‘S6’ )
( S )ПCITY
( ( CITY ) London
ParisAthens
)
=
例 R1 ( A1 , A2 ) a1 1 a2 2 a3 1 a4 2
R2 ( B1 , A2 ) b1 1 b2 1 b3 2 b4 3
一般连接,即 θ- 连接。记为: R Sθ
连接运算:
a2 2 b1 1a2 2 b2 1a4 2 b1 1a4 2 b2 1
( A1 , R1.A2 , B1 , R2.A2 ) R1 R2
R1.A2 R2.A2
=
R ( A , B ) a1 1 a2 1 a2 2 a3 1
S ( B , C ) 1 b1 1 b2 2 b2
自然连接:是除去重复属性的等值连接,它是连接运算的一个特例,是最常用的连接运算 。
R S=
( A , B , C )a1 1 b1a1 1 b2a2 1 b1a2 1 b2a2 2 b2a3 1 b1a3 1 b2
例 “供应商 - 零件”数据库:
设: S ( SNO , SNAME , STATUS , CITY ) S1 Smith 20 London S2 Jones 10 Paris S3 Blake 30 Paris S4 Clark 20 London S5 Adams 30 Athens
SP ( SNO , PNO , QTY ) S1 P1 300 S1 P4 200
S1 P5 100 S2 P1 300 S2 P2 400 S3 P2 200
供应商供应零件情况
供应商
( SNO , SNAME , STATUS , CITY , PNO , QTY )S1 Smith 20 London P1
300S1 Smith 20 London P4 200S1 Smith 20 London P5 100
бSNO =‘S1’ ( S SP )
=
关系数据库设计是数据库应用的基础。核心任务:针对特定的应用环境,在给定硬件环境、操作系统和数据库管理系统的基础上,创建一个性能良好的数据库模式,建立数据库及应用系统,使之能够有效、合理地采集、存储、操作和管理数据,满足企业或组织中各类用户的应用需求。
⑴ 软件危机
随着计算机技术的发展,计算机软件开发和维护过程中所遇到的一系列严重问题,导致了软件开发和维护日益复杂,这种现象称为软件危机。
⑵ 软件工程
软件工程的核心思想是把软件看作一个工程产品来处理,把需求计划、可行性研究、工程审核、质量监督等工程化概念引入软件生产中。
2.1 工程化设计思想
达到工程项目的三个基本目标:进度、经费和质量。
软件工程软件工程
方法方法 工具工具 过程过程
完成软件工程项目的技术手段
完成软件工程项目的技术手段
支持软件的开发、管理,文档的生成
支持软件的开发、管理,文档的生成
支持软件开发的各个环节的控制和管理
支持软件开发的各个环节的控制和管理
三要素
2.3.1 规划
目的:确定系统名称、范围,确定系统的目标功能和性能,确定系统所需的资源,估算预期效益和开发成本,确定开发计划和开发进度。两个阶段:系统调查和可行性分析。
可行性分析主要考虑四个要素: 经济 技术 社会环境 人
2.3.4 逻辑结构设计
主要任务:将概念数据模型设计成数据库能够支持的某种逻辑模型。为各种数据处理应用领域产生相应的逻辑子模式,并使其在功能、性能、完整性约束、一致性和可扩充性等方面均满足用户的需求。
模型转换:把 E-R图转换成关系模式的集合。两部分转换:实体型的转换和联系的转换。
实体类型的转换:将每个实体类型转换成一个关系模式,实体的属性即为关系模式的属性,实体标识符为关系模式的键。
联系的转换
二元联系的转换
一元联系的转换
三元联系的转换
二元联系
联系是 1∶1:在两个实体类型转换成的任意一个关系模式的属性中加入另一个关系模式的键和联系类型的属性。
联系是 M∶N:联系转换成关系模式,属性为两端实体类型的键加上联系类型的属性,而键为两端实体键的组合。
联系是 1∶N:在 N 端实体类型转换成的关系模式中加入 1 端实体类型的键和联系类型的属性。
一元联系
同二元联系
三元联系将三元联系转换成关系模式,其属性为三端实体类型的键加上联系类型的属性,而键为三端实体键的组合。
仓库(仓库号,仓库名,地址)商店(商店号,商店名,店长,电话,地址)商品(商品号,商品名,产地)进货(商店号,商品名,仓库号,日期, 数量,采购员,单价)
2.3.5 物理设计
物理设计是指在特定数据库管理系统所提供的多种存储结构和存取方法的基础上,为逻辑数据模型选取一个最适合应用环境的物理结构(包括文件类型、索引结构和数据的存放次序)、存取方法和存取路径等。
2.3.7 运行和维护
数据库应用系统正式投入运行后,在数据库系统运行过程中必须不断地对其进行评价、调整与修改。
主要工作:数据库的转储和恢复; 数据库安全性和完整性控制; 数据库性能的监督、分析和改进;数据库的重组织和重构造。
2. 4 关系模式的规范化
姓名 宿舍号 课程号 课程名 成绩张玉寒 2-406 C1 大学语文 89
张玉寒 2-406 C2 普通物理 76
张玉寒 2-406 C3 高等数学 90
叶秋 3-201 C4 体育 85
叶秋 3-201 C5 大学英语 83
李梦 5-602 C6 计算机基础 90
主要问题:数据冗余; 操作异常(修改、异常插入异常、删除异常)。
2.4.1 函数依赖和键
函数依赖关系:设有关系模式 R(U), X 和 Y 是属性集 U 的子集,函数依赖是形如 X→Y的一个命题,只要 r 是 R 的当前关系,对r 中任意两个元组 t 和 s ,若有 t[X]=s[X]就必有t[Y]=s[Y](若它们在 X 上的值相等,则它们在 Y 上的属性值也一定相等),那么称“ X 函数决定 Y” 或“ Y 函数依赖于 X” ,记作 X→Y,并称 X 为决定因素。
有学生选课关系模式:R(S#, SNAME, C#, GRADE, CNAME, TNAME, TAGE)
每个学号只能有一个学生姓名,每个课程号只能决定一门课程,则有以下函数依赖关系: S#→SNAME, C#→CNAME每个学生每学一门课程,有一个成绩,那么可写出下列函数决定: (S#, C#)→GRADE还可以写出其他一些函数决定: C#→(CNAME, TNAME, TAGE), TNAME→TAGE
键:就是在函数依赖中起决定作用的属性或属性集,也称为候选键。定义如下:设 U 是关系模式 R 的属性集, X 是 U 的一个子集。如果X→U在 R 上成立,那么称 X 是 R 的一个超键。如果 X→U
在 R 上成立,但对于 X 的任一真子集 X1, X1→U都不成立,那么称 X 是 R 上的一个候选键。
外键:有关系 R 和 S ,在 R 中存在属性或属性组 X , X不是 R 的主键,在 S 存在同样的属性或属性组 X , X 是 S的主键,则称 X 是关系 R 的外键。
2.4.2 关系模式的范式
1NF关系模式 R 的每个关系 r 的属性值都是不可分的原子值。
2NF
完全依赖:对于函数决定 W→A,如果存在 X⊂W,有 X→A成立,那么称 W→A是局部依赖( A 局部依赖于 W );否则称 W→A
是完全依赖。完全依赖也称为“左部不可约依赖”。如果关系模式 R 是 1NF,且每个非主属性完全函数依赖于候选键。
1NF分解成 2NF模式集的方法:设关系模式 R ( U ),主键是 W , R 上还存在函数依赖X→Z,并且 Z 是非主属性,且 X W,那么 W→Z就是一个局部依赖。此时应把 R 分解成两个模式:
① R1( XZ),主键是 X ;② R2( Y ),其中 Y = U - Z,主键仍是 W ,外键是X 。利用外键和主键的连接可以从 R1和 R2重新得到 R 。如果 R1和 R2还不是 2NF,则重复上述过程,直到数据库模式中每一个关系模式都是 2NF为止。
3NF
传递依赖:若有 X→Y, Y→Z,且 Y 不函数决定 X , Z 不是 Y 的子集,则称 X 传递决定 Z ,或者说 Z 传递依赖于 X 。
如果关系模式 R 是 2NF,且每个非主属性都不传递依赖于 R 的主属性,那么称 R 是第三范式( 3NF)的模式。
2NF分解成 3NF模式集的方法:设关系模式 R ( U )是 2NF,主键是 W , R 上还存在函数依赖 X→Z。并且 Z 是非主属性, ZX, X 不是候选键,这样 W→Z就是一个传递依赖。应把 R 分解成两个模式:① R1( XZ),主键是 X ;② R2( Y ),其中 Y=U-Z,主键仍是 W ,外键是 X 。
利用外键和主键相匹配机制, R1和 R2通过连接可以重新得到 R 。如果 R1和 R2还不是 3NF,则重复上述过程,直到数据库模式中每一个关系模式都是 3NF为止。
2.4.3 模式分解
设有关系模式 R(U),属性集为 U , R1, R2,…, Rk
都是 U 的子集,并且有 R1∪R2∪…∪Rk = U。关系模式R1, R2,…、 Rk的集合用表示, = {R1, R2,…, Rk}。用代替 R 的过程称为关系模式的分解。这里称为 R 的一个分解,也称为数据库模式。
设 R 是一个关系模式, F 是 R 上的一个 FD集。 R 分解成数据库模式 ={R1, R2,…, Rk},如果对 R 中满足 F 的每一个关系 r ,都有 r = R1(r) R2(r)
… Rk(r),那么称分解相对于 F 是“无损连接分解”,简称为“无损分解”,否则称为“损失分解”。
数据库系统的安全框架可以划分为网络系统层、宿主操作系统层和数据库管理系统层三个层次。
物理层面:计算机系统必须在物理上受到保护。 人员层面:数据库系统一定要由可信的合法用户来操作和管理。 操作系统层面:强化操作系统的安全等级 网络层面:增强数据网络传输的安全性数据库系统层面:数据库系统应该有完善的访问控制机制,以防止非法用户操作。
3.3.3 安全审计技术
安全审计系统主要用于监视并记录对数据库服务器的各类操作行为,通过对网络数据的分析,实时地、智能地解析对数据库服务器的各种操作,并记入审计数据库中以便日后进行查询、分析、过滤,实现对目标数据库系统的用户操作的监控和审计。