数据库中的schema

数据库中的schema数据库中的schema

大家好,又见面了,我是你们的朋友全栈君。

         研究多租户的过程中涉及到了schema的概念,具体是什么呢?

schema的官方定义为:

schema is a collection of database objects (used by auser.). 
Schema objects are the logical structures thatdirectly refer to the databases data.
user is a name defined in the databasethat can connect to and access objects.
Schemas and users help database administratorsmanage database security.

       从定义我们可以看出:schema就是数据库对象的集合,这个集合包含了各种对象如:表、视图、存储过程、索引等。为了区分不同的集合,就需要给不同的集合起不同的名字,默认情况下一个用户对应一个集合,用户的schema名等于用户名,并作为该用户缺省schema。所以schema集合看上去像用户名。
       
如果把database看作是一个仓库,仓库很多房间(schema),一个schema代表一个房间,table可以看作是每个房间中的储物柜,user是每个schema的主人,有操作数据库中每个房间的权利,就是说每个数据库映射的user有每个schema(房间)的钥匙。

       默认情况下一个用户对应一个集合,用户的schema名等于用户名,并作为该用户缺省schema。所以schema集合看上去像用户名。访问一个表时,如果没有指明该表属于哪个schema,系统会自动加上缺省的schema。一个对象的完整名称为schema.object,而不属user.object

       MySQL中创建一个Schema和创建一个Database的效果好像是一样的,但是在sqlserverorcal数据库中效果又是不同的。
       
SQL Server 2000中,userschema总有一层隐含的关系,让我们很少意识到其实userschema是两种完全不同的概念,假如我们在某一数据库中创建了用户Bosco,那么此时后台也为我们默认的创建了schemaBosco】,schema的名字和user的名字相同。
       
SQL Server 2005中,为了向后兼容,当用sp_adduser存储过程创建一个用户的时候,sqlserver2005同时也创建了一个和用户名相同的schema,然而这个存储过程是为了向后兼容才保留的,当我们用create user创建数据库用户时,我们可以用该用户指定一个已经存在的schema作为默认的schema,如果我们不指定,则该用户所默认的schema即为dbo schemadbo房间(schema)好比一个大的公共房间,在当前登录用户没有默认schema的前提下,如果你在大仓库中进行一些操作,比如create table,如果没有制定特定的房间(schema),那么你的物品就只好放进公共的dbo房间(schema)了。但是如果当前登录用户有默认的schema,那么所做的一切操作都是在默认的schema上进行。
       
Oracle数据库中不能新建一个schema,要想创建一个schema,只能通过创建一个用户的方法解决,在创建一个用户的同时为这个用户创建一个与用户名同名的schem并作为该用户的缺省shcema。即schema的个数同user的个数相同,而且schema名字同user名字一一 对应并且相同。

 

              摘自《数据库中Schema(模式)概念的理解》

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/105690.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 自定义progressbar样式_样式

    自定义progressbar样式_样式android ProgressBar 样式讲解

  • javascript 跳转_iframe跳转另一个页面

    javascript 跳转_iframe跳转另一个页面 按钮式:    链接式:  返回上一步  ”>返回上一步  直接跳转式:  window.location.href=http://www.9ba.cn;  开新窗口:  云上的日子 

  • Microsoft Office 2007 中文专业版密钥

    Microsoft Office 2007 中文专业版密钥MicrosoftOffice2007中文专业版(微软原版)正版密钥MicrosoftOfficeVisio2007简体中文专业版:简介:    便于IT和商务专业人员就复杂信息、系统和流程进行可视化处理、分析和交流。使用具有专业外观的OfficeVisio2007图表,可以促进对系统和流程的了解,深入了解复杂信息并利用这些知识做出更好的业务决策。迅雷下载    …

  • DB破解(暗黑破坏神辅助)使用方法「建议收藏」

    DB破解(暗黑破坏神辅助)使用方法「建议收藏」下载网址:http://www.mochafuzhu.com/forum.php?mod=forumdisplay&fid=57开始请先在网站里下载运行环境并安装,然后下载辅助。(Q群:528411948)1、首先,一定要先 启动游戏,注意!辅助的路径千万不要有中文的目录,否则会造成辅助自动退出的问题。然后解压下载好辅助后,我们得到以下画面,以管理员身份运行打开。(如果不能打开请检…

  • matlab图像处理基础「建议收藏」

    matlab图像处理基础「建议收藏」1、MATLAB中图象数据的读取A、imread   imread函数用于读入各种图象文件,其一般的用法为          [X,MAP]=imread(‘filename’,‘fmt’)其中,X,MAP分别为读出的图象数据和颜色表数据,fmt为图象的格式,filename为读取的图象文件(可以加上文件的路径)。例:[X,MAP]=imread(’flowers.t

  • zuul网关有哪些作用_springcloud注册中心

    zuul网关有哪些作用_springcloud注册中心zuul一般有两大作用,1是类似于Nginx的网址重定向,但zuul的重定向的一般是整个springcloud里在Eureka注册中心的模块.zuul:ignored-services:’*’sensitiveHeaders:Access-Control-Allow-Originignored-headers:Access-Control-Allow-Credentials,Access…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号