DBAS(data base application system)的生命周期由:
项目规划、需求分析、系统设计、实现与部署、运行管理与维护
等5个基本活动组成
目录
一、项目规划
数据库应用系统系统规划与分析阶段任务包括:
1、系统规划与定义(任务陈述、确定任务目标、确定范围和边界、确定用户视图)、
2、项目规划(项目团队、项目环境、项目活动、成本预算、进度计划)、
3、可行性分析(技术可行性、经济可行性、操作可行性、开发方案选择)。记忆技巧:
1、两任用范(两人用饭)
2、三个项目,成本与进度
3、技术、经济、操作、开发
在需求分析阶段中,数据处理分析结果也可以表示为事务规范。
因此,定义事务规范属于需求分析阶段任务,不属于数据库应用系统系统规划与分析阶段任务。
UML(统一建模语言)的四层概念框架主要包括以下四个方面:
行为层:描述在系统中发生了什么事情,用于对系统的功能、动作和响应进行描述。例如,用例、活动和状态图等。
交互层:描述系统和外界之间的交互过程,用于描述系统中的对象(类)在消息交互中扮演的角色。例如,顺序图和协作图等。
结构层:描述了系统的静态结构,即系统中包含什么元素以及它们如何组合。通常用于设计系统的类和对象结构,例如,类图、对象图等。
实现层:描述组成系统的代码及其实现,用于描述如何通过编程代码及技术实现上述三层描述的系统结构和行为,例如,组件图、部署图等。
综上所述,UML 的四层概念框架分别描述了一个软件系统的行为、交互、结构和实现等方面,为软件的设计和开发提供了规范性的方法和工具。
为什么要用UML?
通过使用UML使得在软件开发之前, 对整个软件设计有更好的可读性,可理解性,从而降低开发风险。同时,也能方便各个开发人员之间的交流。
UML提供了极富表达能力的建模语言,可以让软件开发过程中的不同人员分别得到自己感兴趣的信息。
Page-Jones
在《Fundamental Object-Oriented Design in UML》 一书中总结了UML的主要目的,如下:
- 为用户提供现成的、有表现力的可视化建模语言,以便他们开发和交换有意义的模型。
- 为核心概念提供可扩展性 (Extensibility) 和特殊化 (Specialization) 机制。
- 独立于特定的编程语言和开发过程。
- 为了解建模语言提供一个正式的基础。
- 鼓励面向对象工具市场的发展。
- 支持更高层次的开发概念,如协作,框架,模式和组件。
- 整合最佳的工作方法 (Best Practices)。
UML图有哪些?
- UML图分为结构图和行为图。
- 结构图分为类图、轮廓图、组件图、组合结构图、对象图、部署图、包图。
- 行为图又分活动图、用例图、状态机图和交互图。
- 交互图又分为序列图、时序图、通讯图(又称协作图)、交互概览图。
二、需求分析
DBAS(Data Base Application System)是指基于数据库系统的应用程序系统。
通常,对于DBAS的需求分析应该包括以下几个方面:
用户需求分析:用户的需求是DBAS设计的基础。需求分析要考虑到用户需求的多样性,包括各种不同的应用场景、业务需求和用户需求等。
功能需求分析:功能需求是DBAS设计过程中最重要的一环。通过分析现有的业务流程、用户需求以及系统环境,确定系统所需要的功能。包括数据的操作、查询以及管理等 core 功能需求。
性能需求分析:DBAS的性能需求非常重要。首先,对于很多数据的应用场景,取决于DBAS的性能能否满足处理需求。其次,系统性能的稳定性和可靠性对于数据的安全性和完整性起着至关重要的作用。
工程需求分析:DBAS的工程需求包括软件设计、测试和调试等。包括 DBAS 架构的选择与设计,数据库的设计与调节,需求响应时间等等。
维护和保障需求分析:DBAS系统需要持续的维护,包括安全性、备份、数据恢复等方面的需求。同时,系统开发人员也要考虑到日常保障工作,监控系统的状况等等。
综上所述,通过以上方面的需求分析,可以更加全面的考虑DBAS的设计和实现过程,确保最终设计的DBAS系统能够满足客户的使用需求,更可以符合市场发展的需求,是一项非常重要的工作。
数据库应用系统需求建模主要有DFD、IDEFO和UML。【IDEF1X主要用于数据建模】
数据库的功能建模方法有以下几种:
数据流图法(DFD):把系统视为一个数据转换的过程,并采用特定的符号和线条表示数据流和处理过程,通过分析和设计数据流和数据存储结构,描绘系统的功能和数据处理流程。
事务建模法(TTF):从用户的角度出发,关注系统所提供的服务,将基本事务的处理过程、需要的数据、合法性检查、警告信息等全部记录下来,用示意图或草图展示,从而建立系统的事务单元表和事务关系表。
数据字典法:将所有数据和文件进行分类和组织,对每一类数据建立数据模型,包括数据的名称、数据类型、数据定义、取值范围、数据来源、数据用途等相关信息。
面向对象分析和设计法(OOAD):把数据库看做对象的集合,并通过建立对象模型、类模型、类与类之间的关系等,实现对数据库的建模和设计。
实体关系图法(ERD):通过实体和实体之间的关系来描述和表示系统中的数据,以实现对数据库的分析和建模。
综上所述,以上几种方法都可以用来对数据库的功能进行建模和设计。在实践中,一般会综合采用并灵活应用多种方法,以达到更好的建模效果。
什么是数据流程图(DFD)?
数据流图(DFD)是可视化系统中信息流的传统方法。一个整洁而清晰的DFD可以图形化地描述大量的系统需求。它可以是手动的,自动的,或者两者的结合。
图中的符号
数据流——用箭头表示
处理——用矩形框表示
数据存储——用圆角矩形框表示
外部项——用圆角框或者平行四边形框表示
IDEFO是什么?
IDEFO(Integrated Definition for Function Modeling)是一种需求建模方法
它是一种基于图形化展示和文本描述的系统分析和设计方法。
IDEFO被广泛用于识别和综合现有和未来的业务和技术需求。
IDEFO是活动模型的缩写,来源于结构化分析与设计技术的一套标准,这些标准包含多种层次的图形语言,其中IDEFO用来描述对于企业具有重要性的各个过程(活动)。它以图形表示完成一项活动所需要的具体步骤、操作、数据要素以及各项具体活动之间的联系方式。
IDEFO由两种元素组成: 箭头和活动
输入(Input):实行或完成特定活动所需的资源,置于框图的左侧。
输出(Output):经由活动处理或修正后的产出,置于框图的右侧。
控制(Control):活动所需的条件限制,置于框图的上方。
机制(Mechanisms):完成活动所需的工具,包括人员、设施及装备,置于框图的下方。
IDEFO方法主要是通过展示输入、输出、控制和机构流程,对系统中各项功能进行建模,用以说明系统如何处理数据及信息流,从而推导出系统的逻辑流,并进行详细描述,直至能够满足业务或技术需求。
IDEFO方法基于系统分析和设计规范,主要分为五个步骤:
需求定义:客户需求与分析。
上层分析:通过分层展示模型,逐步分解系统的层级结构,确定系统框架和数据流程。
详细分析:进一步展示系统的逻辑和物理结构,定义各项功能。
模型集成:将前三个步骤产生的模型集成到一个整体模型中。
结果验证:通过业务和技术需求和功能分析的比对,完善模型,并最终确定系统规格。
IDEFO方法是一种结构化的需求建模方法,其主要特点是使用了图形化符号与清晰的文本描述相结合的方式对复杂的信息流进行建模,能够帮助分析人员更加清晰、直观地了解系统功能和其内部的数据与信息流,并为系统的设计和开发提供有益的参考。
三、系统设计
数据模型三要素:数据结构、数据操作、完整性约束
1、数据结构:
指所研究对象类型的集合,是对象和对象间联系的表达和实现。包括:数据本身和数据之间的联系。2、数据操作:
指对数据库中对象的实例允许执行的操作的集合,主要指检索和更新。3、完整性约束:
实体完整性、参照完整性、用户自定义完整性
3.1、概念设计
一个设计良好的数据库,在很大程度上决定了系统的成功与否。
概念设计是数据库设计的核心环节。
通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。
1、数据库概念设计的目标
定义和描述应用领域设计的数据范围
①获取信息模型
②描述数据的属性特征
③描述数据之间的关系
④定义和描述数据的约束
⑤说明数据的安全性要求
⑥支持用户的各种数据处理需求
⑦保证信息模型能转化成数据库的逻辑结构(即数据库模式)。
2、过程:
(1)明确建模目标(模型覆盖范围)
(2)定义实体集(自底向上标识和定义实体集)
(3)定义联系(实体间关联关系)(4)建立信息模型(构造ER模型)
(5)确定实体集属性(属性描述一个实体集的特征或性质)
(6)对信息模型进行集成与优化(检查和消除命名不一致、结构不一致等)
概念设计是DB设计的核心环节。概念数据模型是对现实世界的抽象和模拟。
3、概念模型设计(ER图)
概念设计目前采用最广泛的是ER建模方法。将现实世界抽象为具有属性的实体及联系。
1976年,Peter.Chen提出E-R模型(Entity- Relationship Model),即实体联系模型,用E-R图来描述数据库的概念模型。
观点:世界是由一组称作实体的基本对象和这些对象之间的联系构成的。原文链接:数据库技术-数据库概念设计_王小王-123的博客-CSDN博客
4、范式
关系数据库的设计主要是关系模式设计。关系模式设计的好坏直接影响到数据库设计的成败。将关系模式规范化,是设计较好的关系模式的惟一途径。
关系模式的规范化主要是由关系范式来完成的。
关系模式的规范化:把一个低一级的关系模式分解为高一级关系模式的过程。
关系数据库的规范化理论是数据库逻辑设计的工具。
目的:尽量消除插入、删除异常,修改复杂,数据冗余的问题。范式详解:范式详解 · 数据库三级 · 看云
5、IDEF1x工程化
IDEF1x是将E-R模型扩充语义含义而形成的, 或者说,IDEF1x是E-R图的细化
IDEF1x是一种进行数据建模或数据库设计的工程化的方法
独立实体——用直角方形框
从属实体——用圆角方形框表示
实体——用实体名/实体号标识
3.2、逻辑设计
对关系模式进行规范化处理,这属于数据库结构设计中的逻辑设计内容。
关系模型
有三种主要的数据模型:层次模型、网状模型、关系模型。
其中关系模型简单灵活,并有着坚实的理论基础,已成为当前最流行的数据模型。关系模型就是用二维表格结构来表示实体及实体之间联系的模型。
关系的描述称为关系模式(Relation Schema)
关系模式由五部分组成,即它是一个五元组:R(U, D, DOM, F)A、分解并不总能提高查询效率
B、分解通常使得涉及属性少的查询执行效率更高
C、分解通常使得简单的更新事务执行效率更高
3.3、物理设计
1、数据分布设计任务主要体现在以下几个方面:
①不同类型数据的物理分布:
当系统采用RAID等多磁盘存储系统时,可以将基本表和建立在表上的索引分别放在不同的磁盘上。
②应用数据的划分与分布:DDBS采用水平划分或垂直划分两种方法。3派生属性数据分布。
③关系模式的去规范化:根据实际需要对数据库中某些3NF、BCNF模式考虑是否可以降低其规范化程度,以提高查询效率,这种为关系模式的去规范化处理。
2、在数据库设计的物理设计阶段,需要考虑以下几个方面:
1、确定数据的存储结构:在数据库设计的物理设计过程中,需要根据业务需求和数据特点,结合使用的数据库管理系统,确定数据的存储结构,如使用B树、Hash等索引结构来提高查询效率,并根据实际数据量和负载情况设计合理的物理存储结构。
2、设计物理存储方案:在设计物理存储方案时,需要考虑应用系统的并发性、可扩展性、容错性等因素。例如,在设计分布式数据库时,需要考虑如何进行数据划分、数据复制和数据恢复,如何保证数据的一致性和可靠性。
3、确定数据缓存策略:在数据库设计的物理设计中,需要考虑如何设计数据缓存,以提高查询效率。通常采用缓存控制块或关键字表进行缓存,使用最近最少使用(LRU)、先进先出(FIFO)等缓存置换策略来保证缓存命中率。
4、考虑数据备份和恢复策略:在设计数据库时,需要确定数据备份和恢复策略,以保证数据的安全性和完整性。通常采用备份和恢复方案,备份周期、备份方式和备份介质需要进行合理规划,同时需要保证备份数据的完整性和可靠性。
5、设计安全性控制策略:在数据库物理设计中,需要考虑数据的安全性。需要通过合理设置用户永明、角色权限等方式来实现安全控制,以保护数据库中重要数据不被非法访问、篡改或删除。
总之,数据库设计的物理设计需要根据业务需求、数据特点以及采用的数据库管理系统等多方面因素来确定合理的数据存储结构、物理存储方案、缓存策略、备份和恢复策略,以及安全性控制策略,以保证数据库的高效性和安全性。
四、实现与部署
数据库应用系统实现与部署内容包括:
①建立数据库结构;
②数据加载;
③事务和应用程序的编码及测式;
④系统集成、测试与试运行;
⑤系统部署。
1、系统实施阶段
- 要选择合适的软件开发工具
- 建立数据库
- 输入原始数据
- 编写和调试各个模块的应用程序代码
- 完成各个子系统和模块之间的联合调试和测试
2、联合调试的工作
- 建立数据库结构
- 调试运行
- 装入实际的初始数据
3、照片存储方法
- 照片相对于文字、数字而言,所占的空间更大,如果存放在数据库中,则会增加数据库数据的大小。
- 因此在备份的时候,需要备份的数据也增多,会占用更多的备份空间。
- 若照片存在文件系统中,则仅仅需要将照片路径存放在数据库中,相对于存放照片本身来说,减少了很多数据量"照片存储到数据库中后,对照片的访问就受到了很大的限制,当多人同时访问同一个照片时,会大大降低用户访问照片的速度。
- 照片存放在数据库中的优点之一
- 没有像文件系统那样把人员信息和照片数据分离,因此有更好的一致性。
五、运行与维护和优化
在数据库系统运行维护过程中,数据库管理员(DBA)岗位承担了数据库的备份与恢复、数据库的安全性和完整性控制、数据库性能的监控分析和改进等工作。
数据库运行时维护包括:日常维护,监控与分析,性能优化与调整,系统进化。
数据库的运行与维护包括以下工作:
数据库安装:根据业务需求选择数据库软件、运行环境以及安装配置、权限设置等操作。
数据库备份和恢复:数据库备份是指将数据库中的数据备份到其他存储介质上,以防止数据出现意外丢失。而数据恢复则是将备份的数据从存储介质上恢复到数据库中,使得原先的数据可以被还原。
数据库性能调优:数据库性能调优是指对数据库进行分析、设计和优化,以达到较好的性能表现。
数据库资源利用率监控:负责监控数据库资源的使用情况,如CPU、内存、磁盘空间、网络带宽等,在发现问题时及时进行解决。
数据库安全管理:对数据库进行安全监管,包括对数据进行加密、访问权限的控制、审计日志的记录、升级补丁等操作。
数据库维护:对数据库进行日常维护和管理,如修复数据、优化索引、巡检数据库、管理用户等。
总之, 数据库的运行与维护是一个持续的过程,需要关注一系列的细节和指标,以保证其正常、高效地运行。
5.1、索引优化
- 在需要经常搜索的列上创建索引。
- 主键上创建索引。
- 经常用手连接的列上创建索引。
- 经草熏要根据范围讲行搜素的列上创建索引。
- 经常需要排序的列上创建索引。
- 经常用于where子句的列上创建索引。
- 根据索引建立规则A和B都符合建立索引的条件。
- 但是一般where语句在执行时要执行全表检索寻找符合条件的内容,这本身就是很消耗时间的过程,尤其对于大型的表格更加消耗时间。
当首先执行"姓名LIKE 张%"" 由此可见: 查询时间主要消耗在where语句上, 因此在where语句上建立索引可以提高查询的效率。
(1)经常在查询中作为条件被使用的列,应为其建立索引。
(2)频繁进行排序或分组(即进行group by或order by操作)的列,应为其建立索引。
(3)一个列的值域很大时,应为其建立索引。
(4)如果待排序的列有多个,应在这些列上建立复合索引。
(5)可以使用系统工具来检查索引的完整性,必要时进行修复。
索引是数据库中重要的数据结构,建立索引的目的就是为了提高查询效率。
查询的性能在很大程度上取决于存在什么样的索引来加快选择和连接的处理。
在插入删除和更新操作中,索引的存在增加系统的开销。
因此,要在加快查询与事务处理效率方面获得的好处与增加开销之间进行权衡。当数据库表更新大量数据后,删除重建索引也可提高查询速度。
关系数据库管理系统中主要是使用B+树作为索引,重建该表上的B树索引。
5.2、分表(水平、垂直)
分割表增加了维护数据完整性的代价。
分割表分为水平分割表和垂直分割表两种。1、水平分割表
水平分割表:
一种是当多个过程频繁访问数据表的不同行时,水平分割表,并消除新表中的冗余数据列,
另一种是当主要过程要重复访问部分行时,最好将被重复访问的这些行单独形成子集表(冗余储存),这在不考虑磁盘空间开销寸显得十分重要,但在分割表以后,增加了维护难度,要用触发器立即更新、或用存储过程及应用代码批量更新,这也会增加额外的磁盘IO升销。2、垂直分割表
垂直分割表(不破坏第三范式)∶一种是当多个过程频繁访问表的不同列时,可将表垂直分成几个表,减少磁盘TO〈每行的数据列少,每页存的数据行就多,相应占用的页就少),更新时不必考虑锁,没有冗余数据。
缺点是在插入或删除数据时要考虑数据的完整性,用存储过程维护。
另一种是当主要过程反复访问部分列时,最好将这部分被频繁访问的歹蚓据单独存为一个子集表(冗余储存),这在不考虑磁盘空间开销时显得千分重要,但因此增加了重叠列的维护难度,要用触发器立即更新、或用存储过程及戍用代码批量更新,这也会增加额外的磁盘IO升销。
垂直分割表可以达到最大化利用Cache的目的。
水平分割后,查询数据需要使用UNION操作。垂直分害后,查询数据需要JOIN操作。
5.3、分库(水平、垂直)
5.4、数据库的监控分析
指管理员借助工具监测DBMS的运行情况,掌握系统当前或以往的负荷、配置、应用等信息,并分析监测数据的性能参数和环境信息,评估DBMS的整体运行状态。
根据监控分析实现不同,分为:
1、数据库系统建立的自动监控机制
2、管理员手动实施的监控机制
管理员手动实施的监控机制,根据监控对象不同,分为:
(1)数据库构架体系的监控
监控空间基本信息、空间使用率与剩余空间大小等。
(2)数据库性能监控
监控数据缓冲区命中率、库缓冲、用户锁、索引使用、等待事件等。考点
需对数据库内存使用情况进行监控
监控分析结果可为系统安全运行与性能调优提供依据
数据库空间监控是运行状态监控的重要组成部分
5.5、日常维护
- 监控数据库运行状态
- 数据库的重组与重构
- 对数据库管理系统打补丁升级
- 监控数据库用户连接数监控并处理事务死锁
- 数据出现问题时恢复数据库数据以核查问题
- 监控数据库空间使用情况,调整存储空间分配
- 新建用户
- 安装补丁
- 调整索引以提高查询速度
- 数据库软件升级
注意:只要是涉及数据加载、创建——那么就不属于运维!
5.6、数据库的重组和重构
数据库的重组和重构是数据库设计的两个重要概念。
1、数据库重组
指对已经存在的数据库进行修改和重新组织,以满足新的数据需求和数据访问方式。通常情况下是修改数据库结构、添加或删除表、字段、索引等等。
数据库重组是指按照系统设计要求对数据库存储空间进行全面调整,如
- 调整磁盘分区方法和存储空间
- 重新安排数据的存储
- 整理回收碎块等,以提高数据库性能
2、数据库重构
数据库的重构是指由于数据库应用环境的不断变化,增加了新的应用或新的实体,取消了某些应用,有的实体与实体间的联系也发生了变化等,使得原有的数据库设计不能满足新的需求,此时需要调整数据库的模式和内模式。
指对已经存在的数据进行整合、清理和优化,以提高数据库的性能、可维护性和可用性。
数据库重构一般包括以下三个方面的内容:
数据结构重构、数据规范化重构、数据访问重构。
其中,
数据结构重构是指优化数据库的表结构、字段类型、索引等;
数据规范化重构是指将数据库数据进行规范化处理,使得数据结构更加合理、统一;
数据访问重构是指优化数据库的查询语句、事务处理、备份恢复等数据库操作。
在实际的数据库设计和应用中,重组和重构都是非常重要的环节。重组和重构操作可以使得数据库更好地适应业务需求和应用环境,提高数据库的性能,同时也很好地保证了数据的完整性、安全性和稳定性。
3、区别
数据库的重组并不修改数据库原有设计的逻辑结构和物理结构,
而数据库的重构则不同,它可以部分修改数据库的摸式和内模式。5.7、RAID5、RAID0、RAID1、RAID10
RAID5、RAID0、RAID1和RAID10都是常用的RAID技术,它们都是在多个磁盘间进行数据分布和备份,以提高数据容错能力、提高数据读写速度,以下是它们之间的区别:
RAID0——是将多块硬盘组合在一起,实现数据的分块存储,可以提高数据读写速度,但没有冗余、容错能力较低,某一块硬盘出现故障将导致整个数据的损失。
RAID1——实现将相同数据存储到两个硬盘中,实现多份数据的冗余备份。相较于RAID0,RAID1具有更高的容错能力,但相应的,RAID1需要将数据分别备份到每一个硬盘上,所以RAID1的磁盘利用率比较低。
RAID5——实现将数据和校验信息分别存储到不同的磁盘上,其容错能力和数据安全性大于RAID0,但较于RAID1,RAID5的读写速度较快,但写入速度慢。
RAID10——采用同时采用RAID0与RAID1的技术,具备高可靠性、高可用性、高读取性能,但成本较高,需要更多的硬盘来实现数据备份和分散存储。
总之,
RAID0适用于对性能要求较高、数据安全性大可忽略的场景,(性能高,数据不可靠)
RAID1适用于对数据安全性要求较高的场景,(性能高,数据可靠)
RAID5适用于对数据安全性和读写性能都要求较高的场景,(存储、性能、成本兼容)
RAID10适用于对性能和安全性都要求较高的场景。(成本高)