数据库概念总结
第一章 绪论
1、数据:描述事物的符号记录称为数据。可以是数字也可以是文字、图形、图像声音、语言等。
2、数据库:是长期储存在计算机内、有组织的、可共享的大量数据的集合。具有永久存储、有组织和可共享三个基本特点。
3、数据库管理系统:位于用户与操作系统之间的一层数据管理软件。用于科学地组织和存储数据,高效地获取和维护数据。
4、数据库管理系统主要功能:数据定义功能、数据组织存储和管理、数据操纵功能、数据库的事务管理和运行管理、数据库的建立和维护功能、其他。
5、数据库系统:是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。
特点:数据结构化(与文件系统的本质区别)、数据的共享性高,冗余度低,易扩充、数据独立性高(通过三级模式和二级映像功能来保证)、数据由DBMS统一管理和控制
6、DBMS须提供以下几方面的数据控制功能:数据的安全性保护、数据的完整性检查、并发控制、数据库恢复。
7、数据管理技术的发展过程:人工管理阶段、文件系统阶段、数据库系统阶段
8、数据库的体系结构为三级结构,它们是存储层、概念层和外部层。
9、在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。通俗地讲,数据模型就是现实世界的模拟。
两类数据模型:概念模型、逻辑模型和物理模型。
10、数据模型的组成要素:数据结构、数据操作、数据的完整性约束条件。
11、模式:是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
外模式/模式映像:保证了数据的逻辑独立性
模式/ 内模式映像:保证了数据的物理独立性。
12、什么是数据库的逻辑独立性?物理独立性?为什么数据库系统具有数据与程序的独立性?
逻辑独立性是指用户的用程序与数据库的逻辑结构是相互独立的,使得当数据的逻辑结构变了,用户程序可以不变。物理独立性是指用户的应用程序与存储在磁盘上的数据是相互独立的,使得当数据的物理结构改变了,应用程序也可以不变。数据库系统的三级模式是对数据的三个抽象级别,将数据的具体组织留给DBMS 管理,使用户能逻辑地组织数据,而不必关心数据在计算机上的具体表示方式和存储方式。为了能够在内部实现三个抽象层次的联系和转换,数据库系统在三级模式之间提供了两级映像:外模式/模式映像、模式/ 内模式映,保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
13、数据库系统的组成:硬件平台及数据库,软件,人员
人员:数据库管理员,系统分析员和数据库设计人员,应用程序员,最终用户
数据库管理员:决定数据库中的信息内容和结构,决定数据库的存储结构和存取策略,
定义数据的安全性要求和完整性约束条件,监控数据库的使用和运行,数据库的改进和重组重构
第二章 关系数据库
1、关系模型主要是用二维表格结构表达实体集,用外键表示实体间联系。
2、选择、投影、并、差、笛卡尔积是5 种基本操作。
3、专门的关系运算包括选择、投影、连接、除运算等。
第三章 SQL
1、SQL 特点:综合统一、高度非过程化、面向集合的操作方式、以同一种语法结构提供多种使用方式、语言简洁,易学易用。
2、聚集函数:COUNT ([DISTINCT|ALL]*)
COUNT ([DISTINCT|ALL]<列名>)
SUM ([DISTINCT|ALL]<列名>)
AVG ([DISTINCT|ALL]<列名>)
MAX ([DISTINCT|ALL]<列名>)
MIN ([DISTINCT|ALL]<列名>)
3、视图的作用:1、能够简化用户的操作2、使用户能以多种角度看待同一数据3、对重构数据库提供了一定程度的逻辑独立性4、能够对机密数据提供安全保护5、适当的利用视图可以更清晰的表达查询
4、WHERE 子句与HAVING 短语的区别在于作用对象不同。前者作用于基本表或视图,从中选择满足条件的元组。后者作用于组,从中选择满足条件的组。
5、 =ANY 等价于IN 谓词,<ANY 等价于<MAX,<>ALL 等价于NOT IN 谓词, <ALL 等价于<MIN,等。
第四章 数据库安全性
1、数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露,更改或破坏。
2、计算机系统的三类安全性问题:技术安全、管理安全、政策法律。
3、常用的安全技术有:1.用户识别和鉴别2.存取控制机制3. 自主存取控制4.强制存取控制(MAC )5.视图机制。6.审计(Audit )功能7.数据加密
4、视图的好处:简化用户操作、使用户能以多种角度看待同一数据、对重构数据库提供了一定程度的逻辑独立性、对机密数据提供安全保护、适当利用可以更清晰的表达查询。
5、实现数据库系统安全性的技术和方法 — 最重要的是存取控制技术、视图技术和审计
技术
第五章 数据库完整性
1、数据库完整性是指数据的正确性和相容性。
2、数据的完整为了防止数据库中存在不符合语义的数据,即防止数据库中存在不正确的数据。安全性是保护数据库防止恶意的破坏和非法的存取。因此数据完整性防范的是合法用户的无意操作导致的数据错误,数据安全性防范的是非法用户的恶意操作导致的数据错误。
3、实体完整性:若属性(指一个或一组属性)A 是基本关系R 的主属性,则A 不能取空值。
4、参照完整性:若属性(或属性组)F 是基本关系R 的外码,它与基本关系S 的主码
K 相对应(基本关系R 和S 不一定是不同的关系),则对于R 中每个元组在F 上的值必须为: 或者取空值(F 的每个属性值均为空值);
或者等于S 中某个元组的主码值。
5、触发器是用户定义在关系表上的一类由事件驱动的特殊过程。
6、在参照完整性中,为什么外码的属性值也可以为空?什么时候可以为空?
若F 是基本关系R 的外码,它与基本关系S 的主码K,相对应(基本关系R 和S 不一定是不同的关系)则对于R 中每个元组在F 上的值可以取空值,或者等于S 中某个元组的主码值。即,如果F 本身不是一个主属性,则能取空值,否则不能取空值。
第六章 关系数据理论
1、数据依赖是一个关系内部属性与属性之间的一种约束关系。
2、函数依赖:设R(U)是属性集U上的关系模式。X,Y 是U 的子集。若对于R(U)的任意一个可能的关系r,r 中不可能存在两个元组在X 上的属性值相等,而在Y 上的属性值不等,则称X 函数确定Y 或Y 函数依赖于X,记作X →Y。
3、多值依赖:设R(U)是属性集U 上的一个关系模式。X,Y ,Z 是U 的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值,有一组Y 的值,这组值仅仅决定于x 值而与z 值无关。
4、1NF:每一个分量必须是不可分的数据项。
2NF:R ∈1NF,且每一个非主属性完全依赖于码
3NF:关系模式R<U,F>中若不存在这样的码X,属性组Y 及非主属性 Z(ZY)使得XY ,YZ 成立,Y\X ,则称R<U,F>3NF。
BCNF:关系模式R<U,F> ∈1NF。XY 且YX 时X 必含有码,则称R<U,F>BCNF。 4NF :关系模式 R<U,F> ∈1NF,如果对于R 的每个非多值依赖X Y( YX ),X 都含有码,则称R<U,F>4NF。
5、规范化小结:1NF—2NF 消除非主属性对码的部分函数依赖 ——3NF 消除非主属性对码的传递函数依赖—BCNF消除主属性对码的部分和传递函数依赖—4NF 消除非平凡且非函数依赖的多值依赖。
第七章 数据库设计
1、数据库设计定义:对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统使之能够有效地存储和管理数据,满足各种用户应用需求,包括信息管理要求和数据操作要求。
2、特点:三分技术,七分管理,十二分基础数据。结构(数据)设计和行为(处理)设计相结合。
3、基本步骤:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行和维护。
4、需求分析阶段任务:信息要求、处理要求、安全性与完整性要求。
5、需求分析阶段:综合各个用户的应用需求
概念设计阶段:形成独立于机器特点,独立于各个DBMS产品的概念模式(E-R图)
逻辑设计阶段:将E-R图转换成具体的数据库产品支持的数据模型,形成数据库逻辑
模式;再建立必要的视图,形成数据的外模式
物理设计阶段:进行物理存储安排,建立索引,形成数据库内模式
6、数据字典:系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。通常包括数据项、数据流、数据存储和处理 5 部分。数据字典是关于数据库中数据的描述,即元数据,而不是数据本身。
7、概念结构设计方法:自顶向下、自底向上、逐步扩张、混合策略。
8、确定数据库物理结构:确定数据的存放位置和存储结构,包括:确定关系、索引、聚簇、日志、备份等的存储安排和存储结构。 确定系统配置。
第八章 数据库编程
1、游标是系统为用户开设的一个数据缓冲区,存放SQL 语句的执行结果,每个游标区都有一个名字。用户可以通过游标逐一获取记录,并赋给主变量,交由主语言进一步处理。
2、嵌入式SQL语句与主语言之间的通信:向主语言传递SQL语句的执行状态信息,使主语言能够据此控制程序流程,主要用SQL通信区(SQLCA)实现。 主语言向SQL语句提供参数,主要用主变量实现。 将SQL语句查询数据库的结果交主语言处理,主要用主变量和游标实现。
3、存储过程是由PL/SQL 语句书写的过程,这个经编译和优化后存储在数据库服务器中,因此称它为存储过程,使用时只要调用即可。优点:运行效率高、降低了客户机和服务器之间的通信量、有利于集中控制,方便维护。
4、ODBC的工作流程:配置数据源,初始化环境,建立连接,分配语句句柄,执行SQL语句,结果集处理,中止
第九章 关系查询处理和查询优化
1、查询处理步骤:查询分析 对查询语句进行扫描、词法分析和语法分析。
查询检查 根据数据字典对合法的查询语句进行语义检查根据数据字典中的用户权限和完整性约束定义对用户的存取权限进行检查
查询优化 选择一个高效执行的查询处理策略
查询执行 依据优化器得到的执行策略生成查询计划,由代码生成器生成执行这个查询计
划的代码。
2、连接操作的实现 嵌套循环方法 排序-合并方法 索引连接方法 Hash Join方法
3、查询优化的总目标 是选择有效的策略,求得给定关系表达式的值,使得查询代价最小(实际上是较小)。
第十章 数据库恢复技术
1、事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。特性:原子性、一致性、隔离性、持续性。
2、故障种类:事务内部故障、系统故障、介质故障、计算机病毒
3、数据转储是数据库恢复中采用的基本技术即DBA 定期地将整个数据库复制到磁带或另一个磁盘上保存起来的过程。
4、日志文件是用来记录事务对数据库的更新操作的文件。主要有两种格式:以记录为单位的日志文件和以数据块为单位的日志文件。
5、数据库镜像即根据DBA 的要求,自动把整个数据库或其中的关键数据复制到另一个磁盘上。
第十一章 并发控制
1、并发控制机制的任务:对并发操作进行正确调度,保证事务的隔离性,保证数据库的一致性
2、并发操作带来的数据不一致性主要包括丢失修改、不可重复读和读“脏”数据等。
3、封锁就是事务T 在对某个数据对象操作之前,先向系统发出请求,对其加锁。基本的封锁类型在两种:排它锁(X 锁,写锁)和共享锁(S 锁,读锁)。
4、预防死锁的方法:一次封锁法 ,顺序封锁法 死锁的诊断与解除 超时法 等待图法
5、可串行化调度:多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行这些事务时的结果相同,称这种调度策略为可串行化的调度。
6、两段锁协议是指事务必须分两个阶段对数据项加锁和解锁。在对任何数据进行读、写操作之前,首先要申请该数据的封锁;在释放一个封锁之后,事务不再申请和获得任何其他封锁.
7、封锁对象的大小称为封锁粒度。
8、选择封锁粒度的原则:需要处理多个关系的大量元组的用户事务:以数据库为封锁单位;
需要处理大量元组的用户事务:以关系为封锁单元;
只处理少量元组的用户事务:以元组为封锁单位
第二篇:数据库知识点总结
文件处理系统存在问题:数据的冗余和不一致,数据访问困难,数据孤立,完整性问题,原子性问题,并发访问异常,安全性问题
数据库三级抽象 物理层:最低层次的抽象,描述数据实际上是怎样存储的。逻辑层:比物理层层次稍高的抽象,描述数据库中存储什么数据及这些数据间存在什么关系。视图层:最高层次的抽象,只描述整个数据库的某个部分
数据操纵语言DML:使用户可以访问或操作那些按其某种适当的数据模型组织起来的数据。 过程化DML:要求用户指定需要什么数据以及如何获得这些数据。非过程化DML:只要求用户指定需要什么数据,而不指明如何获得这些数据
事务状态图活动状态:初始状态;事务执行时处于这个状态。部分提交状态:最后一条语句执行后。失败状态:发现正常的执行不能继续之后。中止状态:事务回滚并且数据库已恢复到事务开始执行前的状态之后。提交状态:成功完成后
事务进入中止状态,系统有两种选择:重启事务:事务中止是硬件错误或不是由事务的内部逻辑产生的软件错误时。杀死事务:事务的内部逻辑错误,或者由于输入错误,或所需数据在数据库中没有找到
可恢复调度:对于每对事务和,如果读取了由所写的数据项,则先于提交无级联调度:对于每对事务和,如果读取了由所写的数据项,则必须在这一读取前提交,容易验证无级联调度总是可恢复的。级联回滚:因一个事无故障导致一系列事物回滚的现象。
强实体集:主码是生成的模式的主码。弱实体集:主码由其所依赖的强实体集的主码与弱实体集的分辨符组合而成
超码:一个或多个属性的集合,这些属性的组合可以使我们在一个关系中唯一地标识一个元组。候选码:任意子集都不能成为超码。主码:代表被数据库设计者选中的用来在同一关系中区分不同元组的候选码
事务ACID特性: 原子性:事务的所有操作在数据库中要么全部正确反映,要么全部不反映。一致性:隔离执行事务时保持数据库的一致性。隔离性:尽管多个事务可能并发执行,但系统保证,对于每对事务和,在看来,或者在开始之前已经完成执行,或者在完成之后开始执行。持久性:一个事务成功完成后,它对数据库的改变是永久的,即使系统可能出现故障
视图:任何不是逻辑模型的一部分但作为虚关系对用户可见的关系。屏蔽数据库的逻辑细节,提供防止用户访问数据库的某些部分的安全性机制。create view v as<…>
物化视图:保证如果用于定义视图的实际关系改变了,视图也跟着修改。视图维护:保证视图一直是最新的过程。用其他视图定义视图:一个视图可能被用到定义另一个视图的表达式中视图展开:该过程家丁视图定义不是递归的
完整性约束:保证当授权用户对数据库进行修改时不会破坏数据的一致性,防止对数据的意外破坏
DBMS数据库管理系统:由一个互相关联的数据的集合和一组可以访问这些数据的程序组成。该集合为数据库。目标:提供一个可以方便高效的存取数据库信息的环境。
广义投影:运算通过允许在投影列表中使用算数函数来对投影进行扩展(E),其中E是任意关系代数表达式,而F1…Fn中的每一个都是涉及常量以及E的模式中属性的算术表达式
删除:r ← r-E r是关系而E是关系代数查询 插入:r ← r E
更新:r ←
数据定义:数据库中的关系集合由数据定义语言(DDL)指定给系统,包括每个关系的模式每个属性的值域完整性约束每个关系维持的索引集合,每个关系安全性和权限信息。磁盘上每个关系的物理存储结构
建造表create table r(A1D1,…,AnDn,<完整性约束1>,<完整性约束k>)r是关系名 Ai是关系r模式的一个属性名Di是属性Ai域的值的域类型
not null数据不允许有空值
insert into 关系名 values()
delete from 关系名(表名)删除
drop table r 去掉一个关系
alter table r add A D 修改关系表r是已有关系名字 A是要添加的属性的名字 D是要添加的属性的域
as子句给结果关系中的属性赋个名称 group by 子句中的一个或多个属性是用来构造分组的 distinct用来删除重复元组 having分组限定条件
空值检测null 有空值参与比较运算,结果是unknow
集合成员资格:in测试元组是否是集合中成员,也可以用于枚举集合
集合的比较:至少比某一个要大>some(some任意一个all所有每一个) =some等价于in <>all等价于not in
将“关系A包含B”写成“not exists(B except A)”
测试是否存在重复元组:结果中没有重复的元组,unique返回真
删除:delete from r where P
插入:insert into account values
更新:update account set
事务:由查询和更新语句序列组成commit work提交当前事务rollback work回滚当前事务
not null约束:禁止在该属性上插入一个空值;同样可以被用在用户定义域的声明中,由此该域类型的属性不能为空
unique:指出Aj1….Ajm属性形成了一个候选码,候选码的属性可为空
check:保证属性值满足指定的条件
参照完整性:保证一个关系中给定属性集上的取值也在另一关系的某一属性集的取值中出现
函数依赖推导:模式R上函数依赖α→β成立的条件是:如果对任意合法关系r(R)及r中任意两个元组t1和t2,若t1[α]=t2[α],则t1[β]=t2[β]
保持依赖判别:r分解为n份后,f的闭包不变。
视图等价的串行调度
1对于每个数据项Q,若事务Ti在调度S中读取Q的初始值,那么在调度S’中Ti也必须读取Q的初始值。2对于每个数据项Q,若事务Ti在调度S执行read(Q),并且读取的值是由事务Tj执行的write(Q)产生的,则在调度S’中,Ti的read(Q)操作读取的值Q也必须是有Tj的同一个write(Q)产生的。3对于每个数据项Q,若在调度S中有事务执行最后的write(Q)操作,则在调度S’中操作该事务也必须执行最后的write(Q)
BCNF满足条件:对所有中形如α→β的函数依赖下面至少一个成立:α→β是平凡依赖;α是R的一个超码。分解方法:设R为不属于BCNF的一个模式,则至少有一个非平凡的函数依赖α→β,且α不是R的超码,我们在设计中用一下两个模式取代R:(αβ)(R-(β-α))
3NF满足条件:中所有形如α→β的函数依赖,至少有以下之一成立:α→β是一个平凡的函数依赖;α是R的一个超码;β-α中的每个属性A都包含在R的一个候选码中
无损分解:如果我们把r投影至R1和R2上,然后计算投影结果的自然连接,我们仍然得到一摸一样的r,ΠR1(r)??ΠR2(r)=r。判别:R1交R2是二者中任意一个的超码。
属性集闭包(Armstring公理)
自反律:βα,则α→β
增补律:α→β,则γα→βγ
传递律:α→β及β→γ则α→γ
合并律α→β及→γ,α→βγ
分解律α→βγ,则α→βα→γ
伪传递律:若有α→β及γβ→δ则αγ→δ
闭包:α为一属性集,我们称在函数依赖集F下由α函数确定的所有属性的集合为F下α的闭包
属性集闭包算法用途:1判定α是否为超码,通过计算,看是否包含了R中的所有属性。2通过检验是否β,我们可以验证函数依赖α→β是否成立。3对任意γ,我们找出闭包;对任意的S,我们输出一个函数依赖γS
无关属性:考虑函数依赖集F及F中函数依赖α→β,如果A∈α并且F逻辑蕴涵(F—﹛α→β﹜)∪﹛(α—A)→β﹜,则A在α中是无关的;如果如果A∈β并且F逻辑蕴涵(F—﹛α→β﹜)∪﹛α—(β→A)﹜,则属性A在β中是无关的
正则覆盖(Canonical cover)
F的一个正则覆盖Fc是一个依赖集,使得F逻辑蕴涵Fc中的所有依赖,并且Fc逻辑蕴涵F中的所有依赖,此外Fc必须具有如下性质:Fc中任何函数依赖都不含无关属性;Fc中函数依赖的左半部都是唯一的
若一个调度s于一个串行调度冲突等价,称调度s是冲突可串行化的
如果调度S可以经过一系列非冲突指令交换转换s’,我们称S与S’是冲突等价的如果某个调度视图等价于一个串行调度,则我们说这个调度S是视图可串行化的
共享锁若事务Ti获得了数据项Q的共享型锁,则Ti可读取但不能写Q排它锁:若事务Ti获得了数据项Q的排他型锁,则Ti可读取又能写Q
两阶段封锁协议:增长阶段事务可以获得锁,但不能释放锁。缩减阶段事务可以释放锁,但不能获得锁。
两阶段封锁协议保证冲突可串行化,并不保证不发生死锁,级联回滚可能发生严格两阶段封锁协议:不仅要求封锁是两阶段,还要求事务持有的所有排它锁必须在事务提交后方可释放。强两阶段封锁协议:要求事务提交之前不得释放任何锁
基于图的协议:树形协议只使用排他锁树形协议遵循规则:Ti首次加锁可以对任何一个数据项进行;此后Ti对数据项Q加锁的前提是Ti持有Q的父项上的锁;对数据项解锁可以随时进行;数据项被Ti加锁并解锁后,Ti不能再对数据项加锁
Distinct primary foreign references check union Intersect Except