菜鸟学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