关系型数据库概述
关系型数据库概述
数据库的简介
数据库是按照数据结构来组织、存储和管理数据的仓库
,是一个长期存储在计算机内,有组织的、可共享的、统一管理的大量数据的集合。
数据库的分类
- 关系型数据库(RDBMS)
- 非关系型数据库(NoSQL)
关系型数据库(RDBMS)
关系型数据库又称关系型数据库管理系统(Relational Database Management System),是指采用关系模型来组织数据的数据库,以行和列的形式存储数据,一系列的行与列称为表,一组表组成了数据库。
由二维表及其之间的关系组成的一个数据组织
特点
- 存储结构:高度组织结构化数据,每个数据表都必须对各个字段定义好再根据表结构存入数据
- 查询方式:采用结构化查询语言(SQL)对数据进行管理
- 存储规范:按照最小关系表的形式进行存储,避免数据冗余
- 事务性:强调ACID原则
- 读写性能:追求数据的实时性与一致性
常见的关系型数据库
- Access-微软
- SQL Server-微软
- Mysql-ORACLE
- Oracle-ORACLE
SQL
结构化查询语言(Structured Query Language),简称SQL。是关系型数据库的标准语言。
功能
SQL功能 | 动词 |
---|---|
数据查询(Data Query Language) DQL | SELECT |
数据定义(Data Definition Language) DDL | CREATE,DROP,ALTER |
数据操纵(Data Manipulation Language) DML | INSERT,UPDATE,DELETE |
数据控制(Data Control Language) DCL | GRANT,REVOKE |
事务控制(Transaction Control Language) TCL | COMMIT,ROLLBACK,SAVEPOINT |
ACID原则
1.原子性(Atomicity)
事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。
2.一致性(Consistency)
数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。
3.隔离性(Isolation)
并发的事务之间不会互相影响,如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。
4.持久性(Durability)
一旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失。
关系型数据库的规范化理论(范式)
关系数据中的关系是要满足一定要求的,满足不同程度的要求的为不同范式。满足最低的要求叫第一范式,简称1NF,在第一范式的前提下,满足进一步要求的为第二范式,以此类推。
第一范式(1NF)
所有的字段都是原子的,不可再分
字段(一列):又称为属性,描述事物的特征
元组(一行):又称为记录,描述一个具体的事务
eg:如果号码分为电话号码,qq号码。那这时号码不能单独作为一列
第二范式(2NF)
在第一范式的基础上,所有非主属性都依赖于主属性
(消除非主属性对主键(主码)的部分函数依赖)
函数依赖: 设R(U)是属性集U上的关系模式,X,Y是U的子集,若对于R(U)的任意一个关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不相等,则称X函数确定Y或Y函数依赖于X记作 X->Y
完全函数依赖: 在R(U)中,如果X->Y,且对于X的任意一个真子集Xn,Y都不依赖于其真子集,则Y完全依赖于X
部分函数依赖:若x->Y,但Y不完全依赖于X,则称Y对X部分函数依赖
传递函数依赖:在R(U)中,如果X->Y,X不依赖于Y,Y->Z,则Z对X有传递函数依赖
候选码:设K为R<U,F>中的属性或属性组合(F表示属性集U上的函数依赖),若属性集的属性都完全函数依赖于K,则K为关系模式<U,F>的候选码
主码: 若候选码多于一个,则选定其中一个作为主码(主键)
主属性:包含在任何一个候选码中的属性称为主属性
非主属性:不包含在任何候选码中的属性成为非主属性
eg: 学生姓名依赖于学号,课程名称部分依赖于学号,因此学号与学生姓名在同一张表中,课程名称不放在同一表中
第三范式(3NF)
在第二范式的基础上,不存在非主属性传递依赖于主属性
(消除非主属性对于主键(主码)的传递依赖)
eg: 班级编号依赖于学号,院系依赖于班级编号,学号与院系存在传递依赖,故学号与院系不放在同一表中