数据库管理专业课件.ppt
*************************************Oracle表空间管理表空间的概念表空间是Oracle数据库的逻辑存储单元,它将数据库的逻辑结构与物理存储结构分离。每个Oracle数据库至少有一个表空间(SYSTEM表空间)。表空间由一个或多个数据文件组成,用于存储数据库对象如表、索引、分区等。表空间是数据库管理员分配存储空间的主要单位。创建和管理表空间创建表空间的基本语法是:CREATETABLESPACE表空间名DATAFILE文件路径SIZE大小。表空间可以设置为自动扩展(AUTOEXTENDON)或固定大小。管理操作包括:添加或删除数据文件(ALTERTABLESPACE...ADDDATAFILE/DROPDATAFILE);调整大小(RESIZE);设置状态(ONLINE/OFFLINE);删除表空间(DROPTABLESPACE)。表空间的分配策略Oracle提供了多种表空间管理方式:手动管理(使用自由列表)和自动管理(使用位图)。自动管理的表空间通过本地管理表空间(LMT)特性实现,它使用位图跟踪空闲和已用空间,提高空间管理效率。表空间可以使用不同的区分配类型:UNIFORM(所有区大小相同)或AUTOALLOCATE(Oracle自动确定区大小)。Oracle用户和权限管理创建用户在Oracle中创建用户需要使用CREATEUSER语句:CREATEUSER用户名IDENTIFIEDBY密码。创建用户时可以指定默认表空间、临时表空间和配额限制。例如:CREATEUSERscottIDENTIFIEDBYtigerDEFAULTTABLESPACEusersTEMPORARYTABLESPACEtempQUOTA10MONusers。新创建的用户默认没有任何权限,不能连接到数据库。授予和撤销权限使用GRANT命令授予权限:GRANT权限1,权限2,...TO用户名[WITHADMINOPTION]。系统权限(如CREATESESSION,CREATETABLE)控制用户可执行的操作,对象权限(如SELECT,INSERT,UPDATE,DELETE)控制对特定对象的访问。使用REVOKE命令撤销权限:REVOKE权限1,权限2,...FROM用户名。角色管理角色是权限的集合,简化了权限管理。创建角色:CREATEROLE角色名[NOTIDENTIFIED|IDENTIFIEDBY密码]。向角色授予权限:GRANT权限TO角色名。将角色授予用户:GRANT角色名TO用户名。Oracle预定义了一些常用角色,如CONNECT(基本连接权限)、RESOURCE(创建对象权限)和DBA(所有系统权限)。PL/SQL编程PL/SQL(ProceduralLanguage/SQL)是Oracle数据库的过程化编程语言,扩展了标准SQL的功能。它将SQL的数据操作能力与过程化编程语言的控制结构相结合,支持变量声明、条件判断、循环控制等功能,能够开发复杂的数据库应用程序。PL/SQL代码被发送到数据库服务器编译和执行,执行效率高。PL/SQL基本语法结构包括声明部分(DECLARE,可选)、执行部分(BEGIN...END)和异常处理部分(EXCEPTION,可选)。PL/SQL支持多种数据类型,包括标量类型(如NUMBER,VARCHAR2)、复合类型(如RECORD,TABLE)和参考类型(如REFCURSOR)。控制结构包括条件语句(IF-THEN-ELSE,CASE)和循环语句(LOOP,WHILELOOP,FORLOOP)。存储过程和函数是PL/SQL的重要组成部分。存储过程是存储在数据库中的一组SQL和PL/SQL语句,可以接受参数,但不返回值。函数与存储过程类似,但必须返回一个值。存储过程和函数的优点包括:减少网络流量、提高安全性、促进代码重用和模块化编程。数据库触发器触发器的概念数据库触发器是一段自动执行的PL/SQL代码1创建和管理触发器通过CREATETRIGGER语句定义触发条件与动作2触发器的应用场景实施复杂业务规则和审计跟踪3触发器是与表或视图相关联的、存储在数据库中的PL/SQL代码块,在特定事件(如INSERT、UPDATE、DELETE操作)发生时自动执行。触发器可以在事件发生前(BEFORE触发器)或发生后(AFTER触发器)执行,可以针对每个语句(语句级触发器)或每行数据(行级触发器