MySQL数据库1——数据库概论

一.数据库概论

1.数据库

数据库(DataBase,DB):是长期存储在计算机内、有组织的、统一管理的相关数据的集合。简单来说,它就是一个存储各种数据的仓库,且存储过程不是随便而是有组织的。

数据库管理系统(DBMS):位于用户与操作系统制键的一层数据管理软件,为用户提供访问DB的方法。我的理解是把它认为是帮助我们操纵和管理数据库的大型软件。

SQL:我们可以通过DBMS来操作数据库,那我们使用什么来操作DBMS呢?所谓的SQL就是当我们操作关系型数据库时使用的编程语言,它定义了一套操作关系型数据库的统一标准。

2.主流数据库管理系统

主流的关系型数据库管理系统

  • Oracle:收费,且昂贵。
  • MySQL:原来免费,是一个中小型数据库,后来被Oracle公司收购,进行加强,提供免费基础版和收费加强版。
  • SQL Server:微软公司研发的一个中型数据库,收费。
  • SQLite:嵌入式开发用的微型数据库。

即使后来实际开发过程,我们使用的不是MySQL,但他们都是使用SQL语言控制的。

MySQL保姆级安装教程:点击这里

二.MySQL数据库

1.数据模型

MySQL数据库模型:

在这里插入图片描述

2.数据描述

概念设计中的数据描述:

  • 实体:客观存在、可以相互区别的事物。可以是具体对象,比如一名学生;也可以是抽象对象,比如一次学习。
  • 实体集:性质相同的同类实体的集合。比如所有的学生。
  • 属性:实体有很多特性,一个特性就是其一种属性。比如学生有学号、年龄、姓名的属性。
  • 实体标识符:能唯一标识实体的属性或属性集。也称关键码、键

逻辑设计中的数据描述:

  • 字段:标识实体属性的命名单位称为字段或数据项。比如学生有学号、姓名、年龄等字段。
  • 记录:字段的有序集合。一般用一条记录描述一个实体,比如一个学生记录的组成:(学号、姓名、年龄)。
  • 文件:同一类记录的集合。文件往往用来描述实体集,例如所有的学生记录构成了一个文件。
  • 关键码:能唯一标识文件中每条记录的字段或字段集,也叫键。

对应关系:

概念设计逻辑设计
实体记录
属性字段(或数据项)
实体集文件
实体标识符关键码

3.ER图

ER图也叫实体联系图,用来描述实体类型和实体间的关系。

ER图的基本成分:

  • 1.矩形框:用于表示实体。
  • 2.菱形框:用于表示实体间的联系。
  • 3.椭圆形框:用于表示实体的属性。

在某属性下画一条横线,表示该属性是关键码或实体标识符。

比如,现在有一ER图:

在这里插入图片描述

4.关系型数据库

概念:建立在关系模型基础上,由多张相互连接的二维表组成的数据库。
特点:

  • 1.使用表存储数据,格式统一,便于维护
  • 2.使用SQL语言操作,标准统一,使用方便

关系模型补充:

  • 实体:客观存在、可以相互区别的事物。可以是具体对象,比如一名学生;也可以是抽象对象,比如一次学习。
  • 实体集:性质相同的同类实体的集合。比如所有的学生。
  • 属性:实体有很多特性,一个特性就是其一种属性。比如学生有学号、年龄、姓名的属性。
  • 实体标识符:能唯一标识实体的属性或属性集。也称关键码、键
  • 关系模型:用二维表格表示实体集,用关键码表示实体之间联系的数据模型叫关系模型。

上面ER图例子的关系模型:
在这里插入图片描述

三.数据库体系结构

1.三层模式和两级映像

我们知道用户是不可能直接操纵数据的,它是通过应用软件来管理底层的数据库,那么应用软件到数据库中间过程是怎么样的呢?

在这里插入图片描述

主要看上面这张图,右半边就是从应用软件到数据库的过程,可以看见有三种模型,依次是外部模型、逻辑模型、内部模型,这三层模型用数据库的语言来说,就是外模式(用户模式)、逻辑模式和内模式(物理模式)。这就是所谓的三层模式。

而三层模式的数据不可能是一样的,那怎么理解不同的数据?我们可以看到上面右半图在三层之间画了两条虚线,即映像,用来说明各层数据的对应性。两级映像分别叫“外模式/逻辑模式映像”和“逻辑模式/内模式”映像。

可以看到左半边主要是对用户需求进行分析总结得出的模型叫概念模型,我们ER图画的就是概念模型。而我们实际开发,比如写一个学生管理系统管理学生数据,我们只开发右边的逻辑模型,所以才要有概念模型到逻辑模型的转换。

2.逻辑模式

  • 数据库中全体数据的逻辑结构和特征的描述
  • 是综合了所有用户的需求的公共数据视图
  • 一个数据库只有一个逻辑模式

逻辑模式的地位:

  • 是数据库系统模式结构的中间层
  • 与数据的物理存储细节和硬件环境无关
  • 与具体的应用程序、开发工具及高级程序设计语言无关

逻辑模式定义的内容:

  • 数据的逻辑结构
  • 数据之间的关系
  • 数据有关的安全性、完整性要求

前面的关系模型就是逻辑模式常见的一种表达方式。

3.外模式

  • 数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述
  • 数据库用户的数据视图,是与某一应用有关的数据的逻辑表示

比如教务处的成绩管理系统,学生可以查成绩有一个外模式,教师可以录入成绩也有一个外模式,教务处管理人员管理系统也有一个外模式,不一定一类用户只对应一种外模式,但一般一个数据库其外模式是一对多的关系。

  • 保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据
  • 保证数据独立性的一个有力措施

4.内模式

  • 是数据物理结构和存储方式的描述
  • 是数据在数据库内部的表示方式

关系:一对一。

面试问题:什么保证了数据库的数据独立性?

答:三层模式两级映像的数据结构。

四.关系数据模型

1.数据模型

在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息

数据模型就是用抽象对现实世界的模拟

数据模型应满足三方面要求:能比较真实地模拟现实世界、容易为人所理解、便于在计算机上实现。

2.关系的表示

一个二维表对应的就是一个关系

表的每行对应一个元组,表的每列对应一个

  • 一个元组其实对应一条记录或一个实体,表中列数也就是属性个数叫元数,含一个属性的元组叫一元组,依次类推。

  • 域其实就是二维表中同一列所有数据的集合,它在定义上是同一数据类型的集合。

3.完整性约束

完整性约束:关系型数据库维护与更新必须遵循的3类完整性规则。

  • 实体完整性
  • 参照完整性
  • 用户定义的完整性

其中,实体完整性参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。

实体完整性==》1.主键不能为空;2.主属性不能取空值

参照完整性==》外键必须是另一个关系模式的主键或者取空值

五.关系代数

1.关系代数

  • 是一种抽象的数据查询语言
  • 用对关系的运算来表达查询

关系代数通过关系运算符进行查询操作,关系运算符的分类:

  • 传统的集合运算符
  • 专门的关系运算符
  • 比较运算符
  • 逻辑运算符

2.基本操作

前提:R和S是两个关系,具有相同的关系模式==》两个二维表具有相同的属性

并:

  • 符号:R∪S
  • 解释:由属于R或属于S的元组构成的集合

差:

  • 符号:R—S
  • 解释:由属于R但不属于S的元组构成的集合

笛卡尔积:

  • 符号:R × S
  • 解释:新集合每个元组前r个分量来自R,后s个分量来自S

投影:

  • 符号:Π i 1 , … … , i m i_1,……,i_m i1,……im(R)
  • 解释:消除某些列,并重新排序
  • 补充:对一个关系进行垂直切割

选择:

  • 符号:σF®
  • 解释:从R中挑选满足公式F为真的元组构成新的关系

例子:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

3.组合操作

交:

  • 符号:R∩S
  • 解释:既属于R又属于S构成的新关系

连接:

  • 符号:R ∞ i θ j ∞_{i{\theta}j} iθjS
  • 解释:从R中挑选第i个分量,从S中挑选第j个分量,其满足{\theta}$操作的元组进行连接

例如:

image-20240205221017332

自然连接:

  • 符号:R∞S
  • 解释:1.计算R×S;2.RS的公共属性是Ai……Ak,挑选R.Ai=S.Ai的元组进行组合

例如:

image-20240205221646699

除法:

  • 符号:R ÷ \div ÷S
  • 解释:具体计算太复杂,其实就是找满足S的元组去除对应列后的新关系

例如:

image-20240205222157851

看图还不懂?这是一个学生和课程的关系,R ÷ \div ÷COURSE1、R ÷ \div ÷COURSE2、R ÷ \div ÷COURSE3分别表示至少选修COURSE1COURSE2COURSE3的学生名单。

把由5个基本操作经过有限次复合的式子称为关系代数表达式。可以利用关系代数表达式对数据库进行各种数据查询操作,而我们后面的SQL语言其底层原理还是关系代数来操作数据,只是把关系代数封装在了底部,而使用简单的SQL语句来操作。

4.补充操作

改名:

  • 符号: ρ S ( A 1 , … , A n ) R ρ_{S (A_1,…,A_n)}R ρS(A1,,An)R
  • 解释:把原来的关系R改名为S,把原来的属性依次改名为 A 1 , … , A n A_1,…,A_n A1,,An

除了改名,还有广义投影、赋值、外连接、外部并、半连接、聚集操作共7个扩充操作,关系代数和关系演算是早期的关系型数据库操作方式,现在更多的是使用SQL语言来操作(虽然底层原理还是它),但现在编程人员更多的还是掌握SQL语言即可。

除了改名,还有广义投影、赋值、外连接、外部并、半连接、聚集操作共7个扩充操作,关系代数和关系演算是早期的关系型数据库操作方式,现在更多的是使用SQL语言来操作(虽然底层原理还是它),但现在编程人员更多的还是掌握SQL语言即可。

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

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

相关文章

英伟达Tensor Core技术架构原理分析

英伟达Tensor Core架构技术原理 英伟达的Tensor Core架构是一种专为加速人工智能、深度学习、高性能计算(HPC)等领域中的矩阵运算和张量运算而设计的硬件单元。自首次在Volta架构中引入以来,Tensor Cores已成为NVIDIA高端GPU的核心特性,并在后续的Turing…

Linux基础5-进程控制1(fork创建子进程,写时拷贝,进程退出)

上篇文章:Linux基础4-进程5(程序地址空间详解)-CSDN博客 本篇重点:fork,写实拷贝,进程退出 目录 一. fork创建子进程 1.1 fork用法 1.2 fork返回值有两个的理解 二. 进程退出码 2.1 进程退出码 2.2 进…

用python中的tkinter包实现进度条

python中的tkinter包是一种常见的设计程序的GUI界面用的包。本文主要介绍这里面的一个组件:进度条(Progressbar)。Tkinter Progressbar里面对进度条组件已经做了一定的介绍,但比较抽象。本文以另一种方式介绍这个组件及其常用用法…

20.使用标准差剔除异常值

标准差剔除异常值 1. 方法2. 示例代码2.1 数据读取与清洗2.2 分段读取数据并绘图2.3 解释2.4 outliers2.5 结果展示 我有个记录数据采集后格式是step_rewards.txt 的文档,里面只有一列数据,10*10000行数据,没有表头,分别代表奖励数…

中科蓝讯修改蓝牙名字:【图文讲解】

本文以市面上一款公板公模的畅销产品为例。K12蓝牙音响。 音响用的芯片是:AB5768E MIC用的芯片是:AB5769A 硬件框架图如下: 芯片修改名字,通过下载工具中的配置进行修改。选择蓝牙配置,然后会出现蓝牙名字&#xff…

旅行包发霉怎么处理 除霉及防霉解决方法

近些年听到很多箱包工厂的心声,为什么箱包旅行包每年都会出现长霉请况呢?长霉了,也就是长毛了,长出那些病菌、真菌、细菌等微生物。经ihaoer防霉人士介绍旅行包长霉处理方法如下: 旅行包长霉的因素 一、旅行包储存在阴…

14、交互补充

1、元素的三大系列 1.1、offset系列 1.1.1、offset初相识 使用offset系列相关属性可以动态的得到该元素的位置(偏移)、大小等 获得元素距离带有定位祖先元素的位置获得元素自身的大小(宽度高度)注意:返回的数值都不…

【IEEE出版、八大高校联合举办、稳定EI检索】第四届人工智能与智能制造国际研讨会(AIIM 2024,12月20-22日)

第四届人工智能与智能制造国际研讨会(AIIM 2024) The 4th International Symposium on Artificial Intelligence and Intelligent Manufacturing 2024年12月20-22日 中国成都 重要信息 大会官网:www.isaiim.com 大会时间:202…

朴素贝叶斯算法探讨与实践

引言 和撰写博文[1]的缘由一样,本文是想要在所创设的专栏[2]里把所谓的十大机器学习算法[3]全部过一遍。 朴素贝叶斯算法是传统机器学习里的一种可以被用来进行分类的算法,本文将对其原理进行说明,并基于原理给出一个基于该算法的分类实践。…

《数据在内存中的存储》

内存函数 1. 整数在内存中的存储 (1)旧识回顾: 之前在学到操作符的时候,我们就学过了下面的内容: 整数的二进制的表示方式有三种,原码、反码、补码 有符号的整数,三种表示方式均有符号位和数…

【路径规划】粒子群算法、遗传算法、差分进化算法、灰狼优化算法、麻雀优化算法(PSO、GA、DE、GWO、SSA)路径规划

摘要 本文探讨了多种智能优化算法在路径规划中的应用,包括粒子群算法(PSO)、遗传算法(GA)、差分进化算法(DE)、灰狼优化算法(GWO)和麻雀优化算法(SSA&#x…

CSS基础知识05(弹性盒子、布局详解,动画,3D转换,calc)

目录 0、弹性盒子、布局 0.1.弹性盒子的基本概念 0.2.弹性盒子的主轴和交叉轴 0.3.弹性盒子的属性 flex-direction row row-reverse column column-reverse flex-wrap nowrap wrap wrap-reverse flex-dirction和flex-wrap的组合简写模式 justify-content flex-s…

如何搭建一台邮箱服务器,配置满分邮箱

如何搭建一台邮箱服务器,配置满分邮箱 搭建一台个人邮箱服务器听上去非常有技术含量,但只要准备工作充分,并且选择合适的软件,配置满分的邮箱,其实并没有想象中那么困难。在这篇文章中,我们将介绍搭建邮箱服务器的 必备…

DevOps工程技术价值流:打造卓越项目协作的优化宝典

一、引言 解锁项目协作的无限潜力,覆盖全链路实现流畅高效。 在当今瞬息万变的商业环境中,项目协作的效率和效果直接关系到企业的竞争力和市场响应速度。DevOps工程技术价值流中的项目协作优化,不仅是技术层面的革新,更是团队协…

【JAVA毕业设计】基于Vue和SpringBoot的冬奥会科普平台

本文项目编号 T 610 ,文末自助获取源码 \color{red}{T610,文末自助获取源码} T610,文末自助获取源码 目录 一、系统介绍二、数据库设计三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状 六、核心代码6.1 查询项目类型6.…

基于的图的异常检测算法OddBall

OddBall异常检测算法出自2010年的论文《OddBall: Spotting Anomalies in Weighted Graphs》,它是一个在加权图(weighted graph)上检测异常点的算法,基本思路为计算每一个点的一度邻域特征,然后在整个图上用这些特征拟合出一个函数&#xff0c…

网络工程师教程第6版(2024年最新版)

网络工程师教程(第6版)由清华大学出版社出版,由工业和信息化部教育与考试中心组编,张永刚、王涛、高振江任主编,具体介绍如下。 相关信息: 出版社: 清华大学出版社 ISBN:9787302669197 内容简介: 本书是工业和信息化部教育与考试中心组织编写的考试用书。本书 根据…

算法复杂度——大O表示法

参考视频:常见的大O表示法有哪些?时间复杂度是什么?_哔哩哔哩_bilibili

Maven maven项目构建的生命周期 Maven安装配置 IDEA 配置 Maven

一,Maven的概述 Maven的作用:专门用于管理和构建Java项目的工具,它的主要功能有: 提供了一套标准化的项目结构提供了一套标准化的构建流程(编译,测试,打包,发布……)提…

排序算法(基础)大全

一、排序算法的作用: 排序算法的主要作用是将一组数据按照特定的顺序进行排列,使得数据更加有序和有组织。 1. 查找效率:通过将数据进行排序,可以提高查找算法的效率。在有序的数据中,可以使用更加高效的查找算法&…