第2章数据库模型第2讲数据模型2回顾•数据库的发展历史•数据库的基本概念•数据库系统组成•数据库系统的体系结构第2讲数据模型3•数据库–数据库是长期存储在计算机内、有组织的、统一管理的、可共享的相关大量数据的集合。–数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为多用户共享。回顾第2讲数据模型42数据模型•概念模型•数据模型–关系模型–半结构化数据模型–面向对象数据模型第2讲数据模型52.1现实世界客观对象的抽象过程•模型(Model)–对现实世界中某个对象进行建模,对其特征进行抽象和模拟的工具。第2讲数据模型62.1现实世界客观对象的抽象过程•对事物不同抽象层次中的对象采用不同的模型进行描述。物理模型第2讲数据模型72.1现实世界客观对象的抽象过程•概念模型(ConceptualModel)–用于信息世界的建模,是对现实世界的第一层抽象,它是按用户的观点来对信息建模。–概念模型通过各种概念来描述现实世界的事物以及事物之间的联系。–是数据库设计人员与用户之间进行交流的工具。第2讲数据模型82.1现实世界客观对象的抽象过程•数据模型(逻辑数据模型LogicalDataModel)–是事物以及事物之间联系的数据描述,是概念模型的数据化。–数据模型是按计算机的观点对数据建模,提供了表示和组织数据的方法。第2讲数据模型92.1现实世界客观对象的抽象过程•物理模型(PhysicalModel)–是对数据最底层的抽象,它描述数据在系统内部的表示方式和存取方法,如数据在磁盘上的存储方式和存取方法。–是面向计算机系统的,由DBMS具体实现。第2讲数据模型102.1现实世界客观对象的抽象过程数据库设计人员数据库设计人员(利用数据库设计工具)第2讲数据模型112.2概念模型•概念模型(ConceptualModel)–概念模型是从现实世界中抽取出对于一个目标应用系统来说最有用的事物、事物特征以及事物之间的联系,通过各种概念精确地加以描述。第2讲数据模型122.2概念模型•概念模型–数据库设计人员进行数据库设计的有力工具。–数据库设计人员与用户之间进行交流的语言。•应具有较强的语义表达能力,能够方便、直接的表达应用中的各种语义知识;•应该简单、清晰,易于用户理解;–概念模型的表示方法很多,最为著名的是实体-联系(EntityRelationship)方法。第2讲数据模型132.2概念模型•概念模型–实体(Entity)•现实世界中客观存在并能相互区分的事物经过加工,抽象成为信息世界的实体。•实体是信息世界的基本单位。可以是具体的,也可以是抽象的。第2讲数据模型14•概念模型–属性(Attribute)•现实世界的事物所具有的特征在概念模型中通过与其对应的实体上反映出来,称之为属性。•是实体所具有的一个特征,用属性名表示。•一个实体可以由若干属性来刻画•属性的相关概念–属性值、属性域–简单属性(原子属性)和复合属性–单值属性和多值属性–存储属性(基本属性)和派生属性(导出属性)。2.2概念模型第2讲数据模型152.2概念模型•概念模型–域(Domain)•属性的取值范围称为该属性的域。–关键字(key,码)•能唯一标识实体的最小属性集。每一个实体集一定有关键字。第2讲数据模型162.2概念模型•概念模型–实体型(EntityType)•用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。–学员(学号,姓名,性别,出生日期,所在系)–实体集(EntitySet)•同一类型实体值的集合称为实体集。–全体学员第2讲数据模型172.2概念模型•概念模型–联系(Relationship)•现实世界中事物彼此的联系在概念模型中反映为实体间的联系。•联系的形式–实体集内的联系–实体集间的联系第2讲数据模型182.2概念模型•概念模型–联系•联系的元数:与一个联系有关的实体的个数。–一元联系、二元联系和多元联系•多种联系:两个实体集中有多个二元联系。•包含联系:两个实体X和Y,若实体X是Y的子类,则称Y包含X,或X包含于Y。第2讲数据模型192.2概念模型•概念模型–联系•两个实体集间的二元联系类型ABABABABABAB(a)1:1(b)1:n(c)m:n第2讲数据模型202.3数据模型•数据模型实现了信息世界向计算机世界的过渡–数据模型应该满足三方面的要求•比较真实地模拟现实世界;•容易为人所理解;•便于在计算机上实现。第2讲数据模型212.3数据模型•数据模型的概念–数据模型是严格定义的一组概念的集合•概念精确地描述了系统的静态特性、动态特性和完整性约束条件。•数据模型的组成要素–数据结构、数据操作和完整性约束第2讲数据模型222.3数据模型•数据模型的组成要素–数据结构•数据结构描述数据库的组成对象以及对象之间的联系。•是所描述的对象类型的集合,是对系统静态特性的描述。•通常按照数据结构的类型来命名数据模型。–层次结构——层次模型–网状结构——网状模型–关系结构——关系模型第2讲数据模型232.3数据模型•数据模型的组成要素–数据操作•是指对数据库中各种对象(型)的实例(值)允许执行的操作及操作规则的集合。•是对系统动态特性的描述。•主要有查询和更新(插入、删除和修改)两大类操作。–数据模型必须定义这些操作的确切含义、操作符号、操作规则(如优先级)以及实现操作的语言。第2讲数据模型242.3数据模型•数据模型的组成要素–数据的完整性约束•是一组完整性规则。•是给定的数据模型中数据及其联系所具有的制约和依存关系,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。–数据模型应该反映和规定本数据模型必须遵守的基本的通用的完整性约束条件,还应该提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。第2讲数据模型252.3数据模型•数据模型的演变是数据库技术发展的一条主线–1968年美国IBM公司推出层次模型的IMS系统。–1969年美国CODASYL组织发布了DBTG报告,提出网状模型。–1970年美国IBM公司的E.F.Codd连续发表论文,提出关系模型。–20世纪80年代以来,面向对象的数据模型得到研究和发展。许多RDBMS厂商推出了其产品的对象-关系版本,或OODBMS原型系统。第2讲数据模型262.3数据模型•数据模型的演变是数据库技术发展的一条主线–层次模型(HierarchicalModel)–网状模型(NetworkModel)–关系模型(RelationalModel)–半结构化数据模型(Semistructured-dataModel)–面向对象模型(ObjectOrientedModel)–对象关系模型(ObjectRelationalModel)第2讲数据模型272.3.1关系模型•层次数据模型–数据库系统中最早出现的数据模型–层次数据模型是按照层次结构的形式来组织数据的•层次数据库的典型代表是1968年美国IBM公司研发的数据库管理系统IMS(InformationManagementSystem)第2讲数据模型282.3.1关系模型•层次数据模型–层次模型用树形结构来表示各类实体以及实体间的联系。第2讲数据模型292.3.1关系模型•层次数据模型–层次模型数据库在内部级是按照有序树结构来组织的,记录之间的联系通过指针来实现。第2讲数据模型302.3.1关系模型•层次数据模型–层次模型数据库在内部级是按照有序树结构来组织的,记录之间的联系通过指针来实现。第2讲数据模型312.3.1关系模型•层次数据模型–数据库的基本操作包括记录的查询、插入、删除和修改等操作。类似于数据结构中对有序树的操作。•对于一个给定的记录值,只有按其路径查看,才能显示出它的全部意义。•由于层次顺序的严格和复杂,引起数据查询和更新操作很复杂,应用程序编写比较复杂。第2讲数据模型322.3.1关系模型•层次数据模型–完整性约束要求除根记录外,其他任何记录必须具有一个父记录。数据逻辑模式及其实例总保持树型结构。•插入一个记录(除根记录外)时,必须与其父记录相联系,如果没有相应的父结点就不能插入它的子女结点值。•删除一个记录时,其所有子女记录也自动被删除。第2讲数据模型332.3.1关系模型•层次数据模型–优点•层次模型的数据结构比较简单;•层次数据库的查询效率高;•因记录间的联系用有向边表示,在DBMS中用指针来实现,路径明确,快速。•层次模型提供了良好的完整性支持。第2讲数据模型342.3.1关系模型•层次数据模型–缺点•由于层次顺序的严格和复杂,引起数据查询和更新操作很复杂,应用程序编写比较复杂。•只能表示1:N的联系,虽然有辅助手段实现M:N联系,但较复杂,用户不易掌握。第2讲数据模型352.3.1关系模型•网状数据模型–采用网状结构作为数据的组织方式。–网状数据库系统的典型代表是DBTG系统,亦称CODESYL系统。•20世纪70年代数据库系统语言研究会(CODASYL)下属的数据库任务组(DBTG)提出的一个系统方案•DBTG系统提出的基本概念、方法和技术具有普遍意义,对于网状数据库系统的研制和发展起了重大的影响。•CullinetSoftware公司的IDMS、Univac公司的DMS1100、Honeywell公司的IDS/2、HP公司的IMAGE等。第2讲数据模型362.3.1关系模型•网状数据模型–网状模型是一种比层次模型更具普遍性的结构•允许一个以上的结点没有双亲结点•一个节点可以有多于一个双亲节点•允许两个节点之间有多种联系第2讲数据模型372.3.1关系模型•网状数据模型–数据库的基本操作包括记录的查询、插入、删除和修改等操作。其操作类似于数据结构中对图的操作。–网状数据模型记录间的联系比较复杂。它没有层次模型那样严格的完整性约束条件。具体的网状数据库系统对数据操纵都加了一些限制,提供了一定的完整性约束。第2讲数据模型382.3.1关系模型•网状数据模型–优点•能够更为直接地描述现实世界,描述实体间多对多的联系;•具有良好的性能,存储效率比较高。第2讲数据模型392.3.1关系模型•网状数据模型的优缺点–缺点•网状模型的数据结构复杂,而且随着应用环境的扩大,数据库的结构会变得越来越复杂,不利于用户使用和掌握。•模型的DDL和DML复杂,嵌入到某一种高级语言中后,用户不容易掌握和使用。–记录之间的联系是通过存取路经实现的,应用程序在访问数据时必须选择适当的存取方法。第2讲数据模型402.3.1关系模型•关系数据模型–是由IBM的E.F.Codd于20世纪70年代初提出的。–自20世纪80年代以来,计算机厂商推出的DBMS几乎都支持关系模型,非关系模型的产品也大都加了关系接口。–现在流行的数据库系统大都是基于关系模型。数据库领域当前的研究工作也都是以关系方法为基础的。第2讲数据模型412.3.1关系模型•关系数据模型–关系数据模型的数据结构建立在集合论中“关系”这个数学概念的基础之上,有着严格的数学基础。–从用户观点来看,每个关系可用一张二维表来描述。–关系既可以表示实体也可以用来描述实体间的联系。第2讲数据模型422.3.1关系模型学号姓名年龄性别98001王丙20男98005李甲21女课程号课程名课时数C601数据库50C602数据结构70C603程序设计80学号课程名成绩98001数据库6298001数据结构7398005程序设计80实体:学生实体:课程联系:选课关系数据库示例第2讲数据模型432.3.1关系模型•关系数据模型–对关系的操作主要是数据查询和更新,关系中的数据操作是集合操作。–关系的操作语言是高度非过程化的语言,用户只要指出干什么而不必详细说明怎么干,用户对关系的操作非常简单。第2讲数据模型442.3.1关系模型•关系数据模型–完整性约束•实体完整性•参照完整性•用户定义的完整性第2讲数据模型452.3.1关系模型•关系模型的优缺点–优点•关系模型的概念单一,实体与实体间的联系均用关系来表示;•建立在严格