数据库设计的基本步骤
按照规范设计的方法,考虑数据库及其应用系统开发全过程,将数据库设计分为以下6个阶段
1.需求分析
2.概念结构设计
3.逻辑结构设计
4.物理结构设计
5.数据库实施
6.数据库的运行和维护
在数据库设计过程中,需求分析和概念设计可以独立于任何数据库管理系统进行,逻辑设计和物理设计与选用的DAMS密切相关。
1.需求分析阶段(常用自顶向下)
进行数据库设计首先必须准确了解和分析用户需求(包括数据与处理)。需求分析是整个设计过程的基础,也是最困难,最耗时的一步。需求分析是否做得充分和准确,决定了在其上构建数据库大厦的速度与质量。需求分析做的不好,会导致整个数据库设计返工重做。
需求分析的任务,是通过详细调查现实世界要处理的对象,充分了解原系统工作概况,明确用户的各种需求,然后在此基础上确定新的系统功能,新系统还得充分考虑今后可能的扩充与改变,不仅仅能够按当前应用需求来设计。
调查的重点是,数据与处理。达到信息要求,处理要求,安全性和完整性要求。
分析方法常用SA(Structured
数据流图表达了数据和处理过程的关系,在SA方法中,处理过程的处理逻辑常常借助判定表或判定树来描述。在处理功能逐步分解的同事,系统中的数据也逐级分解,形成若干层次的数据流图。系统中的数据则借助数据字典(data dictionary,DD)来描述。数据字典是系统中各类数据描述的集合,数据字典通常包括数据项,数据结构,数据流,数据存储,和处理过程5个阶段。
2.概念结构设计阶段(常用自底向上)
概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合,归纳与抽象,形成了一个独立于具体DBMS的概念模型。
设计概念结构通常有四类方法:
自顶向下。即首先定义全局概念结构的框架,再逐步细化。
自底向上。即首先定义各局部应用的概念结构,然后再将他们集成起来,得到全局概念结构。
逐步扩张。首先定义最重要的核心概念结构,然后向外扩张,以滚雪球的方式逐步生成其他的概念结构,直至总体概念结构。
混合策略。即自顶向下和自底向上相结合。
3.逻辑结构设计阶段(E-R图)
逻辑结构设计是将概念结构转换为某个DBMS所支持的数据模型,并将进行优化。
在这阶段,E-R图显得异常重要。大家要学会各个实体定义的属性来画出总体的E-R图。
各分E-R图之间的冲突主要有三类:属性冲突,命名冲突,和结构冲突。
E-R图向关系模型的转换,要解决的问题是如何将实体性和实体间的联系转换为关系模式,如何确定这些关系模式的属性和码。
4.物理设计阶段
物理设计是为逻辑数据结构模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。
首先要对运行的事务详细分析,获得选择物理数据库设计所需要的参数,其次,要充分了解所用的RDBMS的内部特征,特别是系统提供的存取方法和存储结构。
常用的存取方法有三类:1.索引方法,目前主要是B 树索引方法。2.聚簇方法(Clustering)方法。3.是HASH方法。
5.数据库实施阶段
数据库实施阶段,设计人员运营DBMS提供的数据库语言(如sql)及其宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制和调试应用程序,组织数据入库,并进行试运行。
6.数据库运行和维护阶段
数据库应用系统经过试运行后,即可投入正式运行,在数据库系统运行过程中必须不断地对其进行评价,调整,修改。
相关文章
- JAVA-数据库之JDBC连接MySQL数据库
- .NET Core基于SQL Server数据库主从同步实现读写分离实战演练
- 开源工具DbUtils的使用(数据库的增删改查)
- gitlab访问用户安装的postgresql数据库
- 41、Android中当数据库需要更新时我们该怎么办?
- 数据库设计范式2——BC范式和第四范式
- 数据库内核月报 - 2015 / 10-TokuDB · 捉虫动态 · CREATE DATABASE 导致crash问题
- etcd介绍:可作为KV数据库、服务发现、配置中心和分布式锁使用、etcd集群搭建
- SAP数据库表DDLOG的设计原理
- Atitit 数据库核心技术index索引技术 btree hash lsm fulltxt目录1.1. HASH
- Atitit db model 数据库快速建模法 开发效率 目录 1. 结构(数据)设计 行为(处理)设计:1 2. 业务建模阶段1 2.1. Ui建模法,根据表单字段建立表字段2 2.2.
- Atitit 数据库重复数据产生原因与解决总结 目录 1. 原因1 1.1. 缺少数据约束校验1 1.2. 表关系关联设计错误1 2. 约束种类1 2.1. 分类 表级约束vs列级别约束2
- Atitit. 数据库-----catalog与schema的设计区别以及在实际中使用 获取数据库所有库表 java jdbc php c#.Net
- 数据库面试题【十五、优化查询过程中的数据访问】
- 不同数据库模式下DATE类型的行为解析
- 数据库实践丨MySQL多表join分析
- 当 Python 遇到数据库,这个模块就变得超级好用
- 秒杀程序数据库设计
- 005-MYSQL数据库设计原则
- PostgreSQL的学习心得和知识总结(一百零二)|深入理解PostgreSQL数据库开源MPP扩展Citus 分布表间Inner Join数据重分布 的实现原理
- 数据库事务特性及事务隔离级别
- MySQL数据库基准压力测试工具之MySQLSlap使用实例
- 【计算机三级数据库技术】第9章 数据库的安全管理--附思维导图
- 数据库范式, 数据仓库设计架构Kimball 和 Inmon 杂记
- MySQL数据库性能优化由浅入深(表设计、慢查询、SQL索引优化、Explain分析、Show Profile分析、配置优化)
- 数据库设计 ER图
- RPM包安装的数据库进行版本升级