【database】数据库schema概念解读
schema概念定义
数据库中的schema有多种不同含义和实现:
- 数据库中的数据模型(data model)
- 数据库中的整个数据结构(data structure)和程序(program)
- 命名空间(namespace)是SQL的一个元素
1. Data Model
数据库schema的含义之一是数据库中表之间的结构,具体来说有表、数据类型、主键和唯一键以及外键约束。
2.数据库实现
更抽象的概念上,数据库schema指的是整个数据库元素:表、约束、视图、存储过程和数据类型等。
3.Namespace(element of SQL)
schema的另一个含义是大多数关系型数据库引擎用于对对象分组的特定元素。
可以把schema认为是一个命名空间(namespace)或容器(container),其中包含有表、视图和函数等。
数据库(database)的所有者就是schema的所有者,一个schema一般属于一个database而一个database可以有多个schema。
不同的schema中的name可以重复。
大多数db中可以使用以下语法来创建删除schema,以及更改schema的名称和用户。
CREATE SCHEMA HumanResources;
DROP SCHEMA HumanResources;
ALTER SCHEMA HumanResources RENAME TO Human;
ALTER SCHEMA HumanResources OWNER TO postgres;
该语句会创建一个新的schema并且是该schema中每一个对象的前缀。
为什么使用schema(namespace)
主要在以下的场景中将database拆分为多个schema(namespace):
- 容易为整个schema来分配权限,可以基于用户访问权限应用安全权限来分隔和保护数据库对象
- 为两个或多个不同的表(或其他对象)使用同一个name
- 对相似的对象进行分组来降低复杂度,数据库对象的逻辑分组可以被数据库管理起来,schema可以将数据库对象组织成逻辑分组。
- 同一个schema可以用在不同的数据库中
- 可以很容易地对几个schema的ownership进行切换
RDBMS中的支持
实际上所有的关系模型都支持schema(namespace),它也是SQL标准的一部分。但是不同数据库在schema函数以及是否支持“数据库(database)”层次结构上存在着差异。
DBMS | Database/Schema | Implicit schema |
---|---|---|
Just schemas | ||
Oracle | Server => Schema = User | |
MySQL | Server => Database = Schema | |
MariaDB | Server => Database = Schema | |
Teradata | Server => Database = Schema | |
Firebird | Server => Database = Schema | |
Interbase | Server => Database = Schema | |
SQLite | File = Database = Schema | main |
Databases and schemas | ||
SQL Server | Database => Schema | dbo |
PostgreSQL | Database => Schema | public |
Azure SQL Database | Database => Schema | dbo |
IBM Db2 | Database => Schema | |
Amazon Redshift | Database => Schema | public |
Snowflake | Warehouse => Database => Schema | public |
SAP/Sybase ASE | Database => Schema | dbo |
SAP HANA | Database => Schema | |
Vertica | Database => Schema | public |
IBM Informix | Database => Schema |
参考文献
- What is Database Schema
【database】数据库schema概念解读相关推荐
- 数据库Schema概念
在学习SQL的过程中,会遇到一个让你迷糊的Schema的概念.实际上,schema就是数据库对象的集合,这个集合包含了各种对象如:表.视图.存储过程.索引等.为了区分不同的集合,就需要给不同的集合起不 ...
- 【数据库基础知识二】数据库DataBase(简称DB),数据库基本概念、DDL:数据定义语言,用来操作数据库对象、DML:数据操作语言,用来操作表中的数据
14天阅读挑战赛 目录 数据库基本概念 数据库DataBase(简称DB) 数据库管理系统Database management system(简称DBMS) 如何操作DBMS? 连接数据库的方式: ...
- PCTP考试学习笔记之二:TiDB 数据库 schema 设计
作者: OnTheRoad 原文来源: https://tidb.net/blog/6a1007ff 本系列学习笔记根据官方课程<TiDB 高级系统管理 [TiDB v5]>整理,感谢官方 ...
- 数据库杂谈(一)——数据库基本概念
文章目录 1 数据库基本概念 1.1数据库和数据库管理系统 1.2 数据库系统和文件系统 1.3 数据模型 1.4 数据库三级模式和两级独立性 1.4.1 三级模式 1.4.2 二级映像功能 1.4. ...
- mysql schema 定义_数据库 schema含义
数据库Schema有两种含义,一种是概念上的Schema,指的是一组DDL语句集,该语句集完整地描述了数据库的结构.还有一种是物理上的Schema,指的是数据库中的一个名字空间,它包含一组表.视图和存 ...
- SQL全方位攻略:之数据库历史、数据库基本概念和相关术语,以及常见的数据库类型介绍
文章目录 1.数据库介绍 1.1 数据库历史 1.2 数据库基本概念和术语 1.2.1. 数据库 1.2.2. 数据库管理系统(DBMS) 1.2.3. 应用程序 1.2.4. 模式(Schema) ...
- 数据库Schema两种含义
百度文库中 Schema 的解释: 数据库中的Schema,为数据库对象的集合,一个用户一般对应一个schema. 官方定义如下: A schema is a collection of databa ...
- mysql scheme是什么意思_数据库Schema两种含义~~
1.数据库Schema有两种含义,一种是概念上的Schema,指的是一组DDL语句集,该语句集完整地描述了数据库的结构.还有一种是物理上的 Schema,指的是数据库中的一个名字空间,它包含一组表.视 ...
- 从属关系mysql_关系型数据库基础概念:MySQL系列之开篇
一.基础概念 数据(Data)是描述事物的符号记录,是指利用物理符号记录下来的.可以鉴别的信息. 1.数据库(Database,DB)是指长期储存在计算机中的有组织的.可共享的数据集合.数据要按照一定 ...
最新文章
- Halcon:(2)电路板检测实验
- 九个Console命令,让js调试更简单
- 变焦即可判断物体的距离
- c#json对象转数组_数组和对象的区别
- 创客编程帮助孩子提升学习成绩,是一项长远投资!
- 密码学基础知识(九)密钥管理
- 重写StyleSheetTheme
- Hinton神经网络公开课编程练习3 Optimization and generalization
- Silverlight在IIS中的配置
- 8个JavaScript库可更好地处理本地存储
- 【洛谷P4719】动态DP【LCT】【矩阵】
- 吴恩达深度学习 —— 3.11 随机初始化
- 大型分布式C++框架《三:序列化与反序列化》
- 简书android 输入法设置,Android输入法弹出流程
- 使用工具YUMI制作多系统启动盘
- RecyclerView或是ListView(列表)点击某个条目保持选中【非常巧妙】
- 百万邮做邮件营销的邮箱配置
- SpringCloud学习笔记(五)服务发现Discovery
- 广播电视相关信息系统 安全等级保护基本要求
- 第13课:生活中的克隆模式——给你一个分身术
热门文章
- 程考网:一建有哪些具体备考方法?
- HCL安装方法,优化调节版。
- python图片格式转换大师
- C++:reverse函数
- __builtin_expect用法
- 2019年9月最新1600个国内HTTP代理ip
- 老子的软件之道 - 道篇 5 企业管理
- php 舞伴配对,舞伴配对
- java一个中文几个字节_java一个汉字占几个字节;一个字符占几个字节?redis一个汉字占几个字节;一个字符占几个字节?...
- 【用pandas_alive几行代码绘制竞赛动图】8.城市人口(测试代码+数据集+绘图参数解析)