且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

菜鸟学Linux 第071篇笔记 Mysql理论

更新时间:2022-10-01 17:37:11

菜鸟学Linux 第071篇笔记 Mysql理论



接下来课程

MySQL

SQL/MySQL 语句

事务: 隔离,并发控制,锁

用户和权限

监控

STATUS

索引类型:查询

VARIABLES

备份和恢复

复制功能(同步数据库)

集群



数据库历史

文件管理数据缺点

数据冗余和不一致性

数据访问困难

数据孤立

数据完整性问题

原子性问题

并发访问异常

安全性问题


文件

表示层

文件

逻辑层

文件系统 (将底层的数据块表示为文件的形式供最终用户查看,

   用户存储文件时文件系统将文件解构为二进制存到硬盘)

存储引擎

物理层

元数据

数据:数据块



由上原因,所以产生了DBMS

DBMS

层次模型

网状模型

关系模型

RDBMS





关系模型 (结构化数据模型)

关系模型

实体*关系模型

对象关系模型:基于对象的数据模型

半结构化数据模型 XML (扩展标记语言)




关系:关系代数运算

交集

并集

差集

补集



SQL (Structure Query Language)

DML (Data Manipulation Language)

INSERT

DELETE

SELECT

UPDATE

DDL (Data Definition Language)

CREATE

DROP

ALTER

DCL (Data Control Language)

GRANT

REVOKE



RDB对象

库、表、索引、视图、用户、存储过程、存储函数、触发器、事件设库器


约束 constraint

域约束:数据类型的约束

外键约束:引用完整性约束

主键约束:某字段能唯一标识此字段所属的实体,并且不允许为空,

  主键条目不可相同,一张表只可以有一个主键

唯一性约束:每一行的某字段都不允许出现相同值,可以为空

  一张表可以有多个

检查性约束:



关系型数据

表示层:表

逻辑层:存储引擎,解构

物理层:数据文件


70年

System R: SQL

Ingres, Oracle, Sybase

ANSI: ansi-sql




如何进行数据存储和查询

存储管理器(功能)

权限及完整性管理器

事务管理器

文件管理器

缓冲区管理器

查询管理器

DML解释器

DDL解释器

查询执行引擎




数据不允许一个线程响应多个请求,一般为一个线程响应一个请求

单进程,多线程

守护线程

应用线程

Thread Reuse




关系运算

投影: 只输出指定字段

选择: 只输出符合条件的行

自然连接: 具有相同名字的属性上所有取值相同的行

笛卡尔积: (a+c)*(c+d)=ac+ad+bd+bd

并: union 集合运算




SQL查询语句

sequel-->SQL

SQL-86

SQL-89

SQL-92

SQL-99

SQL-03

SQL-08



SQL语言的组成部分

DDL

DML

完整性定义语言: DDL的一部分功能

视图定义

事务控制

嵌入式SQL和动态SQL

DCL



使用程序设计语言如何跟RDBMS交互

嵌入式SQL  与动态SQL类似,但其语言必须程序编译时确定下来 ODBC

动态SQL 程序设计语言使用函数(mysql_connect())

或者方法与RDBMS服务器建立连接,并进行交互;通过建立连接向SQL服务器发

送查询语句,并将结果保存至变量中而后进行处理  JDBC



MySQL 组成部分

连接管理器

连接管理器

线程管理器

解析器

缓存

优化器

插件式存储引擎

MySAM (不支持事务)

InnoDB (支持事务)




MySQL 命令执行过程


用户连接请求-->连接管理器-->线程管理器

用户模块

缓存模块<-- 命令分发器 -->日志模块

解析器

优化器 表定义模块 表维护模块 复制模块 状态报告模块

访问控制模块

表管理器

存储引擎


表管理器:负责创建、读取或修改表定义文件;维护表描述符高速缓存;管理表锁;

表结构定义文件

表定义模块: 表创建、删除、重命名、移除、更新或插入之类的操作;

表维护模块: 检查、修改、备份、恢复、优化(碎片整理)及解析;




文件中记录组织:

堆文件组织: 一条记录可以放在文件中的任何地方

顺序文件组织: 根据“搜索码”的值进行存放

散列文件组织: 




表结构定义文件, 表数据文件

表空间: table space


数据字典: Data Dictionary

关系的元数据

关系的名字

字段名称

字段类型和长度

视图

约束


用户名字,授权,密码



缓冲区管理器

缓存置换策略

被钉住的块

本文转自Winthcloud博客51CTO博客,原文链接http://blog.51cto.com/winthcloud/1889480如需转载请自行联系原作者


Winthcloud