【数据库基础】数据库介绍和三大范式

news2024/11/25 7:41:14

数据库简介

  • 🌾第一章 数据库简介
    • 🕊️1.1 简介
    • 🕊️1.2 常见数据库管理系统
    • 🕊️1.3 三大范式(规范)
      • 🍵第一范式:
      • 🍵第二范式:
      • 🍵第三范式

🌾第一章 数据库简介

🕊️1.1 简介

       数据库(DataBase,DB):指长期保存在计算机的存储设备上,按照一定规则组织起来,可以被各种用户或应用共享的数据集合。

      数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中的数据。

      数据库软件应该为数据库管理系统,数据库是通过数据库管理系统创建和操作的。
      数据库:存储、维护和管理数据的集合。

🕊️1.2 常见数据库管理系统

  1. Oracle

      Oracle数据库被认为是业界目前比较成功的关系型数据库管理系统。Oracle数据库可以运行

在UNIX、Windows等主流操作系统平台,完全支持所有的工业标准,并获得最高级别的ISO标准安全性

认证。

在这里插入图片描述

  1. MySQL

      MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle旗下

产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS

(Relational Database Management System,关系数据库管理系统) 应用软件。

在这里插入图片描述

  1. DB2

      DB2是IBM公司的产品,DB2数据库系统采用多进程多线索体系结构,其功能足以满足大中公司

的需要,并可灵活地服务于中小型电子商务解决方案。

  1. Microsoft SQL Server

      SQL Server 是Microsoft 公司推出的关系型数据库管理系统。具有使用方便

可伸缩性好与相关软件集成程度高等优点。

在这里插入图片描述

🕊️1.3 三大范式(规范)

范式

      Normal Form范式是“符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度”。简单来说可以把它粗略地理解为一张数据表的表结构所符合的某种设计标准的级别。就像英语的四级和六级,相对代表了英语的水平的高低。
满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入( insert )、删除( delete )和更新( update)操作
异常。

🍵第一范式:

在这里插入图片描述

第一范式的定义为:

  • 符合1NF的关系中的每个属性都不可再分无重复的列

  • 在使用数据库管理系统的时候比如mysql , sqlserver等创建的数据表都满足1NF,如果不满足这个范式,是不能创建成功数据表的。属性不可再分的意思是每一个字段都是最小的,不包含其他字段。不重复,原子性

第一范式存在的问题:数据冗余,插入异常,删除异常,修改异常的问题。

  • 插入异常:如果需要新建一个系,并且有系主任。但是因为还没有学生开始学习,所以主键是空的,肯定是不能插入的。
  • 删除异常:如果需要把某个系下面学生信息都清空,那么这个系也就不存在了。
  • 修改异常∶如果需要把学生的系进行更换,就需要把三条数据里面的系名和系主任都修改才可以。

🍵第二范式:

在这里插入图片描述

  1. 第二范式定义:

      在1NF的基础上,消除了非主属性对于码的部分函数依赖,属性完全依赖于主键 [ 消除部分子函数依赖 ]

  1. 码:

      一个表中,可以唯一决定一个元组的属性“集合”。假设K为表中的某个属性,如果在K确定了的情况下,这个表里面其他的属性都可以确定,那么K就叫做候选码,也叫码。

      比如通过id可以获取到姓名,系名,系主任名,但是不能确定课名和分数。课名可以获取分数。i学号d -------姓名,系名,系主任课名-----分数

( 学号id,课名)这个属性组就叫做码。

  1. 非主属性:

      上面说到的码里面的属性就是主属性,包括id,课名。不是主属性的就是非主属性,包括姓名,系名,系主
任,分数。

  1. 函数依赖:

      函数y=f(x)代表了给定一个x的值,y的值也是确定的。在数据表中,在属性X确定的情况下,必定能确定Y的值,那就说Y函数依赖与X写作X—Y。

      比如:在表中,给定一个学号,必定能得到唯一的一个姓名。那就说姓名函数依
赖于学号。写作:学号—姓名
在表中的函数依赖还有

  • 学号-----系名
  • 学号-----系主任
  • (学号,课名)-----成绩
  1. 完全函数依赖:

      在一张表中,若×→Y,且对于X的任何一个真子集(假如属性组×包含超过一个属性的话),x’→Y不成立,那么我们称Y对于X完全函数依赖,记作XF→Y。比如(学号,课名)-----成绩
      学号和课名都是X的真子集,但是如果只有学号,或者只有课名,是不能得到一个唯一的成绩。满足完全函数依赖的要求,所以Y完全函数依赖于X

  1. 部分函数依赖:

      如果Y函数依赖于X,但是Y不完全函数依赖于X,那就叫做部分函数依赖。比如(学号,课名)------姓名。
由学号可以得到唯一的姓名,但是由课名不能得到唯一的姓名。所以称为Y部分函数依赖X。

  1. 判断是否符合2NF

      就是看数据表中是否存在非主属性对于码的部分函数依赖。若存在,则数据表最高只符合1NF的要求,若不存在,则符合2NF的要求。
步骤:

  • 第一步:找出数据表中所有的码。( id,课名)

  • 第二步:根据第一步所得到的码,找出所有的主属性。id和课名

  • 第三步∶数据表中,除去所有的主属性,剩下的就都是非主属性了。姓名,系名,系主任,分数。

  • 第四步:查看是否存在非主属性对码的部分函数依赖。

    对于(学号,课名)→姓名,有学号→姓名,存在非主属姓名部分依赖课名。

  1. 解决的问题:数据冗余
  • 数据冗余:减少了冗余。
  1. 还存在的问题:插入异常,删除异常,修改异常的问题。
  • 插入异常∶如果需要新建一个系,并且有系主任。但是因为还没有学生开始学习,所以主键是空的,肯定是不能插入的。
  • 删除异常∶如果需要把某个系下面学生信息都清空,那么这个系也就不存在了。
  • 修改异常(解决一范式的问题):如果需要把学生的系进行更换,就需要把三条数据里面的系名和系主任都修改才可以。2NF可以只修改一个字段就可以实现。

🍵第三范式

在这里插入图片描述

  1. 定义

3NF在2NF的基础之上,消除了非主属性对于码的传递函数依赖。也就是说,如果存在非主属性对于码的传递函数依赖,则不符合3NF的要求。

  1. 传递函数依赖:

如果Y依赖于X,Z又依赖于Y,那就说Z依赖于X。

比如:系名依赖于学号,系主任依赖于系名,那么系主任传递函数依赖于学号。不满足3NF

在这里插入图片描述

  1. 解决问题:
  • 插入异常:如果需要新建一个系,并且有系主任但是因为还没有学生开始学习,所以主键是空的,肯定是不能插入的。现在需要新建一个系是不会出问题的。
  • 删除异常∶如果需要把某个系下面学生信息都清空,那么这个系也就不存在了。这时候清空只需要清空第二个表,不会影响其他表。不会出现异常。I

在这里插入图片描述

【数据库基础】数据库介绍和三大范式

【数据库基础】MySQL增删改查基础操作命令

【数据库高级】数据完整性和多表查询

【数据库】事务

【数据库高级】Mysql窗口函数的使用和练习

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

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

相关文章

实用调试技巧

个人主页:平行线也会相交 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 目录什么是bug?调试是什么?有多重要?调试是什么调试的基本步骤debug和release的介绍windows环境调试介绍快捷键调试的时候查看程序当前…

基于51单片机六车道智能交通灯设计(仿真+源程序+PCB+论文)

资料编号:204 功能介绍:(全套毕设资料齐全) 本设计的交通灯以十字路口为模型,在实现基本的功能前提下增加了时间及温度的液晶显示。从而还增加了路口高峰期的智能化人工管理机制。 实际生活中交通信号灯的规则千变万…

C++ 大作业/课程设计 小型公司工资管理软件

小型公司工资管理软件一、实验目的二、实验要求三、项目分工四、软件设计0.效果图:1.类的继承关系2.类的设计3.程序运行流程4.异常处理1. 用户输入异常2.文件操作异常五、程序代码一、实验目的 熟悉面向对象程序设计思想,掌握类、类的派生、静态成员、多…

JVM之运行时数据区 方法区

JVM方法区概述设置方法区的大小参数如何解决这些OOM内部结构补充non-final的类变量全局变量:static final常量池运行时常量池方法区的演进StringTable为什么要调整?方法区垃圾回收总览概述 《java虚拟机规范》中明确说明:“尽管所有的方法区…

Tableau可视化项目

文章目录Tableau可视化项目一、数据来源二、项目介绍1.项目目的2.架构三、数据可视化1.人口1.1 总人口、城镇人口、乡村人口1.2 人口出生率、死亡率、自然增长率1.3 人口年龄结构1.4 男女比例2.居民生活水平2.1 医疗情况2.2 恩格尔系数2.3 人均消费支出3.经济3.1 能源弹性系数3…

matlab中图像分割技术之一边缘检测

1.边缘检测 (1)Roberts边缘算子 (2)Sobel算子 (3)Prewitt算子 (4)拉普拉斯(Laplacian)算子 (5)LOG(Laplacian-Gauss)算子 (6)坎尼(Canny)算子 (7)…

数仓搭建-DWD层

DWD层(用户行为日志) 6.1.1 日志解析思路 1)日志结构回顾 (1)页面埋点日志 (2)启动日志 2)日志解析思路 6.1.2 get_json_object函数使用 1)数据 [{"name&qu…

力扣(LeetCode)128. 最长连续序列(C++)

哈希集合 建立哈希集合,存入所有数。一次遍历数组,对每个数检查是否有前一个数,如果某个数没有前一个数,说明这个数是一个序列的起点,从这个数开始遍历得到序列长度,维护最大序列长度,即是本题…

【SpringBoot项目中Knife4j在线API文档】

目录 1. Knife4j在线API文档基本使用 2. 配置API文档信息 1. Knife4j在线API文档基本使用 Knife4j是一款基于Swagger 2的在线API文档框架。 使用Knife4j的基础步骤: 添加依赖在application.properties / application.yml中添加配置在项目中添加配置类关于依赖项…

甲烷排放通量的计算

甲烷或N2O的排放通量计算公式如下: 式 (1) 中, F为CH4 (以C计) 或N2O (以N计) 排放通量, mgm-2h-1或μgm-2h-1;ρ为标准状况下CH4或N2O的密度, 分别为0.54和1.25 gL-1;V为采样箱体积, m3;A为采样底座内土壤表面积, m2;ΔCΔtΔCΔt表示CH4或N2O的排放速率, μLL-1h-…

浅谈正则表达式——C++正则替换引起的性能下降

目录问题引入正则替换测试常规方法测试模拟外部多次调用正则性能差的原因写在最后问题引入 最近在一次解析大文件(10万行)时,处理空格用到了正则替换,却没想到带来了性能上的问题,特别在此记录给需要的人避坑。假如要用C处理一个字符串首尾的…

4-four: 我收到的赞

我收到的赞 重构点赞功能(用上节的功能较为麻烦,需要将用户发布的帖子和评论所获得的赞加起来) 以用户为key,记录点赞数量increment(key), decrement(key)。 开发个人主页 以用户为key,查询点赞数量 1.在Redis.Ut…

RabbitMQ------其他知识点(幂等性、优先级队列、惰性队列)(九)

RabbitMQ------其他知识点()(九) 幂等性 用户对于统一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生副作用。同一次还款,通过多次点击不会生成多条还款记录,一个人的…

crm客户管理系统为企业带来的价值

简道云CRM场景套件对中小企业来说,crm客户管理系统最核心的作用,一是客户信息(联系信息和洽谈过程)的存留,不会因为业务人员的离职造成流失,这点对老板很重要。二是可帮助业务人员(客户获取、主管指导等&am…

Win32API操作文件

在Windows编程中CreateFile函数是用得非常多的,不仅可以打开文件,还可以打开管道、邮槽、通信资源、磁盘设备(早期Windows),控制台、目录。该函数返回一个句柄,该句柄可用于根据文件或设备以及指定的标志和属性访问文件…

SpringSecurity(二十)---OAuth2:实现资源服务器(上)资源服务器搭建以及直接调用授权服务器模式

一、 前言 本章将讨论如何使用Spring Security实现一个资源服务器,资源服务器是管理用户资源的组件。另外,学习本章有个前提,需要先把前面搭建授权服务器的相关文章先给阅读,否则可能后面出现的授权服务器相关代码不知道个所以然…

【Redis】缓存击穿的产生情况解决方案

1. 缓存击穿产生 也叫做 热点 Key 问题,高并发访问并且缓存重建业务较复杂的 key 突然失效了,无数的请求想要重建缓存,大量的访问会在瞬间给数据库带来巨大冲击。 2. 解决方案 2.1 方案一:互斥锁 查询缓存不存在时,…

【OpenFOAM】-olaFlow-算例1- baseWaveFlume

算例路径: olaFlow\tutorials\baseWaveFlume 算例描述: 一个基础的二维波浪水槽 算例快照: 图1 波浪模拟结果图2 算例网格文件结构: ├── 0.org │ ├── U │ ├── alpha.water │ ├── alpha.water.org │ └─…

关于Redis的远程连接 Connection: Disconnect on error 问题

bug描述: Connection: Disconnect on error: Connection error: Connection timed outConnection: 192.168.245.128 > connection failed 问题复现: redis版本: redis-6.2.6 Linux版本:CenterOS 7 在linux上已经完成了red…

第五章. 可视化数据分析分析图表—常用图表的绘制1—折线图,柱形图

第五章. 可视化数据分析分析图 5.3 常用图表的绘制1—折线图,柱形图 本节主要介绍常用图表的绘制,主要包括折线图,柱形图。 1.折线图(matplotlib.pyplot.plot) 折线图可以显示随时间而变化的连续数据,适用于显示在相…