SQL(Structured Query Language)是标准的关系数据库(Relational Database Managerment System)操作语言。SQL语言包括:查询语言(Data Retrieval)、数据操作语言(Data Manipulation Language - DML)、数据定义语言(Data Definition Language - DDL)、数据控制语言(Data Control Language - DCL)和事务控制(Transaction Control)。
主键(Primary Key):他是关系数据库表中的某一列或某几列的组合,它能够唯一地标识关系数据库表中的任一行。
实体完整性(Entity Integrity):主键不能包含空值(NULL),并且主键必须能够唯一的标识任一行。
表的设计者负责定义主键,关系数据库管理系统(如Oracle、MySQL等)负责维护实体完整性。
第一范式(1NF):
(1)所有的键的属性(列)都已定义;
(2)没有任何重复组(Repeating Groups),换句话说每行和每列的交汇处可以而且只能包含一个值,而不能包含一组值;
(3)所有的属性(列)都依赖于主键。
任何关系数据库的表都满足第一范式。
部分依赖(Partial Dependency):只依赖于部分主键的依赖关系。
控制冗余:数据库中的表通过共享相同的属性(列)把它们链在一起。
外键(Foreign Key):他是关系数据库表中的某一列或某几列的组合;他的值或者与另一个表中(有时也有可能是同一个表中)的某一列(一般为主键)相匹配,或者为空值(NULL)。
引用完整性(Referential Integrity):
(1)外键必须或者为空值,或者有相匹配的项。
(2)外键可以没有相对应的键属性(列)但不可以有无效的项。
表的设计者负责定义外键,关系数据库管理系统负责维护引用完整性。
第二范式(2NF):
(1)该表是第一范式的表;
(2)该表不包含部分依赖。
传递依赖(Transitive Dependency):一个或多个属性(列)依赖于非主键的属性(列)。
第三范式(3NF):
(1)该表为第2范式;
(2)该表不包含传递依赖。