数据库相关知识总结

一、数据库三级模式

        三个抽象层次:

                1. 视图层:最高层次的抽象,描述整个数据库的某个部分的数据

                2. 逻辑层:描述数据库中存储的数据以及这些数据存在的关联

                3. 物理层:最低层次的抽象,描述数据在存储器中时如何存储的

        数据库的三级模式:

                1. 外模式(用户模式、子模式):用户与数据库系统的接口,是用户需要使用的部分数

        据的描述

                2. 概念模式(模式):数据库中全部数据的逻辑结构和特征的描述,反应数据库的结构

        及其联系,是相对稳定

                3. 内模式(存储模式):是数据物理结构和存储方式的描述,是数据在数据库内部的表

        示方式。定义所有的内部记录类型、索引和文件的组织方式以及数据控制方面的细节

二、关系型数据库 

        关系模型是关系型数据的基础

        关系模型组层:关系数据结构、关系操作集合、关系完整性规则

        关系的完整性约束:

                完整性规则保证当授权用户对数据做修改时不会破坏数据的一致性,防止数据的意外破

        坏。分为:

                实体完整性:要求每个表必须有主键,且组建必须唯一且非空

                参照完整性:实体之间的连续描述

                用户定义完整性:由应用环境决定的因素(如年纪必须大于0)

        关系运算:

                并(Union),差(difference),交(Intersection)与数学中的概念类似

                笛卡尔积:R为n目的元数,S的m目的元数,R×S为(n+m)目的元组集合

                投影(Projection):垂直方向上(列)的运算

                选择(Selection):水平方向上(行)的运算

                连接(Join):

                        θ连接:笛卡尔积中选取属性满足一定条件的元组

                        等值链接:θ为“=”时

                        自然连接:两个关系中进行比较的分量必须是相同的属性组,别再结果中去掉重复

                                            的

                除:同时进行水平和垂直方向上的运算。给丁关系R(X,Y)和S(Y,Z)。则R➗S应当

                        满足元组在X的分量值x包含在S在属性组Y上投影的集合。

                外连接:

                        左外连接:用左侧原则去匹配右侧原则,空值用null填充

                        右外连接:用右侧原则去匹配左侧原则,空值用null填充

                        全外连接:先进行左外连接,再进行右外连接

        规范化(数据库范式)

                第一范式(1NF)

                        若关系模式R的每个分量都是不可再分的数据项,则R属于第一范式

                        1NF存在的问题:1. 数据冗余度大;2. 插入一场;3.修改一场;4. 删除异常

                第二范式(2NF)

                        若关系模式R属于1NF,且每个非主属性完全依赖于码,则关系模式属于第二范

                式,即1NF消除了非主属性对码的部分函数依赖。(每个非主属性必须用所有的码才能

                推导出,而不是部分码就可以推导出)

                第三范式(3NF)

                        当2NF的前提下,消除了非主属性对码的传递函数依赖(非主属性不能通过其他非

                主属性推导得出)

                BCNF(巴克斯范式)

                        当3NF消除了主属性对码的部分函数依赖和传递函数依赖,(第三范式下,消除主

                键之间的依赖关系)特性如下:

                ​​​​​​​        1. 所有非主属性对每一个码都是完全函数依赖;

                        2. 所有非主属性对每一个不包含它的码,也是完全函数依赖

                        3. 没有任务属性完全函数依赖于非码的任何一组属性

                第四范式(4NF)

                        限制关系模式的属性间不允许有非平凡且非函数依赖的多值依赖

                                      

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

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

相关文章

JavaScript之作用域链详解

在JavaScript中,作用域链是一个重要的概念,它决定了变量和函数的可访问性。作用域链是由变量对象的列表组成,这些变量对象按照它们被创建的顺序排列。本文将详细介绍JavaScript作用域链,包括什么是作用域链、作用域链的创建过程、…

运行pytorch作业出现错误 RuntimeError: unable to write to file

运行pytorch作业出现错误 RuntimeError: unable to write to file Issue #26 huaweicloud/dls-example GitHub pytorch将共享内存的临时文件保存在了/torch_xxx文件中,即容器中的根目录下。容器磁盘空间不足导致该问题的发生。目前可以通过以下代码暂时关闭pyto…

五一假期来临,各地景区云旅游、慢直播方案设计与平台搭建

一、行业背景 经文化和旅游部数据中心测算,今年清明节假期3天全国国内旅游出游1.19亿人次,按可比口径较2019年同期增长11.5%;国内游客出游花费539.5亿元,较2019年同期增长12.7%。踏青赏花和户外徒步成为假期的热门出游主题。随着…

关于c++的命名空间

目录 1.命名空间 &#xff08;1&#xff09;hello world (2)细讲hello world代码 &#xff08;3&#xff09;引用命名空间 &#xff08;4&#xff09;总结代码 2.自定义一个命名空间 1.命名空间 &#xff08;1&#xff09;hello world #include<iostream> using n…

ubuntu安装与卸载Nvidia驱动,anaconda,vscode,remote远程配置

开始装nvidia 驱动之前先配置nouveau 文件 参考 https://blog.csdn.net/qq_40907977/article/details/115305634 1. 删除原有驱动 sudo apt-get purge nvidia* sudo apt-get autoremove 2.安装依赖 sudo apt-get install build-essential gcc-multilib dkms 3.禁用nouvea…

Linux命令-dpkg-preconfigure命令(Debian Linux中软件包安装之前询问问题)

说明 dpkg-preconfigure命令 用于在Debian Linux中软件包安装之前询问问题。 语法 dpkg-preconfigure(选项)(参数)选项 -f&#xff1a;选择使用的前端&#xff1b; -p&#xff1a;感兴趣的最低的优先级问题&#xff1b; --apt&#xff1a;在apt模式下运行。参数 软件包&am…

AI技术创业机会之教育科技

教育科技领域正因人工智能(AI)技术的创新与发展而焕发全新活力,为创业者开辟了众多革新教育模式、提升教学效果的创业机会。以下详述了教育科技中AI技术的具体创业机会及其细节与内容,以助力有志于投身此领域的创业者全面了解市场前景与潜在机遇。 一、个性化学习平台 1.…

Taro打包生成不同目录

使用taro init创建taro项目时&#xff0c;taro默认打包目录是&#xff1a; /config/index.js outputRoot:dist默认的目录&#xff0c;编译不同平台代码时就会覆盖掉&#xff0c;为了达到多端同步调试的目的&#xff0c;这时需要修改默认生成目录了&#xff0c;通过查看官方文…

蓝桥杯练习题 —— 阶乘计算(python)

python优势 # encoding utf-8 # 开发者&#xff1a;xxx # 开发时间&#xff1a; 21:57 # "Stay hungry&#xff0c;stay foolish."n int(input()) res 1 for i in range(n):res res * (i1)print(res) 正常算法 # encoding utf-8 # 开发者&#xff1a;xxx # 开…

【LeetCode】排序数组——不一样的方式实现快排

目录 题目链接 颜色分类 算法原理 代码实现 排序数组 算法原理 代码实现 最小的k个数 算法原理 代码实现 题目链接 LeetCode链接&#xff1a;75. 颜色分类 - 力扣&#xff08;LeetCode&#xff09; LeetCode链接&#xff1a;912. 排序数组 - 力扣&#xff08;L…

docker 部署 Epusdt - 独角数卡 dujiaoka 的 usdt 支付插件

部署 部署说明 部署之前必须注意的几点事项,该教程不一定适合所有用户: 本教程主要是使用 docker 部署,宝塔用户或宿主机直接安装的用户请直接参考官网教程.本教程是独立部署 epusdt,使用独立的mysql和redis,与dujiaoka项目分开. 在研究的过程中发现 epusdt 也需要用到 mys…

CADP加密系统的可扩展性和可定制性

CADP加密系统是一种专门用于保护CAD(计算机辅助设计)文件安全的加密解决方案。随着CAD技术在各个领域的广泛应用&#xff0c;CAD文件的安全性和保密性日益受到重视。CADP加密系统通过一系列先进的加密技术和安全措施&#xff0c;为CAD文件提供全面的保护&#xff0c;防止未经授…

微信小程序脚本的执行顺序

在小程序中的脚本执行顺序和浏览器中有所不同。 小程序的执行的入口文件是 app.js 。 并且会根据其中 require 的模块顺序决定文件的运行顺序&#xff0c;代码是一个 app.js 示例。 app.js /* a.js console.log(a.js) */ var a require(./a.js) console.log(app.js)/* b.js co…

ES入门十五:分页的三驾马车【from+size、search after、scroll api】

从数据集中获取数据时分页是绕不开的操作&#xff0c;一下子从数据集中获取过多的数据可能会造成系统抖动、占用带宽等问题。特别是进行全文搜索时&#xff0c;用户只关心相关性最高的那个几个结果&#xff0c;从系统中拉取过多的数据等于浪费资源。 ES提供了3种分页方式&…

Java | Leetcode Java题解之第15题三数之和

题目&#xff1a; 题解&#xff1a; class Solution {public List<List<Integer>> threeSum(int[] nums) {int n nums.length;Arrays.sort(nums);List<List<Integer>> ans new ArrayList<List<Integer>>();// 枚举 afor (int first 0;…

springboot整合ShardingSphere分库分表并插入1kw条记录

目录 一&#xff0c;数据分片 二&#xff0c;水平分片 三&#xff0c;创建数据库表 四&#xff0c;springboot项目导入依赖 五&#xff0c;创建类 六&#xff0c;bug bug放到最后了。 一&#xff0c;数据分片 数据分片指按照某个维度将存放在单一数据库中的数据分散地存…

数据结构 实验报告11

一、实验目的和要求 目的&#xff1a;熟悉后序线索二叉树并实现后序遍历 要求&#xff1a; &#xff08;1&#xff09;创建二叉树。 &#xff08;2&#xff09;转换为后序线索二叉树。 &#xff08;3&#xff09;实现后序遍历的非递归算法。 二、实验环境 编译器&#xf…

每天学习一个Linux命令之curl

每天学习一个Linux命令之curl 在Linux系统中&#xff0c;有很多有用的命令可以帮助我们与网络进行交互。一个非常常用的命令是curl&#xff0c;它是一个功能强大的工具&#xff0c;可用于发送、接收和处理各种网络请求。本文将详细介绍在Linux下使用curl命令的各种选项及其用法…

如何理解图像处理领域的病态问题(ill-posed problem)

ill-posed problem&#xff0c;我们可以理解为病态问题或者不适定问题。在本文中&#xff0c;统一成为不适定问题。 在讨论不适定问题&#xff08;ill-posed problem&#xff09;之前&#xff0c;我们先来看一下什么叫适定性问题&#xff08;well-posed problem&#xff09;。…

如何明确的选择IT方向?

一、明确目标 作为初学者&#xff0c;先树立自己目标&#xff0c;找到自己感兴趣的IT行业&#xff0c;IT行业分很多种&#xff0c;听的最多次的无非不就是web前端工、程序员、后端、大数据、网络运维等。学习知识也是为了找到更好的工作&#xff0c;所以我建议先去boss直聘、五…