关于数据库中的schema

schema:模式,在SQL Server中文版文档中翻译为架构。

在数据库学习过程中,有一个schema概念,如概念模式、物理模式、内部模式、外部模式、逻辑模式,以及DBMS的schema等,每一个都有其特定的含义,在不同语境下的含义不同,容易初学者迷糊。

DBMS的schema就是数据库对象的集合,这个集合包含了各种对象如:表、视图、存储过程、索引等。

☆ISO/IEC 9075-1 SQL标准中将schema定义为描述符的持久命名集合(a persistent, named collection of descriptors)。

☆MySQL的文档中指出,在物理上,模式与数据库是同义的,所以,模式和数据库是一回事。从概念上讲,模式是一组相互关联的数据库对象,如表,表列,列的数据类型,索引,外键等等。但是从物理层面上来说,模式与数据库是同义的。你可以在MySQL的SQL语法中用关键字SCHEMA替代DATABASE,例如使用CREATE SCHEMA来代替CREATE DATABASE。

参考: MySQL Glossary之schema ,链接是https://dev.mysql.com/doc/refman/5.7/en/glossary.html#glos_schema

☆Oracle的文档却指出,某些对象可以存储在数据库中,但不能存储在schema中。 因此,模式和数据库不是一回事。Oracle的schema与数据库用户密切相关。schema是数据或模式对象的逻辑结构的集合,由数据库用户拥有,并且与该用户具有相同的名称,也就是说每个用户拥有一个独立的schema。参考  Oracle Database Objects之 Schema Objects,链接是https://docs.oracle.com/database/121/SQLRF/sql_elements007.htm#SQLRF20003

☆SQL Server中schema是数据库SQL Server内部的一个独立的实体,包括表、字段、数据类型以及数据库的主键和外键的名称。参考:SQL Server Glossary之database schema ,链接是 https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2016/ms165911(v=sql.130)?redirectedfrom=MSDN

要理解SQL Server的架构(SCHEMA)可以参考

权限层次结构(数据库引擎)https://docs.microsoft.com/zh-cn/sql/relational-databases/security/permissions-hierarchy-database-engine?view=sql-server-ver15

安全对象范围:架构 https://docs.microsoft.com/zh-cn/sql/relational-databases/security/securables?view=sql-server-ver15#securable-scope-schema

尽管上述三个DBMS在定义schema方面有所不同:

★MySQL

在MySQL中,CREATE SCHEMA创建了一个数据库,这是因为CREATE SCHEMA是CREATE DATABASE的同义词。 换句话说,你可以使用CREATE SCHEMA或者CREATE DATABASE来创建一个数据库。

★Oracle Database

在Oracle中,CREATE SCHEMA语句实际上并不创建一个模式,这是因为已经为在创建用户时,数据库用户就已经创建了一个模式,也就是说在ORACLE中CREATE USER就创建了一个schema,CREATE SCHEMA语句允许你将schema同表和视图关联起来,并在这些对象上授权,从而不必在多个事务中发出多个SQL语句。

Oracle数据库将一个单独的模式与每个数据库用户相关联。一个模式由一组模式对象组成。

在Oracle数据库中不能新建一个schema,要想创建一个schema,只能通过创建一个用户的方法解决,在创建一个用户的同时为这个用户创建一个与用户名同名的schem并作为该用户的缺省shcema。即schema的个数同user的个数相同,而且schema名字同user名字一一 对应并且相同。

★SQL Server

在SQL Server中,CREATE SCHEMA将按照名称创建一个模式,与MySQL不同,CREATE SCHEMA语句创建了一个单独定义到数据库的模式。和ORACLE也不同,CREATE SCHEMA语句实际创建了一个模式(前面说到这个语句在ORACLE中不创建一个模式),在SQL Server中,一旦创建了模式,就可以往模式中添加用户和对象。

另外,当我们用create user创建数据库用户时,我们可以用该用户指定一个已经存在的schema作为默认的schema,如果我们不指定,则该用户所默认的schema即为dbo schema。

参考

What is a Database Schema? https://database.guide/what-is-a-database-schema/

(译文见https://blog.csdn.net/u010429286/article/details/79022484)

如何理解数据库的Schema模式https://www.biaodianfu.com/database-schema.html

在数据库中,schema、catalog分别指的是什么?https://www.zhihu.com/question/20355738

关于数据库中的schema的注释相关推荐

  1. mysql schema和database_数据库中的Schema和Database的区别

    在mysql中创建一个Schema和创建一个Database的效果好像是一样的,但是在sqlserver和orcal数据库中效果又是不同的,目前我只能理解为在mysql中schema<==> ...

  2. 数据库中的Schema是什么?

    在数据库中,schema(发音 "skee-muh" 或者"skee-mah",中文叫模式)是数据库的组织和结构,schemas 和schemata都可以作为复 ...

  3. 数据库中的schema是什么(简)

    数据库中的Schema 突然想到数据库中的schema是什么,于是多方搜索有了基本了解,做一个简单记录: 在SQL环境下,schema就是数据库对象的集合,所谓的数据库对象也就是常说的表,索引,视图, ...

  4. 数据库中的Schema(模式)和View(视图)

    Schema(模式) 在mysql中,Schema和database即数据库的概念类似,利用建模式的语句 create schema name同样可以创建一个库 而在其他数据库中,例如oracle,S ...

  5. mysql schema table_关于数据库中table与schema的区别详解

    什么是Database,什么是Schema,什么是Table,什么是列,什么是行,什么是User? 相关mysql视频教程推荐:<mysql教程> 我们可以把Database看作是一个大仓 ...

  6. mysql one database_数据库中schema和database有什么区别?

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

  7. 达梦数据库中注释的使用

    在管理规模较大的数据库时,我们往往需要面对大量的表与视图,与此同时在表与视图中可能会存在着许多的字段,让人难以迅速分辨,不利于对于数据库对象的管理.除了在命名时,对于有意义的表.视图及列,应尽量赋予具 ...

  8. 达梦数据库中的注释的使用

    在管理规模较大的数据库时,我们往往需要面对大量的表与视图,与此同时在表与视图中可能会存在着许多的字段,让人难以迅速分辨,不利于对于数据库对象的管理.除了在命名时,对于有意义的表.视图及列,应尽量赋予具 ...

  9. 小工具-Greenplum数据库中AO表和非AO表获取

    小工具-Greenplum数据库中AO表和非AO表获取 –执行说明 /*该脚本是用来获取数据库中每个 schema 下是否是 AO 表,如果有 AO 表,将会存储于临时表 *tab_aotable中, ...

最新文章

  1. 【Python】Numpy库之符号函数sign()的介绍及用法
  2. redis的主从数据库复制功能
  3. ecshop 全站内页 显示最新文章
  4. 003-redis-命令-key操作,字符串操作
  5. O-RAN:致力于ICDT融合,打造开放与智能的无线接入网
  6. outputStream
  7. PyQT5 helloworld教程(转载)
  8. python 随机数抽奖系统_python实现的简单抽奖系统实例
  9. mysql数据自定义随机_MySQL 利用事务自定义插入随机数据
  10. PHP中巧用curl 并发减少获取第三方网页内容时间
  11. Excel 培训笔记
  12. 《大数据之路:阿里巴巴大数据实践》-第4篇 数据应用篇 -第16章 数据应用
  13. 【黑帽SEO案例分析】10天爱站从0到6
  14. 东北四省赛E-Minimum Spanning Tree-贡献求和
  15. 塔夫斯大学计算机教授,塔夫茨大学开发出一系列3D打印半球形超材料 具有独特微波或光学特性...
  16. 有AI就不搬砖?超乎你的想象!道翰天琼认知智能机器人平台API接口大脑为您揭秘-1。
  17. C语音:输入两个整数,要求输出其中值较大者。要求用函数来找到大数。
  18. 2022-2028年全球与中国个人冷却装置行业竞争格局与投资战略研究
  19. 程序员需要了解的 现代散文精选翻译
  20. 第一周总结(2022.10.17~2022.10.22)

热门文章

  1. Vue中修改element-ui中的el-table中默认的暂无数据样式
  2. avplayer学习笔记
  3. Mac有什么好用的词典软件吗?苹果电脑第三方词典软件推荐
  4. Ansys Zemax / SPEOS | 3片式LCD投影仪的设计与仿真
  5. P228 10.2.2 希尔排序 完整源文件
  6. 字符串匹配算法——暴力算法
  7. Java实现控制台输出进度条
  8. Qt 解决报错:QBackingStore::endPaint() called with active painter
  9. 多元统计分析基于r课后答案_何晓群版—多元统计分析课后练习答案.pdf
  10. RK3399平台开发系列讲解(PCI/PCI-E)5.51、PCIE EP模式软件架构