【database】数据库schema概念解读

article/2025/10/9 0:42:51

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

http://chatgpt.dhexx.cn/article/3P4UupbX.shtml

相关文章

SQL Server: 数据库模式SCHEMA

在SQLServer等关系数据库管理系统(RDBMS)中,数据库包含各种对象。 在数据库中,模式(SCHEMA)是指数据库对象的逻辑集合。可以根据应用程序、访问权限和安全性使用模式(SCHEMA)来對对象分組。 SQL Server schemas SQL Server提供以下内置逻辑模式&#…

数据库中的SCHEMA到底是什么?MySQL

平时在看一些数据库相关的书籍或是文档的时候总会出现这样一个词SCHEMA(模式),那这个SCHEMA到底是指什么?下面就来看看 SHCHEMA的定义 官方文档定义 Conceptually, a schema is a set of interrelated database objects, such …

数据库中的Schema是什么?

在数据库中,schema(发音 “skee-muh” 或者“skee-mah”,中文叫模式)是数据库的组织和结构,schemas 和schemata都可以作为复数形式。模式中包含了schema对象,可以是表(table)、列(column)、数据类型(data t…

django数据库的字段新增和添加数据

通过django给数据库添加一个新的字段 控制台输入: python manage.py makemigrations common # 让 Django 知道我们在我们的模型有一些变更控制台输入: python manage.py migrate #创建表结构给数据库添加数据 from django.http import HttpResponsefrom common.models imp…

数据库添加字段

数据库添加字段 在使用数据库添加字段的时候要避免使用关键字 在SQL数据库编辑进行增删改查的时候,发现index这个字段的内容无法进行增删改查,希望大家在使用的时候就不要起那些关键字,嘿嘿,继续加油!

mysql数据库表添加字段_mysql数据库怎么给表增加一个字段?

mysql数据库给表增加一个字段的方法:可以使用“ALTER TABLE”语句来增加一个字段,语法格式“ALTER TABLE 表名 ADD 新字段名 数据类型 [约束条件];”,默认是在表的最后位置添加新字段。 mysql中数据表添加新字段 可以使用“ALTER TABLE”语句来实现,一个完整的字段包括字段…

数据库 - 字段属性

数据库 - 字段属性 主键 – 唯一键和自增长 主键 增加主键 大体分为三种增加主键的方式: 方案一: 高清图: 方案二:有多个字段作为主键可以是复合主键。 方案三: 主键约束 创建约束的目的就是保证数据的完整性和…

线上数据库增加字段导致服务请求超时总结

2019独角兽企业重金招聘Python工程师标准>>> 今天的一个需求上线需要在数据库的某个表中增加一个字段。这个数据库是服务中一个业务量比较少的数据库,与主要业务的数据库是隔离的。执行增加操作后生效比较慢,没有关注,过了一段时间…

mysql添加字段语句_mysql增加字段 mysql数据库更新字段语句

myesl是一个关系型数据库管理系统,也是目前最流行的管理系统之一,目前网页设计方面对一个系统的使用频率是比较高的,因此想要学会网页设计,那么有关myesl的基础知识以及应用就一定要掌握。而今天我们就来看一看myesl增加字段是如何…

Linux 配置 DNS服务(亲测实操),手把手教你看着一篇就够了

Linux 配置 DNS服务(亲测实操),手把手教你看着一篇就够了 DNS 简介DNS 工作过程DNS 配置文件DNS 服务搭建1)基本服务器搭建2)主从DNS服务器搭建3)缓存DNS服务器搭建4)智能DNS(分离解…

Linux 修改DNS配置

项目场景: 最近在对接百度语音合成技术(官方文档 https://ai.baidu.com/ai-doc/SPEECH/Pk38y8m7k)时,将代码放到服务器上就会报错。 问题描述 在调用百度APIhttps://aip.baidubce.com/oauth/2.0/token,获取Access To…

linux的主从DNS配置

一、dns服务器的安装 1.查看安装包的命令 rpm -qa | grep bind 2.删除bind包 rpm -e bind 3.安装dns yum install bind 4.查看安装包的命令 rpm -qa | grep bind 二、dns的服务管理 1.查看dns状态 service named status 2.启动DNS的服务 service named start 3.停止…

linux 配置 DNS 服务器用于解析本地请求

场景: 服务器要使用域名调用其他服务,为此就需要给服务器配置域名解析(DNS)。 一、配置hosts 这种形式前提是知晓对方 ip 和 域名,直接把对应关系写死在 /etc/hosts 文件中,如下: 182.92.187.…

linux设置dns简单的,Linux下的DNS简单配置

Linux下的DNS简单配置 1.安装DNS软件包。挂载redhat光盘镜像,相信大家都会,进入光盘挂载点,找到下面这几个软件包,用rpm或者yum安装,这里就不多做介绍了。 bind-9.3.4-10.P1.el5 (DNS的主安装文件) bind-chroot-9.3.4-10.P1.el5 (这个起到安全作用) caching-nameserver-9.…

Linux的DNS设置

①先查看一下对应IP的网卡,命令:ip addr ②进入网卡配置文件进行编辑, 命令:vim /etc/sysconfig/network-scripts/ifcfg-ens160 按" i "键进入插入模式,编辑添加:DNS1114.114.114.114 按"…

Linux下配置DNS正向解析

目录 要求: 一、环境配置 二、实验过程 ​编辑 三、总结 要求: 配置dns正向解析 规划: 192.168.xxx.xxx dns1.abc.com主域名服务器(注意为真实的IP) 172.16.0.253 dns2.abc.com从域名服务器 172.16.0.100 fileserver.abc.com文件服…

Linux如何配置DNS服务器

一、DNS介绍 DNS应用层协议 Domain Name System 域名系统 作用 正向解析 根据主机名解析查询对应的IP 反向解析 根据IP查询对应的主机名 DNS服务器层级的概念 1、区域的概念 正向区域 一般就是二级域名 jd.com baidu.com taobao.com 反向区域 x.x.x.in-addr.arpa 1.168…

Linux系统配置DNS服务器

配置ip地址 用vi命令编辑网卡配置文件eth0进行修改ip地址: #vi命令是一个linux自带的编辑工具类似于windows上的记事本。vi有三种模式,分别是命令模式,输入模式和底线命令模式,用vi打开一个文件时即处于命令模式,命令…

Linux之DNS服务器配置

一、安装DNS服务 1、安装DNS服务相关软件包 bind: DNS服务器软件包 bind-utils: DNS测试工具,包括dig,host与nslookup等。 bind-chroot: 使BIND运行在指定的目录中二点安全增强工具。 我们选择bind和bind-utils就够了:yum install bind bind-utils 2、B…

linux中DNS域名解析服务

目录 一、DNS 1、DNS简介 2、DNS系统的分布式数据结构 2.1 域名结构解析(简版) 2.2 域名结构解析(详细) 3、DNS系统的作用 4、DNS完整过程 5、查询方式 6、打开一个网页中间过程 7、DNS系统类型 7.1 缓存域名服务器 …