数据库设计概述-数据库设计内容、数据库设计方法(基于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、数据库设计同时伴随着应用系统软件的设计,在设计过程中需要把两者加以结合、相互完善

四、后续

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

          

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

昇思25天学习打卡营第4天|数据变换(Transforms)

一、简介: 数据变换是指将已有的数据转换成可以提供给模型直接训练和验证的数据格式,在深度学习中一般被称为数据预处理,之前在昇思25天学习打卡营第3天|数据集Dataset-CSDN博客 介绍数据集的时候已经有了一个简单的使用,下面将具…

mac赛车竞速游戏:弯道卡丁车车手 for Mac 中文版下载

《弯道卡丁车车手》是一款刺激的卡丁车竞速游戏,玩家扮演的是赛道上的卡丁车车手,需要在曲线崎岖的赛道上驾驶卡丁车,与其他车手展开激烈的竞速比赛。 游戏中有多种赛道可以选择,每个赛道都有不同的难度和特点,玩家需…

双例集合(三)——双例集合的实现类之TreeMap容器类

Map接口有两个实现类,一个是HashMap容器类,另一个是TreeMap容器类。TreeMap容器类的使用在API上于HashMap容器类没有太大的区别。它们的区别主要体现在两个方面,一个是底层实现方式上,HashMap是基于Hash算法来实现的吗&#xff0c…

Apple - Advanced Memory Management Programming Guide 内存管理

翻译整理自:Advanced Memory Management Programming Guide(Updated: 2012-07-17 https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/MemoryMgmt/Articles/MemoryMgmt.html#//apple_ref/doc/uid/10000011i 文章目录 一、关于…

算法题--华为od机试考试(整数对最小和、素数之积、找城市)

目录 整数对最小和 题目描述 注意 输出描述 示例1 输入 输出 说明 解析 答案 素数之积 题目描述 输入描述 输出描述 示例1 输入 输出 说明 示例2 输入 输出 说明 解析 找城市 题目描述 输入 输出 示例1 输入 输出 示例2 输入 输出 说明 解析…

嵌入式通信协议-----UART协议详解(基于智芯Z20k11X)

目录 一、简介 1.概念 2.结构 3.特点 4.优缺点 二、协议帧组成 1.起始位 2.数据位 3.奇偶校验位 4.停止位 三、UART通信过程 四、USART与UART区别 五、代码实现 1.硬件框图 2.软件实现 一、简介 1.概念 USART(Universal Synchronous Asynchronous R…

相机的标定

文章目录 相机的标定标定步骤标定结果影响因素参数分析精度提升一、拍摄棋盘格二、提升标定精度 标定代码实现 相机的标定 双目相机的标定是确保它们能够准确聚焦和成像的关键步骤。以下是详细的标定步骤和可能的结果,同时考虑了不同光照条件和镜头光圈大小等因素对…

怎样去掉卷子上的答案并打印

当面对试卷答案的问题时,一个高效而简单的方法是利用图片编辑软件中的“消除笔”功能。这种方法要求我们首先将试卷拍摄成照片,然后利用该功能轻松擦除答案。尽管这一方法可能需要些许时间和耐心,但它确实为我们提供了一个可行的解决途径。 然…

Docker网络介绍

网络是虚拟化技术中最复杂的部分,也是Docker应用中的一个重要环节。 Docker中的网络主要解决容器与容器、容器与外部网络、外部网络与容器之间的互相通信的问题。 这些复杂情况的存在要求Docker有一个强大的网络功能去保障其网络的稳健性。因此,Docker…

windows10远程桌面端口,Windows 10远程桌面端口修改的两个方法

在Windows 10系统中,远程桌面功能允许用户通过网络从一台计算机远程访问和控制另一台计算机。默认情况下,远程桌面服务使用的端口是3389。然而,出于安全考虑,许多管理员和用户希望修改这一默认端口。本指南将详细介绍如何在Window…

柯桥商务英语培训|老外和你说Tom和Jack,可不是在说人名!所以是啥意思?

小明和小李,这两个人在中国相信没有谁不认识他们了。而且有关他们的梗更是传遍大街小巷。 例如:小明他爷爷活了103岁,小明做数学题,又或者是小李的老婆比小明小2岁等等。 其实在国外,也有这么两个人像小明、小李一样&a…

WPF/C#:显示分组数据的两种方式

前言 本文介绍自己在遇到WPF对数据进行分组显示的需求时&#xff0c;可以选择的两种方案。一种方案基于ICollectionView&#xff0c;另一种方案基于IGrouping。 基于ICollectionView实现 相关cs代码&#xff1a; [ObservableProperty] private ObservableCollection<Peo…

【mysql】常用操作:维护用户/开启远程/忘记密码/常用命令

一、维护用户 1.1 创建用户 -- 语法 > CREATE USER [username][host] IDENTIFIED BY [password];-- 例子&#xff1a; -- 添加用户user007&#xff0c;密码123456&#xff0c;并且只能在本地可以登录 > CREATE USER user007localhost IDENTIFIED BY 123456; -- 添加用户…

利用第三方服务对目标进行被动信息收集防止被发现(web安全白帽子)

利用第三方服务对目标进行被动信息收集防止被发现&#xff08;web安全白帽子&#xff09; 1 被动信息收集1.1 信息收集内容1.2 信息用途 2 信息收集-DNS2.1 DNS信息收集NSLOOKUP2.1.1 ping2.1.2 nslookup 2.2 DNS信息收集-DIG&#xff08;此命令查到的结果更复杂些&#xff0c;…

java中实现Callable方式创建线程

一、为啥要引入Callable 在前面讲了通过继承Thread和实现Runnable方式创建线程的区别&#xff0c;那为什么有了Runnable还要引入Callable?下面通过实现Runnable方式的弊端给出答案 实现Runnable方式的弊端&#xff1a; package java.lang; FunctionalInterface public inte…

C++基础知识——《缺省参数》和《函数重载》

P. S.&#xff1a;以下代码均在VS2019环境下测试&#xff0c;不代表所有编译器均可通过。 P. S.&#xff1a;测试代码均未展示头文件stdio.h的声明&#xff0c;使用时请自行添加。 博主主页&#xff1a;Yan. yan.                        …

pwn1_sctf_2016

首先找到后门 32位IDA 打开 这里fgets,他限定了位数,我们无法利用溢出 但是我们可以看见 最后还有个操作 他把我们里面的I,全部替换为了 you S大小为0x3c ---意思我们要输入0x3c/3 的I 能达到溢出的目的 再加上4 from pwn import * ghust remote("node5.buuoj.cn&q…

如何解决跨区域文件传输存在的安全管控问题?

⼤型企业和集团为扩⼤市场份额、优化资源配置&#xff0c;会在不同地区设⽴多级下属分⽀机构、研发中心、实验室等&#xff0c;存在研发数据横向或纵向流转的需求&#xff0c;研发数据进行跨区域文件传输的场景。跨区域可能是网络区域&#xff0c;也可能是地理区域&#xff0c;…

渗透测试-若依框架的杀猪交易所系统管理后台

前言 这次是带着摸鱼的情况下简单的写一篇文章&#xff0c;由于我喜欢探究黑灰产业&#xff0c;所以偶尔机遇下找到了一个加密H币的交易所S猪盘&#xff0c;我记得印象是上年的时候就打过这一个同样的站&#xff0c;然后我是通过指纹查找其它的一些站&#xff0c;那个站已经关…

【深度学习】实现基于MNIST数据集的TensorFlow/Keras深度学习案例

基于TensorFlow/Keras的深度学习案例 实现基于MNIST数据集的TensorFlow/Keras深度学习案例0. 什么是深度学习&#xff1f;1. TensorFlow简介2. Keras简介3. 安装TensorFlow前的注意事项4. 安装Anaconda3及搭建TensorFlow环境1&#xff09; 下载安装Anaconda Navigator2&#xf…