浅谈数据库生命周期

简介:

最近在读一本《数据库系统 设计、实现与管理》的书,其中的数据库设计部分写的挺好的,另外在本书中也讲到了数据库生命周期的概念,我觉得有所收益,特写下此博文!

在软件开发中,我们经常会提到软件系统开发的生命周期,大致分为:计划、分析、设计、实现、运维几个阶段,整体流程和动作如下图所示:

系统开发生命周期

而针对数据库建模和数据库应用开发来说,也有其自己的“数据库生命周期”,database life cycle,简称DBLC。DBLC大致上分为6个阶段:数据库初始研究,数据库设计,实现和装载,测试和评价,运行,维护和演化。其对于的生命周期图为:

DBLC

也许作为一个数据库模型设计人员或者开发人员来说,只关心参与3个阶段,但是其实每个阶段都应该参与其中,毕竟这6个阶段是不断迭代的过程。

下面我们来分别说明一下这6个阶段。

1.数据库初步研究

简单的说就是前期的需求调研阶段,只不过软件开发中的需求调研是站在软件的角度,而数据库设计人员则应该站在数据库的角度分析用户的需求,主要做到以下目标:

  • 分析公司的状况。
  • 定义问题和约束。
  • 定义目标。
  • 定义范围和边界。

 

2.数据库设计

这是数据库生命周期中最重要的环节,也是最烧脑细胞的环节。这个环节工作的好坏直接关系到最终软件是否满足用户和系统的需求。数据库设计又进一步划分为几个阶段:概念设计、DBMS的选择、逻辑设计、物理设计。

数据库设计

概念设计

概念设计阶段需要根据用户和系统的需求,设计出实体关系模型ERM,所以这个阶段的产出是一个ERM。至于怎么分析用户需求后定义实体,定义关系,定义属性,范式化与反范式化,以及对概念模型的验证,那都是很深的学问,都可以单独写一本书了。我在之前的博客中粗略的讲解了如何进行概念模型的设计,可以参考:http://www.cnblogs.com/studyzy/category/466850.html

尤其是其中一篇(分析与设计数据库模型的简单过程)把ERM的建模过程演示了一遍。

而对概念模型的验证,一方面需要检查用户需求中的对象和属性是否都在概念模型中,其次,检查CRUD在模型上的操作是否会造成异常,另外也需要从报表的角度考虑,是否能够写出对应的报表的查询,查询效率是否可接受。在整个模型验证过程中,可能把一些属性独立出来成新的实体,也可能把关系从一对多改为多对多,也可能出于性能上的考虑,对一些表进行反范式化处理。对概念模型的验证一般以模块为单位进行验证,而且概念模型的定义是独立于硬件和软件的,保证了模型的简洁。

DBMS的选择

目前市面上的DBMS可选择性并不是很大,企业级DBMS就是Oracle,IBM DB2和SQL Server,这些DBMS功能强大完备,但是价格昂贵,而免费开源的有MySQL,PostgreSQL,这都是很流行的开源数据库,而如果系统小而简单的话,还可以考虑Sqlite,Access等单机数据库。这前面说的都是RDBMS,也就是关系型的数据库,还有其他对象数据库,文档数据库,层次数据库如果需要也可进行选择,尤其是随着互联网的兴起,现在NoSQL非常火,也增加了DBMS的选择范围。

不管怎么说,DBMS的选择主要还是考虑以下几个方面:

  • 开销/预算。这里除了软件和硬件本身的采购价格,还需要包括学习成本,运维开销,转换成本等。
  • DBMS的特征和工具。如关注系统的可用性,安全性,扩展性等。
  • 基础模型。是关系型的还是对象型的,或者文档型。
  • 便利性。DBMS可以便利的在不同平台,系统,语言之间进行移植。
  • 硬件要求。

逻辑设计

逻辑模型就是将概念模型转换为特定DBMS支持的模型,所以逻辑模型是与软件相关的。逻辑模型中的表、外键是可以通过概念模型的实体、关系转换而来,但是对于视图、存储过程、函数、用户等,都需要在逻辑模型中设计。

物理设计

物理模型是与具体的物理硬件相关,可以通过逻辑模型转换而来。在物理设计中,需要考虑具体的数据存储,数据分布等,在物理模型中要求设计师充分了解软件和硬件环境,充分发挥软件和硬件的特性。

3.实现和装载

常用的数据库建模工具如PowerDesigner或者ERWin都可以将物理模型生成对应的SQL语句,然后我们在DBMS中运行SQL,便可实现我们设计的数据库模型。在实现了数据库模型后,我们还需要进一步研究其性能,安全,备份与恢复,以及完整性和公司标准。这些一般都是由DBMS提供的工具支持的。

4.测试和评价

数据一旦装载到数据库后,DBA就要对数据库的性能,完整性,并发访问和安全约束进行测试和优化。这个测试和评价阶段是与软件开发并行进行的。如果测试和评价结果不满足要求,就需要对系统和模型进行调整。其中包括:

调整DBMS的配置参数,修改物理设计(比如索引和分区的修改),修改逻辑设计(比如增加冗余字段),更新或者更换DBMS的软硬件平台。

5.运行

数据库通过了评测阶段,就认为是可运行的了。在实际生产环境的运行过程中,产生了真实的数据,一些在测试阶段无法预见的问题可能会被遇到,比如查询缓慢,数据不一致,死锁等问题都可能遇到。棘手的问题需要紧急补丁,而一些小Bug则可能在下一个版本中修正,而这些在运行中对数据库的补丁和修改,就是一个维护和演化的过程。

6.维护和演化

数据库的日常维护工作包括备份与恢复,用户权限分配,系统监控,系统定期安全审计等。对于系统补丁和新版本开发,则是对模型的演化,需要在更新生产系统数据库时对数据库模型进行同步的更新,这便进入了数据库生命周期的迭代过程。

本文转自深蓝居博客园博客,原文链接:http://www.cnblogs.com/studyzy/p/4883356.html,如需转载请自行联系原作者

相关文章
|
6月前
|
存储 XML JSON
Activiti 7 核心数据库表概览及流程生命周期中的作用
Activiti 7 工作流引擎通过约25张核心数据库表实现流程定义、运行时状态、历史记录与身份数据的存储。表名以ACT_开头,后跟标识用途的字母组合(如RE表示Repository静态信息,RU表示Runtime动态数据)。流程启动时在运行时表登记数据,任务执行中更新关联信息,结束时清理运行时记录并完善历史记录。各表分工明确且逻辑紧密关联,确保高效运行与完整留痕的平衡。掌握这些表的作用和关联有助于深入理解Activiti底层原理及进行高级应用开发。
409 0
|
存储 监控 安全
【计算机三级数据库技术】第1章 数据库应用系统生命周期下知识体系--附思维导图
本文提供了数据库应用系统生命周期下的知识体系概述,并附有思维导图,帮助读者更好地理解数据库技术及应用的第一章内容,涵盖了数据库系统的规划、分析、设计、实现、测试、运行和维护等各个阶段。
218 12
|
23天前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
58 3
|
29天前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
2月前
|
存储 运维 关系型数据库
从MySQL到云数据库,数据库迁移真的有必要吗?
本文探讨了企业在业务增长背景下,是否应从 MySQL 迁移至云数据库的决策问题。分析了 MySQL 的优势与瓶颈,对比了云数据库在存储计算分离、自动化运维、多负载支持等方面的优势,并提出判断迁移必要性的五个关键问题及实施路径,帮助企业理性决策并落地迁移方案。
|
16天前
|
关系型数据库 MySQL 分布式数据库
阿里云PolarDB云原生数据库收费价格:MySQL和PostgreSQL详细介绍
阿里云PolarDB兼容MySQL、PostgreSQL及Oracle语法,支持集中式与分布式架构。标准版2核4G年费1116元起,企业版最高性能达4核16G,支持HTAP与多级高可用,广泛应用于金融、政务、互联网等领域,TCO成本降低50%。
|
17天前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
|
17天前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
16天前
|
SQL 关系型数据库 MySQL
Mysql数据恢复—Mysql数据库delete删除后数据恢复案例
本地服务器,操作系统为windows server。服务器上部署mysql单实例,innodb引擎,独立表空间。未进行数据库备份,未开启binlog。 人为误操作使用Delete命令删除数据时未添加where子句,导致全表数据被删除。删除后未对该表进行任何操作。需要恢复误删除的数据。 在本案例中的mysql数据库未进行备份,也未开启binlog日志,无法直接还原数据库。
|
23天前
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
225 7

热门文章

最新文章