MySQL总结-最全
mysql综合概念篇
文章目录
SELECT *FROM mytableWHERE SOUNDEX(col1) = SOUNDEX('apple')
数据库系统:
1. 数据库系统基本概念:
1. 信息与数据
数据不仅仅是数值,可以是文字、图像、动画、声音、视频等等,上篇在http://nsddd.top/index.php/2021/12/17/nftgongyi/中介绍到,数据也是可以进行加密NFT。信息与数据有联系也有区别,在数据库领域,通常处理的像学生信息这样的数据,它是有结构的,称之为`结构化数据`。关系:数据是信息的载体,信息是数据的内涵。即数据是信息的符号表示,而信息通过数据描述,又是数据语义的解释。
- 数据库
数据库(DB)是按照一定的存储结构组织并且长期存储在计算机内部,可以大量共享的数据集合。
数据库(DB)包括数据库管理系统(DBMS)
特点:可共享,有组织,永久存储
- 数据库管理系统
安装于操作系统上,是一种管理、控制数据库中各种数据库对象的系统软件(DBMS)
数据库系统
数据库系统(DBS)是指计算机引入数据库后的系统,它能够有组织、动态的存储大量的数据,提供数据的处理和数据的共享机制。
组成:
- 硬件系统
- 软件系统
- 数据库(DB)
- 包含数据库管理系统(DBMS)
- 人员(DBA)
- 信息系统
信息系统(IS)具有对信息进行加工处理、存储、传递,同时有预测、控制和决策等功能
数据管理技术的发展
人工管理
初始阶段,数据的独立性差,应用程序提供保护。
文件系统
物理独立性好,逻辑独立性差,文件系统提供保护。
数据库系统
共享性好,冗余度小,由DBMS提供完善的安全保护
DBMS提供数据控制
- 数据的安全性保护
- 数据的完整性检查
- 并发控制(事务,锁)
- 数据库恢复(回滚)
数据库结构❤️❤️❤️
- 模式(Schema)
模式是数据库中全体数据的逻辑结构特征的描述,是所有用户公用数据库结构
外模式(External Schema)
外模式(也称子模式或者用户模式) 是数据库用户所见和使用的局部数据的逻辑结构和特征的描述
外模式是模式的子集,它主要描述用户视图各记录的组成、相互联系、数据项
内模式(Internal Schema)
内模式(也成为存储模式)是数据物理结构和存储方法的描述。它是整个数据库最底层结构的表示。
如存储方式:哈希方法存储
一个数据库只有一个内模式,内模式对用户透明
数据库独立性与二级映射功能
- 外模式/模式映射:
- 内模式/模式映射:
数据库体系结构
- 客户/服务器结构(C/S)
- 浏览器/服务器(B/S)
小结:
- 数据库存储的是:数据以及数据之间的联系
- 控制数据满足一定的约束条件,这属于完整性
- 数据的独立性是指:物理独立性和逻辑独立
- 数据库系统属于结构化存储
2. 信息与数据模型
信息的三种世界:
- 现实世界
- 信息世界
- 计算机世界(数据世界)
数据模型:
- 数据处理三层抽象描述
- 概念层
- 逻辑层
- 物理层
- 数据模型要素
- 数据结构
- 数据操作
- 数据的完整性约束条件
概念模型:
1. 实体 2. 属性 3. 实体型 4. 实体集 5. 码 6. 域 7. 联系1. 一对一2. 一对多(1:n)3. 多对多 (n:m)
从项目:高校学生学籍管理系统分析:
实体与联系
实体 (属性)
院系(院系号、院系名、院长名) ;
专业(专业号、专业名) ;
学生(学号、姓名、性别、出生日期、联系电话、入学时间);
教师(教工号、姓名、性别、职称、院系号、联系电话);
课程(课程号、课程名、学时、学分、上课时间,上课教室);
选课(学号、课程号、成绩)。
用户(用户,密码)
奖惩情况(学号,奖励,惩罚)
教师授课(教工号,课程号)
实体间的联系情况与转换规则:
院系与教师的联系是工作 对应的联系情况是一对多;
教师与课程的联系是授课 对应的联系情况是多对多;
学生与专业的联系是属于 对应的联系情况是一对多;
学生与选课的联系是报课情况,对应的关系是多对多;
部分ER图
全局ER图
概念模型向逻辑模型的转化(有点烦)
- 1:1联系转化:
将1:1联系转化为独立的关系模式
1:n转化:
转换为一个独立的管理模式,与该联系相连的各实体的码以及联系本身的属性均转化为关系模式的属性。
n:n转化:
需要将联系单独转化为一个独立的关系模式,与该联系相连的各实体的码以及联系本身的属性均转化为关系模式的属性,每个实体的码组成关系模式的码或关系模式码的一部分。
关系模型
关系模型简述
关系模型就是处理TABLE,它由三部分组成:
- 描述DB各种数据的基本结构形式(Table/Relation)
- 描述Table与Table之间所可能发生的各种操作(关系运算)
- 描述这些操作所应遵循的约束条件(完整性约束)
关系模型的三个要素:
完整性约束: 实体完整性、参照完整性和用户自定义的完整性
实体完整性
关系的主码中的属性值不能为空值;
空值:不知道或无意义的值;
意义:关系中的元组对应到现实世界相互之间可区分的一个个个 体,这些个体是通过主码来唯一标识的;若主码为空,则出现不可标识 的个体,这是不容许的。
####参照完整性
如果关系R1的外码Fk与关系R2的主 码Pk相对应,则R1中的每一个元组的 Fk值或者等于R2 中某个元组的Pk 值, 或者为空值
意义:如果关系R1的某个元组t1参照 了关系R2的某个元组t2,则t2必须存在
关系操作
关系操作包括数据查询、数据维护、数据控制
关系操作语言:
- 关系代数语言
- 关系演算语言
- 具有关系代数和关系演算双重特点的语言
小结:
- 数据库概念模型中,设计人员依据的是关系模型编写程序
- A和B两个实体的联系类型:m:n,则ER图转化为关系模型关系模式数量是:3
- 转为关系模式时候,实体和联系都可以表示为属性
- 联系用菱形表示,实体用方块表示
- 域的含义是属性的取值范围
关系代数和关系数据库理论:
关系代数通过符号化的语言,来描述数据库的行为关系,相当于简化版的 SQL。比如并,交,差,笛卡尔积,除法,select 语句等等。
SQL 则是结构化查询语句,相比于关系代数,更方便被计算机识别的一种查询语言。
** 交,并,差,笛卡尔积等符号,和数学上的符号完全一致,只是运算的单位不是集合而是表。**
交运算取两张表相同的字段。并运算类似,也是合并相同的字段,同时加入不相同的字段:
差运算则是减去两者的交集。笛卡尔积则组合任意的属性:
选择语句
关系代数中用符号 σ(西格玛,sigma)来描述选择语句。此外我们可以在 select 的同时,添加限制条件投影语句
在关系代数中的投影语句相当于 SQL 中的字段筛选,可以选择特定的字段进行查询连接语句
关于连接的 SQL 版本,可以看我之前的博客:MySQL 连接(JOIN)使用 简单讲解与示例关系代数版本的连接语句如下,假设有两张表 R 和 S,通过某些条件把他们进行连接,用 ∞ 号表示连接
一般连接中都认为连接条件是带有等号的(比如外键),这种连接叫做等号连接。通常可以省略连接条件。能够省略的又称为 “自然连接” (natural join)
外连接则是在内连接的基础上,为无法匹配的记录 添加空行 :
除法(重要⚠)
除法是乘法(笛卡尔积 )的逆运算,值得注意的是,关系代数中除法只为整除。只有当除表的所有记录,在被除表中全部命中时,才认为发生了整除。如下图,当 A 表中某几条记录完全被 B 完成命中时,才认为发生整除,其他部分都不算整除。
下图颜色三个除法例子。可以用 A÷B 再 × B,就能得到下图的颜色标记部分:
除法常用作选取带有 ALL 字眼的题目,比如选取选了所有课程的学生,那么用课程表去(course)除选课记录表(SC),就能得有选了所有课程的学生:
函数依赖:
在数据依赖中,函数依赖是最基本、最重要的依赖,给定一个属性的值,就可以确定到另一个属性的值。
1:1 依赖
1:n依赖
m:n不依赖
- 函数依赖
- 多值依赖
- 连接依赖、
####依赖类型:
如果
X -> Y
,但是Y不属于X,则X -> Y是MySQL总结-最全相关推荐
- 基于Solr DIH实现MySQL表数据全量索引和增量索引
实现MySQL表数据全量索引和增量索引,基于Solr DIH组件实现起来比较简单,只需要重复使用Solr的DIH(Data Import Handler)组件,对data-config.xml进行简单 ...
- MySQL数据检索+查询+全文本搜索
[0]README 0.1)本文部分文字描述转自"MySQL 必知必会",旨在review"MySQL数据检索+查询+全文本搜索" 的基础知识: [1]使用子查 ...
- MySQL 索引优化全攻略
2019独角兽企业重金招聘Python工程师标准>>> 所谓索引就是为特定的mysql字段进行一些特定的算法排序,比如二叉树的算法和哈希算法,哈希算法是通过建立特征值,然后根据特征值 ...
- centos mysql自动补全_MyCLI :一个支持自动补全和语法高亮的 MySQL/MariaDB 客户端
MyCLI 是一个易于使用的命令行客户端,可用于受欢迎的数据库管理系统 MySQL.MariaDB 和 Percona,支持自动补全和语法高亮.它是使用 prompt_toolkit 库写的,需要 P ...
- solr mysql 增量索引_基于Solr DIH实现MySQL表数据全量索引和增量索引
实现MySQL表数据全量索引和增量索引,基于Solr DIH组件实现起来比较简单,只需要重复使用Solr的DIH(Data Import Handler)组件,对data-config.xml进行简单 ...
- mysql如何实现全外连接并去除重复列?
MySQL如何实现全连接,并将冗余的列合并在一起 ent_name a_attr1 a_attr2 a_attr3e1 5 6 2020.1.2e2 8 9 2020.2.6e4 4 3 2019.1 ...
- 云之梦php免费教学视频下载_云知梦php基础+php进阶+mysql+linux+laravel全栈工程师【百度网盘】...
云知梦php基础+php进阶+mysql+linux+laravel全栈工程师视频百度网盘下载,全套云知梦PHP全栈工程师教程一共172集,每天两小时深入讲解,注意只是讲,课下自己要练习,总和86天课 ...
- mysql/postgres数据库全备份脚本
mysql/postgres数据库全备份脚本 亲测可用,已使用在项目中 #!/bin/bash # 基础路径 base_path="/home/sql_back/postgres/" ...
- navicat for mysql排序_Navicat for MySQL功能最全总结
原标题:Navicat for MySQL功能最全总结 Navicat for MySQL 是一套管理和开发 MySQL 或 MariaDB 的理想解决方案,支持单一程序,可同时连接到 MySQL和M ...
- MySQL语句最全详解
文章目录 MySQL语句最全详解 一.常见sql语句用法与演示 前置条件 连接命令 1.常用数据库类型 2.数据约束(数据表中) 3.数据库的备份和还原 二.操作数据库(操作数据库之前要通过命令行工具 ...
最新文章
- LeetCode 191 Number of 1 Bits
- 学习理发去哪里_作为女性,学习运维工程师去哪里好
- 为什么HR 20分钟就淘汰了一个前端高级工程师?
- Java学习笔记10
- J2EE和Java EE
- jdk和jre是什么?都有什么用?
- 074-enable-right-click
- JAVA计算机毕业设计疫情监测管理系统Mybatis+源码+数据库+lw文档+系统+调试部署
- 【电源芯片】TPS63020升降压芯片-电池放电
- 智能座舱HIL测试台架集群搭建的必要性
- OpenCV的Rect矩形类简介和使用
- 小人物走路、奔跑的VC++游戏特效,适合刚学习VC++游戏编程的朋友
- 作为一个程序员,你是怎么管理文档资料的?我这个方法特别方便
- 第2课:5G标准小知识
- 如何做一个基于JAVA二手交易网站系统毕业设计毕设作品(springboot框架)
- 淘宝api开放平台买家卖家订单接口,python网络爬虫采集数据
- CPU相关的18个概念
- 智慧珠海的主界面左滑菜单及ViewPager和RadioButton的使用
- nutz oracle配置,初始化数据 - Nutz 烹调向导
- ddr2的上电顺序_DDR2布线规则(一)
热门文章
- 嵌入式软件硬件比例_嵌入式做硬件方向好还是软件方向好?
- IDEA报错解决:java.lang.NoClassDefFoundError: org/apache/curator/framework/CuratorFrameworkFactory
- MATLAB机器人工具箱【1】——建模+正逆运动学+雅克比矩阵
- 如何清除系统垃圾文件?
- aix系统日志服务器,AIX系统日志
- RESTful API http 动词含义
- 小米mix刷鸿蒙系统,力拼鸿蒙和iOS!小米手机最新系统MIUI13来了:多款老机型无缘...
- 东方财富网股票数据爬虫
- 软件开发模型1:边做边改模型/瀑布模型/快速原型模型
- 软件生命周期模型(瀑布型、V模型、W模型、敏捷开发模型)