数据库讲解---(数据库设计)

news2024/11/17 15:28:06

目录

一.数据库设计概述

1.1数据库设计的内容

1.1.1数据库的结构设计

1.1.2数据库的行为设计

1.2数据库设计方法

1.2.1直观设计法

1.2.2规范设计法

1.2.3计算机辅助设计法

1.2.4自动化设计法

1.3数据库设计的基本步骤

1.3.1需求分析

1.3.2概念结构设计

1.3.3逻辑结构设计

1.3.4物理结构设计

1.3.5数据库实施

1.3.6数据库运行和维护

二.需求分析

2.1信息要求

2.2处理要求

2.3安全性与完整性要求

2.4需求分析的方法和过程【需了解】

2.5需求分析常用工具

2.5.1数据流图

2.5.2数据字典【重要】

三.概念结构设计

3.1概念结构设计方法

3.1.1集中式模式设计法

3.1.2视图集成法

3.1.3混合方法

3.1.4由内向外法

四.逻辑结构设计

4.1逻辑结构设计的任务和步骤

4.2E-R图向关系模式转换的原则【重要】

4.2.1实体的转换

4.2.2联系的转换

​编辑

联系为1:1时:

联系为1:n时

联系为m:n时

4.3逻辑结构的优化

4.3.1确定范式级别

4.3.2实施规范化处理

4.4设计用户外模式

五.物理结构设计

5.1确定数据库的物理结构

5.1.1确定数据库的的存储结构

聚簇:

索引:

5.1.2确定访问方法

5.1.3确定数据的存放位置

5.1.4确定系统配置

六.数据库实施

6.1建立实际数据库结构

6.2组织数据入库

6.3编制与调试应用程序(了解即可)

6.4数据库试运行

七.数据库的运行和维护

7.1数据库的转储和恢复

7.2数据库的安全性、完整性检测

7.3数据库性能的监督、分析和改进

7.4数据库的重组织和重构造

一.数据库设计概述

1.1数据库设计的内容

1.1.1数据库的结构设计

数据库的结构设计是根据给定的应用环境,进行数据库的模式或子模式的设计。

1.1.2数据库的行为设计

数据库的行为设计是指确定数据库用户的行为和动作。

1.2数据库设计方法

1.2.1直观设计法

直观设计法也叫手工试凑法,是最早使用的数据库设计方法

1.2.2规范设计法

规范设计法是将数据库设计分为若干阶段,明确规定各阶段的任务,采用自顶向下、分层实现、逐步求精的设计原则。

常用的规范设计法有:

  • 基于E-R模型的数据库设计方法
  • 基于3NF的数据库设计方法
  • 基于视图的数据库设计方法

1.2.3计算机辅助设计法

计算机辅助设计法是在数据库设计的某些过程中模拟某一规范化设计的方法。

1.2.4自动化设计法

自动化设计法缩短数据库设计周期加快数据库设计速度的一种方法。

1.3数据库设计的基本步骤

数据库设计分为:“需求分析”、“概念结构设计”、“逻辑结构设计”、“物理结构设计”、“数据库实施”、“运行维护”六个阶段。

1.3.1需求分析

需求分析是对具体应用环境的业务流程和用户提出的各种要求加以调查研究和分析,并和用户共同对各种原始数据加以综合、整理的过程,是形成最终设计目标首要阶段,也是最困难的阶段。

1.3.2概念结构设计

概念结构设计是对用户信息需求所进行的进一步抽象和归纳,结果为数据库概念结构,通常用E-R模型来表示。

数据库的概念结构与DBMS和相关软硬件无关。

1.3.3逻辑结构设计

逻辑结构设计的结果是得到一个与DBMS无关的概念模式,而逻辑结构设计就是将概念模式转换为与选用的具体DBMS所支持的数据模型相符合的逻辑结构。

1.3.4物理结构设计

数据库物理设计是将逻辑结构设计阶段所产生的逻辑数据模型,转换为某一计算机系统所支持的数据库物理结构的实现过程。

数据库的物理结构主要指数据库存储记录格式存储记录安排存储方法,完全依赖于给定的硬件环境、具体的DBMS和操作系统。

1.3.5数据库实施

数据库实施阶段,即数据库调试、试运行阶段·

1.3.6数据库运行和维护

数据库实施阶段结束后,标志着数据库系统投入正常运行开始

数据库设计是一种动态不断完善的过程,运行和维护阶段是保证数据库日常活动的一个重要阶段

二.需求分析

需求分析的重点是:“调查、收集与分析用户在数据库管理中的信息要求、处理要求、安全性与完整性要求”。

2.1信息要求

信息要求是指用户需要从数据库中获得信息的内容与性质。

2.2处理要求

处理要求是指用户要求完成什么处理功能。

2.3安全性与完整性要求

确定用户的最终需求是一件很困难的事情,因此设计人员必须与用户不断深入地进行交流,才能逐步确定用户的实际需求。

2.4需求分析的方法和过程【需了解

需求分析常用的方法五种:“跟班作业”、“开调查会”、“请专人介绍和询问”、“设计调查请用户填写”、“查阅记录”。

需求分析过程一般如下:

  1. 分析用户活动,产生业务流程图
  2. 确定系统范围,产生系统范围图
  3. 分析用户活动所涉及的数据,产生数据流图
  4. 分析系统数据,产生数据字典
  5. 功能分析

2.5需求分析常用工具

2.5.1数据流图

数据流图(Data Flow Diagram,DFD)是结构化分析方法中用于表示系统逻辑模型的一种工具,以图形的方式描绘在系统中流动和处理的过程。

数据流图是一种功能模型

其中,DFD四个要素组成(需了解):

2.5.2数据字典【重要

数据字典(Data Dictionary,DD)是将数据流程图中各个要素的具体内容和特征,以特定格式记录下来,所形成的文档

它包括:“数据项”、“数据结构”、“数据流”、“加工”、“文件”、“外部实体”。

  • 数据项:数据项是不可再分的数据单位
  • 数据结构:数据结构反映了数据之间的组合关系,一个数据结构可以用若干个数据项组成,也可以由若干个数据结构组成
  • 数据流:数据流是数据结构在系统内传输的路径
  • 数据存储:数据存储是数据结构停留或保存的地方
  • 处理过程:数据字典中只需要描述处理过程的说明性信息

ps:“数据字典是关于数据库中数据的描述,即原数据,而不是数据本身”。 

三.概念结构设计

概念模型使用接近计算机存储的方式表示数据,但是又不涉及具体的DBMS

概念模型是对现实世界的一种抽象。

3.1概念结构设计方法

概念结构设计阶段,通常使用E-R模型图作为概念设计的描述工具进行设计。

3.1.1集中式模式设计法

集中式模式设计法即首先定义全局概念结构的框架,然后逐步细化

3.1.2视图集成法

各部分的需求说明为基础,分别设计各自的局部模式。

3.1.3混合方法

混合方法将“集中式模式设计法”和“视图集成法”结合,以骨架集成。

3.1.4由内向外法

首先定义最重要的核心概念结构,然后向外扩充,考虑已存在概念附近的新概念使得建模过程向外扩展。

四.逻辑结构设计

4.1逻辑结构设计的任务和步骤

逻辑结构设计的任务和步骤如下:

  • 将E-R模型转换为等价的关系模式
  • 按需要对关系模式进行规范化
  • 对规范化后的模式进行评价
  • 根据局部应用的需要,设计用户外模式

4.2E-R图向关系模式转换的原则【重要

将E-R图转换为关系模型实际上就是要将实体、实体的属性和实体之间的联系转换为关系模式。

4.2.1实体的转换

一个实体型转换为一个关系模式。

4.2.2联系的转换

一个联系转换为一个关系模式,与联系相连的各实体的码以及联系的属性转换为关系的属性,该关系的码有以下几种情况:

  • 若联系为1:1,则每个实体的码均为该关系的候选码。
  • 若联系为1:n,则关系的码为n端实体的码。
  • 若联系为m:n,则关系的码为诸实体码的组合。

 下面对“1:1”、“1:n”、“m:n”三种关系各做一个例子:

示例图

联系为1:1时:
  • 第一步,将联系转换为独立的关系模式

因为联系为1:1时,每个实体的码均是该关系的候选码,因此“指定”联系转换为关系模式时,形式为:

1:1时,任意一个实体的码都可以做转换后关系模式的码,这里的“培养方案编号”也可以做主码。

转换后关系模式属性包含“各实体的码”、“联系的属性”,在“指定”联系中,联系本身并没有属性

  • 第二步,与关系模式合并

如果与某一端对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性

用上面的例子“指定”联系,与“专业”或者“培养方案”任一方合并,可得下面两种情况之一

联系为1:n时
  • 第一步,转换为独立的关系模式

与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,关系的码为n端实体的码

例如在图5-14中,联系“选修”转换为独立的关系模式时,为:

  • 第二步,与关系模式合并 

 只能与n端对应的关系模式合并,并在关系中加入n端关系模式的属性,且外码为1端关系的主码

联系为m:n时

m:n联系的转换方法只有一种,就是转化为一个独立的关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性

关系的码为各实体码的组合

例如,在5-16中学生和课程之间的“选课”联系,可以转化为:

4.3逻辑结构的优化

逻辑结构的优化分为两个步骤:“确定范式的级别”、“实施规范化处理”。

4.3.1确定范式级别

考察关系模式的函数依赖关系,确定范式等级。

4.3.2实施规范化处理

确定范式级别后,根据应用需求,确定对于这些模式是否进行合并或分解。

4.4设计用户外模式

定义用户外模式时,应着重注意

  • 使用更符合用户习惯的别名
  • 对不同级别的用户定义不同的外模式,以满足系统对安全性的要求。
  • 简化用户对系统的使用。

五.物理结构设计

物理设计可以分为两步

  1. 确定物理结构,在关系数据库中主要指存取方法和存储结构。
  2. 对物理结构进行评价,评价的重点是时间和空间效率。

5.1确定数据库的物理结构

5.1.1确定数据库的的存储结构

对于数据库的存储结构,一般DBMS提供两种选择:“聚簇”和“索引”。

聚簇:

聚簇就是为了提高查询速度,把一个或一组属性上具有相同值的元组集中地存放在一个物理块或者相邻的物理块中。

其中,这个(这组)属性称为“聚簇码”。

聚簇两个作用

  • 节省存储空间
  • 提高按聚簇码查询的效率
索引:

在主键上建立唯一索引,可以提高查询速度,还可以确保数据完整性。

关系中数据越多,索引的优越性也越明显

5.1.2确定访问方法

访问方法是为了存储在物理设备上(辅存)上的数据提供存储检索能力的方法。

一个访问方法包括:“存储结构”和“检索结构”两个部分。

  • 存储结构:限定了可能访问的路径和存储记录。
  • 检索结构:定义了每个应用的访问路径,但不涉及存储结构的设计和设备分配。

5.1.3确定数据的存放位置

根据应用情况将数据的异变部分稳定部分经常存取部分存取频率较低部分分开存放。

5.1.4确定系统配置

DBMS产品一般都提供了一些系统配置变量存储分配参数,系统为这些变量设定了初始值,在使用时,需要我们根据实际需要,修改系统配置变量。

六.数据库实施

数据库实施主要包括四部分:“建立实际数据库结构”、“组织数据入库”、“编制与调试应用程序”、“数据库试运行”。

6.1建立实际数据库结构

用DBMS提供的数据定义语言(DDL)严格描述数据库结构,例如用SQL语句定义所需基本表等。

6.2组织数据入库

装入数据又称为“数据库加载”,是数据库实施阶段的主要工作

如果使用人工方法完成,一般有四个步骤

  1. 筛选数据
  2. 转换数据格式
  3. 输入数据
  4. 校验数据

 通常对于数据量非常大的数据,我们需要编写程序来实现数据入库

6.3编制与调试应用程序(了解即可)

主要的数据库连接方式有以下几种:

  1. ODBC数据库接口
  2. OLE DB数据库接口
  3. ADO数据库接口
  4. ADO.NET数据库接口
  5. JDBC数据库接口

6.4数据库试运行

应用程序编写完成,并有一小部分数据装入后,应该在各种应用上分别试验对数据库的操作情况,这就是数据库的“试运行阶段”,或者称为“联合调试阶段”。

在这一阶段主要完成两方面工作:

  1. 功能测试,实际运行应用程序,测试他们能否完成各种预定的功能。
  2. 性能测试,测量系统的性能指标,分析系统是否符合射击目标。

七.数据库的运行和维护

数据库运行阶段,对数据库的维护主要用DBA完成,它包括:“数据库的转储和恢复”、“数据库的安全性、完整性检测”、“数据库性能的监督、分析和改进”、“数据库的重组织和重构造”四部分。

7.1数据库的转储和恢复

定期对数据库和日志文件进行备份,以保证一旦发生故障,能利用数据库备份以及日志文件恢复数据库。

7.2数据库的安全性、完整性检测

DBA需要根据用户的实际需要授予不同的操作权限。

DBA要根据环境的变化,保证数据库的数据安全。

7.3数据库性能的监督、分析和改进

DBA需要利用监测系统性能参数的工具调整某些参数来进一步改进数据库的性能。

7.4数据库的重组织和重构造

数据库运行一段时间后,数据库的物理存储结构或者物理特性可能会收到破坏,因此需要对数据库进行重新组织,即重新安排数据的存储位置、回收垃圾等。

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

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

相关文章

python基于Selenium的web自动化框架

1 什么是selenium Selenium 是一个基于浏览器的自动化工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid: Selenium IDE:Firefox的一个…

电脑显示msvcp110.dll丢失的修复方法,快速解决msvcp110.dll的5种方法

今天,我想与大家分享一个我在技术支持领域遇到的一个常见问题,以及我如何解决它的经验。这个问题是关于“msvcp110.dll丢失”的修复方法。 一,了解msvcp110.dll是什么 msvcp110.dll 是一个动态链接库文件,它是 Microsoft Visual …

CSRF代码审计

1 CSRF漏洞 1.1 漏洞原理 跨站请求伪造(Cross-site request forgery)CSRF,是一种使已登录用户在不知情的情况下执行某种动作的攻击。因为攻击者看不到伪造请求的响应结果,所以CSRF攻击主要用来执行动作,而非窃取用户…

Go 在结构体中定义下划线(_)字段原来还有这个特殊用途?

作者:陈明勇 个人网站:https://chenmingyong.cn 文章持续更新,如果本文能让您有所收获,欢迎点赞收藏加关注本号。 微信阅读可搜《程序员陈明勇》。 这篇文章已被收录于 GitHub https://github.com/chenmingyong0423/blog&#xff…

BADI - 采购申请增强ME_PROCESS_REQ_CUST行项目增强PROCESS_ITEM

需求:如果行项目有文本,则修改行项目 实现步骤 使用事务代码 SE19或SE18 为 BADI(ME_PROCESS_REQ_CUST )创建实现。单击方法PROCESS_ITEM使用方法 IF_LONGTEXTS_MM~GET_TEXTOBJECT 获取订单项文本对象 ID。使用方法 IF_LONGTEXTS…

粉末冶金5G智能工厂工业物联数字孪生平台,推进制造业数字化转型

粉末冶金5G智能工厂工业物联数字孪生平台,推进制造业数字化转型。在数字化浪潮席卷全球的今天,制造业的数字化转型已然成为不可逆转的趋势。粉末冶金行业,作为制造业的重要一环,亦需紧跟时代步伐,以5G智能工厂、工业物…

elementUI的衍生组件,avue的crud表格错位问题

问题描述: 每次从别的页面跳转回来就发现表格显示错位了 一通查 结果发现是有两层表格 解决办法: 根据开发者工具中看到的样式选择器,很粗暴的在全局样式文件中加一个: 效果:

全网最详细的SpringBoot管理系统开发教程

此文章适用于 学生管理系统、成绩管理系统、在线考试系统、图书管理系统 等,提供源码下载。 技术架构:Java SpringBoot Vue3 MySQL 一、项目搭建 1.1 开发工具 2024年了,我们就不考虑Eclipse了好吧,直接下载IDEA社区版。下载…

java医院绩效考核系统源码:医院绩效考核的发展趋势、医院绩效考核的具体方法

java医院绩效考核系统源码:医院绩效考核的发展趋势、医院绩效考核的具体方法 医疗机构绩效考核是对医疗机构绩效进行评估和分析的一项重要工作。它对医疗机构的发展起到了重要的指导和推动作用。本文将会分析国际上医院绩效考核的发展趋势以及医院绩效考核的具体方…

全国青少年信息素养大赛图形化编程复赛小高组真题-附答案

2023年全国青少年信息素养大赛图形化编程复赛小高组真题 题目总数:6 总分数:100 编程题 第 1 题 问答题 编程实现: 按下空格,背景会随机变化,如果变成沙漠背景,骆驼就会出现。 具体要求&#x…

【C++】继承(定义、菱形继承、虚拟继承)

🌈个人主页:秦jh_-CSDN博客🔥 系列专栏:https://blog.csdn.net/qinjh_/category_12575764.html?spm1001.2014.3001.5482 ​ 目录 继承的概念 继承定义 定义格式 继承关系和访问限定符 继承基类成员访问方式的变化 基类和…

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第46课-使用json文件

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第45课-使用头像 使用dtns.network德塔世界(开源的智体世界引擎),策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引擎&…

Java版ERP管理系统源码解析:利用Spring Cloud Alibaba和Spring Boot实现微服务架构

在当今数字化浪潮的推动下,企业对于高效、稳定且易于扩展的管理系统需求日益增长。为了满足这一需求,我们精心打造了一款基于Java技术的鸿鹄ERP(Enterprise Resource Planning)管理系统。该系统充分利用了Spring Cloud Alibaba、S…

C# Web控件与数据感应之数据返写

目录 关于数据返写 准备视图 范例运行环境 ControlInducingFieldName 方法 设计与实现 如何根据 ID 查找控件 FindControlEx 方法 调用示例 小结 关于数据返写 数据感应也即数据捆绑,是一种动态的,Web控件与数据源之间的交互,数据…

达梦数据守护集群脑裂恢复

集群环境参考上篇 达梦数据守护集群部署 https://blog.csdn.net/qq_25045631/article/details/139900164 集群发散脑裂时,监视器显示如下,实例GRP1_RT_01发生脑裂 1. 关闭DW环境 因为Global守护类型的守护进程,会自动将数据库实例切换到O…

MySQL集群高可用架构之MySQL InnoDB Cluste

今天我将详细的为大家介绍Centos 7.5 基于 MySQL 5.7的 InnoDB Cluster 多节点高可用集群环境部署的相关知识,希望大家能够从中收获多多!如有帮助,请点在看、转发支持一波!!! 一、MySQL InnoDB Cluster 介…

【 华为OD机试】信号发射和接收(C++ Java JavaScript Python)

题目 题目描述 有一个二维的天线矩阵,每根天线可以向其他天线发射信号,也能接收其他天线的信号,为了简化起见,我们约定每根天线只能向东和向南发射信号,换言之,每根天线只能接收东向或南向的信号。 每根天线有自己的高度anth,每根天线的高度存储在一个二维数组中,各个天…

Web框架简介

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 如果你要从零开始建立了一些网站,可能会注意到你不得不反复解决一些类似的问题。这样做是令人厌烦的,并且违反了良好编程的核…

【系统架构设计师】四、嵌入式基础知识(软件|软件设计|硬件|式总线逻辑)

目录 一、嵌入式软件 1.1 嵌入式软件分类 1.2 板级支持包(BSP) 1.3 BootLoader 1.4 设备驱动程序 二、嵌入式软件设计 2.1 编码 2.2 交叉编译 2.3 交叉调试 三、嵌入式系统硬件的分类 3.1 根据用途分类 3.2 存储器分类 四、内(外)总线逻辑 …

苹果Mac系统安装adobe软件“无法打开install因为无法验证开发者”解决方法

对于大部分小伙伴,特别是从事视频后期、设计等专业的人来说,Adobe全家桶系列软件,相信都或多或少用过,比如Photoshop、Premiere、illustrator、Lightroom等等。这些软件不仅支持Windows系统,也完美适配于苹果Mac系统&a…