网站大量收购闲置独家精品文档,联系QQ:2885784924

数据库Schema两种含义.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库Schema两种含义 2010-09-01 17:07 数据库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与catalog简介 ??? 按照SQL标准的解释,在SQL环境下Catalog和Schema都属于抽象概念,可以把它们理解为一个容器或者数据库对象命名空间中的一个层次,主要 用来解决命名冲突问题。从概念上说,一个数据库系统包含多个Catalog,每个Catalog又包含多个Schema,而每个Schema又包含多个数 据库对象(表、视图、字段等),反过来讲一个数据库对象必然属于一个Schema,而该Schema又必然属于一个Catalog,这样我们就可以得到该 数据库对象的完全限定名称从而解决命名冲突的问题了;例如数据库对象表的完全限定名称就可以表示为:Catalog名称.Schema名称.表名称。这里 还有一点需要注意的是,SQL标准并不要求每个数据库对象的完全限定名称是唯一的,就象域名一样,如果喜欢的话,每个IP地址都可以拥有多个域名。 ??? 从实现的角度来看,各种数据库系统对Catalog和Schema的支持和实现方式千差万别,针对具体问题需要参考具体的产品说明书,比较简单而常用的实现方式是使用数据库名作为Catalog名,使用用户名作为Schema名,具体可参见下表: 表1 常用数据库 供应商 Catalog支持 Schema支持 Oracle 不支持 Oracle User ID MySQL 不支持 数据库名 MS SQL Server 数据库名 对象属主名,2005版开始有变 DB2 指定数据库对象时,Catalog部分省略 Catalog属主名 Sybase 数据库名 数据库属主名 Informix 不支持 不需要 PointBase 不支持 数据库名 ??? 最后一点需要注意的是Schema这个单词,它在SQL环境下的含义与其在数据建模领域中的含义是完全不同的。在SQL环境下,Schema是一组相关的 数据库对象的集合,Schema的名字为该组对象定义了一个命名空间,而在数据建模领域,Schema(模式)表示的是用形式语言描述的数据库的结构;简 单来说,可以这样理解,数据建模所讲的Schema也就是元数据保存在SQL环境下相应Catalog中一个Schema名叫 DEFINITION_SCHEMA下的表中,同时可以通过查询该Catalog中的另一个Schema名叫 INFORMATION_SCHEMA下的视图而获取,具体细节不再赘述。 ??? 另外我结合MySQL官方的MySQL administrater数据库管理工具理解一下所谓的schema,catalog: 图1 MySql ??? 点击那个catalogs,下面就出来了所有的database。想了一下,我这样来总结: ??? 数据库:指的是说MySQL(或者说Oracle等) ??? schema: 指的是说当偶create database caiceclb时,caiceclb就是一个schema ??? catalog: 指的是所有的database目录,就像上图显示的那样,将MySQL原来的(mysql,infomation_schema)及后来新建的的database的集合。 SQL Server 数据库 schema 一词的不同含义 我相信一些人在进入精彩的SQL Server世界时,有一些数据库的专业术语可能会导致一些概念的混淆。一个例子就是schema这个词的变化。 一般来说,schema 是指数据库表的组织和定义,它们同其它表的关系以及它们所包含的列。通俗点说,它就是数据库的设计。 在SQL Server 2000中,schema 是指数据库中的对象的拥有关系(表、视图、存储过程等),它稍微区别于定义一词。对数据库对象的拥有关系是非常重要的,因为对

文档评论(0)

jwjp043 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档