【database】数据库schema概念解读

schema概念定义

数据库中的schema有多种不同含义和实现:

  1. 数据库中的数据模型(data model)
  2. 数据库中的整个数据结构(data structure)和程序(program)
  3. 命名空间(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):

  1. 容易为整个schema来分配权限,可以基于用户访问权限应用安全权限来分隔和保护数据库对象
  2. 为两个或多个不同的表(或其他对象)使用同一个name
  3. 对相似的对象进行分组来降低复杂度,数据库对象的逻辑分组可以被数据库管理起来,schema可以将数据库对象组织成逻辑分组。
  4. 同一个schema可以用在不同的数据库中
  5. 可以很容易地对几个schema的ownership进行切换

RDBMS中的支持

实际上所有的关系模型都支持schema(namespace),它也是SQL标准的一部分。但是不同数据库在schema函数以及是否支持“数据库(database)”层次结构上存在着差异。
在这里插入图片描述

DBMSDatabase/SchemaImplicit schema
Just schemas
OracleServer => Schema = User
MySQLServer => Database = Schema
MariaDBServer => Database = Schema
TeradataServer => Database = Schema
FirebirdServer => Database = Schema
InterbaseServer => Database = Schema
SQLiteFile = Database = Schemamain
Databases and schemas
SQL ServerDatabase => Schemadbo
PostgreSQLDatabase => Schemapublic
Azure SQL DatabaseDatabase => Schemadbo
IBM Db2Database => Schema
Amazon RedshiftDatabase => Schemapublic
SnowflakeWarehouse => Database => Schemapublic
SAP/Sybase ASEDatabase => Schemadbo
SAP HANADatabase => Schema
VerticaDatabase => Schemapublic
IBM InformixDatabase => Schema

参考文献

  1. What is Database Schema
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值