1. schema 与tablespace
schema:
(来源网络)
数据库Schema有两种含义,一种是概念上的Schema,指的是一组DDL语句集,该语句集完整地描述了数据库的结构。还有一种是物理上的Schema,指的是数据库中的一个名字空间,它包含一组表、视图和存储过程等命名对象。物理Schema可以通过标准SQL语句来创建、更新和修改。例如以下SQL语句创建了两个物理Schema:
create schema SCHEMA_A;
create table SCHEMA_A.CUSTOMERS(ID int not null,……);
create schema SCHEMA_B;
create table SCHEMA_B.CUSTOMERS(ID int not null,……);
简单的说:就是一个数据库用户所拥有的数据库的对象。
比如scott用户建立了表,索引,视图,存储过程等对象,那么这些对象就构成了schema scott
==== 摘自网络的解释 ====
在一个数据库中可以有多个应用的数据表,这些不同应用的表可以放在不同的schema之中,同时,每一个schema对应一个用户,不同的应用可以以不同的用户连接数据库,这样,一个大数据库就可以根据应用把其表分开来管理。 不 同的schema之间它们没有直接的关系,不同的shcema之间的表可以同名,也可以互相引用(但必须有权限),在没有操作别的schema的操作根权 下,每个用户只能操作它自己的schema下的所有的表。不同的schema下的同名的表,可以存入不同的数据(即schema用户自己的数据)。把schem翻译成 “方案”还是比较合理的(我个人倒是一直把它翻成模式)。
====我的理解 ====
原来的理解是数据库下面就是数据表了,现在的理解是在数据库和数据表之间还有个schema,我是以仓库做参考来理解的,数据库相当于仓库,schema则相当于仓库里面的库房(或者说房间),而表相当于货架(货架上一行行的就当是记录吧,呵呵)。如果我是仓库管理员,那么就会有所有仓库里库房的钥匙(即管理整个数据库的权限),那么如果我想把其中的某个库房给其他人管的话,我只需要把这个库房的门钥匙给他就成(即管理schema的权限)。如果只是看的话,我可以给他打开这个库房门上小窗的钥匙(想想电影里经常出现的给牢里犯人送饭的那个小窗,:P)。
schema 和 user 一般是一致的,建立一个 user 后即可得到一个 schema,如:HR 用户建立后便有 HR 方案,接下来建立表、索引等数据库对象时,要指定其属于哪个 schema,也要指定其存放在哪个 tablespace 里。
也可以这样理解,schema 是数据库对象的逻辑归属和分类,而 tablespace 是数据库对象的物理和实际存放位置。
2. 元数据
元数据是对数据资源的描述,英文名称是“Metadata”,
3. 关系型数据库