1数据库技术与应用北京邮电大学计算机学院肖达xiaoda99@gmail.com2DatabaseTechnologyandItsApplication第二章关系数据库2.1关系数据结构及形式化定义2.2关系操作2.3关系代数2.4关系的完整性3DatabaseTechnologyandItsApplication2.3关系的完整性2.4.1关系的三类完整性约束2.4.2实体完整性2.4.3参照完整性2.4.4用户定义的完整性4DatabaseTechnologyandItsApplication2.4.1关系的三类完整性约束实体完整性和参照完整性:关系模型必须满足的完整性约束条件称为关系的两个不变性,应该由关系系统自动支持用户定义的完整性:应用领域需要遵循的约束条件,体现了具体领域中的语义约束5DatabaseTechnologyandItsApplication2.4关系的完整性2.4.1关系的三类完整性约束2.4.2实体完整性2.4.3参照完整性2.4.4用户定义的完整性6DatabaseTechnologyandItsApplication2.4.2实体完整性规则2.1实体完整性规则(EntityIntegrity)若属性A是基本关系R的主属性,则属性A不能取空值例:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)POSTGRADUATE:主码(假设研究生不会重名)不能取空值7DatabaseTechnologyandItsApplication实体完整性(续)实体完整性规则的说明(1)实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集。(2)现实世界中的实体是可区分的,即它们具有某种唯一性标识。(3)关系模型中以主码作为唯一性标识。(4)主码中的属性即主属性不能取空值。主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第(2)点相矛盾,因此这个规则称为实体完整性8DatabaseTechnologyandItsApplication2.4关系的完整性2.4.1关系的三类完整性约束2.4.2实体完整性2.4.3参照完整性2.4.4用户定义的完整性9DatabaseTechnologyandItsApplication2.4.3参照完整性1.关系间的引用2.外码3.参照完整性规则10DatabaseTechnologyandItsApplication1.关系间的引用在关系模型中实体及实体间的联系都是用关系来描述的,因此可能存在着关系与关系间的引用。例1学生实体、专业实体学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名)主码主码学生关系引用了专业关系的主码“专业号”。学生关系中的“专业号”值必须是确实存在的专业的专业号,即专业关系中有该专业的记录。11DatabaseTechnologyandItsApplication关系间的引用(续)例2学生、课程、学生与课程之间的多对多联系学生(学号,姓名,性别,专业号,年龄)课程(课程...