数据库知识汇总1

news2025/1/6 19:47:19

一. 数据库系统概述

信息需要媒体(文本、图像视频等)表现出来才能被人类所获取,媒体可以转换成比特或者符号,这些称为数据;
数据/信息的特点:爆炸式增长、无限复制、派生;

数据库是指长期长期存储在计算机内、有组织、可共享的大量数据的集合;(DB)
数据库管理系统:位于用户与操作系统之间的一层数据管理软件(DBMS);
数据库系统(20实际60年代末至今):数据库、数据库管理系统(及其开发工具)、应用程序、数据库管理员;

                                                
数据库系统的特点:

  1. 数据结构化
  2. 数据的共享性高,冗余度低且易扩充
  3. 数据独立性高
  4. 数据由数据库管理系统统一管理和控制

(前三者是相比文件系统(20世纪50年代末-20世纪60年代中)的优点)

区分

        (对某一类数据的结构和属性的说明,Type),(一个型的具体赋值, Value)
       模式(型的描述,不涉及具体值,schema),实例(模式的一个具体值,instance)

                       

一个数据库只有一个模式;
模式定义:数据的逻辑结构(数据项的名字、类型、取值范围等)、数据之间的联系、数据有关的安全性、完整性要求;

外模式(子模式/用户模式)
1.数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述
2.数据库用户的数据视图,是与某一应用有关的数据的逻辑表示
3.模式与外模式的关系:一对多
4.外模式与应用的关系:一对多
目的:
保证数据库安全性的一个有力措施
每个用户只能看见和访问所对应的外模式中的数据

内模式(存储模式):
1.是数据物理结构和存储方式的描述
2.是数据在数据库内部的表示方式(记录的存储方式、索引的组织方式、数据是否压缩存储、数据是否加密、数据存储记录结构的规定)
3.一个数据库只有一个内模式


二级映像:外模式/模式映像、模式/内模式映像 
作用:
保证数据的逻辑独立性
保证数据的物理独立性
保证了数据库外模式的稳定性

数据库管理员(DBA)具体职责: 
决定数据库中的信息内容和结构
决定数据库的存储结构和存取策略
定义数据的安全性要求和完整性约束条件
监控数据库的使用和运行
数据库的改进和重组

二. 关系数据库

数据模型:对现实世界数据特征的抽象,即对现实世界的模拟
超码:关系模式中的一组属性,可以唯一标识关系的元组,每个关系至少有一个 superkey,超码的任何超集都是超码
:唯一标识实体的属性集(不可再分的超码的最小集合)
候选码:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码
主码:若一个关系有多个候选码,则选定其中一个为主码(Primary key)(通常选择属性数最少的候选键为主码)
候选码中的属性称为主属性(Prime attribute)
不包含在任何侯选码中的属性称为非主属性(Non-Prime attribute)或非码属性(Non-key attribute) 

整体范围:超码>码/候选码>主码

关系模型:在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。
三类完整性约束

  1. 实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值
  2. 参照完整性:关系间的引用、外码、参照完整性规则
  3. 用户定义的完整性

设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是R的外码;
基本关系R称为参照关系,基本关系S称为被参照/目标关系
F可以取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值

三. 关系数据理论

要求:不会发生插入异常、删除异常和更新异常,数据冗余应尽可能少
数据依赖:是一个关系内属性与属性之间的一种约束关系
主要类型:

  1. 函数依赖(Functional Dependency,简记为FD)
  2. 多值依赖(Multi-Valued Dependency,简记为MVD)

函数依赖

设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r 中不可能存在两个元组在X上的属性值相等, 而在Y上的属性值不等, 则称“X函数确定Y ”或“Y函数依赖于X ”,记作X→Y
其中:         X→Y,X 是决定因素;
                   若X→Y,并且Y→X, 则记为X←→Y;
                   若Y不函数依赖于X, 则记为X→Y。

平凡函数依赖和非平凡函数依赖:

X→Y,但Y⊈X则称X→Y是非平凡的函数依赖( NON-Trivial  FD)
X→Y,但Y⊆X 则称X→Y是平凡的函数依赖( Trivial FD) 

完全函数依赖和部分函数依赖:

在R(U)中,如果X→Y,并且对于X的任何一个真子集X’, 都有 X’ 推不出Y, 则称Y对X完全函数依赖,记作X → Y;
若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作X → Y;

传递函数依赖

在R(U)中,如果X→Y(Y⊈X),Y推不出X,Y→Z,Z⊈Y, 则称Z对X传递函数依赖(transitive functional dependency),记为:X → Z。

闭包:

在关系模式R<U,F>中为F所逻辑蕴涵的函数依赖的全体叫作F的闭包(closure),记为F +;

Armstrong公理系统(1974):

简单讲,可以推出更小的,同乘一个子集,传递)

  1. A1 自反律(reflexivity rule):若Y ⊆  X ⊆ U,则X →Y 为F所蕴涵。
  2. A2 增广律(augmentation rule):若X→Y为F所蕴涵,且Z ⊆  U,则XZ→YZ 为F所蕴涵。
  3. A3 传递律(transitivity rule):若X→Y及Y→Z为F所蕴涵,则X→Z 为F所蕴涵。

根据Armstrong公理系统三条推理规则可以得到下面三条推理规则

  1.  合并规则(union rule):由X→Y,X→Z,有X→YZ。
  2.  伪传递规则(pseudo transitivity rule):由X→Y,WY→Z,有XW→Z。
  3.  分解规则(decomposition rule):由X→Y及Z⊆Y,有X→Z。

注意:一般不计算F+,计算代价比较昂贵,一般计算X+(当前函数依赖左边的闭包)
如果计算出的X+包括所有的R集合,证明它是超码,如果不可继续分,则他是候选码。

如何找候选码:

方法一:先找单属性的候选码,再找剩余属性的组合

方法二:画图法,流程如下:
1. 根据函数依赖画图
2. 确定没有传入边的顶点 Vni 集;(入度为0)
声明 1:任何候选码都必须具有 Vni中的所有属性。
声明 2:如果 Vni 形成候选码,则 Vni 是唯一的候选键。
3.  标识仅具有传入边的顶点 Voi 集;(出度为0
声明 3:候选码不包含Voi中的任何属性。
4.   使用观察查找其他候选码(如果有)

画图法详细示例:

关系分解:无损连接分解、依赖保留分解

无损连接判断:

1. 针对分解成两个表,满足下式则是无损链接

                        

2. 针对分解成多个表,使用如下算法:

1)构造一个kn列的表,第i行对应于关系模式Ri,第j列对应于属性Aj。如果Aj∈Ri则在第i行第j列上放符号aj,否则放符号bij;

2逐一检查F中的每一个函数依赖,并修改表中的元素。方法:取F中一个函数依赖XY,在X的列中寻找相同的行,然后将这些行中Y的分量改为相同的符号,如果其中有aj,则将bij改为aj;若其中无aj,则改为某一个bij;

3反复检查第(2)步直至无改变,若存在某一行为a1,a2,…,ak,则分解  具有无损连接性;如果F中所有函数依赖都不能再修改表中的内容,且没有发现这样的行,则分解不具有无损连接性。

简单而言,首先建表,有属性为aj,无为bij;接着遍历函数依赖FDs,对于函数依赖X->Y,在X中寻找相同的行,对应到Y中,如果Y中有aj,则全部改为aj,否则统一改为序号最小的bij。

详细例子如下:

已知R<U,F>U={A,B,C,D,E}F={A→C,B→C,C→D,DE→C,CE→A}R的一个分解为R1(AD)R2(AB)R3(BE)R4(CDE)R5(AE),判断这个分解是否具有无损连接性。

step1:初始化二维表

                

step2:使用A->C进行更新(处理1、2、5行)

                ​​​​​​​

step3:使用B->C进行更新(处理2、3行)

        ​​​​​​​   ​​​​​​​     

step4:使用C->D进行更新(处理1、2、3、5行)

        ​​​​​​​        

step5:使用DE->C进行更新(处理3、4、5行)

        ​​​​​​​        

step6:使用CE->A进行更新(处理3、4、5行)

        ​​​​​​​        

此时发现有一行为a1到a5,说明是无损的函数分解。

依赖保留分解:

定义:对关系 R 和函数依赖F, 分解 {R1, R2, ..., Rn} 保持函数依赖,如果满足
           F+ = (F1 U F2 U . . . U Fn)+ 
   where Fi = ΠRi(F),    i = 1, ..., n.

 使用DP算法进行检验:

  1. 对于每个函数依赖 在同一张表中 此时函数依赖保留
  2. 否则使用XYGP算法找W,如果Y在W中,则保留

XYGP算法:在每个分解后的关系Ri中寻找X可以确定的属性集
对于依赖关系:X→Y
初始化W为X
                W := W U ((W ∩ Ri)+ ∩ Ri);   
一直迭代直到W不变

注意实际上我们可以发现只有与W有交集的R需要进行上述操作,因为其他的是空集。

详细示例:

        

        

          

需要一直进行,更新所有R之后发现Y确实不在W中,则其不保持函数依赖;如迭代发现Y在W中即可停止,函数依赖保持。

----- 以上为本人学习数据库这门课总结出的一些知识点,有错误或者疑问可以评论区交流,欢迎指正!!!

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

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

相关文章

Win32汇编学习笔记03.RadAsm和补丁

Win32汇编学习笔记03.RadAsm和补丁-C/C基础-断点社区-专业的老牌游戏安全技术交流社区 - BpSend.net 扫雷游戏啊下补丁 在扫雷游戏中,点关闭弹出一个确认框,确认之后再关闭,取消就不关闭 首先第一步就是确认关闭按钮响应的位置,一般都是 WM_CLOSE 的消息 ,消息响应一般都在过…

OSPF特殊区域(open shortest path first LSA Type7)

一、区域介绍 1、Stub区域 Stub区域是一种可选的配置属性。通常来说&#xff0c;Stub区域位于自治系统的边界&#xff0c;例如&#xff0c;只有一 个ABR的非骨干区域。在这些区域中&#xff0c;设备的路由表规模以及路由信息传递的数量都会大量减少。 kill 4 5类type 传递1 …

论文解读之Generative Dense Retrieval: Memory Can Be a Burden

本次论文解读&#xff0c;博主带来生成式稠密检索&#xff1a;记忆可能成为一种负担的论文分享 一、简介 生成式检索根据给定的查询&#xff0c;自回归地检索相关的文档标识符&#xff0c;在小规模的文档库中表现不错&#xff0c;通过使用模型参数记忆文档库&#xff0c;生成…

vue,使用unplugin-auto-import避免反复import,按需自动引入

项目库&#xff1a;https://github.com/unplugin/unplugin-auto-import 参考&#xff1a; https://juejin.cn/post/7012446423367024676 https://cloud.tencent.com/developer/article/2236166 背景&#xff1a; vue3项目中&#xff0c;基本所有页面都会引入vue3框架的api&…

[深度学习] 大模型学习1-大语言模型基础知识

大语言模型&#xff08;Large Language Model&#xff0c;LLM&#xff09;是一类基于Transformer架构的深度学习模型&#xff0c;主要用于处理与自然语言相关的各种任务。简单来说&#xff0c;当用户输入文本时&#xff0c;模型会生成相应的回复或结果。它能够完成许多任务&…

OCR图片中文字识别(Tess4j)

文章目录 Tess4J下载 tessdataJava 使用Tess4j 的 demo Tess4J Tess4J 是 Tesseract OCR 引擎的 Java 封装库&#xff0c;它让 Java 项目更轻松地实现 OCR&#xff08;光学字符识别&#xff09;功能。 下载 tessdata 下载地址&#xff1a;https://github.com/tesseract-ocr/…

Vue2/Vue3使用DataV

Vue2 注意vue2与3安装DataV命令命令是不同的Vue3 DataV - Vue3 官网地址 注意vue2与3安装DataV命令命令是不同的 vue3vite 与 Vue3webpack 对应安装也不同vue3vite npm install kjgl77/datav-vue3全局引入 // main.ts中全局引入 import { createApp } from vue import Da…

【JVM】总结篇-字节码篇

字节码篇 Java虚拟机的生命周期 JVM的组成 Java虚拟机的体系结构 什么是Java虚拟机 虚拟机&#xff1a;指以软件的方式模拟具有完整硬件系统功能、运行在一个完全隔离环境中的完整计算机系统 &#xff0c;是物理机的软件实现。常用的虚拟机有VMWare&#xff0c;Visual Box&…

国内Ubuntu环境Docker部署Stable Diffusion入坑记录

国内Ubuntu环境Docker部署Stable Diffusion入坑记录 本文旨在记录使用dockerpython进行部署 stable-diffusion-webui 项目时遇到的一些问题&#xff0c;以及解决方案&#xff0c;原项目地址: https://github.com/AUTOMATIC1111/stable-diffusion-webui 问题一览&#xff1a; …

音频进阶学习九——离散时间傅里叶变换DTFT

文章目录 前言一、DTFT的解释1.DTFT公式2.DTFT右边释义1&#xff09; 复指数 e − j ω n e^{-j\omega n} e−jωn2&#xff09;序列与复指数相乘 x [ n ] ∗ e − j ω n x[n]*e^{-j\omega n} x[n]∗e−jωn复指数序列复数的共轭正交正交集 3&#xff09;复指数序列求和 3.DTF…

【Leecode】Leecode刷题之路第99天之恢复二叉搜索树

题目出处 99-恢复二叉搜索树-题目出处 题目描述 个人解法 思路&#xff1a; todo代码示例&#xff1a;&#xff08;Java&#xff09; todo复杂度分析 todo官方解法 99-恢复二叉搜索树-官方解法 方法1&#xff1a;显式中序遍历 思路&#xff1a; 代码示例&#xff1a;&…

利用AI优化SEO提升关键词排名的有效策略

内容概要 随着数字化时代的到来&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;在各类企业的在线营销战略中占据了越来越重要的位置。而人工智能&#xff08;AI&#xff09;技术的迅速发展为SEO带来了新的机遇和挑战。通过智能化的数据分析和智能内容生成&#xff0c;企…

YOLO分割数据集转化(json转TXT)

一、数据集转化 import json import os from tqdm import tqdm import glob import os.path as ospdef json_to_txt(jsonfilePath, resultDirPath):"""jsonfilePath: labelme标注好的*.json文件所在文件夹resultDirPath: 转换好后的*.txt保存文件夹""…

中建海龙:科技助力福城南产业片区绿色建筑发展

在快速发展的城市化进程中&#xff0c;绿色建筑以其环保、节能、可持续的特点日益受到重视。作为建筑工业化领域的领军企业&#xff0c;中建海龙科技有限公司&#xff08;简称“中建海龙”&#xff09;凭借其卓越的科技实力和创新举措&#xff0c;在推动绿色建筑发展方面做出了…

基于深度学习算法的AI图像视觉检测

基于人工智能和深度学习方法的现代计算机视觉技术在过去10年里取得了显著进展。如今&#xff0c;它被广泛用于图像分类、人脸识别、图像中物体的识别等。那么什么是深度学习&#xff1f;深度学习是如何应用在视觉检测上的呢&#xff1f; 什么是深度学习&#xff1f; 深度学习是…

大数据技术-Hadoop(四)Yarn的介绍与使用

目录 一、Yarn 基本结构 1、Yarn基本结构 2、Yarn的工作机制 二、Yarn常用的命令 三、调度器 1、Capacity Scheduler&#xff08;容量调度器&#xff09; 1.1、特点 1.2、配置 1.2.1、yarn-site.xml 1.2.2、capacity-scheduler.xml 1.3、重启yarn、刷新队列 测试 向hi…

python修改ppt中的文字部分及插入图片

批量修改ppt中的某个模块&#xff0c;或者批量制作奖状等场景会用到&#xff1b; import os import pandas as pd from pptx import Presentation from pptx.util import Inchesfilepath/Users/kangyongqing/Documents/kangyq/202303/分析模版/批量制作/file1时段预警_副本.pp…

数据库新建用户后(Host:%),报错:localhost无法连接

存在问题 在给数据库&#xff08;MySQL、MariaDB等&#xff09;创建了新的用户名&#xff08;eg&#xff1a;maxscale&#xff09;后&#xff0c;无法使用新用户名登录&#xff0c;并报如下错误&#xff1a;ERROR 1045 (28000): Access denied for user maxscalelocalhost (us…

《机器学习》——逻辑回归(下采样)

文章目录 什么是下采样&#xff1f;为什么在逻辑回归中要使用下采样&#xff1f;使用下采样和不使用下采样的区别实例1、实例内容2、实例步骤 什么是下采样&#xff1f; 下采样&#xff08;Down - Sampling&#xff09;是一种数据处理技术&#xff0c;主要用于处理数据集中不同…

ACM算法模板

ACM算法模板 起手式基础算法前缀和与差分二分查找三分查找求极值分治法&#xff1a;归并排序 动态规划基本线性 d p dp dp最长上升子序列I O ( n 2 ) O(n ^ 2) O(n2)最长上升子序列II O ( n l o g n ) O(nlogn) O(nlogn) 贪心二分最长公共子序列 背包背包求组合种类背包求排列…