数据库系统概论
数据库:数据库是长期存储在计算机内、有组织、可共享的大量数据的集合。
数据库管理系统:数据库管理系统是位于用户与操作系统之间的一层数据管理软件,它是一个大型复杂的软件系统,它主要用于科学地组织和存储数据、高效地获取和维护数据。
数据库系统:数据库系统主要是由数据库、数据库管理系统(及开发工具)、数据库管理员以及应用程序所构成的一套人机系统。
数据库系统的特点:数据的整体结构化、数据的共享性高,冗余度低且易扩充、数据独立性高、数据由数据库管理系统统一管理和控制。
数据模型
数据模型:数据模型是对现实世界数据特征的抽象,通俗地讲数据模型就是现实世界地模拟,数据模型是数据库系统的核心和基础。
概念模型:概念模型也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计。
逻辑模型:逻辑模型主要包括层次模型、网状模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型等。按计算机系统的观念对数据建模,用于DBMS实现。
数据模型的三要素:
三种主要的数据库模型:
数据库系统内部的系统结构
模式:模式(也称逻辑模式),数据库中全体数据的逻辑结构和特征的描述,所有用户的公共数据视图。
外模式:外模式(也称子模式或用户模式)
数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述。
数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
内模式:
内模式(也称存储模式)
是数据物理结构和存储方式的描述。
是数据在数据库内部的表示方式。
记录的存储方式(例如,顺序存储,按照B树结构存储,按hash方法存储等)。
索引的组织方式。
数据是否压缩存储。
数据是否加密。
数据存储记录结构的规定。
数据库系统三级模式结构:
数据库系统两层映像系统结构:三级模式是对数据的三个抽象级别,二级映象在数据库管理系统内部实现这三个抽象层次的联系和转换:
外模式/模式映像保证数据的逻辑独立性。
(1)、当模式改变时,数据库管理员对外模式/模式映象作相应改变,使外模式保持不变。
(2)、应用程序是依据数据的外模式编写的,应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
模式/内模式映像
保证数据的物理独立性。
(1)、当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映象,使模式保持不变。
(2)、应用程序不受影响。保证了数据与程序的物理独立性,简称数据的物理独立性。
数据库的逻辑独立概念,如何实现:
数据的物理独立性,如何实现:
数据库系统的组成
关系数据库是目前使用最广泛的数据库系统。
关系数据库系统与非关系数据库系统的区别:
关系系统只有“表”这一种数据结构。
非关系数据库系统还有其他数据结构,以及对这些数据结构的操作。
关系数据结构
关系中的概念
域:域是一组具有相同数据类型的值的集合。
笛卡尔积:给定一组域D1,D2,…,Dn,允许其中某些域是相同的。D1,D2,…,Dn的笛卡尔积为:D1×D2×…×Dn ={(d1,d2,…,dn)|di∈Di,i=1,2,…,n},笛卡尔积是所有域的所有取值的一个组合,它不能重复。
关系:现实世界的实体以及实体间的各种联系均用关系来表示。从用户角度,关系模型中数据的逻辑结构是一张二维表,它是建立在集合代数的基础上。
关系,属性,元组
属性:关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域,关系中不同列可以对应相同的域,为了加以区分,必须对每列起一个名字,称为属性(Attribute)。
关系(Relation): D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,表示为R(D1,D2,…,Dn),其中,R为关系名,n为关系的目或度(Degree)。关系中的每个元素是关系中的元组,通常用t表示。当n=1时,称该关系为单元关系(Unary relation)或一元关系 ,当n=2时,称该关系为二元关系(Binary relation),关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域,关系中不同列可以对应相同的域,为了加以区分,必须对每列起一个名字,称为属性(Attribute),n目关系必有n个属性。若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码,简单的情况:候选码只包含一个属性,最极端的情况:关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key),若一个关系有多个候选码,则选定其中一个为主码(Primary key),候选码的诸属性称为主属性(Prime attribute),不包含在任何侯选码中的属性称为非主属性(Non-Prime attribute)或非码属性(Non-key attribute) 。
元组(Tuple):笛卡尔积中每一个元素(d1,d2,…,dn)叫作一个n元组(n-tuple)或简称元组。
候选码,主码,主属性
候选码:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码
全码:简单的情况:候选码只包含一个属性,最极端的情况:关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key)
主属性:若一个关系有多个候选码,则选定其中一个为主码(Primary key),候选码的诸属性称为主属性(Prime attribute),不包含在任何侯选码中的属性称为非主属性(Non-Prime attribute)或非码属性(Non-key attribute) 。
基本关系的性质:列是同质的(Homogeneous)
不同的列可出自同一个域,其中的每一列称为一个属性,不同的属性要给予不同的属性名
列的顺序无所谓,列的次序可以任意交换
行的顺序无所谓,行的次序可以任意交换
任意两个元组的候选码不能相同
分量必须取原子值,这是规范条件中最基本的一条
关系模式的定义:关系模式是对关系的描述。如元组集合的结构,完整性约束条件。
关系数据库:在一个给定的应用领域中,所有关系的集合构成一个关系数据库。
关系数据库模式:
关系操作
查询
选择、投影、连接、除、并、交、差
数据更新
插入、删除、修改
关系代数
传统集合运算符
专门的关系运算符
可以用关系代数进行查询
SQL可以分为数据定义、数据查询、数据更新、数据控制四大部分
可以用sql语句建表,建立视图,查询,更新
数据库的不安全因素包括哪几个方面
非授权用户对数据库的恶意存取和破坏
数据库中重要或敏感的数据被泄露
安全环境的脆弱性
实现数据库系统安全性的技术和方法有哪些
存取控制技术:自主存取控制和强制存取控制,相应定义
自主存取控制:授权grant和收回revoke的基本语句
强制存取控制的基本实现方案
强制存取控制规则
数据库安全性定义
数据库角色定义
审计技术:定义,功能和关键词
数据加密主要包括存储加密和传输加密
数据库完整性概念
关系数据库管理系统完整性实现的机制
完整性约束定义机制
完整性检查机制
违背完整性约束条件时关系数据库管理系统应采取的动作
实体完整性定义、建表时如何实现,不一致如何处理
参照完整性定义、建表时如何实现,不一致如何处理
自定义完整性定义、建表时如何实现,不一致如何处理
建表时定义sql语句
完整性约束命名子句基本格式
断言及其实现
触发器及其实现
在关系数据库中,对关系模式的基本要求是满足第一范式。
一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式集合,这种过程就叫关系模式的规范化。
关系数据库的规范化理论是数据库逻辑设计的工具。
函数依赖、平凡函数依赖、完全函数依赖、部分函数依赖、传递函数依赖的定义
函数依赖:设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r 中不可能存在两个元组在X上的属性值相等, 而在Y上的属性值不等, 则称“X函数确定Y”或“Y函数依赖于X”,记作X→Y。
平凡函数依赖:X→Y,但Y⊆X 则称X→Y是平凡的函数依赖。
完全函数依赖:
部分函数依赖:
传递函数依赖:
候选码、主码、主属性、非主属性、全码定义
1NF、2NF、3NF、BCNF和4NF定义
1NF:
作为二维表,关系要符合一个最基本的条件:每个分量必须是不可分开的数据项。满足了这个条件的关系模式就属于第一范式(1NF)。
2NF
若关系模式R∈1NF,并且每一个非主属性都完全函数依赖于任何一个候选码,则R∈2NF。
3NF
BCNF
BCNF(Boyce Codd Normal Form)由Boyce和Codd提出,比3NF更进了一步。通常认为BCNF是修正的第三范式,有时也称为扩充的第三范式。设关系模式R<U,F>∈1NF,若X →Y且Y ∉ X时,X必含有码,则R<U,F>∈BCNF。换言之,在关系模式R<U,F>中,如果每一个决定属性集都包含候选码,则R∈BCNF。
多值依赖定义
不能说规范化程度越高的关系模式就越好。
能够解决问题,判断候选码、判断达到第几范式和进行模式分解
数据库设计定义
数据库的设计的基本步骤
需求分析的任务、方法
数据字典的概念
数据库各级模式的形成
需求分析阶段:综合各个用户的应用需求(现实世界的需求)。
概念设计阶段:概念模式(信息世界模型),用E-R图来描述。
逻辑设计阶段:逻辑模式、外模式。
物理设计阶段:内模式。
概念结构设计
应用:设计er图
逻辑结构设计
应用:根据er图转换关系模式
物理结构设计
物理结构设计的定义和步骤
物理结构设计的内容
常用的存取方法
数据库的实施和维护
查询处理的基本步骤
代数优化的典型启发式规则(了解优化算法)
代数优化的典型启发式规则
物理优化的选择方法、启发式规则和机遇代价估算的优化
事务的定义和特性
事务定义:所谓事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。例如,在关系数据库中,一个事务可以是一条SQL语句、一组SQL语句或整个程序。事务和程序是两个概念。一般地讲,一个程序中包含多个事务。
特性:事务具有四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性(Durability)。这个四个特性也简称为ACID特性。
原子性:事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。
一致性:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。因此当数据库只包含成功事务提交的结果时,就说数据库处于一致性状态。如果数据库系统运行中发生故障,有些事务尚未完成就被迫中断,(第一个操作是从账号A中减去一万元,第二个操作是向账号B中加入一万元。这两个操作要么全做,要么全不做)。
隔离性:一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。
持续性:持续性也称永久性(Permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其执行结果有任何影响。
故障的种类
故障的种类
事务内部的故障:事务内部的故障有的是可以通过事务程序本身发现的,有的是非预期的,不能由事务程序处理的。事务内部更多的故障是非预期的,是不能由应用程序处理的。如运算溢出、并发事务发生死锁而被选中撤销该事务、违反了某些完整性限制等。以后,事务故障仅指这类非预期的故障。事务故障意味着事务没有达到预期的终点(COMMIT或者显式的ROLLBACK),因此,数据库可能处于不正确状态。恢复程序要在不影响其他事务运行的情况下,强行回滚(ROLLBACK)该事务,即撤销该事务已经作出的任何对数据库的修改,使得该事务好像根本没有启动一样。
系统故障(俗称软故障):系统故障是指造成系统停止运转的任何事件,使得系统要重新启动。例如,特定类型的硬件错误(CPU故障)、操作系统故障、DBMS代码错误、突然停电等。这类故障影响正在运行的所有事务,但不破坏数据库。这时主存内容,尤其是数据库缓冲区(在内存)中的内容都被丢失,所有运行事务都非正常终止。
介质故障(俗称硬故障):系统故障常称为软故障(Soft Crash),介质故障称为硬故障(Hard Crash)。硬故障指外存故障,如磁盘损坏、磁头碰撞,瞬时强磁场干扰等。这类故障将破坏数据库或部分数据库,并影响正在存取这部分数据的所有事务。这类故障比前两类故障发生的可能性小得多,但破坏性最大。
转储的分类:静态转储、动态转储
恢复机制原理、建立冗余数据常用技术
日志文件的定义作用、登记日志文件的原则
如何进行故障恢复,三种情况分别叙述
如何用检查点进行数据库恢复
数据库的并发控制以事务为单位
并发操作来的数据不一致性包括哪些
基本的封锁类型
三级封锁协议内容和效果
活锁和死锁的定义、解决方法
可串行化调度定义
并发事务正确调度的准则
冲突可串行化调度(了解)
两段锁协议的含义
封锁粒度的概念
意向锁的概念
(2023-06)