数据库的物理结构设计指的是什么?

数据库的物理结构设计指的是什么?,第1张

Log File物理结构

从 ib_logfile0和 ib_logfile1这两个文件的物理结构可以看出,在Log Header部分还是有些许差异的, ib_logfile0会多一些额外的信息,主要是checkpoint信息。

并且每个Block的单位是512字节,对应到磁盘每个扇区也是512字节,因此redo log写磁盘是原子写,保证能够写成功,而不像index page一样需要double write来保证安全写入。

我们依次从上到下来看每个Block的结构

Log File Header Block

Log Goup ID,可能会配置多个redo组,每个组对应一个id,当前都是0,占用4字节

Start LSN,这个redo log文件开始日志的lsn,占用8字节

Log File Number,总是为0,占用4字节

Created By,备份程序所占用的字节数,占用32字节

另外在ib_logfile0中会有两个checkpoint block,分别是 LOG_CHECKPOINT_1/ LOG_CHECKPOINT_2,两个记录InnoDB Checkpoint信息的字段,分别从文件头的第二个和第四个block开始记录,并且只在每组log的第一个文件中存在,组内其他文件虽然没有checkpoint相关信息,但是也会预留相应的空间出来。这里为什么有两个checkpoint的呢?原因是设计为交替写入,避免因为介质失败而导致无法找到可用的checkpoint的情况。

Log blocks

请点击输入图片描述

log block结构分为日志头段、日志记录、日志尾部

Block Header,占用12字节

Data部分

Block tailer,占用4字节

Block Header

这个部分是每个Block的头部,主要记录的块的信息

Block Number,表示这是第几个block,占用4字节,是通过LSN计算得来的,占用4字节

Block data len,表示该block中有多少字节已经被使用了,占用2字节

First Rec offet,表示该block中作为第一个新的mtr开始的偏移量,占用2字节

Checkpoint number,表示该log block最后被写入时的检查点的值,占用4字节

数据库逻辑设计是整个设计的前半段,包括所需的实体和关系,实体规范化等工作。设计的后半段则是数据库物理设计,包括选择数据库产品,确定数据库实体属性(字段)、数据类型、长度、精度确定、dbms页面大小等。

数据库设计主要包括需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库的实施和数据库的运行和维护,具体内容如下:

1、需求分析

内容:调查和分析用户的业务活动和数据的使用情况,弄清所用数据的种类、范围、数量以及它们在业务活动中交流的情况,确定用户对数据库系统的使用要求和各种约束条件等,形成用户需求规约。

2、概念设计

内容:对用户要求描述的现实世界,通过对其中诸处的分类、聚集和概括,建立抽象的概念数据模型。这个概念模型应反映现实世界各部门的信息结构、信息流动情况、信息间的互相制约关系以及各部门对信息储存、查询和加工的要求等。

3、逻辑设计

内容:主要工作是将现实世界的概念数据模型设计成数据库的一种逻辑模式,即适应于某种特定数据库管理系统所支持的逻辑数据模式。与此同时,可能还需为各种数据处理应用领域产生相应的逻辑子模式。这一步设计的结果就是所谓“逻辑数据库”。

4、物理设计

内容:根据特定数据库管理系统所提供的多种存储结构和存取方法等依赖于具体计算机结构的各项物理设计措施,对具体的应用任务选定最合适的物理存储结构(包括文件类型、索引结构和数据的存放次序与位逻辑等)、存取方法和存取路径等。

5、验证设计

内容:收集数据并具体建立一个数据库,运行一些典型的应用任务来验证数据库设计的正确性和合理性。一般,一个大型数据库的设计过程往往需要经过多次循环反复。当设计的某步发现问题时,可能就需要返回到前面去进行修改。

6、运行与维护设计

内容:在数据库系统正式投入运行的过程中,必须不断地对其进行调整与修改。除了关系型数据库已有一套较完整的数据范式理论可用来部分地指导数据库设计之外,尚缺乏一套完善的数据库设计理论、方法和工具,以实现数据库设计的自动化或交互式的半自动化设计。

扩展资料:

重要性

1、有利于资源节约

对计算机软件数据库设计加以重视不仅可减少软件后期的维修,达到节约人力与物力的目的,同时还有利于软件功能的高效发挥。

2、有利于软件运行速度的提高

高水平的数据库设计可满足不同计算机软件系统对于运行速度的需求,而且还可充分发挥并实现系统功能。计算机软件性能提高后,系统发出的运行指令在为用户提供信息时也将更加快速有效,软件运行速度自然得以提高。

3、有利于软件故障的减少

加强数据库设计可有效减少软件故障的发生几率,推动计算机软件功能的实现。

参考资料来源:百度百科-数据库设计


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10805316.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存