当前位置:网站首页>数据库中的schema
数据库中的schema
2022-08-10 09:39:00 【全栈程序员站长】
大家好,又见面了,我是你们的朋友全栈君。
研究多租户的过程中涉及到了schema的概念,具体是什么呢?
schema的官方定义为:
A schema is a collection of database objects (used by auser.). Schema objects are the logical structures thatdirectly refer to the database’s data. A 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的效果好像是一样的,但是在sqlserver和orcal数据库中效果又是不同的。 在SQL Server 2000中,user和schema总有一层隐含的关系,让我们很少意识到其实user和schema是两种完全不同的概念,假如我们在某一数据库中创建了用户Bosco,那么此时后台也为我们默认的创建了schema【Bosco】,schema的名字和user的名字相同。 在SQL Server 2005中,为了向后兼容,当用sp_adduser存储过程创建一个用户的时候,sqlserver2005同时也创建了一个和用户名相同的schema,然而这个存储过程是为了向后兼容才保留的,当我们用create user创建数据库用户时,我们可以用该用户指定一个已经存在的schema作为默认的schema,如果我们不指定,则该用户所默认的schema即为dbo schema,dbo房间(schema)好比一个大的公共房间,在当前登录用户没有默认schema的前提下,如果你在大仓库中进行一些操作,比如create table,如果没有制定特定的房间(schema),那么你的物品就只好放进公共的dbo房间(schema)了。但是如果当前登录用户有默认的schema,那么所做的一切操作都是在默认的schema上进行。 在Oracle数据库中不能新建一个schema,要想创建一个schema,只能通过创建一个用户的方法解决,在创建一个用户的同时为这个用户创建一个与用户名同名的schem并作为该用户的缺省shcema。即schema的个数同user的个数相同,而且schema名字同user名字一一 对应并且相同。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/105690.html原文链接:https://javaforall.cn
边栏推荐
猜你喜欢

【Enterprise Architecture】Agile and Enterprise Architecture: Strategic Alliance

关于编程本质那些事

「技术选型」工作流引擎哪家强?首席架构帮你挑

Vivado时序约束中Tcl命令的对象及属性

shell------ commonly used gadgets, sort, uniq, tr, cut

Shell functions and arrays

PostgreSQL 2022 发展现状:13 个非 psql 工具

「业务架构」TAGAF建模:业务服务/信息图

Nvidia's gaming graphics card revenue plummets / Google data center explosion injures 3 people / iPhone battery percentage returns... More news today is here...

BUUCTF problem solving PWN 】 【 record (4-6 pages continuously updated)
随机推荐
Basic concepts of concurrency, operations, containers
初识Flink 完整使用 (第一章)
2022 首期线下 Workshop!面向应用开发者们的数据应用体验日来了 | TiDB Workshop Day
shell之函数和数组
shell------ commonly used gadgets, sort, uniq, tr, cut
原型和原型链
Excel draws statistical graphs
CSDN21天学习挑战赛——多态(05)
mysql千万级别数据库优化
FPGA时钟篇(一) 7系列的时钟结构
凭借这份阿里架构师的万字面试手册,逆风翻盘,斩获阿里offer
LCD模块如何建立联系分析
俄罗斯宣布临时禁止进口摩尔多瓦植物产品
亚信AntDB数据库有啥业务应用场景和应用案例?
Chapter 3 Search and Graph Theory (3)
go web之cookie
Guo Jingjing's personal chess teaching, the good guy is a robot
FPGA时钟篇(二) 7系列clock region详解
Lasso regression (Stata)
Flink快速上手 完整使用 (第二章)