数据库总结:
(0)基本概念:
1)属性:
基本属性:不可以继续划分的属性;
复合属性:可以继续划分的属性;
单值属性:
多值属性:
2)主键:
3)外键:另外一个表的主键作为这个表的属性;
4)完全依赖:
5)传递依赖:
(1)数据定义、数据操纵(Data Manipulation),数据控制(Data Control):
数据定义:Create Table,Alter Table,Drop Table, Craete/Drop Index等
数据操纵:Select ,insert,update,delete,
数据控制:grant,revoke
(2)E-R图中实体之间的关联关系:
1)1:1
2)1:n
3)m:n
------
(2.1)E-R模型向关系模型的转换:
1.实体的转换:
2.联系的转换:
-------------------
(3)完整性约束:
1)实体完整性、(主键)
每个表都有主键,每行的主键都不为空,每行的主键都不同。
2)参照完整性、(外键)
另一个表的主键作为该表的属性,则成为该表的外键。
外键的取值范围是根据另外一个表的主键的取值决定。
3)用户定义完整性、(域)
------
(4)范式:
1)第一范式1NF:
不包含符合属性的关系;
2)第二范式2NF:
1NF+非主属性完全依赖于主键;
(如:某个满足1NF的关系,主键只有一列,则为2NF;如果满足1NF,且主键是多个属性组成的复合主键,且存在非主属性对主键的部分依赖,则不是2NF.)
将非2NF关系分解为2NF关系:
1.用复合主键集合中的每一个子集,作为主键构成一个关系;
2.依赖于这些主键的属性放到一个集合中;
3.去掉只由原主键的子集构成的关系。
3)第三范式3NF:
2NF+每个非主属性不传递依赖于主键(即2NF+每个非主属性不依赖于其他的非主属性);
4)BC范式BCNF:
主属性,非主属性完全依赖于主键又不传递依赖于主键;(即3NF+主属性完全依赖于主键又不传递依赖于主键。)
(5)三级模式结构:
1)外模式:(n>=1)
现实世界中,每个用户看到的模式
2)模式:(1个)
将多个用户看到的模式抽象为一个模式;
3)内模式:(1个)
表示数据库的存储。
4)数据库:
根据内模式,设计数据库。
-----
(6)事务:
数据库事务是指作为单个逻辑工作单元执行的一系列操作,这些操作要么全做要么全不做,是一个不可分割的工作单位。
1)定义:
2)四大特性(简称ACID):
1.原子性(Atomicity):
原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据修改操作要么全部执行,要么完全不执行。这种特性称为原子性。
2.一致性(Consistency) :
事务的一致性指的是在一个事务执行之前和执行之后数据库都必须处于一致性状态。这种特性称为事务的一致性。假如数据库的状态满足所有的完整性约束,就说该数据库是一致的。
例如完整性约束a+b=10,一个事务改变了a,那么b也应随之改变。
3.隔离性(/独立性Isolation):
分离性指并发的事务是相互隔离的。即一个事务内部的操作及正在操作的数据必须封锁起来,不被其它企图进行修改的事务看到。
4.持久性(Durability):
持久性意味着当系统或介质发生故障时,确保已提交事务的更新不能丢失。即一旦一个事务提交,DBMS保证它对数据库中数据的改变应该是永久性的,即对已提交事务的更新能恢复。持久性通过数据库备份和恢复来保证。
--------
(7)非规范化与规范化数据库比较:
(8)内连接与外连接:
1)内连接:
参与连接的两个表都应该符合连接条件。
2)外连接:
连接结果不仅包含符合连接条件的行同时也包含自身不符合条件的行。包括左外连接、右外连接和全外连接。
1.左外连接:
左边表数据行全部保留,右边表保留符合连接条件的行。
如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。
2.右外连接:
右边表数据行全部保留,左边表保留符合连接条件的行。
如果右表的某行在左表中没有匹配行,则将为左表返回空值。
3.全外连接:
左外连接 union 右外连接。
当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。