码迷,mamicode.com
首页 > 数据库 > 详细

sql-schema与catalog

时间:2015-06-23 23:09:01      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:

 schema: 指的是说当偶create database caiceclb时,caiceclb就是一个schema

 catalog: 指的是所有的database目录,就像上图显示的那样,将MySQL原来的(mysql,infomation_schema)及后来新建的的database的集合。

catalog,数据库名,schema,表名,
服务器的本地名称.数据库名.dbo.表名

schema: 指的是说当用户create database ****时,****就是一个schema

 catalog:指的是所有的database目录,将MySQL原来的(mysql,infomation_schema)及后来create database ****创建的的database的集合。

schema:    (直接翻译)模式;计划;图解;概要   我自己的理解在数据库里:表空间

catalog:    (直接翻译) 目录 产品目录 编目  

schema:

指的是说当偶create database caiceclb时,caiceclb就是一个schema

在一个数据库中可以有多个应用的数据表,这些不同应用的表可以放在不同的schema之中,同时,每一个schema对应一个用户,不同的应用可以以不同的用户连接数据库,这样,一个大数据库就可以根据应用把其表分开来管理。
不同的schema之间它们没有直接的关系,不同的shcema之间的表可以同名,也可以互相引用(但必须有权限),在没有操作别的schema的操作根权下,每个用户只能操作它自己的schema下的所有的表。不同的schema下的同名的表,可以存入不同的数据(即schema用户自己的数据。

catalog: 指的是所有的database目录

 

两者关系:

从概念上说,一个数据库系统包含多个 Catalog,每个Catalog又包含多个Schema,而每个Schema又包含多个数据库对象(表、视图、字段等),反过来讲一个数据库对象必然属于一个Schema,而该Schema又必然属于一个Catalog,这样我们就可以得到该数据库对象的完全限定名称从而解决命名冲突的问题了;例如数据库对象表的完全限定名称就可以表示为:Catalog名称.Schema名称.表名称。这里还有一点需要注意的是,SQL标准并不要求每个数据库对象的完全限定名称是唯一的,就象域名一样,如果喜欢的话,每个IP地址都可以拥有多个域名

在Oracle中,一个用户就是一个Schema,表都是建立在Schema中的,也可以理解为每个用户拥有不同的表。一个用户想访问另外一个用户,也就是另外一个schema的表的时候,可以用 username.tablename的形式来访问,完全不需要分布式事务。
 
 
当你在 SQL Server 里面, 使用 create database  创建一个数据库以后。
你可以不必额外的去创建 schema,因为 SQL Server 会 自动的创建一个 名字叫  dbo  的 schema

 

sql-schema与catalog

标签:

原文地址:http://www.cnblogs.com/hwaggLee/p/4596393.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!