-
数据:是数据库中存储的基本对象,是描述事物的符号记录
-
数据库:是永久存储在计算机内的,有组织的、可共享的大量数据的集合
-
数据库管理系统:是位于用户与操作系统之间的一层数据管理软件,和操作系统一样都是计算机的基础软件
-
数据库系统:是在计算机中引入数据库后的系统构成。包括DB,DBMS,APP,DBA
-
数据模型:计算机是不可能直接处理现实世界中的具体事物的,所以人们必须事先把具体事物转化为计算机能够处理的数据。因此数据模型是对现实世界数据特征的抽象,也即数据模型是用来描述数据、组织数据和对数据进行操作的
-
概念模型(信息模型):是按用户的观点来对数据和信息建模,用于数据库设计
-
逻辑模型:是按计算机系统的观点对数据建模,主要用于数据库管理系统的实现
-
物理模型:对数据最底层的抽象,它描述数据在系统内部的表示方法和存取方法,或在磁盘或磁带上的存储方式和存取方法,是面向计算机系统的
-
实体 :客观存在并可以相互区别的事物。实体可以是具体的人、事、物,也可以是抽象的概念或联系
-
属性:实体所具有的某一特性。一个实体可以由若干属性刻画
-
码 :唯一标识实体的属性
-
实体型: 用实体名及其属性集合来抽象和刻画同类实体
-
实体集: 同一类型实体的集合
-
联系 :实体内部的联系通常是指组成实体的各属性之间的联系,实体之间的联系通常是指不同实体集之间的联系
-
关系 :一个关系对应一张表
-
元组 :表中一行或者是一条记录叫做一个元组
-
属性 :表中一列叫做一个属性,给每一个属性起一个名称叫做属性名
-
码 :用于唯一确定一个元组
-
域 :属性的取值范围
-
分量 :元组的每一个属性值,关系的每一个分量都不可以再分
-
关系模式 :对关系的描述,必须是规范化的
-
模式:是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图,综合了所有用户的需求,对应概念模式
-
外模式:是数据库用户(包括程序员和最终用户)能够看见和使用的局部的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑描述
-
内模式:是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式
-
物理独立性:用户的应用程序与存储在磁盘上的数据库中数据是独立的。当数据的物理存储改变时,应用程序不改变
-
逻辑独立性:用户应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,用户的程序也可以不变
-
域:是一组具有相同数据类型的值的集合
-
笛卡尔积:是一种域上面的集合运算,得到每个域中元素的所有可能的组合,它可以表示为一张二维表
-
候选码:如果关系中的某一属性组能唯一标识一个元组,而其子集不能,则称该属性组为候选码
-
超码:能够唯一标识一条记录的属性或属性集。超码是候选码的扩充,候选码是最小的超码
-
主码:能够唯一标识一条记录的最小属性集
-
全码:关系中的所有属性组都是该关系模式的候选码
-
外码:是本关系的属性但不是码,而是另一个关系的主码
-
主属性:包含在候选码中的属性
-
SQL:即结构化查询语言,是一种高度非过程化的语言,集数据查询、数据操纵、数据定义、数据控制功能于一体。是关系数据库的标准语言
-
实体完整性:若属性A是基本关系R的主属性,则属性A不能取空值
-
视图:视图是一个虚表,其本质就是一条SELECT语句,而查询结果被赋予了一个名字,也即视图名字。或者说视图本身不包含任何数据,它只包含映射到基表的一个查询语句,当基表数据发生变化时,视图数据也随之变化。其目的就是在于方便,简化数据操作
-
数据库安全性:保护数据库以防止不合法使用所造成的数据泄露、更改或破坏
-
用户身份鉴别:每个用户在系统中都有一个用户标识。每个用户标识由用户名(user name)和用户标识号(UID)组成。系统内部记录着所有合法用户的标识,每次用户进入系统时,系统会核对用户的身份,只有通过鉴定后才提供相关数据库管理系统的权限
-
存取控制:存取控制的目的就是确保只授权给有资格的用户访问数据库的权限,其余人等无法接近数据
-
自主存取控制(DAC):用户对于不同的数据库对象有不同的存取权限,不同的用户对同一对象也有不同的权限,而且用户还可将其拥有的存取权限转授给其他用户,因此自主存取控制非常灵活
-
强制存取控制(MAC):每一个数据库对象被标以一定的密级,每一个用户也被授予某一个级别的许可证。对于任意一个对象,只有具有合法许可证的用户才可以存取,因此强制存取控制因此相对比较严格
-
授权:用户权限由数据库对象和操作类型这两个要素组成。定义一个用户的存取权限就是定义这个用户可以在哪些数据对象上进行哪些类型的操作。所谓授权就是指定义存取权限
-
数据库角色:是被命名的一组与数据库操作相关的权限,也即角色是权限的集合。在创建用户时如果为其赋予某种角色,那么用户就自动拥有了该数据库角色所拥有的权限,从而省去了繁琐的授权语句
-
审计:审计功能把用户对数据库的所有操作自动记录下来放入审计日志(audit log)中。审计员可以利用审计日志监控数据库中的各种行为,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。还可以通过对审计日志分析,对潜在的威胁提前采取措施加以防范
-
数据库完整性:是为了防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据。因此,完整性检查和控制的防范对象是不合语义的、不正确的数据,防止它们进入数据库
-
完整性约束条件:是数据库中数据必须满足的语义条件规则
-
断言:在SQL中通过声明性断言可以指定更具一般性的约束(例如涉及多表、聚集操作等)。创建断言后,任何对断言中所涉及关系的操作都会触发DBMS对断言的检查,任何断言为FALSE
的操作都会被拒绝
-
触发器(TRIGGER):是用户定义在关系表上的一类由事件驱动的特殊过程,在满足一定条件或达到一定阈值时会自动触发。可以进行更为复杂的检查和操作,具有更精细和更强大的数据控制能力
-
数据依赖:数据依赖是一个关系内部属性与属性之间的一种约束关系。 这种约束关系是通过属性间值的相等与否体现出来的数据间相关联系。它是现实世界属性间相互联系的抽象,是数据内在的性质,是语义的体现
-
范式:关系数据库中的关系是要满足一定要求的,满足不同程度要求的为不同范式。也即范式是符合某一种级别的关系模式的集合。级别越高,表设计的就越合理
-
数据库设计(database design):数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。数据库设计的目标是为用户和各种应用系统提供一个信息基础设施和高效的运行环境
-
数据字典:它是关于数据库中数据的描述,即元数据,而不是数据本身。数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充实、完善的。它在数据库设计中占有很重要的地位
-
需求分析阶段:进行数据库设计首先必须准确了解与分析用户需求(包括数据与处理)。需求分析是整个设计过程的基础,也是最困难和最耗费时间的一步
-
概念结构设计阶段:概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体数据库管理系统的概念模型
-
逻辑结构设计阶段:逻辑结构设计是将概念结构转换为某个数据库管理系统所支持的数据模型,并对其进行优化
-
物理结构设计阶段:物理结构设计是为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)
-
数据库实施阶段:在数据库实施阶段,设计人员运用数据库管理系统提供的数据库语言及其宿主语言,根据逻辑设计和物理设计的结果建立数据库,编写与调试应用程序,组织数据入库,并进行试运行
-
数据库运行和维护阶段:数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评估、调整与修改
-
代数优化:是指关系代数表达式的优化,也即按照一定规则,通过对关系代数表达式进行等价变换,改变代数表达式中操作的次序和组合,使查询更高效
-
物理优化:是指存取路径和底层操作算法的选择。选择依据可以是基于规则的(rule based)、基于代价的(cost based)、基于语义的(semantic based)
-
事务:是用户定义的一个数据库操作序列。这些操作要么不做,要么全做,是一个不可分割的工作单位。例如在RDBMS中一个事务可以是一条SQL语句或整个程序。事务是数据库恢复和并发控制的基本单位
-
事务原子性:事务是数据库的逻辑工作单位,事务中包含的诸多操作要么全做、要么不做。因故障未能做完的,需要有一套机制用于“撤销”那一部分已经做了的
-
事务一致性:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态
-
事务隔离性:一个事务不能被其他事务干扰。也即一个事务的内部操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰
-
事务持续性:一个事务一旦提交,它对数据库中数据的改变就是永久性的。接下来的其他操作或故障不应该对其执行结果有任何影响
-
数据库恢复:把数据库从因破坏或故障而导致的错误状态恢复到某个已知的正确状态的技术
-
事务故障:某个事务在运行过程中由于种种原因未运行至正常终止点就夭折了
-
事务撤销(UNDO):事务故障意味着事务没有达到预期的终点(COMMIT或者显式的ROLLBACK),因此,数据库可能处于不正确状态。恢复程序要在不影响其他事务运行的情况下,强行回滚该事务,即撤销该事务已经作出的任何对数据库的修改,使得该事务好像根本没有启动一样
-
系统故障:是指造成系统停止运转的任何事件,使得系统需要重新启动
-
数据转储:指DBA定期手动或者通过设置使DBMS定期自动将整个数据库复制到存储介质上保存起来的过程。这些备用的数据称之为后备副本。当数据库遭到破坏后可以将后备副本重新装入,但是重装后的副本只能将数据库恢复到转储时的状态,要想恢复到故障发生时的状态,必须重新运行自转储以后的所有更新事物。因此,转储常和日志配合使用
-
静态转储:是在系统中无运行事务时进行的转储操作。即转储操作开始的时刻数据库处于一致性状态,而转储期间不允许(或不存在)对数据库的任何存取、修改活动。显然,静态转储得到的一定是一个数据一致性的副本
-
动态转储:是指转储期间允许对数据库进行存取或修改,也即转储和用户事物可以并发执行
-
数据库镜像:自动地将整个数据库或其中关键数据复制到另一个磁盘上。需要注意,在实际应用中,只对关键数据和日志文件进行镜像,而不是对整个数据库进行镜像
-
调度:事务的一次执行顺序称之为一个调度,表示事务的指令在系统中执行的时间顺序
-
串行调度:属于同一事务的指令紧挨在一起执行,对于有n个事务的事务组,可以有n!个有效调度
-
并发调度:来自不同事务的指令可以交叉执行。并发调度有可能会导致错误结果,仅当并发调度等价于某个串行调度时,则称该并发调度时可串行化的、正确的
-
丢失修改:两个以上事务从数据库中读入同一数据并修改,其中后提交事务的提交结果破坏了先提交事务的提交结果,导致了先提交事务对数据库的修改丢失
-
读脏数据:事务1修改某一数据,并将其写回磁盘;事务2读取同一数据后,事务1由于某种原因被撤销,这时事务1已修改过的数据被恢复为原值,事务2读到的不稳定的瞬间数据就与数据库中的数据产生了不一致,是不正确的数据,又称为脏数据
-
不可重复读:事物1读取数据后,事物2执行更新操作,使事物1无法再现前一次读取结果
-
并发控制:如果多个用户并发存取数据的行为不加以控制,那么极有可能破坏事务的隔离性和一致性。因此并发控制就是为了保证多用户并发操作数据库中信息时的正确性、一致性所采取的措施
-
封锁:封锁就是事务T 在对某个数据对象(表、记录等)操作之前,先向系统发出请求,对其加锁;加锁后事务T 对该数据对象就有了一定的控制,在事务T释放它的锁之前,其它的事务不能更新此数据对象
-
排他锁(X锁):又称为写锁,若事务T对数据对象A 加上X 锁,则只允许T 读取和修改A,其他任何事务都不能再对A 加任何类型的锁,直到T 释放A上的锁
-
共享锁(S 锁):又称为读锁,若事务T 对数据对象A 加上S 锁,则其他事务只能再对A 加S 锁,而不能加X 锁,直到T 释放A 上的S 锁
-
一级封锁协议:事务T 在修改数据R 之前必须先对其加X 锁,直到事务结束(COMMIT或ROLLBACK)才释放
-
二级封锁协议:是指在一级封锁协议基础上增加事务T在读取数据R之前必须先对其加S锁,读完后即可释放S锁
-
三级封锁协议:是指在一级封锁协议基础上,增加事务在读取数据R之前必须先对其加S 锁,直到事务结束才可以释放S锁
-
死锁:两个或两个以上事务均处于等待状态,每个事务都在等待其中另一个事务封锁的数据,导致任何事务都不能向前推进的现象
-
可串行化调度:多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行这些事务时的结果相同,称这种调度策略为可串行化(serializable)调度。可串行性是并发事务正确调度的准则, 也即一个给定的并发调度,当且仅当它是可串行化的,才认为是正确调度
-
封锁粒度(granularity):是指封锁对象的大小。封锁对象可以是逻辑单元,也可以是物理单元。封锁粒度与系统并发度和并发控制的开销密切相关,一般来说,封锁粒度越大,数据库所能封锁的数据单元就越少,并发度越小,开销越小