最新要闻
- 世界今头条!ChatGPT王炸更新!能联网获取新知识、可与5000+个应用交互:太疯狂了
- 国产科幻FPS大作来了!《边境》官宣4月14日正式发售
- 全球热资讯!深圳一兰博基尼车头被教练车撞瘪 驾校:车上有一学员
- 国光电器:计划年内推出搭载类GPT硬件产品
- 大V实测百度AI画图:输入“刘慈欣” 打死也想不出画的是啥
- 每日时讯!海底捞回应孕妇可以插队:目前仅黑海会员有排队优先权益
- 当前滚动:中国移动:2023年营收将突破1万亿 利润或有史以来最高
- 全球实时:德媒:纳格尔斯曼昨天还在与女友一起度假,今天就面临下课
- ChatGPT又一个重磅功能插件系统上线 胡说八道的毛病治好了
- 焦点短讯!电影《铃芽之旅》预售票房破亿:3月24日上映
- 不速之约电视剧剧情
- 前沿资讯!美国智库:25%美成年人吃不饱饭 很多人应急储蓄不足500美元
- 理想MPV预告图泄露 李想微博回应 还有5款纯电车型
- 微星发布第二款不用风扇的PCIe 5.0 SSD:又是尴尬的残血
- 贾跃亭真成了 法拉第未来宣布:FF 91将于3月30日开始生产
- 《CS》终于迎来一波超级大更新:有倒爷一晚上赚了几十万!
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
数据库系统原理之数据库设计
数据库设计
一、数据库设计概述
数据库的生命周期
从数据库演变过程的角度来看,数据库的生命周期可分为两个阶段:
【资料图】
- 数据库分析与设计阶段
- 需求分析
- 概念设计
- 逻辑设计
- 物理设计
- 数据库实现与操作阶段
- 数据库的实现
- 操作与监督
- 修改与调整
数据库设计的目标
- 满足应用功能需求:主要是指用户当前与可预知的将来应用所需要的数据及其联系,应全部准确地存储在数据库之中,从而可满足用户应用中所需求的对数据进行的存、取、删、改等操作。
- 良好的数据库性能:主要是指对数据的高效率存取和空间的节省,并具有良好的数据共享性、完整性、一致性及安全保密性。
数据库设计的内容
- 数据库结构设计
- 针对给定的应用环境进行数据库的模式或子模式的设计,包括数据库的概念结构设计、逻辑结构设计和物理结构设计
- 模式定义并给出各应用程序共享的结构,是静态的,一经形成通常不会改变
- 数据库行为设计
- 确定数据库用户的行为和动作,而用户的行为和动作是对数据库的操作,它们通常是通过应用程序来实现的
- 由于用户的行为会使数据库的内容发生变化,所以行为设计是动态的
数据设计的方法
- 直观设计法
- 一类最原始的数据库设计方法,它利用设计者的经验和技巧来设计数据库模式
- 由于缺乏科学理论的指导,设计的质量很难保证,因此这种方法已不适应如今信息系统的开发
- 规范设计法
- 一类较为普遍、常用的数据库设计方法
- 新奥尔良(New Orleans)设计方法
- 1978年提出,是目前公认的较为完整和权威的一种规范设计方法
- 将数据库设计分为四个阶段,分别是需求分析、概念结构设计、逻辑结构设计和物理结构设计,它注重数据库的结构设计、而不太考虑数据库的行为设计
- 基于E-R模型的数据库设计方法
- P.P.SChen于1976年提出的
- 基本思想是在需求分析的基础上用E-R图构造一个反映现实世界实体之间联系的企业模式,然后将此模式转换成某一特定DBMS下的概念模式
- 基于第三范式的设计方法
- 一类结构化设计方法
- 其思想是在需求分析的基础上首先确定数据库的模式、属性及属性间的依赖关系,然后将它们组织在一个单一的关系模式中,再分析模式中不符合第三范式的约束条件,进行模式分解,规范成若干个第三范式关系模式的集合
- 计算机辅助设计法
- 在数据库设计过程中,以领域专家的知识或经验为主导,模拟某一规范化设计的方法,通常通过人机交互的方式来完成设计的某些过程
- 目前,许多计算机辅助软件工程工具(俗称CASE工具),可以用来帮助数据库设计人员完成数据库设计的一些工作,如此可减轻数据库设计人员的工作量,加快数据库设计的进度,例如Rational公司的Rational Rose等
数据库设计的过程
- 需求分析阶段
- 结构设计阶段
- 概念结构设计
- 逻辑结构设计
- 物理结构设计
- 行为设计阶段
- 功能设计
- 事务设计
- 程序设计
- 数据库实施阶段
- 加载数据库数据
- 调试运行应用程序
- 数据库运行和维护阶段
数据库设计过程实际上是一个反复修改、反复设计的迭代过程
二、数据库设计的基本步骤
1 需求分析
- 需求分析的目标是了解与分析用户的信息及应用处理的要求,并将结果按一定格式整理而形成需求分析报告。
- 数据库设计人员进行需求分析的基本方法是听取数据库应用部门工作人员的报告,并与之座谈。同时,需求分析人员可提交一份需求调查表,该表内容主要包括调查的内容和要求提供资料的格式,应用部门的业务人员则可根据该表进行准备和提交材料。此外,数据库设计人员还需查阅原始资料,以及跟班作业等。
确定数据库范围
应用过程分析
收集与分析数据
- 静态结构
- 数据分类表:用于数据的总体描述
- 数据元素表:通常意义下的数据项或属性
- 动态结构:概念设计和物理设计的重要依据
- 任务分类表
- 数据操纵特征表
- 数据约束
- 数据的安全保密性
- 数据的完整性
- 响应时间
- 数据恢复
- 静态结构
编写需求分析报告
- 实际上,需求分析报告是在需求分析的过程中逐渐整理而形成的,是随着该过程的不断深入而反复修改与完善的。
- 需求分析报告通常包含如下内容
- 数据库的应用功能目标(功能、性能)
- 标明不同用户视图范围(权限、用户、角色)
- 应用处理过程需求说明
- 数据流程图
- 任务分类表
- 数据操纵特征表
- 操作过程说明书
- 数据字典
- 数据字典(Data Dictionary, DD)是数据库系统中存储三级结构定义的数据库,通常指的是数据库系统中各类数据详细描述的集合。
- 功能是存储和检索各种数据描述,即元数据(Metadata)
- 通常包括数据分类表、数据元素表和各类原始资料
- 数据量
- 数据约束
2 概念结构设计
- 概念结构设计的任务是在需求分析中产生的需求分析报告的基础上,按照特定的方法设计满足应用需求的用户信息结构,该信息结构通常称为概念模型。
- 概念模型独立于任何软件与硬件,其设计的主要目标是最大限度地满足应用需求,可完全不顾及具体的硬件和软件的限制,特别是DBMS的限制,因而它是一个符合用户要求的趋于理想化的信息结构。
- 概念结构设计的常用方法有实体分析法和属性综合法两种,它们也分别称为自顶向下法和自底向上法。
3 逻辑结构设计
逻辑结构设计的目标是讲概念模型转换为等价的、并为特定DBMS所支持数据模型的结构。数据库逻辑模型一般由层次、网状、关系数据模型表示。
- 逻辑结构设计的输入与输出信息
- 输入信息
- 独立于特定DBMS的概念模型
- 有关响应时间、安全保密性、数据完整性及恢复方面的要求说明,包括保持数据一致性的规则说明
- 数据量及使用频率
- 特定DBMS特性,包括DBMS支持的数据模型及数据定义语言的说明
- 输出信息
- 一个特定DBMS支持的概念模型,或称之为模型
- 一个或多个外部视图,或称之为子模式
- 物理设计说明,其主要包括存入数据库中的数据量、使用频率及响应时间要求
- 程序设计说明,其是在需求分析的基础上,根据已完成的逻辑模型,编制各程序名、执行逻辑步、存取数据的名、顺序及操作特征(读、写、删、改)的说明
- 输入信息
- 逻辑结构设计的步骤
start=>start: 概念设计operation1=>operation: 模型转换operation2=>operation: 子模式设计(左)operation3=>operation: 应用程序设计说明(右)operation4=>operation: 设计评价end=>end: 物理设计start->operation1->operation2->operation3->operation4->end
其中:
- 模型转换是指将概念模型等价地转换为特定DBMS支持的关系模型、网状模型或层次模型。对于一个特定的应用环境,通常只转换为用户要求的某个特定DBMS所支持的一种模型表示。
- 子模式设计的目标是抽取或导出模式的子集,以构造不同用户使用的局部数据逻辑结构。具体的规则在DBMS的使用指南中通常会有明确的说明。
- 编制应用程序设计说明的目的是为可实际运行的应用程序设计提供依据与指导,并作为设计评价的基础。
- 设计评价的任务是分析并检验模型及子模式的正确性与合理性,其方法是通过程序设计指南中提交的程序执行逻辑步骤在子模式上的模拟执行来考核模型及子模式是否满足应用需求,有无遗漏,并进一步估计数据容量及存取效率,为物理设计提供参考信息。评价分析中,如若发现不合理之处,则返回到模型转换处重新执行,如此反复,直至满足要求为止。
4 物理设计
- 物理设计是指对于一个给定的数据库逻辑结构,研究并构造物理结构的过程,其具体任务主要是确定数据库在存储设备上的存储结构及存取方法,因DBMS的不同还可能包括建立索引和聚集,以及物理块大小、缓冲区个数和大小、数据压缩的选择等。
5 数据库实施
- 加载数据
- 数据的收集(人工)
- 分类(人工)
- 整理(人工)
- 校验(程序)
- 输入(程序)
- 应用程序设计
- 数据库试运行
6 数据库运行和维护
- 数据库系统投入实际运行标志着数据库设计和应用开发的基本完成,但绝不意味着设计和应用开发工作的终止。
- 系统维护中最困难的工作是数据库重组与重构
- 重组是当空间利用率和存取效率下降时进行的,它并不改变数据库的逻辑结构和物理结构,只是利用DBMS提供的设施调整数据库中数据的存储位置,从而回收“碎片”,使有关联的数据尽可能靠近存放,达到提高空间利用率和数据存取效率的目的。
- 重构是指部分修改数据库的逻辑结构或物理结构,这往往因应用需求的改变与拓展或发现当初的设计欠妥而引起的,例如增、删、改数据类型,增、删、改索引和聚集等。
三、关系数据库设计方法
关系数据库是一类采用关系模型作为逻辑数据模型的数据库系统,它的设计过程遵从数据库设计的基本步骤,即同样包含需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库的运行和维护等这样一些阶段,其中关系数据库的概念结构设计与逻辑结构设计是关系数据库整个设计过程的关键。
1 关系数据库设计过程与各级模式
2 概念结构设计方法
- E-R图的表示方法
- 实体型,其用矩形表示,矩形框内写明实体的名称
- 属性,其用椭圆形表示,并用无向边将其与相应的实体连接起来
- 联系,其用菱形表示,菱形框内写明联系的名称,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、 1:N、 M:N),如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。
实体之间的联系:
(1)两个实体型之间的联系
- 一对一联系(1:1)
- 一对多联系(1:N)
- 多对多联系(M:N)
一对一联系是一对多联系的特例,一对多联系是多对多联系的特例
(2)两个以上的实体型之间的联系
(3)单个实体型内的联系
- 局部信息结构设计
- 确定局部范围
- 选择实体
- 数据分类表是选择实体的直接依据
- 在同一局部信息结构中的实体名称应具有唯一性
- 选择实体的关键字属性
- 确定实体间的联系
- 确定实体的属性
- 标识属性:实体的关键字
- 说明属性:描述实体的一般特征 (单值的)
- 全局信息结构设计
- 各局部E-R图之间的冲突
- 属性冲突
- 属性域冲突,即属性值的类型、取值范围、取值集合的不同
- 属性取值单位冲突
- 命名冲突
- 同名异义
- 异名同义
- 结构冲突
- 同一对象在一个局部E-R图中作为实体,而在另一局部E-R图中作为属性
- 同一实体在不同的E-R图中属性个数和类型不同
- 实体之间的联系在不同的E-R图中是不同的类型
- 属性冲突
- 一个好的全局E-R模型除能反映用户功能需求之外,还应满足下列条件:
- 实体类型个数尽可能少
- 实体类型所含属性尽可能少
- 实体类型间联系无冗余
- 各局部E-R图之间的冲突
3 逻辑结构设计方法
- E-R图向关系模型的转换
- 一个实体型转换为一个关系模式。实体的属性作为关系的属性,实体的码作为关系的码
- 一个一对一(1:1)联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并
- 一个一对多(1:N)联系可以转换为一个独立的关系模式,也可以与N端对应的关系模式合并
- 一个多对多(M:N)联系转换为一个关系模式
- 三个或三个以上实体间的一个多元联系可以转换为一个关系模式
- 具有相同码的关系模式可合并
- 数据模型的优化(方法)
- 确定各属性间的函数依赖关系
- 对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系
- 判断每个关系模式的范式,根据实际需要确定最合适的范式
- 按照需求分析阶段得到的处理要求,分析这些模式对于这样的应用环境是否合适,确定是否要对某些模式进行合并或分解
- 对关系模式进行必要的分解,提高数据操作的效率和存储空间的利用率
- 设计用户子模式
- 可以通过视图机制在设计用户视图时,重新定义某些属性的别名,使其更符合用户的习惯,以方便使用
- 可以对不同级别的用户定义不同的视图,以保证系统的安全性
- 简化用户的对系统的使用
4 物理设计方法
物理设计的任务主要是通过对关系建立索引和聚集来实现与应用相关数据的逻辑连接和物理聚集,以改善对数据库的存取效率
- 建立索引
- 静态 (用户较多且使用周期相对较长的数据)
- 动态 (单独用户或临时性使用)
- 建立聚集
- 聚集是将相关数据集中存放的物理存储技术,借以提高I/O的数据命中率而改善存取速度,其功能由具体的DBMS所提供,如MySQL。
- 集中存放时指将相关数据尽可能地存放于一个物理块中,或一个磁道中,或一个柱面中,或相邻区域(块、磁道、柱面)中。
- 数据聚集结构的一种有效方式是块结构方式,块与块之间由指针连接,一个块对应于一个物理分区。
- 数据聚集可在一个或多个关系式建立。
关键词:
数据库系统原理之数据库设计
世界时讯:安全高效 | AIRIOT智慧工地管理解决方案
世界今头条!ChatGPT王炸更新!能联网获取新知识、可与5000+个应用交互:太疯狂了
国产科幻FPS大作来了!《边境》官宣4月14日正式发售
全球热资讯!深圳一兰博基尼车头被教练车撞瘪 驾校:车上有一学员
国光电器:计划年内推出搭载类GPT硬件产品
【报资讯】读C#代码整洁之道笔记05_使用工具改善代码和单元测试
SaaS 营销怎么做?几点思考
Bitmap、RoaringBitmap原理分析
焦点快播:【金融街发布】人民银行上海总部:2月长三角地区人民币贷款增加6039亿元
大V实测百度AI画图:输入“刘慈欣” 打死也想不出画的是啥
每日时讯!海底捞回应孕妇可以插队:目前仅黑海会员有排队优先权益
当前滚动:中国移动:2023年营收将突破1万亿 利润或有史以来最高
当前观点:【新华财经调查】大全能源“逆势”扩产近两倍 坦陈今年终端需求不确定性较大
全球实时:德媒:纳格尔斯曼昨天还在与女友一起度假,今天就面临下课
ChatGPT又一个重磅功能插件系统上线 胡说八道的毛病治好了
焦点短讯!电影《铃芽之旅》预售票房破亿:3月24日上映
不速之约电视剧剧情
当前要闻:读Java性能权威指南(第2版)笔记26_性能测试方法下
前沿资讯!美国智库:25%美成年人吃不饱饭 很多人应急储蓄不足500美元
快播:crackme002-abexcm5
理想MPV预告图泄露 李想微博回应 还有5款纯电车型
微星发布第二款不用风扇的PCIe 5.0 SSD:又是尴尬的残血
贾跃亭真成了 法拉第未来宣布:FF 91将于3月30日开始生产
《CS》终于迎来一波超级大更新:有倒爷一晚上赚了几十万!
【天天聚看点】又吵上了热搜:网友称海底捞水果仅限打包一份
今年又有多少让人扶额的青团?
世界最资讯丨商务部:美方应尽早取消对华加征的301关税
每日时讯!5 Why 分析法,一种用于归纳抽象出解决方案的好方法
环球视点!day11-2-内置Tomcat的配置和切换
微服务实用篇--学习笔记
全球今日报丨C++ 标准库 sort() / stable_sort() / partial_sort() 对比
天天快讯:Docker 开始清退开源组织,不付费就删除所有私镜像怎么看
《暗黑破坏神4》B测神优化!N多RTX 3080 Ti惨遭黑屏变砖 暴雪:概不负责
天天新消息丨737 Max客机空难致346人丧生 波音最新表态:速度过快 乘客毫无痛苦地死去
海外爆发迄今最严峻禽流感疫情:专家详解
世界热点评!AMD终于能享受192GB内存了!连跑2小时0错误
当前热文:72.标准库类型vector
React的生命周期
关于使用AWS的CDN-CloudFront的费用计算及说明
全球即时:【财经分析】美联储连续第九次加息 抗通胀仍是主旋律
特斯拉一“咳嗽”:国内汽车行业加速洗牌了
《艾尔登法环》更新上线 终于加入了光追功能
如何知道自己怀的是男孩女孩?(如何知道自己怀的是男孩女孩)
全球最新:Styled Components 备忘清单_开发速查表分享
观热点:《艾尔登法环》光追配置需求公布:最低需RTX 3060 Ti
世界热门:48岁林志玲晒素颜近照:网友点赞笑容甜美状态好
天天日报丨DLL注入-Windows消息钩取
动态焦点:网络安全(中职组)-B模块:Web渗透测试
微信小程序原生AI运动(动作)检测识别解决方案
每日热闻!美联储表态已现温和迹象 市场仍存下半年降息“奢望”
天天最资讯丨中国人民大学苏州校区专业有哪些专业_中国人民大学苏州校区怎么样
焦点热讯:净利润翻倍超18亿元 爱玛电动车业绩大增送出股权激励
天天热点!1799元一台顶三台!小米米家无线洗地机2 Lite预售:吸拖洗都行
每日快看:蔚来CFO评价中国车企价格战:中国车企太多了
【快播报】私拉线路充电致17辆电动自行车被烧毁:科普飞线充电危害
今日要闻!华硕ROG新款XG Mobile显卡坞上市:搭载RTX 4090移动版 售价超2万
Vue 核心(一)
从零开始搞一个androidApp,实现h5自动更新、jsbridge
快资讯:“星月童话”来了!月掩金星天象明晚亮相:错过要等3年
天天百事通!女生疑在奶茶中喝出10余颗玻璃珠:店家回应
视点!黄金定价模式生变背后:央行们正失去对货币环境的控制
泉水煮蛋怎么做
记录--你还在傻傻的npm run serve吗?快来尝尝这个!
CloudQuery 社区重启 | 愿归来仍是少年
ChatGPT为我们带来了什么?
.net core 关于对swagger的UI(Index.html)或接口的权限验证;
每日头条!oracle学习之路(5)Navicat连接Oracle数据库:Oracle library is not loaded 解决方案
世界快资讯丨美联储鸽派声明缓解日本央行政策压力 日债收益率多数下跌
瑞士央行加息50个基点至1.50% 不排除进一步加息可能
全球短讯!常用消毒剂无效 致命真菌在美国蔓延:近半感染者90天内死亡
《龙马精神》推广曲《真心英雄》MV出炉:成龙郭麒麟重唱经典
环球聚焦:二手路虎变法拉利!男子80万买到泡水路虎 车商被判退一赔三
天天播报:CSAPP-Bomb Lab
全球快资讯丨Python工具箱系列(二十九)
视焦点讯!让业务容器化更安全便捷,阿里云容器镜像服务 ACR 推出免费制品中心
环球热点评!云服务器部署AI绘图记录
全球热资讯!pdf.js 使用
今日要闻!尿道结石怎么治疗才能除病根_尿道结石该怎么治疗
虚幻引擎5推出重磅新功能MetaHuman Animator:实现真人面部动作高速模拟
焦点速看:开放世界元宇宙游戏《仙剑世界》来了:万物皆可交互
焦点短讯!中华老字号!西安饭庄糕点礼盒19.9元冲量大促:一次买16枚
两女子高速上突然跳车:闻到汽油味、以为要爆炸
环球实时:阿里又开源一款数据同步工具 DataX,稳定又高效,好用到爆!
一周的时间搞一个疫苗预约系统
环球热消息:Apache Kafka JNDI注入(CVE-2023-25194)漏洞复现浅析
快讯:河北沧州2022年成人高考成绩查询入口已开通
当前时讯:【新华500】新华500指数(989001)23日低开高走涨0.88%
今日观点!女生10年收集万瓶香水价值一套房:圈粉超47万
世界热文:捐100亿元建世界一流名校 曹德旺:大学没有教会年轻人动手能力
【天天快播报】汽车疯狂降价潮引担忧:狂欢之后会不会是淘汰潮?
热推荐:【操作系统】面试题总结(持更)
天天简讯:权值(点分治)
当前速看:JavaScript学习笔记
环球最资讯丨WMS深入浅出
环球关注:剑指 Offer 17. 打印从 1 到最大的 n 位数(java解题)
环球观焦点:Intel 56核心刚出生就落伍!AMD Zen4撕裂者下半年来袭:96核心
【新视野】力压美国印度!中国富豪全球第一:钟睒睒蝉联首富 马化腾张一鸣紧随其后
石榴汁弄衣服上怎么洗才能不会变干(石榴汁弄衣服上怎么洗)
环球最资讯丨机箱中的海景房 乔思伯TK-1双曲面侧透游戏机箱579元:颜值爆表