阅读:4295回复:0
【转】关系型数据库相关知识
数据库管理系统:DBMS
Database Management System 数据库也是一段大型的管理程序,实现数据(高效存取)管理;专用于为某一项目或某一方案使用数据集合即为数据库 层次模型:与应用程序耦合度过高,不利于使用 网状模型: 关系模型:关系是指表之间 行、列:二维关系表,行为数据,列为字段 事务、范式(降低存储空间的浪费,却增加多张表之间的关系,浪费服务器的读写和计算能力) 对象-关系模型: Sybase, Infomix, Oracle PostgreSQL, MySQL, MariaDB, Sqlite MySQL, MariaDB SQL: Structured Query Lanague CREATE DROP ALTER INSERT SELECT UPDATE DELETE 事务:(多个语句绑成一个操作视为事务,在一个操作完成前第二个操作必须等待) A:原子性,多个操作都完成才算结束 C:一致性,事务的部分操作结果写入数据库中,则库的状态就是不一致,数据库必须一致性状态 I:隔离性,多个事务必须隔离开不能同时操作 D:持久性,保证数据一旦修改能长久保存硬盘中 RDMBS设计范式基础概念 设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。 目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴德斯科范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推。一般说来,数据库只需满足第三范式(3NF)就行了。 (第1范式) 字段不可分割; (第2范式) 应该拥有主键; (第3范式) 表间不能拥相同的非主键字段; 约束:constraint 主键约束:新插入行的(单个字段或者字段集合)不能同已存行的,非空的必须字段赋值;(Not Null);一张表只能有一个惟一键;primary key 惟一键约束:不能同已有数据;一张表上可以存在多个惟一键;unique key 外键约束:表之间对应字段间的约束关系;foreign key,该字段的值必须在另外个表上存在且为另外表的主键 检查性约束:自定义的表达式约束; 索引:将表中一个或多个字段抽取出来,按特定数据结构重新组织和存放的数据;(方便了读操作,多了写操作) 关系运算: 选择和投影 选择:挑选行; 投影:挑选字段; 选择和投影不必同时进行 连接:当字段的值相等数据,连接表之间 RDBMS的管理结构: C/S Client:客户端程序(GUI, CLI)、应用编程接口(API); mysql客户端mysql进程, php-mysqlphp连接mysq的组件, python-MySQL Server:DBMS (监听在套接字上,接收、处理并响应客户端请求); mysqld mysql --> mysql protocol --> mysqld mysql单进程多线程方式,所有客户端都连接mysql单进程下的线程 数据抽象: 物理层:决定的数据的存储格式,即RDBMS在磁盘上如何组织文件;(系统工程师) 逻辑层:描述DB中存储什么数据,以及数据间存在什么样的关系;(数据库DBA) 视图层:描述DB中的部分数据;(开发人员) 数据模型的分类: 关系模型 实体-关系模型 基于对象的数据模型 半结构化数据模型 原文:http://blog.51cto.com/5489884/1706090 |
|
|