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
数据字典:关系的元数据
关系名字
字段名字
字段的类型和长度
试图
约束
用户名字,授权,密码
缓冲区管理器
置换策略
被钉住的块