关系数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。关系模型由关系数据结构、关系操作集合、关系完整性约束三部分组成。
1.数据的组织结构:层次模型、网状模型、关系模型。
2.常见的关系模型有4种:关系模型、实体-关系模型、对象关系模型、半结构化数据模型(XML)。
3.约束分类:
域约束:数据类型约束;
外键约束:引用完整性约束;
主键约束:某字段能唯一标识此字段所属的实体,并且不允许为空,一张表中只能有一个主键;
惟一键约束:每一行某字段不允许出现相同值,可以为空一张表可以有多个惟一键;
检查性约束:约束某字段不能出现违反常理的数值,MySQL对此支持有限;
4.数据库逻辑关系:
表示层:表
逻辑层:存储引擎
物理层:数据文件
5.数据的存储和查询:
存储管理器:权限及完整性管理器、事务管理器、文件管理器、缓冲区管理器;
查询管理器:DML解释器、DDL解释器、查询执行引擎;
6.关系运算
投影:只输出指定字段
选择:只输出符合条件的行
自然连接:两张表中具有相同名字的属性上所有取值相同的行连接输出
笛卡尔乘积:(a+b)*(c+d)=ab+ad+bc+bd
并:两样关系彼此之间都有的部分
7.使用程序设计语言如何跟RDBMS交互:
嵌入式SQL:与动态SQL类似,但其语言必须程序编译时完全确定下来;
动态SQL:程序设计语言使用函数(mysql_connect())或者方法与RDBMS服务器建立连接,并进行交互;通过建立连接向SQL服务器发送查询语句,并将结果保存至变量中而后进行处理;
8.MySQL微观结构
连接管理器:监听并接受用户请求;
线程管理器:创建新线程或以线程重用方式给用户一个响应线程;
用户模块:检查用户连接权限;
解析器:解析查询并生成解析树;
访问控制模块:验证用户是否有权限操作其想操作的对象;
优化器:负责创建响应请求时的最佳查询策略;
表定义模块:表创建、删除、重命名、移除、更新或插入之类的操作;
表维护模块:检查、修改、备份、恢复、优化(碎片整理)及解析;
表管理器:负责创建、读取或修改表定义文件,维护表描述符高速缓存,管理表锁;
9.文件中记录组织:表中的每一行在文件中的存储方式
堆文件组织:一条记录可以放在文件中的任何地方;
顺序文件组织:根据“搜索码”值顺序存放;
散列文件组织:对表的某个字段或某些字段做hash运算,根据结果存放在某个散列容器(桶)中;