赞
踩
数据是指描述事物的符号记录。
数据库是按一定的组织方式将相关的数据组织在一起,长期存放在计算机外存储器上,能为多个用户共享的,与应用程序彼此独立的一组相关数据的集合。
数据库管理系统是位于用户和操作系统之间的一层系统软件,可以定义、创建、维护和操纵数据库的数据资源。
数据库系统通常是指带有数据库的计算机应用系统。
数据库系统的特点是:数据结构化、数据的共享性高、冗余性低、易扩充、数据独立性高。
文件系统和数据库系统之间的区别:
(1) 文件系统用文件将数据长期保存在外存上,数据库系统用数据库统一存储数据;
(2) 文件系统中的程序和数据有一定的联系,数据库系统中的程序和数据分离;
(3) 文件系统用操作系统中的存取方法对数据进行管理,数据库系统用DBMS统一管理和控制数据;
(4) 文件系统实现以文件为单位的数据共享,数据库系统实现以记录和字段为单位的数据共享。
文件系统和数据库系统之间的联系:
(1) 均为数据组织的管理技术;
(2) 均由数据管理软件管理数据,程序与数据之间用存取方法进行转换;
(3) 数据库系统是在文件系统的基础上发展而来的。
三级模式结构及其优点:
(1).模式:模式也称逻辑模式或概念模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
(2).外模式:外模式也称用户模式。它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示.外模式通常是模式的子集.
(3).内模式:内模式也称存储模式。一个数据库只有一个内模式.它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。
优点:
(1).保证数据的独立性。将模式与内模式分开,保证了数据的物理独立性。讲外模式和模式分开,保证了数据的逻辑独立性。
(2).简化了用户接口。按照外模式编写应用程序或输入命令,而不需要了解数据库内部的存储结构,方便用户使用系统。
(3).有利于数据共享。在不同的外模式下可由多个用户共享系统中的数据,减少了数据冗余。
(4).有利于数据的安全保密。在外模式下根据要求进行操作,只能对限定的数据操作,保证了其他数据的安全。
两个独立性:
(1).物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。即,数据在磁盘上怎样存储由DBMS管理,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变了,应用程序不用改变。
(2).逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,即,当数据的逻辑结构改变时,用户程序也可以不变。
前者是应用程序与数据库的数据,后者是应用程序与数据库的逻辑结构,并非角度不同,而是对象的不同。
因为有了数据库,应用程序对数据的访问是要通过DBMS进行的,程序不能直接操作数据本身。而且DBMS提供了两层映像机制:外模式/模式映像和模式/内模式映像。这两层映像机制保证了数据库系统中数据的逻辑独立性和物理独立性。
数据库的安全性是指保护数据库,防止不合法的使用,以免数据的泄漏、非法更改和破坏。
自主存取控制方法:定义各个用户对不同数据对象的存取权限,当用户对数据库访问时首先检查用户的存取权限,以防止不合法用户对数据库的存取。
自主存取机制的弊端:
强制存取控制方法:每一个数据对象被强制地标以一定的密级,每一个用户也被强制地授予某一个级别的许可证,系统规定只有具有某一许可证级别的用户才能存取某一个密级的数据对象。
视图:视图是一个虚拟表,是由其他表导出的表,其内容由查询定义,并且在引用视图时动态生成。
视图的作用:
1.简化用户操作。
2.使用户以多种角度看待同一数据。
3.提供了一定程度的逻辑独立性。
4.对数据提供安全保护。
5.可以更清晰地表达查询。
完整性和安全性的区别:
1). 数据库的完整性是为了在数据的添加、删除、修改等操作中不出现数据的破坏或多个表数据不一致,是指存储在数据库中的数据正确无误并且相关数据具有一致性,数据在逻辑上的一致性、正确性、有效性和相容性。
2).数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或破坏 。
3).数据的完整性和安全性是两个不同概念,数据库的完整性是指数据的正确性和相容性。数据库的安全性是指保护数据库,以防止不合法的使用造成的数据泄密、更玫或破坏。其相同点是两者都是对数据库中的数据进行控制,各自所实现的功能目标不同。
完整性违约处理:
由参照表引起的参照完整性的破坏一律拒绝操作,由被参照表引起的参照完整性的破坏可以拒绝,也可以设置为级联修改或直接设置为空值。
函数依赖:由X的值能确定Y的值,称X函数决定Y或Y函数依赖于X,记作X->Y,X是这个函数依赖的决定因素。
平凡函数依赖与非平凡函数依赖:
完全函数依赖与部分函数依赖:
传递函数依赖:
求解闭包:
求解最小依赖集:
首先将每个函数依赖右边变成单个属性。
再依次检查每个函数依赖,看去掉该函数依赖后左边的闭包是否包含A,若包含则表示该函数依赖多余,可以将该函数依赖删除。
最后检查左边为属性组的函数依赖,检验每个属性是否多余。
设计步骤:
1. 需求分析阶段
◼ 是否做得充分与准确,决定了构建数据库的速度和质量
2. 概念结构设计阶段
◼ 通过对用户需求进行综合、归纳与抽象,形成一个独立于具体数据库管理系统的概念模型
3. 逻辑结构设计阶段
◼ 将概念结构转换为某个数据库管理系统所支持的数据模型,并对其进行优化数据库设计的基本步骤(续)
4. 物理结构设计阶段
◼ 为逻辑数据结构选取一个最适合应用环境的物理结构
◼ 包括存储结构和存取方法
5. 数据库实施阶段
◼ 根据逻辑设计和物理设计的结果构建数据库
◼ 编写与调试应用程序
◼ 组织数据入库并进行试运行
6. 数据库运行和维护阶段
◼ 经过试运行后即可投入正式运行
◼ 在运行过程中必须不断对其进行评估、调整与修改
概念结构设计:
属性的原则:属性不可再分;属性不能与其他实体产生联系。
逻辑结构设计(E-R图转化为关系模型):
一对一和一对N的联系一般合并到一端的实体,多对多和多元联系只能新建一个关系模式。
嵌入式SQL语句中可以使用主语言的程序变量来输入或输出数据,在SQL语句中使用的主语言程序变量简称为主变量。
主变量分类:
①选择运算应尽可能先做。②把投影运算和选择运算同时进行。
③把投影同其前或其后的双目运算结合起来执行。
④把某些选择同在它前面要执行的笛卡儿积结合起来成为一个连接运算。
⑤找出公共子表达式。
⑥选取合适的连接算法。
代数优化通过改变操作的次序和组合来实现优化,不涉及数据的底层存取路径,而物理优化是要选择高效合理的操作算法或存取路径来实现优化。
事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,事务是一个不可分割的工作单元。
事务具有4个特性:原子性、一致性、隔离性和持续性。
原子性:事务是数据库的逻辑工作单位,事务中包括的操作要么都做,要么都不做。
一致性:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。
隔离性:一个事务的执行不能被除数其他事务干扰。即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。
持续性:持续性也称为永久性,指一个事务一旦提交,它对数据库中数据的改变就应该是永久生效的。接下来的其他操作或故障不应该对其执行结果有任何影响。
恢复技术能保证事务的原子性、持久性。
数据转储:❖转储是指数据库管理员定期地将整个数据库复制到磁带、磁盘或其他存储介质上保存起来的过程。
静态转储、动态转储、海量转储、增量转储:
登记日志文件:动态转储必须记录日志文件,否则无法正确恢复,静态转储可以记录日志文件,可以辅助恢复,记录日志时需要先写日志文件再写数据库。
事务故障的恢复:
事务故障:事务在运行至正常终止点前被终止。
❖ 恢复方法
◼ 由恢复子系统利用日志文件撤消(UNDO)此事务已对数据库进行的修改。
系统故障的恢复:
介质故障的恢复:
并发操作带来的数据不一致性包括三类:丢失修改、不可重复读和读“脏”数据。
(1)丢失修改(Lost Update)
两个事务T1和T2读入同一数据并修改,T2提交的结果破坏了(覆盖了)T1提交的结果,导致T1的修改被丢失。
(2)不可重复读(Non-Repeatable Read)
不可重复读是指事务T1读取数据后,事务T2执行更新操作,使T1无法再现前一次读取结果。
(3)读“脏”数据(Dirty Read)
读“脏”数据是指事务T1修改某一数据,并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因被撤销,这时T1已修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致,则T2读到的数据就为“脏”数据,即不正确的数据。
避免不一致性的方法和技术就是并发控制。最常用的并发控制技术是封锁技术。也可以用其他技术,例如在分布式数据库系统中可以采用时间戳方法来进行并发控制。
基本封锁类型:
排它锁(X锁):事务1对数据对象加X锁后,任何事务都不能再加锁。
共享锁(S锁):事务1对数据对象加S锁后,其他事务只能再加S锁。
相容性:
三级封锁协议:
缺陷:没有S锁
缺陷:读了数据就释放锁
活锁:也叫starvation,指事务可能永远得不到锁。
避免活锁:FIFO,即先来先服务,按请求先后次序将事务进行排队,优先给队首事务分配锁。
死锁:所有事务都在等锁,事务永远不会结束。
死锁的预防:
1.一次加锁法:要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行。
2.顺序封锁法:预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁。
死锁的诊断与解除:
诊断:
1.超时法:如果一个事务的等待时间超过了规定的时限,就认为发生了死锁。
2.等待图法:
可串行化调度:多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行这些事务时的结果相同。
冲突操作:
不能交换的操作:
两段锁协议:
两段锁协议:
两段锁协议可能发生死锁:
封锁对象的大小称为封锁粒度,封锁的粒度越大,数据库所能够封锁的数据单元就越少,并发度就越小,系统开销也越小; 封锁的粒度越小,并发度较高,但系统开销也就越大
多粒度封锁:在一个系统中提供多种不同粒度的锁供各个事务使用。
多粒度封锁协议:
意向锁:
意向锁种类:
意向锁相容矩阵:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。