《第2章--数据库创建-Oracle实用教程(第3版)课件.ppt》由会员分享,可在线阅读,更多相关《第2章--数据库创建-Oracle实用教程(第3版)课件.ppt(49页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、OracleOracle实实用教程用教程用教程用教程2.1 Oracle数据库基本概念数据库基本概念2.2 界面方式创建数据库界面方式创建数据库2.3 命令方式创建数据库命令方式创建数据库OracleOracle实实用教程用教程用教程用教程v2.1.1 内部结构内部结构1表空间(表空间(TABLESPACE)(1)EXAMPLE表空间。EXAMPLE表空间是示例表空间,用于存放示例数据库的方案对象信息及其培训资料。(2)SYSTEM表空间。SYSTEM表空间是系统表空间,用于存放Oracle系统内部表和数据字典的数据,如表名、列名和用户名等。一般不赞成将用户创建的表、索引等存放在SYSTEM表
2、空间中。(3)SYSAUX表空间。SYSAUX表空间是辅助系统表空间,主要存放Oracle系统内部的常用样例用户的对象,如存放CMR用户的表和索引等,从而减少系统表空间的负荷。SYSAUX表空间一般不存储用户的数据,由Oracle系统内部自动维护。(4)TEMP表空间。TEMP表空间是临时表空间,存放临时表和临时数据,用于排序和汇总等。OracleOracle实实用教程用教程用教程用教程(5)UNDOTBS1表空间。UNDOTBSI表空间是重做表空间,存放数据库中有关重做的相关信息和数据。当用户对数据库表进行修改(包括INSERT、UPDATE和DELETE操作)时,Oracle系统自动使用重
3、做表空间来临时存放修改前的数据。当所作的修改完成并提交后,系统根据需要保留修改前数据的时间长短来释放重做表空间的部分空间。(6)USERS表空间。USERS表空间是用户表空间,存放永久性用户对象的数据和私有信息,因此也被称为数据表空间。每个数据库都应该有一个用户表空间,以便在创建用户时将其分配给用户。OracleOracle实实用教程用教程用教程用教程2表(表(TABLE)表是数据库中存放用户数据的对象。它包含一组固定的列。表中的列描述该表所跟踪的实体的属性,每个列都有一个名字和若干个属性。表结构的一个样例如图2.1所示。OracleOracle实实用教程用教程用教程用教程OracleOrac
4、le实实用教程用教程用教程用教程4分区(分区(PARTITION)在非常大的数据库中,可以通过把一个大表的数据分成多个小表来简化数据库的管理,这些小表称做分区。除了对表分区外,还可以对索引进行分区。分区不仅简化了数据库的管理还改善了其应用性能。在Oracle中,能够细分分区,创建子分区。例如,可以根据一组值分割一个表,然后再根据另一种分割方法分割分区。5索引(索引(INDEX)在关系数据库表中,一个行数据的物理位置无关紧要。为了能够找到数据,表中的每一行都用一个RowID来标识。RowID告诉数据库这一行的准确位置,包括所在的文件、该文件中的块和该块中行地址。索引是帮助用户在表中快速地找到记录
5、的数据库结构。它既可以提高数据库性能,又能够保证列值的唯一性。当CREATE TABLE命令中规定有UNIQUE或PRIMARY KEY约束条件子句时,Oracle就会自动创建一个索引。也可以通过CREATE INDEX命令来手工创建自己的索引。OracleOracle实实用教程用教程用教程用教程6用户(用户(USER)用户账号虽然不是数据库中的一个物理结构,但它与数据库中的对象有着重要的关系,这是因为用户拥有数据库的对象。例如,用户SYS拥有数据字典表,这些表中存储了数据库中其他对象的所有信息;用户SYSTEM拥有访问数据字典表的视图,这些视图供数据库其他用户使用。为数据库创建对象(例如表)
6、必须在用户账号下进行。可以对每一个用户账号进行自定义,以便将一个特定的表空间作为它的默认表空间。7方案(方案(SCHEMA)用户账号拥有的对象集称为用户的方案(SCHEMA),可以创建不能注册到数据库的用户账号。这样的用户账号提供一种方案,这种方案可以用来保存一组其他用户方案分开的数据库对象。8同义词同义词为了给不同的用户使用数据库对象时提供一个简单的、唯一标识数据库对象的名称,可以为数据库对象创建同义词。同义词有公用同义词和私有同义词两种。OracleOracle实实用教程用教程用教程用教程9权限及角色(权限及角色(ROLE)为了访问其他账号所有的对象,必须首先被授予访问这个对象的权限。权限
7、可以授予某个用户或PUBLIC,PUBLIC把权限授予数据库中的全体用户。可以创建角色即权限组来简化权限的管理。可以把一些权限授予一个角色,而这个角色又可以被授予多个用户。在应用程序中角色可以被动态地启用或禁用。10段(段(SEGMENT)、盘区()、盘区(EXTENT)和数据块()和数据块(DATA BLOCK)依照不同的数据处理性质,可能需要在数据表空间内划分出不同区域,以存放不同数据,将这些区域称之为“段”(SEGMENT)。例如,存放数据的区域称为“数据区段”、存放索引的区域称为“索引区段”。OracleOracle实实用教程用教程用教程用教程OracleOracle实实用教程用教程用
8、教程用教程数据块是最小的储存单元,Oracle数据库是操作系统块的倍数。图2.2说明了段、盘区和数据块之间的关系。OracleOracle实实用教程用教程用教程用教程2重做日志文件(重做日志文件(REDO LOG FILES)除了数据文件外,最重要的Oracle数据库实体档案就是重做日志文件(Redo Log Files)。Oracle保存所有数据库事务的日志。这些事务被记录在联机重做日志文件(Online Redo Log File)中。当数据库中的数据遭到破坏时,可以用这些日志来恢复数据库。一个数据库至少需要两个重做日志文件。Oracle以循环方式向重做日志文件写入。第一个日志被填满后,就
9、向第二个日志文件写入,然后依次类推。当所有日志文件都被写满时,就又回到第一个日志文件,用新事务的数据对其进行重写。3控制文件(控制文件(CONTROL FILES)每个Oracle数据库都有一个控制文件,用以记录与描述数据库的外部结构。它们包括:(1)Oracle数据库名称与建立时间;(2)数据文件与重置日志文件名称及其所在位置;(3)日志记录序列码(log sequence number)。OracleOracle实实用教程用教程用教程用教程OracleOracle实实用教程用教程用教程用教程1系统全局区系统全局区当激活Oracle数据库时,系统会先在内存内规划一个固定区域,用来存储每位使用
10、者所需存取的数据以及Oracle运作时必备的系统信息。这个区域就称为系统全局区(SGA)。SGA又包含数个重要区域,分别是数据块缓存区(Data Block Buffer Cache)、字典缓存区(Dictionary Cache)、重做日志缓冲区(Redo Log Buffer)和共享池(Shared SQL Pool)。图2.5给出了SGA各重要区域之间的关系。(1)数据块缓存区。(2)字典缓存区。(3)重做日志缓冲区。(4)SQL共享池。OracleOracle实实用教程用教程用教程用教程OracleOracle实实用教程用教程用教程用教程2.2.1 数据库的创建与删除数据库的创建与删除
11、【例2.1】使用DBCA创建学生成绩管理数据库XSCJ。由于本书在安装Oracle服务器时已经创建了一个数据库XSCJ,所以为了演示如何创建数据库XSCJ,这里要先将原来的XSCJ数据库删除,删除数据库也使用DBCA,步骤如下。(1)单击“开始”“所有程序”“Oracle-OraDB11g_home1”“配置和移植工具”“Database Configuration Assistant”,启动DBCA,将DBCA激活并初始化,如图2.7所示。初始化完成后自动进入“欢迎”窗口,如图2.8所示。OracleOracle实实用教程用教程用教程用教程(2)单击“下一步”按钮进入“操作”窗口,用户可以选
12、择要进行的操作,这里选择“删除数据库”选项,如图2.9所示。OracleOracle实实用教程用教程用教程用教程OracleOracle实实用教程用教程用教程用教程接下来,使用DBCA创建XSCJ数据库的主要步骤如下。(1)启动DBCA,进入“操作”窗口,选择“创建数据库”选项,如图2.12所示。OracleOracle实实用教程用教程用教程用教程(2)单击“下一步”按钮进入“数据库模板”窗口,选择相应选项后单击“显示详细资料”按钮可以查看该数据库模板的各种信息。这里选择“一般用途或事务处理”选项,如图2.13所示。OracleOracle实实用教程用教程用教程用教程(3)单击“下一步”按钮进
13、入“数据库标识”窗口,输入“全局数据库名”和“SID”,如图2.14所示。OracleOracle实实用教程用教程用教程用教程(4)单击“下一步”按钮进入“管理选项”窗口,可以选择配置Enterprise Manager企业管理器或者配置Database Control管理数据库,这里保持默认设置,如图2.15所示。OracleOracle实实用教程用教程用教程用教程(5)单击“下一步”按钮进入“数据库身份证明”窗口,这里将所有账户设置为同一管理口令,如图2.16所示。单击“下一步”按钮进入“存储选项”窗口,使用“文件系统”进行数据库的存储,如图2.17所示。图2.16 “数据库身份证明”窗口
14、 图2.17 “存储选项”窗口OracleOracle实实用教程用教程用教程用教程OracleOracle实实用教程用教程用教程用教程(7)单击“下一步”按钮进入“恢复配置”窗口,如图2.19所示。“指定快速恹复区”可以用于恢复数据库数据,以免系统发生故障时丢失数据;选中“启用归档”后数据库将归档其重做日志。这里不选择归档,按照默认设置单击“下一步”按钮。OracleOracle实实用教程用教程用教程用教程(8)在“数据库内容”窗口中选择“没有要运行的脚本”选项,如图2.20所示。单击“下一步”按钮进入“初始化参数”窗口,在该窗口中可以设置数据库的各项信息。这里保持默认设置,如图2.21所示。
15、图2.20 “数据库内容”窗口 图2.21 “初始化参数”窗口 OracleOracle实实用教程用教程用教程用教程(9)单击“下一步”按钮进入“安全设置”窗口,这里选择“保留增强的11g默认安全设置(建议)”选项。单击“下一步”按钮进入“自动维护任务”窗口,选择“启用自动维护任务”选项后,设置自动管理维护任务,如图2.22所示。OracleOracle实实用教程用教程用教程用教程OracleOracle实实用教程用教程用教程用教程(11)单击“下一步”按钮,进入“创建选项”窗口,选择“创建数据库”选项,如图2.24所示,单击“完成”按钮,之后会弹出确认创建的对话框,单击“确定”按钮开始创建数
16、据库。OracleOracle实实用教程用教程用教程用教程在数据库创建后,数据文件和日志文件名一般就不再改变了。对已存在的数据库可以进行的修改主要有以下几个方面。增加或删除数据文件。改变数据文件的大小和增长方式。改变日志文件的大小和增长方式。OracleOracle实实用教程用教程用教程用教程OracleOracle实实用教程用教程用教程用教程(1)改变数据文件的大小和增长方式。在图2.25所示的界面中,单击“服务器”选项页面,出现如图2.26所示的管理页面,在“存储”类别中选择“数据文件”,进入如图2.27所示的“数据文件”页面,直接选择或通过搜索功能查找要修改的数据文件,例如,数据库中的用
17、户对象(表、视图、过程等)都存放在USERS表空间中。OracleOracle实实用教程用教程用教程用教程【例2.2】将XSCJ数据库的users01.dbf的最大文件大小改为无限制。每个表空间由一个或多个文件组成,这些文件叫数据文件(datafile)。创建新的表空间需要创建新的数据文件。修改users01数据文件的步骤如下。在图2.27所示的页面中,选中“USERS01.DBF”文件的单选按钮,单击“编辑”按钮,进入数据文件USERS01.DBF的编辑界面。OracleOracle实实用教程用教程用教程用教程在“存储”类别中“最大文件大小”选项选择“无限制”单选按钮,如图2.28所示,然后
18、单击“应用”按钮,保存设置。OracleOracle实实用教程用教程用教程用教程(2)增加数据文件。当原有数据库的存储空间不够时,除了可以采用扩大原有数据文件的存储量的方法之外,还可以增加新的数据文件。或者从系统管理的需求出发,采用多个数据文件来存储数据,以避免数据文件过大。【例2.3】在XSCJ数据库增加数据文件users02,其属性均取系统默认值。在“数据库文件”项中增加数据文件。在图2.27所示的界面中单击“创建”按钮,进入“创建数据文件”界面。首先在“文件名”文本框输入数据文件名称users02.dbf,然后为表新增的数据文件选择表空间。单击“手电筒”形状的图标,出现表空间选择界面,选
19、择“USERS”单选按钮,如图2.29所示,单击“选择”按钮,返回到“创建数据文件”页面,为新增数据文件选择了USERS表空间。OracleOracle实实用教程用教程用教程用教程图2.27OracleOracle实实用教程用教程用教程用教程 在相应的表空间中增加数据文件。在如图2.26所示的“服务器”选项页面中,单击“表空间”,进入“表空间”页面,如图2.31所示。OracleOracle实实用教程用教程用教程用教程勾选数据文件的自动扩展属性并设置增量大小为1 MB,设置最大文件大小为“无限制”,如图2.30所示,单击“确定”按钮,系统执行创建工作。创建完成后,系统返回到如图2.27所示界面
20、,在界面上方出现“确认:已成功创建对象”的提示信息并在“结果”栏最后会出现新增的数据文件。OracleOracle实实用教程用教程用教程用教程v2.3.1 创建数据库创建数据库(1)评估数据表与索引的存放位置,尽量预估其所需空间。(2)规划操作系统下数据库实体文件的存放方式,因为良好的文件配置将大幅改善数据存取效率。(3)确定全局数据库名称。(4)选定适当的数据库字符集。(5)选定数据块大小。设定DB_BLOCK_SIZE参数,除了SYSTEM表空间,其他数据表空间也可以遵循标准数据块的设定。(6)熟悉Oracle数据库的激活/关闭方式和与其搭配的各种选项。(7)确认物理内存是否足以激活Ora
21、cle 11g。(8)确认Oracle服务器的磁盘空间是否足以创建新数据库。OracleOracle实实用教程用教程用教程用教程1设定实例标识符设定实例标识符一般情况下,每个Oracle数据库都必须对应一个数据库实例。所以在建立数据库之前,必须先指定数据库实例的系统标识符,此系统标识符就是俗称的SID。SID可用以识别不同的Oracle数据库,因此SID名称必须是唯一的,可经由操作系统的环境变量ORACLE_SID设定。在如图2.32所示的“命令提示符”界面中,使用如下命令设定SID:SET ORACLE_SID=mydbOracleOracle实实用教程用教程用教程用教程2设定数据库管理员的
22、验证方法设定数据库管理员的验证方法为了创建数据库,必须经过数据库的验证手续,且被赋予适当系统权限后才可以建立Oracle数据库。可以使用密码文件或操作系统的验证方法。下面给出的是密码文件验证方法。orapwd file=D:oracleoradataDATABASEPWDmydb.oraPassword=123456 entries=5OracleOracle实实用教程用教程用教程用教程3创建初始化参数创建初始化参数以下是创建新数据库之前必须新增或编辑的初始化参数。全局数据库名称。控制文件名称与路径。数据块大小。影响SGA容量的初始化参数。设定处理程序最大数目。设定空间撤销(Undo)管理方法
23、。(1)设定全局数据库名称。(2)设置控制文件。(3)设定数据块大小。(4)配置影响SAG容量的初始化参数。(5)设定处理进程最大数量。(6)设定空间撤销管理方法。【例2.4】创建数据库mydb的初始化参数文件initmydb.ora。初始化参数文件内容如下所示。OracleOracle实实用教程用教程用教程用教程4启动启动SQL*Plus并以并以SYSDBA连接到连接到Oracle实例实例sqlplus/nologconnect system/123456 as sysdba5启动实例启动实例在没有装载数据库情况下启动实例,通常只有在数据库创建期间或在数据库上实施维护操作时才会这么做。使用带
24、有NOMOUNT选项的STARTUP命令即可实现。STARTUP NOMOUNT pfile=D:apptaomydbp此时,还没有数据库。在准备创建新数据库的过程中,仅仅创建了系统全局区(SGA),并且后台进程才刚开始。6创建初始化参数创建初始化参数在Oracle中创建数据库时,需使用CREATE DATABASE语句,创建前要确保用户具有创建数据库的权限。语法格式如下。OracleOracle实实用教程用教程用教程用教程说明:在对语法格式进行解释之前,先介绍本书的PL/SQL语法格式中使用的约定。表2.1列出了这些约定,并进行了说明。这些约定在本书中介绍PL/SQL语法格式时都适用。约 定
25、用 途UPPERCASE(大写)PL/SQL关键字|分隔括号或大括号中的语法项。只能选择其中一项 可选语法项。不要输入方括号 必选语法项。不要输入大括号,.n指示前面的项可以重复n次。每一项由逗号分隔.n指示前面的项可以重复n次。每一项由空格分隔;可选的Transact-SQL语句终止符。不要输入方括号:=语法块的名称。此约定用于对可在语句中的多个位置使用的过长语法段或语法单元进行分组和标记。可使用的语法块的每个位置由括在尖括号内的标签指示:表2.1 本书PL/SQL语法的约定和说明OracleOracle实实用教程用教程用教程用教程【例2.5】使用CREATE DATABASE语句创建数据库
26、mydb。CREATE DATABASE mydbMAXINSTANCES 1MAXDATAFILES 100DATAFILE D:apptaooradatamydbsystem01.dbfSIZE 500M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITEDUNDO TABLESPACE UNDOTBS DATAFILE D:apptaooradatamydbundotbs01.dbfSIZE 150M REUSE AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITEDCHARACTER SET ZHS16GBKNATIONAL CH
27、ARACTER SET AL16UTF16LOGFILE D:apptaooradatamydbredo01.log SIZE 100M,D:apptaooradatamydbredo02.log SIZE 100M,D:apptaooradatamydbredo03.log SIZE 100MMAXLOGHISTORY 1MAXLOGFILES 5MAXLOGMEMBERS 5OracleOracle实实用教程用教程用教程用教程上面创建的数据库具有以下主要特点。数据库名称为mydb,全局数据库名称也为mydb。设置MAXINSTANCES参数只能有一个实例可以装载和打开数据库。DATAFIL
28、E子句设定该数据库SYSTEM表空间所对应的操作系统文件为D:oracleoradatamydbsystem01.dbf。假如该文件已事先存在,将被覆盖。UNDO_TABLESPACE子句创建并命名撤销表空间UNDOTBS,用于存储撤销记录。ZHS16GBK为数据库存放数据的字符集,它支持中文。新数据库拥有三个重做日志文件,分别在LOGFILE子句中设定。MAXLOGHISTORY、MAXLOGFILES和MAXLOGMEMBERS选项为重做日志文件的相关设定。新数据库的时区与操作系统的时区相同。OracleOracle实实用教程用教程用教程用教程数据库创建之后,可以使用ALTER DATAB
29、ASE语句来修改数据库的某些设置。语法格式如下。ALTER DATABASE database_name|ARCHIVELOG|NOARCHIVELOG|NO FORCE LOGGING|RENAME FILE,n TO re_,n|CREATE DATAFILE data_ AS SIZE integer KM|G|T REUSE,n|NEW|DATAFILE ONLINEOFFLINE FOR DROPRESIZE integer KM|G|T|END BACKUPAUTOEXTEND OFFON NEXT integer K|M MAXSIZE UMLIMITEDinteger KM|A
30、DD LOGFILE SIZE integer KM|G|T REUSE,n|DROP LOGFILE|;OracleOracle实实用教程用教程用教程用教程【例2.6】数据库的归档模式和数据文件。使上面创建的数据库mydb切换到归档模式。ALTER DATABASE mydbARCHIVELOG;创建新的数据文件以代替原来的数据文件。ALTER DATABASE mydbCREATE DATAFILE users AS D:apptaooradatamydbusers01.dbfSIZE 50M REUSE AUTOEXTEND ON NEXT 20M MAXSIZE 500M;Oracle
31、Oracle实实用教程用教程用教程用教程【例2.7】使用ALTER DATABASE命令来手工扩展users01数据文件。ALTER DATABASE mydbDATAFILE D:apptaooradatamydbusers01.dbf RESIZE 200M;在执行了上例所示的ALTER DATABASE命令之后,指定的文件users01被重新设定为200 MB。【例2.8】使用ALTER DATABASE命令修改XSCJ的字符集。ALTER DATABASE XSCJCHARACTER SET SIMPLIFIED CHINESE_CHINA.ZHS16GBK;OracleOracle实实用教程用教程用教程用教程删除数据库使用DROP DATABASE命令。语法格式:DROP DATABASE database_name;其中database_name是要删除的数据库名。【例2.9】删除数据库mydb。DROP DATABASE mydb;