数据库管理系统: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://5489884.blog.51cto.com/5479884/1706090