数据库复习资料整理
[TOC]
第1章 数据库概述
1.1 数据与信息
**数据(Data)**是描述事物的符号记录,是信息的符号表示或载体,也是数据库中存储的基本对象,数据描述现实世界中各种具体事物或抽象概念的、可存储并具有明确意义的符号记录。
数据本身无意义,具有客观性,经过解释才能表示一定的意义。数据的含义是对数据的解释,称为数据的语义,数据与其语义是不可分的
**信息(Information)**是数据的内涵,是数据的语义解释。
1.2 数据管理技术的发展
人工管理阶段
时期:40年代中–50年代中
应用需求:科学计算 硬件水平:无直接存取存储设备 软件水平:没有操作系统 处理方式:批处理人工管理阶段的特点:数据不保存,应用程序管理数据,数据不共享,数据不具有独立性
文件管理阶段
时期:50年代末–60年代中
应用需求:科学计算、管理 硬件水平:磁盘、磁鼓 软件水平:有文件系统 处理方式:联机实时处理、批处理文件管理阶段的特点:数据以文件的形式长期保存在外存储器中数据独立性差,由文件系统对数据进行管理,数据共享性差,冗余度大,数据独立性差。
数据库管理阶段
时期:60年代末以来
背景:大规模管理 硬件背景:大容量磁盘 软件背景:有数据库管理系统 处理方式:联机实时处理,分布处理,批处理数据库管理系统阶段的特点: 数据结构化,数据的共享性高,冗余度低,易扩充,数据独立性高,数据由DBMS统一管理和控制
1.3 数据库系统的基本概念
**数据库(Database,DB)**是长期储存在计算机内、有组织的、可共享的大量数据的集合
数据库的基本特征
数据按一定的数据模型组织、描述和储存,冗余度较小,数据独立性较高,易扩展,可为各种用户共享
数据库管理系统(DataBase Management System, DBMS):是数据库系统的核心,位于用户与操作系统之间的一层数据管理软件
DBMS的主要功能包括:
数据定义功能,数据操纵功能,数据组织、存储和管理,数据库运行管理,数据库的建立和维护功能
**数据库系统(DataBase System, DBS)**是指在计算机系统中引入数据库后的系统。
1.4 数据模型
三个世界的划分
为了把现实世界中的具体事物抽象、组织为某一DBMS支持的数据模型,首先将现实世界的事物及其联系进行特征抽取,形成信息世界的概念模型,这种模型不依赖于具体的计算机系统,然后再将概念模型转换为某一DBMS所支持的逻辑模型和物理模型。
- 现实世界 现实世界即客观存在的世界
- 信息世界是现实世界在人们头脑中的反映,经过人脑的分析、归纳、抽象,形成信息,把这些信息进行记录、整理、归类和格式化后,就构成了信息世界。
- 实体(Entity):客观存在并且可以相互区分的事物称为实体
- 属性(Attribute):实体所具有的某一特性称为属性
- 码(Key):能唯一标识实体的属性或属性的组合称为码,也称为键
- 域(Domain):属性的取值范围称为该属性的域
- 实体型(Entity Type):用实体名及其所有属性的集合来描述同类实体,称为实体型
- 实体集(Entity Set):同一类型实体的集合称为实体集
- 联系
- 一对一联系(1:1)如果对于实体集E1中的每一个实体,实体集E2中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集E1与实体集E2具有一对一联系,记为1:1
- 一对多联系(1:n)如果对于实体集E1中的每一个实体,实体集E2中至多有n个实体(n≥0)与之联系;反之,对于实体集E2中的每一个实体,实体集E1中至多有一个实体与之联系,则称实体集E1与实体集E2具有一对多联系,记为1:n。
- 多对多联系(m:n)如果对于实体集E1中的每一个实体,实体集E2中有n个实体(n≥0)与之联系,反之,对于实体集E2中的每一个实体,实体集E1中也有m个实体(m≥0)与之联系,则称实体集E1与实体集E2具有多对多联系,记为m:n
- 机器世界是信息世界中信息的数据化,就是将信息用字符和数值等数据表示,便于存储在计算机中,并由计算机进行识别和处理
- 文件(file):同一类记录的集合称为文件,文件是用来描述实体集的
- 关键字(key):能唯一标识文件中每条记录的字段或字段集,称为记录的关键字,或者简称为键。
E-R图的相关信息
概念模型是对信息世界的建模,它能方便、准确地描述信息世界中的概念。
概念模型有很多表示方法,其中最著名、最常用的是P.P.S.Chen于1976年提出的实体-联系方法,也称为实体-联系模型,该方法用E-R图来表示实体、属性以及实体间的联系。
- 实体用矩形表示,矩形框内写明实体名
- 属性用椭圆形表示,并用无向边将其与相应的实体连接起来
- 联系用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)
- 联系也可能有属性,联系的属性用椭圆形表示,并用无向边与该联系连接起来。
- 一对一联系(1:1)如果对于实体集E1中的每一个实体,实体集E2中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集E1与实体集E2具有一对一联系,记为1:1
- 一对多联系(1:n)如果对于实体集E1中的每一个实体,实体集E2中至多有n个实体(n≥0)与之联系;反之,对于实体集E2中的每一个实体,实体集E1中至多有一个实体与之联系,则称实体集E1与实体集E2具有一对多联系,记为1:n。
- 多对多联系(m:n)如果对于实体集E1中的每一个实体,实体集E2中有n个实体(n≥0)与之联系,反之,对于实体集E2中的每一个实体,实体集E1中也有m个实体(m≥0)与之联系,则称实体集E1与实体集E2具有多对多联系,记为m:n。
- 多个实体集之间多对多联系的定义:若实体型Ej(j=1,2,…,i-1,i+1,…,n)中的给定实体,和Ei中的多个实体相联系,则Ei与E1,E2,…,Ei-1,Ei+1,…,En之间的联系是多对多的
数据模型的组成要素
- 数据结构:描述数据的类型、内容、性质及数据间的联系,是对系统静态特征的描述,是数据模型中最基本的部分,不同的数据模型采用不同的数据结构。
- 数据操作:主要描述在相应的数据结构上允许执行的操作的集合,包括操作以及有关的操作规则,是对系统动态特征的描述。对数据库的操作主要有查询和更新(插入、删除、修改)两类操作
- 完整性约束:主要描述数据结构内的数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确性、有效性和相容性。
关系模型:建立在严格的数学概念基础之上,采用二维表来表示实体和实体之间的联系,是目前应用最多、最重要的一种数据模型
关系(Relation)一个关系对应通常说的一张表。
元组(Tuple)表中的一行即为一个元组。(第一行除外)
属性(Attribute)表中的一列即为一个属性,列名即是属性名,列值即是属性值
域(Domain):属性的取值范围。
分量:元组中的一个属性值
码(Key):属性或属性的组合,能唯一确定一个元组。一个关系中可以有多个码。
关系模式:对关系的描述,表示为:关系名(属性1,属性2,…,属性n)
1.5 数据库系统的内部结构
数据库系统内部采用三级模式二级映像结构,三级模式为:外模式,模式,内模式。二级映像:外模式/模式映射,模式/内模式映射
1.模式:是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图,一个数据库只能有一个概念模式。
2.内模式:是数据库中全体数据的物理结构和存储方式的描述,是数据在数据库内部的表示方式,一个数据库只能有一个内模式。
3.外模式:又称为子模式或用户模式,是模式的子集,是数据库用户能够看到和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示,一个数据库可以有多个外模式。
4.外模式/模式映像:对于每一个外模式,都有一个外模式/模式映像。它定义了该外模式与模式之间的对应关系。
5.模式/内模式映像,数据库中有唯一的一个模式/内模式映像,它定义了数据全局逻辑结构与存储结构之间的对应关系。
1.6 数据库系统的外部结构
略
1.7 常见的关系数据库
Oracle数据库
由数据库软件领域的第一大厂商 Oracle公司研发
主要应用于大型企业数据库领域;跨平台,支持Windows、UNIX等多种操作系统;运行稳定、功能齐全、性能超群
SQL Server数据库管理系统 由微软公司研发的中大型数据库管理系统
只能运行于Windows平台上;界面友好,易学易用;支持C/S、B/S模式
Sybase 由Sybase公司研发的大型数据库管理系统
可以运行于UNIX、VXM、Windows等多种操作系统平台上,支持标准的SQL语言:使用C/S工作模式
DB2
是IBM公司研发的一个多媒体、Web关系型数据库
起初主要应用在大型机上,目前支持多种机型
MySQL Oracle公司旗下产品
体积小、速度快、功能有限;开放源码软件
第2章 数据库系统原理
2.1关系的形式化定义及有关概念
关系模型以集合代数理论为基础,本节将从集合论角度给出关系的形式化定义
- 域(Domain)
- 笛卡尔积(Cartesian Product)
- 关系(Relation)
域是一组具有相同数据类型的值的集合,又称为值域,用D 表示.
**笛卡尔积(Cartesian Product)**给定一组域D1,D2,…,Dn,它们中可以有相同的域。D1,D2,…,Dn的笛卡尔积为:D=D1×D2×…×Dn={(d1,d2,…,dn)|diDi,i=1,2,…,n}
笛卡尔积的元组可以用二维表的形式表示
**关系(Relation)**D1×D2×…×Dn的有意义的子集称为在域D1,D2,…,Dn上的关系,表示为R(D1,D2,…,Dn) student(sno,sname,ssex),R:关系名,n:关系的目或度(Degree)
当n=1 时,称该关系为单元关系,当 n=2时,称该关系为二元关系
列是同质的,即每一列的分量是同一类型的数据,来自同一个域;
属性名是唯一的,不同的列可以出自同一个域,但属性名必须不同;
码的唯一性,即任意两个元组的码不能相同,从而任意两个元组不相同;
列的顺序无关性,即交换任意两列的次序,得到的还是同一个关系;
行的顺序无关性,即交换任意两行的次序,得到的还是同一个关系;
分量的原子性,即每个分量都是不可分的数据项。
关系模式:关系模式是对一个关系结构的描述,包括关系由哪些属性构成,这些属性来自哪些域,以及属性和域之间的映射关系(mapping)。因此,一个关系模式应当是一个五元组。
关系模式(Relation Schema)是对关系的描述,可形式化地表示为R (U,D,DOM,F) student(sno, sname, ssex)
R为关系模式名
U为组成该关系的属性名的集合
D为属性组U中属性所来自的域的集合
DOM为属性向域映像的集合
F为属性间函数依赖关系的集合
- 关系 关系是由满足关系模式结构的元组构成的集合,是关系模式在某一时刻的状态或内容
- 关系数据库 在一个给定的应用领域中,所有实体entity以及实体间联系(relationship)的集合构成一个关系数据库
2.2关系数据库示例
- 码(Key):又称为候选码(Candidate Key)能唯一标识关系中的每一个元组的最少属性的集合。一个关系可能有多个候选码
- 主码(Primary Key):又称为主键,在候选码中选出一个即可作为主码在一个关系中,主码只能有一个
- 全码(ALL- Key):关系中所有属性的组合才是该关系的码,一个关系最多只有一个全码
- 外码(Foreign Key):设属性F是关系R的一个属性,但不是R的码,如果F与关系S中的主码Ks相对应,则称F是R的外码,R为参照关系(Referencing Relation),S为被参照关系(Referenced Relation)。R和S不一定是不同的关系,通过外码可以建立两个表之间的联系,在一个关系中,外码可能有多个
- 主属性(Prime Attribute):包含在所有候选码中的属性称为主属性
- 非主属性(Nonprime Attribute):不包含在任何一个候选码中的属性称为非主属性。
2.3关系模型的完整性
作用:为了确保数据库里边的数据是正确的、有效的、一致的。
实体完整性(Entity Integrity):1.若属性A是基本关系R的主属性,则属性A不能取空值;2.关系的所有的主属性都不能取空值,而不仅是主码整体不能取空值
参照完整性若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码KS相对应,则对于R中的每个元组在F上的值必须为:要么取空值,要么等于被参照关系中的主键的某个值
用户自定义完整性属性的取值应当满足用户定义的约束条件,反映了某一具体应用所涉及的数据必须满足的语义要求。
2.4关系模型的数据操作
数据模型三要素:数据结构、数据操作、完整性约束
数据查询(Query):选择(Select)、投影(Project)、连接(Join)、除(Divide)、并(Union)、交(Intersection)、差(Difference)、笛卡儿积
数据更新(Update):插入(Insert)、删除(Delete)、修改(Modify)
2.5关系代数
关系代数是一种抽象的查询语言,是研究关系数据语言的数学工具
关系的运算符
- 集合运算符:将关系看成元组的集合运算,是从关系的“水平”方向即行的角度来进行
- 专门的关系运算符:不仅涉及行而且涉及列
- 比较运算符:辅助专门的关系运算符进行操作
- 逻辑运算符:辅助专门的关系运算符进行操作
集合运算
并
关系R和关系S的要求:具有相同的目n,即两个关系都有n个属性,相应的属性取自同一个域。
差
关系R和关系S的要求:具有相同的目n,相应的属性取自同一个域
交
关系R和关系S的要求:具有相同的目n,相应的属性取自同一个域
笛卡尔积
R:n目关系,k1个元组
S:m目关系,k2个元组
R×S:
列:(n+m)列的元组的集合,元组的前n列是关系R的一个元组,后m列是关系S的一个元组
行:k1×k2个元组
专门的关系运算
选择
投影
连接
除
第5章 数据库的安全性
数据库的安全性是指保护数据库,以防止不合法的使用造成数据泄露、更改或破坏
不合法的使用一般是指合法用户进行的非法操作以及非法用户进行的所有操作
数据库的安全性就是保证所有合法的用户进行合法的操作
5.1 计算机安全性概述
计算机系统的安全性问题可分为三大类:技术安全,管理安全,政策法律
5.2 数据库安全性控制
在一般的计算机系统中,安全措施是一级一级层层设置的
用户标识与鉴别
用户标识与鉴别是数据库系统的最外层安全保护措施
其方法是由系统提供一定的方式让用户标识自己的身份,每次用户要求进入系统时,由系统进行核对,通过鉴定后才会提供系统使用权
存取控制机制
数据库的安全性措施中最重要的是DBMS的存取控制机制
合法权限检查
当用户发出存取数据的操作请求后,DBMS查找数据字典,根据安全规则进行合法权限检查。
若用户的操作请求超出了定义的权限,系统将拒绝执行该操作。
大多数DBMS支持的存取控制策略主要有两种:自主存取控制,强制存取控制
自主存取控制方法的特点如下:
① 同一用户对于不同的数据库对象有不同的存取权限;
② 不同的用户对同一对象也有不同的权限;
③ 用户还可将其拥有的存取权限转授给其他用户
强制存取控制
在MAC中,DBMS管理的全部实体分为主体和客体
主体
是指系统中活动的实体,如用户、进程等
客体
是系统中的被动实体,如文件、基本表、视图等
对主体和客体的每一个实例(值)都指派一个敏感度标记
主体的敏感度标记称为“许可证级别”
客体的敏感度标记称为“密级”
敏感度标记的级别从高到低依次为:绝密、机密、可信和公开等
强制存取控制方法的特点如下:
① 每一个数据对象被标以一定的密级;
② 每一个用户也被授予某一个级别的许可证;
③ 通过对比主体和客体的级别,最终确定主体能否存取客体,只有具有合法许可证的用户才可以存取数据。
在MAC中,主体存取客体要遵循如下规则:
① 仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体;
② 仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体。
视图机制
在进行存取权限控制时,可以为不同的用户定义不同的视图,把数据对象限制在一定的范围内
也就是说,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的
但视图机制的安全保护功能太不精细,往往不能达到应用系统的要求,其主要功能在于提供了数据库的逻辑独立性
在实际应用中,通常将视图机制与授权机制结合起来使用,首先利用视图机制屏蔽一部分保密数据,然后在视图上再进一步定义存取权限安全保护
审计跟踪
审计功能是一种监视措施,它把用户对数据库的所有操作自动记录下来,存入审计日志中
记录的内容一般包括:操作类型(查询、插入、更新、删除),操作终端标识与操作者标识,操作日期和时间,操作所涉及的相关数据,数据的前象和后象等
DBA可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。
审计通常是很费时间和空间的,所以DBMS把它作为系统的可选特征,DBA根据应用环境对安全性的要求,可以灵活地打开或关闭审计功能。
数据加密
数据加密是防止数据库中数据在存储和传输中失密的有效手段
加密的基本思想是根据一定的算法将原始数据变化为不可直接识别的格式,数据以密文的形式存储和传输
加密方法主要有两种
一种是替换方法
一种是置换方法
数据加密功能通常也作为可选特征
统计数据库的安全性
第6章 事务与并发控制
6.1 事务
事务(Transaction)是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。
一个程序在后台运行时通常被分割成多个事务,即一个程序由多个事务组成。事务可以是一条SQL语句,一组SQL语句或整个程序
事务的划分有两种方式:隐式划分,显式划分
事务的特征:
-
原子性:事务是数据库的逻辑工作单位,是不可分割的工作单元,事务中的诸操作要么都做,要么都不做。
-
持久性:也称永久性,一个事务一旦提交它对数据库中数据的改变就应该是永久性的,接下来的其他操作或故障不应该对其执行结果由任何影响
-
隔离性:一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据对于其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
-
一致性:事务的执行结果必须是使数据库从一个一致性状态变到另一个一致性状态,一致性状态是指数据库中只包含成功事务提交的结果,不一致状态是指数据库中包含失败事务提交的部分结果。
事务的执行方式
-
串行:按顺序依次执行,执行完一个事务后才能开始另一个事务
-
交叉并发执行:是指多个事务轮流交叉并发执行
6.2 并发控制
丢失修改:
丢失修改的含义:两个事务T1和T2读取同一数据并分别进行修改,T1先提交了修改结果,T2后提交的修改结果覆盖了T1提交的结果,导致T1的修改结果丢失
读“脏”数据:
读“脏”数据的含义:事务T1修改某一数据,并将其写回磁盘。事务T2读取同一数据后,事务T1由于某种原因被撤销,这时事务T1修改过的数据恢复原值,而事务T2读取到的是一个过渡性的不再需要的脏数据,与数据库中的数据不同。
不可重复读: