在数据库中,schema、catalog分别指的是什么?
一、在数据库中,schema、catalog分别指的是什么
这么说吧,在关系型数据库中,分三级:database.schema.table。即一个数据库下面可以包含多个schema,一个schema下可以包含多个数据库对象,比如表、存储过程、触发器等。但并非所有数据库都实现了schema这一层,比如mysql直接把schema和database等效了,PostgreSQL、Oracle、SQL server等的schema也含义不太相同。
所以说,关系型数据库中没有catalog的概念。但在一些其它地方(特别是大数据领域的一些组件)有catalog的概念,也是用来做层级划分的,一般是这样的层级关系:catalog.database.table。
实际上,schema就是数据库对象的集合,这个集合包含了各种对象如:表、视图、存储过程、索引等。
如果把database看作是一个仓库,仓库很多房间(schema),一个schema代表一个房间,table可以看作是每个房间中的储物柜,user是每个schema的主人,有操作数据库中每个房间的权利,就是说每个数据库映射user有每个schema(房间)的钥匙。
延伸阅读:
二、按照SQL标准的解释Catalog和Schema
在SQL环境下Catalog和Schema都属于抽象概念,可以把它们理解为一个容器或者数据库对象命名空间中的一个层次,主要 用来解决命名冲突问题。从概念上说,一个数据库系统包含多个Catalog,每个Catalog又包含多个Schema,而每个Schema又包含多个数据库对象(表、视图、字段等),反过来讲一个数据库对象必然属于一个Schema,而该Schema又必然属于一个Catalog,这样我们就可以得到该数据库对象的完全限定名称从而解决命名冲突的问题了;例如数据库对象表的完全限定名称就可以表示为:Catalog名称.Schema名称.表名称。这里 还有一点需要注意的是,SQL标准并不要求每个数据库对象的完全限定名称是少数的,就象域名一样,如果喜欢的话,每个IP地址都可以拥有多个域名。
通俗点理解:
schema是对一个数据库的结构描述。在一个关系型数据库里面,schema定义了表、每个表的字段,还有表和字段之间的关系。
catalog是由一个数据库实例的元数据组成的,包括基本表,同义词,索引,用户等等。
或许更通俗还可以这样理解:
schema有点类似于类,catalog有点类似于对象。

猜你喜欢LIKE
相关推荐HOT
更多>>
分布式开源物联网MQTT消息服务器EMQ怎么做数据的存储?
一、分布式开源物联网MQTT消息服务器EMQ怎么做数据的存储(1)实现存储的最简单方法是添加一个订阅通配符主题的附加客户端(在MQTT中恰好是#)...详情>>
2023-10-14 22:44:14
数据库种类有哪些?
一、数据库的种类1、关系型数据库(RDBMS)关系型数据库使用表格(二维结构)来组织和存储数据。它们使用结构化查询语言(SQL)进行数据管理和...详情>>
2023-10-14 22:12:41
对数量庞大的照片进行分类管理,较好的方便检索的方法是什么?
一、对数量庞大的照片进行分类管理其实无论任何方法,其实本质都是一样的,就是给照片打上标签,然后按标签分类这些照片(人脸识别也好,地理标...详情>>
2023-10-14 17:18:27
在数据库中,schema、catalog分别指的是什么?
一、在数据库中,schema、catalog分别指的是什么这么说吧,在关系型数据库中,分三级:database.schema.table。即一个数据库下面可以包含多个sc...详情>>
2023-10-14 16:43:29热门推荐
Shell点文件可以为你做点什么?
沸什么是 DMAIC 方法,优点有哪些?
热分布式开源物联网MQTT消息服务器EMQ怎么做数据的存储?
热数据库种类有哪些?
新web前端和UI前端的区别?
Java并发中什么是可见性?
Java中private,默认,protected,public修饰符的区别?
InnoDB的next-key lock为什么是左开右闭的?
Chromium是什么?
为什么分布式数据库这么喜欢用kv store?
web测试流程的重点是什么?
Android开发中为什么很少使用JSON存储数据?
为什么要有U-Boot?
对数量庞大的照片进行分类管理,较好的方便检索的方法是什么?
技术干货






