查看此文章
(1)从数据库系统角度分为三种:排他锁、共享锁、更新锁。
(2)共享(S)锁:多个事务可封锁一个共享页;任何事务都不能修改该页; 通常是该页被读取完毕,S锁立即被释放。
排它(X)锁:仅允许一个事务封锁此页;其他任何事务必须等到X锁被释放才能对该页进行访问;X锁一直到事务结束才能被释放。
更新(U)锁:用来预定要对此页施加X锁,它允许其他事务读,但不允许再施加U锁或X锁;当被读取的页将要被更新时,则升级为X锁;U锁一直到事务结束时才能被释放。
答:事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。事务和程序是两个概念。一般来说 一个程序中包含多个事务。
(1)原子性(Atomicity)
事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。
(2)一致性(Consistency)
事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。即指系统从一个正确的状态到另一个正确的状态。举个例子,银行有A向B转账,A有50元,向B转100元,这时事务会提示余额不足,回滚,这就保证了银行系统的一致性,因为余额不可为负数。
(3)隔离性(Isolation)
一个事务的执行不能被其他事务干扰。即一个事务的内部操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。
(4)持续性(Durability)
持续性也称永久性,指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其执行结果有任何影响。
(5)恢复技术能保证事务的原子性、一致性和持续性。
(1)BEGIN TRANSACTION /标记一个显式本地事务的起始点/
(2)COMMIT /提交事务/
(3)ROLLBACK /回滚事务/
B/S | C/S | |
---|---|---|
定义 | B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用 | Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,充分利用两端硬件环境的优势。早期的软件系统多以此作为首选设计标准 |
硬件环境 | B/S要有操作系统和浏览器就行,与操作系统平台无关 | C/S用户固定,并且处于相同区域,要求拥有相同的操作系统 |
客户端要求 | 计算机电脑配置要求较高 | 计算机电脑配置要求较低 |
优点 | 分布性强、维护方便、开发简单且共享性强、总体拥有成本低 | 交互性强、具有安全的存取模式、网络通信量低、响应速度快、利于处理大量数据 |
缺点 | 数据安全性问题、对服务器要求过高、数据传输速度慢、软件的个性化特点明显降低,这些缺点是有目共睹的,难以实现传统模式下的特殊功能要求。例如通过浏览器进行大量的数据输入或进行报表的应答、专用性打印输出都比较困难和不便。此外,实现复杂的应用构造有较大的困难。 | 该结构的程序是针对性开发,变更不够灵活,维护和管理的难度较大。通常只局限于小型局域网,不利于扩展。并且,由于该结构的每台客户机都需要安装相应的客户端程序,分布功能弱且兼容性差,不能实现快速部署安装和配置,因此缺少通用性,具有较大的局限性。要求具有一定专业水准的技术人员去完成。 |
(1)存储过程:存储在数据库目录中的一些的声明性SQL语句,具有运行效率高、降低客户机和服务器之间的通信量以及方便实施企业规则等优点。
(2)函数分为单行函数和组函数
单行函数:针对sql语句影响的每一行都进行处理,并针对这一行返回一个结果sql影响多少行就返回多少个结果
组函数 :对sql语句影响的所有行进行综合处理,最终返回一个结果无论sql语句影响多少行都只返回一个结果(组函数会忽略空值)
(1)索引是数据库中专门用于帮助用户快速查找数据的一种数据结构。类似于字典中的目录,查找字典内容时可以根据目录查找到数据的存放位置,然后直接获取,加快查找速度。
(2)索引可以帮助用户快速地查找数据,利用索引可以快速访问数据库表中的特定信息。
主键 | 外键 | |
---|---|---|
定义 | 表用于唯一标识一条记录的一个或多个字段 | 如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键 |
特点 | 不能为空,不能重复 | 只能引用外表中的列的值或用空值,可以重复 |
用途 | 唯一地标识一条记录;保证实体的完整性;加快数据库的操作速度 | 保持数据一致性、完整性;控制存储在外键表中的数据,使两张表形成关联(用来和其他表建立联系用的) |
(1)基本表是本身独立存在的表,在SQL中一个关系就对应一个表。一个(或多个)基本表对应一个存储文件,一个表可以带若干索引,索引也存放在存储文件中。
(2)视图是从一个或几个基本表(或视图)导出的表。它与基本表不同。视图就像一个窗口,透过它可以看到数据库中自己感兴趣的数据及其变化,它可以和基本表一样被查询、被删除。也可以在一个视图之上再定义新的视图,但对视图的更新(增、删、改)操作则有一定的限制。
(3)基本表与视图的区别和联系:
①区别:视图本身不独立存储在数据库中,是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。
②联系:视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图。所以基本表中的数据发生变化,从视图中查询出的数据也就随之发生改变。
视图至少有以下五个优点:
(1)视图能够简化用户的操作:视图机制使用户可以将注意力集中在所关心的数据上,如果这些数据不是.直接来自基本表,则可以通过定义视图,使数据库看起来结构简单、清晰,并且可以简化用户的数据查询操作;
(2)视图使用户能以多种角度看待同一数据:视图机制能使不同的用户以不同的方式看待同一数据,当许多不同种类的用户共享一个数据库时,这种灵活性是非常重要的;
(3)视图对重构数据库提供了一定程度的逻辑独立性:数据的逻辑独立性是指当数据库重构时,用户的应用程序不会受影响;
(4)视图能够对机密数据提供安全保护:有了视图机制,就可以在设计数据库应用系统时,对不同的用户定义不同的视图,使机密数据不出现在不应看到这些数据的用户视图上。这样视图机制就自动提供了对机密数据的安全保护功能;
(5)使用视图可以更清晰的表达查询。
(1)E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。它是描述现实世界关系概念模型的有效方法。是表示概念关系模型的一种方式。
用“矩形框”表示实体型,矩形框内写明实体名称;
用“椭圆图框”或圆角矩形表示实体的属性,并用“实心线段”将其与相应关系的“实体型”连接起来;
用”菱形框“表示实体型之间的联系成因,在菱形框内写明联系名,
并用”实心线段“分别与有关实体型连接起来,同时在”实心线段“旁标上联系的类型(1:1,1:n或m:n)
(2)ER模型向关系模型的转换规则:
实体类型的转换:
将每个实体类型转换成一个关系模式,实体的属性即为关系的属性,实体标识符即为关系的键。
联系类型的转换:
① 实体间的联系是1:1
可以在两个实体类型转换成两个关系模式中的任意一个关系模式的属性中加入另一个关系模式的键和联系类型的属性。
② 如实体间的联系是1:N
则在N端实体类型转换成的关系模式中加入1端实体类型转换成的关系模式的键和联系类型的属性。
③ 如实体间的联系是M:N
则将联系类型也转换成关系模式,其属性为两端实体类型的键加上联系类型的属性,而键为两端实体键的组合。
(3)E-R图的设计原则如下:
① 先设计局部E-R图,再把每一个局部的E-R图综合起来,生成总体的E-R图
② 实体是一个单独的个体,不能存在于另外一个实体中,既不能作为另外一个实体的属性。
③ 属性应该存在于且存在于某一个实体或者关系中,可以避免数据冗余。
④ 同一个实体在同一个E-R图中只能出现一次。
⑤ “属性”不能再具有需要描述的性质。“属性”必须是不可分割的数据项,不能包括其他属性。
数据库软件系统的建立流程如下:
(1)需求分析:了解用户的数据需求、处理需求、安全和完整性需求。
(2)概念结构设计:通过数据抽象,设计系统的概念模型,一般为E-R模型。
(3)逻辑结构设计:设计系统的模式和外部模式,特别是关系模型的基本表和视图。
(4)物理结构设计:设计数据的存储结构和访问方法,如索引的设计。
(5)系统实现:组织数据存储,编写应用程序,试运行。
(6)运行和维护:系统投入运行,进行长期维护。
(1)数据字典是系统中各类数据描述的集合。数据字典的内容通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分。数据项是组成数据的最小组成单位,若千个数据项可以组成-一个数据结构。数据字典通过对数据项和数据结构的定义来描述数据流和数据存储的逻辑内容。
(2)数据字典的作用:数据字典是关于数据库中数据的描述,在需求分析阶段建立,是下一步进行概念设计的基础,并在数据库设计过程中不断修改、充实、完善。
(1)游标是系统为用户开设的一一个数据缓冲区,存放SQL语句的执行结果,每个游标区都有一个名字。
(2)用户可以通过游标逐一获取记录, 并赋给主变量,交由主语言进一步处理。
(1)触发器(Trigger)是用户定义在关系表上的一-类由事件驱动的特殊过程。一旦定义,任何用户对表的增删改操作均由服务器自动激活相应的触发器,在DBMS(数据库管理系统)核心层进行集的完整性控制。
(2)触发器类似于约束,但是比约束更加灵活,可以实施比外键约束、CHECK约束更为复杂的检查和操作,具有更精细和更强大的数据控制能力。
(1)丢失修改(lost update):两个事务T1和T2读入同一数据并修改,T2提交的结果破坏了T1提交的结果,导致T1的修改被丢失。
(2)不可重复读(non-repeatable read):事务T1读取数据后,事务T2执行更新操作,使T1无法再现前一次得到读取结果。
(3)读“脏”数据(dirty read):事务T1修改某一数据并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因被撤销,这时被T1修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致,则此时T2读到的数据就为“脏”数据。
(4)产生不一致的主要原因是并发操作破坏了事务的隔离性。
答:并发控制的主要技术有封锁(Locking)、时间戳(Timestamp)和乐观控制法,商用的DBMS(数据库管理系统)一般都采用封锁方法。
(1)见此文章
(2)作用:可以尽量减少数据冗余、避免插入异常、删除异常和更新异常。
(1)数据库的完整性是指数据的正确性和相容性,其目的是为了防止数据库中的数据存在不符合语义的数据,也是防止数据库中存在不正确的数据。
(2)数据库的完整性有以下三种:实体完整性、参照完整性和用户定义的完整性。前两种是关系型数据库必须要满足的,用户定义的完整性是应用领域需要遵循的约束条件,体现了具体领域中的语义约束。
(3)实体完整性:要求每个表中只有一个主键,且主键必须唯一,不能为空。例如学生表中的学号必须唯一,且不能为空,否则无法对学籍信息进行操作。
(4)参照完整性:表中的外键必须是另一个表的主键的有效值,或者取空值。它是数据表间数据参照引用的约束,也就是对外键的约束。
(5)用户自定义的完整性:针对某一具体关系型数据库的约束条件,它反映某一具体应用涉及的数据必须满足的语义要求。例如某个属性必须取唯一值、某个非主属性不能取空值等。
答:把对数据的修改写到数据库中和把表示这个修改的日志记录写到日志文件中是两个不同的操作。有可能在这两个操作之间发生故障,即这两个写操作只完成了一个。
如果先写了数据库修改,而在运行记录中没有登记这个修改,则以后就无法恢复这个修改了。如果先写日志,但没有修改数据库,在恢复时只不过是多执行一次UNDO操作,并不会影响数据库的正确性。所以一定要先写日志文件,即首先把日志记录写到日志文件中,然后进行数据库的修改。
(1)数据库镜像即根据DBA的要求,自动把整个数据库或者其中的部分关键数据复制到另一个磁盘上。每当主数据库更新时,DBMS自动把更新后的数据复制过去,即DBMS自动保证镜像数据与主数据的一致性。
(2)数据库镜像的用途有两点:
①用于数据库恢复,当出现介质故障时,可由镜像磁盘继续提供使用,同时DBMS自动利用镜像磁盘数据进行数据库的恢复,不需要关闭系统和重装数据库副本。
②提高数据库的可用性,在没有出现故障时,当一个用户对某个数据加排它锁进行修改时,其他用户可以读镜像数据库上的数据,而不必等待该用户释放排它锁。
见此文章
查看此文章
答:模式( schema)是数据库中全体数据的逻辑结构和特征的描述,它仅仪涉及型的描述,不涉及具体的值。模式的一个具体值称为模式的一个实例(instance)。模式是相对稳定的,而实例是相对变动的,因为数据库中的数据是在不断更新的。模式反映的是数据的结构及其联系,而实例反映的是数据库某一时刻的状态。
(1)模式(schema)
模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。模式实际上是数据库数据在逻辑级上的视图。一个数据库只有一个模式。
(2)外模式( external schema)
外模式也称子模式( subschema)或用户模式,它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。外模式通常是模式的子集。一个数据库可以有多个外模式。
(3)内模式( internal schema)
内模式也称存储模式(storage schema),一个数据库只有一个内模式。它是数据物理结构和存储方式的描述是数据在数据库内部的组织方式。
(1)概述
为了能够在系统内部实现这三个抽象层次的联系和转换,数据库管理系统在这三级模式之间提供了两层映像:外模式/模式映像和模式/内模式映像。这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
(2)二级映像
①外模式/模式映像
模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。对应于同一个模式可以有任意多个外模式。对于每一个外模式,数据库系统都有一个外模式/模式映像,它定义了该外模式与模式之间的对应关系。
②模式/内模式映像
数据库中只有一个模式,也只有一个内模式,所以模式/内模式映像是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系。
(3)数据独立性
当数据库的存储结构改变时,由数据库管理员对模式/内模式映像作相应改变,可以使模式保持不变,从而应用程序也不必改变。保证了数据与程序的物理独立性,简称数据的物理独立性。
查看此文章