您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 第03讲数据库access数据模型
关系模型E-R图转换为关系模型关系模型的完整性第三讲数据模型(2)学生成绩管理系统的问题描述一名学生可以选修多门课程,一门课程可以被多名学生选修;一位教师可以向多个班级讲授多门课程,一门课程可以被多位教师向多个班级讲授,一个班级可以被多位教师讲授多门课程一名学生属于一个班级,一个班级有多名学生教师学生课程班级授课选修mnpmnn1学生成绩管理系统的E-R图请你整理本班同学的学号、姓名、性别、出生日期、政治面貌等信息,你会怎么做?学号姓名性别出生日期政治面貌20100102梁西川男01-Dec-90群众20100103毛成程男03-Nov-91群众20100104史晓庆女03-Apr-91中共党员…………………………课程编号课程名称课程类别学分CJ001微积分基础课4CJ002计算机基础基础课4CJ003大学英语基础课4……………………1.关系模型的数据结构实体及实体间的联系都用二维表表示,数据结构单一化。一张二维表称为一个关系。一、关系模型英国计算机科学家EdgarFrankCodd关系数据模型简介系统而严格地提出关系模型的是美国IBM公司的E.F.Codd1970年提出关系数据模型之后,提出了关系代数和关系演算的概念1972年提出了关系的第一、第二、第三范式1974年提出了关系的BC范式提供了严格的数学基础1942-1945年二战期间任战斗机机长,参与了许多重大空战;二战结束后,考特上牛津大学学习数学,于1948年取得学士学位;参加了IBM第一台科学计算机701以及第一台大型晶体管计算机STRETCH的逻辑设计,主持了第一个有多道程序设计能力的操作系统的开发;在60年代初,到密歇根大学进修计算机与通信专业,于1963年获得硕士学位,1965年取得博士学位。课程编号课程名称课程类别学分CJ001微积分基础课4CJ002计算机基础基础课4CJ003大学英语基础课4元组属性也叫字段。主键能唯一标识实体的属性集。一、关系模型表中的一行称为元组,也叫记录,表示一个实体。称为关系模式2.关系的描述形式:关系名(属性1,属性2,…,属性n)如:课程(课程编号,课程名称,课程类别,学分)一、关系模型3.关系的特点:一、关系模型1)每个属性必须是不可分的数据项2)每一列的属性名必须不同3)不能有相同的元组(相同数据不应重复存储)4)同一列是同质的,不同的列可来自同一个域5)行的顺序无所谓(元组排名不分先后)6)列的顺序无所谓(属性排名不分先后)实际事物认识、抽象概念模型DBMS支持的数据模型二维表、属性、主键、关系模式二、E-R图转换为关系模型实体、属性、主键、实体集、联系1.一个实体转化为一个关系模式学生(学号,姓名,性别,出生日期,政治面貌,照片)二、E-R图转换为关系模型学生姓名学号性别出生日期政治面貌2.1:n联系二、E-R图转换为关系模型班级学生属于1n班级(班级编号,班级名称,人数)学生(学号,姓名,性别)班级编号班级名称人数学号性别姓名学生(学号,姓名,性别,班级编号)将”1”的主键放入”n”的定义中3.m:n联系多对多的联系表示成单独的关系模式,其主键由相关联的实体集的主键一起构成:二、E-R图转换为关系模型选修(学号,课程编号,成绩)学生课程选修mn成绩二、E-R图转换为关系模型学生成绩管理系统的关系模型:学生(学号,姓名,性别,出生日期,政治面貌,班级编号)课程(课程编号,课程名称,课程类别,学分)教师(教师编号,姓名,性别,参加工作时间,政治面貌,学位,职称,院系,联系电话,婚否)班级(班级编号,班级名称,入学时间,专业,培养层次,人数,班主任)选修(学号,课程编号,成绩)授课(课程编号,班级编号,教师编号,学年,学期,周学时,授课地点,授课时间)三、关系模型的完整性是对关系的某种约束条件,约束数据库的有效状态。关系模型有三类完整性约束:实体完整性参照完整性用户自定义完整性1.实体完整性实体完整性规则(EntityIntegrity):若属性A是基本关系R的主属性,则属性A不能取空值。例:供应商表(供应商编号,名称,所在城市),供应商编号属性为主键,则其不能取空值。二、关系模型的完整性“不知道”或“无意义”的值学号课程号成绩0734567002选修(学号,课程号,成绩)“学号、课程号”两个属性都不能取空值××√√学号课程号成绩07123450723456878277002003实体完整性(续)关系模型必须遵守实体完整性规则的原因:实体完整性规则是针对基本关系而言的。现实世界中的实体和实体间的联系都是可区分的,即它们具有某种唯一性标识。相应地,关系模型中以主键作为唯一性标识。注意:主码中的属性即主属性不能取空值。2.参照完整性关系间的引用外键参照完整性规则1.关系间的引用例1学生实体、专业实体以及专业与学生间的一对多联系学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名)关系间的引用(续)学号姓名性别专业号年龄801张三女0119802李四男0120803王五男0120804赵六女0220805钱七男0219专业号专业名01信息02数学03计算机关系间的引用(续)例2学生、课程、学生与课程之间的多对多联系学生(学号,姓名,性别,专业号,年龄)课程(课程号,课程名,学分)选修(学号,课程号,成绩)课程号课程名学分01数据库402数据结构403编译404PASCAL2学号姓名性别专业号年龄801张三女0119802李四男0120803王五男0120804赵六女0220805钱七男0219学号课程号成绩801049280103788010285802038280204908030488学生学生选课课程例3学生实体及其内部的领导联系(一对多)学生(学号,姓名,性别,专业号,年龄,班长)学号姓名性别专业号年龄班长801张三女0119802802李四男0120803王五男0120802804赵六女0220805805钱七男02192.外键(ForeignKey)设F是基本关系R的一个或一组属性,但不是关系R的键。如果F与基本关系S的主键Ks相对应,则称F是基本关系R的外键。基本关系R称为参照关系(ReferencingRelation),基本关系S称为被参照关系(ReferencedRelation)或目标关系(TargetRelation)。外码(续)说明:关系R和S不一定是不同的关系。目标关系S的主键Ks和参照关系的外键F必须定义在同一个(或一组)域上。外键并不一定要与相应的主键同名。当外键与相应的主键属于不同关系时,往往取相同的名字,以便于识别。3、参照完整性规则若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值)。或者等于S中某个元组的主码值。参照完整性规则(续)学生关系中每个元组的“专业号”属性只取下面两类值:(1)空值,表示尚未给该学生分配专业。(2)非空值,这时该值必须是专业关系中某个元组的“专业号”值,表示该学生不可能分配到一个不存在的专业中。参照完整性规则(续)选修(学号,课程号,成绩)“学号”和“课程号”是选修关系中的主属性,按照实体完整性和参照完整性规则,它们只能取相应被参照关系中已经存在的主码值。参照完整性规则(续)学生(学号,姓名,性别,专业号,年龄,班长)“班长”属性值可以取两类值:(1)空值,表示该学生所在班级尚未选出班长;(2)非空值,这时该值必须是本关系中某个元组的学号值。外键是两个关系建立联系的桥梁,而参照完整性保证关系之间正确地建立联系三、关系模型的完整性是针对数据库中具体数据的约束条件。反映了某一具体应用所涉及语义要求。3.用户自定义完整性例:课程(课程号,课程名,学分)“课程名”属性必须取唯一值非主属性“课程名”也不能取空值“学分”属性只能取值{1,2,3,4}
本文标题:第03讲数据库access数据模型
链接地址:https://www.777doc.com/doc-2152811 .html