数据库模式 Schema
- 1.MySQL
- 2.PostgreSQL
- 3.SQL Server
- 4.Oracle
- 5.SQLite
在数据库的术语中,模式(schema
)是一个逻辑概念,用于组织数据库中的对象。模式中的对象通常包括 表、索引、数据类型、序列、视图、存储过程、主键、外键 等等。
模式可以为数据库对象提供逻辑隔离功能,不同应用程序可以使用各自的模式,实现安全的访问权限控制。
以下是 MySQL 中经典的 Sakila
示例数据库中的模式结构图:
该模式中包含四个部分:
Customer Data
:客户相关的数据,例如客户名称、地址等。Business
:经营业务所需的数据,例如员工、商店、付款明细等。Inventory
:产品详细信息,例如电影、电影分类、演员等。Views
:数据视图。
SQL 标准并没有明确定义模式与数据库的关系,因而在不同的数据库产品中,模式的概念也存在差异。
1.MySQL
对于 MySQL 而言,模式和数据库是同义词。语法中的 SCHEMA
都可以使用 DATABASE
替代,例如 CREATE DATABASE
和 CREATE SCHEMA
的作用完全相同。
2.PostgreSQL
PostgreSQL 中 一个数据库包含一个或多个模式,一个模式包含多个对象(表、索引、函数等)。模式的管理使用 CREATE SCHEMA
、DROP SCHEMA
等语句。
3.SQL Server
SQL Server 中的模式概念和 PostgreSQL 几乎相同。
4.Oracle
Oracle 数据库中的模式概念和其他数据库产品不同,它和用户的概念关系紧密。Oracle 数据库中 一个用户对应一个模式,用户名就是模式名。模式中的对象都属于这个用户。
对于模式的管理,实际上就是用户的管理,例如 CREATE USER
、DROP USER
。
另外,虽然 Oracle 也提供了 CREATE SCHEMA
语句,但是它的作用是在当前模式下创建对象。
5.SQLite
SQLite 中没有模式的概念,一个文件对应一个数据库。