




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库原理及应用复习知识第一章 绪论一、基本概念:1.数据(data):数据库中存储的基本对象,是描述事物的符号记录,如:数字、文字、图形、图像、声音等,数据与其语义是不可分的。2.数据库(database,db) :是长期储存在计算机内、有组织的、可共享的大量数据集合。其特征是: 数据按一定的数据模型组织、描述和储存。 可为各种用户共享。 冗余度较小。 数据独立性较高、易扩展。3.数据库管理系统(database management system,dbms):是位于用户与操作系统之间的一层数据管理软件。dbms的主要功能有: 4.数据管理功能:数据定义功能,数据组织、存储和管理,数据操纵功能,数据库的事物管理和运行管理,数据库的建立和维护功能,其他功能:提供数据库的用户接口5.数据库系统(database system,dbs):是指在计算机系统中引入数据库后的系统 “db+dbms+应用系统+数据库管理员(database administration, dba )”二、数据库管理阶段:1.人工管理阶段(40年代中-50年代中)应用需求:科学计算 硬 件:无直接存取存储设备 软 件:无通用的操作系统 处理方式:批处理数据管理者:应用程序,数据不保存。 数据面向的对象:某一应用程序。 数据共享程度:无共享、冗余度极大。 数据独立性:不独立,完全依赖于程序。 数据结构化:无结构。 数据控制能力:应用程序自己控制。2.文件系统阶段(50年代末-60年代中)应用需求:科学计算、数据处理 硬 件:出现磁盘、磁鼓等 软 件:操作系统、高级语言 处理方式:批处理、共享的实时处理方式数据管理者:文件系统,数据长期保存。 数据面向的对象:某一应用程序。 数据共享程度:共享性差、冗余度大。 数据结构化:记录内有结构,整体无结构。 数据独立性:逻辑结构改变须修改应用程序。 数据控制能力:应用程序自己控制。3.数据库系统阶段(60年代末以来)应用需求:大规模管理 硬 件:出现大容量磁盘、磁盘阵列 软 件:数据库管理系统 处理方式:联机实时处理、分布处理和批处理数据管理者:dbms 数据面向的对象:整个系统 数据高度结构化:数据库与文件系统的根本区别 数据的共享性高,冗余度低,易扩充 数据的独立性高:物理独立性和逻辑独立性 数据控制能力:由dbms统一管理和控制4.数据库系统的特点数据结构化数据的共享性高,冗余度低,易扩充数据独立性高数据由dbms统一管理和控制三、三级模式、两级映像从数据库管理系统角度看数据库系统内部的模式结构。 三级模式结构:外模式、模式 、内模式应用a应用b应用c应用d应用e内模式外模式1外模式3模式外模式2数据库1.模式(逻辑模式) 是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图,综合了所有用户的需求。 一个数据库只有一个模式。 模式是数据库系统模式结构的中间层,与数据的物理存储细节和硬件环境无关,与具体的应用程序、开发工具及高级程序设计语言无关。2.外模式(子模式或用户模式) 数据库用户使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。 外模式通常是模式的子集,一个数据库可以有多个外模式 同一外模式可以为某一用户的多个应用系统所使用。 外模式是保证数据库安全性的一个有力措施3.内模式(存储模式) 数据物理结构和存储方式的描述,是数据在数据库内部的存储方式 一个数据库只能有一个内模式三级模式是对数据库中数据的三个抽象级别,两级映象是在dbms内部实现这三个抽象层次的联系和转换。4.外模式模式映象定义了外模式与模式之间的对应关系,每一个外模式都对应一个外模式模式映象。 保证了数据的逻辑独立性5.模式内模式映象定义了数据全局逻辑结构与存储结构之间的对应关系,数据库中模式内模式映象是唯一的。 保证了数据的物理独立性应用1应用2应用3应用4外模式1外模式2外模式3模 式映 像内模式映像1映像2映像3外模式/模式映像数据库模式/内模式映像数据库系统:数据库+数据库管理系统(及其开发工具)+应用系统+数据库管理员6.数据库管理员(dba)的主要职责是负责全面管理和控制数据库系统,包括:决定数据库中的信息内容与结构决定数据库的存储结构和存取策略定义数据的安全性和完整性约束条件监控数据库的使用和运行(例如定义和实施备份和恢复策略)数据库的改进与重组重构第二章 数据模型一、数据模型的组成要素1.数据结构系统的静态特性数据结构不仅要描述数据库组成对象,还要描述对象之间的联系。通常所说的层状、网状和关系模型,就是按照此处的数据结构来进行划分的。2.数据操作系统的动态特性是指对数据库中的各种对象运行执行的操作的集合,包括操作及有关的操作规则。数据库的操作包括查询和更新。3.数据的完整性约束条件一组完整性规则的集合完整性规则是数据模型中数据及其联系所具有的约束规则,用来限定数据库状态以及状态的变化,以保证数据的正确。4.关系模型是以集合论中的关系(relation)概念为基础发展起来的数据模型。5.基本关系的性质列是同质的(homogeneous),即每一列中的分量是同一类型的数据,来自同一个域。不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名。列的顺序无关紧要,即列的次序可以任意交换。任意两个元组不能完全相同。但在大多数实际关系数据库产品中,例如oracle、foxpro等,如果用户没有定义有关的约束条件,它们都允许关系表中存在两个完全相同的元组。行的顺序无关紧要,即行的次序可以任意交换。分量必须取原子值,即每一个分量都必须是不可分的数据项。 二、关系模型:用二维表的形式表示实体和实体间联系的数据模型1.关系模型特点:数据结构 数据操作关系数据操作是集合操作 关系模型将操作中的存取路径对用户屏蔽 完整性约束 实体完整性、参照完整性、用户自定义完整性优点: 建立在严格的数学概念的基础上 概念单一,实体和联系都用关系表示,数据操作结果为关系 数据的存取路径对用户是透明的。缺点: 由于存取路径透明,使得数据存取的效率不如非关系模型第三章 关系数据库一、概念、性质:关系数据库,是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据。选择运算是从关系的水平方向进行运算,是从关系r中选择满足给定条件的诸元组,记作,其形式定义如下:其中,f中的运算对象是属性名(或列的序号)或常数,运算符算术比较府(,=,)和逻辑运算符( ,) 。等值连接:当为“=”时,称之为等值连接,记为,其形式定义如下: 自然连接: 是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中将重复属性列去掉 。记为,其形式定义如下: 自然连接可以由基本的关系运算投影、选取和笛卡儿积导出。连接运算符是“=”的连接运算称为等值连接。它是从关系r与s的广义笛卡尔积中选取a,b属性值相等的那些元组二、等值连接与自然连接的区别:自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉第四章 sql语句一、sql概念:实际上它的功能包括查询(query),操纵(manipulation),定义(definition)和控制(control)四个方面,是一个综合的、通用的、功能极强的关系数据库语言。二、sql的主要特点1. 综合统一2. 高度非过程化3. 面向集合的操作方式4. 两种使用方式,统一的语法结构5. 语言简洁,易学易用(1).数据库查询 select (2). 数据定义 create, drop (3). 数据操纵 insert, update, delete (5). 数据控制 grant, revoke6.常用语句:创建数据库create database database-name删除数据库drop database dbname备份sql server创建 备份数据的 deviceuse masterexec sp_addumpdevice disk, testback, c:mssql7backupmynwind_1.dat开始 备份backup database pubs to testback创建新表create table tabname(col1 type1 not null primary key,col2 type2 not null,.)根据已有的表创建新表:a:create table tab_new like tab_old (使用旧表创建新表)b:create table tab_new as select col1,col2 from tab_old definition only删除新表drop table tabname增加一个列alter table tabname add column col type注:列增加后将不能删除。db2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。添加主键: alter table tabname add primary key(col)说明:删除主键: alter table tabname drop primary key(col)创建索引:create unique index idxname on tabname(col.)删除索引:drop index idxname注:索引是不可更改的,想更改必须删除重新建。创建视图:create view viewname as select statement删除视图:drop view viewname几个简单的基本的sql语句选择:select * from table1 where 范围插入:insert into table1(field1,field2) values(value1,value2)删除:delete from table1 where 范围更新:update table1 set field1=value1 where 范围查找:select * from table1 where field1 like %value1% -like的语法很精妙,查资料!排序:select * from table1 order by field1,field2 desc总数:select count as totalcount from table1求和:select sum(field1) as sumvalue from table1平均:select avg(field1) as avgvalue from table1最大:select max(field1) as maxvalue from table1最小:select min(field1) as minvalue from table1子查询(表名1:a 表名2:b)select a,b,c from a where a in (select d from b 或者: select a,b,c from a where a in (1,2,3)外连接查询(表名1:a 表名2:b)select a.a, a.b, a.c, b.c, b.d, b.f from a left out join b on a.a = b.c在线视图查询(表名1:aselect * from (select a,b,c from a) t where t.a 1;between的用法,between限制查询数据范围时包括了边界值,not between不包括select * from table1 where time between time1 and time2select a,b,c, from table1 where a not between 数值1 and 数值2三、视图与基表:视图:在sql中,视图是外模式一级数据结构的基本单位。它是从一个或几个基本表中导出的 表,是从现有基本表中抽取若干子集组成用户的“专用表”。 基本表:基本表的定义指建立基本关系模式,而变更则是指对数据库中已存在的基本表进行删除与修改。四、视图与基表区别:1、视图是已经编译好的sql语句。而表不是 2、视图没有实际的物理记录。而表有。 3、表是内容,视图是窗口 4、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时四对它进行修改,但视图只能有创建的语句来修改 5、表是内模式,试图是外模式 6、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些sql语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。 7、表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。 8、视图的建立和删除只影响视图本身,不影响对应的基本表。视图的作用1. 视图能够简化用户的操作.2. 视图使用户能以多种角度看待同一数据.3.视图对重构数据库提供了一定程度的逻辑独立性.关系数据库中,数据库的重构造是不可避免的。最常见的情况是把一个表垂直地分为两个以上的表。例如把学生关系 student(sno,sname,ssex,sage,sdept) 分为: sx(sno,sname,sage) sy(sno,ssex,sdept) 如果视图涉及两个表,意味着有两个表的连接操作,而在视图上执行的更新都是最终在基本表上的更新,视图本身只是一个用来简化用户操作的逻辑概念,执行时都是将对视图的操作翻译成基本表的操作。对视图的更新无法翻译成对基本表的操作时,就不允许更新了。除了两个基本表的视图不允许更新外,聚合操作导出的视图也不允许更新五、模糊查询:第五章 数据库安全性一、计算机系统安全性:为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。二、三类计算机系统安全性问题技术安全类管理安全类政策法律类三、授权与收权:1、grantgrant语句的一般格式: grant ,. on to ,. with grant option;语义:将对指定操作对象的指定操作权限授予指定的用户发出grant:dba数据库对象创建者(即属主owner)拥有该权限的用户按受权限的用户 一个或多个具体用户public(全体用户) with grant option子句:指定:可以再授予没有指定:不能传播不允许循环授权2、revoke授予的权限可以由dba或其他授权者用revoke语句收回revoke语句的一般格式为: revoke ,. on from ,.;第六章 数据库完整性一、数据的完整性:防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据防范对象:不合语义的、不正确的数据数据的安全性保护数据库防止恶意的破坏和非法的存取防范对象:非法用户和非法操作二、实体完整性规则:若属性(指一个或一组属性)a是基本关系r的主属性,则a不能取空值或重复值。关系模型的实体完整性create table中用primary key定义单属性构成的码有两种说明方法 定义为列级约束条件定义为表级约束条件对多个属性构成的码只有一种说明方法定义为表级约束条件三、参照完整性规则:若属性(或属性组)f是基本关系r的外码,它与基本关系s的主码ks相对应,则对于r中每个元组在f上的值必须为: f或者取空值(f的每个属性值均为空值) f或者s中某个元组的主码值关系模型的参照完整性定义在create table中用foreign key短语定义那些列为外码用references短语指明这些外码参照那些表的主码四、用户定义的完整性就是针对某一具体应用的数据必须满足的语义要求 rdbms提供,而不必由应用程序承担create table时定义列值非空(not null)列值唯一(unique)检查列值是否满足一个布尔表达式(check)索引分为聚簇索引和非聚簇索引两种,聚簇索引 是按照数据存放的物理位置为顺序的,而非聚簇索引就不一样了;聚簇索引能提高多行检索的速度,而非聚簇索引对于单行的检索很快。五、两类索引1.聚簇索引也叫簇类索引,是一种对磁盘上实际数据重新组织以按指定的一个或多个列的值排序。由于聚簇索引的索引页面指针指向数据页面,所以使用聚簇索引查找数据几乎总是比使用非聚簇索引快。每张表只能建一个聚簇索引,并且建聚簇索引需要至少相当该表120%的附加空间,以存放该表的副本和索引中间页。2.非聚簇索引,索引的一种。索引分为聚簇索引和非聚簇索引两种。建立索引的目的是加快对表中记录的查找或排序。牵引顺序与数据物理排列顺序无关。第七章 事务一、概念、特性事务(transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务通常由高级数据库操纵语言或编程语言(如sql,c+或java)书写的用户程序的执行所引起,并用形如begin transaction和end transaction语句(或函数调用)来界定。事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操作组成。特性:事务是恢复和并发控制的基本单位。 事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为acid特性。 原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。 一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。 隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。 持久性(durability)。持续性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。二、故障:1、事务内部的故障 事务内部的故障有的是可以通过事务程序本身发现的,有的是非预期的,不能由事务程序处理的。事务内部更多的故障是非预期的,是不能由应用程序处理的。如运算溢出、并发事务发生死锁而被选中撤消该事务、违反了某些完整性限制等。以后,事务故障仅指这类非预期的故障。事务故障意味着事务没有达到预期的终点(commit或者显式的rollback),因此,数据库可能处于不正确状态。恢复程序要在不影响其它事务运行的情况下,强行回滚(rollback)该事务,即撤消该事务已经作出的任何对数据库的修改,使得该事务好象根本没有启动一样。这类恢复操作称为事务撤消(undo)。2、系统故障 系统故障是指造成系统停止运转的任何事件,使得系统要重新启动。例如,特定类型的硬件错误(cpu故障)、操作系统故障、dbms代码错误、突然停电等等。这类故障影响正在运行的所有事务,但不破坏数据库。这时主存内容,尤其是数据库缓冲区(在内存)中的内容都被丢失,所有运行事务都非正常终止。发生系统故障时,一些尚未完成的事务的结果可能已送入物理数据库,有些已完成的事务可能有一部分甚至全部留在缓冲区,尚未写回到磁盘上的物理数据库中,从而造成数据库可能处于不正确的状态。为保证数据一致性,恢复子系统必须在系统重新启动时让所有非正常终止的事务回滚,强行撤消(undo)所有未完成事务。重做(redo)所有已提交的事务,以将数据库真正恢复到一致状态。 3、介质故障 系统故障常称为软故障(soft crash),介质故障称为硬故障(hard crash)。硬故障指外存故障,如磁盘损坏、磁头碰撞,瞬时强磁场干扰等。这类故障将破坏数据库或部分数据库,并影响正在存取这部分数据的所有事务。这类故障比前两类故障发生的可能性小得多,但破坏性最大。四、数据库恢复技术恢复操作的基本原理:冗余用存储在系统其它地方的冗余数据来重建数据库中已被破坏或不正确的那部分数据。恢复机制涉及的关键问题:如何建立冗余数据数据转储(backup)登录日志文件(logging)如何利用这些冗余数据实施数据库恢复1.事务故障:事务在运行至正常终止点前被终止恢复方法由恢复子系统应利用日志文件撤消(undo)此事务已对数据库进行的修改事务故障的恢复由系统自动完成,对用户是透明的,不需要用户干预事务故障的恢复步骤:(1)反向扫描文件日志(即从最后向前扫描日志文件),查找该事务的更新操作。(2)对该事务的更新操作执行逆操作。即将日志记录中“更新前的值” 写入数据库。插入操作, “更新前的值”为空,则相当于做删除操作删除操作,“更新后的值”为空,则相当于做插入操作若是修改操作,则相当于用修改前值代替修改后值(3)继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理。(4)如此处理下去,直至读到此事务的开始标记,事务故障恢复就完成了。2、系统故障的恢复系统故障造成数据库不一致状态的原因未完成事务对数据库的更新已写入数据库已提交事务对数据库的更新还留在缓冲区没来得及写入数据库恢复方法1. undo 故障发生时未完成的事务2. redo 已完成的事务系统故障的恢复由系统在重新启动时自动完成,不需要用户干预系统故障的恢复步骤(1)正向扫描日志文件(即从头扫描日志文件)重做(redo) 队列: 在故障发生前已经提交的事务这些事务既有begin transaction记录,也有commit记录撤销 (undo)队列:故障发生时尚未完成的事务 这些事务只有begin transaction记录,无相应的commit记录(2)对撤销(undo)队列事务进行撤销(undo)处理反向扫描日志文件,对每个undo事务的更新操作执行逆操作即将日志记录中“更新前的值”写入数据库 (3)对重做(redo)队列事务进行重做(redo)处理正向扫描日志文件,对每个redo事务重新执行登记的操作即将日志记录中“更新后的值”写入数据库3、介质故障的恢复(1)重装数据库(2)重做已完成的事务恢复步骤(1) 装入最新的后备数据库副本(离故障发生时刻最近的转储副本) ,使数据库恢复到最近一次转储时的一致性状态。对于静态转储的数据库副本,装入后数据库即处于一致性状态对于动态转储的数据库副本,还须同时装入转储时刻的日志文件副本,利用与恢复系统故障的方法(即redo+undo),才能将数据库恢复到一致性状态。(2) 装入有关的日志文件副本(转储结束时刻的日志文件副本),重做已完成的事务。首先扫描日志文件,找出故障发生时已提交的事务的标识,将其记入重做队列。然后正向扫描日志文件,对重做队列中的所有事务进行重做处理。即将日志记录中“更新后的值”写入数据库。介质故障的恢复需要dba介入dba的工作重装最近转储的数据库副本和有关的各日志文件副本执行系统提供的恢复命令具体的恢复操作仍由dbms完成第八章 并发控制一、并发控制 数据不一致发控制机制的任务对并发操作进行正确调度保证事务的隔离性保证数据库的一致性二、并发操作带来的数据不一致性1.丢失修改(lost update)指两个事务t1与t2从数据库中读入同一数据并修改,t2的提交结果破坏了t1提交的结果,导致t1的修改被丢失。2.不可重复读(non-repeatable read)指t1读取数据后,t2执行更新操作,使t1无法再现前一次读取结果。3.读“脏”数据(dirty read)指t1修改某一数据,并将其写回磁盘,t2读取同一数据后,t1由于某种原因被撤消,这时t1已修改过的数据恢复原值,t2读到的数据就与数据库中的数据不一致,是不正确的数据,又称为“脏”数据。三、封锁类型的相容矩阵t2t1xs-xnnysnyy-yyy四、 活锁如何避免活锁先来先服务当多个事务请求封锁同一数据对象时:按请求封锁的先后次序对这些事务排队;该数据对象上的锁一旦释放,首先批准申请队列中第一个事务获得锁。五. 死锁解决方法预防死锁死锁的诊断与解除两段封锁协议(two-phase locking,简称2pl)是最常用的一种封锁协议,理论上证明使用两段封锁协议产生的是可串行化调度.指所有事务必须分两个阶段对数据项加锁和解锁:在对任何数据进行读、写操作之前,事务首先要申请并获得对该数据的封锁;在释放一个封锁之后,事务不再申请和获得任何其他封锁。“两段”锁的含义:事务分为两个阶段 第一阶段是获得封锁,也称为扩展阶段; 第二阶段是释放封锁,也称为收缩阶段。六、两段锁协议slock b读b=2y=bxlock aa=y+1写回a=3unlock bunlock aslock a 等待 等待 等待 等待slock a读a=3y=a xlock bb=y+1写回b=4unlock bunlock aslock b读b=2y=bunlock bxlock aa=y+1写回a=3unlock aslock a等待等待等待slock a读a=3x=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能化住宅社区建设勘察设计及物业管理协议
- 大连二手房交易税费减免申请及审核合同
- 机器人企业员工股权激励与投资协议
- 2025上海市软件开发行业劳动合同模板
- 2025年渔业养殖行业水产养殖技术应用前景研究报告
- 2025年物流行业合同风险管理及其应对策略研究
- 建筑施工现场视频监控系统创新创业项目商业计划书
- 水产电商平台创新创业项目商业计划书
- 2025年化妆品行业化妆品市场消费需求与产品创新趋势分析报告
- 旅行便携套创新创业项目商业计划书
- 2025年咸阳机场安检员考试试题及答案
- 湖北宜昌长阳清江水务投资控股集团有限公司招聘笔试题库2025
- 2024年连云港东海县招聘社区工作者真题
- (零模)南昌市2025年高三年级九月测试语文试卷(含标准答案)
- 燃料电池催化剂研究报告
- 湖北省华大新高考联盟2026届高三上学期9月教学质量测评语文试题(含答案)
- 人工智能应用技术-教学大纲
- 2025-2026学年地质版(2024)小学体育与健康三年级(全一册)教学设计(附目录P123)
- 英语A级常用词汇
- (高清版)TDT 1075-2023 光伏发电站工程项目用地控制指标
- 农村不动产确权登记发证成果检查验收工作方案
评论
0/150
提交评论