数据库原理第七章笔记

article/2025/11/9 9:56:00

一、 数据库设计概述

数据库设计,广义的讲是数据库及其应用系统的设计,即整个数据库应用系统。狭义的讲是设计数据库本身,即设计数据库的各级模式并建立数据库,也是数据库应用系统设计的一部分。
数据库设计是指对于一个给定的应用环境,构造设计优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和数据管理,满足各种用户的应用需求,包括信息管理要求和数据操作要求。
1. 数据库设计的特点
1.1 数据库建设的基本规律——三分技术,七分管理,十二分基础数据。
1.2 结构(数据)设计和行为(处理)设计相结合
2. 数据库设计的方法
2.1 计算机的基础知识
2.2 软件工程的原理和方法
2.3 程序设计的方法和技巧
2.4 数据库的基本知识
2.5 数据库设计技术
2.6 应用领域的知识
3. 数据库设计的基本步骤
3.1 需求分析
3.2 概念设计结构
3.3 逻辑设计结构
3.4 物理设计结构
3.5 数据库实施
3.6 数据库运行和维护
4. 数据库设计过程中的各级模式:
在这里插入图片描述

二、 需求分析

1. 需求分析的任务
调查的重点是“数据”和“处理”,通过调查、收集与分析,或得用户对数据库的如下要求:
1.1 信息要求
1.2 处理要求
1.3 安全性与完整性要求
2. 需求分析的方法
调查用户需求的基本步骤:
2.1 调查组织机构情况
2.2 调查各部门的业务活动情况
2.3 在熟悉业务活动的基础上
2.4 确定新系统的边界
3. 数据字典
数据库中数据的描述,即元数据,而不是数据本身。数据字典是需求分析阶段建立,在数据库设计过程中不断修改、充实、完善的。它在数据库设计中占有很重要的地位。
3.1 数据项——数据项是不可再分的数据单位。
3.2 数据结构——反映了数据之间的组合关系。
3.3 数据流——数据结构在系统内传输的路径
3.4 数据存储——是数据结构停留或保存的地方,也是数据流的来源和去向之一。
3.5 处理过程——具体处理逻辑一般用判定表或判定树来描述。

三、 概念结构设计

1. 概念模型
概念模型的主要特点:
1.1 能真实、充分地反映现实世界
1.2 易于理解,可以用它和不熟悉的计算机的用户交换意见
1.3 易于更改,当应用环境和使用要求改变时容易对概念模型修改和扩充
1.4 易于向关系、网状、层次等各种数据模型进行转换。
2. E-R模型
用来描述现实世界的概念模型
2.1 实体之间的联系
2.2 两个以上的实体性之间的联系
2.3 单个实体型内的联系
3. 扩展E-R模型
3.1 ISA联系
a) 分类属性
b) 不相交约束与可重叠约束
c) 完备性约束
3.2 基数约束
基数约束是对实体之间一对一,一对多,多对多联系的细化
3.3 Part-of联系
4. 概念设计模型
4.1 实体与属性之间的划分原则
4.2 E-R图的集成

四、 逻辑结构设计

逻辑结构设计的任务就是把概念结构设计阶段设计好的E-R图转换为选用数据库管理系统产品所支持的数据模型相符合的逻辑结构。
1. E -R图向关系模型的转换
1.1 一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
1.2 一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
1.3 一个m:n联系转换为一个关系模式。
1.4 三个或三个以上实体之间的一个多元联系可以转换为一个关系模式。
1.5 具有相同码的关系模式可合并。
2. 数据模型的优化
数据库逻辑设计的结果不是唯一的。并不是规范化程度越高的关系越优。
3. 设计用户子模式

五、 物理结构设计

为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程,就是数据库的物理设计。
数据库的物理设计通常分为两步:
a) 确定数据库的物理结构
b) 对物理结构进行评价

  1. 数据库物理设计的内容和方法
  2. 关系模式存取方法选择
    2.1 B+树索引存取的方法
    2.2 Hash索引存取方法的选择
    2.3 聚簇存取方法的选择
  3. 确定数据库的存储结构
    3.1 确定数据的存放位置
    3.2 确定系统配置
    3.3 评价物理结构

六、 数据库的实施和维护

  1. 数据的载入和应用程序的调试
  2. 数据库的试运行
  3. 数据库的运行和维护
    3.1 数据库的转存和恢复
    3.2 数据库的安全性和完整性的控制
    3.3 数据库性能的监督、分析和改造
    3.4 数据库的重组织和重构造

第七章 数据库设计小结

1、数据库设计概念:是指对于一个给定的应用环境,设计最优的数据库模式 ,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。
2、数据库设计目标:是在DBMS的支持下,按照应用的要求,为某一部门或组织设计一个结构合理、使用方便、效率较高的数据库及其应用系统
3、需求分析阶段的任务:调查和分析用户的业务活动和数据的使用情况,弄清所用数据的种类、范围、数量以及它们在业务活动中交流的情况,确定用户对数据库系统的使用要求和各种约束条件等,形成用户需求规约
4、DFD:由数据流、加工、数据存储和外部实体4个要素构成。外部实体是指存在于软件系统之外的人员或组织,它指出系统所需数据的发源地和系统所产生数据的归宿地。
5、数据字典:数据库中所有对象及其关系的信息集合。用途:进行详细的数据收集和数据分析所获得的主要结果。内容:数据项、数据结构、数据流、数据存储、处理过程
6、概念设计阶段:是对现实世界的一种抽象,整个数据库设计的关键。任务:通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。工具:ER图
7、概念结构设计的特点:
(1) 能真实、充分地反映现实世界
(2) 易于理解
(3) 易于更改
(4) 易于向关系、网状、层次等各种数据模型转换
8、设计的一般原则
属性不能再具有需要描述的性质。即属性必须是不可分的数据项,不能再由另一些属性组成。属性不能与其他实体具有联系。联系只发生在实体之间。
9、视图集成的两种方式
一次集成式:一次集成多个分E-R图,通常用于局部视图比较简单时。
逐步累积式:首先集成两个局部视图(通常是比较关键的两个局部视图),以后每次将一个新的局部视图集成进来。
10、消除冲突方法
属性冲突(属性域冲突、属性取值单位冲突)的解决方法:通常用讨论、协商等行政手段加以解决。
命名冲突(同名异义、异名同义)的解决方法:通过讨论、协商等行政手段加以解决。
结构冲突:(同一对象在不同应用中具有不同的抽象:解决方法:通常是把属性变换为实体或把实体变换为属性,使同一对象具有相同的抽象。变换时要遵循前面讲过的两个准则。同一实体在不同局部视图中所包含的属性不完全相同:解决方法:使该实体的属性取各分E-R图中属性的并集,再适当设计属性的次序。实体之间的联系在不同局部视图中呈现不同的类型:解决方法:根据应用语义对实体联系的类型进行综合或调整。)
11、消除冗余的方法
分析方法:以数据字典和数据流图为依据,根据数据字典中关于数据项之间逻辑关系的说明来消除冗余。
规范化理论:借助函数依赖的概念消除冗余联系。
12、逻辑结构设计的任务及步骤
任务:将概念结构进一步转化为相应的数据模型。
步骤:将概念结构转化为一般的关系、网状、层次模型;将转化来的关系、网状、层次模型向特定DBMS支持下的数据模型转换;对数据模型进行优化。
13、E-R图向关系模型的转换
① 一个实体型转换为一个关系模式。
② 一个 m:n 联系转换为一个关系模式。
③ 一个 1:n 联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
④ 一个 1:1 联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
⑤ 三个或三个以上实体间的一个多元联系转换为一个关系模式。
⑥ 同一实体集的实体间的联系,即自联系,也可按上述 1:1、1:n 和 m:n 三种情况分别处理。
⑦ 具有相同码的关系模式可合并。
14、优化数据模型的方法
① 确定数据依赖
② 对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。
③ 按照数据依赖的理论对关系模式逐一进行分析,考查是否存在部分函数依赖、传递函数依赖、多值依赖等,确定各关系模式分别属于第几范式。
④ 按照需求分析阶段得到的各种应用对数据处理的要求,分析对于这样的应用环境这些模式是否合适,确定是否要对它们进行合并或分解。
⑤ 按照需求分析阶段得到的各种应用对数据处理的要求,对关系模式进行必要的分解或合并,以提高数据操作的效率和存储空间的利用率。
15、设计用户子模式的原则
(1) 使用更符合用户习惯的别名。
(2) 针对不同级别的用户定义不同的外模式,以满足系统对安全性的要求。
(3) 简化用户对系统的使用。
16、什么是数据库的物理设计
为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构的过程。
17、数据库物理设计的步骤
确定数据库的物理结构。对物理结构进行评价,评价的重点是时间和空间效率。如果评价结果满足原设计要求则可进入到物理实施阶段,否则,就需要重新设计或修改物理结构,有时甚至要返回逻辑设计阶段修改数据模型。
18、数据库试运行主要工作
功能测试:实际运行应用程序,执行对数据库的各种操作,测试应用程序的各种功能。
性能测试:测量系统的性能指标,分析是否符合设计目标。
19、数据库经常性的维护工作
数据库的转储和恢复;数据库的安全性、完整性控制;数据库性能的监督、分析和改进;数据库的重组织和重构造。
20、数据库各级模式的形成
需求分析阶段综合用户的应用需求(现实世界的需求)
概念设计阶段形成独立的概念模式(信息世界模型),用E-R图来描述。
逻辑设计阶段将E-R图转换成具体的数据库产品支持的数据模型如关系模型,形成数据库逻辑模式。然后再建立必要的视图(VIEW)形成数据的外模式。
物理设计阶段根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。
欢迎大家加我微信学习讨论
在这里插入图片描述


http://chatgpt.dhexx.cn/article/hHsvUHMx.shtml

相关文章

软件设计师学习笔记-数据库系统

目录 数据库系统 三级模式-两级映射 数据库设计过程 E-R模型 关系代数 规范化理论-函数依赖 规范化理论-价值与用途​ 规范化理论-键 规范化理论-求候选键 规范化理论-范式 规范化理论-模式分解 并发控制概念 并发控制存在的问题 并发控制的封锁协议 数据库完整…

SQL数据库--笔记

一、数据库概念 1.数据库 数据库(DB)是存放数据的仓库,按照一定的关联,按照一定的格式存储在计算机中 2.数据库管理系统 数据库管理系统(DBMS)按一定的数据模型组织数据形成数据库,并对数据…

数据库系统工程师考点笔记

目录 第1章 计算机系统知识1.1 计算机硬件基础知识 11.1.1 中央处理单元 11.1.2 存储器 41.1.3 总线 71.1.4 输入输出控制 10 1.2 计算机体系结构 141.2.1 CISC和RISC…… 151.2.2 流水线技术 161.2.3 阵列处理机、并行处理机和多处理机 19 1.3 存储系统 201.3.1 高速缓存 211.…

高级数据库课程笔记

前言:高级数据库的课程笔记,按提纲整理,部分内容没有整入。 文章目录 其他数据库:XMLDB OODB ORBDXML数据库特点SQL/XML 面向对象对象关系数据库系统中扩展的关系数据类型LOBboolean集合类型array自定义类型distinct面向对象数据…

数据库与软件工程学习笔记(一)——数据库系统介绍

学习内容:数据库系统介绍 前言 笔者系19级电子科技大学的一名学生,针对本学期学习的数据库与软件工程课程,在csdn下记录自己的学习笔记,因为是边学边记录,博客内容难免有不够成熟之处,希望大家可以在评论…

狂神说数据库笔记

文章目录 1.初识数据库1.1、 什么是数据库1.2、数据库分类1.3、MySQl简介1.4、连接数据库 2.操作数据库2.1 操作数据库(了解)2.2 数据库的列类型2.3、数据库的字段属性(重点)2.4、创建数据库2.5、数据表的类型2.6、删改数据库 3.M…

号称程序员的最后一款笔记软件!来看看它有多牛逼

点关注公众号,回复“1024”获取2TB学习资源! 市面上笔记软件五花八门,都各有特色。wolai、语雀、飞书、印象笔记、石墨、幕布、为知笔记.....等等,数不胜数,但我最终选择了notion,因为它实在太好用了&#…

【数据库笔记】数据库可视化Navicat Premium安装和使用

数据库可视化软件的安装和使用 文章目录 数据库可视化软件的安装和使用一、官网二、安装三、选择许可方式四、连接 一、官网 Navicat | 支持 MySQL、MariaDB、MongoDB、SQL Server、SQLite、Oracle 和 PostgreSQL 的数据库管理 Navicat 在线和 PDF 手册 | 提示和教程 | Navic…

数据库笔记——使用Navicat来可视化管理MySQL数据库

在上一篇文章中:数据库笔记——MySQL的下载与安装(windows系统),讲解了在windows系统中,如何下载和安装MySQL数据库。 这一篇文章跟大家分享一款非常优秀的软件——Navicat。可以帮助我们来可视化管理MySQL数据库。 一、关于Navic…

笔记记录软件:NoteRecorder

利用SQLite数据库做了个笔记记录软件,加上搜索功能,方便自己记录东西所用。下载地址 (请在安装了.net framework 3.0/3.5的机器上运行,win7默认已安装该运行时) 参考资料: 1.KTDictSeg 分词组件: http://www.cnblogs.c…

面试官:说一下HashMap的实现原理?

哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现…

【HashMap底层实现原理】

目录 1. 基于Arraylist集合方式实现2. 基于数组链表方式实现(Jdk)3. HashMap底层是有序存放的吗?4. LinkedHashMap实现缓存淘汰框架5. HashMap如何降低Hash冲突概率6. HashMap源码解读6.1 modCount的作用6.2 HashMap7扩容产生死循环问题6.3 HashMap8扩容底层原理6.4…

十分钟快速掌握HashMap底层实现原理(图文详解)

HashMap概述 HashMap实现了Map接口,我们常用HashMap进行put和get操作读存键值对数据。下面介绍基于jdk1.8深入了解HashMap底层原理。 开始之前,记得点赞收藏加关注哦 ,需要下载PDF版本和获取更多知识点、面试题的朋友可以点一点下方链接免费领取 链接:点这里!!! 79921…

HashMap底层实现原理及面试题

文章目录 1. 常见的数据结构有三种结构1.1 各自数据结构的特点 2. HashMap2.1 概述2.2 底层结构2.2.1 HashMa实现原理:2.2.1.1 map.put(k,v)实现原理2.2.1.2 map.get(k)实现原理2.2.1.3 resize源码 2.2.2 HashMap常用的变量2.2.3 HashMap构造函数 2.3 JDK1.8之前存在…

【Java中HashMap底层实现原理】

文章目录 一、实现原理二、涉及到的数据结构1.位桶数组2.数组元素Node<K,V>实现了Entry接口3.红黑树 三、HashMap的存取机制1.HashMap如何getValue值:2.HashMap如何put(key&#xff0c;value): 四.HasMap的扩容机制resize():总结 一、实现原理 首先有一个每个元素都是链…

HashMap的实现原理+阿里HasMap面试题

HashMap可以说是面试必问的,是因为我们平时是经常使用的,而掌握他的底层原理,对于我们的工作也会有很大帮助. 在学习HashMap之前我们需要明白两个问题,这两个问题如果搞明白,对于我们下面的学习将会容易很多. 一.hashcode和equals, equals&#xff1a;是否同一个对象实例。注…

Java中HashMap的实现原理

一、Java中的hashCode和equals 1、关于hashCode hashCode的存在主要是用于查找的快捷性&#xff0c;如Hashtable&#xff0c;HashMap等&#xff0c;hashCode是用来在散列存储结构中确定对象的存储地址的如果两个对象相同&#xff0c;就是适用于equals(java.lang.Object) 方法…

HashMap底层实现原理及扩容机制

HashMap的数据结构&#xff1a;数组链表红黑树&#xff1b;Java7中的HashMap只由数组链表构成&#xff1b;Java8引入了红黑树&#xff0c;提高了HashMap的性能&#xff1b;借鉴一张图来说明&#xff0c;原文&#xff1a;https://www.jianshu.com/p/8324a34577a0 下面简单说一下…

HashMap 实现原理

简介 本文为我对 HashMap 实现原理的笔记整理以及一些个人理解&#xff0c;如若发现有错误的地方&#xff0c;欢迎留言指正 在不同的 Java 版本中 HashMap 的实现也略有不同&#xff0c;本文示例使用的 Java 版本为&#xff1a;“1.8.0_181” 什么是 Hash&#xff08;散列函…

HashMap底层实现原理(看这一篇就够了)

HashMap概述 HashMap实现了Map接口&#xff0c;我们常用HashMap进行put和get操作读存键值对数据。下面介绍基于jdk1.8深入了解HashMap底层原理。 HashMap数据结构 HashMap实际是一种“数组链表”数据结构。在put操作中&#xff0c;通过内部定义算法寻止找到数组下标&#xf…