数据库原理与应用笔记(七):数据库设计

简介: 数据库设计

7.1数据库设计概述

7.1.1数据库设计的特点

7.1.2数据库设计方法

7.1.3数据库设计的基本步骤

7.1.4数据库设计过程中的各种模式

7.2需求分析

7.2.1需求分析的任务

7.2.2需求分析的方法

7.2.3数据字典

7.3概念结构设计

7.3.1概念模型

7.3.2 E-R 模型

7.3.3 扩展的E-R模型

7.3.4概念结构设计

7.4 逻辑结构设计

7.4.1E-R图象关系模型的转换

7.4.2 数据模型的优化

7.4.3设计用户子模式

7.5物理结构设计

7.5.1 数据库物理设计的内容和方法

7.5.2 关系模式存取方法选择

7.5.3 确定数据库的存储结构

7.5.4 评价物理结构

7.6数据库的实施和维护

7.6.1 数据的载入和应用程序的调试

7.6.2 数据库的试运行

7.6.3 数据库的运行和维护


7.1数据库设计概述

数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求

信息管理要求是指在数据库中应该存储和管理哪些数据对象;数据操作要求是指对数据对象需要进行哪些操作,如查询、增、删、改、统计等操作。


数据库设计的目标是什么?

是为用户和各种应用系统提供一个信息基础设施和高效的运行环境。高效的运行环境指数据库数据的存取效率、数据库存储空间的利用率、数据库系统运行管理的效率等都是高的。

7.1.1数据库设计的特点

1.数据库建设的基本规律
“三分技术,七分管理,十二分基础数据”
2.结构(数据)设计和行为(处理)设计相结合
整个设计过程中要把数据库结构设计和对数据的处理设计密切结合起来

7.1.2数据库设计方法

从事数据库设计的专业人员应该具备如下知识和技术:

计算机的基础知识
软件设计的方法和技巧
程序设计的方法和技巧
数据的基本知识
数据库设计技术
应用领域的知识


数据库设计方法有:新奥尔良(New Orleans)方法、基于E-R模型的设计方法、3NF(第三范式)的设计方法、面向对象的数据库设计方法、统一建模语言UML方法

7.1.3数据库设计的基本步骤

按照结构化系统设计的方法,考虑数据库及其应用系统开发全过程,将数据库设计分为6个阶段:

需求分析
概念结构设计
逻辑结构设计
物理结构设计
数据库实施
数据库运行和维护

如图所示20200624221954808.png

在数据库设计过程中,需求分析和概念结构设计可以独立于任何数据库管理系统进行,逻辑结构设计和物理结构设计与选用的数据库管理系统密切相关。

以下有几个关键点需要牢记:

①需求分析的整个设计过程的基础,是最困难和最耗时间的一步

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

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

逻辑结构设计是将概念结构转换为某个数据库管理系统所支持的数据模型,并对其进行优化

物理结构设计是为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)

⑤数据库实施阶段,设计人员运用数据库管理系统提供的数据库语言及其宿主语言,根据逻辑设计和物理设计的结果建立数据库,编写与调试应用程序,组织数据入库,并进行试运行

⑥数据库系统运行过程中必须不断地对其进行评估、调整与修改


下图是各个设计过程各个阶段关于数据特性的设计描述

20200624222830945.png

7.1.4数据库设计过程中的各种模式

数据库设计的不同阶段形成数据库的各级模式20200624222946417.png

7.2需求分析

7.2.1需求分析的任务

需求分析的任务是通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。新系统必须充分考虑今后可能的扩充和改变,不能仅仅按当前应用需求来设计数据库


调查的重点是“数据”和“处理”,通过调查、收集与分析,获得用户对数据库的如下要求:

①信息要求。指用户需要从数据库中获得信息的内容和性质。由信息要求可以导出数据要求,即在数据库中需要存储的哪些数据。

②处理要去。指用户要完成的数据处理功能,对性能处理的要求。

③安全性与完整性要求。


什么意思呢?

因为用户不一定是专业人员,所以可能对想要的东西表达不是很清楚,就需要设计人员去和用户进行深入的探讨!

7.2.2需求分析的方法

调查用户需求的具体步骤是:

2020062422433132.png

常用的调查方法有:20200624224354146.png20200624224931116.png

7.2.3数据字典

数据字典是进行详细的数据收集和数据分析所获得的主要成果,是关于数据库中数据的描述,即元数据,而不是数据本身。数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充实、完善的。它在数据库设计中占有很重要的地位。

1.数据项

数据项是不可再分的数据单位。对数据项的描述通常包括以下内容:20200624225014874.png

2.数据结构

数据结构反映了数据之间的组合关系。对数据结构的描述通常包括以下内容:

20200624225103305.png

3.数据流

数据流是数据结构在系统内传输的路径。对数据流的描述通常包括以下内容:

20200624225144178.png

4.数据存储

数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。对数据存储的描述通常包括以下内容:

2020062422523247.png

5.处理过程

处理过程的具体处理逻辑一般用判定表或判定树来描述。数据字典中只需要描述处理过程的说明性信息即可,通常包括一下内容:2020062422533668.png

最后需要注意的两点是:

(1)需求分析阶段的一个重要而困难的任务是收集将来应用所涉及的数据,设计人员应充分考虑到可能的扩充和改变,使设计易于更改、系统易于扩充

(2)必须强调用户的参与

7.3概念结构设计

将需求分析所得到的用户需求抽象为信息结构(即概念模型)的过程就是概念结构设计,概念结构设计是数据库设计的关键

7.3.1概念模型20200624230401699.png

7.3.2 E-R 模型

在笔记一已经阐述过一些E-R模型的概念,比如(1)两个实体型之间的联系如下图所示

20200624230436443.png

例子如下:

20200624230652493.png

(2)两个以上的实体型之间的联系的例子如下图

2020062423062855.png

(3)单个实体型内的联系例子如下:

2020062423072042.png

2.E-R图

E-R图提供了表示实体型、属性和联系的方法

(1)实体型用矩形表示,矩形框内写明实体名。

(2)属性用椭圆形表示,并用无向边将其与相应的实体型连接起来。

(3)联系用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)

例:


20200624231011509.png

7.3.3 扩展的E-R模型

扩展就是让E-R图表达能力更强,这里仅举例一些经过扩展的E-R图

20200624231100499.png


7.3.4概念结构设计

1.实体与属性的划分原则

为了简化E-R的处置,现实世界的事物能作为属性对待的尽量作为属性对待

那么,什么样的事物可以作为属性对待呢?

①作为属性,不能再具有需要描述的性质
②属性不能与其他实体具有联系


2.E-R图的集成

各子系统的E-R图之间的冲突主要有三类:属性冲突、命名冲突和结构冲突

①属性冲突主要包括两类冲突

一是属性域冲突,即属性值的类型、取值范围或取值集合不同。比如某个属性有的单位把定义为整数,有的单位把它定义为字符型

二是取值单位冲突。比如有的单位以斤为做单位,有的以公斤为单位


②命名冲突主要包括两类冲突

一是同名异义
二是异名同义

③结构冲突主要包括三类冲突

一是同一对象在不同的应用中具有不同的抽象
二是同一实体在不同子系统的E-R图中所包含的属性个数和属性排列次序不完全相同
三是实体间的联系在不同的E-R图中为不同的类型

总的意思就是

↓↓↓

其实笼统的来说,就是在这里是这样,在那里就变成了另外的样子

7.4 逻辑结构设计

逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为与选用数据库管理系统产品所支持的数据模型相符合的逻辑结构

7.4.1E-R图象关系模型的转换

E-R图转换为关系模型实际上就是要将实体型、实体的属性和实体型之间的联系转换为关系模式。下面介绍转换的一般原则。一个实体型转换为一个关系模式,关系的属性就是实体的属性,关系的码就是实体的码。

对于实体型间的联系具有以下不同的情况:

(1)一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并

(2)一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并

(3)一个m:n联系转换为一个关系模式

(4)三个或三个以上的实体间的一个多元联系可以转换为一个关系模式

(5)具有相同码的关系模式可以合并


7.4.2 数据模型的优化

数据库逻辑设计的结果不是唯一的,进行数据模型的优化方法为:

(1)确定数据依赖

(2)对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系

(3)按照数据依赖的理论对关系模式逐一进行分析

(4)根据需求分析阶段得到的处理要求分析对于这样的应用环境这些模式是否合适,确定是否要对某些模式进行合并或分解

(5)对关系模式进行必要分解,提高数据操作效率和存储空间利用率


7.4.3设计用户子模式

简单说分为以下三点

(1)使用更符合用户习惯的别名

(2)可以对不同级别的用户定义不同的视图

(3)简化用户对系统的使用


7.5物理结构设计

数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于选定的数据库管理系统。为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程,就是数据库的物理设计

数据库的物理设计通常分为两步:

(1)确定数据库的物理结构
(2)对物理结构进行评价

7.5.1 数据库物理设计的内容和方法

首先对要运行的事务进行详细分析,获得选择物理数据库设计所需要的参数;其次,要充分了解所用关系数据库管理系统的内部特征,特别是系统提供的存取方法和存取结构

通常关系数据库物理设计的内容主要包括为关系模式选择存取方式,以及设计关系、索引等数据库文件的物理存储结构

7.5.2 关系模式存取方法选择

1.B+树索引存取方法的选择
2.hash索引存取方法的选择
3.聚蔟存取方法的选择

索引是数据结构的必修知识,所以这里不再对存取方法进行详细的叙述

7.5.3 确定数据库的存储结构

1确定数据的存放位置

为了提高系统性能,应该根据应用情况将数据的易变部分与稳定部分、经常存取部分和存取频率较低部分分开存放

2.确定系统配置

在进行物理设计的时候需要对系统提供的系统配置变量和存储分配参数进行赋值,以改善系统的性能

7.5.4 评价物理结构

就是不断的评估,选择最好的结构,给用户最好的体验

7.6数据库的实施和维护

7.6.1 数据的载入和应用程序的调试

数据库应用程序的设计应该与数据库设计同时进行

7.6.2 数据库的试运行

数据库的试运行需要注意两点,第一是组织数据入库是费时费力的事情,所以在组织入库的时候应该分批地组织数据入库,需要先输入小批量数据做调试用,待试运行基本合格后再大批量输入数据,逐步增加数据量,逐步完成运行评价;第二是在数据库试运行阶段需要做好数据库的转储和恢复工作

7.6.3 数据库的运行和维护

数据库的维护工作主要包括以下四个方面

(1)数据库的转储和恢复
(2)数据库的安全性,完整性控制
(3)数据库性能的监督、分析和改造
(4)数据库的重组织与重构造


相关文章
|
10月前
|
存储 人工智能 NoSQL
AI大模型应用实践 八:如何通过RAG数据库实现大模型的私有化定制与优化
RAG技术通过融合外部知识库与大模型,实现知识动态更新与私有化定制,解决大模型知识固化、幻觉及数据安全难题。本文详解RAG原理、数据库选型(向量库、图库、知识图谱、混合架构)及应用场景,助力企业高效构建安全、可解释的智能系统。
|
11月前
|
存储 弹性计算 安全
现有数据库系统中应用加密技术的不同之处
本文介绍了数据库加密技术的种类及其在不同应用场景下的安全防护能力,包括云盘加密、透明数据加密(TDE)和选择列加密。分析了数据库面临的安全威胁,如管理员攻击、网络监听、绕过数据库访问等,并通过能力矩阵对比了各类加密技术的安全防护范围、加密粒度、业务影响及性能损耗。帮助用户根据安全需求、业务改造成本和性能要求,选择合适的加密方案,保障数据存储与传输安全。
|
11月前
|
存储 弹性计算 Cloud Native
云原生数据库的演进与应用实践
随着企业业务扩展,传统数据库难以应对高并发与弹性需求。云原生数据库应运而生,具备计算存储分离、弹性伸缩、高可用等核心特性,广泛应用于电商、金融、物联网等场景。阿里云PolarDB、Lindorm等产品已形成完善生态,助力企业高效处理数据。未来,AI驱动、Serverless与多云兼容将推动其进一步发展。
526 8
|
存储 人工智能 数据库
视图是什么?为什么要用视图呢?数据库视图:定义、特点与应用
本文三桥君深入探讨数据库视图的概念与应用,从定义特点到实际价值全面解析。视图作为虚拟表具备动态更新、简化查询、数据安全等优势,能实现多角度数据展示并保持数据库重构的灵活性。产品专家三桥君还分析了视图与基表关系、创建维护要点及性能影响,强调视图是提升数据库管理效率的重要工具。三桥君通过系统讲解,帮助读者掌握这一常被忽视却功能强大的数据库特性。
2733 0
|
存储 关系型数据库 数据库
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
本文通过一个 Agentic RAG 应用的完整构建流程,展示了如何借助 RDS Supabase 快速搭建具备知识处理与智能决策能力的 AI 应用,展示从数据准备到应用部署的全流程,相较于传统开发模式效率大幅提升。
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
|
安全 Java Nacos
0代码改动实现Spring应用数据库帐密自动轮转
Nacos作为国内被广泛使用的配置中心,已经成为应用侧的基础设施产品,近年来安全问题被更多关注,这是中国国内软件行业逐渐迈向成熟的标志,也是必经之路,Nacos提供配置加密存储-运行时轮转的核心安全能力,将在应用安全领域承担更多职责。
|
11月前
|
关系型数据库 MySQL 分布式数据库
阿里云PolarDB云原生数据库收费价格:MySQL和PostgreSQL详细介绍
阿里云PolarDB兼容MySQL、PostgreSQL及Oracle语法,支持集中式与分布式架构。标准版2核4G年费1116元起,企业版最高性能达4核16G,支持HTAP与多级高可用,广泛应用于金融、政务、互联网等领域,TCO成本降低50%。
|
11月前
|
SQL 关系型数据库 MySQL
Mysql数据恢复—Mysql数据库delete删除后数据恢复案例
本地服务器,操作系统为windows server。服务器上部署mysql单实例,innodb引擎,独立表空间。未进行数据库备份,未开启binlog。 人为误操作使用Delete命令删除数据时未添加where子句,导致全表数据被删除。删除后未对该表进行任何操作。需要恢复误删除的数据。 在本案例中的mysql数据库未进行备份,也未开启binlog日志,无法直接还原数据库。
|
11月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1669 152

热门文章

最新文章