SQL语法与Oracle基本概念紧密相关,在为数众多的SQL命令中,大部分命令是围绕Oracle基本概念设计的。比如CREATE TABLE、ALTERTABLE、DROP TABLE这三个命令,围绕TABLE(表)这个概念来设计,用于定义TABLE的结构。类似的SQL命令还有很多很多。所以我们要掌握SQL命令,首先应理解Oracle的基本概念。
让我们从关系数据库最基本、同时也是最核心的概念开始,分析几个Oracle基本概念的由来及含义。
首先,为了在数据库中存放数据,Oracle定义了表。表是数据的集合,由行和列组成。
当一个表很大的时候(包含成千上万的行),为了提升数据检索的速度,Oracle引入了索引。索引是实现数据高效检索的基础,也是SQL调优的最基本手段。
表中包含行,不同的行代表不同的实体。行不允许相同,否则无法代表不同实体,这就是实体的完整性约束。为了实现完整性约束,Oracle引入了序列:序列用来在整个数据库范围内产生唯一的顺序编号。
关系数据库的基本目的是在不同的用户间共享数据。表级别的授权无法实现行粒度和列粒度的权限管理,为此Oracle引入了视图。视图对表的行和列进行帅选,实现了行粒度和列粒度的权限管理目的。
有时我们要频繁地从多个表检索数据。各个表的数据默认存放到不同的段中,这意味着要到不同的数据块获取数据。为了加快检索速度,Oracle把若干个表的行存放到相同的数据块,这就是簇。簇提高了多表关联的性能,Oracle内部的数据字典表设计就用到了簇。
有了表、索引、序列和视图之后,Oracle把这些对象聚合在一起,形成数据库。表和索引之类的东西最终会存放到磁盘,其存在形式就是数据库文件。
让我们思考一个问题:如果定义表时,直接把表关联到文件会有什么问题?答案很明显:如果数据文件位置发生变化,就得修改表的定义。为了解决此问题,Oracle引入了表空间。表空间是多个文件的集合,实现了数据库的逻辑表现与数据存储的分离,使之更易于管理。
大机构的数据很多,通常会分散到不同的数据库中。为了在不同数据库之间访问彼此的数据,Oracle引入了数据库链接。数据库链接是不同数据库间互相访问的通道。
如果应用程序访问了多个数据库,当某个库的部署发生变动时,如何避免对应用程序的代码做更改呢?和表空间类似,Oracle引入了同义词来解决该问题。同义词是模式对象的别名,提供了数据独立性和位置透明性的功能
上述概念是Oracle早期版本就具有的。在后续各个版本中,Oracle不断补充新概念,功能不断增强,Oracle数据库管理系统就像一棵树一样茁壮成长,枝繁叶茂。
上面简单地引出了几个Oracle基本概念,对于概念本身的阐述只是点到为止,未做深入解释。为了准确理解这些概念,我们看看Oracle是如何定义这些概念的:
表(table):Basic unit of data storage in Oracle Database. Data in tables is storedin rows and columns.
索引(index):Optional schema object associated with a nonclustered table, tablepartition, or table cluster. In some cases indexes speed data access.
序列(sequence):A schema object that generates a serial list of unique numbers for tablecolumns.
视图(view):A custom-tailored presentation of the data in one or more tables. Theviews do not actually contain or store data, but derive it from the tables onwhich they are based.
簇(cluster):Optional structure for storing table data. Clusters are groups of one ormore tables physically stored together because they share common columns andare often used together. Because related rows are physically stored together,disk access time improves.
数据库(database):Organized collection of data treated as a unit. The purpose of adatabase is to store and retrieve related information. Every Oracle databaseinstance accesses only one database in its lifetime.
表空间(tablespace):A database storage unit that groups related logical structures together.The database data files are stored in tablespaces.
数据库链接(database link):A named schema object that describes a pathfrom one database to another. Database links are implicitly used when areference is made to a global object name in a distributed database.
同义词(synonym):An alias for a schema object. You can use synonyms to provide dataindependence and location transparency.
注:以上内容来自Oracle手册《DatabaseConcepts》。
要注意的是,应结合实际例子来理解这些概念,而不能只停留在文字上。Oracle在不同版本中对某个概念的定义可能不同,若想透彻理解其本质,应仔细阅读《Database Concepts》相关内容。很多DBA反复阅读该文档,就是为了把握概念的本质。
itlife365 分享 Oracle SQL命令通解三步曲 第一步 了解Oracle基本概念 end