一 事务处理介绍 事务是这样一种机制,它确保多个SQL语句被当作单个工作单 元来处理。
事务具有以下的作用: * 一致性:同时进行的查询和更新彼此不会发生冲突,其他 用户不会看到发生了变化但尚未提交的数据。 * 可恢复性:一旦系统故障,数据库会自动地完全恢复未完 成的事务。
二 事务与一致性 事务是完整性的单位,一个事务的执行是把数据库从一个一 致的状态转换成另一个一致的状态。因此,如果事务孤立执行时 是正确的,但如果多个事务并发交错地执行,就可能相互干扰, 造成数据库状态的不一致。
在多用户环境中,数据库必须避免同 时进行的查询和更新发生冲突。这一点是很重要的,如果正在被 处理的数据能够在该处理正在运行时被另一用户的修改所改变, 那么该处理结果是不明确的。
不加控制的并发存取会产生以下几种错误: 1 丢失修改(lost updates) 当多个事务并发修改一个数据时,不加控制会得出错误的结 果,一个修改会覆盖掉另一个修改。 2 读的不可重复性 当多个事务按某种时间顺序存取若干数据时,如果对并发存 取不加控制,也会产生错误。
3 脏读(DIRDY DATA),读的不一致性 4 光标带来的当前值的混乱 事务在执行过程中它在某个表上的当前查找位置是由光标表 示的。光标指向当前正处理的记录。
当处理完该条记录后,则指 向下一条记录。在多个事务并发执行时,某一事务的修改可能产 生负作用,使与这些光标有关的事务出错。
5 未释放修改造成连锁退出 一个事务在进行修改操作的过程中可能会发生故障,这时需 要将已做的修改回退(Rollback)。如果在已进行过或已发现错 误尚未复原之前允许其它事务读已做过修改(脏读),则会导致 连锁退出。
6 一事务在对一表更新时,另外的事务却修改或删除此表的 定义。 数据库会为每个事务自动地设置适当级别的锁定。
对于前面 讲述的问题:脏读、未释放修改造成的连锁退出、一事务在对一 表更新时另外的事务却修改或删除此表的定义,数据库都会自动 解决。而另外的三个问题则需要在编程过程中人为地定义事务或 加锁来解决。
三 事务和恢复 数据库本身肩负着管理事务的责任。事务是最小的逻辑工作 单元,在这个工作单元中,对数据库的所有更新工作,要么必须 全部成功,要么必须全部失败(回退)。
只要应用程序指定了某 段程序为一个事务并做了相应的处理(提交或回退),数据库系 统会自动维护事务本身的特性。 四 ORACLE数据库的事务定义 ORACLE事务从COMMIT、ROLLBACK、连接到数据库或开始第一 条可执行的SQL语句时开始,到一条COMMIT、ROLLBACK语句或退出 数据库时结束。
如果在一个事务中包含DDL语句,则在DDL语句的 前后都会隐含地执行COMMIT语句,从而开始或结束一个事务。 如果一个事务由于某些故障或者由于用户改变主意而必须在 提交前取消它,则数据库被恢复到这些语句和过程执行之前的状 态。
利用ROLLBACK语句可以在COMMIT命令前随时撤消或回退一个 事务。可以回退整个事务,也可以会退部分事务,但是不能回退 一个已经被提交的事务。
回退部分事务的ROLLBACK命令为: ROLLBACK to savepoint 存储点名 存储点是用户放入事务中的标记,用来表示一个可被回退的 位置。存储点通过在事务中放入一个SAVEPOINT命令而被插入。
该 命令的语法是: SAVEPOINT 存储点名 如果在ROLLBACK语句中没有给出存储点名,则整个事务被回 退。 五 SYBASE数据库的事务定义 SYBASE通过使用BEGIN TRANsaction和COMMIT TRANsaction命令指 示SQL将任意数目的语句作为一个单元来处理。
ROLLBACK TRANsaction 命令则允许用户恢复到事务的开始,或恢复到事务内部已经被用SAVE TRANsaction命令定义的存储点上。 BEGIN TRANsaction和COMMIT TRANsaction能够包含任意数目的SQL 语句和存储过程,方法很简单: BEGIN TRANsaction [事务名称] COMMIT TRANsaction 如果一个事务由于某些故障或者由于用户改变主意而必须在提交 前取消它,则数据库被恢复到这些语句和过程执行之前的状态。
利用ROLLBACK TRANsaction命令可以在COMMIT TRANsaction命令 前随时回退一个事务。可以回退整个事务,也可以回退部分事务,但 是不能回退一个已经被提交的事务。
ROLLBACK TRANsaction命令为: ROLLBACK TRANsaction [事务名|存储点名] 存储点名是用户放入事务中的标记,用来表示一个可以被回退的 位置。存储点名通过在事务中放入一个SAVE TRANsaction命令而被插 入。
该命令的句法是: SAVE TRANsaction 存储点名 如果在ROLLBACK TRANsaction中没有给出存储点名或事务名,则 事务被回退到批处理中的第一个BEGIN TRANsaction语句处。
第一章 数据库基础知识本章以概念为主,主要是了解数据库的基本概念,数据库技术的发展,数据模型,重点是关系型数据。
第一节:信息,数据与数据处理一、信息与数据:1、信息:是现实世界事物的存在方式或运动状态的反映。或认为,信息是一种已经被加工为特定形式的数据。
信息的主要特征是:信息的传递需要物质载体,信息的获取和传递要消费能量;信息可以感知;信息可以存储、压缩、加工、传递、共享、扩散、再生和增值2、数据:数据是信息的载体和具体表现形式,信息不随着数据形式的变化而变化。数据有文字、数字、图形、声音等表现形式。
3、数据与信息的关系:一般情况下将数据与信息作为一个概念而不加区分。二、数据处理与数据管理技术:1、数据处理:数据处理是对各种形式的数据进行收集、存储、加工和传输等活动的总称。
2、数据管理:数据收集、分类、组织、编码、存储、检索、传输和维护等环节是数据处理的基本操作,称为数据管理。数据管理是数据处理的核心问题。
3、数据库技术所研究的问题不是如何科学的进行数据管理。4、数据管理技术的三个阶段:人工管理,文件管理和数据库系统。
第二节:数据库技术的发展一、数据库的发展:数据库的发展经历了三个阶段:1、层次型和网状型: 代表产品是1969年IBM公司研制的层次模型数据库管理系统IMS。2、关系型数据型库: 目前大部分数据库采用的是关系型数据库。
1970年IBM公司的研究员E.F.Codd提出了关系模型。其代表产品为sysem R和Inges。
3、第三代数据库将为更加丰富的数据模型和更强大的数据管理功能为特征,以提供传统数据库系统难以支持的新应用。它必须支持面向对象,具有开放性,能够在多个平台上使用。
二、数据库技术的发展趋势:1、面向对象的方法和技术对数据库发展的影响:数据库研究人员借鉴和吸收了面向对旬的方法和技术,提出了面向对象数据模型。2、数据库技术与多学科技术的有机组合:3、面向专门应用领域的数据库技术三、数据库系统的组成:数据库系统(DBS)是一个采用数据库技术,具有管理数据库功能,由硬件、软件、数据库及各类人员组成的计算机系统。
1、数据库(DB):数据库是以一定的组织方式存放于计算机外存储器中相互关联的数据集合,它是数据库系统的核心和管理对象,其数据是集成的、共享的以及冗余最小的。2、数据库管理系统(DBMS):数据库管理系统是维护和管理数据库的软件,是数据库与用户之间的界面。
作为数据库的核心软件,提供建立、操作、维护数据库的命令和方法。3、应用程序:对数据库中数据进行各种处理的程序,由用户编写。
4、计算机软件:5、计算机硬件:包括CPU、内存、磁盘等。要求有足够大的内存来存放操作系统、数据库管理系统的核心模块以及数据库缓冲;足够大的磁盘能够直接存取和备份数据;比较主的通道能力;支持联网,实现数据共享。
6、各类人员。四、数据库系统的特点:1、数据共享:2、面向全组织的数据结构化:数据不再从属于一个特定应用,而是按照某种模型组织成为一个结构化的整。
它描述数据要身的特性,也描述数据与数据之间的种种联系。3、数据独立性:4、可控数据冗余度:5、统一数据控制功能:数据安全性控制:指采取一定的安全保密措施确保数据库中的数据不被非法用户存取而造成数据的泄密和破坏;数据完整性控制:是指数据的正确性、有效性与相容性。
并发控制:多个用户对数据进行存取时,采取必要的措施进行数据保护;数据恢复:系统能进行应急处理,把数据恢复到正确状态。第三节:数据模型一、数据组织:关系型数据库中的数据层次如下:1、数据项(field):又称字段,用于描述实体的一个属性,是数据库的基本单位。
一般用属性名作项名;2、记录(Record):又称为结点,由若干个数据项组成,用于描述一个对象;3、文件(File):由若干个记录组成;4、数据库(Data Base):由逻辑相关的文件组成。二、数据模型:数据的组织形式称为数据模型,它决定 数据(主要是结点)之间联系的表达方式。
主要包括层次型、网状型、关系型和面向对象型四种。层次型和网状型是早期的数据模型,又称为格式化数据系统数模型。
以上四种模型决定了四种类型的数据库:层次数据库系统,网状数据库系统,关系型数据库系统以及面向对象数据库系统。目前微机上使用的主要是关系型数据库。
1、层次型:是以记录为结点的有向树;图如教材P7图1--22、网状型:树的集合,它的表示能力以及精巧怀强于层次型,但独立性下降。3、关系型:在关系型中,数据被组织成若干张二维表,每张表称为一个关系。
一张表格中的一列称为一个“属性”,相当于记录中的一个数据项(或称为字段),属性的取值范围称为域。表格中的一行称为一个“元组”,相当于记录值。
可用一个或若干个属性集合的值标识这些元组,称为“关键字”。每一行对应的属性值叫做一个分量。
表格的框架相当于记录型,一个表格数据相当于一个同质文件。所有关系由关系的框架和若干元组构成,或者说关系是一张二维表。
关系型。
1)select b.name from book as a ,student as b where a.title like '数据库原理';2)select a.sid form student as a, lend as b,return as c where (b.sid = a.sid or c.sid = a.sid )and ldate = rdate;3)select distinct (t.title)书名,(select(max(a.price) from book as a)价格 from book as t。
1第一章习题参考答案1.选择题(1)数据库(DB)、数据库系统(DBS)、数据库管理系统(DBMS)三者之间的关系是(A)。
A.DBS包括DB和DBMSB.DBMS包括DB和DBSC.DB包括DBS和DBMSD.DBS就是DB,也就是DBMS(2)设有部门和职员两个实体,每个职员只能属于一个部门,一个部门可以有多名职员,则部门与职员实体之间的联系类型是(B)。A.m:nB.1:mC.m:kD.1:1(3)对于“关系”的描述,正确的是(D)。
A.同一个关系中允许有完全相同的元组B.同一个关系中元组必须按关键字升序存放C.在一个关系中必须将关键字作为该关系的第一个属性D.同一个关系中不能出现相同的属性名(4)E-R图用于描述数据库的(A)。A.概念模型B.数据模型C.存储模型D.逻辑模型(5)在关系模型中,一个关键字(C)。
A.可以由多个任意属性组成B.至多由一个属性组成C.可以由一个或者多个其值能够唯一表示该关系模式中任何元组的属性组成D.可以由一个或者多个任意属性组成(6)现有如下关系:患者(患者编号,患者姓名,性别,出生日期,单位)医疗(患者编号,患者姓名,医生编号,医生姓名,诊断日期,诊断结果)其中,医疗关系中的外关键字是(A)。A.患者编号B.患者姓名C.患者编号和患者姓名D.医生编号和患者编号(7)一个关系只有一个(D)。
A.候选关键字B.外部关键字C.组合关键字D.主关键字(8)下列标识符可以作为局部变量使用的是(C)。A.[@Myvar]B.MyvarC.@MyvarD.@Myvar(9)Transact-SQL支持的一种程序结构语句是(A)。
A.BEGIN…ENDB.IF…THEN…ELSEC.DOCASED.DOWHILE(10)字符串常量使用(A)作为定界符。A.单引号B.双引号C.方括号D.花括号2.填空题(1)数据库是在计算机系统中按照一定的方式组织、存储和应用的(数据集合)。
支持数据库各种操作的软件系统叫(数据库管理系统)。由计算机、操作系统、DBMS、数据库、应用程序及有关人员等组成的一个整体叫(数据库系统)。
/link?url=_dRWH0N-TOwjiDuRWTF_DqdRZBjChyQK8LPxW 93x0vGixEdWYK。
楼主说的E-R模型和关系模型是指什么?
我没读过书,都是实践里学的。
总之,有这么一下几种结构,
第一:书一个表,主键-书号;读者一个表;主键-读者编号,另外建一个表,用来保存借书记录,主键RecId uniqueidentifier类型。
关键就在第三个表上,字段有RecId,读者编号,书号,借书时间,还书时间。。。
也就是说这实际上是一个借书还书的表。
那么最清晰的结构就是这个了,如果非要改,也就是把第三个表合并到前两个表中的一个。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
蜀ICP备2020033479号-4 Copyright © 2016 学习鸟. 页面生成时间:4.136秒