关系数据库基础
在进行数据库设计之前,我们先回顾一下关系数据库的相关基本概念。
这里只做一个提纲挈领的简介,大家可以根据相应的线索进行扩展。
表、行、列
关系数据库可以想象成表的集合,每个表包含行与列。可以想象成一个Excel workbook,包含多个worksheet)。
表在关系代数中被称为关系,这也是关系数据库名称的起源不要与表之间的外键关系混淆)。
列在关系代数中被称为属性attribute)。列中允许存放的值的集合称为列的域域与数据类型密切相关,但并不完全相同)。
行在关系代数中的学名是元组tuple)。
关系数据库的理论基础来自于“关系代数”。但在关系代数中,一个集合的各个元组没有次序的概念,在关系数据库中为了方便使用,定义了行的次序。
键、索引
键是一种约束,目的是保证数据完整性
1. 复合键Compound key):由多个数据列组成的键
2. 超键Superkey):列的集合,其中任何两行都不会完全相同
3. 候选键Candidate key):首先是一个超键,同时这个超键中的任何列的缺失都会破坏行的唯一性
4. 主键Primary key):指定的某个候选键
索引是数据的物理组织形式,目的是提高查询的性能
约束
基本约束
not null constraint, domain constraint
检查约束Check Constraints)
例:Salary > 0
主键约束Primary Key Constraints)
实体完整性entity integrity),没有两条记录是完全相同的,组成主键的字段不能为null
唯一性约束Unique Constraints)
外键约束Foreign Key Constraints)也被称为引用完整性约束
例:
关系数据库操作
1.选择Selection)
2.映射Projection)
3.联合Union)
4.交集Intersection)
5.差集Difference)
6.笛卡尔积Cartesian Product)
7.连接Join)
上述7种是最基本的关系数据库操作,对应于集合论中的关系运算。
有些书籍中还会加入改名Rename),除Divide)等关系操作。