ITPub博客

首页 > 架构设计 > 数据架构 > 达梦数据库基础知识(二)数据库逻辑结构

达梦数据库基础知识(二)数据库逻辑结构

原创 数据架构 作者:winderen111 时间:2021-10-26 09:32:23 0 删除 编辑

1、数据库和实例

在DM7 之前版本的 DM 数据库中,数据库和实例 这两个术语经常可以互相替换,

意义也很相近。在DM7 以及之后版本的数据库中数据库和实例这两个概念之间有

着很大的差别,甚至可以 说它们是两个完全不同的实体 。

    1) 数据库

在有些情况下,数据库的概念包含的内容会很广泛。如在单独提到达梦数据库时,可能

指的是达梦数据库产品,也有可能是正在运行的达梦数据库实例, 还可能是达梦数据库运行中需的一系列物理 文件的集合等。但是,当同时出现达梦数据库和实例时,达梦数据库指的是磁盘上存放在达梦数据库中的数据的集合,一般包括:数据文件、日志文件、控制文件以及临时数据文件等 。

2) 实例

实例一般是由一组正在运行的 DM 后台进 程 线程以及一个大型的共享内存组 成。简 单来说,实例就是操作数据库的一种手段,是用来访问数据 库的内存结构 以及后 台进程的集合。

达梦数据库存储在服务器的磁盘上,而实例则存储于服务器的内存中。 通过运行实例,可以操作数据库中的内容。在任何时候,一个实例只能与 个数据库进行关联(装载、打开或者挂起数 据库)。在大多数情况下,一个数据库也只有一个实例对其进行操作。但

是在 DM 共享 存储 集群 DMDSC 中,多个实例可以同时装载并打开一个数据库(位于一组由多台服 务器 共 享的 物 理磁盘上)。此时,我们可以同时从多台不同的计算机访问这个数据库。

 

2、达梦数据库逻辑结构

      DM 数据库为数据库中的所有对象分配逻辑空间,并 存放在数据文 件中。在 DM 数据库内部,所有的数据文件组合在一起被划分到一个 或者多个表空间中,所有的数据 库内部对象都存放在这些表空间中。同时表空间被进一步划分为段、簇和页(也称块)。通过这种细分,可以使得 DM 数据库能够更加高效地控制磁盘空间的利用率。


可以看出,在DM8 中存储的层次结构如下:

  (1)数据库由一个或多个表空间组成;

  (2)每个表空间由一个或多个数据文件组成;

  (3)每个数据文件由一个或多个簇组成;

  (4) 段是簇的上级逻辑单元,一个段可以跨多个数据文件;

  (5)簇由磁盘上连续的页组成,一个簇总是在一个数据文件中;

 (6)页是数据库中最小的分配单元,也是数据库中使用的最小的IO 单元。

 

1)      表空间

在达梦数据库中,表空间由一个或者多个数据文件组成。达梦数据库中的所有对象在逻辑上都存放在表空间中,而物理上都存储在所属表空间的数据文件中。

在创建达梦数据库时,会自动创建5 个表空间:SYSTEM 表空间、ROLL 表空间、MAIN

表空间、TEMP 表空间和HMAIN 表空间。

  (1)SYSTEM 表空间存放了有关达梦数据库的字典信息,用户不能在SYSTEM 表空间创

建表和索引。

  (2)ROLL 表空间完全由达梦数据库自动维护,用户无需干预。该表空间用来存放事务运

行过程中执行DML 操作之前的值,从而为访问该表的其他用户提供表数据的读一致

性视图。

  (3)MAIN 表空间在初始化库的时候,就会自动创建一个大小为128M 的数据文件

MAIN.DBF。在创建用户时,如果没有指定默认表空间,则系统自动指定MAIN 表

空间为用户默认的表空间。

  (4)TEMP 表空间完全由达梦数据库自动维护。当用户的SQL 语句需要磁盘空间来完成

某个操作时,达梦数据库会从TEMP 表空间分配临时段。如创建索引、无法在内存中

完成的排序操作、SQL 语句中间结果集以及用户创建的临时表等都会使用到TEMP

表空间。

  (5)HMAIN 表空间属于HTS 表空间,完全由达梦数据库自动维护,用户无需干涉。当用

户在创建HUGE 表时,未指定HTS 表空间的情况下,充当默认HTS 表空间。

 

  2)记录

数据库表中的每一行是一条记录。在达梦数据库中,除了 Huge 表,其他的表都是在数据页中按记录存储数据的。也就是说,记录是存储在数据页中的,记录并不是达梦数据库的存储单位,页才是。 由于记录不能跨页存储,这样记录的长度就受到数据页大小的限制 。数据页中还包含了页头控制信息等空间,因此达梦规定每条记录的总长度不能超过页面大小的一半。

  3)页

数据页(也称数据块) 是达梦数据库中最小的数据存储单元。页的大小对应物理存储空间上特定数量的存储字节,在达梦数据库中,页大小可以为4KB、8KB、16KB或者32 K B

用户在创建数据库时可以指定,默认大小为8K B ,一旦创建好了数据库,则在该库的整个生命周期内,页大小都不能够改变。

  4)簇

簇是数据页的上级逻辑单元,由同一个数据文件中16个或32个或64个 连续的数据页组成。在达梦数据库中,簇的大小由用户在创建数据库时指定,默认大小16 。假定某个数

据文件大小为32MB页大小为8KB,则共有 32MB/8KB /16 =256 个簇,每个簇的大小为

8K*16=1 28K 。和数据页的大小一样 ,一旦创建好数据库,此后该数据库的簇的大小就不能够改变。

  5)段

段是簇的上级逻辑分区单元,它由一组簇组成。在同一个表空间中,段可以包含来自不

同数据文件的簇,即一个段可以跨越不同的数据文件 。而一个簇以及该簇所包含的数据页则只能来自一个数据文件,是连续的16或者32个数据页。由于簇的数量是按需分配的 ,数据段中的不同簇在磁盘上不一定连续。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29210902/viewspace-2839240/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-04-21

  • 博文量
    4
  • 访问量
    2102