没有合适的资源?快使用搜索试试~ 我知道了~
首页Oracle 数据库SQL和PLSQL实例教程
资源详情
资源评论
资源推荐

第 1 章 关系数据库与 SQL 语言环境 1
第 1 章
关系数据库与 SQL 语言环境
本章对关系数据库的概念和关系数据库的一些理论作了一些简要的回顾,同时介绍关
系数据库的查询语言 SQL 和 Oracle 数据库下的 SQL 语言的应用开发环境 SQL*Plus。
【本章要点】
▼
了解关系数据库和数据库管理系统的一些基本知识。
▼
熟悉 SQL*Plus 环境的使用。
▼
熟悉 Oracle 应用开发工具 TOAD 的使用。
1.1 关系数据库的基本概念
在信息社会中,信息是如此的重要,以至我们每时每刻都在和各种信息打交道,今天
的现代化社会离不开先进的信息存储和处理技术。数据库是信息存储和处理的基础,是信
息和信息管理数字化的必然产物。
1.1.1 数据库和数据库管理系统
数据库是在计算机上组织、存储和共享数据的方法,数据库系统是由普通的文件系统
发展而来的。数据库系统具有较高的数据独立性,即不依赖于特定的数据库应用程序;数
据库系统的数据冗余小,可以节省数据的存储空间;另外数据库系统还很容易实现多个用
户的数据共享。数据库系统成熟的标志就是数据库管理系统的出现。数据库管理系统
(DataBase Managerment System,简称 DBMS)是对数据库的一种完整和统一的管理和控制机
制。数据库管理系统不仅让我们能够实现对数据的快速检索和维护,还为数据的安全性、
完整性、并发控制和数据恢复提供了保证。数据库管理系统的核心是一个用来存储大量数
据的数据库。
一个真正的数据库系统由硬件和软件两个方面构成。比如我们要使用 Oracle 数据库,
需要安装 Oracle 公司提供的数据库服务器软件和一台用于安装数据库管理系统的高性能的
计算机服务器。
数据库系统的发展经历了层次模型、网状模型及关系模型几个阶段。当今应用最普遍
的是关系型数据库管理系统。目前,市场上流行的几种大型数据库,如 Oracle、DB2、Sybase、
MS SQL Server 等都是关系型数据库管理系统。Oracle 数据库是一种面向对象的关系型数据
库管理系统(ORDBMS),是基于标准 SQL 语言的数据库产品。
数据库和数据库管理系统实现了信息的存储和管理,还需要开发面向特定应用的数据

2 Oracle 数据库 SQL 和 PL/SQL 实例教程
库应用系统,以完成更复杂的信息处理任务。典型的数据库应用有 C/S(客户/服务器)和
B/S(浏览器/服务器)两种模式。C/S 模式由客户端和服务器端构成,客户端是一个运行在客
户机上的数据库应用程序,服务器端是一个后台的数据库服务器,客户端通过网络访问数
据库服务器。B/S 模式是基于 Internet 的一个应用模式,需要一个 WEB 服务器。客户端分
布在
Internet 上,使用通用的网页浏览器,不需要对客户端进行专门的开发。应用程序驻留
在 WEB 服务器或以存储过程的形式存放在数据库服务器上,服务器端是一个后台数据库服
务器。
例如一个有代表性的信息检索网站,通常都是一个典型的基于大型数据库的 WEB 应
用。很多这样的网站都采用
Oracle 的数据库服务器,以获得优越的性能。图 1-1 给出了典
型的 WEB 数据库应用系统的结构示意图。
2
客户机
3
客户机
4
客户机
互联网
WEB
服务器
1
客户机
数据库服务器
图 1-1 WEB 数据库应用示意图
在这里我们主要来学习和了解关系数据库的一些基本概念和知识。
1.1.2 实体关系模型
在数据库的设计阶段,需要创建逻辑模型。关系数据库的逻辑模型叫做实体—关系模
型。实体模型化最常用的工具是实体关系图,简称 ER(EntityRelationship)图,它是一种
简单的图形技术,用来定义数据库中需要的表、字段和关系。它用于数据库设计的第一步,
与我们使用的具体的数据库管理系统无关。实体关系模型的优点是:
有效地搜集和表示组织的信息需求。
提供一个容易理解的系统描述图。
易于开发和提炼。
明确定义了信息需求的范围。
将业务需求信息与业务执行活动分开。
根据业务说明或描述创建实体关系图。

第 1 章 关系数据库与 SQL 语言环境 3
典型的实体关系模型有以下三个要素:
实体:客观存在并可以相互区分的事物称为实体,包括有意义的人、地方或事物,
如学生、教师、课程、成绩等。
属性:实体所具有的某一特性称为属性,一个实体可以用若干属性来刻画,如学生
实体具有学号、姓名、性别等属性。
关系:两个实体之间的相关性,如学生与课程之间的关系,教师与课程之间的关系。
实体之间的关系有三种类型:
一对一:表示一个实体中的一种情况只与另一个实体中的一种情况有关系。比如:
学生与学生证,一个学生只对应一个学生证,一个学生证只对应一个学生。
一对多:表示一个实体中的一种情况与另一个实体中的多种情况有关系。比如:班
级与学生,一个班级可有多个学生,而一个学生只能属于某一个班级。
多对多:表示一个实体中的一种情况与另一个实体中的多种情况有关系,而第二个
实体中的一种情况也与第一个实体中的多种情况有关系。比如:教师与学生,一个学生有
多个教师为其上课,一个教师要为多个学生上课。
以上三种关系可用图
1-2 来表示。
一对一关系
学生 学生证
一对多关系
班级 学生
多对多关系
教师 学生
图 1-2 实体之间的关系
在 ER 模型图中,用实线表示实体之间必须有关系,用虚线表示实体之间是可选的关
系,用三角表示一对多关系。
在实体的属性中,在属性前用“*”表示必须有的属性,用“#”表示惟一属性,小写
字母“o”代表可选属性。在每一实体上,要定义一个惟一表示该实体的标识符,称为
UID(UNIQUE IDENTIFIER),UID 是属性之间的组合。图 1-3 表示了三个实体之间关系的
ER 图,其中系部 ID、专业 ID 和教师 ID 分别是三个实体的 UID。
系部 专业 教师
#系部 ID #专业 ID #教师 ID
*系部名称 *专业名称 *姓名
类别 专业主任 *职务
办公地点 o 人数 性别
系主任 *系部 ID 年龄
*专业 ID
图 1-3 实体之间关系的 ER 图

4 Oracle 数据库 SQL 和 PL/SQL 实例教程
1.1.3 规范化设计
在数据库的设计过程中,如果已经建立了逻辑模型,那么实体—关系模型的设计是否
规范就要靠规范化设计原则来验证。规范化的意义在于可以从实体中删除冗余信息,通过
修改数据模型达到可以惟一地表示实体的每一种情况为止。
规范化是降低或消除数据库中冗余数据的过程。尽管在大多数的情况下冗余数据不能
被完全清除,但冗余数据降得越低,就越容易维护数据的完整性,并且可以避免非规范化
的数据库中数据的更新异常。数据库的规范化通过范式来验证,但是一味地考虑满足范式,
也会对数据库性能产生影响,并给实际的实施带来困难。所以实际的情况是采取折衷的方法。
规范化设计的规则有三个,分别称作第一范式、第二范式和第三范式:
第一范式(1NF):实体的所有属性必须是单值的并且不允许重复。
第二范式(2NF):实体的所有属性必须依赖于实体的惟一标识。
第三范式(3NF):一个非惟一标识属性不允许依赖于另一个非惟一标识属性。
在数据库的设计中,一般都采用第三范式,以保证数据的冗余最小,提高数据的完整性。
1.1.4 物理设计
在完成实体关系模型设计以后,要将关系模型转换成实际的数据库对象来表示,这一
过程称为物理设计。这一转换过程要将实体映射成数据库中的一张表,实体的属性映射成
为表的列,实体之间的关系映射成为表或表间的约束条件,实体的惟一标识将成为表的主
键
(Primary Key),通过建立存储过程、函数和触发器来进一步保证业务规则的实现。
图 1-4 是实际设计的两张表和表间关系的示意图。教师表由教师 ID、姓名和系部 ID 等
列构成;系部表由系部 ID、系部名称和地点等列构成。其中,教师 ID 和系部 ID 分别是这
两张表的主键。教师表的系部 ID 和系部表的系部 ID 之间建立了外键联系,即教师表的系
部 ID 必须是系部表的某个系部 ID。
教师表
系部表
教师
ID 姓名
…
系部 ID 系部 ID 系部名称 … 地点
10105 黄浩 101 101 计算机系 行政 5 楼
10118 李静明
101 102 电子工程系 行政 3 楼
10236 赵欣 102 103 管理系 行政 2 楼
10257 王强 102
10321 方俊英
103 外键
图 1-4 表的结构和表间关系示意
1.1.5 开发数据库应用系统的步骤
下面列出了常见的数据库应用系统的开发步骤:
主键列
主键列

第 1 章 关系数据库与 SQL 语言环境 5
系统需求分析。
设计数据库表。
规划表中的字段。
确定表与表之间的关系。
优化表和表中字段的设计。
输入数据,检测表的设计,如果需要改进可以再次优化表的设计。
创建查询、存储过程、触发器以及其他的数据库对象。
使用数据库分析工具来分析和改进数据库的性能。
设置数据库安全性。
1.2 SQL*Plus 环境
SQL 是数据库查询语言。Oracle 提供的一个被称为 SQL*Plus 的工具,是一个 SQL 的
使用环境。利用此工具,既可以执行标准的 SQL 语句和特定的 Oracle 数据库管理命令,也
可以编写应用程序模块。SQL*Plus 是数据库管理员和开发人员最常使用的工具。它有两个
版本,一个是图形界面,一个是命令行风格。
在 Oracle 数据库软件的安装中,无论是服务器还是客户端,一般都默认自动安装这个
工具。图形界面版本的 SQL*Plus 称为 SQL*Plus 工作表(SQL*Plus WorkSheet),它跟命令行
方式的版本有一些差别,在这里我们使用 SQL*Plus 工作表作为训练的环境。命令行方式的
SQL*Plus 的使用方法类似,使用者可以自学。
1.2.1 SQL*Plus 的登录和环境设置
1.登录 SCOTT 账户
在登录和使用 SQL*Plus 的同时,要以数据库用户的身份连接到某个数据库实例。在
Oracle 数据库创建过程中,选择通用目的安装,会创建一个用于测试和练习目的的账户——
SCOTT。其中保存了一些数据库表的实例,主要的两个表是雇员表 EMP 和部门表 DEPT 通
过登录 SCOTT 账户就可以访问这些表。
SCOTT 账户的默认口令是 TIGER。
我们假定 Oracle 数据库已经安装在局域网中的一台基于 Windows 操作系统的服务器
上,服务器的名称为
ORACLE,数据库实例的名称为 MYDB。管理客户端和开发工具安装
在其他基于 Windows 操作系统的客户机上,并且该机器通过网络能够访问到 Oracle 数据库
服务器。这时,我们就可以使用管理客户端中的 SQL*Plus 工具来进行登录了。登录前一般
要由管理员使用
Oracle 的网络配置工具创建一个网络服务名,作为客户端连接名。为了方
便记忆,连接名可以与数据库实例名相重。我们假定创建的网络连接服务名为 MYDB,则
登录过程如下。
剩余236页未读,继续阅读














安全验证
文档复制为VIP权益,开通VIP直接复制

评论0