DDL: 数据操作语言
- INSERT
- DELETE
- SELECT
- UPDATE
DML: 数据定义语言
- CREATE
- DROP
- ALTER
DCL: 数据控制语言
GRANT
REVOKE
RDB 对象:
库, 表, 索引, 视图, 用户, 存储过程, 存储函数, 触发器, 事件调度器.
约束:
域约束: 数据类型约束
外键约束: 引用完整性约束
主键约束: 某字段能唯一标识此字段所属的实体, 并且不允许为空一张表中可以有多个
检查性约束: age:int
关系型数据库:
表示层: 表
逻辑层: 存储引擎
物理层: 数据文件
数据存储和查询
存储管理器:
权限机完整性管理
事务管理器
文件管理器
缓冲区管理器
查询管理器:
DML 解释器
DDL 解释器
DCL 解释器
查询执行引擎
mysql 是单进程多线程的系统; 不会给多个进程启动多个进程!
线程复用
mysql 不支持对称多处理器(smp), 意思是不能在一个 sql 处理分摊到多个 cpu 上处理, 因此在处理速度上面就慢.
关系运算:
投影: 只输出指定的字段
选择: 只输出符合条件的行
自然链接: 具有相同名字的所有属性值上取值相同的行
笛卡尔积:
SQL 查询语句:
- sequel ---> SQL
- SQL-86
- SQL-89
- SLQ-92
- SQL-99
- SQL-08
SQL 语言的组成部分:
DDL:
DML:
完整性定义语言: DDL 的一部分功能
视图定义:
事务控制:
嵌入式 SQL 和动态 SQL:
授权: DCL
使用程序设计语言如何 RDBMS 交互:
嵌入式 SQL: 与动态 SQL 类似, 但其语言必须程序编译时完全确定下来;
ODBC; 针对的程序为 C
动态 SQL: 程序设计语言使用函数 (mysql_conect()) 或者方法与 RDBMS 服务器建立连接, 并进行交互; 通过建立连接向 SQL 服务器发送查询语句, 并将结果保存至变量中而后进行处理.
JDBC; 针对的程序为 JAVA
MYSQL 支持插件式存储引擎
mysql 5.5.8 的之前的存储引擎是 MyISAM, 不支持事务. 特别适合查询比较多但是修改比较少的场景.
mysql 5.5.8 版本之后的存储引擎是 InnoDB,
表管理器: 负责创建, 读取或修改表定义文件; 维护表描述高速缓存; 管理表锁.
表结构定义文件.
表修改模块: 表创建, 删除, 重命名, 移除, 更新或插入之类的操作
表维护模块:; 检查, 修改, 备份, 恢复, 优化 (碎片整理) 及解析;
文件中记录组织:
堆文件组织: 一条记录可以放在文件中的任何地方.
顺序文件组织: 根据 "搜索码" 值顺序存放;
散列文件组织:
表结构定义文件; 表数据文件
表空间: table space
来源: http://www.bubuko.com/infodetail-2641037.html