《Oracle关系数据.ppt》由会员分享,可在线阅读,更多相关《Oracle关系数据.ppt(33页珍藏版)》请在三一办公上搜索。
1、第一章 Oracle关系数据库,本章先从介绍关系数据模型开始,介绍如何根据实际的应用创建数据库,并规范化数据库;然后介绍世界上最优秀的关系数据库之一Oracle数据库的应用模式,这也是数据库领域最常用的应用模式;最后介绍Oracle数据库系统的安装和数据库的创建,这是进行所有工作的第一步。,本章学习目标:,关系模型的组成和常用一些常术语复习关系数据库的设计理解什么是网格技术正确安装Oracle 10g或11g数据库系统了解Oracle数据库的应用结构能够使用DBCA创建数据库了解Oracle数据库的相关服务服务使用SQL*Plus连接到Oracle数据库(请同学们上第一次实验课的时候,自己准备
2、oracle10g或Oracle11g的安装软件,可以在 230服务器下载到U盘,然后带到实验室),1.1 关系数据模型,数据库技术始于20世纪60年代。当时计算机的主要应用领域正由科学计算逐步转向业务处理,这一转变促进了数据库技术的发展。到20世纪70年代,数据库技术达到了飞速的发展。E.F.Codd教授发表了“大型共享数据库数据的关系模型”论文,他提出了关系数据库理论和模型,为关系数据库模型奠定了理论基础,从而使数据库技术成为计算机科学的一个重要分支。,1.1.1 数据结构,在关系数据库系统中,关系是关系数据模型的核心。关系数据库系统中最主要的数据结构就是关系。在实际的表示中,关系可以用一
3、个由“行”和“列”组成的二维表来直观地表示。表中的每一列表示为关系的一个属性,每列的名字即为一个属性名,每一行表示一个记录,代表一个物理实体。关系数据库中,所有的数据都是通过”表”来进行存储的,可以说如果没有表,数据就无法进行存储和表示。,1.1.2 关系操作,对所有的关系数据库来说,有大量的操作方式可以使用,这些实用的操作方式能让用户看到所需要的数据。关系模型中常用的关系操作包括:选择(Select)、投影(Project)、连接(Join)、除(Divide)、并(Union)、交(Intersection)、差(Difference)等查询操作和增加(Insert)、删除(Delete)
4、、修改(Update)操作两大部分。其中,查询操作是其最重要的部分。,1.1.3 关系的完整性约束,关系模型的完整性规则是对关系的某种约束条件。关系模型允许定义三类完整性约束;实体完整性、参照完整性和用户定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系数据库系统自动支持。用户定义的完整性是应用领域需要遵循的约束条件,体现了具体领域中的语义约束。,1.2 关系与关系模式,在数据库中要区分型和值,型是指对某一类数据的结构和属性的说明,值是型的一个具体赋值。在关系数据库中,关系模式是型,关系是值,关系模式是对关系的描述。因为关系实质上是
5、一个二维表,表中的每一行在关系模式中被称为元组,一个元组由许多属性组成,也就是表中的列。关系是元组的集合,因此关系模式必须指出这个元组集合的结构,即它由哪些属性组成,以及这此属性的取值范围等。例如关系:student(学号,姓名,性别,专业)这就是型;而元组(841234,张三,男,管理)这就是值。,1.3 数据库的设计,在数据库的设计过程中,有许许多多需要考虑的因素,如数据库的背景、应用环境等方面都需要有深入的了解,只有对这些因素都进行详细分析,设计的数据库才能易于使用和维护,并且具有高效和一致的特征。,1.3.1 实体-关系模型,实体关系模型也称为E-R数据模型(Entity-Relati
6、onship data model)。设计E-R数据模型的出发点是为了有效和更好地模拟现实世界,而不需要考虑在机器中如何实现。下面介绍E-R数据模型的三个抽象概念。1实体(Entity):凡是可以相互区别,并可以被识别的事、物、概念均可认为是实体。具有共性的一类实体可以划分为实体集。2属性(Attribute):实体一般具有若干特征,称为属性。3联系(Relationship):实体之间会存在各种关系,如学生实体与课程实体之间有选课关系,这种关系被抽象为联系。E-R数据模型将这种联系区分为1对1,1对多和多对多三种。,1.3.2 E-R图的绘制,实体-关系图是表现实体-关系模型的图形工具,简称
7、E-R图。E-R图提供了用图形表示实体、属性和联系的方法。在E-R图中,约定实体用方框表法,属性用椭圆表示,联系用菱形表示,并其内部填上实体名、属性名、联系名。,E-R 图的表现形式:,联系名,1.3.3 将E-R模型转化为关系模式,在E-R模型建立后,就可以将实体、实体间的联系等模型转变为关系模式,即生成数据库中的表,并确定表的列。下述讨论由E-R模型生成表的方法。1实体转化为表 2实体间联系的处理 一对一:把其中任意一个表的主键添加到另外一个表作为外键。一对多:把一的表的主键添加到另外一个表作为外键。多对多:通常是创建一个连接表的特殊表,以表达两个表之间的关系,这个表包含两个表的主键列,同
8、时包含一些可能在关系中存在的特定的列。,1.4 关系数据库规范化理论,数据库理论与设计中有一个重要的问题,就是在一个数据库中如何构造合适的关系模式,它涉及一系列的理论与技术,从而形成了关系数据库设计理论。由于合适的关系模式要符合一定的规范化要求,所以又可称为关系数据库的规范化理论。,1.4.1 函数依赖,函数依赖表示了关系模式中属性组合之间的一对多联系。例如,XY就表示了X的一个值可以对应Y的多个值。如果属性组合X和Y之间有一对一的联系,那么,XY和YX就都成立。例子:Student(id,name,sex,birth,class,dept)name,sex 都是由id决定的,即这些属性都是依
9、赖于id。由于函数依赖性的存在,如果数据库设计不合理,就会出现各种异常。,DML各种异常表现形式:,假设设计的关系模式如下:S(学号,姓名,生日,性别,班级,系名,系主任,课程,成绩),学号 系名,系名系主任。插入异常:如果新增加一个系,这个系还没有招生,那系的信息就没有办法存储在数据库,因为学号非空。删除异常:当学生毕业时,要删除学生信息,这时候会把系的信息全部删除,而在数据库中找不到系的信息。更新异常:如果系主任换人,这时候需要将这个系的所有学生的信息都要修改,如果不慎,会出现数据的不一致,同时这种维护的代价也很大。数据冗余:系名和系主任的信息会大量保存。,1.4.2 范式理论,范式是数据
10、库设计中一个重要的过程,可以通过它来消除数据库中冗余的数据。因此,在确定设计的数据库之前,还需要对数据库中的表进行范式处理以确保数据库遵从适当的范式,从而使设计的数据库更加规范。范式为数据库提供了许多好处,具有很多优点:大大减少了数据冗余改进了数据库整体组织增强数据的一致性增加数据库设计的灵活性 一般数据库的设计只需要第一、第二和第三范式就足够了。,1.5 Oracle数据库的应用系统结构,随着计算机技术、特别是网络技术的迅速发展,数据库技术也取得了长足的发展。对数据库的使用方式提出了不同的要求。除客户服务器(C/S)系统结构外,还出现了浏览器(B/S)结构以及分布式数据库系统结构。下面简要介
11、绍Oracle数据库应用系统的不同结构,即分布式数据库系统结构、客户服务器系统结构和浏览器服务器系统结构。,1.5.1 Oracle分布式数据库系统结构,数据库系统可按数据分布方式分为集中式数据库和分布式数据库。集中式数据库是将数据集中存放在一台计算机上,而分布式数据库系统是将数据存放在由计算机网络联接的不同的计算机上。一个分布式数据库是由分布于计算机网络上的多个逻辑相关的数据库组成的集合,网络每个节点具有独立处理能力,可以执行局部应用,也可通过网络执行全局应用。,1.5.2 Oracle客户服务器系统结构,客户服务器结构(C/S)是软件系统较为流行一种工作模式。在C/S结构模式中,所有的数据
12、集中存储在服务器中,数据处理由服务器完成,一般采用硬件资源配置比较高的机器作为服务器,而使用配置比较低的PC机作为客户端。服务器与客户端之间通过专用网络联接,一般为局域网或企业内部网。,1.5.3 Oracle浏览器-服务器系统结构,随着网络技术的迅速发展,基于Web的产品和标准的出现,使以Web技术为先导的Internet得到了迅猛发展。信息在Internet上的交换与发布都需要数据库的参与。使用Oracle数据库作为后台,通过ODBC和JDBC连接数据库,应用JSP、ASP和PHP开发,形成了动态网页的设计主流。,1.6 网格技术,超级计算机作为复杂科学计算领域的主宰,以其强大的处理能力著
13、称。但以超级计算机为中心的计算模式存在明显的不足,由于它的造价极高,通常只有一些国家级的部门,如航天、气象等部门才有能力配置。而随着人们日常工作遇到的商业计算越来越复杂,人们越来越需要数据处理能力更强大的计算机。于是,人们开始寻找一种造价低廉而数据处理能力超强的计算模式,最终找到了答案网格计算Grid Computing。,这种计算模式利用互联网把分散在不同地理位置的电脑组织成一个“虚拟的超级计算机”,其中每一台参与计算的计算机就是一个“节点”,而整个计算由成千上万个“节点”组成“虚拟的一张网格”,所以这种计算方式叫网格计算。简单而言,网格计算就是把整个因特网整合成一台巨大的超级计算机,实现各
14、种资源的全面共享。当然,网格并不一定要整合整个因特网,也可以构造地区性的网格。网格的根本特征不是它的规模,而是资源共享。实际上,网格计算是分布式计算的一种,如果某项任务是分布式的,那么参与这项任务的一定不只是一台计算机,而是一个计算机网络,显然这种计算方式将具有很强的数据处理能力。这种组织方式有两个优势:一个是超强的数据处理能力;另一个是能充分利用网上的闲置处理能力。,1.7 Oracle 10g安装,Oracle的安装程序Universal Installer是基于Java的图形界面安装向导工具。利用它可以帮助用户完成不同操作系统环境下不同类型的Oracle安装工作。无论是在UNIX环境下,
15、还是本书所介绍的Windows环境下,都可以通过使用Universal Installer以完成正确的安装。(特别注意:Oracle的安装务必第一次就能正确安装,安装软件与安装目录都不能在桌面进行),1.8 创建数据库,如果在安装Oracle系统时,如果选择不创建数据库,只是安装Oracle数据库服务器软件,在这种情况下,要使用Oracle系统则必须创建数据库。如果在安装系统时已经创建了数据库,虽然也可以在一台Oracle数据库服务器中创建多个数据库,但为了使用Oracle数据库服务系统充分利用服务器的资源,建议应在一台服务器上只创建一个数据库。在Oracle 10g中,创建数据库有两种方式:
16、一种是利用图形界面的DBCA(数据库配置向导)进行创建数据库(推荐方法);另一种是通过SQL语句的CREATE DATABASE命令。(非常复杂,而且经常出错,不建议使用),DBCA Database Configuration Assistant 主要功能和注意事项,创建或删除数据库。配置已创建的数据库的选项(共享或专用服务器)。创建和管理数据库模板。注意事项:“全局数据库名”、“数据库名”与“SID 例程名”3个概念之间的区别。数据库名是一个数据库的名称标识,在创建数据库时由初始化参数DB_NAME指定;全局数据库名中同时包含数据库的名称标识和网络位置,由初始化参数DB_NAME和DB_D
17、OMAIN共同组成;SID是一个ORACLE实例的唯一名称标识。如果一个数据库只有一个实例,SID与数据库名相同,都由DB_NAME参 数决定。,验证数据库是否正确安装在命令行输入:sqlplus/nolog 或 sqlplusw/nolog(都是sqlplus工具,界面不同而已)使用sqlplus连接数据库,需要输入:connect/as sysdba(as sysdba 表明连接身份是数据库管理员)一般的连接是:conn username/password例如:conn scott/tiger在使用连接命令后出现“已连接”则表明数据库已正确安装,主要的系统服务:,所有oracle的服务都以
18、“oracle”开头。根据安装组件的不同,可能存在的oracle服务也不同。通常包如下主要oracle服务:OracleTNSListener 监听程序服务,负责监听和建立客户端的连接请求。OracleServiceSID Oracle数据库例程,负责管理数据库和处理客户端的请求。OracleDBConsoleSID Oracle控制台,提供用户使用浏览器对Oracle进行管理操作的服务。,1.9 数据库的启动与关闭,在用户试图连接到数据库前,必须先启动数据库。每个启动的数据库都对应一个实例。数据库实例就是为了运行数据库,Oracle系统所运行的所有进程和分配的内存结构的组合体。实例可以简单地
19、理解为数据库在运行时位于内存中的部分,而数据库可理解为运行是位于硬盘中的部分。,数据库启动过程,1.启动实例(nomount)启动实例是启动oracle数据库的第一个过程,主要完成以下工作:读取初始化参数文件。分配系统全局区。启动后台进程。打开alertSID.log文件和跟踪文件在数据库关闭的状态下的数据库启动的操作:startup nomount在例程启动或数据库打开的状态下的操作是:先关闭数据库,关闭数据库的操作是:Shutdown immediate|transactional|normal|abort然后:Startup nomount,2.装载数据库(mount)装载数据库是启动o
20、racle数据库的第二个过程,主要完成以下工作:将数据库与一个已打开的实例关联起来。打开初始化参数文件中指定的控制文件。根据控制文件获得数据文件和重做日志文件的名称和状态,并进行装载。在例程启动的状态下的操作:alter database mount在例程关闭的状态下的操作:startup mount,3.打开数据库(open)打开数据库是启动oracle数据库的最后一个过程,主要完成以下工作:打开数据文件。打开联机重做日志文件。出于管理方面的要求,数据库的启动过程经常需要分步进行,在很多情况下,启动数据库时并不是直接完成上述3个步骤,而是先完成第1步或到第2步,然后执行必要的管理操作,最后再使数据库进入正常运行状态。在数据库处于装载(mount)的状态下:alter database open在数据库处于关闭的状态下:startup 或 startup open,Oracle数据库的启动与关闭,