《数据库建摸》PPT课件_第1页
《数据库建摸》PPT课件_第2页
《数据库建摸》PPT课件_第3页
《数据库建摸》PPT课件_第4页
《数据库建摸》PPT课件_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、介绍了第二章数据库建模、本章要点、1 .数据库建模的两种基本方法。 使用对象定义语言(ODL )和实体-联系模型(E/R图)2.odl语言定义类的基本方法和格式。 3 .用odl语言联系和反向联系4 .数据库设计的基本原则5 .在odl和E/R图中表示子类的方法6 .密钥代码和引用完整性的基本概念、教育要求、理解:数据库建模的基本原则。 理解:子类的继承性。 理解:主键代码、外键代码、参照完整性。 初步掌握: ODL和E/R图是表示子类的方法。 熟练:用对象定义语言(ODL )创建简单的数据库模型。 熟练:用实体联系模型(E/R图)建立简单的数据库模型。 1、数据库建模的概要,1 .要设计数据

2、库,首先要分析存储在数据库中的信息,这些信息之间有什么样的关联? 也就是说,首先必须确定数据库的结构。 因为数据库的结构也称为数据库模式,所以确定数据库结构的过程也称为数据库建模。的。 2 .数据库模型的两个主要表示,也称为实体联系模型,E/R图的显示符号:以椭圆形表示以矩形框显示实体集的实体集的属性的菱形框和箭头表示实体集之间的连接。 (例)对象定义语言(ODL):ODL是用面向对象的术语说明数据库结构的标准语言。 3、在数据库设计过程中,设计者首先根据用户对数据设计的要求,对数据库结构提出设计构想。 用E/R图或ODL语言表达设计想法。 选择和确定定义和创建数据库的数据库管理系统(DBMS

3、 )。 现在流行的是用关系DBMS或面向对象的DBMS来实现。 此类数据库设计的过程是ODL、构想、想法、关系、E/R图、关系DBMS、面向对象DBMS、2、对象定义语言ODL、对象定义语言(ODL )是用面向对象的术语来说明和定义数据库结构的标准语言,其主要作用是对象数据OODBMS的基本语言一般是c语言。 ODL和c非常相似。 这个转换相当方便。 1 .面向对象的设计、对象是客观存在的各种实体,以一人、一门课程、一本书等为对象。 每个对象都有一个唯一的id (属性),可以与其他对象区分开来。 可以将具有类似特性的几个对象合并到一个类中。 类封装了这些对象的共同属性。 在设计ODL类时,需要

4、描述三个特性。 属性:描述实体集的特性。 那个类型是由基本数据类型构成的。联络(Relationship ) :把实体集合间的对应关系称为联络。 反映了客观世界的事物之间的联系。方法(Method ) :用于处理此类中的对象的函数。 在ODL中方法的使用与在c中使用函数类似。 2 .类的描述(定义),最简单的类的描述是:关键字接口(接口)类名称类的属性表(属性,联系人和方法),接口类的标头类体,3 ODL属性(Java静态接口courseattributeintegercourseno; 属性字符串course name; 属性字符串技术; 例如:学生选项数据库中的每个课程都有三个属性:课程编

5、号、课程名称和老师。 注意:在ODL中,属性的数据类型包括整数、浮点型、字符型、字符串型、布尔型、枚举型、复杂数据类型:数组、集合型、结构等。 例如,在课程类Course中添加了属性开课日CourseData时,该属性必须用什么样的数据类型来定义,开课日必须用年月日表示,而c和ODL没有日期类型的数据类型,所以应该将CourseData定义为结构类型的数据即,attribute Struct Datainteger year、integer Month、integer day CourseData; 又例:另一个简单的学生类:interfactionstudentattributeintege

6、rstudentno; attribute string StudentName; 属性整合器age; 属性字符串深度; 作为另一个例子,电影类的定义与演员类的定义(P19 )、4 ODL中的联系相反,在现实生活中事物间存在着各种各样的联系,实体(对象)的特征不能仅用属性来表现。 还必须描述实体(对象)之间的联系。 例如,教师和学生之间有教育和学的联系教师和教室之间有所属的联系学生和课之间有选修课的联系等我们以学生和课之间的选修课的联系为例,因为一堂课有多个学生的选修课,为了说明这个联系, 在课类的说明中增加学生的集合,需要作为课类和学生类的联系。这样在Course班的定义中,可以用以下句子来

7、说明这种关系: relationship Set students; 其中relationship是关联的关键字,表示student对student的引用,Set表示student引用了student的集合,而不是单一student的对象。 如果在课堂上再追加一个课程代表的话,因为每个学生的课程只有一个课程代表,所以有必要引用单一的student的对象。 在这种情况下,现在可以将relationship Student represent添加到Course类的描述中,以更全面地定义包含属性和联系人的Course类: interfacecorruseationattribute 属性字符串cou

8、rse name; 属性字符串技术; relationship Set students; relationship Student represent; 当然,这个班还没有定义方法。 和班很像。 我们可以向学生班添加班级集合的特性。 因为学生可以分别选择多个班级。 即,interfacestudentattributeintegerstudentno; attribute string StudentName; 属性整合器age; 属性字符串深度; relationship Set Courses; 进一步分析students和Courses发现,如果某个学生出现在某节课的选课学生集合中,这

9、个课应该在这个学生的选课集合中,反之亦然。 在ODL中,该关联用“逆关联”来表示。 Courses是students的逆连接,students也是Courses的逆连接。 该反向连接可以用关键字inverse表示,Courses类和students类的该反向连接可以用以下形式表示: relationshipsetstudentinversestudent 33603366 relationshipsetcoursesinversioncourse :3360 students; 注意:Courses是在另一个类students中定义的,因此,Courses前面有一个类名students,它表示

10、引用指定类的特性,该特性以冒号: 冒号: 冒号: 为双重。 更完整的课程类别可以定义为interforcentercorruseationattributeintegercourseno的attribute string CourseName; 属性字符串技术; relationshipsetstudentsinversestudent :3360 courses; 上课可以写学生班、电影班、演员班的定义。 三、实体联系模型(E/R图)用图形视觉表现建模的方法,用图形表现实体集和实体集之间的联系,1. E/R图的描绘规定,l实体集:实体是实体集的成员,与ODL中的对象类似。 用方框表示实体集,

11、在框内标明实体名。 l属性:与ODL的属性本质上相同。 属性以椭圆形表示,其中注明属性名称,并与实体连接。 l联系:与ODL中的联系本质上相同,E/R图中的联系涉及2个以上的实体集合。 用菱形框表示联系。 画例:例1 :教师和教室的归属关系用E/R图表示的例2 :学生和课程的选择分支关系用E/R图表示。(黑板上的画),Course,Course No,Course Name,Teacher,Student Course,Student,Age,StudentNo,Dept,StudentName,2 .联系三种类型是实际的。 一对一、一对多、多对一的联系:作为a、b两个实体集。 如果a中的每个

12、实体最多连接b中的一个实体,而b中的每个实体最多连接a中的一个实体,那么a对b或b对a被称为1 :1的连接:教室实体集与室主任实体集之间的连接(E/R图) 、一对多联系:作为a、b两个实体集。 如果a中的每个实体与b中的一些实体有关,并且b中的每个实体至少与a中的实体有关,那么a对b可以是1 :多的关系(1:n ),或者b对a可以是多: 1的关系(n:1 )。 例如,教室实体集和学生实体集的关系。 多对多的联系:作为a、b两个实体集。 如果a中的每个实体与b中的多个实体相关,相反,如果b中的每个实体也与a中的多个实体相关,那么a对b或b对a被称为多:多关系(m:n ) :根据课程和学生集的选择

13、关系,有无箭头来区分三种不同的关系从实体集a到实体集b的一对一的连接,画两个箭头,分别指向a和b。 从实体集a到实体集b的多对一的连接描绘出指向b的箭头(指向一方)。 多对多的情况下,两侧没有箭头。 3 .联系中的作用是,如果在一个联系中,一个实体集可能出现两次以上,那么一个实体集出现几次,我们从联系中在该实体集上画几条线? 到实体集合为止的各线表示该实体集合所发挥的作用,我们把该作用标记在连接的侧面。 E/R图中的联系方式,例如:一节课可能有几节先行课。 例如“c程序设计”、“数据结构”等是“数据库原理”的先行课的同一堂课,可能是几节其他课的第一堂课。 例如,“c编程”既是“数据结构”也是“

14、数据库原理”的第一课。 因此,实体集Course和其自身的联系人prelearn是多对多的。E/R图的联系、图:Course、prelearn、Sequel之后,由Origin先修改,联系同时不仅在两个实体集之间,而且有可能涉及三个以上的实体集,构成了多向联系。 4 .联系的多向性,在学生的选课关系中追加实体集Teacher (老师),把Course的属性Teacher替换为与实体集Teacher的联系,像这样,学生选择课程,有Student、Course、Teacher三种是的,StudentCourse,如果一堂课能开设几个老师的话,所有的老师都可以开设几堂课,学生可以在选课的同时选择老师

15、。 指向Teacher的箭头表示,对于特定的学生和课程,教师只有一人对应。 没有指向实体集Student和Course的箭头,意味着某个学生能够选择某个老师开的几门课,某个老师开的一门课也能够由多个学生选择。 在多向联系中,指向一个实体集合e的箭头指示,当从联系该联系的一些其他实体集合中一个一个地检索出一个实体时,该一些实体与e中唯一的实体相关联。 多方向(多元)联系可以更形象地反映现实世界,但从数据库建模的观点来看,用二项联系更方便。 一种解决的方法是用实体集StudentCourse替换多向联系中的联系人StudentCourse,同时增加三个实体集之间的多对一的二维联系。 形成四个实体集

16、之间的联系。 (注意图的切换),转换结果:练习:在工厂的管理系统中,该工厂必须管理的实体是员工、部门、项目、零件、供应商、仓库。在该系统中各实体集团之间有以下联系:一个员工只在一个部门工作,一个部门有多个员工的一个员工可以参加一个以上的项目,为每个项目可以有多个员工参加的每个项目决定负责人,一个人可以负责多个项目一个供应商可以向多个项目供给零件,每个项目可以从不同的供应商购买零件。 每个项目都需要多个零件。 一个零件可以由其他几个零件组装。 一个仓库可以保管多个零件,一个零件可以保管在不同的仓库。 用E/R图说明各实体集之间的联系,四、设计原则、真实性是避免冗馀的合理因素类型这一部分内容学生自学,一.真实性,最基本的设计原则:类(实体集)和属性必须是真实的,必须反映客观的现实。 在设计时,首先正确、全面地分析客观世界,在此基础上进行正确、合理的抽象化。 2 .避免多馀的事。 如果在设计过程中不注意,什么都只表达一次。 否则,容易浪费空间,招致不必要的麻烦。 3 .在设计简单性、数据库的过程中,要想办法不引入太多要素,要尽量简单明了。 4 .合理选择要素类型,将某要素作为属性,还是单独作为类或实体集合? 属性比类/实体集和联系更容易实现。 五、子类和类中具有特殊属性的对象也可以构成子类。 例如,学生班可

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论