MySQL 理论

DBMS

层次模型

网状模型

关系模型

RDBMS

文件:
    数据冗余

不一致性

数据访问困难

数据孤立

完整性问题

原子性问题

并发访问异常

安全性问题

文件:

表示层

逻辑层

文件系统:存储引擎

物理层

元数据

数据:数据块

E-R :实体关系模型

关系模型

----实体,关系模型

---对象关系模型

---半结构化数据模型

关系:关系代数运算

SQL: structure Query Language

ANSI:ansi-sql

DML :数据操作语言

INSERT DELETE SELECT UPDATE

DDL: 数据定义语言

CREATE

DCL: 数据控制语言

GRANT

RDB对象:

库,表,索引,试图,用户,存储过程,触发器,时间调度器

约束

数据类型的约束

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

主键约束:不允许为空,唯一标示所属的实体

唯一健约束:不允许相同值,可以为空

检查性约束: age<150

constraint

关系型数据库

表示层: 表

逻辑层

存储引擎

物理层:数据文件

数据库存储和查询

存储管理器

--权限及完整性管理

--事物管理器

--文件管理器

--缓冲区管理器

查询管理器

--DML解释器

--DDL解释器

查询执行引擎

mysql---

单进程

多线程

守护线程

应用线程

线层重用

32bit

2.7G

64bit

smp:对称多处理器。 一个语句只能在一个处理器执行

关系运算:

投影:只输出指定属性

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

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

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

并: 集合运算

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插件式存储引擎

5.5.8 MyISAM (默认)

5.5.8后 innoDB(默认)

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

表结构定义文件

表修改模块:表创建,删除,重命名,移除,更新或插入之类的操作:

表维护模块:检查,修改,备份,恢复,优化(碎片整理)

文件中记录组织:

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

顺序文件组织:根据“搜索吗”值顺序存放:

散列文件组织:

表空间: table space

数据字典:关系的元数据

关系名字

字段名字

字段的类型和长度

试图

约束

用户名字,授权,密码

缓冲区管理器

置换策略

被钉住的块

时间: 2024-10-06 10:29:54

MySQL 理论的相关文章

mysql理论结合实际篇(一)

最近两天做需求,是要将退款和退货报表里使用的临时表改用固定表, 自己建表时,如(只是举例): CREATE TABLE tasks ( task_id INT UNSIGNED NOT NULL AUTO_INCREMENT, parent_id INT UNSIGNED NOT NULL DEFAULT 0, task VARCHAR(100) NOT NULL, test_id INT UNSIGNED NOT NULL DEFAULT 0, date_added TIMESTAMP NOT

MYSQL理论知识汇总

01. 列举常见的关系型数据库和非关系型都有那些? 1.关系型数据库通过外键关联来建立表与表之间的关系,---------常见的有:SQLite.Oracle.mysql 2.非关系型数据库通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定 ---常见的有:MongoDb.redis 02. MySQL常见数据库引擎及比较? · MyISAM:默认的MySQL插件式存储引擎,它是在Web.数据仓储和其他应用环境下最常使用的存储引擎之一. · InnoDB:用于事务

分库分表设计基础

随着当今系统中的数据量越来越庞大,当我们设计系统时经常会关心数据库的性能,以及数据库是否需要做分库分表处理.数据库是否要分库分表需要由业务吞吐量.数据库品牌.数据量等多方面决定,分库分表也还分为水平切分和垂直切分.这里仅描述不同场景下,数据库做水平的情况. 我理解的数据库分库分表本质上的目的就是一次数据库查询操作所涉及的数据量,通过架构设计和数据库设计,把每一次数据库交互涉及的数据量缩小. 1. 单一key条件下的分库分表 单key查询条件是最简单的一类业务查询,假设有user表 有业务查询,按

mysql AB复制理论

Mysql AB复制(主从复制)理论 MySQL 支持单向.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.即从Master复制到一个或多个Slave上. 实现整个主从复制需要由Master上的IO进程,和Slave上的sql进程和IO进程共同完成.首先打开Master上的 binary log (bin-log)功能(修改配置文件),因为整个复制实际就是slave从master端获取相应的二进制日志,然后在slave端按顺序执行日志中的各种操作.(二进制日志几乎

Atitit.&#160;数据约束&#160;校验&#160;原理理论与&#160;架构设计&#160;理念模式java&#160;php&#160;c#.net&#160;js&#160;javascript&#160;mysql&#160;oracle

Atitit. 数据约束 校验 原理理论与 架构设计 理念模式java php c#.net js javascript mysql oracle 1. 主键1 2. uniq  index2 3. 检查约束 (Check Counstraint) 对该列数据的范围.格式的限制(如:年龄.性别等)2 4. 默认约束 (Default Counstraint) 该数据的默认值2 5. trigger2 6. 外键机制  参照完整性:2 7. 断言约束:不必与特定的列绑定,可以理解为能应用于多个表的

MySQL知识理论篇

此篇文件献给正在学习MySQL的同学们,如果希望探讨学习请加我QQ:402283866 [思维理论篇] MySQL的定义 MySQL就是一个存表格的仓库,用规范的语句可以操作这个表(我们称sql语句).这些表格的每一行为一个单位,被公司记录一些信息. MySQL的使用方法 MySQL中的表格,每一行在被调用的时候会使用一些标准的语句,语句可以完成增删改查等操作.这些语句有6类,常用的有3类,每一类只有3-5个总有固定的单词,反复练习很容易掌握. MySQL主从同步 因为两个原因要设置主从同步:1

MySql学习(五) —— 数据库优化理论篇(一)

一.数据库管理系统 数据库管理系统(Database Management System, DBMS) 衡量是否是数据库的标准: ACID:是指在数据库管理系统(DBMS)中事务所具有的四个特性: 1) 原子性(Atomicity) 2) 一致性(Consistency) 3)隔离性(Isolation) 4)持久性(Durability) 1.关系型数据库:是建立在关系数据库模型基础上的数据库,借助于关系代数等概念和方法来处理数据库中的数据,同时也是一个被组织成一组拥有正式描述性的表格,该形式

MySQL优化核心理论与实践

背景描述:朋友单位OA系统前不久完成升级大改造,后端用的MySQL存储数据,上线跑了个把月,抱怨电话开始接二连三打来,不是这里打不开,就是那里无响应,有人比喻升级后变成老爷车,越来越慢,问题迫在眉睫,必须马上想对策呀.由于部署采用了规范文档,上线前也做了各种测试,于是乎,在线排查,未果,翻出实施文档,逐条阅读,未果,于是想起曾经一个业务系统,也碰到类似情况,后来通过各种优化得以缓解,遂有下文,<MySQL优化核心理论与实践>.说明:本文理论部分来源叶老师的博文,实践部分来源工作积累和众多热爱M

MySql学习(六) —— 数据库优化理论(二) —— 查询优化技术

逻辑查询优化包括的技术 1)子查询优化  2)视图重写  3)等价谓词重写  4)条件简化  5)外连接消除  6)嵌套连接消除  7)连接消除  8)语义优化 9)非SPJ优化 一.子查询优化 1. 什么是子查询:当一个查询是另一个查询的子部分时,称之为子查询. 2. 查询的子部分,包含的情况: a) 目标列位置:子查询如果位于目标列,则只能是标量子查询,否则数据库可能返回类似“错误:子查询只能返回一个字段 ( [Err] 1242 - Subquery returns more than 1