数据库设计概述-数据库设计内容、数据库设计方法(基于E-R模型的规范设计方法)

一、引言

如何利用关系数据库理论设计一个满足应用系统需求的数据库

二、数据库设计内容

1、数据库设计是基于应用系统需求分析中对数据的需求解决数据的抽象数据的表达数据的存储结构等问题

2、其目标是设计出一个满足应用要求、简洁、高效、规范合理的数据库

3、最终得到能在DBMS中存储的数据库的逻辑结构和物理结构

三、数据库设计方法

1.根据经验进行直观设计

(1)缺乏科学理论和工程方法的支持,很难保证设计的质量 ,数据库常常在投入使用之后才发现存在问题,不得不进行修改,增加了系统维护的代价

2、运用软件工程的思想来设计数据库,对数据库进行规范化设计

(1)常用的规范化设计方法,大多起源于1978年的新奥尔良法

3、在规范设计的过程中,还可采用计算机进行辅助设计

4、使用设计工具软件自动完成数据库设计

(1)如:Oracle Designder、Sybase Power Designer

5、规范设计方法数据库设计分为

(1)需求分析

(2)概念设计

采用基于E-R模型的数据库设计方法,用E-R模型设计数据库的概念结构

(3)逻辑设计

在进行关系数据库的逻辑结构设计时,采用基于3NF的数据库设计方法,该方法用关系规范化理论为指导,来设计数据库模式

(4)物理设计

6、以基于E-R模型的规范设计方法为基础,目前通常将数据库设计分为

(1)需求分析

任务:

  • 分析用户以及应用系统的数据需求
  • 明确数据库中需要存储和管理的数据
  • 明确用户对数据的安全性和完整性方面的需求
  • 用户存取权限设置

方法:

常常采用的方法是结构化系统分析和设计技术(SADT)

  • 用数据流图来来表达分析过程和分析结果

 

  • 数据字典描述数据流图中的数据流和数据存储等 

 

经过需求分析得到的这些数据描述信息是无结构的,需要对其进行综合、归纳和抽象,转换为有结构的、易于理解的精确表达 ,即进行数据库概念结构设计

(2)概念结构设计

概念结构设计是整个数据库设计的关键

任务:

  • 借助概念模型,表达数据抽象的结果得到独立于具体的DBMS数据库概念结构

概念模型的表达方式:

  • E-R模型
  • UML统一建模语言 
  • IDEF1X方法

概念模型独立于数据库的逻辑结构,也独立于具体的DBMS ,需要将概念模型转换为选定的DBMS的支持的数据模型所对应的数据库模式,即进行数据库的逻辑结构设计。

(3)逻辑结构设计

数据库逻辑结构的设计,与采用的数据模型有关,目前的数据库应用系统,绝大多数采用支持关系模型的DBMS

任务:

  • 对于关系模型,将概念模型转换为关系数据库模式

方法:

  • 转换要遵循转换规则
  • 根据应用需求,运用关系规范化理论,对关系数据库模式进行优化 

(4)物理结构设计

对逻辑结构设计的结果,还要针对选定的DBMS,利用数据库定义语言描述数据库的模式结构,确定适合应用环境的存储结构和存取方法,即进行数据库物理结构设计

任务:

  • 定义数据库模式
  • 确定适合应用环境的存储结构和存取方法

方法:

  • 用数据定义语言 

(5)数据库的实施

在具体的DBMS上,实现物理结构设计的结果

任务:

  • 建立数据库
  • 进行数据库编程
  • 组织数据入库
  • 测试数据库

(5)数据库的运行维护

对正式投入使用的数据库,在进行系统运行过程中,需要不断地对其进行评估与完善

任务:

  • 对数据库进行评估
  • 完善数据库:重组织;重构造

数据库设计是上述六个阶段不断反复迭代、逐步求精的过程

7、数据库设计同时伴随着应用系统软件的设计,在设计过程中需要把两者加以结合、相互完善

四、后续

本讲主要讲授如何将前面所学的数据库原理应用到数据库设计

          

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/32192.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Map集合之HashMap细说

最近在看面试题,看到了hashmap相关的知识,面试中问的也挺多的,然后我这里记录下来,供大家学习。 Hashmap为什么线程不安全 jdk 1.7中,在扩容的时候因为使用头插法导致链表需要倒转,从而可能出现循环链表问…

航行在水域:使用数据湖构建生产级 RAG 应用程序

在 2024 年年中,创建一个令人印象深刻和兴奋的 AI 演示可能很容易。需要一个强大的开发人员,一些聪明的提示实验,以及一些对强大基础模型的API调用,你通常可以在一个下午建立一个定制的AI机器人。添加一个像 langchain 或 llamain…

c++ 内存分析模型、引用

一、内存模型分区 内存四区的意义: 不同区域存放的数据,赋予不同的生命周期,给我们更大的灵活编程 (一)程序运行前 在程序编译后,生成了exe可执行程序,未执行程序前分为两个区域 代码区&…

2024hw蓝队面试题--4

SQL注入特征,误报原因以及怎么处理告警? 1.非法字符检测:这种类型的攻击通常会使用特殊字符,如单引号()、双引号(")、分号(;)、注释符号(--或/、/)等。检测输入中是否包含这类特殊字符是识别SQL注入攻击的一种方法。 2.堆栈…

PostgreSQL源码分析——审计插件pgaudit

PostgreSQL审计插件pgaudit 在PostgreSQL中,提供了开源的审计插件pgaudit,但是其功能并不完善,只提供了基本的审计功能,对此,很多基于PG开发的商业数据库大多提供了丰富的审计功能。比如人大金仓,openGaus…

健康实训室:老年保健与管理实训室的建设方案

一、建设背景和意义 我国正处于人口老龄化的加速期,随着老龄人口的不断增加,老年人的健康与养老问题已成为社会关注的热点问题。针对这一现状,建设老年保健与管理实训室具有重要的现实意义和战略价值: 1、培养高素质的老年保健和管理人才。老年保健与管理实训室的建设可以为医…

IOS Swift : 从入门到精通结构、属性和方法 结构体,第一部分

文章目录 创建自己的结构计算属性属性观察者方法变异方法字符串的属性和方法数组的属性和方法 创建自己的结构 Swift 允许你以两种方式设计自己的类型,其中最常见的是结构,或简称为structs。结构可以拥有自己的变量和常量,以及自己的函数&am…

浅谈Java23种设计模式之结构型模式的几种使用场景

前言 这是设计模式的第二期;继续根据实际开发应用场景解析这几种结构型设计模式. 1.适配器模式(Adapter) 概念: 它允许两个不兼容的接口通过适配器类工作在一起。这种模式通常用于将已存在的类(被称为适配者)的接口转换成客户端…

升级指南:探索CMMI2.0与3.0之间的企业变革!

CMMI2.0和CMMI3.0对企业的要求在某些方面有所变化,主要体现在以下几个方面: CMMI2.0对企业的要求 1.人员要求: 硬性要求:确保企业有25名以上的技术人员和10名以上的支持人员。 设立专门的人员对接CMMI评估,负责体系…

SpringMVC系列七: 手动实现SpringMVC底层机制-上

手动实现SpringMVC底层机制 博客的技术栈分析 🛠️具体实现细节总结 🐟准备工作🍍搭建SpringMVC底层机制开发环境 实现任务阶段一🍍开发ZzwDispatcherServlet🥦说明: 编写ZzwDispatcherServlet充当原生的DispatcherSer…

码云建仓库

1.新建仓库 码云地址 打开 码云地址 ,点击“”,新建仓库,添加仓库内容 ,创建。 小提示:如果本地已有项目,就不要选初始化,设置模板,容易冲突。 2. 进入当前仓库页 小提示&#x…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] LYA的巡演(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 &#x1f…

心明眼亮 洞悉万物

如何洞悉事物的本质呢? 阳明先生:世间之事,纷繁复杂,不可能一一研究得过来。 圣人只需要把内心的明镜擦亮,而无需担心外部的事事物物在镜子中如何映照。 —— 外界事物是无穷无尽的,永远探究不完&#xf…

30 - 每位经理的下属员工数量(高频 SQL 50 题基础版)

30 - 每位经理的下属员工数量 -- 根据reports_to ,获取employee_id,即分组用e1.reports_to,查询用e2.employee_id,e2.nameselect e2.employee_id,e2.name ,count(e1.reports_to) reports_count,round(avg(e1.age),0) average_age from Employees e1 left…

【鸿蒙踩坑记录】解决:list组件滑动至左边或右边,回弹效果过大问题

一、问题描述 开发过程中使用List组件,当内容超过一屏时可出现滚动效果,此时按住内容迅速滑动至左边,或者滑动到右边,回弹效果过大 期望:滑动时,不要有那么大的回弹效果 二、目前效果 三、解决方法 3.1…

go语言day03

目录 一、 go语言的数据类型: 二、声明赋值的简写形式: ":" 1)重复使用的编译错误 2)在全局变量中使用 : 会报编译错误 三、变量规则: 0)变量的命名规则: 1)创建的局部…

丰臣秀吉-读书笔记六

登山的目标必然是山顶。但人生的乐趣和生息的快乐却不在山顶,相反可以说是在山中的逆境之处。当我们遇上峡谷、绝壁、溪流、断崖、雪崩之类的险路时,心里虽想着已经不行了等,却不甘就此罢手而不与面前的艰难险阻战斗。而当我们完美克服并跨越…

代码随想三刷二叉树篇4

代码随想三刷二叉树篇4 617. 合并二叉树题目代码 700. 二叉搜索树中的搜索题目代码 98. 验证二叉搜索树题目代码 530. 二叉搜索树的最小绝对差题目代码 501. 二叉搜索树中的众数题目代码 236. 二叉树的最近公共祖先题目代码 617. 合并二叉树 题目 链接 代码 /*** Definitio…

.NET 上位机通讯 NModbus4 的使用教程

使用nuget引入NModbus4 RTU 示例 1,串口通信示例 // // RTU SerialPort serialPort new SerialPort("COM2", 9600, Parity.None, 8, StopBits.One);serialPort.Open();ModbusMaster master ModbusSerialMaster.CreateRtu(serialPort);// 起始地址 “…

用 Rust 实现一个替代 WebSocket 的协议

很久之前我就对websocket颇有微词,它的确满足了很多情境下的需求,但是仍然有不少问题。对我来说,最大的一个问题是websocket的数据是明文传输的,这使得websocket的数据很容易遭到劫持和攻击。同时,WebSocket继承自HTTP…