OushuDB 创建和管理模式(上)

简介: 一个OushuDB数据库集群包含一个或多个已命名数据库。 用户和用户组在整个集群范围内是共享的,但是其它数据并不共享。 任何与服务器连接的客户都只能访问那个在连接请求里声明的数据库。

image.png

一个OushuDB数据库集群包含一个或多个已命名数据库。 用户和用户组在整个集群范围内是共享的,但是其它数据并不共享。 任何与服务器连接的客户都只能访问那个在连接请求里声明的数据库。

Note
集群中的用户并不一定要有访问集群内所有数据库的权限。共享用户名的意思是不能有重名用户。 假定同一个集群里有两个数据库和一个joe用户,系统可以配置成只允许joe 访问其中的一个数据库。

一个数据库包含一个或多个已命名的模式,模式又包含表。模式还可以包含其它对象, 包括数据类型、函数、操作符等。同一个对象名可以在不同的模式里使用而不会导致冲突; 比如,schema1和myschema都可以包含一个名为mytable的表。 和数据库不同,模式不是严格分离的:只要有权限,一个用户可以访问他所连接的数据库中的任意模式中的对象。

我们需要模式的原因有很多:

● 允许多个用户使用一个数据库而不会干扰其它用户。
● 把数据库对象组织成逻辑组,让它们更便于管理。
● 第三方的应用可以放在不同的模式中,这样它们就不会和其它对象的名字冲突。
模式类似于操作系统层次的目录,只不过模式不能嵌套。

1、创建模式

要创建一个模式,使用CREATE SCHEMA命令。给出你选择的模式名字。比如:

CREATE SCHEMA myschema;

要创建或者访问在模式中的对象,写出一个 受修饰 的名字,这个名字包含模式名以及表名, 它们之间用一个句点分开:

schema.table

这个方式在任何需要表名字的地方都可用,包括后面讨论的表修改命令和数据访问命令。出于简化,我们将只讨论表,这个概念适用于所有其它已命名对象类型,比如数据类型和函数。
实际上,更一般的语法:

database.schema.table

也可以使用,但目前它只是为了和 SQL 标准 形式上 兼容。如果你写了一个数据库名, 那么它必须和你当前连接的数据库同名。
要在新模式里创建一个表,用:

CREATE TABLE myschema.mytable (...);

如果一个模式是空的(所有它里面的对象都已经删除),那么删除它的命令如下:

DROP SCHEMA myschema;

要删除一个模式及其包含的所有对象,可以使用:

DROP SCHEMA myschema CASCADE;

通常你想创建一个他人拥有的模式(因为这是一种限制用户在定义良好的模式中的活动的方法)。其语法如下:

CREATE SCHEMA schemaname AUTHORIZATION username;

你甚至可以省略模式名字,这时模式名将和用户名同名。参阅 使用方法 获取这种情况的适用场合。
以pg_开头的模式名是保留给系统使用的,用户不能创建这样的名字。

2、public模式

在前面的小节里,我们没有声明任何模式名字就创建了表。缺省时, 这样的表(以及其它对象)都自动放到一个叫做”public”的模式中去了。 每个新数据库都包含一个这样的模式。因此,下面的命令是等效的:

CREATE TABLE products ( ... );

和:

CREATE TABLE public.products ( ... );

下面是系统默认创建的schema。

template1=# \dnList of schemasName        |  Owner--------------------+----------hawq_toolkit       | ChangLeiinformation_schema | ChangLeipg_aoseg           | ChangLeipg_bitmapindex     | ChangLeipg_catalog         | ChangLeipg_toast           | ChangLeipublic             | ChangLei(7 rows)
目录
相关文章
|
SQL 数据库
OushuDB 创建和管理模式(下)
OushuDB 创建和管理模式(下)
78 0
|
数据库
OushuDB 创建和管理模式(中)
全称的名字写起来非常费劲,并且我们最好不要在应用里直接写上特定的模式名。因此, 表通常都是用 位修饰 的名字引用的,这样的名字里只有表名字。 系统通过查找一个 搜索路径 来判断一个表究竟属于哪个模式, 这个路径是一个需要查找的模式名列表。在搜索路径里找到的第一个表将被使用。 如果在搜索路径中没有找到表,那么就报告一个错误(即使在数据库里的其它模式中存在此表也如此)。
119 0
OushuDB 创建和管理模式(中)
|
SQL 运维 关系型数据库
NineData:为大型房产集团数据库统一纳管,推动业务高效运行
该企业是中国领先的优质房产品开发及生活综合服务供应商。在 2022 年取得了亮眼的业绩表现,销售额市场占有率跻身全国前五。业务涵盖房产开发、房产代建、城市更新、科技装修等多个领域。2023 年,该企业和玖章算术(浙江)科技有限公司达成合作,通过玖章算术的 "NineData 数据库管理平台" 管理集团旗下所有的数据库。
492 1
|
SQL 存储 分布式计算
OushuDB 的主要功能
OushuDB 的主要功能
91 0
|
小程序 Java 人机交互
智慧校园大数据云平台源码,实现基础数据共享、应用统一管理
智慧校园云平台电子班牌系统,利用先进的云计算技术,将教育信息化资源和教学管理系统进行有效整合,实现基础数据共享、应用统一管理。借助全新的智能交互识别终端和移动化教育管理系统,以考勤、课表、通知、家校互通等功能为切入点,从班级建设、校园文化、班级文化、学生工作、信息发布、家校共育六大方面,着力打造满足用户场景,深度贴合学校教育的改革需求。
312 0
|
存储 虚拟化
《数据虚拟化:商务智能系统的数据架构与管理》一 1.11 数据集成的其他方式
本节书摘来自华章出版社《数据虚拟化:商务智能系统的数据架构与管理》一 书中的第1章,第1.11节,作者:[荷]里克 F. 范德兰斯(Rick F. van der Lans),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1439 0
|
存储 数据库 虚拟化
《数据虚拟化:商务智能系统的数据架构与管理》一 导读
遗憾的是,数据虚拟化和数据仓库领域中使用的所有术语并非都是明确定义的,这一点在本书中讲得很清楚。为了避免混淆,我们试图清晰地定义大多数术语。但是,我们不能保证本书中的定义与你的定义一致。
1732 0
|
存储 虚拟化
《数据虚拟化:商务智能系统的数据架构与管理》一 2.11 总结
本节书摘来自华章出版社《数据虚拟化:商务智能系统的数据架构与管理》一 书中的第2章,第2.11节,作者:[荷]里克 F. 范德兰斯(Rick F. van der Lans),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1107 0
|
大数据 项目管理 云计算
|
9月前
|
Cloud Native NoSQL 数据管理
现代化数据管理:面向未来的数据库技术发展
传统数据库技术已经不能满足当今大数据时代的需求,现代化数据库技术的发展成为了当务之急。本文将探讨面向未来的数据库技术发展方向,包括云原生数据库、图数据库、区块链技术在数据库领域的应用以及数据库安全性等方面。

热门文章

最新文章