Oracle数据库概念整理

Oracle数据库概念整理
Oracle数据库概念整理

1.SGA称为共享全局区,主要包括:

数据高速缓冲区(Database Buffer Cache)-存储最近从数据文件中检索出来的数据。

共享池(Shared Pool)-缓存最近执行过的SQL语句、PL/SQL程序和数据字典信息,是对SQL语句、PL/SQL程序进行语法分析、编译、执行的区域。

重做日志缓冲区(Redo Log Cache)-缓存用户对数据库进行修改操作时生成的重做记录。大型池(Large Pool)-为Oracle共享服务器、服务器I/O进程、数据库备份与恢复操作等提供内存空间。

Java池(Java Pool)-提供对Java程序设计的支持。

流池(Streams Pool)-对流的支持。

2.Oracle实例的主要后台进程包括:

数据库写入进程(DBWR)-把数据高速缓冲区中已经被修改过的数据(脏缓存块)成批写入数据文件中永久保存,同时使数据高速缓冲区有更多空闲缓存块,提高缓存命中率。

日志写入进程(LGWR)-把重做日志缓冲区的重做记录写入重做日志文件中永久保存。

当下列事件发生时,LGWR进程会将重做日志缓冲区中的重做记录写入重做日志文件:

●用户通过COMMIT语句提交当前事物;

●重做日志缓冲区被写满三分之一;

●DBWR进程开始将脏缓存块写入数据文件;

●LGWR进程超时(约3秒),LGWR进程将启动。

检查点进程(CKPT)-执行检查点,完成下列操作:

●更新控制文件与数据文件的头部,使其同步;

●触发DBWR进程,将脏数据块写入数据文件。

系统监控进程(SMON)-数据库实例恢复;回收不再使用的临时空间;将各个表空间的空

闲碎片合并。

进程监控进程(PMON)-恢复失败的用户进程或服务器进程;清除非正常中断的用户进程留下的孤儿会话,回退未提交的事务,释放会话锁占用的锁。

归档进程(ARCH)-在日志切换后将已经写满的重做日志文件复制到归档目标,以防止写满的重做日志文件被覆盖。

恢复进程(RECO)

锁进程(LCKn)

调度进程(Dnnn)

3.删除数据库dropDataBase

4.在Oracle数据库中,所有数据字典表和视图都属于SYS模式,储存于SYSTEM表空间中。

5.DDL语句。如增加或减少表空间、增加或减少用户。(自动提交)

DML语句。某些DML语句,如引起表的存储空间扩展的擦如。修改语句,Oracle会将磁盘上存储空间的变化信息记录到数据字典中。(手动提交)

6.表空间类型:永久表空间(PERMANENT TABLESPACE)、临时表空间(TEMP TABLESPACE)和撤销表空间(UNDO TABLESPACE)。

7.修改表空间的大小:为表空间添加数据文件;改变数据文件的扩展性;重新设置数据文件的大小。

8.除了SYSTEM表空间、存放在线回退信息的撤销表空间和临时表空间不可以脱机外,其他表空间都可以设置为脱机状态。

9.只有满足下列条件的表空间才可以设置为只读状态:

●表空间必须处于联机状态;

●表空间中不能包含任何活动的回退段;

●系统表空间SYSTEM、辅助系统表空间SYSTEM、当前使用的撤销表空间(UNDO)和当前使用的临时表空间(TEMP)不能设置为只读状态;

●如果表空间正在进行联机数据备份,则不能将该表空间设置为制度状态。

10.数据文件:用于保存数据库中数据的文件,系统数据、数据字典数据、临时数据、引索数据、应用数据等都物理地存储在数据文件中。

控制文件:记录Oracle数据库结构信息的二进制文件。

重做日志文件:用户对数据库所做的变更操作产生的重做记录先写入重做日志缓冲区,最终由LGWR进程写入重做日志文件。

服务器参数文件:

概要文件:对主机使用的限制;口令管理。

11.约束是在表中定义的用于维护数据完整性的一些规则,用于规范表中列取值。

在Oracle数据库中,约束分为:

主键约束(PRIMARY)-作用在一列或者多列上,用于唯一标识一条记录。

唯一性约束(UNIQUE)-作用在一列或多列上,列或列的组合的取值唯一,但可以为空。检查约束(CHECK)-作用在一列或多列上,限制列或列组合的取值。

外键约束(FOREIGN KEY)-外键约束列的参照列为主表的主键约束列或唯一性约束列。非空约束(NOT NULL)

触发器也可以用户自定义完整性。

12.所谓分区就是将一个巨型表分成若干个独立的组成部分进行存储和管理,每个相对小的、可以独立管理的部分,称为原来表的分区。

13.对表进行分区有多种方法:

范围分区-根据分区列值的范围对表进行分区。(如时间)

列表分区-分区列的取值是个包含少数值的集合。(如性别)

散列分区-采用基于分区列表的HASH算法,将数据均匀分布到指定的分区中。

复合分区-结合两种基本分区方法,先采用一个分区方法对表或索引进行分区,然后再采用另一个分区方法将分区再成若干个子分区。

索引分区

14.Oracle事务的隔离级别

READ COMMITED(提交读):该隔离级别可以防止丢失修改和脏读问题,但不能防止可重复读问题。

SERIALIZABLE(串行化):该隔离级别的事务可以防止丢失修改、脏读和不可重复读的问题。

15.显式游标:结果集不变。

17.检索游标的过程是一个循环的过程。

18.显式游标属性:

●%ISOPEN:布尔型,用于检查游标是否已经打开。如果游标已经打开,则返回TRUE,否则返回FALSE。

●%FOUND:布尔型,判断最近一次使用FETCH语句时是否从缓冲区中检索到数据。如果检索到数据,则返回TRUE,否则返回FALSE。

●%NOTFOUND:布尔型,判断最近一次使用FETCH语句时是否从缓冲区中检索到数据。与%FOUND相反,如果没有检索到数据,则返回TRUE,否则返回FALSE。

●%ROWCOUNT:数值型,返回到目前为止从游标缓冲区检索的记录个数。

19.隐式游标主要用于处理INSERT,UPDATE,DELETE以及单行的SELECT…INTO语

句。

多行会引发异常:too_many_rows

20.隐式游标属性:

●SQL%ISOPEN:布尔型,判断隐式游标是否已经打开。对用户而言,该属性值始终为FALSE,因此操作时系统自动打开,操作完成后立即自动关闭。

●SQL%FOUND:布尔型,判断当前操作是否会对数据库产生影响。如果有数据的插入、删除、修改或查询到数据,则返回TRUE,否则返回FALSE。

●SQL%NOTFOUND:布尔型,判断当前操作是否会对数据库产生影响。如果没有数据的插入、删除、修改或查询到数据,则返回TRUE,否则返回FALSE。

●SQL%ROWCOUNT:数值型,返回当前操作所涉及的数据库中的行数。

21.游标变量

游标变量可以返回不同结构的结果集。

检索游标变量时只能使用简单循环或WHILE循环,不能采用FOR循环。

22.异常处理

23.存储过程

24.创建包规范

●元素声明的顺序可以使任意的,但必须先声明后使用。

●所有元素都是可选的。

●过程和函数的声明只包括原型,不包括具体实现。

25.DML触发器

触发器不能由应用程序显式地调用执行。

26.在SQL*Plus中关闭数据库

●SHUTDOWN [NORMAL]

●SHUTDOWN IMMEDIATE

●SHUTDOWN TRANSACTION

●SHUTDOWN ABORT

27.系统权限的授予与回收

回收用户的系统权限时应注意以下3点:

●多个管理员授予用户同一个系统权限后,其中一个管理员回收其授予该用户的系统权限时,该用户将不再拥有相应的系统权限。

●为了回收用户系统权限的传递性(授权时使用了WITH ADMIN OPTION子句),必须先回收其系统权限,然后在重新授予其相应的系统权限。

●如果一个用户获得的系统权限具有传递性(授权时使用了WITH ADMIN OPTION子句),并且给其他用户授权,那么该用户系统权限被回收后,其他用户的系统权限并不受影响。28.对象权限的授予与回收

进行对象权限回收是应注意以下3点:

●多个管理员授予用户同一个对象权限后,其中一个管理员回收其授予该用户的对象权限时,该用户将不再拥有相应的对象权限。

●为了回收用户对象权限的传递性(授权时使用了WITH ADMIN OPTION子句),必须先回收其对象权限,然后在重新授予其相应的对象权限。

●如果一个用户获得的对象权限具有传递性(授权时使用了WITH ADMIN OPTION子句),并且给其他用户授权,那么该用户对象权限被回收后,其他用户的对象权限也被回收。

29.在Oracle中有4种类型的审计:

语句审计(Statement Auditing)-对特定的SQL语句进行审计,不指定具体对象。

权限审计(Privilege Auditing)-对特定的系统权限使用情况进行审计。

对象审计(Object Auditing)-对特定的模式对象上执行的特定语句进行审计。网络审计(Network Auditing)-对网络协议错误与网络层内部错误进行审计。

数据库基本概念

数据库基本概念 引言 本章的目标是讲解数据库研究人员常常要使用到的一些理论和术语。我所在的工作组集中了一批以开发性能优异的数据库系统为谋生手段的精英,数据库理论乍看起来与我们的具体工作相距甚远。 是否很有必要学习有关数据库理论方面的知识可能是留给你思考的一个问题。我们说,理解一种技术的基本原理是非常重要的。这就好比把你的汽车交给一个不懂火花塞工作原理的机械师,或是坐在一架由不懂飞行理论的驾驶员的飞机上。如果你不懂数据库设计的相关理论,又怎能指望用户登陆门请你设计系统呢? 研究人员所用的某些术语和概念令我们感到困惑,部分原因是数学基础的问题。有一些术语,大多数程序员理解为一种含义,而实际上是完全不同的另一种含义。为了能设计合理的系统,了解关系数据库理论是十分重要的。 为了搞清楚研究人员的专业术语,我们需要学习一些关系数据库理论中较浅显的内容,并且同我们所熟知的SQL概念进行比较。许多书中都讲解了这些内容,所以并不打算过于深入地探讨理论。我们只提供一些基本且实用的数据库概念。 本章将主要从面向SQL的角度介绍关系理论。我们将常常涉及相关理论的具体实现,尽管这超出了本书的范围,但却是难以避免的。然而我们不会陷入实现的细节,仅仅给出一个概述。更进一步的内容,参看第一章提到的参考书目。 在本章中,我们将会看到下列内容: ?关系模型——考察相关的技术术语:我们将在后面的章节中构造它们 ?其他数据库概念的定义 关系模型 正像第1章中提到的,E.F.Codd早在1970年就提出了关系模型的概念。在这一节中,我们将从SQL Server 的角度出发,考察一些在关系模型中比较重要的内容。 正像我们所看到的那样,SQL Server 与关系模型有很多共性的东西,但

oracle的TM锁、TX锁知识完全普及 (2)

o r a c l e的T M锁、T X锁知识完全普及锁概念基础 数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。 加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进行操作前,先向系统发出请求,对其加锁。加锁后事务就对该数据对象有了一定的控制,在该事务释放锁之前,其他的事务不能对此数据对象进行更新操作。 在数据库中有两种基本的锁类型:排它锁(ExclusiveLocks,即X锁)和共享锁(ShareLocks,即S锁)。当数据对象被加上排它锁时,其他的事务不能对它读取和修改。加了共享锁的数据对象可以被其他事务读取,但不能修改。数据库利用这两种基本的锁类型来对数据库的事务进行并发控制。 Oracle数据库的锁类型 根据保护的对象不同,Oracle数据库锁可以分为以下几大类:DML锁(datalocks,数据锁),用于保护数据的完整性;DDL锁(dictionarylocks,字典锁),用于保护数据库对象的结构,如表、索引等的结构定义;内部锁和闩(internallocksandlatches),保护数据库的内部结构。 DML锁的目的在于保证并发情况下的数据完整性,。在Oracle数据库中,DML锁主要包括TM锁和TX锁,其中TM锁称为表级锁,TX锁称为事务锁或行级锁。 当Oracle执行DML语句时,系统自动在所要操作的表上申请TM类型的锁。当TM锁获得后,系统再自动申请TX类型的锁,并将实际锁定的数据行的锁标志位进行置位。这样在事务加锁前检查TX 锁相容性时就不用再逐行检查锁标志,而只需检查TM锁模式的相容性即可,大大提高了系统的效率。TM锁包括了SS、SX、S、X等多种模式,在数据库中用0-6来表示。不同的SQL操作产生不同类型的TM锁。 在数据行上只有X锁(排他锁)。在Oracle数据库中,当一个事务首次发起一个DML语句时就获得一个TX锁,该锁保持到事务被提交或回滚。当两个或多个会话在表的同一条记录上执行DML语句时,第一个会话在该条记录上加锁,其他的会话处于等待状态。当第一个会话提交后,TX锁被释放,其他会话才可以加锁。 当Oracle数据库发生TX锁等待时,如果不及时处理常常会引起Oracle数据库挂起,或导致死锁的发生,产生ORA-60的错误。这些现象都会对实际应用产生极大的危害,如长时间未响应,大量事务失败等。 悲观封锁和乐观封锁 一、悲观封锁 锁在用户修改之前就发挥作用: Select..forupdate(nowait)

数据库的4个基本概念

数据库的4个基本概念 1.数据(Data):描述事物的符号记录称为数据。 2.数据库(DataBase,DB):长期存储在计算机内、有组织的、可共享的大量数据的集合。 3.数据库管理系统(DataBase Management System,DBMS 4.数据库系统(DataBase System,DBS) 数据模型 数据模型(data model)也是一种模型,是对现实世界数据特征的抽象。用来抽象、表示和处理现实世界中的数据和信息。数据模型是数据库系统的核心和基础。 数据模型的分类 第一类:概念模型 按用户的观点来对数据和信息建模,完全不涉及信息在计算机中的表示,主要用于数据库设计现实世界到机器世界的一个中间层次 实体(Entity): 客观存在并可相互区分的事物。可以是具体的人事物,也可以使抽象的概念或联系 实体集(Entity Set): 同类型实体的集合。每个实体集必须命名。 属性(Attribute): 实体所具有的特征和性质。 属性值(Attribute Value): 为实体的属性取值。 域(Domain): 属性值的取值范围。 码(Key): 唯一标识实体集中一个实体的属性或属性集。学号是学生的码 实体型(Entity Type): 表示实体信息结构,由实体名及其属性名集合表示。如:实体名(属性1,属性2,…) 联系(Relationship): 在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体型内部的联系(各属性)和实体型之间的联系(各实体集)。有一对一,一对多,多对多等。 第二类:逻辑模型和物理模型 逻辑模型是数据在计算机中的组织方式 物理模型是数据在计算机中的存储方式 数据模型的组成要素 数据模型通常由数据结构、数据操作和数据的完整性约束条件三部分组成 关系模型(数据模型的一种,最重要的一种) 从用户观点看关系模型由一组关系组成。每个关系的数据结构是一张规范化的二维表。 ?关系(Relation):一个关系对应通常说的一张表。 ?元组(Tuple):表中的一行即为一个元组。 ?属性(Attribute):表中的一列即为一个属性,给每一个属性起一个名称即属性名。 ?码(Key):表中的某个属性组,它可以唯一确定一个元组。 ?域(Domain):一组具有相同数据类型的值的集合。属性的取值范围来自某个域。

Oracle的五种锁

Oracle的五种Table Lock Oracle中的锁定可以分为几类:DML lock(data lock),DDL lock(dictionary lock)和internal lock/latch。 DML lock又可以分为row lock和table lock。row lock在select.. for update/insert/update/delete时隐式自动产生,而table lock除了隐式产生,也可以调用lock table in name来显示锁定。 如果不希望别的session lock/insert/update/delete表中任意一行,只允许查询,可以用lock table table_name in exclusive mode。(X)这个锁定模式级别最高,并发度最小。 如果允许别的session查询或用select for update锁定记录,不允许insert/update/delete,可以用lock table table_name in share row exclusive mode。(SRX) 如果允许别的session查询或select for update以及lock table table_name in share mode,只是不允许insert/update/delete,可以用lock table table_name in share mode。(share mode和share row exclusive mode的区别在于一个是非抢占式的而另一个是抢占式的。进入share row exclusive mode后其他session不能阻止你insert/update/delete,而进入share mode后其他session也同样可以进入share mode,进而阻止你对表的修改。(S) 还有两种锁定模式,row share(RS)和row exclusive(RX)。他们允许的并发操作更多,一般直接用DML语句自动获得,而不用lock语句。 ORACLE里锁有以下几种模式: 0:none 1:null 空 2:Row-S 行共享(RS):共享表锁,sub share 3:Row-X 行独占(RX):用于行的修改,sub exclusive 4:Share 共享锁(S):阻止其他DML操作,share 5:S/Row-X 共享行独占(SRX):阻止其他事务操作,share/sub exclusive 6:exclusive 独占(X):独立访问使用,exclusive 数字越大锁级别越高, 影响的操作越多。 1级锁有:Select,有时会在v$locked_object出现。 2级锁有:Select for update,Lock For Update,Lock Row Share select for update当对话使用for update子串打开一个游标时,所有返回集中的数据行都将处于行级(Row-X)独占式锁定,其他对象只能查询这些数据行,不能进行update、delete 或select for update操作。 3级锁有:Insert, Update, Delete, Lock Row Exclusive 没有commit之前插入同样的一条记录会没有反应, 因为后一个3的锁会一直等待上一个3的锁, 我们必须释放掉上一个才能继续工作。 4级锁有:Create Index, Lock Share

关系数据库的基本概念应用

★事业单位考试专用★ 数据库 1.数据模型(Data Models):在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。通俗地讲数据模型就是现实世界的模拟。 2.数据模型应满足三方面要求:能比较真实地模拟现实世界;容易为人所理解;便于在计算机上实现。 3.数据模型:按计算机的观点对数据建模,主要用于DBMS的实现。一般有层次,网状,关系三种。 4.矩形:表示实体集;菱形:表示联系集;线:连接实体集与联系集或属性与实体集;椭圆:表示属性;下划线:主码属性。 5.常用数据模型:层次模型、网状模型、关系模型、面向对象模型。 6.层次模型的存储结构:邻接法:前序穿线树;链接法:用指针表示层次关系(子女-兄弟链接法,层次序列链接法)。(众) 7.网状模型存储结构:链接法:用指针表示层次关系(单链,双链,环链等)。(S_XH,C_KCH) 8.关系模型中,关系的每一个分量必须是一个不可分的数据项。 9.SQL语言的REVOKE语句实现安全性数据控制功能。 10.数据仓库通常采用三层体系结构、底层的数据仓库服务器一般是一个关系型数据库系统、数据仓库前端分析工具中包括报表工具。 11.Linux是一套免费使用和自由传播的类Unix操作系统、Linux提供强大的应用程序开发环境,支持多种编程语言、Linux提供对TCP/IP协议的完全支持。 12.Solaris是SUN公司的高性能Unix,Solaris运行在许多RISC工作站和服务器

上,Solaris支持多处理、多线程。 13.Unix系统的特色:交互的分时系统、以全局变量为中心的模块结构、可以分成内核和外壳。Unix系统中进程由三部分组成:进程控制块,正文段和数据段。Unix系统中,输入/输出设备被看成是特殊文件。 14.属于企业级的大型数据库管理系统的主要有Oracle、DB2、Informix、Sybase 、SQL Server。 15.DBA是数据库系统的一个重要组成,有很多职责:定义数据库的存储结构和存取策略、定义数据库的结构、定期对数据库进行重组和重构。 16.对于数据量大的网站,应选用的数据库是DB2。 17.关系代数表达式的优化策略中,首先要做的是尽早执行选择运算。

介绍一下Oracle悲观锁和乐观锁

介绍一下Oracle悲观锁和乐观锁 为了得到最大的性能,一般数据库都有并发机制,不过带来的问题就是数据访问的冲突。为了解决这个问题,大多数数据库用的方法就是数据的锁定。数据的锁定分为两种方法,第一种叫做悲观锁,第二种叫做乐观锁。什么叫悲观锁呢,悲观锁顾名思义,就是对数据的冲突采取一种悲观的态度,也就是说假设数据肯定会冲突,所以在数据开始读取的时候就把数据锁定住。而乐观锁就是认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突了,则让用户返回错误的信息,让用户决定如何去做。先从悲观锁开始说。在SqlServer等其余很多数据库中,数据的锁定通常采用页级锁的方式,也就是说对一张表内的数据是一种串行化的更新插入机制,在任何时间同一张表只会插1条数据,别的想插入的数据要等到这一条数据插完以后才能依次插入。带来的后果就是性能的降低,在多用户并发访问的时候,当对一张表进行频繁操作时,会发现响应效率很低,数据库经常处于一种假死状态。而Oracle用的是行级锁,只是对想锁定的数据才进行锁定,其余的数据不相干,所以在对Oracle表中并发插数据的时候,基本上不会有任何影响。注:对于悲观锁是针对并发的可能性比较大,而一般在我们的应用中用乐观锁足以。Oracle的悲观锁需要利用一条现有的连接,分成两种方式,从SQL语句的区别来看,就

是一种是for update,一种是for update nowait的形式。比如我们看一个例子。首先建立测试用的数据库表。CREATE TABLE TEST(ID,NAME,LOCATION,VALUE,CONSTRAINT test_pk PRIMARY KEY(ID))AS SELECT deptno, dname, loc, 1 FROM scott.dept这里我们利用了Oracle的Sample的scott用户的表,把数据copy到我们的test表中。首先我们看一下for update锁定方式。首先我们执行如下的select for update语句。select * from test where id = 10 for update通过这条检索语句锁定以后,再开另外一个sql*plus窗口进行操作,再把上面这条sql语句执行一便,你会发现sqlplus好像死在那里了,好像检索不到数据的样子,但是也不返回任何结果,就属于卡在那里的感觉。这个时候是什么原因呢,就是一开始的第一个Session中的select for update语句把数据锁定住了。由于这里锁定的机制是wait的状态(只要不表示nowait 那就是wait),所以第二个Session(也就是卡住的那个sql*plus)中当前这个检索就处于等待状态。当第一个session最后commit或者rollback之后,第二个session中的检索结果就是自动跳出来,并且也把数据锁定住。不过如果你第二个session中你的检索语句如下所示。select * from test where id = 10也就是没有for update这种锁定数据的语句的话,就不会造成阻塞了。另外一种情况,就是当数据库数据被锁定的时候,也就是执行刚才for update那条sql以后,我们在另外一个session中执行for update nowait后又是什么样呢。比如如下的sql语句。由于这条语句中是制定采用nowait

数据库的基本概念

1.关系的基本操作:选择、投影、并、差、笛卡尔集。 2.声明变量的语句:declare @XXX (XXX为变量名称) 3.判断并发调度的正确性: (1)可串行性的调度:多个事务的并发执行是正确的,当且仅当其结果与某一次串行的执行这些实物的结果相同。 (2)可串行性:是并发事务调度的准则。按照这个准则,一个给定的并发调度,当且仅当他是可串行化的才认为是正确的调度。 4.事物的四个特性:原子性、一致性、隔离性和持续性。 5.定义视图: Create view <视图名称>[(列名)[,(列名)]] As <子查询> [with check option] 6.关系数据理论: 7.范式: (1)第二范式:若R∈1NF,且每一个非主属性完全依赖于码,则R∈2NF (2)第三范式:非主属性中不存在传递关系。 8.角色、权限 (1)创建角色:create role <角色名> (2)给角色授权:create <权限> on <对象类型> 对象名to 角色。 9.设计中概念模型描述什么:实体、属性、码、实体型、实体集、联系。 10.关系的完整性:实体完整性、参照完整性、用户定义的完整性。 11.读锁和写锁的定义: (1)写锁:又称“排它锁”,若事物T对数据对象A加上X锁,则只允许T读取和修改A,其他任何事物都不能对A加任何类型的锁,直到T释放A上的锁。 (2)读锁:又称“共享锁”,若事物T对数据对象A加上S锁,则事物T可以读A但不能修改A,其他事物只能对A加S锁,而不能加X锁,直到T释放A上的S锁。 简答: 1.关系模式:判断是第几范式,分析指出主键、外键P175 例题4 2.举例说明参照完整性(外键取值的几种情况)P49例题1,例题2,例题3 3.数据库的设计步骤、任务。 (1)需求分析(2)概念结构设计(3)逻辑结构设计(4)物理结构设计 (5)数据库实施(6)数据库运行和维护 4.描述并发调度中锁的概念、作用 (1)概念:事物T对某个数据对象操作之前,先向系统发出申请,对其加锁。加锁后的事物T就对该数据对象有了一定的控制,在事物T释放它的锁之前,其他的事物不能更新此数据对象。 (2)作用:解决了事物并发过程中可能出现的丢失修改、不可重复读、读“脏”数据。

数据库系统的基本概念

1.4 数据库设计基础 考点17 数据库系统的基本概念 1、数据、数据库、数据库管理系统和数据库系统 (1)数据 数据(Data)是描述事物的符号记录。 数据:在计算机系统中,各种字母、数字符号的组合、语音、图形、图像等统称为数据,数据经过加工后就成为信息。 在计算机科学中,数据是指所有能输入到计算机并被计算机程序处理的符号的介质的总称,是用于输入电子计算机进行处理,具有一定意义的数字、字母、符号和模拟量等的通称。 (2)数据库 数据库(Database, DB)是指长期存储在计算机内的、有组织的、可共享的数据集合。 数据库是一个单位或是一个应用领域的通用数据处理系统,他存储的是属于企业和事业部门、团体和个人的有关数据的集合。数据库中的数据是从全局观点出发建立的,他按一定的数据模型进行组织、描述和存储。其结构基于数据间的自然联系,从而可提供一切必要的存取路径,且数据不再针对某一应用,而是面向全组织,具有整体的结构化特征。 数据库中的数据是为众多用户所共享其信息而建立的,已经摆脱了具体程序的限制和制约。不同的用户可以按各自的用法使用数据

库中的数据;多个用户可以同时共享数据库中的数据资源,即不同的用户可以同时存取数据库中的同一个数据。数据共享性不仅满足了各用户对信息内容的要求,同时也满足了各用户之间信息通信的要求。 (3)数据库管理系统 数据库管理系统(Database Management System, DBMS)是数据库的机构,它是一个系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等。 数据库管理系统的主要类型有4种:文件管理系统,层次数据库系统,网状数据库系统和关系数据库系统,其中关系数据库系统的应用最为广泛。 数据库管理系统是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过它访问数据库中的数据,数据库管理员也通过它进行数据库的维护工作。它可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。DBMS 提供数据定义语言DDL(Data Definition Language)与数据操作语言DML(Data Manipulation Language),供用户定义数据库的模式结构与权限约束,实现对数据的追加、删除等操作。 (4)数据库系统 数据库系统(Database System, DBS)是指引进数据库技术后的整个计算机系统,能够实现有组织地、动态地存储大量相关数据,

Oracle的事务及锁

1、事务的概念: 事务是一个基本的逻辑单元,它作为一个整体要么全部执行要么全部不执行。 2、事务的特性: 原子性:事务是处理的一个原子单位,每一个操作不可拆分,它要么全部执行成功,要么全部都不执行。 一致性:指事务完成时,必须使所有的数据在整体上不变。 隔离性:各事务之间相互隔离,此事务的执行不受其他并发事务执行的干扰。 持续性:指事务对数据库的改变应是持续存在的,不会因故障而发生丢失。 3、从功能是上划分,sql语言分为DDL、DML和DCL: 3.1DDL(Data Definition Language,数据定义语言): 用于定义和管理数据库中的所有对象的语言,如:create创建表空间、alter修改表空间、drop 删除表空间 3.2:DML(Data manipulation Language,数据操作语言): 处理数据等操作,如:insert插入数据、delete删除数据、update修改数据、select查询数据3.3:DCL(Data Control Language,数据控制语言): 授予或回收访问数据库的权限,控制数据库操作事务发生的时间及效果,对数据库实行监视,如:grant授权,rollback回滚,commit提交 4、事务的开始及结束: 一个事务可以由一条DDL语句单独组成或多条DML语句共同组成。一个事务从执行第一条sql语句开始,在它被提交或被回滚时结束。事务的提交可以是显式提交:用commit命令直接完成;也可以是提交隐式提交:用sql语句间接完成提交,这些语句有:alter,audit,comment,create,disconnect,drop,exit,grant,noaudit,quit,revoke,rename,会话终止等;还可以是自动提交:set autocommit on或set autocommit immediate设置为自动提交,则在插入、删除、修改语句执行后自动提交,使用set autocommit off可以取消自动提交,show autocommit可以查看自动提交是否打开。事务的回滚使用rollback;语句,可以为事务设置保存点,如:savepoint point1,然后使用rollback to [savepoint] point1回到保存点point1,若在point1后又设置了一个保存点savepoint point2,则在rollback to point1后将不能再回滚到point2,因为point2在point1的后面,point1的保存点不存在point2。 5、事务的并发性与一致性: 并发性:多个用户可以在同一时刻访问相同的数据。 一致性:保证并发性的同时,每个用户能得到一致的数据视图。 并发执行事务时,可能发生如下情况: ①脏读:某个事务读取了其他未提交事务修改过的数据。 脏读示例:提交读隔离级别可防止脏读,但不能防止不可重复读 ②不可重复读:某个事务读取一次数据后,其他事务修改了这些数据并进行了提交,这样当该事务重新读取这些数据时,就会得到与前一次读取不一致的结果。简单的说,就是同样的条件,你读取过的数据,再次读取时发现值不一样了。 不可重复读示例:可重复读隔离级别可防止脏读和不可重复读

oracle的TM锁T锁知识完全普及

o r a c l e的T M锁T锁知 识完全普及 集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN]

oracle的TM锁、TX锁知识完全普及 锁概念基础 数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。 加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进行操作前,先向系统发出请求,对其加锁。加锁后事务就对该数据对象有了一定的控制,在该事务释放锁之前,其他的事务不能对此数据对象进行更新操作。 在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享锁(Share Locks,即S锁)。当数据对象被加上排它锁时,其他的事务不能对它读取和修改。加了共享锁的数据对象可以被其他事务读取,但不能修改。数据库利用这两种基本的锁类型来对数据库的事务进行并发控制。 Oracle数据库的锁类型 根据保护的对象不同,Oracle数据库锁可以分为以下几大类:DML锁(data locks,数据锁),用于保护数据的完整性;DDL锁(dictionary locks,字典锁),用于保护数据库对象的结构,如表、索引等的结构定义;内部锁和闩(internal locks and latches),保护数据库的内部结构。 DML锁的目的在于保证并发情况下的数据完整性,。在Oracle数据库中,DML锁主要包括TM锁和TX锁,其中TM锁称为表级锁,TX锁称为事务锁或行级锁。 当Oracle 执行DML语句时,系统自动在所要操作的表上申请TM类型的锁。当TM 锁获得后,系统再自动申请TX类型的锁,并将实际锁定的数据行的锁标志位进行置位。这样在事务加锁前检查TX锁相容性时就不用再逐行检查锁标志,而只需检查TM锁模式的相容性即可,大大提高了系统的效率。TM锁包括了SS、SX、S、X 等多种模式,在数据库中用0-6来表示。不同的SQL操作产生不同类型的TM锁。 在数据行上只有X锁(排他锁)。在 Oracle数据库中,当一个事务首次发起一个DML语句时就获得一个TX锁,该锁保持到事务被提交或回滚。当两个或多个会话在表的同一条记录上执行 DML语句时,第一个会话在该条记录上加锁,其他的会话处于等待状态。当第一个会话提交后,TX锁被释放,其他会话才可以加锁。 当Oracle数据库发生TX锁等待时,如果不及时处理常常会引起Oracle数据库挂起,或导致死锁的发生,产生ORA-60的错误。这些现象都会对实际应用产生极大的危害,如长时间未响应,大量事务失败等。

数据库系统的基本概念

数据库系统的基本概念

1.4 数据库设计基础 考点17 数据库系统的基本概念 1、数据、数据库、数据库管理系统和数据库系统 (1)数据 数据(Data)是描述事物的符号记录。 数据:在计算机系统中,各种字母、数字符号的组合、语音、图形、图像等统称为数据,数据经过加工后就成为信息。 在计算机科学中,数据是指所有能输入到计算机并被计算机程序处理的符号的介质的总称,是用于输入电子计算机进行处理,具有一定意义的数字、字母、符号和模拟量等的通称。 (2)数据库 数据库(Database, DB)是指长期存储在计算机内的、有组织的、可共享的数据集合。 数据库是一个单位或是一个应用领域的通用数据处理系统,他存储的是属于企业和事业部门、团体和个人的有关数据的集合。数据库中的数据是从全局观点出发建立的,他按一定的数据模型进行组织、描述和存储。其结构基于数据间的自然联系,从而可提供一切必要的存取路径,且数据不再针对某一应用,而是面向全组织,具有整体的结构化特征。 数据库中的数据是为众多用户所共享其信息而建立的,已经摆脱了具体程序的限制和制约。不同的用户可以按各自的用法使用数据

硬件方面:拥有大容量磁盘,硬件价格下降; 软件方面:软件价格上升,为编制和维护系统软件及应用程序的成本相对增加; 数据处理方式:统一管理数据的专门软件系统,即数据库管理系统。 数据库系统的特点: (1)、数据结构化; 数据结构化是数据库与文件系统的根本区别。在文件系统中,尽管记录内部已经有了某些结构,但记录之间没有联系。 (2)、数据共享性高,冗余度低,易扩充; 数据库系统从整体角度描述数据,数据不再面向某个应用,而是面向整个系统,因此数据可以被多个用户、多个应用共享使用。数据共享可以大大减少数据冗余,节约存储空间。 (3)、数据独立性高 数据独立性包括物理独立性、逻辑独立性。 数据的物理存储改变,应用程序不需改变。数据与程序独立,把数据的定义从程序中分离,数据的存取由DBMS负责,简化应用程序的复杂程度,大大减少应用程序的维护和修改。 (4)、数据由DBMS统一管理和控制。 数据库的共享是并发的共享,即多个用户可以同时存取数据库中的数据,甚至可以同时存取数据库中的同一个数据。

JAVA中锁概及运用

一、锁的概念及分类 ORACLE数据库是现今数据库领域应用最广泛的,同时它也是一个庞大的系统,全面了解它、玩转它不但需要一定的理论知识,更需要开发经验与工程经验。本人是ORACLE一爱好者,以下是本人对ORACLE锁的一些经验,希望能与大家共同分享。 ORACLE锁具体分为以下几类: 1.按用户与系统划分,可以分为自动锁与显示锁 自动锁:当进行一项数据库操作时,缺省情况下,系统自动为此数据库操作获得所有有必要的锁。 显示锁:某些情况下,需要用户显示的锁定数据库操作要用到的数据,才能使数据库操作执行得更好,显示锁是用户为数据库对象设定的。 2.按锁级别划分,可分为共享锁、共享更新锁、排它锁 共享锁:共享锁使一个事务对特定数据库资源进行共享访问——另一事务也可对此资源进行访问或获得相同共享锁。共享锁为事务提供高并发性,但如拙劣的事务设计+共享锁容易造成死锁或数据更新丢失。 ―锁定表 ―仅允许其他用户执行查询操作 ―不能插入、更新和删除 ―多个用户可以同时在同一表中放置此锁 ―lock tab le table_name ―in share mode [nowait]; ― rollback 和commit 命令释放锁 ― nowait 关键字告诉其他用户不用等 共享更新锁 ―锁定要被更新的行 ―允许其他用户同时查询、插入、更新未被锁定的行 ―在 SELECT 语句中使用“FOR UPDATE”子句,可以强制使用共享更新锁 ―允许多个用户同时锁定表的不同行 加锁的两种方法 1 lock table tab_name in share update mode; 2 select column1,column2 from goods where goods where gid=1001 for update of column1,column2

Oracle中锁的产生和解锁

Oracle中锁的产品和解锁 文档修改记录 版本号日期说明编写者审核者V1.0 20110822 初稿周伟明 1Oracle锁的介绍 在多进程或者多线程业务系统中,多个Oracle用户可以同时登录到一个Oracle数据库,对数据库中的数据进行操作难免会出现同时访问同一数据(表或者表中某一条记录)的情况,如果不对这种情况进行规范操作,数据的一致性和完整性就得不到保证,从而会出现意想不到的结果,所以必须有一种机制对并发访问进行控制和调度,避免造成数据更新不正确。 Oracle锁就是这样一种机制,它是控制并发操作最常用的方法。Oracle使用锁来防止进程相互之间发生的破坏性影响,当一个进程企图阻止另外一个进程对某条数据操作时,该进程就对这个数据进行锁,别的进程对这个数据操作之前,必须获得这个数据的解锁。 Oracle锁功能是Oracle DBMS自动完成的,不需要用户干预,但Oracle也提供了加锁的命令,供用户使用。 1.1 Oracle锁机制 Oracle自动使用不同锁类型来控制数据的并发操作,以防止用户之间的破坏性干扰。Oracle为一个事务自动锁一个资源,以防止其他事务对同一个资源的排他锁。当某种条件出现或者事务不再需要该资源时,锁自动解除。Oracle自动获取不同类型的锁取决于锁的资源及其所执行的操作。其中包括数据锁(DML)、字典锁(DDL)、内部锁、人工锁定、分布锁和并行缓冲管理锁。

1.1.1数据锁(DML)模式 数据锁保证表中数据在多个用户并发操作数据时保证数据的完整性,并防止相冲突的DML和DDL操作的破坏性干扰。 DML操作可在两个级别获取数据锁:行级锁(TX)和表级锁(TM)。 表级锁有以下几种方式 ●空 Null,即无锁。 ●行共享表锁(RS) 行共享表锁(有时也叫SS),表明事务保持已锁表行的表锁,并试图修改数据。 这种锁是在执行以下命令的时自动获取: Select …From 表名… for update for …; Lock Table 表名 in Row Share Mode; 当一个事务在一个表持有行共享锁的时候,允许其他事务并行查询、插入、修改或 者删除及再进行行锁,但禁止其他事务以排他方式进行操作该表。 Lock Table 表名 in Exclusive Mode; ●行排他表锁(RX) 行排他表锁(有时也叫SX)表示该事务对该资源有独占权利,通常是在修改记录 时发生这种锁。 该锁在执行以下命令的时候自动获取: Insert Into 表名…; Update 表名…; Delete From 表名…; Lock Table 表名 In Row Exclusive Mode; 当一个事务在一个表上持有行排他锁时,允许其他事务并行查询、插入、删除、修 改或者锁同一个表的其他行,但禁止其他事务使用下列命令进行并发锁: Lock Table 表名 In Share Mode; Lock Table 表名 In Share Row Exclusive Mode; Lock Table 表名 In Exclusive Mode; ●共享表锁(S)

答案.数据库基础概念答案

数据库的基本概念 1、用二维表结构表达实体集的模型是( D )。 A、概念模型 B、层次模型 C、网状模型 D、关系模型 2、DB、DBMS和DBS三者之间的关系是( B )。 A、DB包括DBMS和DBS B、DBS包括DB和DBMS C、DBMS包括DB和DBS D、不能相互包括 3、模式的逻辑子集通常称为( C )。 A、存储模式 B、内模式 C、外模式 D、模式 4、DBMS的含义是( B )。 A、数据库系统 B、数据库管理系统 C、数据库管理员 D、数据库 5、在关系模型中,为了实现“关系中不允许出现相同元组”的约束应使用( B )。 A、临时关键字 B、主关键字 C、外部关键字 D、索引关键字 6、数据库中,实体是指( C )。 A、事物的某一特征 B、事物的具体描述 C、客观存在的事物 D、某一具体事件 7、数据库与数据库系统之间的关系是( A )。 A、后者包含前者 B、前者包含后者

C、互不相干 D、同一东西的不同称呼 8. 数据库系统实现数据独立性是因为采用了( A )。 A.三级模式结构 B.层次模型 C.网状模型 D.关系模型 9.一个关系只有一个(D )。 A. 候选码 B.外码 C. 新码 D.主码 10.设一个仓库存放多种商品,同一种商品只能存放在一个仓库中,仓库与商品是(B )。 A.一对一的联系 B.一对多的联系 C.多对一的联系D.多对多的联系 11. 在数据库系统中,下面关于层次模型的说法正确的是( D )。A.有多个根结点 B.有两个根结点C.根结点以外的其它结点有多个双亲 D.根结点以外的其它结点有且仅有一个双亲 12. 规范化的关系模式中,所有属性都必须是( C )。 A.相互关联的 B.互不相关的 C.不可分解的 D.长度可变的 13. 视图是从一个或多个基本表(视图)导出的表,它相当于三级模式结构中的()。 A.外模式B.模式C.内模式D.存储模式

数据库原理基本概念英文解释

数据库原理基本概念 Basic concepts of database theory 一、数据---Data Data is everything. Data can exist in a variety of forms -- as digital numbers, text, image, sound, video and etc. 二、数据库---Database A database is a repository for a collection of computerized data files. A database is an organized collection of data for one or more purposes, usually in digital form. The data are typically organized to model relevant aspects of reality (for example, the availability of rooms in hotels), in a way that supports processes requiring this information (for example, finding a hotel with vacancies). The term "database" refers both to the way its users view it, and to the logical and physical materialization of its data, content, in files, computer memory, and computer data storage. 三、数据库系统---DBS(Database System) A database system is a term that is typically used to encapsulate the constructs of a data model, database Management system (DBMS) and database. 四、数据库管理系统---DBMS(Database Management System) A database management system (DBMS) is a software package with computer programs that control the creation, maintenance, and the use of a database. It allows organizations to conveniently develop databases for various applications by database administrators (DBAs) and other specialists. A collection of programs that enables you to store, modify, and extract information from a database.

oracle的TM锁TX锁知识完全普及

o r a c l e的T M锁T X锁 知识完全普及 Hessen was revised in January 2021

oracle的TM锁、TX锁知识完全普及 锁概念基础 数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。 加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进行操作前,先向系统发出请求,对其加锁。加锁后事务就对该数据对象有了一定的控制,在该事务释放锁之前,其他的事务不能对此数据对象进行更新操作。 在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享锁(Share Locks,即S锁)。当数据对象被加上排它锁时,其他的事务不能对它读取和修改。加了共享锁的数据对象可以被其他事务读取,但不能修改。数据库利用这两种基本的锁类型来对数据库的事务进行并发控制。 Oracle数据库的锁类型 根据保护的对象不同,Oracle数据库锁可以分为以下几大类:DML锁(data locks,数据锁),用于保护数据的完整性;DDL锁(dictionary locks,字典锁),用于保护数据库对象的结构,如表、索引等的结构定义;内部锁和闩(internal locks and latches),保护数据库的内部结构。 DML锁的目的在于保证并发情况下的数据完整性,。在Oracle数据库中,DML锁主要包括TM锁和TX锁,其中TM锁称为表级锁,TX锁称为事务锁或行级锁。 当Oracle 执行DML语句时,系统自动在所要操作的表上申请TM类型的锁。当TM 锁获得后,系统再自动申请TX类型的锁,并将实际锁定的数据行的锁标志位进行置位。这样在事务加锁前检查TX锁相容性时就不用再逐行检查锁标志,而只需检查TM锁模式的相容性即可,大大提高了系统的效率。TM锁包括了SS、SX、S、X 等多种模式,在数据库中用0-6来表示。不同的SQL操作产生不同类型的TM锁。 在数据行上只有X锁(排他锁)。在 Oracle数据库中,当一个事务首次发起一个DML语句时就获得一个TX锁,该锁保持到事务被提交或回滚。当两个或多个会话在表的同一条记录上执行 DML语句时,第一个会话在该条记录上加锁,其他的会话处于等待状态。当第一个会话提交后,TX锁被释放,其他会话才可以加锁。 当Oracle数据库发生TX锁等待时,如果不及时处理常常会引起Oracle数据库挂起,或导致死锁的发生,产生ORA-60的错误。这些现象都会对实际应用产生极大的危害,如长时间未响应,大量事务失败等。

(完整版)数据库系统概念题目及答案

1.为什么要研究关系规范化理论? 答关系数据库的设计直接影响着应用系统的开发、维护及其运行效率。一个不好的关系模式会导致插入异常、删除异常、数据冗余(修改异常)等问题。为此,人们提出了关系数据库规范化理论。它依据函数依赖,采用模式分解的方法,将一个低一级范式的关系模式转换为若干个高一级范式的关系模式的集合,从而消除各种异常,把不好的关系数据库模式转化为好的关系数据库模式。 2.理解并写出下列术语的含义。 函数依赖,平凡函数依赖,非平凡函数依赖, 1NF范式,BCNF范式,3NF范式,规范化,无损连接性,依赖保持性。 答: .函数依赖:设关系模式R(A 1,A 2 ,…,A n ),X,Y是R的两个属性集合, X?R(A 1,A 2 ,…,A n )及Y?R(A 1 ,A 2 ,…,A n ),R[X,Y]是关系只在属性XUY上的 投影,当任何时刻R[X,Y]中任意两个元组中的X属性值相同时,则它们的Y属性值也相同.那么称X函数决定Y,或Y函数依赖于X,记作X→Y。 .平凡函数依赖与非平凡函数依赖:当属性集合Y是属性集合X的子集时,则存在函数依赖X→Y。这说明一组属性函数决定它的所有子集。这种类型的函数依赖称为平凡函数依赖。如果X→Y且Y?X,则称X→Y是非平凡的函数依赖。 .1NF范式:定义;如果关系模式的所有属性的值域中每一个值都是不可再分解的值,则称只属于第一范式(1NF)。 lNF是关系模式的最低要求。这一限制是在关系的基本性质中提出的,每个关系模式都必须遵守。 .BCNF范式:定义:若关系模式R∈lNF且每个非主属性都完全函数依赖于R 的每个键,关系模式及属于第二范式(只E2NF)。 .3NF范式:定义: .规范化:把一个低一级范式的关系模式转换为若干个高一级范式的关系模式的集合的过程叫做规范化。 .范式:规范化理论认为,一个关系数据库中所有的关系,都应满足一定的要求,它把关系应满足的规范要求分成几级,并为每一级定义了相应的约束条件集,称为范式。 .无损连接性:设有关系模R(U)中存在函数依赖集F,R被分解为R1(U 1 ), …,R k (U k ),如果这些关系模式的自然连接与原关系模式R完全相等,则称该分 解具有无损连接性。 .依赖保持性:设有关系模式R(U)中存在函数依赖集F,R被分解加R 1(U 1 ), …,R k (U k ),且R i (U i )(1≤i≤k)所包含的函数依赖集为F i ,如果∪ 1 k F i 与F等 价,则称该分解具有依赖保持性。 3.什么叫关系模式分解?为什么要有关系模式分解?关系模式分解要遵守什么规则? 答:关系模式分解指采用投影的方式将一个关系模式R(U)分解为R 1(U 1 ),…, R k (U k ),其中不存在U i ?U j (1≤i,j≤k),并且U 1 ∪U 2 ∪…∪U k =U。关系模式分 解是规范化的主要手段,通过关系模式分解可以把一个低一级范式的关系模式分解为若干个高一级范式的关系模式的集合。关系模式分解应当具有无损连接性和依赖保持性。

相关文档
最新文档