第3章 关系数据库标准语言SQL
3.1 SQL概述
SQL(Structured Quetry Language,结构化查询语言),1974年由Boyce和Chamberlin提出,最初叫Sequel,并在IBM公司研制的关系数据库管理系统原型System R上实现。
各个公司开发的关系数据库管理系统都支持SQL标准,都采用SQL命令集作为该系统的数据操作语言。
目前,没有一个数据库管理系统能够支持SQL标准的所有概念和特性。许多软件厂商对SQL基本命令集还进行了不同程度的扩充和修改,又可以支持标准以外的一些功能和特性。因此,在使用具体系统时要查询各产品的用户手册。
SQL的特点:
- 综合统一,SQL集多种语言功能于一体,语言风格统一;
- 高度非过程化,只需提出“做什么”,无需指出“怎么做”;
- 面向集合的操作方式;
- 以同一种语法结构提供两种使用方法,SQL既是自含式语言,又是嵌入式语言;
- 语言简洁,易学易用。
支持SQL的关系数据库管理系统同样支持关系数据库三级模式结构。 - 外模式对应于视图和部分基本表;
- 模式对应于基本表;
- 内模式对应于存储文件。
SQL可以操作视图,也可以操作基本表。
Oracle数据库系统是没过Oracle公司(甲骨文)提供的以分布式数据库为核心一组软件产品,是目前最流行的客户端/服务器(Client/Server)或浏览器/服务器(B/S)体系结构的数据库之一。
Oracle数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库。它实现了分布式处理的功能。
针对不同的开发和部署环境,Oracle 11g分为3个版本: - 标准版:适用于工作组或部门级别的应用程序;
- 企业版:适用于高端应用程序的数据管理,如大容量的联机事物处理环境、查询密集型的数据仓库和要求较高的Internet应用程序;
- 个人版:只提供基本数据库管理服务,适用于单用户开发和部署。
Oracle总体结构: - 完整的Oracle数据库系统通常由两个部分组成,实例(INSTANCE)和数据库(DATABASE)
- 实例是由一组Oracle后台进程/线程以及在服务器分配的共享内存区。
- 数据库是由一系列物理文件的集合(数据文件,控制文件联机日志,参数文件等)。
- ORACLE实例=进程+进程所使用的内存(SGA);
- 实例是一个临时性的东西,你也可以认为它代表了数据库某一时刻的状态!
- 数据库=重做日志文件+控制文件+数据文件+临时文件;
- 数据库是永久的,是一个文件的集合。
ORACLE实例和数据库之间的关系
1.临时性和永久性;
2.实例可以在没有数据文件的情况下单独启动startupnomount,通常没什么意义;
3.一个实例在其生存期内只能装载(alter database mount)和打开(alter database open)一个数据库;
一个数据库可被许多实例同时装载和打开(即RAC),RAC环境中实例的作用能够得到充分的体现。
3.2 Oracle逻辑结构
Oracle逻辑结构是从用户角度来看数据库。从逻辑结构上讲,Oralce包括表空间(Tablespace)、段(Segments)、区(Extents)、数据块(Data Blocks)、以及模式(Schema)。数据库由若干个表空间组成,表空间又由若干个段组成,段由区组成,区又又数据块组成。
数据块
数据块是Oracle用来管理存储空间的最小单元,也是执行数据库输入输出操作时的最小单位。
相对应地,操作系统执行输入输出操作的最小单位为一个操作系统块的大小。
在操作系统中,执行I/O操作是以操作系统块为单位,而在Oracle中,执行的I/O操作是以Oracle数据块为单位。
区
区是由一系列物理上连续存放的数据块所构成的Oracle存储结构,由一个或多个数据块组成一个区。
Oracle以区为单位为数据库分配存储空间,所以区是Oralce分配磁盘空间的最小单位。
段
段是由一系列区组成的,她也不再是存储空间的分配单位,而是一个独立的逻辑存储结构。
表空间
表空间是数据库的逻辑划分,一个Oracle数据库由若干个表空间组成。
一个表空间对应于磁盘上的一个或多个数据文件。
一个Oracle数据库默认有5个表空间:System、SYSAUX、Users、Undo、Temp。
表空间介绍
System表空间
一个Oracle数据库至少有一个表空间,既System表空间。
当数据库创建时,必须指明System表空间的数据文件的特征,如数据文件名称、大小。
在System表空间中存储了Oracle自身的内部结构信息,全部的PL/SQL程序的源代码和编译后的代码等。
SYSAUX表空间
是 System表空间的辅助表空间,许多数据库的工具和可选组件将其对象存储在SYSAUX表空间内,它是许多数据库工具和可选组件的默认表空间。
Users表空间
用于存储用户的数据。
Undo表空间
用于事务的回滚、撤销。
Temp表空间
用于存放Oracle运行中需要临时存放的数据,如排序的中间结果等。
除了这些默认的表空间之外,用户还可以创建属于自己的表空间。
3.3 Oracle物理结构
物理结构就是我们所熟悉的一些物理文件,这些文件是数据库的载体,数据库的所有数据,包括系统数据都存放在这些物理文件中。
这些物理文件中有:数据文件、控制文件、重做日志文件等。
数据文件包含全部数据库数据。
控制文件包含了数据库物理结构的重要信息,通过在加载数据库时读取控制文件,Oracle才能找到自己所需数据文件、重做日志文件等。
重做日志文件保持所有数据库事物的日志,当数据库被破坏时,用重做日志文件恢复数据库。