零玖博客

达梦数据库和 mysql 数据库 达梦数据库模式的概念 (转载)

达梦数据库的逻辑结构和 Oracle 很相似,但和 mysql 、 sqlserver 有非常大的区别,达梦数据库没有库的概念,从上往下,依次为:实例-用户-表,具体看图;注意一对多的关系。

 

 

建立各达梦数据库和mysql 数据库 达梦数据库模式的概念个对象的时候,需要搞清对象之间的关系,先建立什么,后建立什么,谁控制什么,管理什么。

这里主要简单介绍以下几个重要的概念:数据库、实例、用户、表空间、模式、表、角色、数据文件。

1 、数据库

数据存储的物理介质。广义上讲任何存储数据的物理介质都可叫着数据库,例如一个 word 文档。但实际上,我们说数据库一般是指像 MySQL,ORACLE, HBASE 等之类的软件系统。这些系统除了提供数据的存储外,还提供一整套相关的工具或接口对存储的数据进行管理。达梦数据库就是这样的一种系统。

2 、数据库实例

已实例化可存储数据的仓库。达梦数据库一个实例就只能挂一个数据库 (即一个实例就是一个数据库),如果想建多个数据库,则需配置启动相应数量的实例。达梦的每个实例有一系列的后台进程和内存结构,这些是相互独立的。

3 、用户

达梦数据库用户是建在实例下的,因为实例相互独立,所有达梦数据库不同的实例下可以有相同的用户名。另外,在达梦数据库中通过 create user 语句创建用户时,会同时创建一个同名的 「模式」 。也可以通过 create schema 语句单独创建模式 (特别注意:在 Oracle 中,用户与 schema 是一一对应的,不能单独创建模式,要想创建模式得需通过创建一个同名用户来实现),并授权给某个已存在的用户,因此在达梦数据库中用户与模式是 1:N 的关系。 (注:如果先通过 create schema 创建了模式,再通过 create user 创建同名用户,不能创建成功。)

4 、表空间

是一个用来管理数据存储的概念,表空间只是和数据文件 (ORA 或者 DBF 文件) 发生关系,数据文件是物理的,一个表空间可以包含多个数据文件,而一个数据文件只能隶属一个表空间。可以将表空间理解为对应一块物理存储区,专门用来存储数据文件。实例化达梦数据库时,默认会创建 MAIN 、 ROLL 、 SYSTEM 、 TEAM 及 HMAIN 五个表空间。 ROLL 、 SYSTEM 、 TEAM 表空间系统自行维护,用户所建表 (如果未指定存放表空间的话) 默认放在 MAIN 表空间。用户也可自定义表空间,然后在创建用户时指定为默认表空间;也可以在建表时通过加"tablespace SpaceName"语句动态指定该表的存储表空间。

5 、模式 (schema)

一个用户一般对应一个 schema, 该用户的 schema 名等于用户名,并作为该用户缺省 schema;

一个用户还可以使用其他的 schema(Oracle 数据库也可通过权限管理实现访问其他 schema);

创建模式不指定用户时,该模式默认为 SYSDBA 拥有;

在同一模式下不能存在同名对象,但在不同模式中的对象名称可以相同;

用户可以直接访问同名模式对象,但如果要要访问其他模式对象,则必须具有对象权限;

当用户要访问其他模式对象时,必须附加模式名作后缀 (schema.table);

用户是用来连接数据库对象,而模式是用来创建及管理对象的。

6 、表
在达梦数据库中,一个表只能属于一个表空间。
7 、角色
在达梦数据库中,每个用户都有角色。它决定了该用户有什么权限,比如 DBA,拥有最高权限。补充说明一点是,实例化的达梦数据库默认有 3 种角色:DBA, PUBLIC,RESOURCE 。新建的用户只拥有 PUBLIC 角色,该角色几乎做不了什么,因此一般新建用户后,需要单独对他 (她) 进行授权。
8 、数据文件
数据的物理载体。

退出移动版