第1讲 数据库基本知识
2) 参照完整性 关系间的引用 参照完整性规则 关系间的引用 在关系模型中实体及实体间的联系都是用关系来描述的,因此可能存在着关系与关 系间的引用。 例1 学生实体、专业实体以及专业与学生 间的一对多联系 学生(学号,姓名,性别,专业号,年龄) 专业(专业号,专业名) 学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名) 关系间的引用(续) 例2 学生、课程、学生与课程之间的多对 多联系 学生(学号,姓名,性别,专业号,年龄) 课程(课程号,课程名,学分) 选修(学号,课程号,成绩) 学生 学生选课 课程 参照完整性规则 若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为: ? 或者取空值(F的每个属性值均为空值) ? 或者等于S中某个元组的主码值。 参照完整性规则(续) 选修(学号,课程号,成绩) “学号”和“课程号”是选修关系中的主属性按照实体完整性和参照完整性规则,它们只能取相应被参照关系中已经存在的主码值。 3) 用户定义的完整性 用户定义的完整性是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。 关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。 用户定义的完整性(续) 例: 课程(课程号,课程名,学分) “课程名”属性必须取唯一值 非主属性“课程名”也不能取空值 “学分”属性只能取值{1,2,3,4} * * 数据库系统原理与应用 网状模型的数据结构(有向图) 网状模型 满足下面两个条件的基本层次联系的集合为网状模型。 1. 允许一个以上的结点无双亲; 2. 一个结点可以有多于一个的双亲。 能表示实体之间的多种复杂联系 数据库系统原理与应用 三、 关系模型 用二维表表示实体和实体间联系的数据模型称为关系模型。 数据库系统原理与应用 关系模型 最重要的一种数据模型。也是目前主要采用的数据模型 1970年由美国IBM公司San Jose研究室的研究员E.F.Codd提出 本课程的重点 数据库系统原理与应用 关系数据模型的数据结构(二维表) 在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。 数据库系统原理与应用 关系数据模型的数据结构(续) 实体及实体间的联系的表示方法 实体型:直接用关系(表)表示。 属性:用属性名表示。 一对一联系:隐含在实体对应的关系中。 一对多联系:隐含在实体对应的关系中。 多对多联系:直接用关系表示。 数据库系统原理与应用 关系数据模型的数据结构(续) 例1 学生、系、系与学生之间的一对多联系: 学生(学号,姓名,年龄,性别,系号,年级) 系 (系号,系名,办公地点) 例2 系、系主任、系与系主任间的一对一联系 联系隐含在关系内部: 系(系号,系名,办公地点) 系主任(教师编号,姓名,年龄,性别,所在系号) 数据库系统原理与应用 学号 姓名 年龄 性别 系号 年级 60501 李小 17 女 05 06 60403 林山 18 男 04 06 60504 葛淘 17 男 05 06 60507 黄星 17 女 05 06 教师编号 所在系号 0401 04 …… …… 0501 05 学生表 系主任表 系表 系号 系名 04 计算机系 …… 05 机械系 一对一联系 一对多联系 数据库系统原理与应用 关系数据模型的数据结构(续) 例3 学生、课程、学生与课程之间的多对多联系: 学生(学号,姓名,年龄,性别,系号,年级) 课程(课程号,课程名,学分) 选修(学号,课程号,成绩) 用一个新的关系来表表示实体间多对多的联系 数据库系统原理与应用 学号 姓名 年龄 性别 系号 年级 60501 李小 17 女 05 06 60403 林山 18 男 04 06 60504 葛淘 17 男 05 06 60507 黄星 17 女 05 06 学生表 课程(课程号,课程名,学分) 选修(学号,课程号,成绩) 选修表 学号 课程号 成绩 60501 001 85 60501 003 79 60503 001 92 60503 002 80 60503 003 88 60504 002 75 60504 003 84 60507 001 70 60507 003 76 课程表 课程号 课程名 学分 001 SQl语言 4 002 数据结构 5 003 机械制图 3 数据库系统
原创力文档

文档评论(0)