详细介绍 数据库设计 的各个阶段与方法
数据库设计
- 一.数据库设计总述
- 1.数据库设计内容
- 2.数据库设计方法
- 3.规范设计法
- 4.具体过程
- 二.具体步骤
- 1.需求分析
- 1.1需求分析的任务
- 1.2需求调查
- 1.3需求分析的方法
- 2.概念结构设计
- 2.1ER模型
- 2.2概念结构设计的步骤
- 2.3实例分析
- 2.3.1确定系统管理的信息和查询操作
- 2.3.2抽取实体与实习的属性,并绘制实体的ER图
- 2.3.3确定实体之间的联系
- 2.3.4组合实体与联系
- 2.3.5增加需求
- 2.3.6几个注意点
- 2.4概念结构设计的方法
- 2.4.1自底向上法
- 2.4.2集成过程中存在的结构冲突
- 2.4.3集成过程存在冗余的属性或联系
- 3.逻辑结构设计
- 3.1实体转换为关系模式
- 3.2实体间的联系转换为关系模式
- 3.2.1 1:1联系的转换
- 3.2.2 1:n联系的转换
- 3.2.3 m:n联系的转换
- 3.2.4 多元联系的转换
- 3.2.5 子实体和ISA联系的转换
- 3.2.6 弱实体和依赖联系的准换
- 3.2.7 案例系统
- 3.3关系模式的优化
- 3.3.1 逻辑结构设计原则
- 3.3.2 关系模式的优化
- 4.物理结构设计
- 4.0引言
- 4.0.1准备工作
- 4.0.2解决的问题
- 4.1定义模式结构
- 4.1.1定义概念模式
- 4.1.2定义用户外模式
- 4.1.3定义内模式
- 4.2创建数据库
- 4.2.1定义数据库
- 4.2.2物理结构设计策略
- 三.总结
一.数据库设计总述
1.数据库设计内容
-数据库设计是基于应用系统需求分析中对数据的需求,解决数据的抽象、数据的表达和数据的存储等问题
-其目标是设计出满足应用要求,简洁、高效、规范合理的数据库
-最终得到能在DBMS中存储的数据库的逻辑结构和物理结构
2.数据库设计方法
数据库的设计发展历程:
-初始阶段,数据库设计人员,根据自己的经验和水平,运用一定的技巧进行数据库的设计,缺乏科学理论和工程方法的支持,很难保证设计的质量,数据库,常常在投入使用之后才发现存在的问题,不得不进行修改,增加了系统维护的代价。
-后来,数据库设计人员,开始运用软件工程的思想来设计数据库,对数据库进行规范设计,常用的规范设计方法,大多起源于1978年的新奥尔良法。
-在规范设计规程中,还可采用计算机来辅助设计。
-目前,设计人员还使用一些比较成熟的设计工具软件,比如Oracle Designer,Sybase Power Designer等,来帮助自动完成数据库的设计。
3.规范设计法
其中,规范设计法将数据库设计分为需求分析、概念设计、逻辑设计、物理设计四个阶段。规范设计方法,在不同阶段,又采用一些具体技术和方法,比如,在数据库概念设计阶段广泛广泛采用基于E-R模型的数据库设计方法,即用E-R模型来设计数据库的概念模型,在进行关系数据库的逻辑结构设计时,采用基于3NF的数据库设计方法,该方法用关系规范化理论为指导来设计数据库模式,以基于E-R模型的规范设计方法为基础。
4.具体过程
目前通常将数据库设计分为需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行维护六个阶段。
其中,需求分析是整个数据库设计的基础。数据库设计人员要分析用户以及应用系统的数据需求,需要将概念模型转换为选定DBMS支持的数据模型所对应的数据库模式,即进行数据库的逻辑结构设计。数据库逻辑结构的设计与采用的数据模型有关,因目前的数据库应用系统绝大多数采用支持关系模型的DBMS,数据库的逻辑结构设计,主要就是将概念模型转换为关系数据库模式。转换需要一定的转换规则。并根据应用需求,运用关系规范化理论对关系数据库模式进行优化。对逻辑结构设计的结果,还要针对选定的DBMS,利用数据库定义语言,描述数据库的模式结构,确定适合应用环境的存储结构和存取方法,即进行数据库的物理结构设计。然后就可以进入数据库实施阶段,在具体的DBMS上,实现物理结构设计的结果,建立数据,进行数据库编程,组织数据入库,并进行测试操作等。对正式投入使用的数据库,在进行系统运行过程中,需要不断地对其进行评估与完善。
数据库设计是上述六个阶段的不断反复迭代,逐步求精的过程。数据库设计同时,伴随着数据库应用系统软件的开发,在设计过程中需要把两者加以结合,相互完善。
二.具体步骤
1.需求分析
1.1需求分析的任务
-分析用户以及应用系统的数据需求
-明确在数据库中需要存储和管理的数据
-明确用户对数据的安全性和完整性方面的需求
-用户的存取权限的设置
1.2需求调查
需求分析是在用户调查的基础上,通过分析,逐步明确用户对系统的需求,包括数据需求和围绕这些数据的业务处理需求。
用户调查的重点是“数据”和“处理”。
需求:
•信息需求 定义未来数据库系统用到的所有信息,明确用户将向数据库中输入什么样的数据,从数据库中要求获得哪些内容,将要输出哪些信息。同时还要描述数据间的联系等。
• 处理需求 定义了系统数据处理的操作功能,描述操作的优先次序,包括操作的执行频率和场合,操作与数据间的联系。处理需求还要明确用户要完成哪些处理功能,每种处理的执行频度,用户需求的响应时间以及处理的方式,比如是联机处理还是批处理,等等。
• 安全性与完整性要求 描述了系统中不同用户对数据库的使用和操作情况,完整性要求描述了数据之间的关联关系以及数据的取值范围要求。
1.3需求分析的方法
-采用结构化系统分析和设计技术(SADT,是自顶向下结构化方法、工程化的系统开发方法和生命周期方法的结合)
-用数据流图来表达分析过程和结果
-用数据字典描述数据流图中的数据流和数据存储等
2.概念结构设计
2.1ER模型
E-R模型( Entity Relationship Model,实体联系模型),用ER图来描述概念模型中的实体、属性、实体间的联系等概念,
在ER模型中,实体用矩形表示,属性用椭圆表示,并用无向边连接实体和属性。
联系用菱形表示,并用无向边连接实体和联系,同时在无向边旁标上联系的类型,是1:1、1:n还是m:n。
在实体集A和子集B之间,可存在着ISA联系,用指向超类的三角形表示。实体B课通过ISA联系,继承实体A中的所有属性和与A相关的联系,同时拥有自己的属性。
依赖于常规实体的弱实体,用双线矩形框表示,与常规实体之间存在着一种依赖联系,用双线菱形框表示。在这些基本要素的基础上,可构造具体的应用系统中实体及其联系的完整的E-R图,来实现数据库的概念结构设计。
2.2概念结构设计的步骤
基于ER模型进行数据库概念结构设计,一般遵循如下步骤:
-从需求分析的结果文档中,抽取实体与实习的属性,并绘制实体的ER图
-确定实体间的联系,以及发生联系后产生的属性特征,绘制联系的ER图
-组合实体与联系的ER图,构造应用系统的完整ER图
其中,抽取实体是概念结构设计的重点
2.3实例分析
下面我们以一个学校的小型的教学信息管理系统为例,按设计步骤进行应用系统的数据库概念结构设计。
2.3.1确定系统管理的信息和查询操作
经需求分析得知,系统的功能是要管理如下信息:
系统要能对管理的数据进行合理地组织、存储,能实现数据的及时更新,并能对数据进行如下这类复杂的查询操作:
2.3.2抽取实体与实习的属性,并绘制实体的ER图
基于需求分析的描述、系统对数据的处理需求,可确定需在系统里进行管理的实体应包括班级、教研室、学生、教师和课程,及描述实体的必要特征属性,如班级实体的、班级号、所在系……如下图所示:
2.3.3确定实体之间的联系
2.3.4组合实体与联系
2.3.5增加需求
若该信息管理系统不仅要管理教学信息,话要管理所辖人员的档案信息,则其对学生实体和教师实体增加属性,比如增加具有依赖联系的弱实体等,将学生的家庭成员,单独构成一个弱实体,来记录学生的家庭成员的姓名等信息。
2.3.6几个注意点
1.对象抽象为实体集还是属性?
2.多个实体间的对象设计为二元联系还是多元联系?
3.设计为实体的属性还是联系的属性?
2.4概念结构设计的方法
对于一个学校的综合信息管理系统,可能包含多个业务功能子系统,那么如何来设计面向整个应用领域的全局数据库的概念结构呢?
设计方法主要有自顶向下、自底向上、由内而外和混合法等方法
2.4.1自底向上法
2.4.2集成过程中存在的结构冲突
2.4.3集成过程存在冗余的属性或联系
3.逻辑结构设计
3.1实体转换为关系模式
3.2实体间的联系转换为关系模式
3.2.1 1:1联系的转换
3.2.2 1:n联系的转换
3.2.3 m:n联系的转换
3.2.4 多元联系的转换
3.2.5 子实体和ISA联系的转换
3.2.6 弱实体和依赖联系的准换
3.2.7 案例系统
3.3关系模式的优化
3.3.1 逻辑结构设计原则
3.3.2 关系模式的优化
4.物理结构设计
4.0引言
4.0.1准备工作
4.0.2解决的问题
4.1定义模式结构
4.1.1定义概念模式
4.1.2定义用户外模式
4.1.3定义内模式
4.2创建数据库
4.2.1定义数据库
4.2.2物理结构设计策略
三.总结
详细介绍 数据库设计 的各个阶段与方法相关推荐
- SOC 时钟源PLL锁相环详细介绍——IC设计时序逻辑的灵魂
SOC 时钟源PLL详细介绍--IC设计时序逻辑的灵魂 本节介绍SOC设计中时钟的组件PLL部分的介绍,PLL可以认为是IC设计中时序逻辑的灵魂所在,理解和掌握PLL的结构和原理是非常有必要的
- 详细介绍了Linux下配置文件的读取方法及fgyhtrh读取操作的C代码实现
认识指针数组和数组指针从内存方面分析 Linux具有免费.可靠.安全.稳定.多平台等特点,因此深受广大程序员的欢迎. 为了体现软件产品的灵活性,可添加配置文件存放某些重要的参数,在部署的时候根据实际 ...
- 数据库设计三范式详细介绍--数据库设计规范之数据库设计三范式
为什么需要数据库设计 1. 我们在设计数据表的时候要考虑很多问题问题,比如: 用户都需要什么数据?需要在数据表中保存哪些数据? 如果保证数据表中数据的正确性,当插入.删除.更新的时候该进行怎么样的约束 ...
- MySQL数据库三段式_对数据库模式进行规范化处理,是在数据库设计的什么阶段?...
对数据库模式进行规范化处理,是在数据库设计的"逻辑设计阶段".数据库的逻辑结构设计就是把概念结构设计阶段设计好的基本实体-关系图转换为与选用的数据库管理系统产品所支持的数据模型相符 ...
- 阿里P8架构师谈:Dubbo的详细介绍、设计思路、以及4大适用场景
Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案. 简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用 ...
- 详细介绍软件架构设计的三个维度
如果你对项目管理.系统架构有兴趣,请加微信订阅号"softjg",加入这个PM.架构师的大家庭 架构设计是一个非常大的话题,不管写几篇文章,接触到的始终只是冰山一角,更多的是实践中 ...
- pythoncv2模块详细介绍_python中cv2模块的安装方法
python中cv2模块的安装方法 发布时间:2020-07-09 14:40:18 来源:亿速云 阅读:115 作者:清晨 小编给大家分享一下python中cv2模块的安装方法,希望大家阅读完这篇文 ...
- 对接京东获取任务工单接口jingdong.homefw.task.search,附接口字段详细说明,数据库设计,Java实现
目录 接口详细说明 jingdong.homefw.task.search(获取任务工单) 任务工单字段详细说明 数据库设计 任务工单表结构 日志表结构 接口Java实现 接口详细说明 jingdon ...
- 数据库的锁的详细介绍
数据库的锁和索引的详细介绍 数据库的锁的详细介绍 全局锁 表级锁 表锁 元数据锁 意向锁 行级锁 行锁 间隙锁 临键锁 数据库的锁的详细介绍 最近看了一下数据库的锁和索引的相关知识,写个博客加深一下记 ...
最新文章
- 【linux】tc命令使用总结
- linux默认csh修改命令,Solaris中默认Shell的修改以及命令行补全的设置
- Python与MySQL
- 搭建认证服务器 - Spring Security Oauth2.0 集成 Jwt 之 【授权码认证流程】 总结
- 运用python的方式_六、python 方法的使用
- 基于业务解释的特征重要性计算
- sql语句基础学习(不涉及多表查询)
- matlab将矩阵分解成lu,10行代码实现矩阵的LU分解(matlab)
- ML、DL、CNN学习记录3
- PyTorch 1.0 中文文档:torch.distributions
- jest java_使用JestClient操作ElasticSearch的简单demo
- java 继承 封装 多态 详解
- MySQL中根据A表画更新B表
- python程序运行后没有反应_为什么我的电脑在运行这个python程序时速度变慢,没有反应?...
- html页面载入完毕返回顶部,HTMl页面中返回顶部如何实现 HTMl页面中返回顶部实现代码...
- html黑洞效果,HTML5+Canvas的黑洞特效
- 图片Base64解码
- 【算法很美】递归、查找、排序 (下)
- 让我们的爱洒满孩子们的心
- C++11 智能指针shared_ptr一篇足以