最开始的文件系统,只有一个文件夹,所有文件都扔进去,这个时候会有一个限制:文件不能有重复的命名,但后来文件系统发明了“文件夹嵌套”,只要不在同一个目录下,“文件名”或者“文件夹名字”是可以使用同样的名字的
数据库都会做这样的划分,根据最正宗的SQL标准,是这样划分的:Cluster > Catalog > Schema > Table
但并不是所有的“数据库供应商”都按照这个标准,比如MySQL的show databases命令,却发现infromation_schema都出来了,因为对于MySQL而言,“database 数据库” 和 “schema 模式” 是同一件事,所以MySQL可以拥有很多个数据库,但是对于Oracle,却只有一个orcl数据库。具体区分如下表
In MySQL:
-
server instance == not identified with catalog, just a set of databases
-
database == schema == catalog == a namespace within the server.
-
user == named account, who is can connect to server and use (but can not own - no concept of ownership) objects in one or more databases
-
to identify any object you need (database name + object name)
In Oracle:
-
server instance == database == catalog == all data managed by same execution engine
-
schema == namespace within database, identical to user account
-
user == schema owner == named account, identical to schema, who can connect to database, who owns the schema and use objects possibly in other schemas
-
to identify any object you need (schema name + object name)
(责任编辑:好模板) |