数据库-第六/七章 关系数据理论和数据库设计【期末复习|考研复习】

前言

总结整理不易,希望大家点赞收藏。

给大家整理了一下数据库系统概论中的重点概念,以供大家期末复习和考研复习的时候使用。
参考资料是王珊老师和萨师煊老师的数据库系统概论(第五版)。


文章目录

  • 前言
  • 第六章 关系数据理论
    • 6.1 规范化
    • 6.2 范式
    • 6.3 规范化小结
  • 第七章 数据库设计
    • 7.1 数据库设计
    • 7.2 数据库设计六个阶段
    • 7.3 需求分析主要任务
    • 7.4 数据字典
    • 7.5 概念结构设计
    • 7.6 E-R模型:实体、属性、实体之间的联系。
    • 7.7 概念结构设计过程
    • 7.8 E-R图的集成
    • 7.9 E-R图向关系模型的转换(就是概念模型转逻辑模型)
    • 7.10 数据模型的优化
    • 7.11 数据库的物理设计通常分两步:
    • 7.12 存取方法:快速存取数据库中的数据技术
    • 7.13确定数据库的存储结构
    • 7.14 数据库的实施
    • 7.15数据库的运行和维护
  • 练手题
    • 8.1


第六章 关系数据理论

6.1 规范化

函数依赖:
关系r中不可能存在两个元组在X属性上相等,在Y属性上不相等。成为X->Y。Y函数依赖于X。X决定Y。一个学生的学号能决定学生的姓名,也可称姓名属性依赖于学号。学号->学生姓名
函数依赖从性质上分为完全函数依赖、部分函数依赖和传递函数依赖。
完全函数依赖和部分函数依赖:
例,(sno,con)->grade是完全函数依赖 (sno,cno)->sdept是部分函数依赖因为sno->sdept。
传递函数依赖 A->B B->C 所以A->C
候选码:U是R上的属性。U完全函数依赖于K,K为R的候选码
超码: U部份依赖于K,K为U的超码。候选码是最小的超码
候选码多于一个选定一个为主码

6.2 范式

1NF第一范式:
关系中的每一个分量必须是不可分的数据项。规范化:一个低级的范式的关系模型通过模式分解可以转换成若干高一级的范式。
2NF第二范式:
每一个非主属性完全函数依赖于任何一个候选码,也就是说第二范式是消除了非主属性对码的部份依赖。例如:SLC(sno,sdept,sloc,cno,grade)满足第一范式,不满足第二范式。(sno,cno)->sdept是部分函数以来。要把表拆开。SLC1(sno,sloc,sdept) SLC2(sno,cno,grade)
3NF第三范式:
每一个非主属性既不传递依赖于码,也不部分依赖于码,第三范式消除了非主属性对码的传递依赖。例如:SLC1(sno,sloc,sdept) 满足第二范式,不满足第三范式。再拆SD(sno,sdept) SL(sno,sloc)
BCNF BC范式:
每一个决定因素都有码。不允许主键的一部分被另一部分或者其他部分决定。BC范式一定满足第三范式,但是第三范式不一定满足BC范式。例如:(S,J)->T,(S,T)->J T->J 所有属性都是主属性,满足第三范式,(但T不是码,不满足BCNF)
多值依赖 设R(U)是一个属性集合U上的一个关系模式,X, Y, 和Z是U的子集,并且Z=U-X-Y,多值依赖X->->Y成立当且仅当对R的任一个关系r,r在(X,Z)上的每个值对应一组Y的值,这组值仅仅决定于X值而与Z值无关。Z为空时,X->->Y平凡的多值依赖,多值依赖具有对称性,多值依赖具有传递性,X->->Y, Y->->Z则X->->Z-Y
4NF限制不允许有非平凡非函数依赖的多值依赖

6.3 规范化小结

规范化的基本思想:逐步消除数据依赖中不合适的部分,达到某种程度上的分离,即“一事一地”的设计原则。规范化的目的就是为了解决插入异常,删除异常,数据冗余等问题。规范化实质上是概念的单一化。

第七章 数据库设计

7.1 数据库设计

数据库设计是指对于一个给定的应用环境,设计构造数据库和应用系统使之能够有效地存储和管理数据。满足各种用户地应用需求。
“三分技术,七分管理,十二分基础数据”。重要环节是数据的收集,整理,组织和不断更新。

7.2 数据库设计六个阶段

1、需求分析
2、概念结构设计
3、逻辑结构设计
4、物理结构设计
5、数据库实施
6、数据库运行和维护

7.3 需求分析主要任务

通过详细调查现实世界要处理的对象,明确用户的各种需求,以此确定系统要实现的功能。
用户的要求:
(1) 信息要求
(2)处理要求
(3)安全性和完整性要求

7.4 数据字典

是关于所有数据库数据的描述,即元数据。在需求分析阶段建立,在设计过程中不断修改、完善。在数据库设计过程中有很重要的地位。通常包括数据项、数据结构、数据流、数据存储等。

7.5 概念结构设计

将需求分析得到的用户需求抽象为概念模型的过程就是概念结构设计。是整个数据库设计的关键。
概念模型能真实、充分的反映现实世界。易于理解,易于更改,易于向各种数据模型转换。是数据模型地基础。

7.6 E-R模型:实体、属性、实体之间的联系。

(1)实体型的联系:一对一 (1:1);一对多(1:n);多对多(m:n)
(2)实体用矩形,属性用椭圆形,联系用菱形表示

7.7 概念结构设计过程

(1)确定属性和实体,属性必须不能具有描述的性质,不包含其他属性。
(2) 找到属性之间的联系,(一对一之类)
(3) 画E-R图
(4) 大型系统可能会需要集成(先设计子系统的E-R图,然后集成)

7.8 E-R图的集成

(就是将子系统得E-R图集成在一起)一般分两步:合并,修改重构
合并需要消除冲突:属性冲突、命名冲突、结构冲突。
1、属性冲突:属性值的类型、取值范围,单位不一致。
2、命名冲突:同名异义,异名同义。
3、结构冲突:同一对象在不同应用中具有不同的抽象。实体联系在不同的关系中为不同的类型。

7.9 E-R图向关系模型的转换(就是概念模型转逻辑模型)

一个实体型转换为一个关系模型,关系的属性就是实体的属性,关系的码就是实体的码。
根据实体间的联系转换成不同的关系模型(1:1,1:n, m:n)

7.10 数据模型的优化

(1) 确定数据依赖
(2) 对于各关系模型之间的数据依赖进行极小化处理,消除冗余的联系
(3) 按照数据依赖理论对关系模型逐一进行分析
(4) 找到合适的范式来进行分解和合并

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

(1) 确定数据库的物理结构:存取方法和存储结构
(2) 对物理结构进行评价,重点是时间和空间效率。之后再进行进一步操作,修改或者数据库实施

7.12 存取方法:快速存取数据库中的数据技术

1、B+树索引,hash索引,聚簇方法。
2、前两者都是建立索引,具体概念参照数据结构
聚簇方法:为了提高某个属性的查询速度,把这个属性上具有相同值的元素集中存放在连续的物理块中称为聚簇,该属性称为聚簇码。一个数据库可以建立多个聚簇,一个关系只能加入一个聚簇。聚簇的开销是相当大的,会导致物理位置发生变化.
在这里插入图片描述
B+Tree与 B-Tree 的区别:
1、所有的数据都会出现在叶子节点。
2、叶子节点形成一个单向链表。
MySQL 索引数据结构对经典的B+Tree 进行了优化。在原B+Tree 的基础上,增加一个指向相邻叶子节点的链表指针,就形成了带有顺序指针的 B+Tree,提高区间访问的性能。变成了双向循环链表。

为什么 InnoDB 存储引擎选择使用 B+Tree 索引结构?
答:相对于二叉树,层级更少,搜索效率高。对于 B-Tree,无论是叶子节点还是非叶子节点,都会保存数据,这样导致一页中存储的键值减少,指针也跟着减少,要同样保存大量数据,只能增加树的高度,导致性能降低。相对于 Hash 索引,B+Tree 支持范围匹配及排序操作。

7.13确定数据库的存储结构

考虑三方面:存取时间、存储空间利用率、维护代价三方面。

7.14 数据库的实施

设计人员根据上面的概念模型、逻辑模型、物理设计对数据库进行程序设计、编码。调试,最后运行。
数据要分批分期地组织数据入库,待运行稳定后再大批入库。也要做好转储和恢复的工作防止出现故障。

7.15数据库的运行和维护

(1) 数据库的转储和恢复
(2) 数据库的安全性和完整性控制
(3) 性能的监督、分析和改造
(4) 数据库的重组织与重构造。
数据库重组织不修改原设计的逻辑结构和物理结构,而数据库的重构造会部分修改模式和内模式。

练手题

8.1

在这里插入图片描述
这里答案仅作参考,我自己随便写的,照着书好好好好做做,这个题很重要的
在这里插入图片描述

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

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

相关文章

C#,入门教程(26)——数据的基本概念与使用方法

上一篇: C#,入门教程(25)——注释(Comments)你会吗?看多图演示,学真正注释。https://blog.csdn.net/beijinghorn/article/details/124681888 本文所述的知识基本上适用于C/C,java等其他语言。 …

LVS集群 ----------------(直接路由 )DR模式部署

一、LVS集群的三种工作模式 lvs-nat:修改请求报文的目标IP,多目标IP的DNAT lvs-dr:操纵封装新的MAC地址(直接路由) lvs-tun:隧道模式 lvs-dr 是 LVS集群的 默认工作模式 NAT通过网络地址转换实现的虚拟服务器&…

在分布式环境中使用状态机支持数据的一致性

简介 在本文中,我们将介绍如何在分布式系统中使用transaction以及分布式系统中transaction的局限性。然后我们通过一个具体的例子,介绍了一种通过设计状态机来避免使用transaction的方法。 什么是数据库transaction Transaction是关系型数据普遍支持的…

java SSM流浪宠物救助与领养myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM流浪宠物救助与领养管理系统是一套完善的web设计系统(系统采用SSM框架进行设计开发,springspringMVCmybatis),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系…

Fragment

1.网格视图(随便插进来一条) 2.Fragment

谷歌开源的LLM大模型 Gemma 简介

相关链接: Hugging face模型下载地址:https://huggingface.co/google/gemma-7bGithub地址:https://github.com/google/gemma_pytorch论文地址:https://storage.googleapis.com/deepmind-media/gemma/gemma-report.pdf官方博客&…

Linux——文件标识符

目录 一、文件基础 二、常见的C语言文件接口 三、系统文件接口 四、理解语言与系统文件操作的关系 五、如何理解一切皆文件 六、文件标识符再理解 一、文件基础 一个空文件,也会占用磁盘空间,这是因为文件不仅仅有存放在里面的内容,还…

Chapter20-Ideal gases-CIE课本要点摘录、总结(编辑中)

20.1 Particles of a gas Brownian motion Fast modules 速率的数值大概了解下: average speed of the molecules:400m/s speed of sound:approximately 330m/s at STP(standard temperature and pressure) Standard Temperature and Pres…

ROS 2基础概念#5:执行器(Executor)| ROS 2学习笔记

在ROS 2中,Executor是一个核心概念,负责管理节点(Node)中的回调函数,如订阅消息的回调、服务请求的回调、定时器回调等。Executor决定了何时以及如何执行这些回调,从而在ROS 2系统中实现异步编程。 ROS 2 …

七彩虹八渐变 外贸建站公司wordpress模板

进出口水果wordpress外贸模板 漂亮水果wordpress外贸模板,做水果进出品生意的外贸公司自建站官网模板。 https://www.jianzhanpress.com/?p3516 玩具wordpress外贸模板 简洁玩具wordpress外贸模板,适合做跨境电商外贸公司使用的wordpres外贸s网站主题…

FPGA 按键控制串口发送

按键消抖 消抖时间一般为10ms,我使用的板子是ACX720,晶振为50MHZ,20ns为一周期。 状态机 模块设计 设计文件 timescale 1ns / 1ps // // Company: // Engineer: // // Create Date: 2023/01/11 12:18:36 // Design Name: // Module Name…

(学习总结)如何使用ChatGPT API训练自定义知识库

第一步: 安装OpenAI、GPT Index、PyPDF2和Gradio库 pip install openai pip install gpt_index pip install PyPDF2 pip install gradio 第二步:用VScode代码编辑器写app.py代码 记得替换api密钥 from llama_index import SimpleDirectoryReader, …

纯css实现太极八卦图

感觉最近好像闯鬼了&#xff0c;赶紧写个八卦图避避邪&#xff0c;开玩笑了&#xff0c;不废话&#xff0c;上菜&#xff0c;看效果上代码。 效果 代码&#xff0c;你们都是大佬&#xff0c;这里就不解释代码了 &#xff08;hover会转动喔&#xff09;。 <!DOCTYPE html&g…

LabVIEW智能Modbus监控系统

LabVIEW智能Modbus监控系统 在自动化和信息化迅速发展下&#xff0c;传统的监控系统已无法满足现代工业对于数据通讯和处理的高效率和高可靠性要求。为了解决这一问题&#xff0c;设计了一套基于LabVIEW的智能Modbus监控系统。该系统利用LabVIEW的图形化编程环境和Modbus协议的…

数字孪生10个技术栈:数据处理的六步骤,以获得可靠数据。

一、什么是数据处理 在数字孪生中&#xff0c;数据处理是指对采集到的实时或历史数据进行整理、清洗、分析和转化的过程。数据处理是数字孪生的基础&#xff0c;它将原始数据转化为有意义的信息&#xff0c;用于模型构建、仿真和决策支持。 数据处理是为了提高数据质量、整合数…

深入理解Servlet

目录&#xff1a; ServletWeb开发历史Servlet简介Servlet技术特点Servlet在应用程序中的位置Tomcat运行过程Servlet继承结构Servlet生命周期Servlet处理请求的原理Servlet的作用HttpServletRequest对象HttpServletResponse对象ServletContext对象ServletConfig对象Cookie对象与…

SpringBoot快速入门(介绍,创建的3种方式,Web分析)

目录 一、SpringBoot介绍 二、SpringBootWeb快速入门 创建 定义请求处理类 运行测试 三、Web分析 一、SpringBoot介绍 我们可以打开Spring的官网(Spring | Home)&#xff0c;去看一下Spring的简介&#xff1a;Spring makes Java simple。 Spring发展到今天已经形成了一种…

Android 多桌面图标启动, 爬坑点击打开不同页面

备注 &#xff1a; MainActivity 正常带界面的UI MainActivityBt 和 MainActivityUsb 是透明的&#xff0c;即 android:theme"style/TranslucentTheme" ###场景1:只有MainActivity 设置成&#xff1a;android:launchMode"singleTask" 点击顺序&#xff1…

ThreadLocal :在 Java中隱匿的魔法之力

优质博文&#xff1a;IT-BLOG-CN ThreadLocal 并不是一个Thread&#xff0c;而是 ThreadLocalVariable(线程局部变量)。也许把它命名为 ThreadLocalVar更加合适。线程局部变量就是为每一个使用该变量的线程都提供一个变量值的副本&#xff0c;是 Java中一种较为特殊的线程绑定机…

MySQL--优化(索引--聚簇和非聚簇索引)

MySQL–优化&#xff08;索引–聚簇和非聚簇索引&#xff09; 定位慢查询SQL执行计划索引 存储引擎索引底层数据结构聚簇和非聚簇索引索引创建原则索引失效场景 SQL优化经验 一、聚簇索引 聚簇索引&#xff1a;将数据存储与索引放到了一块&#xff0c;索引结构的叶子节点保存…