分享oracle数据库入门教程_第1页
分享oracle数据库入门教程_第2页
分享oracle数据库入门教程_第3页
分享oracle数据库入门教程_第4页
分享oracle数据库入门教程_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

oracle数据库入门教A4打印/可编辑文件编号:文件编号:D2-28-53-87-DE第第#页共13页关系数据库是一些相关的表和其他数据库对象的集合。该定义表达了3部分含义:第一,在关系数据库中,信息被存放在二维表格结构的表table)中,一个关系数据库包含了多个数据表,而每一个表又包含行(记录)和列(字段),可以将表想象为一个电子表格,其中与行对应的是记录,与列对应的是字段;第二,这些表之间是相互关联的,表之间的这种关联性是由主键和外键所体现的参照关系来实现的;第三,数据库不仅包合表,而且包含了其他数据库对象,如视图、存储过程、索引等。关键字(key)是关系模型中的一个重要概念。它是一个逻辑结构,而不是数据库的物理结构。关键字分为主关键字和外部关键字两种。主关键字(primarykey)是指表中的某一列,该列的值可唯一标识一行。主关键字实施实体完整性,即每一个主关键字的值必须唯一,而且不允许为NULL或重复。外部关键字(foreignkey)是指如果表中含有与另一个表的主关键字相对应的列组,那么该列组就被称为外部关键字。从该定义可以看出,外部关键字也是由一个或多个列组成。在关系数据库中,表之间的联系是通过相同的列或列组来表示的,如果两个表中具有相同的列或列组,那么该列或列组就被称为这两个表的公共关键字Commonkey)。如果公共关键字是其中一个表的主关键字,那么该公共关键字在另一个表中就被称为外部关键字。外部关键字的作用是实现参照完整性,以下为创建外部关键字的优点:提供了表之间的连接。根据主关键字的列值来检查,参照主关键字的列值来确定其合法性。保证列的每个值都有效且实现参照完整性。关系数据库系统的特点RMDBS(关系数据库系统)的特点如下:数据完整性:所有RDBMS都使用SQL或其变体来控制包含在任意数据库中的数据。RDBMS必须保证数据的完整性,换句话说,任何关系型数据库都需要保证(如果多个表中的数据都需要被更新)所有的数据都被更新。例如,假设一个邮局交费系统中有两张表,—张是您的交费账目,一张是您的未交费账目。您每月支付电话费时,邮局会自动在交费账目上加上您的数额,再从未交费账目上减去相应的数额。但是如果当加上数额后,邮局停电了,将会发生什么?有了数据完整性,当服务器加电后,会发现加法已经完成,而减法还没有进行,那么,已经完成的一切都将被取消,您的利益将不会受损。数据存储和数据安全:多数RDBMS都坚持把实际数据和业务逻辑区分开,以确保数据库中的数据可以保持持久状态。多数情况下,用户只想在数据库中存储数据。许多RDBMS通过使用压缩算法将冗余数据删去的方式来存储数据但这样并不意味着数据丢失了,只是占用了更少的存储空间。每个RDBMS都为所管理的数据库提供了某种安全措施,这通常通过某种登录过程来实现。数据库管理系统的功能目前流行的DBMS有很多种,不同的DBMS提供的功能各有侧重,但一般都提供以下6个方面的功能:1)数据库定义为了提高数据库的独立性,BMS将数据库从逻辑上分为3个层次,即面向数据库用户的外层用户数据库)、由DBMS管理的概念层(概念数据库)和内部层(存储数据库)。用户看到的只是外层,而数据实际上是按内部层的结构存储的,它是通过概念层二级抽象或称映像)而来的。DBMS的数据库定义功能不但提供了用户数据库、概念数据库和存储数据库三级数据库的定义,而且还提供了从用户数据库到概念数据库以及从概念数据库到存储数据库的映像功能。数据库定义一般都由DBMS以数据定义语言(DataDefinitionLanguageDDL)的形式提供给用户。数据库用户利用DDL来定义用户数据库结构,建立所需要的数据库,同时由DBMS自动翻译为存储数据库。存储数据库独立于一般的数据库用户,数据库用户也可以不必过问存储数据库的实际模型。2)数据操纵DBMS提供了数据操纵语言(DataManipulationLanguage,DML)以实现对数据库数据的操纵。数据操纵包括对数据库的数据进行查询(检索和统计)、更新(增加、删除与修改)等基本操作。3)数据库的运行与控制DBMS提供的运行与控制功能保证了所有访问数据库的操作都在控制程序的统一管理下,检查安全性、完整性和一致性,保证多用户对数据库的并发使用。这—功能对用户是隐蔽的。4)数据库的建立与维护DBMS提供了实用程序来完成数据库的初始数据输入与数据转换等,以及数据库数据的转储、恢复、重组织、系统性能监视与分析等。5)数据字典DBMS将所定义的数据库按一定的形式分类编目,对数据库中的有关信息进行描述,以帮助数据库用户使用和管理数据库。这一功能称为数据字典。6)数据通信DBMS提供了数据通信功能,以实现DBMS与用户程序及其之间的通信。著名的SQL语言(StructuredQueryLanguage结构化查询语言)是由国际标准化组织(ISO)公布的,它是集数据定义、数据操纵和数据控制为一体的标准数据库语言。目前许多成熟的BMS产品都集成了以上多项功能,同时还都提供了一套应用程序开发工具。如本书将要介绍的Oracle就是集多项功能于一体,同时嵌入SQL语言,并提供了一套应用程序开发工具的DBMS产品。常见的关系型数据库简介目前市面上流行的关系型数据库管理系统有很多,下面对它们进行简要介绍。1)OracleOracle是当今最大的数据库公司Oracle(甲骨文)公司的数据库产品。它是世界上第一个商用的关系型数据库管理系统,也是第一个推出与数据库结合的支持第4代语言开发工具的数据库产品。它采用标准的SQL结构化查询语言,支持多种数据类型,提供面向对象的数据支持,具有第代语言开发工具,支持UNIX、VMS、Windows/NT和OS/2等多种平台。Oracle公司的软件产品主要由3个部分组成,包括Oracle服务器产品、Oracle开发工具和Oracle应用软件。Oracle提供的最新的基于微机的数据库产品为Oracle11g。Oracle产品早在1986年就已进入中国市场,国内许多行业和部门的管理信息系统在开发时选用的都是Oracle。2)DB2DB2是IBM公司的一个基于SQL的关系型数据库产品,它起源于早期的实验系统SystemR。20世纪80年代初,DB2的发展重点是大型主机平台。从80年代到21世纪初,DB2已发展到中、小型机及微机平台。现在的DB2已能够适用于各种硬件和软件平台(如UNIX、VMS、Windows/NT和OS/2等)。DB2在金融系统中应用较多。DB2UniversalDatabasePersonalEdition是为OS/2和Windows系统提供的单用户数据库管理系统。DB2UniversalDatabaseWorkgroupEdition是为Os/2和Windows系统提供的多用户数据库管理系统。3)SybaseSybase是由1984年成立的美国数据库厂商Sybase公司推出的系统数据库[SystemDatabase,Sybase),Sybase公司是较早采用客户端/服务器技术的数据库厂商。Sybase可以运行在UNIX、VMS、Windows/NT和Netware等操作系统平台上,它支持标准的关系数据库语言SQL,使用客户端/服务器模式,采用了开放的体系结构,能够实现网络环境下各节点数据库的互访操作。Sybase还拥有十分著名的数据库应用开发工具PowerBuilder,能够快速开发出基于客户端/服务器的图形化数据库应用程序。目前Sybase数据库软件产品是市场上比较受欢迎的数据库产品之一。Sybase数据库主要由服务器软件SybaseSQLserver、客户端软件SybaseSQLToolset和接口软件SybaseClient/ServerInterface这3类软件产品组成。其中服务器软件SybaseSQLserver中的SybaseSQLAnywhere是Sybase数据库管理系统的单机版本,是专为个人用户或工作组设计的一个完备的、小型化的关系型数据库管理系统。它具有客户端/服务器结构以及完全的事务处理和SQL功能,可以胜任小型应用系统的数据管理。Sybase于1991年进入我国,其产品目前它在许多行业和部门得到很好的应用。4)SQLServerMicrosoftSQLServer是一个在WindowsNT服务器上使用的、支持客户端服务器架构的数据库管理系统。SQLServer是Microsoft公司通过从Sybase公司购买技术而开发的产品,它与Sybase的数据库完全兼容。SQLServer与WindowsNT的有机结合,使得可以充分地利用WindowsNT的优势,性价格比较高oMicrosoftSQLServer不提供直接的客户端开发平台和工具,只提供了两个接口,即Microsoft开放式数据库连接[ODBC)和DB-Library。ODBC接口允许网络客户在多种平台上使用第三方产品,如Xccess、VisualBasic、VisualC++和FoxPro等,向服务器发出SQL请求,访问数据库中的数据。ODBC能够在不同的数据库环境中为客户端/服务器架构的客户提供访问异构数据库如Oracle和Sybase等)的接口。ODBC还提供了一个开放的并且是标准的能够访问微机、工作站、小型机和大型机数据库的方法,使用ODBC接口的编程者可以不用深入了解所访问的数据库系统而,只需知道数据库、表和有关字段即可。DB-Library通过C语言API来提供与SQLServer直接连接的接口。

1.2数据库对象为了遵循关系数据库的基本要求,所有RDBMS都至少需要支持一定数目的数据库对象。除了必需的数据库对象之外,Oracle还支持另外一些数据库对象。本章只简要介绍这些对象,在后面的章节中,我们将创建并操纵其中的许多对象oOracle的数据库对象集合包括:成为关系数据库所需的所有数据库对象(表、视图、约束等),提供额外功能的其他数据库对象(程序包、对象类型、同义词、序列等。表1-2列出了Oracle11g支持的所有数据库对象。表1-2Oracle11g支持的数据库对象对象说明表是由若干列与行组成的一个集合,这个集合表示单个实体(如客户、订单、雇员等)列是表中存储的实体的属性。列具有名称与数据类型。一个表通常会有多个列,表的定义中包含了这些列。行是表中存储的实体的实例,它包含了所有列。例如,一个“tudent”行存储了每位学生的所有相关信息,如学号、姓名与住址。单元格术语“单元格”指的是某行与某列的父叉处在前面的示例中,CustomerlD10002行与CompanyName列的父叉处就是一个单元格,该单元格存储的时数据是r^dleysystemS'°约束该数据库对象用于实施简单的业务规则与数据库完整性。例如‘PRIMARYKEY、FOREIGNKEY、NOTNULL和CHECK都是约束。视图视图是一个或多个表中数据的逻辑投影,它可以表示为存储在数据库中的一条SQL语句。通过在数据库中为复合的及重复的SQL语句指派名称,就可以使用视图来简化这些语句。索引通过存储特定键值的逻辑指针,索引能够帮助加快数据的检索。与扫描表中的所有记录相比,如果扫描能够根据键值以升序或降序来组织索引,就可以更快速地检索到某条记录。索引组织表索引组织表指的是其物理存储像索引一样组织的表。在常规的表中,记录并不是以特定顺序被插入,如果查询所有记录,那么就会以随机顺序检索数据。与此不同的是,索引组织表存储根据表中所定义主键组织的数据。在堆中存储数据的表与索引组织表之间的差异类似于在盒子中收藏所有收据(也就是不按照特定顺序进行收藏)与按照消费时间收藏所有收据之间的差异。如果从盒子中取出收据,那么就无法得出检索的特定逻辑;如果取出按时间顺序排列的收据,那么就可以预测6月2日的收据会先于8月1日的收据出现。分区为了使物理存储更有效,Oracle11g中的表可以被分为若干部分。一个分区或子分区)通常在单独的物理磁盘上存储表数据的一个子集,因此,通过允许同时从多

个物理磁盘读取数据(多分区并行读)或在分区数据不满足查询时不读取(分区排除)的方式,数据检索将会更快。群集群集是一种存储机制对象,为了加快数据检索,该对象允许将多个表中的若干记录物理存储在一起。例如,如果在一个表中存储Drder信息(客户、支付信息、发货细节等),在另一个表中存储项目(商品项、成本、销售价格、数量等,那么检索订单的相关信息至少需要进行两次数据读取:一次读取订购信息,一次读取项目信息。在使用订单ID组织的群集内创建上述两个表‘Oracle就可以将用于相同订单ID的订购与项目数据放置在相同的物理块内,从而将订单信息的检索减少为一次数据读取。在群集的底部,必须预分配添加记录或创建群集所需的部分或全部磁盘空间。序列序列允许创建和增加一个计数器,该计数器产生的数值可以被用作表的主键值。同义词在英语中,同义词是现有对象的别名oOracle中使用同义词来简化名称较长的对象或便于记忆指定的对象。(续表)对象说明存储过程存储过程是执行指定任务如在表中插入记录或更新数据勺右干SQL和PL/SQL语句的集合。触发器触发器是一种特殊的存储过程,这种存储过程不能被人工调用,只有当在表上执行某个动作时才会被自动调用。触发器可以与表、相应的动作INSERT、UPDATE或DELETE)及系统事件(如用户的登录和注销或数据库的STARTUP和SHUTDOWN)关联在一起。函数函数是必须返回值的存储程序。存储过程可以被传入参数,但是并不需要返回任何输出值;与之不同的是,函数必须返回值。程序包程序包是根据公共名称分组的若干存储过程与函数的集合这允许根据针对维护和性能目的的不同名称将所有程序兀素逻辑分组为数据库的特定部分用户自定义数据类型用户自定义数据是任何表或其他对象定义中都能够使用的数据库对象使用用户自定义数据类型可以确保表之间的一致性,也可以将方法[也就是对象可以执行的动作)作为定义的一部分来运用。BLOBBLOB是用于存储视频、图像及大量文本的二进制大对象。BLOB被定义为表中的一个列,它可以具有下列数据类型:BLOB、CLOB、NCLOB或BFILE。此外,Oracle还包含了其他一些超出本书讨论范围的对象包括维、字典、物化视图等)。这些对象是针对特定目的(如用于数据仓库)创建的,本书不对它们进行详细讨论。一个Oracle数据库中的所有对象都属于一个用户。在Oracle数据库中定义的用户并不必拥有任何对象,这样的用户被称为模式用户schemauser)。模式(schema)是属于特定用户的所有对象的集合,这些对象包括表、索引、视图等。Oracle中的数据字典读者很容易会想到这样的情况:一个数据库可以包含上千甚至上万个对象Oracle数据字典(datadictionary)的工作就是跟踪所有这些信息。任何数据库中的数据字典都包含元数据信息。元数据是“关于数据的数据”,或者说是存储用户所拥有的表以及数据库对象的一组表与其他数据库对象。Oracle中的数据字典是一组被称为基表的表,这些表包含与用户创建的数据库对象相关的最基本信息。基表属于名为SYS的Oracle用户,该用户在创建数据库的同时被创建。基表永远不会被直接访问,其名称十分含糊,以防止用户对其进行查询或修改。为了更易于访问数据字典以获取数据库中对象的相关信息,数据库创建过程中会创建一系列视图,这些视图通常被称为数据字典视图。Oracle拥有下列3组数据字典视图:USER_视图:这些视图允许用户获取其模式中对象的相关信息也就是用户创建并拥有的对象)。ALL_视图:这些视图允许用户获取其拥有的或可被访问的对象的相关信息°ALL_视图包含用于相同对象的USER视图所表示信息的一个子集,并且允许用户在其拥有的对象之外找出数据库中可以引用或操纵的其他对象。DBA_视图:数据库管理员DataBaseAdministrator,DBA)使用的DBA_视图提供了数据库中所有对象(也就是所有用户创建的所有对象的完整信息。因为没有使用被使用SELECT授予特殊权限,所以普通用户无法访问这些视图。为了帮助您成为一名合格的数据库管理员,本书后面的章节将陆续介绍许多BA_视图。不过,读者可能会存在这样的疑问:在Oracle领域,数据库管理员的职责究竟是什么呢?1.3数据库管理员的职责我的一位同事经常这样评论:“负责数据库的用户总认为他们能够控制数据库”。然而,即使这些用户在难以控制的情况下采用了非常正确的方法,事实也是大相径庭的。作为一名BA,他能够在其负责的任何数据库中执行所希望的任何操作,因此具有控制能力。数据库管理员确实拥有相当大的权利,但是需要牢记的是:权利越大,职责越大。归根结底,数据库能否响应用户需求与满足共同目标取决于DBA。DBA必须接受对数据库管理的褒贬。OracleDBA负责下列任务:评估并决定服务器硬件的规模。作为机构中负责数据库平稳运作的人员,DBA需要建议用于运行Oracle的服务器的配置。在决定投入、硬盘、CPU以及支持目标数据库操作所需的其他资源时,DBA的经验将起到重要作用。理解Oracle的体系结构以及业务和应用的数据需求将有助于DBA完成这个任务。安装Oracle软件与补充资料。购买Oracle软件后首先需要进行安装。在目标平台上安装Oracle软件是DBA的工作。因为Oracle是一个由复杂软件组成且功能非常强大的系统,软件与操作系统之间具有许多挂钩与交互,所以安装Oracle软件不仅仅只包括在CD中插入光盘并回答安装程序的提示。要成为一名成功的DBA,保证Oracle软件安装与运作的正确性至关重要。计划与设计数据库结构。一旦安装了Oracle软件,就需要确保以最优方式来对Oracle的物理数据结构和逻辑元素进行布局。如果不注意这个问题,那么数据库的性能就会受损,用户也会不满意。在正确决定了硬件规模的前提下,因为已经考虑了数据库的大小与结构,所以计划与设计数据库结构将是一个轻松的任务。如果不改变环境,那么DBA可能需要使用专业知识来确定最优配置。创建数据库。数据库的创建是管理数据库的第一步。虽然相对较为简单,但是这个过程仍然会出现若干问题。无论如何,DBA应当凭经验来解决这些问题。为了保护数据的安全,能够备份数据库或采用其他方法。在数据库用于生产并且用户连接数据库时,如果数据库难以连接,那么用户就无法工作。更糟的是,如果数据丢失,那么就意味着失去生产量、销售量和客户。确保用户始终能够使用数据库、数据损失最少以及恢复的快速与完整可能是DBA最重要的职责之一。创建与维护数据库用户。一旦某个新用户需要访问数据库或者另一个用户的要求与权限发生改变时,DBA必须能够通过必要的安全性修改来确保正确的访问。在某些情况下,应用程序开发人员可能无法充分使用Oracle内置的安全性,因此识别这些情况并采取适当的措施也是必要的。实现应用程序与数据库设计。在内部缺少专业人员时,机构可能购买第三方应用软件,也可能招聘数据库设计师来设计适合指定需求的数据库。不过,因为DBA在软件供应商或数据库设计师离开后要能够确保数据库继续正常运作,所以这些设计的实际实现是由)BA承担的。还原与恢复数据库。数据库有时会发生下列故障:硬件故障,用户错误地修改或删除数据,数据中心遭受自然灾害或其他灾害。能够恢复各种场景至关重要。为了确保能够正常地应用灾难容错恢复策略,不仅需要在真实情况下进行测试,而且还应当在模拟场景中进行测试DBA就是负责正确应用灾难容错恢复策略的人。监视与调整数据库性能。电影StarTrek:TheNextGeneration中有一段“企业”号对一艘陷入困境的飞船进行援助的情节。这艘飞船的所有者缺乏工程与通信技能,但是他们却要求icard船长和Giordi能够加快飞船的速度。用户经常埋怨数据库不够快速。如果能够尽可能地减少埋怨并及时(或提前)解决各种性能问题,那么DBA就不会承受太大的压力,同时也能够提升对自身工作的满意度。综上所述,DBA的责任涉及方方面面。DBA是一个令人兴奋的职位,其目标有时可以被总结为一句话:减少每天被求助的时间。如果收到用户或管理人员的大量求助,那么这多半是一个不好的信号,您也将度过不愉快的一天。安装在适当硬件之上、具有优秀的灾难恢复与调整策略的、调整良好的数据库

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论