数据库系统

news2024/11/15 8:32:05

目录

    • 第三章、数据库系统
      • 1、数据库模式
        • 1.1、三级模式--两级映射
        • 1.2、数据库设计过程
      • 2、ER模型
      • 3、关系代数与元组演算
      • 4、规范化理论
        • 4.1、函数依赖
        • 4.2、价值与用途
        • 4.3、键
        • 4.4、范式
        • 4.5、模式分解
      • 5、并发控制
      • 6、数据库完整性约束
      • 7、数据备份
      • 8、数控故障与恢复
      • 9、数据仓库与数据挖掘
      • 10、反规范化
      • 11、大数据

第三章、数据库系统

1、数据库模式

1.1、三级模式–两级映射

在这里插入图片描述
外模式(用户模式):用户能够直接看到和访问的数据,它是用户使用数据库系统的视图。
概念模式(全局模式):全局的数据逻辑结构,它是一个数据库所有用户共同使用的数据视图。
内部模式(存储模式):数据物理存储的方式和存储结构

模式/内模式的映像:实现概念模式到内模式之间的相互转换。
外模式/模式的映像:实现外模式到概念模式之间的相互转换

1.2、数据库设计过程

在这里插入图片描述

2、ER模型

在这里插入图片描述
集成的方法:
多个局部E-R图一次集成。
逐步集成,用累加的方式一次集成两个局部E一R。

集成产生的冲突及解决办法:
属性冲突:包括属性域冲突和属性取值冲突。
命名冲突:包括同名异义和异名同义。
结构冲突:包括同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E-R图中所包含的属性个数和属性排列次序不完全相同。

3、关系代数与元组演算

在这里插入图片描述

:将两个关系合并为一个,包含两个关系中所有的元组,重复的元组只保留一份。
在这里插入图片描述

:取两个关系中都出现过的元组,删除其他元组,得到一个新的关系
在这里插入图片描述

:取一个关系中出现过的元组,但在另一个关系中未出现过的元组,得到一个新的关系
在这里插入图片描述

笛卡尔积:将两个关系的每个元组进行组合,得到一个新的关系,新的关系的元组数为原来两个关系元组数之积
请添加图片描述

投影:操作可以将关系中的某些属性筛选出来,形成一个新的关系
在这里插入图片描述

选择:操作可以通过指定某些条件,从关系中选择符合条件的元组,形成一个新的关系
在这里插入图片描述

连接:操作是将两个关系合并成一个新的关系,需要指定连接条件。连接操作分为内连接、外连接等类型
在这里插入图片描述
自然连接是一种数据库连接(join)操作,它通过比较两个表之间的相同列,自动匹配这些列的值,然后返回符合条件的结果集。自然连接操作的结果是一个新的表,其中包含了两个表中相同列的匹配记录,且只保留一份,即两个表中相同列的重复值只会出现一次

4、规范化理论

4.1、函数依赖

设R(U)是属性U上的一个关系模式,X和Y是U的子集,r为R的任一关系,如果对于r中的任意两个元组u,v,只要有u[X]=v[X],就有u[Y]=v[Y],则称X函数决定Y,或称函数依赖于x,记为X→Y。

部分函数依赖:在一个关系模式中,如果一个非键属性(Non-Key Attribute)依赖于关系模式的一个候选键(Candidate Key)的一部分属性,而不是全部属性,那么就存在部分函数依赖。换句话说,一个属性对于关系模式的某个候选键是部分函数依赖,当且仅当该属性仅依赖于候选键的一部分属性,而不是整个候选键

举个例子,考虑一个关系模式包含属性(A,B,C)和候选键为(A,B)。如果属性 C 只依赖于属性 A,而不依赖于属性 B,则属性 C 对候选键(A,B)存在部分函数依赖
在这里插入图片描述
传递函数依赖:在一个关系模式中,如果一个非键属性依赖于关系模式的一个非键属性,而非键属性又依赖于关系模式的一个候选键,则存在传递函数依赖。换句话说,一个属性对于关系模式的某个候选键是传递函数依赖,当且仅当该属性依赖于一个非键属性,而非键属性又依赖于候选键

举个例子,考虑一个关系模式包含属性(A,B,C)和候选键为(A,B)。如果属性 C 依赖于属性 B,属性 B 依赖于属性 A,则属性 C 对候选键(A,B)存在传递函数依赖。
在这里插入图片描述

4.2、价值与用途

非规范化的关系模式,可能存在的问题包括:数据冗余、更新异常、插入异常、删除异常
在这里插入图片描述
数据冗余是指在多个表中重复存储相同的数据。虽然冗余数据可以提高数据检索和查询效率,但它也会占用更多的存储空间,并增加数据更新和维护的复杂度

更新异常是指在一个表中更新某些数据时,由于数据的冗余存储,可能会导致其他相关表中的数据不一致或出现错误

插入异常是指在向一个表中插入数据时,由于某些相关的数据还没有被插入,或者某些数据没有被正确地插入,导致插入操作无法完成或出现错误

删除异常是指在从一个表中删除某些数据时,由于数据的冗余存储,可能会导致其他相关表中的数据也被删除或者无法删除。这种情况下,可能会导致数据的丢失或数据不一致的问题。

4.3、键

在这里插入图片描述
超键:能唯一标识一条记录的一组属性集合,也就是能够确定关系中唯一记录的属性集合

例如,在一个学生信息表中,可能存在多个超键,例如学号、身份证号码、学生姓名与出生日期等。任意一个超键都可以用来唯一确定一条记录。

候选键:指在关系中能够唯一标识元组的属性集合,即该属性集合能够保证每个元组的唯一性,并且不存在该属性集合的任何子集能够保证每个元组的唯一性。

主键:是一列或一组列,用于唯一地标识表中的每一行。主键的值必须是唯一的,且不能为 NULL。

外键:是一种关系数据库中的约束(Constraint),用于确保在一个表中的数据引用另一个表中的数据时的一致性和完整性

求解候选键:

  1. 将关系模式的函数依赖关系用“有向图”的方式表示
  2. 找入度为0的属性,并以该属性集合为起点,尝试遍历有向图,若能正常遍历图中所有结点,则该属性集即为关系模式的候选键
  3. 若入度为0的属性集不能遍历图中所有结点,则需要尝试性的将一些中间结点(既有入度,也有出度的结点)并入入度为0的属性集中,直至该集合能遍历所有结点,集合为候选键

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

A B C D

在这里插入图片描述
在这里插入图片描述

4.4、范式

在这里插入图片描述
第一范式(1NF):在关系模式R中,当且仅当所有域只包含原子值,即每个分量都是不可再分的数据项,则称R是第一范式。

例:下表所示的关系R是否满足1NF,如果不满足,应如何调整?
在这里插入图片描述

第二范式(2NF):当且仅当R是1NF,且每一个非主属性完全依赖主键(不存在部分依赖)时,则称R是第二范式。

思考题:请思考该关系模式会存在哪些问题(从数据冗余、更新异常、插入异常、删除异常这几个方面来考虑),解决方案是什么?
在这里插入图片描述

第三范式(3NF):当且仅当R是1NF,且E中没有非主属性传递依赖于码时,则称R是第三范式。‘
思考题:请思考该关系模式会存在哪些问题(从数据冗余、更新异常、插入异常、删除异常这几个方面来考虑),解决方案是什么?
在这里插入图片描述

BC范式(BCNF):设R是一个关系模式,F是它的依赖集,R属于BCNF当且仅当其F中每个依赖的决定因素必定包含R的某个候选码。

例:关系模式STJ (S,T,J)中,S表示学生,T表示老师,J表示课程。每一老师只教一门课程。每门课程有若干老师,某一学生选定某门课,就对应一个固定老师。

在这里插入图片描述

在这里插入图片描述

4.5、模式分解

在这里插入图片描述
在这里插入图片描述

无损联接分解:指将一个关系模式分解成若干个关系模式后,通过自然联接和投影等运算仍能还原到原来的关系模式

在这里插入图片描述
将一个具有函数依赖:学号→姓名,课程号→课程名,(学号,课程号)→分数的关系模式:成绩(学号,姓名,课程号,课程名,分数),分解为:成绩(学号,课程号,分数);学生(学号,姓名);课程(课程号,课程名)。
在这里插入图片描述
根据学号→姓名,对上表进行处理,将b12改成符号a2;然后考虑裸程号→课程名,将b14改为a4,得下表:

在这里插入图片描述
从上图中可以看出,第1行已全部为a,因此本次R分解是无损联接分解。

5、并发控制

在这里插入图片描述
原子性(Atomicity) 是指事务是一个不可分割的操作单位,要么全部执行成功,要么全部失败回滚。

一致性(Consistency)是指事务执行前后,数据库从一个一致性状态变为另一个一致性状态,保证数据的完整性和一致性。

隔离性(Isolation) 是指多个事务并发执行时,每个事务都应该感觉不到其他事务的存在,即每个事务执行时的中间状态对其他事务是隔离的,防止出现数据冲突和丢失等问题。

持久性(Durability) 是指事务一旦提交,对数据库中的数据所做的更改就应该永久保存下来,即使发生系统故障也不应该丢失。

在这里插入图片描述

一级封锁协议。事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。可防止丢失修改
二级封锁协议。一级封锁协议加上事务T在读取数据R之前先对其加S锁,读完后即可释放S锁。可防止丢失修改,还可防止读“脏”数据
三级封锁协议。一级封锁协议加上事务T在读取数据R之前先对其加S锁,直到事务结束才释放。可防止丢失修改、防止读“脏”数据与防止数据重复读两段锁协议。可串行化的。可能发生死锁
两段锁协议。可串行化的。可能发生死锁

6、数据库完整性约束

实体完整性约束是用于确保一个关系表中的每一行都有一个唯一的标识符,这个标识符通常是该表的主键
参照完整性约束是用于确保一个关系表中的外键只能引用另一个表中已经存在的主键
用户自定义完整性约束是指一些特定的约束,例如检查一个字符串是否符合一定的格式,或者检查一个数值是否在某个范围内等等

触发器是一种数据库对象,它会在数据库管理系统中某些指定的事件发生时自动执行一些动作,通常用于实现数据完整性、数据一致性、数据安全等功能

数据库安全

在这里插入图片描述

7、数据备份

冷备份也称为静态备份,是将数据库正常关闭,在停止状态下,将数据库的文件全部备份(复制)下来。
热备份也称为动态备份,是利用备份软件,在数据库正常运行的状态下,将数据库中的数据文件备份出来。
在这里插入图片描述
完全备份:备份所有数据
差量备份:仅备份上一次完全备份之后变化的数据
增量备份:备份上一次备份之后变化的数据

(1)静态海量转储:在系统中无运行事务时进行,每次转储全部数据库。(2)静态增量转储:在系统中无运行事务时进行,每次只转储上一次转储后更新过的数据。
(3)动态海量转储:转储期间允许对数据库进行存取或修改,每次转储全部数据库。
(4)动态增量转储:转储期间允许对数据库进行存取或修改,每次只转储上一次转储后更新过的数据。

日志文件:事务日志是针对数据库改变所做的记录,它可以记录针对数据库的任何操作,并将记录结果保存在独立的文件中

8、数控故障与恢复

在这里插入图片描述

9、数据仓库与数据挖掘

  1. 面向主题
  2. 集成的
  3. 相对稳定的(非易失的)
  4. 反映历史变化(随着时间变化)

在这里插入图片描述
决策树
神经网络
遗传算法
关联规则挖掘算法

关联分析:挖掘出隐藏在数据间的相互关系。
序列模式分析:侧重点是分析数据间的前后关系(因果关系)。
分类分析:为每一个记录赋予一个标记再按标记分类。
聚类分析:分类分析法的逆过程。

10、反规范化

由于规范化会使表不断的拆分,从而导致数据表过多。这样虽然减少了数据冗余,提高了增、删、改的速度,但会增加查询的工作量。系统需要进行多次连接,才能进行查询操作,使得系统效率大大下降

技术手段
增加派生性冗余列
增加冗余列
重新组表
分割表

11、大数据

在这里插入图片描述

比较难度传统数据大数据
数据量GB或TB级PB级或以上
数据分析需求现有数据的分析与检测深度分析(关联分析、回归分析)
硬件平台高端服务器集群平台

大数据处理系统应该具有的重要特征

  1. 高度可扩展性
  2. 高性能
  3. 高度容错
  4. 支持异构环境
  5. 较短的分析延迟
  6. 易用且开放的接口
  7. 较低成本向下兼容性

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

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

相关文章

网络安全合规-数据安全风险评估

一、法律依据: 依据《数据安全法》第三十条的规定,重要数据的处理者应当按照规定对其数据处理活动定期开展风险评估,并向有关主管部门报送风险评估报告。 依据《网络数据安全管理条例》(征求意见稿) 第三十二条规定&am…

实时通信的服务器推送机制 EventSource(SSE) 简介,附 go 实现示例

简介 不知道大家有没有见过 Content-Type:text/event-stream 的请求头,这是 HTML5 中的 EventSource 是一项强大的 API,通过服务器推送实现实时通信。 与 WebSocket 相比,EventSource 提供了一种简单而可靠的单向通信机制(服务器…

《Linux 内核设计与实现》03. 进程管理

文章目录 进程描述符及任务结构分配进程描述符进程描述符的存放进程状态设置当前进程状态进程上下文进程家族树 进程创建线程在 Linux 中的实现创建线程内核线程 进程终结删除进程描述符孤儿进程 进程描述符及任务结构 内核把进程存放在任务队列(task list&#xf…

MySQL高级--锁

一、锁 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题…

新手必看:腾讯云轻量服务器使用限制

腾讯云轻量应用服务器和云服务器CVM相比具有一些限制,比如轻量服务器不支持更换内网IP地址,轻量服务器只能套餐整体升级且不支持降配,轻量不支持用户自定义配置私有网络VPC,还有如实例配额、云硬盘配额、备案限制和内网连通性等限…

整理一下最近了解到的AIGC工具

AIGC工具的一点整理 前言AIGC类型图像生成类Stable diffusionMidjourneyDALLE 2三种工具比较DeepFloyd IF 文本生成语音生成So-vits-svc 4.0 结尾 前言 好久没有写csdn博客了,突然不知道写点什么,最近AIGC真的很火,有一种三天不看就跟不上发…

计算机系统-异常控制流

例行前言: 本篇不是学习课程时的笔记,是重看这本书时的简记。对于学习本课程的同学,未涉及的内容不代表考试不涉及。核心内容是信号部分。本章内容介绍了较多的信号处理函数,需要在实验中巩固本章所学内容及相关问题的处理(并发&…

五彩斑斓的黑:Fun with PyQt5+CMake+C++

Fun Pain Fun with PyQt5CMakeC 本文相关代码GitCode地址 这个项目与PyQt5只有半毛钱关系。事情是这样发生的。当时,我在一个新电脑上干活,装了miniconda,装了PyQt5,干着干着突然要整一个Qt5。我想也挺好,据说C 17里…

Node.js和在浏览器之中的不同

在Node.js中编写JavaScript应用程序与在浏览器中为Web编程有何不同 1、在浏览器中,大多数时候您所做的是与DOM或其他Web平台API(如Cookie)进行交互。当然,Node.js中并不存在这些。您没有浏览器提供的文档、窗口和所有其他对象。 …

让测试更轻松:学习Selenium进行Web应用程序自动化测试

B站首推!2023最详细自动化测试合集,小白皆可掌握,让测试变得简单、快捷、可靠https://www.bilibili.com/video/BV1ua4y1V7Db 目录 摘要: 什么是Selenium 安装Selenium 编写自动化测试脚本 第一步:导入Selenium库 …

前端006_头部快捷导航_标签导航栏

效果如下,红色方框里面有快捷导航 1、添加标签栏导航组件 拷贝vue-element-admin 的 @/layout/components/TagsView 目录及文件到 mengxuegu-blog-admin 对应目录下 [root@pgdb vue-element-admin]# cp -r src/layout/components/TagsView ../db-manager-system/src/layou…

UE蓝图基础学习笔记(未完待续2023/05/06)

文章目录 一、项目创建1)准备流程(选择模板、开发语言、平台、质量等)2)界面介绍 二、Actor三、操作关卡对象(旋转、移动、缩放和坐标轴)四、常用快捷键五、运行游戏六、蓝图介绍七、蓝图节点八、操作事件图…

Vben Admin 自学记录 —— Drawer组件的基本使用及练习(持续更新中...)

Drawer 抽屉组件 对 antv 的 drawer 组件进行封装,扩展拖拽,全屏,自适应高度等功能。 Drawer相关使用及概念 练习 —— 在之前table基础上,添加查看功能,点击查看按钮,弹出抽屉显示单条表格数据&#xf…

基于80C51单片机的电子钟设计与仿真

点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87761539?spm1001.2014.3001.5503 源码获取 主要内容: 电子钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比&#xf…

SpringBatch之实际操作

文章目录 1 SpringBatch操作1.1 SpringBatch介绍1.2 依赖配置相关1.2.1 pom.xml1.2.2 mysql 依赖库表1.2.3 启动配置1.2.4 数据库配置 1.3 示例Demo1.3.1 简单执行1.3.2 报错 1.4 流程控制1.4.1 多步骤任务1.4.2 Flow用法1.4.3 并发执行1.4.4 任务决策1.4.5 任务嵌套 1.5 数据操…

Illustrator如何使用图层与蒙版之实例演示?

文章目录 0.引言1.绘制可爱冰淇淋图标2.霓虹渐变立体文字海报3.炫彩花纹背景 0.引言 因科研等多场景需要进行绘图处理,笔者对Illustrator进行了学习,本文通过《Illustrator CC2018基础与实战》及其配套素材结合网上相关资料进行学习笔记总结,…

电影推荐算法2

模型创建 title _ count, title _ set, genres2int, features, targets _ values, ratings, users, movies, data, movies _ orig, users _ orig pickle.load (open (‘preprocess.p’, mode ‘rb’)) 加载数据后定义神经网络的模型结构: 1)定义参数…

u盘文件名乱码的恢复方法

文件名全部变乱码了怎么恢复?U盘数据恢复方法 电脑里的目录文件名乱码了,这是什么状况呢?好端端的电脑突然就成这个样子了,真是令人摸不着头脑,对于这样的状况,多半是文件类型引起的,那么接下来…

Python:Python进阶:Python整数与 Numpy的数据溢出

numpy数据溢出 1.python 3 的整数上限和 python 2 的整数上限1.1 python 2的整数范围1.2 python 3 的整数范围 2. numpy数值表示2.1 那么numpy支持的数据类型和 python有什么不同了2.2 如何解决整数溢出问题 总结 实验一:使用 numpy库来表示正数 import numpy as n…

redis(4)

1)使用StringTemplateRedis操作String类型 1)判断redis中是否拥有key所对应的值,如果有返回true,没有那么直接返回false redisTemplate.hasKey(key); 2)如果redis中有key那么直接取出key所对应的值 redisTemplate.opsForValue().get(key) 3)删除单个key值…