第1章Oracle11g数据库系统
第1章 Oracle 11g结构简介
大型数据库的发展方向
从ORACLE7——8——8I——9这几个版本的变化中,大体可以看出数据 库变化的趋势。 1)对互联网的支持更多,如XML技术,对大量访问的优化 2)对数据仓库OLAP应用的支持更强。包括对大数据处理的优化, 新增一些专门支持ETL的SQL语句。这一点,在817,9I中表现得很 明显 3)数据据管理的智能化,减少部分DBA的工作。 4)向平台化,集成化发展,即现在的数据库不是一个只存放数据的 容量,它还具有程序开发平台等功能。ORACLE曾说过,在以后的 将来,一个服务器只需要数据库,不需要操作系统与应用程序,因 为数据库能做anything....
– 磁盘阵列独立宿主(Stand-alone Hosts with DiskArray) – 磁盘映像独立宿主(Stand—A10ne Hosts with Disk Shadowing) – 多数据库的独立宿主(Stand-alone Hosts with Multiple Database)
• 网络宿主
SQL server和Oracle BD的区别
2. Oracle的安全认证获得最高认证级别的ISO标准认证,而SQL Server并没有获得什么安全认证。这方面证明了Oracle的安全性是 高于SQL Server的。 3. Orcale数据库的价格是远比SQL Server数据库要高,一方面Oracle 的初始花费相对较高,特别是在考虑工具软件的时候,Oracle很多 工具软件需要另外购买,与Microsoft提供免费的SQL Server工具软 件相比,Oracle更显价格的不菲。 4. Oracle的性能优势体现在他的多用户上,而SQL Server的性能优势在 多用户上就显得力不从心了。 5. Orcale数据库和SQL Server数据库那个更快?其实是一个很难答的问 题,因为存在许多不定因素,包括处理类型、数据分布以及硬件基 础设施等。
第1章 Oracle 11g简介_安装_sqlplus应用
目录第一章Oracle 11g简介_安装_sqlplus应用 (1)1.1网格计算: (1)1.2安装 (1)1.3 sqlplus (1)1.3.1 更新内容 (1)1.3.2 sqlplus与sqlplusw操作方面的区别 (2)1.4 DBCA (2)2.0数据库的使用层次 (2)第一章Oracle 11g简介_安装_sqlplus应用Oracle数据库是Oracle公司出品的十分优秀的DBMS,当前Oracle DBMS以及相关的产品几乎在全世界各个工业领域中都有应用。
无论是大型企业中的数据仓库应用,还是中小型的联机事务处理业务,都可以找到成功使用Oracle数据库系统的典范。
到目前为止,11g 是Oracle数据库的最新版本,它是在10g的基础上对企业级网格计算进行了扩展,提供了众多特性支持企业网格计算。
1.1网格计算:Oracle 10g/11g中的g代表网格计算,Oracle数据库作为第一个为企业级网格计算而设计的数据库,为管理信息和应用提供了最灵活的、成本最低的方式。
例如,通过Oracle网格计算,可以在几个互联的数据库服务器网格上运行不同的应用。
当应用需求增加时,数据库管理员能够自动为应用提供更多的服务器支持。
网格计算使用最高端的负载管理机制,使得应用能够共享多个服务器上的资源,从而提高数据处理能力,减少对硬件资源的需求,节省企业成本。
1.2安装在成功安装完Oracle后,OEM也就被安装完毕,使用Oracle 11g OEM时只需要通过启动浏览器,输入OEM的URL地址(如https://atg:1158/em),或者直接在“开始”菜单的Oracle程序组中选择“Database Control –orcl”命令即可。
1.3 sqlplus在Oracle数据库系统中,用户对数据库的操作主要是通过SQL*Plus工具来实现的,因此,本节首先介绍如何使用SQL*Plus连接到Oracle数据库。
Oracle11g基础入门理论
本章目标
理解Oracle 11g体系结构 掌握Oracle 11g数据库实例的创建 掌握Oracle 11g实例的启动与关闭 掌握Oracle网络连接配置
1. Oracle 11g 简介
1.1 Oracle 数据库系统的特点
Oracle数据库系统是美国Oracle公司(甲骨文)提供的以分布式数据库为 核心的一组软件产品
后台进程存在于操作系统中,在Oracle实例启动时自动启动
2.1 进程结构
服务器进程任务 解析并执行用户所提交的SQL语句 搜索SGA区的数据库缓存,决定是否读取数据文件,如果数据块不在SGA 区的数据库缓存中,则将其从数据文件中读入 将查询或执行后形成的数据返回给用户
后台进程任务 在内存和外存之间进行I/O操作 监视各个进程的状态 协调各个进程的任务 维护系统的性能 保证系统的可靠性能
数据文物件理文件
控制文件
数据文件是实际存储插入到数据库表中的实际数据的操作系统文件 数据文件的扩物展理名块 为“数*据物.d文理b件块f” 物理块
物理块
重做日志文件
重做日志文件
Oracle使用重做日志文件在故障发生之后重现当时的数据库操作,便 于数据库的恢复
重做日志文件的扩展名为“*.log”
Oracle数据库系统主要包含以下4个特点 支持大数据库、多用户、高性能的事务处理 提供了基于角色(ROLE)分工的安全保密管理 提供了新的分布式数据库能力 具有可移植性、可兼容性和可连接性
1.2 Oracle发展历史
1978年,Oracle 1诞生了,它是使用汇编语言开发的,但它的出现并没有引 起太多的关注
用户进程
用户进程
SGA
服务器进程
服务器进程
内存结构
Oracle 11g数据库基础教程第01章
授课教师: 职务:
第1章 Oracle 11g1g是当前最 流行的大型关系数据 库之一,支持包括32 位Windows、64位 Windows、HP-UX、AIX、 Solaris和Linux等多 种操作系统,拥有广 泛的用户和大量的应 用案例。本章介绍 Oracle 11g数据库的 版本信息、产品组成 以及体系结构等,为 管理Oracle 11g奠定 基础。
本章知识点
1.1 Oracle 11g产品系列 1.2 Oracle 11g数据库系统的体系结构
1.1 Oracle 11g产品系列
版本 企业版(Enterprise Edition) 支持硬件情况 该版本能够支持操作系统所支持的最大 CPU数和内存容量,不限制数据库规模 该版本支持4个插槽的CPU和操作系统支 持的最大内存容量,不限制数据库规模。 支持Windows、Linux和Unix操作系统, 并且支持64位平台操作系统 该版本支持两个插槽的CPU和操作系统支 持的最大内存容量,不限制数据库规模。 支持Windows、Linux和Unix操作系统, 并且支持64位平台操作系统
Oracle 数据库的体系结构
多用户网络环境 用户 1 用户 2 用户 3 用户 4 用户„„ 用户 n
逻辑结构 逻辑单元 1 逻辑单元 2 逻辑单元„„ 逻辑单元 n
物理结构 文件 1 文件 2 文件 3 文件 4 文件„„ 文件 n
1.2.2 网格结构
可以通过以下两个关键点来区分网格计算和其他计算方式 (例如主机或客户/服务器模式)。 虚拟(Virtualization):相互独立的资源(例如计算机、 磁盘、应用程序组件和信息资源等)按照类型组织在一个 池中,供用户使用。这种方式打破了资源提供者和用户之 间的硬编码联系,系统可以根据特定的需要自动准备资源, 而用户不需要了解整个过程。 提供(Provisioning):用户通过虚拟层申请资源,由 系统来决定如何满足用户的特定需求,从而对系统进行整 体的优化。
Oracle 11g简介
•
安全在于心细,事故出在麻痹。20.10.1520.10.1509:29:0709:29:07October 15, 2020
•
踏实肯干,努力奋斗。2020年10月15日上午9时29分 20.10.1520.10.15
•
追求至善凭技术开拓市场,凭管理增 创效益 ,凭服 务树立 形象。2020年10月15日星期 四上午9时29分 7秒09:29:0720.10.15
•
人生得意须尽欢,莫使金樽空对月。09:29:0709:29:0709:2910/15/2020 9:29:07 AM
•
安全象只弓,不拉它就松,要想保安 全,常 把弓弦 绷。20.10.1509:29:0709:29Oc t-2015- Oct-20
•
加强交通建设管理,确保工程建设质 量。09:29:0709:29:0709:29Thursday, October 15, 2020
界面安装工具,利用它可以完成在不同操作系统平台
上的、不同类型的、不同版本的Oracle数据库软件的
安装。无论是Windows NT/XP/2003、Sun Solaris、
HP UNIX、Digital UNIX、VMS还是OS/390都可以通
过使用OUI以标准化的方式来完成安装任务。
14
1.5 Oracle 11g的管理工具
服务器的连接,发出数据请求。服务器上运行数据库
,通过网络协议接收连接请求,将执行结果回送客户
机。
客户机1 客户机2
HUB /交换机
数据库服务器1 数据库服务器2
12
1.3.3 分布式结构
•
分布式结构是客户机/服务器结构的一种特殊类型
。在这种结构中,分布式数据库系统在逻辑上是整体
Oracle课件 第1章
实例后台进程
实例的后台进程共同实现对Oracle数据库的管理功能,每 个后台进程只完成一项单一的任务,主要后台进程包括: 数据库写入进程(DBWR):负责将SGA数据库缓冲区 缓存中的脏数据块写入数据文件。DBWR在下面条件下执 行写入操作:服务器进程找不到足够数量的可用干净缓冲 区,或者数据库系统执行检查点时。一个实例可启动的 DBWR数量由初始化参数DB_WRITER_PROCESSES指 定; 日志写入进程(LGWR):负责把日志缓冲区内的重做 日志写入联机重做日志文件; 归档进程(ARCH):发生日志文件切换时,如果数据 库运行在归档模式下,归档进程将把填写过的联机重做日 志文件复制到指定位置进行归档 ;
Oracle数据库中的其它文件
除以上三种Oracle数据库文件之外,Oracle数据库管理系 统在管理数据库时还使用其它一些辅助文件,其中包括 : 参数文件:记录Oracle数据库的初始化参数设置,如实 例使用的内存量、控制文件的数量及其存储路径等。它相 当于实例的属性文件,实例启动时首先打开并读取它; 口令文件:用于存储被授予SYSDBA、SYSOPER和 SYSASM权限的数据库用户及口令,以便在数据库还未打 开时用于验证具有这些特殊权限的数据库管理员的身份 ; 警告日志文件:这是一个文本文件,其名称是 alertdb_name.log(db_name是数据库名),它相当于一 个数据库的“编年体”日志,按照时间的先后顺序完整记 录从数据库创建开始,直到删除之前发生的重大事项,如 可能出现的内部错误或警告,数据库的启动与关闭操作, 表空间的创建、联机和脱机操作等信息;
OracleDatabase11g应用与开发教程课程设计
OracleDatabase11g应用与开发教程课程设计课程简介本课程旨在向学生介绍Oracle Database 11g的应用与开发。
课程内容包含Oracle Database 11g的基础知识、SQL语言、PL/SQL编程、数据库管理员的相关技能等方面的知识点。
学生将会在实践中掌握Oracle Database 11g的开发和应用技能。
本课程将会通过授课、讨论、编程实践等方式进行。
教学目标1.理解Oracle Database 11g的基础知识和架构2.掌握SQL语言和PL/SQL编程3.熟悉Oracle Database 11g的开发和应用技能4.学习并掌握数据库管理员的相关技能教学大纲第一章:Oracle Database 11g概述•Oracle数据库简介•Oracle Database 11g的体系架构•Oracle Database 11g的安装与配置第二章:SQL语言•SQL语言基础•SQL语言高级应用•表达式和谓词第三章:PL/SQL编程•PL/SQL程序设计•异常处理•游标和函数第四章:Oracle Database开发和应用技能•Oracle Database编程接口•JDBC编程•使用PL/SQL Web Toolkit第五章:数据库管理员的相关技能•数据库备份和恢复•数据库性能调优•数据库安全与维护课程设计实验设计实验1:Oracle Database 11g基础知识和安装•实验目的:了解Oracle Database的基础知识和安装方法•实验内容:安装Oracle Database 11g,理解数据库概念,熟悉Oracle Database 11g的体系架构•实验要求:完成Oracle Database 11g的安装和配置,并理解数据库概念和体系架构实验2:SQL语言•实验目的:掌握SQL语言的基本语法和应用•实验内容:使用SQL语言创建表、插入数据、更新和删除数据,学习SQL语言高级应用•实验要求:使用SQL语言完成实验内容,掌握SQL语言基本语法和应用实验3:PL/SQL编程•实验目的:掌握PL/SQL编程基础•实验内容:使用PL/SQL编程实现简单的程序,如计算器、图书管理系统等•实验要求:使用PL/SQL编程完成实验内容,熟悉PL/SQL程序设计实验4:Oracle Database 11g开发和应用技能•实验目的:学习Oracle Database编程接口和应用•实验内容:使用JDBC编程实现对Oracle Database的连接,使用PL/SQL Web Toolkit开发Web应用程序•实验要求:掌握Oracle Database编程接口和应用技能,熟悉JDBC 编程和PL/SQL Web Toolkit开发实验5:数据库管理员的相关技能•实验目的:学习和掌握数据库管理员的技能•实验内容:实验体验数据库备份和恢复操作,进行数据库性能调优和数据库安全维护•实验要求:了解数据库管理员的技能,熟悉数据库备份和恢复操作,掌握数据库性能调优和数据库安全维护技能课程作业•作业1:根据实验3中的图书管理系统,实现增加图书、删除图书、查询图书、修改图书等功能•作业2:使用PL/SQL Web Toolkit开发Web应用程序,具体内容和功能根据实际需求设计总结通过本课程的学习,学生将会了解Oracle Database 11g的基础知识和架构,掌握SQL语言和PL/SQL编程,熟悉Oracle Database 11g的开发和应用技能,学习并掌握数据库管理员的相关技能。
oracle 第1章oracle11g入门祥解
Oralce入门
数据库发展史
人工管理阶段(20世纪50年代中期以前)
数据不保存;没有文件的概念;没有对数据进行管理的软件系统
文件系统阶段(20世纪50年代后期到60年代中期)
使用磁盘文件来存储数据
数据库系统阶段(从20世纪60年代后期)
层次模型;网状模型
第二代数据库系统--关系数据库管理系统(RDBMS)
关系型数据库和结构化查询语言
新一代数据库技术
“关系-对象”型数据库(O/R mapping)
创建表空间,用户
创建表空间. create tablespace hk datafile 'd:\db\hk.dmp' size 10m; 创建用户 create user hk identified by fendou default tablespace hk; 授予权限 grant dba,connect,resource to hk; 用system用户登陆 服务器ip:192.168.1.8 192.168.1.8/ORCL
DATABASE使用
Sql语句
Sql_plus入门
先来认识一下scott模式中的表 EMP 员工表 DEPT 部门表 SALGRADE 工资等级表 BONUS 奖金表
查询 查询全部列 Select * from emp; select * from scott.emp; 查询部分列 Select empno,ename,job from emp; 给列起个别名 Select empno 员工工号,ename 员工姓名,job 工作 from emp; 查询emp表的行数 Select count(*) from emp;
Like语句 ‘%’表示0~任何多个字符 ‘_’表示一个任意字符 第二个字符是‘M’的员工 select * from emp where ename like '_M%'; 任意五个字符的员工 select * from emp where ename like '_____'; 所有全部员工 select * from emp where ename like '%';
Oracle11g数据库基础教程-参考答案资料
SMON进程的主要功能包括:在实例启动时负责对数据库进行恢复;回收不再使用的临
时空间;将各个表空间的空闲碎片合并。
PMON进程的主要功能包括:负责恢复失败的用户进程或服务器进程,并且释放进程所
占用的资源; 清除非正常中断的用户进程留下的孤儿会话, 回退未提交的事务, 释放会话所
占用的锁、 SGA、 PGA 等资源;监控调度进程和服务器进程的状态,如果它们失败,则尝试
修改右侧对话框中
第 2 章 Oracle 数据库管理与开发工具
1.简答题
(1)
实现对 Oracle 运行环境的完全管理, 包括 Oracle 数据库、 Oracle 应用服务器、 HTTP 服务器等的管理;
实现对单个 Oracle 数据库的本地管理,包括系统监控、性能诊断与优化、 对象管理、存储管理、安全管理、作业管理、数据备份与恢复、数据移植等;
适合于工作组或部门级
的应用程序: 个人版数据库服务器只提供基本数据库管理功能和特性,
适合单用户的开发环
境,为用户提供开发测试平台。
(2)
常用数据库类型包括事务处理类、 数据仓库类以通用类型。 其中事务处理类型主要针对
具有大量并发用户连接, 并且用户主要执行简单事务处理的应用环境。 事务处理数据库的典 型应用有银行系统数据库、 Internet 电子商务数据库、证券交易系统数据库等。对于需要较 高的可用性和事务处理性能、 存在大量用户并行访问相同数据以及需要较高恢复性能的数据
Oracle 数据库物理结构包括数据文件、控制文件、重做日志文件、初始化参数文件、归 档文件、 口令文件等。 在控制文件中记录了当前数据库所有的数据文件的名称与位置、 日志文件的名称与位置,以及数据文件、重做日志文件的状态等。 (3)
Oracle 11gR2 概念 第1章 Oracle 数据库简介
Previous NextView PDF 1 Introduction to Oracle DatabasePrevious NextView PDF 第1章 Oracle数据库简介This chapter provides an overview of Oracle Database and contains thefollowing sections:本章提供了Oracle数据库的概述,并包含以下各节:∙About Relational Databaseso Database Management System (DBMS)o Relational Modelo Relational Database Management System (RDBMS)o Brief History of Oracle Database∙Schema Objectso Tableso Indexes∙Data Accesso Structured Query Language (SQL)o PL/SQL and Java∙Transaction Managemento Transactionso Data Concurrencyo Data Consistency∙Oracle Database Architectureo Database and Instanceo Database Storage Structureso Database Instance Structureso Application and Networking Architecture∙Oracle Database Documentation Roadmapo Basic Groupo Intermediate Groupo Advanced Group ∙关于关系数据库o数据库管理系统(DBMS)o关系模型o关系数据库管理系统(RDBMS)o Oracle数据库发展简史∙模式对象o表o索引∙数据访问o结构化查询语言(SQL)o PL/SQL和Java∙事务管理o事务o数据并发性o数据一致性∙Oracle数据库体系结构o数据库和实例o数据库存储结构o数据库实例结构o应用程序和网络体系结构∙Oracle数据库文档路线图o基本组o中级组o高级组About Relational Databases 关于关系数据库Every organization has information that it must store and manage to meet its requirements. For example, a corporation must collect and maintain human resources records for its employees. This information must be available to those who need it. An information system is a formalsystem for storing and processing information. 每个组织都有其必须存储和管理的信息,以满足其需求。
Oracle11g数据库基础教程第2版习题答案作者张凤荔王瑛李晓黎等2..
第1章Oracle11g简介一、选择题1.D2.D3.C4.A5.D6.D7.B二、填空题1.视图2.索引3.簇4.DB_BLOCK_SIZE 5.SYSTEM6.数据文件7.日志文件8.控制文件9.系统全局区(System Global Area,SGA)10.程序全局区(Program Global Area,PGA)11.数据库管理员12.安全官员13.网络管理员14.应用程序开发员15.应用程序管理员16.数据库用户。
三、简答题1.答:数据库由若干个表空间组成,表空间由表、索引、视图等逻辑对象组成,表由段组成,段由区组成,区则由数据块组成。
2.答:物理结构由构成数据库的操作系统文件所决定。
每个Oracle数据库都由3种类型的文件组成:数据文件、日志文件和控制文件。
Oracle数据库有一个或多个物理的数据文件。
数据库的数据文件包含全部数据库数据。
逻辑数据物理地存储在数据文件中。
每个数据库有两个或多个日志文件组,日志文件组用于收集数据库日志。
日志的主要功能是记录对数据所作的修改,所以对数据库作的全部修改记录在日志中。
在出现故障时,如果不能将修改数据永久地写入数据文件,则可利用日志得到修改记录,从而保证已经发生的操作成果不会丢失。
每个Oracle数据库有一个控制文件,记录数据库的物理结构。
控制文件包含数据库名、数据库数据文件和日志文件的名字、位置和数据库建立日期等信息。
3.答:SGA是一组共享内存结构,其中包含一个Oracle数据库例程数据及控制信息。
如果有多个用户同时连接到同一个例程,则此例程的SGA数据由这些用户共享。
因此,SGA也称为共享全局区(Shared Global Area)。
SGA包含以下数据结构。
∙数据库缓冲区:SGA用来保存从数据文件中读取的数据块。
∙重做日志缓冲区:SGA中的循环缓冲区,用于记录数据库发生改变的信息。
∙共享池:用于保存用户程序。
∙Java池:为Java命令提供语法分析。
01 ORACLE 11g体系结构概述
ORACLE 11g体系结构概述
在Oracle数据库管理系统中有3个重 要的概念需要理解,那就是实例 (Instance)、数据库(Database)和 数据库服务器(Database Server)。其 中,实例是指一组Oracle后台进程以及 在服务器中分配的共享内存区域;数据库 是由基于磁盘的数据文件、控制文件、日 志文件、参数文件和归档日志文件等组成 的物理文件集合;数据库服务器是指管理 数据库的各种软件工具(比如,sqlplus、 OEM等)和实例及数据库三个部分。从 实例与数据库之间的辩证关系来讲,实例 用于管理和控制数据库;而数据库为实例 提供数据。一个数据库可以被多个实例装 载和打开;而一个实例在其生存期内只能 装载和打开一个数据库。
Oracle 11g数据库系统设计、开发、管理与应用
12.1认识Oracle 11g企业管理器 12.2监视Oracle 11g环境 12.3数据库管理 12.4管理部署 12.5作业系统 12.6小结
13.1数据库安全管理概述 13.2安全策略 13.3用户管理 13.4角色管理 13.5授权 13.6数据库审计 13.7小结
14.1备份数据库 14.2恢复数据库 14.3备份和恢复策略 14.4数据导入/导出 14.5小结
15.1配置和管理工具概述 15.2配置和管理Oracle网络服务 15.3 Oracle Locale Builder 15.4 Oracle客户端工具 15.5小结
第16章Java访问 Oracle数据库
第17章.NET访问 Oracle数据库
第18章开发J2EE应 用
第19章Oracle XML DB
7.1索引概述 7.2创建索引 7.3修改索引 7.4查看索引 7.5删除索引 7.6聚集 7.7小结
8.1视图概述 8.2创建视图 8.3修改视图 8.4查看视图 8.5删除视图 8.6使用视图 8.7小结
9.1存储过程概述 9.2创建和调用存储过程 9.3查看、修改和删除存储过程 9.4存储过程的嵌套 9.5函数 9.6包 9.7小结
第3章SQL语言 1
与PL/SQL
2
第4章数据库
3 第5章数据表、
约束和数据记 录
4
第6章数据查询
5
第7章索引
第8章视图
第9章存储过程、函 数和包
第10章触发器
第11章游标、事务和 锁
3.1 SQL语言简介 3.2 PL/SQL语言基础 3.3 PL/SQL运算符 3.4 PL/SQL控制结构 3.5 PL/SQL常用系统函数 3.6小结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章Oracle 11g数据库系统Oracle数据库系统是世界领先的数据库管理系统,Oracle数据库以其功能强大和配置灵活而著称,同时也因有一定的操作难度,让很多初学者望而却步。
本书将由浅入深,以简单易懂的示例带领读者拨开Oracle的神秘面纱。
目前在Oracle世界主要有两类人员:一类是Oracle数据库管理人员,简称DBA;一类是Oracle开发人员。
Oracle DBA主要的工作是负责日常的数据库维护和性能优化管理。
由于Oracle系统较庞大、复杂,要成为一名合格的DBA,需要掌握的知识较多,比如要掌握Oracle体系结构和性能优化等方面的知识,相对其他数据库而言入门门槛较高,但是薪酬一般也较丰厚。
Oracle开发人员的主要工作是使用Oracle提供的SQL语言和PL/SQL 结构化程序设计语言操作数据库,主要职责是操纵Oracle数据库对象,不需要对Oracle系统结构有深入了解,入门较容易。
当Oracle开发人员积累了一定的开发知识后,可以通过学习Oracle DBA方面的知识向数据库管理员转型。
1.1 关系型数据库系统介绍1970年6月,IBM公司的研究员E.F.Codd博士(中文名:埃德加·弗兰克·科德),发表了名为“大型共享数据库的关系模型”的论文,受到了学术界和产业界的高度重视和广泛响应,使得关系型数据库系统很快成为数据库市场的主流。
E.F.Codd博士被誉为“关系数据库之父”,其照片如图1.1所示。
图1.1 关系数据库之父埃德加·弗兰克·科德第1章 Oracle 11g 数据库系统·3·1.1.1 什么是关系型数据模型关系型数据库简而言之就是使用关系或二维表存储信息。
以公司的人员信息管理为例,为了存储公司内部的员工信息,人事部门一般会建一份列表,在公司未引入信息化管理系统时,大多数人事职员会使用Excel 来保存员工信息,例如图1.2是一份简单的人员信息列表的Excel 文件。
这种Excel 存储数据的方式,将人员的所有信息都包含在一张表中,随着Excel 中的栏位和记录数越来越多,这份人员信息表会变得越来越繁杂,这种存储数据的方式称为平面文件数据模型。
为了简化修改与维护的复杂性,关系型数据库设计人员通过使用实体关系模型进行数据库建模,例如人员信息表可以分为员工表和部门表,通过部门编号进行关联,ER 模型如图1.3所示。
图1.2 Excel 人员信息列表 图1.3 人员信息表ER 关系模型 由图1.3中可以看到,通过将员工和部门分别存储在不同的二维表格中,使用主键(PK )和外键(FK )进行关联,使得获取和维护数据变得更容易,这就是关系型数据模型。
上述ER 图的3个关键组件分别如下所示。
❑ 实体:需要了解的信息,比如部门和员工信息。
❑ 属性:一般也称为列或字段,描述实体必须或可选的信息,比如员工表中的工号和姓名等。
❑ 关系:实体之间指定的关联,比如员工的部门编号关联到了部门表的编号属性。
关系型数据模型还涉及一些较复杂的组成元素,涉及较多的数学知识,有兴趣的读者可以参考一些理论性的读物。
1.1.2 数据库系统范式为了规范化关系型数据模型,关系型数据库系统在设计时必须遵循一定的规则,这种规则称为关系型数据库系统范式。
了解范式是每个数据库设计或开发人员必须具备的基本功,范式的主要目的是降低数据冗余,设计结构合理的数据库。
目前较常用的范式有如下3种。
第1篇 PL/SQL 开发入门·4·1.第一范式(1NF ):字段必须具有单一属性特性,不可再拆分如果字段中的值已经是无法再分割的值,则符合第一范式,即1NF 。
例如,在员工表中,姓名字段一般仅包含员工的正式姓名,这是符合第一范式的,但是如果要在姓名字段中包含中文名、英文名、昵称、别名等信息,就意味着姓名字段是可再拆分的。
因此员工名的设计可以如图1.4所示。
图1.4 修改后的员工表以匹配1NF 范式2.第二范式(2NF ):表要具有唯一性的主键列第二范式(2NF )要求数据库表中的每个实例或行必须可以被唯一地区分,为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。
第二范式是在第一范式的基础上的进一步增强,在数据库设计时一般使用唯一性主键来唯一地标识行。
比如在员工表中定义了以工号作为主键,因为公司员工的工号通常用来识别某个员工个体,不能进行重复;在部门表中通过部门编号作为主键,来唯一地区分一个部门。
3.第三范式(3NF ):表中的字段不能包含在其他表中已出现的非主键字段第三范式(3NF )是在前两个范式的基础上的进一步增强,主要用来降低数据的冗余。
比如,员工表中包含了部门编号,它引用到部门表中的部门编号这个主键,符合第三范式。
如果在员工表中又包含一个部门名称,那么表中的字段就包含了其他表中已出现的非主键字段,造成了数据的冗余,不符合第三范式。
范式主要用来规范数据库的设计,使得设计出来的数据库结构清晰,简洁易懂,避免了数据冗余和操作的异常。
在设计数据库模型时,灵活地应用范式是创建一个优秀的数据库系统的基石。
1.1.3 关系型数据库管理系统关系型数据库管理系统,简称DBMS ,是基于关系型数据库理论而开发的软件系统。
目前比较热门的关系型数据管理系统有:Oracle 、Microsoft SQL Server 、Access 、MySQL 及PostgreSQL 等。
数据库管理系统是用于建立、使用和维护数据库,对数据库进行统一的管理和控制,保证数据库的安全性和完整性的一套大型的电脑程序。
数据库管理系统功能第1章 Oracle 11g 数据库系统·5·结构示意图如图1.5所示。
图1.5 数据库管理系统功能结构示意图如图1.5所示,一个数据库管理系统通常要提供如下所示的几项功能。
❑ 定义数据库结构:DBMS 提供数据定义语言来定义(DDL )数据库结构,用来搭建数据库框架,并被保存在数据字典中。
❑ 存取数据库内容:DBMS 提供数据操纵语言(DML ),实现对数据库数据的基本存取操作,即检索、插入、修改和删除等。
❑ 数据库的运行管理:DBMS 提供数据控制功能,即数据的安全性、完整性和并发控制等,对数据库运行进行有效的控制和管理,以确保数据正确有效。
❑ 数据库的建立和维护:包括数据库初始数据的装入,数据库的转储、恢复、重组织,系统性能监视、分析等功能。
❑ 数据库的传输:DBMS 提供处理数据的传输,实现用户程序与DBMS 之间的通信,通常与操作系统协调完成。
有了关系型数据库管理系统,开发人员就可以在数据库中创建数据库、创建表、存取数据库内容、对数据库进行备份和管理,只需要理解常用的系统相关的操作,而不用去研究关系型数据库系统内部深奥难懂的数据方面的理论知识。
1.1.4 使用SQL 语句与数据库管理系统通信关系型数据库管理系统提供了SQL 语言,允许用户操纵数据库。
SQL 语言的全称是结构化查询语言(Structured Query Language ),它是高级的非过程化编程语言,允许用户在高层数据结构上工作。
它不要求用户指定对数据的存放方法,也不需要用户了解其具体的数据存放方式,其操作示意图如图1.6所示。
尽管SQL 语言已经被ISO 组织定义了具有国际标准的SQL 规范,但是各种数据库系统厂商在其数据库管理系统中都对SQL 规范做了某些编改和扩充。
所以,实际上不同数据库系统之间的SQL 不能完全相互通用,目前比较流行的两大类SQL 语言分别是微软的第1篇 PL/SQL 开发入门·6·T-SQL 和Oracle 的PL/SQL ,这两类SQL 既有相似之处又有不同之处。
图1.6 使用SQL 操作数据库管理系统SQL 语言主要又分为如下两大类。
❑ DML 数据操纵语言,主要是完成数据的增、删、改和查询的操作。
❑ DDL 数据定义语言,主要用来创建或修改表、视图、存储过程及用户等。
除此之外,还包含称为DCL 的数据控制语言。
数据库管理员,即DBA ,通常使用DDL 来管理数据库的对象,而数据操纵语言DML 则主要由数据库开发人员使用来操纵数据。
举个例子,如果想要在数据库中创建如图1.4所示的关系模型,可以使用代码1.1的DDL 语句来实现。
代码1.1 使用DDL 语句创建列和键 --创建员工表CREATE TABLE 员工表(--定义员工表列工号 INT NOT NULL,中文姓名 NVARCHAR2(20) NOT NULL,英文姓名 VARCHAR2(20) NULL,别名 VARCHAR2(20) NULL,年龄 INT DEFAULT 18,入职日期 DATE NULL,部门编号 INT NULL,--定义员工表主键CONSTRAINT PK_员工表 PRIMARY KEY(工号));--创建部门表CREATE TABLE 部门表(--定义部门表列部门编号 INT NOT NULL,部门名称 NVARCHAR2(50) NULL,部门经理 INT NOT NULL,部门描述 NVARCHAR2(200) NULL,工号 INT NOT NULL,--定义部门表主键CONSTRAINT PK_部门表 PRIMARY KEY(部门编号));第1章Oracle 11g数据库系统--为员工表添加外键引用ALTER TABLE 员工表 ADD (CONSTRAINT FK_部门编号FOREIGN KEY (部门编号)REFERENCES 部门表 (部门编号));--为部门表添加外键引用ALTER TABLE 部门表 ADD (CONSTRAINT FK_部门经理FOREIGN KEY (部门经理)REFERENCES 员工表 (工号));代码使用DDL语句CREATE TABLE,创建了员工表和部门表,并指定了表列及列的数据类型,同时为每个表都创建了主键。
在创建了表之后,使用ALTER TABLE语句为表指定了表间的主外键关系。
说明:--表示SQL中的注释语句。
一旦创建好了表结构,数据库开发人员就可以使用DML语句来操纵这些表数据,比如下面的代码分别向部门表和员工表插入了一些数据:--张三是理财部的经理,他不属于任何部门INSERT INTO 员工表VALUES(100,'张三','San Zhang','老三',20,date'2011-01-01', null);--李四是财务部职员INSERT INTO 员工表 VALUES(101,'李四','Li Si','老四',20,date'2011-01-01', 100);--部门表INSERT INTO 部门表 VALUES(100,'财务部',100,'理财部',0);--让张三属于财务部UPDATE 员工表 SET 部门编号=100 WHERE 工号=100;上面的代码使用DML语句INSERT向表中插入了3条记录,最后使用了UPDATE语句对员工表中的记录进行了更新。