数据库中数据集合的概念区分

举报
yd_85921758 发表于 2017/09/29 15:56:16 2017/09/29
【摘要】 本文主要介绍数据库集合的概念区别

在SQL标准中

一个计算机可以安装多个cluster

这里的cluster不是指硬件上的多个机器的集合,而是指一个机器(数据库服务器)上多个数据库的集合。因而可以将一个数据库服务器看作一个cluster。

一个cluster有多个catalog

catalog其实就是我们平常意义上所指的数据库,即许多表数据的集合。

一个catalog有多个schema

schema即表的命名空间,使得一个数据库中允许重名表的存在,并可以用来当作权限控制的边界。

一个schema里有多个table

table中记录按行row存放。每条记录的一个值对应表中的列column

图示如下:

因此,访问一个数据库对象(表为例,当然也可以是其他数据库对象如function、index、trigger、procedure等)时,标准的命名方式是catalog.schema.table。但在客户端连接到数据库服务器时,服务器会要求客户端指定一个数据库(catalog)来连接,所以当访问的数据库对象就在当前数据库时,该命名前面的catalog可以省略不写。

常用数据库中,Postgres是按SQL标准设计实现的这些对象,Sybase、SQL Server、Oracle略有不同,MySQL区别最大,去掉了schema这一层。

在MySQL中

database=schema=catalog。访问一个对象(表),命名为database.table。

具体来说:

In Oracle:

server instance == database == catalog == 数据库引擎管理的所有数据schema == 数据库内的命名空间,每个用户有个唯一的schema。user == schema owner == named account具名账户, identical to schema, 用户可以连接到数据库,能拥有schema,在被授权后也可访问不属于他的schema中的对象。在数据库服务器中唯一标识一个对象,需要 (schema name + object name)

In PostgreSQL:

server instance == db cluster == 数据库引擎管理的所有数据database == catalog == db cluster中的数据schema == 数据库中的命名空间user == 具名账户,可以连接到数据库,可以拥有和使用单个数据库中的对象。在数据库服务器中唯一标识一个对象,需要 (database name + schema name + object name)

In MySQL:

server instance == 数据库的集合database == schema == catalog == server中的命名空间user == 具名账户,可以连接到数据库,可以使用(但不能拥有)多个数据库中的对象在数据库服务器中唯一标识一个对象,需要 (database name + object name)

In Microsoft SQL Server:

server instance == 数据库的集合database == server中的命名空间,catalog这个概念在SQL Server中不被使用schema == owner == 数据库中的命名空间,与数据库owner绑定,默认的schema是dbo(database owner)user == 具名账户,可以连接到数据库,可以使用(但不能拥有,schema拥有)多个数据库中的对象在数据库服务器中唯一标识一个对象,需要 (database name + owner + object name)

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:hwclouds.bbs@huawei.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。