《第2章数据库建模.ppt》由会员分享,可在线阅读,更多相关《第2章数据库建模.ppt(34页珍藏版)》请在三一文库上搜索。
1、2019/8/24,1,数据库系统基础教程,主讲教师:王庆鹏,2019/8/24,2,第二章 数据库建模,ODL介绍 实体联系图 设计原则 子类 对约束的建模 弱实体集 历史上有影响的模型,2019/8/24,3,数据库设计步骤,2019/8/24,4,数据库建模和实现的过程,两种设计表示法:实体联系模型(E/R)、ODL 通常的设计过程: 想法(分析认识)建模(ODL/ER)转化为关系模型(因为常用、市场化程度高)关系DBMS 其中:机械化和自动化实现模型到具体数据库的转换,2019/8/24,5,ODL介绍,面向对象的设计 接口说明 ODL属性 ODL中的联系 反向联系 联系的多重性 OD
2、L中的类型,2019/8/24,6,ODL,ODL 对象定义语言,是面向对象的术语,说明数据库结构的标准语言,是IDL(接口定义语言)的扩展,是CORBA的一个组件 主要用途:书写面向对象数据库的设计 面向对象:类和对象 对象:面向对象其实是现实世界模型的自然延伸。现实世界中任何实体都可以看作是对象。对象之间通过消息相互作用。,2019/8/24,7,面向对象的设计,对象化世界:把准备模型化的世界看成对象组成的,对象是某种可观察的实体。 对象举例:张三、数据库课程、深圳大学 类:具有相似特性的对象。学生、大学等 类和对象:学生 和 张三, 富翁和比尔盖茨 说明一个ODL类的设计必须描述的特征:
3、 属性:特性。一般由基本数据类型构成 联系:和其他对象的关系 方法:能用于该类对象的函数。(以后强调),2019/8/24,8,接口说明,1、类的说明(也就是接口说明)三要素: 关键字interface 接口的名字(也就是类名) 特性表(用花括号括起来,包括属性、联系和方法) 2、例子: interface 学生 attribute string name; ; 属性后面用分号作为分隔符,2019/8/24,9,ODL中的属性,属性:对象有很多特性,每一个特性称为属性。每一个属性有一个值域,其类型可以是整数型、实数型、字符串型等。例如:人的名字,字符串型。 例子 interface 学生 at
4、tribute string 姓名; attribute integer 年龄; attribute string 专业; ; 对象(“黎莉莉”,22,“电子商务”),2019/8/24,10,ODL中的联系,与同类或者其他类的对象连接的方式 relationship 例如:影星和电影,是两个对象 电影中影星云集的多值联系 Interface 电影 . relationship Set stars; .; 蓝色的是关键字,Star 是类型名,stars是联系名。 电影中只有一个影星的单值联系 Interface 电影 . relationship Star starOf; .;蓝色的是关键字,
5、Star 是类型名,starOf是联系名。,2019/8/24,11,反向联系,影星主演的所有电影 Interface star . relationship Set starredIn inverse Movie:stars; .; 关键字inverse 和另一个联系的名字放在每个联系的说明中来表示两个联系中的关联机制。如果另一个联系在其他某个类中,那么通过类名、双冒号和联系名来引用这个联系。,2019/8/24,12,联系的多重性,联系及其反向联系的唯一性要求称为联系的多重性。 三种常见的多重性:多对多、多对一、一对一。,多对多,多对一,一对一,2019/8/24,13,ODL中的类型,为
6、类的属性等描述提供类型 两类:基本类型和复杂类型 基本类型包括原子类型和接口类型 原子类型:整型、浮点型、字符型、枚举型等 接口类型:也就是结构类型,是属性和接口的联系所对应的各种分量组成。 结构类型:集合、包、列表、数组、结构 聚集类型:集合、包、列表、数组的统称。 规则1:属性类型首先是由原子类型或者域是原子类型的结构组成。 规则2:联系的类型是接口类型或者是应用于接口类型的聚集类型。 推论:属性的类型不能是接口类型,联系的类型不能是原子类型。 属性类型仅有的四种可能性:原子类型、原子类型组成的结构、原子类型的聚集、原子类型组成的结构的聚集,2019/8/24,14,2.2 实体联系图,E
7、R图三个主要部分:实体集、属性、联系 实体集实体 类 对象 一个典型的实体联系图(课本30页) ER联系的多重性:箭头表示 联系的多向性:菱形连线 联系中的角色:实体集和联系之间的连线 联系中的属性:有时可以把属性和联系相连,2019/8/24,15,概念设计中的数据描述,实体(entity):客观存在,可以相互区别的事物称为实体。 实体集(entity set):性质相同的同类实体的集合,称为实体集。 属性(attribute):实体有很多特性,每一个特性称为属性。每一个属性有一个值域,其类型可以是整数型、实数型、字符串型等。 实体标识符(identifier):能惟一标识实体的属性或属性集
8、,称为实体标识符。有时也称为关键码(key),或简称为键。,2019/8/24,16,数据联系的描述(一),定义 联系(relationship)是实体之间的相互关系。与一个联系有关的实体集个数,称为联系的元数。 定义 二元联系有以下三种类型(联系的多重性): 一对一联系:如果实体集E1中每个实体至多和实体集E2中的一个实体有联系,反之亦然,那么实体集E1和E2的联系称为“一对一联系”,记为“1:1”。 一对多联系:如果实体集E1中每个实体可以与实体集E2中任意个(零个或多个)实体间有联系,而E2中每个实体至多和E1中一个实体有联系,那么称E1对E2的联系是“一对多联系”,记为“1:N”。 多
9、对多联系:如果实体集E1中每个实体可以与实体集E2中任意个(零个或多个)实体有联系,反之亦然,那么称E1和E2的联系是“多对多联系”,记为“M:N”。,2019/8/24,17,一对一联系,一对一联系:如果实体集E1中每个实体至多和实体集E2中的一个实体有联系,反之亦然,那么实体集E1和E2的联系称为“一对一联系”,记为“1:1”。,2019/8/24,18,一对多,一对多联系:如果实体集E1中每个实体可以与实体集E2中任意个(零个或多个)实体间有联系,而E2中每个实体至多和E1中一个实体有联系,那么称E1对E2的联系是“一对多联系”,记为“1:N”。,2019/8/24,19,多对多联系,多
10、对多联系:如果实体集E1中每个实体可以与实体集E2中任意个(零个或多个)实体有联系,反之亦然,那么称E1和E2的联系是“多对多联系”,记为“M:N”。,2019/8/24,20,实体联系模型(一),定义 ER图有三个基本成分: 矩形框,用于表示实体类型(考虑问题的对象)。 菱形框,用于表示联系类型(实体间联系)。 椭圆形框,用于表示实体类型和联系类型的属性。,2019/8/24,21,实体联系多重性,箭头表示ER多重性 如果一个联系是从E到F的多对一联系,就画一个指向F的箭头(就是说:指向一) 一对一联系,丈夫,妻子,婚嫁,2019/8/24,22,联系的多向性,E/R图的多向联系通过从菱形的
11、联系到所涉及的每个实体集之间的连线来表示。 在多向联系中,指向实体集E的箭头意味着如果我们从该联系的每个其他实体集中选择一个实体,那么这些实体将和E中唯一的实体相关。,2019/8/24,23,角色,在一个联系中,一个实体集可能出现两次或者多次。如果是这样,那么一个实体集在联系中出现多少次我们就从这个实体集画多少条线。到实体集的每条线代表该实体集所扮演的不同角色,我们把名字标记在实体集和联系之间连线的侧面,称它为”角色”,2019/8/24,24,实体联系模型(二),例:为仓库管理设计一个E-R模型。仓库主要管理零件的采购和供应等事项。 首先确定实体类型。本问题有三个实体类型:零件PART,工
12、程项目PROJECT,零件供应商SUPPLIER。 确定联系类型。PROJECT和PART之间是M:N联系,PART和SUPPLIER之间也是M:N联系,分别命名为P_P和P_S. 把实体类型和联系类型组合成ER图。 确定实体类型和联系类型的属性。 确定实体类型的键,在ER图中属于码的属性名下画一条横线。,2019/8/24,25,实体联系模型(三),图,2019/8/24,26,实体联系模型(四),例,2019/8/24,27,数据库设计原则,真实性:忠于规范,反映事实 避免冗余:只表达一次 简单性:避免过度设计,不引入过多元素 合适的元素类型:属性?类/实体集?取决于信息的复杂程度,201
13、9/8/24,28,子类,ODL中的子类:冒号加其他类列表 ODL中的多重继承 E/R中的子类:三角形,ISA E/R 中的继承,2019/8/24,29,对约束的建模,约束的粗略分类(五类): 键码:唯一标示 单值约束:角色的值唯一 参照完整性约束:对象引用的值在库中存在 域的约束:属性值取自特定域 一般约束:任意断言(其他约束) 键码 单值约束 参照完整性约束 E/R中的参照完整性 其他约束,2019/8/24,30,弱实体集,定义:组成一个实体集键码的属性中的一些或者全部属于另一个实体集,这样的实体集称为弱实体集 来源(2个): 实体集属于一种层次结构:电影组和其所属的制片公司 连接实体
14、集:没有自己的属性 弱实体集的表示法:双边矩形、双边菱形,2019/8/24,31,其他模型,网状模型 层次模型,2019/8/24,32,1.4.3 层次模型,用树型(层次)结构表示实体类型及实体间联系的数据模型称为层次模型(hierarchical model)。 层次模型的特点是:记录之间的联系通过指针来实现,查询效率较高。 与文件系统的数据管理方式相比,层次模型是一个飞跃,用户和设计者面对的是逻辑数据而不是物理数据,用户不必花费大量的精力考虑数据的物理细节。逻辑数据与物理数据之间的转换由DBMS完成。 层次模型有两个缺点: 一是只能表示1:N联系,虽然系统有多种辅助手段实现M:N联系但
15、较复杂,用户不易掌握; 二是由于层次顺序的严格和复杂,引起数据的查询和更新操作很复杂,因此应用程序的编写也比较复杂。,2019/8/24,33,1.4.4 网状模型,用有向图结构表示实体类型及实体间联系的数据模型称为网状模型(network model)。 网状模型的特点是:记录之间联系通过指针实现,M:N联系也容易实现(一个M:N联系可拆成两个1:N联系),查询效率较高。 网状模型的缺点是:数据结构复杂和编程复杂。,2019/8/24,34,小 结,关系数据库系统是目前使用最广泛的数据库系统,本书的重点也是讨论关系数据库系统。 本章系统地介绍了关系数据库的一些基本概念,其中包括关系模型的数据结构、关系的完整性及其关系操作。 结合实例详细介绍了关系代数和关系演算两种关系运算,讲解了关系代数、元组关系演算语言(ALPHA、QUEL)和域关系演算语言(QBE)的具体使用方法。 这些概念及方法对理解本书的内容非常重要。,
链接地址:https://www.31doc.com/p-3424201.html