1数据库系统结构概念模型数据模型数据描述和数据模型数据库体系结构2一、数据描述1.数据描述的三个领域现实世界:存在于人们头脑之外的客观世界信息世界:现实世界在人们头脑中的反映,人们把它用文字和符号记载下来机器世界:信息世界的信息在机器世界中以数据形式存储数据描述和数据模型用模型这个工具来抽象、表示和处理现实世界的数据和信息。就是现实世界的模拟。3模型分类模型分类:概念模型(信息模型、按用户的观点);数据模型(网状模型、层次模型、关系模型,按计算机系统的观点)模型应满足三方面要求:真实模拟现实世界;容易为人所理解;便于在计算机上实现。•数据结构:用于描述系统的静态特性。•数据操纵:用于描述系统的动态特性。•完整性约束:是一组完整性规则的集合。课程学生学习nm教师任课1m学号姓名性别年龄入学时间93001张三女211993-9-1095003李四女191995-9-1094005王五男181995-9-10关系数据模型42.抽象的层次现实世界信息世界概念模型(不依赖computer)机器世界DBMS支持的数据模型认识、抽象、命名、分类转换3.两类模型:概念(信息)模型:(用户角度、信息世界建模)数据模型:(计算机系统角度建模,DBMS实现)5概念模型1.主要术语实体(Entity):客观存在并互相区分的事物。可以是具体的人、事、物或抽象的概念.属性(Attribute):实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。码(Key/键):唯一识别实体集中每个实体的属性或属性组。域(Domain):属性取值的变化范围。实体型(EntityType):性质相同的同类实体。用实体名及其属性名集合来抽象和刻画。表示方法:实体名(属性名,……)实体集(EntitySet):性质相同的同型实体的集合。不同领域不同术语对应关系6联系联系(Relationship):现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系.(1:1,1:N,M:N).实体(型)内部的联系:组成实体各属性之间的联系。实体(型)之间的联系:不同实体集之间的联系。实体型联系两个实体型一对一联系(1:1)三个实体型一对多联系(1:n)一个实体型多对多联系(m:n)71:1联系:如果实体集A中每个实体至多和实体集B中的一个实体有联系,反之亦然,那么实体集A和B的联系称为1:1联系。1:N联系:如果实体集A中每个实体可以与实体集B中任意个(零个或多个)实体间有联系,而B中每个实体至多和A中一个实体有联系,那么称实体集A和B的联系是1:N(一对多)联系。M:N(多对多)联系:如果实体集A中每个实体可以与实体集B中任意个(零个或多个)实体有联系,反之亦然,那么称实体集A和B的联系是M:N(多对多)联系。两个实体型间的联系81:1(一对一)联系——示例飞机的座位和乘客之间是1:1联系;班长-班级AB座位乘客实体型A实体型B1:1联系:如果实体集A中每个实体至多和实体集B中的一个实体有联系,反之亦然,那么实体集A和B的联系称为1:1联系。91:N(一对多)联系——示例工厂里车间和工人之间是1:N联系班长-班级学生,班主任-班级AB车间工人实体型A实体型B1:N联系:如果实体集A中每个实体可以与实体集B中任意个(零个或多个)实体间有联系,而B中每个实体至多和A中一个实体有联系,那么称实体集A和B的联系是1:N(一对多)联系。10M:N(多对多)联系——示例学校里学生和课程之间是M:N联系仓库——零件;作者——书;商店——商品实体型A实体型BAB学生课程M:N(多对多)联系:如果实体集A中每个实体可以与实体集B中任意个(零个或多个)实体有联系,反之亦然,那么称实体集A和B的联系是M:N(多对多)联系。11两个实体间联系妻子丈夫夫妻11座位电影院电影票n1产品工厂生产nm实体联系举例两个实体间的两种联系工程领导n1参加mn职工12多个实体型间的联系(续)多个实体型间的一对多联系实例:课程、教师与参考书三个实体型如果一门课程可以有若干个教师讲授,使用若干本参考书,每一个教师只讲授一门课程,每一本参考书只供一门课程使用课程与教师、参考书之间的联系是一对多的多个实体型间的一对一联系多个实体型间的多对多联系13两个以上实体间一对多联系一般地,两个以上的实体之间也存在一对一、一对多、多对多联系。多个实体间的多元联系课程教师参考书讲授1mn一门课程由若干教师讲授,使用若干本参考书,而每一个教师只讲一门课程,每一本参考书只供一门课程使用。反映三者之间关系,即哪个教师讲哪一门课程并使用什么参考书课程1张三李四王五参考书1参考书2参考书3参考书414一个丈夫只有一个妻子和一个孩子),一个妻子只有丈夫,一个孩子只有一个爸爸。多个实体间的多元联系丈夫妻子孩子家庭111两个以上实体间一对一联系反映三者之间的家庭关系15一个供应商可以供给多个项目多个零件,而每个项目可以使用多个供应商供应的零件,每种零件可由不同供应商供给。多个实体间的多元联系供应商项目零件供应NPM两个以上实体间多对多联系同一实体型内各实体间的联系(续)一对多联系实例职工实体型内部具有领导与被领导的联系某一职工(干部)“领导”若干名职工一个职工仅被另外一个职工直接领导这是一对多的联系一对一联系多对多联系零部件装配nm职工领导n1职工婚姻11实体型内部的联系17m:nm:n联系1:1联系1:n联系特例特例特例三种联系的关系182.概念模型的表示方法概念模型的表示方法很多实体-联系方法(E-R方法)用E-R图来描述现实世界的概念模型E-R方法也称为E-R模型19概念模型的表示方法实体-联系模型(Entity-Relationship,简称E-R模型)E-R模型是P.P.S.Chen于1976年提出的E-R模型直接从现实世界中抽象出实体类型及实体间联系,然后用E-R图表示E-R图中的四个基本成分矩形框,表示实体类型菱形框,表示联系类型椭圆形框,表示实体类型和联系类型的属性直线,联系类型与其涉及的实体类型之间以直线连接,并在直线端部标上联系的种类(1:1,1:N,M:N)20E-R图实体型用矩形表示,矩形框内写明实体名。学生教师21E-R图(续)属性用椭圆形表示,并用无向边将其与相应的实体连接起来学生学号年龄性别姓名22E-R图(续)联系联系本身:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)联系的属性:联系本身也是一种实体型,也可以有属性。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来23联系的表示方法实体型1联系名实体型2111:1联系实体型1联系名实体型2mnm:n联系实体型1联系名实体型21n1:n联系24联系的表示方法(续)实体型1联系名mn同一实体型内部的m:n联系实体型1联系名实体型21m多个实体型间的1:n联系实体型3n25联系的表示方法示例班级班级-班长班长111:1联系课程选修学生mnm:n联系班级组成学生1n1:n联系26联系的表示方法示例(续)职工领导1n同一实体型内部的1:n联系课程讲授教师1m多个实体型间的1:n联系参考书n27联系属性的表示方法课程选修学生mn成绩28E-R模型设计举例为选课系统设计E-R模型:已知:一名学生可选修多门课程,一门课程可以被多名学生选修;一门课程可以由多个教师讲授,一个教师只讲一门课,根据以上规范,构造E-R模型。建立E-R图的过程如下:29分析实体和联系确定实体类型学生STUDENT,教师TEACHER,课程COURSE确定联系类型STUDENT和COURSE之间是M:N联系,定义为选修COURSE和TEACHER之间是1:N联系,定义为任课把实体类型和联系类型组合成E-R图确定实体类型和联系类型的属性确定实体类型的键(码),在属于键的属性名下划一横线30STUDENTCOURSETEACHER选修任课SNOSNAMEAGEGRADEQUANTITYCNOCNAMEcpnoccreditTNOTNAMESALARYMN1NE-R图的实例mn1n31STUDENTSNOSNAMEAGECOURSECNOCNAMEcpnoccreditTEACHERTNOTNAMESALARYCOURSESTUDENT选修NMTEACHER任课1NQUANTITYGRADE实体及其关系图mn1n上图的另一种画法32一个图书借阅管理数据库要求提供下述服务:(1)可随时查询书库中现有书籍的品种、数量与存放位置。所有各类书籍均可由书号唯一标识。(2)可随时查询书籍借还情况。包括借书人单位、姓名、借书证号、借书日期和还书日期。我们约定:任何人可借多种书。任何一种书可为多个人所借。借书证号具有惟一性。(3)当需要时,可通过数据库中保存的出版社的电报编号、电话、邮编及地址等信息向有关书籍的出版社增购有关书籍。我们约定,一个出版社可出版多种书籍,同一本书仅为一个出版社出版,出版社名具有唯一性。根据以上情况和假设,试作如下设计:(1)构造满足需求的E-R图。课堂练习33满足上述需求的E-R图为:34课程教师参考书学生讲授选修领导1mnmn1n成绩E-R图实例2学生学号姓名性别年龄住址其它属性略35供应商项目零件职工仓库供应工作库存领导Pmnmn1nn库存量1nE-R图实例336班级班主任指导1教室上课学生宿舍住宿1档案材料归档管理mn组成1mn1111n拥有性别1n学籍管理局部应用的E-R图37教室1学生选修开设1mn课程参考书教师讲授1mnm教学mn课程管理局部应用的E-R图38E-R模型的优点接近于人的思维,容易理解与计算机无关,用户容易接受在实际问题中,一般总是先设计一个,然后再把E-R模型转换成计算机能实现的数据模型设计工具:ER-WINE-R模型设计(见后续章节)39(1)为选课系统设计E-R模型。已知:一个班级可以有多名学生,一名学生只能属于一个班级;一个班级可以有多门必修课程,一门课程可能是多个班级的必修课;一名学生可选修多门课程,一门课程可以被多名学生选修;一门课程可以有多个上课时间,一个上课时间内可能有多门课程上课,根据以上管理规范,构造E-R模型。(2)根据我校情况为教务管理设计概念模型,并用E-R图表示。在教务管理中涉及教师信息、学生信息、课程信息、以及学生选课成绩。希望可方便地获取某教师讲授的课程及听课学生的情况,可获取某学生所选修的课程。(3)为商店销售管理设计概念模型,并用E-R图表示。要求包含下列信息:销售人员的情况、商品库存情况、销售记录、和顾客信息。(4)为医院住院部管理设计概念模型,并用E-R图表示。要求包含下列信息:大夫信息、病人信息、病房信息、科的信息和病人治疗信息等。每个大夫只属于一个科,一个科管理多个病房,在一个病房中可有多张床位,病人在住院时,只有一个主治大夫负责医治。(5)为学校管理信息设计概念模型,要求包括下列信息:系、教研组、教师、班级、学生、课程、及课程开设记录。在清华大学,课程的开设是由教研组负责,每个教师只属于一个教研组,班级由系统一管理。各实体的属性可自行设定E-R课堂练习40数据模型是描述数据(数据结构)、数据之间的联系、数据语义即数据操作,以及完整性约束(一致性)的概念工具的集合。即数据模型=数据结构(静态:对象、联系)+数据操作(动态:检索、更新)+完整性约束(条件:实体、参照、自定义)数据模型是数据库的核心和基础。数据库结构的基础就是数据模型。数据模型41三种数据模型:基于树的层次模型(HierarchicalModel)基于图的网状模型(NetworkModel)物理相关、无高级查询语言基于表的关系模型(RelationalModel)物理无关、支持高级查询语言,三种数据模型42层次模型中的数据用记录(与Pascal语言中的记录含义相同)的集合来表示,数据间的联系用链接(可看作指针)来表示,层次模型中