首页 > 数据库 >数据库设计_5.物理设计

数据库设计_5.物理设计

时间:2024-03-28 22:01:14浏览次数:29  
标签:存储 记录 数据库 索引 设计 数据 物理

        一般来说,物理设计的主要工作步骤包括确定数据分布、存储结构和访问方式。

1.确定数据分布

         从企业计算机应用环境出发,需要确定数据是集中管理还是分布式管理,目前企业内部网及因特网的应用越来越广泛,数据大都采用分布式管理。对于数据如何分布需要从以下几个方面进行考虑。

        (1)根据不同应用分布数据。企业的不同部门一般会使用不同的数据,将与部门应用相关的数据存储在相应的场地,使得不同的场地上处理不同的业务,对于应用多个场地的业务,可以通过网络进行数据处理。

        (2)根据处理要求确定数据的分布。对于不同的处理要求,也会有不同的使用频度和相应时间,对于使用频度高、响应时间短的数据,应存储在高速设备上。

        (3)对数据的分布存储必然会导致数据的逻辑结构的变化,要对关系模式作新的调整,需要回到数据库逻辑设计阶段做必要的修改。

2.确定数据的存储结构

         存储结构具体指数据文件中记录之间的物理结构。在文件中,数据是以记录为单位存储的,可以采用顺序存储、哈希存储、堆存储和B^{+}树存储等方式。在实际应用中,要根据数据的处理要求和变更频度选定合理的物理结构。

        为提高数据的访问速度,通常会采用索引技术。在物理设计阶段,要根据数据处理和修改要求,确定数据库文件的索引字段和索引类型。

3.确定数据的访问方式

         数据的访问方式是由其存储结构所决定的,采用什么样的存储结构,就使用什么样的访问方式。数据库物理结构主要有存储记录格式、记录在物理设备上的安排及访问路径(存取方法)等构成。

3.1存储记录结构设计

         存储记录结构包括记录的组成、数据项的类型、长度和数据项间的联系,以及逻辑记录到存储记录的映射。在设计记录的存储结构时,并不改变数据库的逻辑结构,但可以在物理上对记录进行分割。数据库中数据项的被访问频率是很不均匀的,基本上符合公认的“80/20规则”,即“数据库中检索的80%的数据由其中的20%的数据项组成”。

        当多用户同时访问常用数据项时,往往会因为访盘冲突而等待。若将这些数据分布在不同的磁盘组上,当多用户同时访问常用数据项时,系统可并行地执行I/O,从而减少访盘冲突,提高数据库的性能。可见对于常用关系,最好将其水平分割称多个片,分布到多个磁盘组上,以均衡各个磁盘组的负荷,发挥多磁盘组并行操作的优势,提高系统性能。

3.2存储记录布局

         存储记录的布局,就是确定数据的存放位置。存储记录作为一个整体,如何分布在物理区域上,是数据库物理结构设计的重要环节。采用聚簇功能可以大大提高按聚簇码进行查询的效率。聚簇不但可用于单个关系,也适用于多个关系。

        建立聚簇索引的原则如下。

        (1)聚簇码的值相对稳定,没有或很少需要进行修改。

        (2)表主要用于查询,并且通过聚簇码进行访问或连接是该表的主要应用。

        (3)对应每个聚簇码值的平均元组数既不太多,也不太少。

3.3存取方法的设计

        存取方法是为存储在物理设备(通常是外存储器)上的数据提供存储和检索的能力,是快速存取数据库中数据的技术。存取方法包括存储结构和检索机制两部分。 其中存储结构限定了可能访问的路径和存储记录;检索机制定义了每个应用的访问路径。数据库系统是多用户共享系统,对同一个关系建立多条存取路径才能满足多用户的多种应用要求。为关系建立多种存取路径是数据库物理设计的任务之一。

        在数据库中建立存取路径最普遍的方法是建立索引。确定索引的一般顺序如下。

        (1)首先可确定关系的存储结构,即记录的存放是无序的,还是按某属性(或属性组)聚簇存放。

        (2)确定不宜建立索引的属性或表。对于太小的表、经常更新的属性或表、属性值很少的表、过长的属性、一些特殊数据类型的属性(大文本、多媒体数据)和不出现或很少出现在查询条件中的属性不宜建立索引。

        (3)确定宜建立索引的属性。例如,关系的主码或外部码、以查询为主或只读的表、范围查询、聚集函数(Min、Max、Avg、Sum、Count)或需要排序输出的属性可以考虑建立索引。

        索引一般还需在数据库运行测试后,在加以调整。在RDBMS中,索引是改善存取路径的重要手段。使用索引的最大优点是可以减少检索的CPU服务时间和I/O服务时间,改善检索效率。但是,不能对进行频繁存储操作的关系建立过多的索引,因为过多的索引也会影响存储操作的性能。

标签:存储,记录,数据库,索引,设计,数据,物理
From: https://blog.csdn.net/huaqianzkh/article/details/137088197

相关文章

  • C程序设计(第五版)谭浩强---第十章 文件的输入输出习题
    例1:从键盘输入一些字符,并逐个把它们送到磁盘上去,直到用户输入一个'#'为止#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>#include<stdlib.h>intmain(){ FILE*fp; charch,filename[20]; printf("输入文件名:"); gets_s(filename); if((fp=fopen(filename......
  • Python机器学习从入门到高级:导入数据(包含数据库连接)
    python数据科学系列https://developer.aliyun.com/article/1174199 ......
  • Qt5.14.2 无所不能的Qt数据库操作之旅
    身为程序员,数据库无疑是我们最为亲密无间的好伙伴。但如何高效地操作数据库,却一直是一个令人颇感棘手的难题。不过,没关系,我们的Qt大神们早已为此开辟出一条华丽绝伦的大道,就让我带你一览他们的绝世数据库操作艺术吧!一、查询驱动,方能驱车万里在对数据库开展操作之前,我......
  • 基于Java的学生体质健康管理系统的设计与实现
    摘 要随着时代的进步,信息化也在逐渐深入融进我们生活的方方面面。其中也给健康管理带来了新的发展方向。通过对学生体质健康管理的研究与分析发现当下的管理系统还不够全面,系统的性能达不到使用者的要求。因此,本文结合Java的优势和流行性,使用Java语言和SpringBoot框架进行构......
  • 美食推荐系统的设计与实现
    摘 要21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到准确、快速、完善,并能提高工作管理效率,促进其发展。论文主要是对美食推荐管理系......
  • 领域驱动设计简介
    ​ 领域驱动设计(Domain-DrivenDesign,简称DDD)是一种软件开发方法论,旨在通过丰富的领域模型来解决复杂问题。它强调基于领域的逻辑来驱动设计,而非技术实现细节,以此来促进软件项目的成功。DDD的核心在于理解业务领域,并将这种理解反映在软件中。参考文档:领域驱动设计简介-CJavaPy......
  • Mysql(数据库)知识详解【4】~{索引,主键优化}
    记住满元素中间元素向上裂变就行了因为如果是5个节点,比第一个节点小的算一个指针,逼最后一个节点大的算一个指针,里面是4个指针所有元素都会出现在叶子节点并且诸多叶子节点通过指针构造一张单项链表看我:除了最下面节点,上面的节点(叶子空间最大16k)全部放满内存......
  • [附源码]计算机毕业设计保险客户管理系统(JSP+java+springmvc+mysql+MyBatis)
    本项目包含程序+源码+数据库+LW+调试部署环境,文末可获取一份本项目的java源码和数据库参考。项目文件图项目介绍在现代保险行业中,客户管理系统对于提升客户服务水平、增强客户满意度和构建长期客户关系至关重要。随着大数据和人工智能技术的发展,保险公司迫切需要一个先进的......
  • [附源码]计算机毕业设计技术文档管理系统(JSP+java+springmvc+mysql+MyBatis)
    本项目包含程序+源码+数据库+LW+调试部署环境,文末可获取一份本项目的java源码和数据库参考。项目文件图项目介绍技术文档管理系统是企业信息化建设的重要组成部分,它关系到知识的积累、共享和管理效率。随着企业规模的扩大和业务的多样化,传统的文件管理方式已无法满足快速检......
  • java计算机毕业设计(附源码)学生日常行为评分系统(ssm+mysql+maven+LW文档)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:在教育过程中,学生的行为举止不仅反映了个人素养,也是学校文化和教育质量的直接体现。传统的德育评价体系多依赖于教师的主观观察和判断,这种方式往往存在一......