数据库原理简答重点归纳

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1.为什么要使用数据库?因为数据管理技术经历了人工管理、文件系统和数据库管理系统三个阶段。人工管理阶段的数据面向应用程序,一个数据集只能对应于一个程序,缺点是无法共享利用,存在大量冗余数据;文件系统阶段在操作系统之上建立的文件系统已经成熟并广泛应用,数据由专门的软件进行统一管理。缺点是共享性差、独立性差、数据获取困难存在安全性问题、原子性问题、并发访问异常。因此引发展到了数据库管理系统,它可以有效地管理的数据,并可以解决文件处理系统中存在的问题,所以使用数据库系统。2.数据库管理系统的特点数据结构化:一是指数据不仅仅是内部结构化,而是将数据以及数据之间的联系统一管理起来,使之结构化。二是指在数据库中的数据不是仅仅针对某一个应用,而是面向全组织的所有应用。数据的共享度高,冗余度低,易扩充数据独立性高④数据由数据库系统统一管理和控制3.数据独立性指什么数据独立性:描述数据与应用程序之间的依赖程度,包括数据的物理独立性和数据的逻辑独立性。物理独立性:指用户的应用程序与存储在磁盘上数据库中的数据是相互独立的逻辑独立性:指用户的应用程序与数据库的逻辑结构是相互独立的。数据的独立问题是通过3级模式结构和两层映像功能解决的。3级模式是指模式,对应于逻辑层,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。外模式,对应于视图层,是数据库用户的数据视图,是保证数据库安全性的一个有力措施。内模式,对应于物理层数据抽象,它是数据的物理结构和存储方式的描述,是数据在数据库内部的表示方式。两层映像是指外模式/模式映像,保证了数据的逻辑独立性。模式/内模式映像,保证了数据的物理独立性4.数据模型的分类数据模型是一个描述数据语义、数据与数据之间联系(数据结构),数据操作,以及一致性(完整性)约束的概念工具的集合。根据数据抽象的不同级别,将数据模型划分为3类:概念模型:概念层次的数据模型。常用的概念模型有实体-联系模型(E-R模型)和面向对象模型(OO模型)逻辑模型:用于描述数据库数据的整体逻辑结构。常用的逻辑模型有层次模型、网状模型、XML模型物理模型:用来描述数据的物理存储结构和存取方法5.数据模型的组成要素数据模型的组成要素有:数据结构:描述数据库的组成对象(数据)以及对象之间的联系数据操作:指对数据库中各种对象(型)的实例(值)允许执行的操作集合,包括操作及有关的操作规则完整性约束:用以限定符合数据模型的数据库状态以及状态的变化,以保证数据库中数据的正确、有效和相容6.关系数据模型的完整性约束条件:实体完整性、参照完整性和用户自定义完整性7.数据抽象的层次:物理层抽象:最低层次的抽象,描述数据实际上是怎样存储的逻辑层抽象:描述数据库中存储什么数据以及这些数据之间的关系视图层抽象:最高层次的抽象,只描述数据库的某个部分8.数据库管理系统的功能:数据库管理系统(DBMS)是一组软件,负责数据库的存取、维护和管理DBMS的功能有数据定义数据组织、存储和管理数据操纵④数据库的事务和运行管理⑤数据库的建立和维护⑥其他功能9.DBMS的组成:查询处理器、存储管理器、事务管理器10.关系完整性约束条件实体完整性:主码不能取空值,是一对一的联系参照完整性:参照表的主码要么为空,要么必须在被参照表的主码中存在。可以实现一对多或多对多的联系用户自定义完整性:针对不同应用业务的不同语义而由用户自己定义的一些完整性约束条件。11.关系操作的分类有查询操作和更新操作两类。查询操作是关系操作中最主要的部分,查询操作分为选择、投影、连接、除、并、交、差、笛卡尔积等。更新操作包括插入、删除、修改12.数据库设计过程需求分析:了解和分析系统将要提供的功能及未来数据库用户的数据需求概念设计:根据需求分析中得到的信息,运用适当的数据模型将这些需求转化为数据库的概念模式。逻辑设计:将数据库的概念设计转化为所选择的数据库管理系统支持的逻辑数据模型。模式求精:分析并发现逻辑模式存在的问题,并进行改进和优化。物理设计:考虑数据库要支持的负载和应用需求,为逻辑数据库选取一个最适合现实应用的物理结构。应用与安全设计13.数据冗余导致的问题冗余存储、更新异常、插入异常、删除异常14.查询优化:处理一个给定的查询,尤其是复杂的查询,通常会有许多种策略。查询优化就是从这许多策略中找出最有效的查询执行计划的处理过程。查询优化分3步进行:逻辑优化:产生逻辑上与给定关系代数表达式等价的表达式;代价估计:估计每个执行计划的代价;物理优化:对所产生的表达式以不同方式作注释,产生不同的查询执行计划。15.数据库完整性与安全数据库的安全性:指保护数据库以防止不合法使用所造成的数据泄密、更改或破坏。数据库的完整性:防止数据库中存在不符合语义的数据,其防范对象是不合语义的、不正确的数据。16.存取控制:决定用户对数据库中的哪些对象进行操作、进行何种操作。存取控制机制主要包括两部分:定义用户权限及将用户权限登记到数据字典中;合法权限检查:当用户发出操作请求后,DBMS查找数据字典并根据安全规则进行合法权限检查,若操作请求超出了定义的权限,系统将拒绝执行此操作。17.用户权限:是指用户可以在哪些数据对象上进行哪些类型的操作。它由两个要素组成:数据对象和操作类型。18.自主存取控制:用户可自由地决定将数据的存取权限授予何人,决定是否将“授权”的权限授予别人。19.授权分为数据库级、表级和列级权限。20.权限的授予与收回GRANT和REVOKE有两种权限:目标权限和命令权限。命令权限的授予与收回:主要指DDL操作权限,语法分别为:GRANT{all|command_list}TO{public|username_list}REVOKE{all|command_list}FROM{public|username_list}其中:command_list可以是createdatabase、createdefault、createfunction、createprocedure、createrule、createtable、createview、createindex、backupdatabase和backuplog等;目标权限的授予和收回:主要指DML操作权限,语法分别为:GRANT{all|command_list}ONobjectName?[(columnName_list)]TO{public|username_list}[WITHGRANTOPTION]?REVOKE{all|command_list}ONobjectName[(columnName_list)]FROM{public|username_list}[CASCADE|RESTRICT]其中:command_list可以是update、select、insert、delete、excute和all21.数据库管理系统提供什么来维护数据库的完整性数据库的完整性是针对数据库中的数据进行正确性的维护,防止数据库中存在不符合语义、不正确的数据。为维护数据库的完整性,数据库管理系统提供:1)完整性约束条件定义:完整性约束条件也称为完整性规则,是数据库中的数据必须满足的语义约束条件;由SQL的DDL实现,作为模式的一部分存入数据库中。2)完整性检查方法:检查数据是否满足已定义的完整性约束条件称为完整性检查;3)违约处理:若发现用户操作违背了完整性约束条件,应采取一定的措施,如拒绝操作等。22.参照完整性违约处理的策略:1)拒绝(NOACTION)执行,是系统的默认策略:当在被参照关系中删除元组时,仅当参照关系中没有任何元组的外码值与被参照关系中要删除元组的主码值相同时,系统才执行删除操作,否则拒绝此操作。2)级联(CASCADE)操作。当删除或修改被参照关系的某些元组造成了与参照关系的不一致时,则删除或修改参照表中所有不一致的元组。23.事务:是数据库管理系统中竞争资源、并发控制和恢复的基本单元。事务结束的两种类型:事务提交(commit):将成功完成事务的执行结果(即更新)永久化,并释放事务占有的全部资源。事务回滚(rollback):中止当前事务、撤销其对数据库所做的更新,并释放事务占有的全部资源。24.事务特性:原子性、一致性、隔离性、持久性24.并发执行出现的问题:读脏数据、不可重复读、丢失更新25.串行调度:在调度S中,如果属于同一事务的操作都是相邻的,则称S是串行调度。冲突操作:在一调度S中,如果Oi与Oj是不同事务在相同数据对象上的操作,并且其中至少有一个是写操作,则称Oi与Oj是冲突操作;否则称为非冲突操作。冲突操作举例:rT(X)和wT(X),分别表示事务T读和写数据X冲突操作是指不同的事务对同一个数据的读写操作和写写操作Ri(x)与Wj(x)/*事务Ti读x,Tj写x*/Wi(x)与Wj(x)/*事务Ti写x,Tj写x*/冲突等价:如果一调度S可以经过交换一系列非冲突操作执行的顺序而得到一个新的调度S’,则称S与S’是冲突等价的④可串行化:假设调度S包含两个事务Ti与Tj,若两个相邻操作OiTi,OjTj访问不同的数据对象,则交换Oi与Oj不会影响调度中任何操作的结果。若Oi与Oj访问相同的数据对象,并且有一个为写操作时,则不能改变它们被调度执行的顺序。⑤冲突可串行化:如果一调度S与一串行调度是冲突等价的,则称S是冲突可串行化的。冲突可串行化调度执行结果一定是正确的,而正确的调度不一定都是冲突可串行化的。26.优先图:设S是一个调度。由S构造一个有向图,称为优先图,记为G=(V,E),其中V是顶点集,E是边集。顶点集由所有参与调度的事务组成,边集由满足下列3个条件之一的边Ti→Tj组成:Ti执行了Wi(Q)后Tj执行Rj(Q);Ti执行了Ri(Q)后Tj执行Wj(Q);Ti执行了Wi(Q)后Tj执行Wj(Q)。对于得到的优先图,如果图中无环,则S是冲突可串行化的;如果有环,则S是非冲突可串行化的。测试冲突可串行化的算法为:构建S的优先图;采用环路测试算法(如基于深度优先搜索的环检测算法)检测S中是否有环;若S包含环,则S是非冲突可串行化的,否则调度S是冲突可串行化的。例调度S涉及三个事务T1、T2和T3。S:r2(A);r1(B);w2(A);r3(A);w1(B);w3(A);r2(B);w2(B)关于A的动作,可找到t2t3的多个原因。如在S中,r2(A)在w3(A)前,w2(A)即在r3(A)前又在w3(A)前这两种情况中的任一种足以证明图9-9的优先图中从2到3的弧是正确的。关于B的动作,可找到T1T2的多个原因。如,r1(B)在w2(B)前,s的优先图中也有从1到2的弧。S:r2(A);r1(B);w2(A);r3(A);w1(B);w3(A);r2(B);w2(B)S是冲突可串行化的。与该图相符的结点顺序或事务顺序只有一个:(T1,T2,T3)S中这一串行顺序是:S':r1(B);w1(B);r2(A);w2(A);r2(B);w2(B);r3(A);w3(A);例10.9假设三个事务T1,T2,T3的操作按调度S1执行:S1:R2(A);R1(B);W2(A);R3(A);W1(B);W3(A);R2(B);W2(B)(1)画出S1调度的优先图;(2)S1冲突可串行化吗?若是,给出它的等价串行调度。(3)将R2(B)移到R3(A)之前可得到新的调度S2:S2:R2(A);R1(B);W2(A);R2(B);R3(A);W1(B);W3(A);W2(B)。S2冲突可串行化吗?若是,给出它的等价串行调度。S1:R2(A);R1(B);W2(A);R3(A);W1(B);W3(A);R2(B);W2(B)由R1(B)W2(B)、W1(B)R2(B)、W1(B)W2(B)得到T1-----T2由R2(A)W3(A)、W2(A)W3(A)、W2(A)R3(A)得到T2-----T3。S1调度的优先图T1----T2---------

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功