导航:首页 > 数据处理 > 数据库的schema是什么

数据库的schema是什么

发布时间:2022-05-01 13:31:39

1. 数据库中Schema和Database有什么区别

首先我来做一个比喻,什么是Database,什么是Schema,什么是Table,什么是列,什么是行,什么是User?我们可以可以把
Database看作是一个大仓库,仓库分了很多很多的房间,Schema就是其中的房间,一个Schema代表一个房间,Table可以看作是每个
Schema中的床,Table(床)就被放入每个房间中,不能放置在房间之外,那岂不是晚上睡觉无家可归了J。,然后床上可以放置很多物品,就好比
Table上可以放置很多列和行一样,数据库中存储数据的基本单元是Table,现实中每个仓库放置物品的基本单位就是床,
User就是每个Schema的主人,(所以Schema包含的是Object,而不是User),其实User是对应与数据库的(即User是每个对应
数据库的主人),既然有操作数据库(仓库)的权利,就肯定有操作数据库中每个Schema(房间)的权利,就是说每个数据库映射的User有每个
Schema(房间)的钥匙,换句话说,如果他是某个仓库的主人,那么这个仓库的使用权和仓库中的所有东西都是他的(包括房间),他有完全的操作权,可以
扔掉不用的东西从每个房间,也可以放置一些有用的东西到某一个房间,呵呵,和现实也太相似了吧。我还可以给User分配具体的权限,也就是他到某一个房间
能做些什么,是只能看(Read-Only),还是可以像主人一样有所有的控制权(R/W),这个就要看这个User所对应的角色Role了,至于分配权

2. 数据库schema

在 SQL Server 2000 和早期版本中,数据库可以包含一个名为“架构(schema)”的实体,但此实体实际上是数据库用户。
在 SQL Server 2005 和 SQL Server 2008 中,架构是指包含表、视图、过程等的容器。它位于数据库内部,而数据库位于服务器内部。这些实体就像嵌套框放置在一起。服务器是最外面的框,而架构是最里面的框。
在 SQL Server 2005 和 SQL Server 2008 中,提倡"用户和架构分离",即一个用户可以对应多个架构,一个架构也可以对应多个用户,所以架构和user就不再需要同名了.系统可以赋予某个user访问某个架构的权限,也可以取消该权限.

3. 在数据库中,schema,catalog分别指的是什么

数据库 Catalog Schema 概念解读

按照SQL标准的解释,在SQL环境下Catalog和Schema都属于抽象概念,可以把它们理解为一个容器或者数据库对象命名空间中的一个层次,主要用来解决命名冲突问题。从概念上说,一个数据库系统包含多个Catalog,每个Catalog又包含多个Schema,而每个Schema又包含多个数据库对象(表、视图、字段等),反过来讲一个数据库对象必然属于一个Schema,而该Schema又必然属于一个Catalog,这样我们就可以得到该数据库对象的完全限定名称从而解决命名冲突的问题了;例如数据库对象表的完全限定名称就可以表示为:Catalog名称.Schema名称.表名称。

详细信息如下:

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 in running server, you need (schema name + object name)

In PostgreSQL:

server instance == db cluster: all data managed by same execution engine

database == catalog: single database within db cluster, isolated from other databases in same db cluster

schema :namespace within database.It allows many users to use one database without interfering with each other.

user == named account: who can connect to database, own and use objects in each allowed database separately

to identify any object in running server, you need (database name + schema name + object name)

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 can connect to server and use (but can not own - no concept of ownership) objects in one or more databases

to identify any object in running server, you need (database name

4. 数据库中Schema和Database有什么区别

在MySQL中创建一个Schema好像就跟创建一个Database是一样的效果,在SQL Server和Orcal数据库中好像又不一样. 目前我只能理解,在mysql中 schema<==>database。

数据库中User和Schema的关系
假如我们想了解数据库中的User和Schema究竟是什么关系,首先必须了解一下数据库中User和Schema到底是什么概念。

在SQL Server2000中,由于架构的原因,User和Schema总有一层隐含的关系,让我们很少意识到其实User和Schema是两种完全不同的概念,不过在SQL Server2005中这种架构被打破了,User和Schema也被分开了。


首先我来做一个比喻,什么是Database,什么是Schema,什么是Table,什么是列,什么是行,什么是User?我们可以可以把
Database看作是一个大仓库,仓库分了很多很多的房间,Schema就是其中的房间,一个Schema代表一个房间,Table可以看作是每个
Schema中的床,Table(床)就被放入每个房间中,不能放置在房间之外,那岂不是晚上睡觉无家可归了J。,然后床上可以放置很多物品,就好比
Table上可以放置很多列和行一样,数据库中存储数据的基本单元是Table,现实中每个仓库放置物品的基本单位就是床,
User就是每个Schema的主人,(所以Schema包含的是Object,而不是User),其实User是对应与数据库的(即User是每个对应
数据库的主人),既然有操作数据库(仓库)的权利,就肯定有操作数据库中每个Schema(房间)的权利,就是说每个数据库映射的User有每个
Schema(房间)的钥匙,换句话说,如果他是某个仓库的主人,那么这个仓库的使用权和仓库中的所有东西都是他的(包括房间),他有完全的操作权,可以
扔掉不用的东西从每个房间,也可以放置一些有用的东西到某一个房间,呵呵,和现实也太相似了吧。我还可以给User分配具体的权限,也就是他到某一个房间
能做些什么,是只能看(Read-Only),还是可以像主人一样有所有的控制权(R/W),这个就要看这个User所对应的角色Role了,至于分配权
限的问题,我留在以后单独的blog中详述。比喻到这里,相信大家都清楚了吧。

在SQL Server2000中,假如我们在某一个数据库中创建了用户Bosco,按么此时后台也为我们默认地创建了默认Schema 【Bosco】。Schema的名字和User的名字相同,这也是我们分不清楚用户和Schema的原因。


在SQL Server2005中,为了向后兼容,当你用sp_adser 存储过程创建一个用户的时候,SQL
Server2005同时也创建了一个和用户名相同的Schema,然而这个存储过程是为了向后兼容才保留的,我们应该逐渐熟悉用新的DDL语言
Create User和Create Schema来操作数据库。在SQL Server2005中,当我们用Create
User创建数据库用户时,我们可以为该用户指定一个已经存在的Schema作为默认Schema,如果我们不指定,则该用户所默认的Schema即为
dbo Schema,dbo
房间(Schema)好比一个大的公共房间,在当前登录用户没有默认Schema的前提下,如果你在大仓库中进行一些操作,比如Create
Tabe,如果没有指定特定的房间(Schema),那么你的物品就只好放进公共的dbo房间(Schema)了。但是如果当前登录用户有默认的
Schema,那么所做的一切操作都是在默认Schema上进行(比如当前登录用户为login1,该用户的默认Schema为login1,那么所做的
所有操作都是在这个login1默认Schema上进行的。实验已经证明的确如此)。估计此时你会有一点晕,为什么呢?我刚才说dbo是一个
Schema,但是你可以在数据库中查看到,dbo同时也是一个user,晕了吧,呵呵。

在SQL Server2005中创建一个数据库的时候,会有一些Schema包括进去,被包括进去的Schema有:dbo,INFORMATION_SCHEMA, guest,sys等等(还有一些角色Schema,不提了,有晕了)。


我在上文中已经提到了,在SQL Server2005中当用存储过程sp_adser创建一个user时,同时SQL
Server2005也为我们创建了一个默认的和用户名相同的Schema,这个时候问题出来了,当我们create table
A时,如果没有特定的Schema做前缀,这个A表创建在了哪个Schema上,即进入了哪个房间?答案是:

1.如果当前操作数据库的用户(可以用Select current_user查出来)有默认的Schema(在创建用户的时候指定了),那么表A被创建在了默认的Schema上。


2.如果当前操作数据库的用户没有默认的Schema(即在创建User的时候默认为空),但是有一个和用户名同名的Schema,那么表A照样被创建
在了dbo
Schema上,即使有一个和用户名同名的Schema存在,由于它不是该用户默认的Schema,所以创建表的时候是不会考虑的,当作一般的
Schema来处理,别看名字相同,可是没有任何关系哦。

3.如果在创建表A的时候指定了特定的Schema做前缀,则表A被创建在了指定的 Schema上(有权限吗?)


现在问题又出来了,在当前操作数据库的用户(用select
current_user可以查看到,再次强调)没有默认Schema的前提下,当我们用Create table A语句时,A表会去寻找dbo
Schema,并试图创建在dbo Schema上,但是如果创建A表的用户只有对dbo
Schema的只读权限,而没有写的权限呢?这个时候A表既不是建立不成功,这个就是我以后会提及到的Login,User,
Role和Schema四者之间的关系。在这里,为了避免混淆和提高操作数据库的速度(在少量数据范围内,对我们肉眼来说几乎看不到差异),我们最好每次
在操作数据库对象的时候都显式地指定特定的Schema最为前缀。

现在如果登录的用户为Sue,该用户有一个默认Schema也为Sue,那么如果现在有一条查询语句为Select * from mytable, 那么搜寻每个房间(Schema)的顺序是怎样的呢?顺序如下:

1. 首先搜寻sys.mytable (Sys Schema)

2. 然后搜寻Sue.mytable (Default Schema)

3. 最后搜寻 dbo.mytable (Dbo Schema)

执行的顺序大家既然清楚了,那么以后在查询数据库表中的数据时,最好指定特定的Schema前缀,这样子,数据库就不用去扫描Sys Schema了,当然可以提高查询的速度了。

另外需要提示一下的是,每个数据库在创建后,有4个Schema是必须的(删都删不掉),这4个Schema为:dbo,guest,sys和INFORMATION_SCHEMA,其余的Schema都可以删除。

5. schema到底有什么用

数据库中的Schema,为数据库对象的集合,一个用户一般对应一个schema。

官方定义如下:
A schema is a collection of database objects (used by a user.).
schema objects are the logical structures that directly refer to the database’s data.
A user is a name defined in the database that can connect to and access objects.
schemas and users help database administrators manage database security.

从定义中可以看出schema为数据库对象的集合,为了区分各个集合,需要给这个集合起个名字,这些名字就是在企业管理器的方案下看到的许多类似用户名的节点,这些类似用户名的节点其实就是一个schema,schema里面包含了各种对象如tables views sequences stored proceres synonyms indexes clusters and database links。

一个用户一般对应一个schema 该用户的schema名等于用户名,并作为该用户缺省schema。这也就是在企业管理器的方案下看到schema名都为数据库用户名的原因。oracle数据库中不能新创建一个schema,要想创建一个schema,只能通过创建一个用户的方法解决(oracle中虽然有create schema语句,但是并不是用来创建一个schema的),在创建一个用户的同时为这个用户创建一个与用户名同名的schema并作为该用户的缺省schema。即schema的个数同user的个数相同,而且schema名字同user名字一一 对应并且相同,所以可以称schema为user的别名,虽然这样说并不准确,但是更容易理解一些。

一个用户有一个缺省的schema,其schema名就等于用户名,当然一个用户还可以使用其他的schema。如果访问一个表时,没有指明该表属于哪一个schema中的,系统就会自动给表上加上缺省的sheman名。比如在访问数据库时,访问scott用户下的emp表,通过select from emp 其实,这sql语句的完整写法为select from scott.emp。在数据库中一个对象的完整名称为schema.object,而不属user.object。类似如果在创建对象时不指定该对象的schema,在该对象的schema为用户的缺省schema。这就像一个用户有一个缺省的表空间,但是该用户还可以使用其他的表空间,如果在创建对象时不指定表空间,则对象存储在缺省表空间中,要想让对象存储在其他表空间中,需要在创建对象时指定该对象的表空间。

6. 数据库 SQL 关系模型 中的模式 schema 是个什么概念怎么理解三级模式什么意思跪求解释,一定采纳

schema是模式的意思指的是表的集合就是创建数据库的意思.但学术味太重.因此大家都使用.CERATE DATABASE...的形式来创建数据库.

三级模式指的是.外模式.就是你查询访问得到的数据就是外模式.
逻辑模式.就是表格建立规则.如何构成的等.
物理模式。....就是数据在硬盘上的存储方式.比如存储大小等.何种存储方式.

7. 数据库中的SCHEMA如何理解

schema是模式的意思。一个schema就相当于一套表、试图。

8. oracle schema是什么意思

Schema是Oracle中一个重要的概念,很容易跟User概念混淆。从下面多个角度来介绍:
1、首先来看一下原始的英文定义:
A schema is a collection of database objects
(used by a user). Schema objects are the logical
structures that directly refer to the database’s data.
A
user is a name defined in the database that can connect to and
access objects.
Schemas and users help database
administrators manage database
security.

2、从定义中可知Schema为数据库对象的集合,为了区分各个集合,认为的给这个集合起个名字,也就是通常在企业管理器的方案下看到的许多类似用户名的节点,节点也就是一个Schema,其包含了各种数据对象:如tables,
views, sequences, stored proceres, synonyms, indexes, clusters, and database
links。

3、Oracle里Schema几乎和user/用户是通用的。Schema是指一组数据库Object
(比如:表,视图,包,序列,等等),而这些Object是属于用户的,
属于一个用户的所有Object就叫Schema。

4、User即Oracle中的用户,是控制权限的,和所有系统的中用户概念类似,用户所持有的是系统的权限及资源;而Schema所涵盖的是各种对象,它包含了表、函数、包等等对象的“所在地”,并不包括对他们的权限控制。

5、举例说明如下:
一个房子里面放满了家具,对这些家具有支配权的是房子的主人(User),而不是房子(Schema)。 你可以也是一个房子的主人(User),拥有自己的房子(Schema)。可以通过alter session的方式进入别人的房子。 这个时候,你可以看到别人房子里的家具(desc)。 如果你没有特别指定的话,你所做的操作都是针对你当前所在房子中的东西。
至于你是否有权限使用(select)、搬动(update)或者拿走(delete)这些家具就看这个房子的主人有没有给你这样的权限了,或者你是整个大厦(DB)的老大(DBA)。

9. 数据挖掘中的schema是什么意思

schema模式,是一组对象(如表,视图。。)的集合。
一般一个user对应一个模式
如scott这个user的模式也是scott,它下面的表emp
别人要用的时候,要写模式.表名 scott.emp

schema类似于java中包的概念,起区分的左右

阅读全文

与数据库的schema是什么相关的资料

热点内容
用身份证打疫苗信息都存在哪里 浏览:383
招商加盟区域代理如何定价 浏览:825
电子信息类专业要学习哪些课程 浏览:216
我做日化怎么快速打开本地市场 浏览:513
防汛日常应该注意哪些信息 浏览:143
电力技术课怎么讲 浏览:825
财产分割代理律师费是多少 浏览:248
如何面对信息社会海量冲击 浏览:393
上海什么产品好做外贸 浏览:153
数据中的精确值是多少 浏览:314
如何确定两列相同数据 浏览:107
怎么样快速记牢自己交易模型 浏览:644
多少金额案子是适用简易程序 浏览:576
对牛弹琴是哪个小程序 浏览:116
潢川县东关大市场属于哪个办事处 浏览:716
5g技术带来哪些市场机会 浏览:161
代理ip怎么改密码 浏览:606
抱初生婴儿有哪些产品 浏览:361
日本关于健康设备产品有哪些 浏览:38
沈阳屋顶彩钢建材市场有哪些 浏览:299