数据库相关知识总结

news2025/7/14 0:17:08

一、数据库三级模式

        三个抽象层次:

                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.coloradmin.cn/o/1576637.html

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

相关文章

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

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

【Java】maven是什么?

先看一下基本概念: ①Maven 翻译为"专家","内行"是跨平台的项目管理工具。 主要服务于基于Java平台的项目构建,依赖管理和项目信息管理。 ②项目构建 项目构建过程包括【清理项目】→【编译项目】→【测试项目】→【生成测试报…

3D目标检测跟踪 | 基于kitti+waymo数据集的自动驾驶场景的3D目标检测+跟踪渲染可视化

项目应用场景 面向自动驾驶场景的 3D 目标检测目标跟踪,基于kittiwaymo数据集的自动驾驶场景的3D目标检测跟踪渲染可视化查看。 项目效果 项目细节 > 具体参见项目 README.md (1) Kitti detection 数据集结构 # For Kitti Detection Dataset └── k…

解决前端性能瓶颈:高效处理大量数据渲染与复杂交互的策略与优化方法

✨✨祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天开心!✨✨ 🎈🎈作者主页: 喔的嘛呀🎈🎈 目录 引言 一、分页加载数据 二、虚拟滚动 三、懒加载 四、数据缓存 五、减少重绘和回流 …

如何在 Windows上安装 Python

系列文章目录 作者:i阿极 作者简介:数据分析领域优质创作者、多项比赛获奖者:博主个人首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒…

循环双链表算法库构建

学习贺老师数据结构数据结构之自建算法库——循环双链表_数据结构编写一个程序linklist.cpp-CSDN博客 模仿单链表逻辑,实现双链表, 大差不差 v1.0: 实现基本功能 V1.0 1.主要功能: //(1)头插法建立循环双链表 void Create_Double_CyclicList_Head(DoubleLinkList_Cyclic *&am…

第十四讲:C语言字符函数和字符串函数

目录 1. 字符分类函数 2、字符转换函数 3. strlen的使⽤和模拟实现 4. strcpy 的使⽤和模拟实现 5. strcat 的使⽤和模拟实现 6. strcmp 的使⽤和模拟实现 7. strncpy 函数的使⽤ 8. strncat 函数的使⽤ 9. strncmp函数的使⽤ 10. strstr 的使⽤和模拟实现 11. strt…

云原生之旅第一课(2站搜索K8s成神之路)

自己动手搭建Kubernetes集群,学习如何自定义CRD,以及使用Kubebuilder快速搭建Operator项目,云原生之旅第一课。从一开始准备录制课程,到如今已经有了500位忠实粉丝,我感到无比欣慰。这门课程完全开源,每一集…

C++【组合模式】

简单介绍 组合模式是一种结构型设计模式, 只有在可以将对象拆分为【树状结构】的情况下使用。并且像使用独立对象一样使用它们。 常用于表示与图形打交道的用户界面组件或代码的层次结构。 基础理解 Q:为什么要用组合模式 ? A:在…

JavaScript - 你知道数组去重都有哪些实现方案吗

难度级别:初级及以上 提问概率:70% 数组去重是一道非常经典而又高频的面试题,这里我们提出6种解决方案: 目录 1 第一种 2 第二种 3 第三种 4 第四种

Tokenize Anything via Prompting

SAM的延续,把SAM输出的token序列用来进行分类,分割和一个自然语言的decoder处理,但其实现在多模态的图像的tokenizer也几乎都是用VIT来实现的。一开始认为这篇文章可能是关于tokenize的,tokenize还是很重要的,后来看完…

MUX VLAN

目录 原理概述 实验目的 实验内容 实验拓扑 1.基本配置 2.使用Hybrid端口实现网络需求 3.使用Mux VLAN实现网络需求 原理概述 在实际的企业网络环境中,往往需要所有的终端用户都能够访问某些特定的服务器,而用户之间的访问控制规则则比较复杂。在…

Mysql启动报错:本地计算机上的mysql服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止

Mysql启动报错:本地计算机上的mysql服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止 文章目录 Mysql启动报错:本地计算机上的mysql服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止1. 备份mysql的data文件夹2. 重新构建 Wind…

helm与k8s

文章目录 一、helm二、K8S/K3S1.K8S基本组件1.1 资源对象1.2 核心组件1.3典型的创建 Pod 的流程1.4 Kubernetes 多组件之间的通信原理 2. YAML 文件2.1 Maps2.2 Lists2.3 使用 YAML 创建 Pod2.4 创建 Deployment 4.静态pod4.1 配置文件4.2 通过 HTTP 创建静态 Pods4.3 静态pods…

【Linux系列】如何确定当前运行的是 RHEL 9 还是 RHEL 8?

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

zheng项目:从零到一打造全方位J2EE企业级开发解决方案

zheng项目:从零到一打造全方位J2EE企业级开发解决方案 摘要: 在当今快速发展的企业级应用开发领域,一套高效、稳定且可扩展的解决方案对于企业的成功至关重要。zheng项目旨在提供一套全面的J2EE企业级开发解决方案,从前端模板到自…

学习人工智能:为何PyTorch深度学习框架不可或缺

在人工智能(AI)的浩瀚领域中,深度学习作为其核心分支,正以其强大的数据处理能力、模式识别能力和预测能力引领着科技的飞速发展。而在深度学习的众多工具与框架中,PyTorch无疑是一颗璀璨的明星。本文将从PyTorch的特点…

单片机为什么还在用C语言编程?

单片机产品的成本是非常敏感的。因此对于单片机开发来说,最重要的是在极其有限的ROM和RAM中实现最多产品的功能。或者反过来说,实现相同的产品功能,所需要的ROM和RAM越小越好,在开始前我有一些资料,是我根据网友给的问…

JMeter+Ant+Jenkins构建接口报告(无人驾驶版)

展示结果: uc浏览器打开测试报告,绿色显示脚本结果 搭建操作步骤如下 1.jemter写好脚本 2.下载并配置ant环境变量:加上activation.jar、commons-lang3-3.8.1.jar、mail.jar 这3个包 mail.jar需要引用到jmeter 3.下载安装Jenkins 并进行构建…

算法 - 符号表-上

🏠个人主页:尘觉主页 文章目录 算法 - 符号表前言初级实现1. 链表实现无序符号表2. 二分查找实现有序符号表 二叉查找树1. get()2. put()3. 分析4. floor()5. rank()6. min()7. deleteMin()8. delete()9. keys()10. 分析 算法 - 符号表 前言 符号表&am…