关系数据库
**1. 关系数据模型源于数学。
- 用二维表来组织数据,这个二维表在关系数据库中就称为关系。
- 关系数据库就是表或者说是关系的集合。
- 关系系统要求让用户所感觉的数据库就是一张张表。
- 在关系系统中,表是逻辑结构而不是物理结构。**
传统的关系运算:
- 并(Union)
- 交(Intersection)
- 差(Difference)
- 广义笛卡尔乘积(Extended Cartesian Product)
专门的关系运算:
- 选择(Select)
- 投影(Project)
- 连接(Join)
- 除(Divide)
主要包括:查询、插入、删除和修改数据。
是基于集合的操作,操作对象和操作结果都是集合(或关系)。
是非过程化的。
数据完整性是指数据库中存储的数据是有意义的或正确的。
主要包括三大类:
- 实体完整性
- 参照完整性
- 用户定义的完整性
关系 :关系就是二维表。并满足如下性质:
关系表中的每一列都是不可再分的基本属性;
表中的行、列次序并不重要。
属性 :表中的每一列是一个属性值集,列可以命名,称为属性名。
值域:属性的取值范围 。如,性别只能是‘男’和‘女’两个值。
元组:表中的每一行称作是一个元组,它相当于一个记录值。
分量:元组中的每一个属性值称为元组的一个分量,n元关系的每个元组有n个分量。
关系模式:关系模式是关系的“型”或元组的结构共性的描述。关系模式实际上对应关系表的表头。设关系名为R,属性分别为A1,A2,…,An,则关系模式可以表示为:
R(A1,A2,…,An)
- 关系数据库:对应于一个关系模型的所有关系的集合称为关系数据库。
- 候选码:能够惟一标识关系中的一个元组的一个属性或最小属性组。
- 主码:指定候选码中的一个作为主码。
- 主属性:包含在任一候选码中的属性称为是主属性。
- 非主属性:不包含在任一候选码中的属性称为是非主属性。
- 外码:如果某个属性不一定是所在关系的码,但是其他关系的码,则称该属性为外码。
实体完整性是保证关系中的每个元组都是可识别的和惟一的。
- 而且表中不允许存在如下的记录: 无主码值的记录 主码值相同的记录用于描述实体之间的联系。
参照完整性一般是指多个实体(表)之间的关联关系。
一般用外码实现。
外码:取作本表(子表)属性之一的外表(父表,主表)主码。
主码值先在主表中生成,后在子表中引用
例子
查询修c02号课程的学生的学号和成绩。
∏sno, grade(σcno=‘c02’(SC))
查询计算机系修c02号课程的学生的姓名和成绩。
∏sname, grade(σcno=‘c02’(SC) >< σsdept=‘计算机系’(Student))
查询修了第2学期课程的学生的姓名和所在系。
∏sname, sdept(σsemester=2(Course) ><SC (Student)
查询修了全部课程的学生的学号和姓名。
∏sno, sname(Student ><(SC ÷ ∏cno(Course)))