数据库物理结构设计-定义数据库模式结构(概念模式、用户外模式、内模式)、定义数据库、物理结构设计策略

一、引言

如何基于具体的DBMS产品,为数据库逻辑结构设计的结果,即关系数据库模式,制定适合应用要求的物理结构

1、在设计数据库物理结构前,数据库设计人员首先

  • 要充分了解所用的DBMS产品的功能、性能和特点,包括提供的物理环境、存储结构、存取方法和可利用的工具
  • 同时要了解应用需求,对数据库的操作方式和处理频率、时间响应方面的要求
  • 了解数据库存储设备的特性,如磁盘存储区的划分原则,磁盘块的大小以及I/O特性等

2、数据库的物理结构包括数据库的存储结构和存取方法 

  • 数据库存储结构设计

在磁盘上,数据以文件的形式组织,文件又是由记录组成,用一个记录表示一个数据对象,比如一个元组在磁盘块中的连续字节存放 

数据库存储结构的设计,就是要解决数据文件中记录的存储问题,使得应用所要访问的记录尽量存储在同一磁盘块上数据操作所需的磁盘I/O操作最少

  • 数据库存取方法设计 

数据库存取方法的设计,就是要解决如何尽快找到所需记录,找到记录所在磁盘块的磁盘I/O操作次数最少

3、数据库的存储管理,主要由DBMS来完成,数据库管理人员所要做的,主要是如何利用好DBMS提供的功能

4、在物理结构设计阶段,数据库设计人员用SQL语言描述关系数据库的三级模式结构通过定义数据库及数据库中的表以及表上的索引等来确定数据库的文件组织结构、文件存储结构和文件存取方法,并在创建数据库时制定数据库的存储策略

二、定义数据库的模式结构

数据库的三级模式结构定义,需要确定逻辑结构设计阶段得到的关系数据库模式在DBMS中存储的逻辑结构 

  • 包括数据库名称、库文件名称
  • 库中表的名称、表中各属性的名称及其数据类型
  • 确定用户视图名称及其属性名称
  • 以及索引名称等 

(1)名称的定义要符合标识符的命名规则,为便于对数据库进行操作和维护,一般用英文单词来代替表名和属性名 

(2)数据类型一般从DBMS中提供的数据类型中选择

(3)对字符类型,还要确定是CHAR类型还是VARCHAR类型以及字符的最大长度

二、定义概念模式

对学校信息管理系统案例的逻辑设计所得的关系数据库模式

1、首先用SQL的表定义语句来定义各基本关系表,即数据库的概念模式 

(1)定义的学生表student,若表中所有字符串类型都是CHAR类型,则存储的学生记录为定长记录。若考虑到少数民族的姓名的存储,将姓名属性SNAME的类型改为VARCHAR类型,则存储的学生记录为变长记录,数据文件中不同记录的长度大小不同,这就是文件组织结构问题

 数据库设计人员应根据需求分析的结果,确定关系表采用定长记录存储还是变长记录存储

同理其他关系表,如课程表lesson、班级表class、教师表teacher等

(2)在定义基本关系表时,还要定义表中的完整性约束,包括外键及其参照表

 (3)有时还需定义外键的更新策略,而不采用DBMS的默认策略。比如,定义一个学生的子实体集研究生表postgraduate时,主键为学号,同时定义学号是关系的外键,还可以定义外键的更新策略为当对学生表student的主键学号SNO进行删除或修改时,研究生表的学号SNO要做级联的删除和修改,来体现研究生实体与学生实体之间的ISA联系

(4)通过定义完整性约束以及外键的更新策略等,可以保证数据库中存储的数据的一致性和有效性。

三、定义用户外模式

用户外模式的定义主要是定义视图,以适应不同用户对数据的需求,更便于对数据的操作。

比如,为了让用户认为研究生是一个独立的关系,可单独对其进行操作,则可以定义一个视图,来体现研究生关系与学生关系间的继承性,可创建视图s_postgraduate

包含学生表student和研究生表postgraduate进行连接后的所有属性,这样,用户就可以直接在对研究生的所有信息进行查询和更新操作了。在DBMS中,数据存储在学生表和研究生表中,同时存储视图的定义 

四、定义内模式

  • 索引是DBMS采取的主要存取方法,DBMS可基于索引制定优化查询计划,提高数据查询的效率。
  • 而且通过创建索引可确定数据文件的存储结构。所以,索引的设计属于内模式的设计内容

比如,在创建学生成绩GRADE表的同时,基于主键创建聚集索引,可生成一个顺序存储文件,文件记录在磁盘上按学号SNO和课程号LNO属性的值顺序存储在磁盘上,实现了学号SNO相同的元组,按课程号连续存储,从而可高效完成按主键进行的查询,当然也可以在经常用于查询的其他属性列上创建聚集索引。在创建表时,一般DBMS默认按主键创建聚集索引。

而如果在创建学生成绩GRADE表的同时基于主键创建非聚集索引,可生成一个堆存储文件,文件记录在磁盘上按元组插入的顺序进行存储,学号相同的元组可能分散在不同的磁盘块中,虽然不能按主键进行高效的范围查询等,但仍可以利用索引,对某一主键值的元组进行快速访问。在已创建了聚集索引的情况下,仍可在关系表上基于经常做查询的属性列创建非聚集索引。

这里提到的顺序存储文件和堆存储文件就是文件的两种存储结构。对于教学信息管理系统,根据数据查询需求和索引的创建原则,可默认基于主键创建聚集索引。同时,由于经常利用课程名来进行查询,所以还可以在课程关系上基于课程名使用CREATE INDEX语句定义非聚集索引

五、定义数据库

定义完数据库的三级模式结构,可预估各关系表的大小、索引所需的空间等来估算数据库的大小,然后就可以定义数据库,确定存储该数据库的数据文件和日志文件大小以及在DBMS中的逻辑文件名和磁盘上的物理文件名

比如我们要创建的教学信息管理系统数据库需作为一个整体对应至少两个磁盘文件,一个数据文件(.mdf)和一个日志文件(.ldf),数据文件包含数据对象例如表、索引和视图等日志文件包含恢复数据库中事务所需的信息,还可以定义次要文件(.ndf)来存储用户数据,可为数据库的磁盘文件指定存储的磁盘目录

创建数据库时还可利用DBMS产品提供的存储管理技术,如在SQL Server上,可利用其提供的文件组技术,把特定数据存储到指定的物理文件中。

比如可定义教学信息管理系统数据库TMS,数据库包含一个PRIMARY主文件组两个用户定义文件组TMS_FG1和TMS_FG2,主文件组和TMS_FG1文件组分别只对应一个磁盘文件TMS_FG2用户文件组对应两个文件。主文件组包含主数据文件,用户文件组包含次要数据文件。

我们可将经常做连接查询的学生表student和学生成绩GRADE表创建到TMS_FG1中,实现两个表中的数据在同一文件中的聚集存储,还可以将存储大量班级选课信息的election表创建到文件组TMS_FG2,将同一表中数据存储在两个磁盘的不同物理文件中,可实现数据的并发操作,提高数据的存取效率

 为了更好地进行数据库物理结构的设计,数据库设计者有必要了解所用的DBMS的存储管理技术

六、物理结构设计策略

为了提高系统的性能,数据库的物理结构设计应该根据应用系统查询处理要求生成顺序存储文件、堆存储文件或聚集文件等

  • 通过改变存储结构提高存取效率。利用DBMS提供的存储管理技术将数据的易变部分与稳定部分、经常存取部分和存取频率较低的部分分开存放。比如对于数据备份和日志文件备份,由于数据量很大且只在故障恢复时才使用,可以考虑存放在容量大、访问速度较慢的三级存储介质上
  • 通过完善数据布局,减少访问磁盘的I/O操作的次数。将日志文件与与数据库对象放在不同的磁盘上,将表和索引放在不同的磁盘上,将较大的表放在两个磁盘上
  • 有效利用驱动器的并发存取能力,加快存取数据的速度,改进系统的性能

七、小结

完成数据库的物理结构设计后,就可以在选定的DBMS上进行数据库的实施了

1、实施前,数据库设计人员可能还需要对DBMS提供的一些影响存取时间和存储空间分配的系统配置变量、存储分配参数等根据应用环境进行优化配置

2、然后再建立数据库的三级模式,即先创建数据库、库中的基本表,再基于库中的表,创建视图和索引等

八、总结

在装入数据后,就可为应用系统提供数据支持,应用系统通过DBMS来实现对磁盘中数据库中的数据进行查询和更新。

至此,完成了满足数据库应用系统需求的底层数据库的设计与实现 

通过数据库原理到应用的学习,我们应该要具备基于数据库技术的数据抽象与建模能力,有能力对获取的数据进行正确地组织、存储和管理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/750485.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

抖音集成:通过MessageBox引领数字化营销新潮流

抖音集成:通过MessageBox引领数字化营销新潮流 在数字化营销的大潮中,企业需要不断探索新的方式来优化其营销策略,以抓住更多的市场机会。抖音作为一款全球知名的短视频社交平台,凭借其庞大的用户群体和高度互动的特性&#xff0…

亿发进销存管理系统+:多终端无缝协同,实现经营销售场景全覆盖

亿发软件凭借产品、市场、业务的深入理解,在进销存基础上进行了延伸,推出多终端、一体化的“进销存管理系统”多元产品矩阵。对企业经营中进货、出货、销售、付款等进行全程跟踪管理。有效辅助企业解决业务管理、销售管理、库存管理、财务管理等一系列问…

【论文阅读】-- TSR-TVD:时变数据分析和可视化的时间超分辨率

TSR-TVD: Temporal Super-Resolution for Time-Varying Data Analysis and Visualization 摘要1 引言2 相关工作3 我们的循环生成方法3.1 损失函数3.2 网络架构 4 结果与讨论4.1 数据集和网络训练4.2 结果4.3 讨论 5 结论和未来工作致谢参考文献附录1 训练算法及优化2 网络分析…

02.Ambari自定义服务开发-metainfo.xml介绍

文章目录 metainfo.xml 介绍配置说明Hbase metainfo.xml配置说明配置参数详细介绍配置文件样例DORIS metainfo.xml 介绍 ​ 在Ambari自定义开发中,metainfo.xml 配置文件起着至关重要的作用。它用于定义服务的元数据信息,包括服务的版本、组件、执行脚本…

RabbitMQ基本概念

RabbitMQ是AMQP协议的一个开源实现,所以其基本概念也就是的 AMQP 协 议中的基本概念。如图3-1所示是 RabbitMQ 的整体架构图。 Message(消息):消息是不具名的,它由消息头和消息体组成。消息体是不透明的, 而消息头则由一系列可选属性组成&…

六西格玛绿带可以跳过,直接学六西格玛黑带吗?真实情况告诉你

在现代企业管理中,六西格玛(Six Sigma)已经成为提升质量和效率的重要工具。对于很多企业而言,培养内部的六西格玛专家,特别是黑带(Black Belt),是推动持续改进的关键。然而&#xff…

如何用Vue3和Plotly.js实现一个交互式世界地图动画

本文由ScriptEcho平台提供技术支持 项目地址:传送门 利用 Plotly.js 创建交互式世界生命预期地图 应用场景 本代码展示了如何使用 Plotly.js 创建一个交互式世界生命预期地图,允许用户按年份浏览不同国家和地区的生命预期数据。该地图可以用于研究世…

电脑文件concrt140.dll丢失要怎么恢复?靠谱修复方法分析

电脑文件concrt140.dll丢失这种情况,相对来说还是比较少见的!但是不代表没有,既然有人出现这种情况了,那么小编势必要给大家详细的讲解一下concrt140.dll这个文件,以及我们要怎么去解决concrt140.dll文件丢失的问题。下…

技术贴 | RNA甲基化修饰m6A的检测——MeRIP-seq

01 m6A是什么 目前在细胞RNA中已经识别到了超过100种化学修饰,其中RNA甲基化修饰在生命活动中有着非常重要的作用(Xu et al 2020)。RNA甲基化是指在甲基转移酶的催化下,在RNA分子上的某一个原子上添加一个甲基基团(CH3)。RNA甲基化修饰类型有很多&#…

架构师篇-5、架构语言-ArchiMate

内容摘要: TOGAF内容元模型TOGAF架构语言ArchiMate3ArchiMate实践案例分享 TOGAF内容框架【核心内容元模型】 作为一个通用且开放式的标准,TOGAF需要采用一种非常灵活的方式来对其内容元模型进行定义,从而使得不同的企业可以根据自身需要对…

Swagger2及常用校验注释说明

Api(value "后台用户管理") RestController RequestMapping("bossuser") public class BossUserController {ApiOperation(value "测试接口")PostMapping("test")public String testUser(Valid RequestBody TestUser user) {LOG.inf…

vue表头字段添加鼠标悬浮提示

<el-table-column prop"jfScore" align"center" min-width"100px"><template slot"header" slot-scope"scope"><div><span>信用积分</span><el-tooltip:aa"scope"class"it…

nodepad 中换行符、tab替换

1 nodepad 主要符号 换行符: \r\n&#xff08;windows&#xff09; tab: \t 2 展示符号 3 相互替换 tip:需要点击扩展 参考&#xff1a; https://blog.csdn.net/lijing742180/article/details/85174564

服务器出现意外情况。(Exception from HRESULT: 0x80010105(RPC E SERVERFAULT))

这种情况一般出现在excel2007版本&#xff0c;下载了什么阅读器之类的 2007改不了这个加载项&#xff0c;需要重装一个其他版本&#xff08;2010版本可以&#xff09; 然后如下操作修改为COM加载项

步步深入SpringMvc DispatcherServlet源码掌握springmvc全流程原理

文章目录 步步深入SpringMvc DispatcherServlet源码掌握springmvc全流程原理继承关系入口 DispatcherServlet#doDispatch多文件上传解析获取处理器handler的完整注册流程获取HandlerAdapter执行拦截器PreHandle执行HandlerAdapter.handle参数解析器HandlerMethodArgumentResolv…

抖音外卖服务商有哪些,盘点这几家正规服务商!

当前&#xff0c;抖音外卖的关注度不断上涨&#xff0c;抖音外卖服务商也逐渐成为了众多创业者心中的理想创业赛道。在此背景下&#xff0c;抖音外卖服务商的入局途径多次引发创业者热议&#xff0c;以抖音外卖服务商有哪些公司为代表的相关话题更是长期位居创业者问题榜单的前…

走进机器学习

第1关&#xff1a;走进机器学习 机器学习简介 机器学习近年来被大规模应用在各种领域&#xff0c;特别是 NLP 领域。虽然机器学习是门建立在统计和优化上的新兴学科&#xff0c;但是在自然语言处理、数据科学等领域&#xff0c;它却占据着核心的地位。 图 1 机器学习最初的研…

论文降重困难重重?AI降重来帮忙

论文查重和降重是确保学术成果原创性及学术诚信的关键步骤&#xff0c;直接影响我们的学业成果和毕业资格。传统的论文查重方法主要包括使用查重软件和个人自查&#xff0c;而论文降重通常涉及改写、使用同义词替换、内容的扩展和深化&#xff0c;以及正确的引用和注释等方式来…

企业数据治理的下一步是数据资产管理?

随着信息技术的飞速发展和数字化转型的深入推进&#xff0c;企业数据已成为驱动业务增长和创新的核心要素。当企业数据治理工作取得显著成效后&#xff0c;如何进一步发挥数据的价值&#xff0c;实现数据资产的有效管理&#xff0c;成为企业面临的重要课题。 数据治理的基石作用…

记录一次OPDS trunc()函数使用错误

说明&#xff1a;本文介绍 场景 在一次SQL查询时&#xff0c;需要对结果值保留两位小数&#xff0c;不四舍五入&#xff0c;直接截取到小数点后两位。如 59.156到59.15&#xff0c;23.2134到23.21&#xff0c;查看官方帮助文档&#xff08;https://help.aliyun.com/zh/maxcom…