标签:
数据库逻辑结构发展史:层次型、网状型、关系型(RDBMS关系型数据库管理系统)。我们常用的mysql就是关系型,它的核心就是关系型表。为了对其数据访问、关系维护进行控制,还提供附加功能,如:数据安全用认证、授权实现;部分数据访问控制用索引实现;用户只看到他能看到的数据用视图实现。
mysql的现在发展:mysql被oracle收购,现在基于mysql改进而来的有mariaDB,webscaledb。
mysql是基于C/S架构,client是mysql,server为mysqld,client与server间的交互是由sql协议实现的。具体实现有两种:1、用开发的命令行,在命令行中直接写sql语句,进行增删改查。2、将sql协议封装成API,如JDBC驱动,用JDBC驱动进行连接。
sql语句:DDL(create、drop、alert)、DML(insert、delete、update、select)、DCL(grant、revoke)。是用户与mysqld交互的接口。
为了支持并发,提供了事务,即ACID,A 原子性 C一致性 I 隔离性 D 持久性。Inodb是支持事务的,MyIsam没有事务。事务的隔离级别,读未提交、读提交、可重读、可串行化。
用户在命令行或者是用API接口输入sql语句,基于socket通信将sql语句送给mysqld,在mysqld中有sql解释器,之后就是进行用户操作了,因此在mysqld中还提供了文件管理器、缓存管理器、磁盘操作器、事务管理器、锁管理器、恢复管理器。
事务日志:在机械硬盘上存在大量的随机IO,为了提高写性能,将数据先写入事务日志(连续IO),之后再写入硬盘。记录日志:简单的对操作的记录。
数据写入过程:开启事务(事务管理器)——>写入内存(缓存管理器)——>写入事务日志(缓存管理器)——>提交事务(事务管理器)——>写入数据库硬盘空间(磁盘管理器)。若事务未提交则还可以回滚(恢复管理器)。
索引:为了方便查找提供索引,索引指向对应数据在磁盘上的位置,索引的存储格式以及查找算法对数据的读取至关重要。索引又分为一级索引、二级索引....
数据查找过程:首先查找查询缓存,如果找到就直接返回,若查询缓存中没有就由分析器分析,再去索引空间将顶级索引读如内存,根据顶级索引一级级的查找到指定数据。
mysqld内部结构:
第一范式:字段为基本的数据类型;第二范式:属性完全依赖主建;第三范式:非主属性不能同时出现在一个实体的多张表中。
关系型数据库的约束:主健约束、外健约束、条件约束、非空约束。
mysql的常用组件架构:
mysql开发工具,画红线为常用工具:
mysql安装目录:
标签:
原文地址:http://www.cnblogs.com/Jc-zhu/p/4709168.html