第2章_数据库系统结构.

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

2019/12/201第2章数据库系统结构软件工程系刘金岭2019/12/202本章主要内容(1)数据库设计中的数据描述。(2)数据模型的描述。(3)数据库的体系结构。2019/12/203本章的重要概念概念、逻辑和物理设计中的数据描述,数据联系的描述,数据模型的定义,实体间二元联系,ER模型,数据库的体系结构,三级结构,两级映象,两级数据独立性。2019/12/2042.1数据描述概念设计中的数据描述逻辑设计中的数据描述物理存储中的数据描述数据联系的描述2019/12/205概念设计中的数据描述数据库的概念设计是根据用户的需求设计数据库的概念结构。实体(Entity):客观存在、可以相互区别的事物称为实体。实体可以是具体的对象,例如一名男学生,一辆汽车等。也可以是抽象的对象,例如一次借书,一场足球比赛等。实体集(EntitySet)性质相同的同类实体的集合,称为实体集。例如所有的男学生,全国足球锦标赛的所有比赛等。有时,在不引起混淆的情况下也称实体集为实体。属性(Attribute):实体有很多特性,每一个特性称为一个属性。每一个属性有一个值域,其类型可以是整数型、实数型、字符串型等。例如实体学生有属性学号、姓名、年龄、性别等。实体标识符(Identifier):能惟一标识实体的属性或属性集,称为实体标识符。有时也称为关键码(Key),或简称为键。例如学生的学号可以作为学生实体的标识符。2019/12/206逻辑设计中的数据描述数据库的逻辑设计是根据概念设计得到的,逻辑设计中的术语如下:字段(Field):标记实体属性的命名单位称为字段或数据项。它是可以命名的最小信息单位,所以又称为数据元素或数据项。字段的命名往往和属性名相同。例如学生有学号、姓名、年龄、性别等字段。记录(Record):字段的有序集合称为记录。一般用一个记录描述一个实体,所以记录又可以定义为能完整地描述一个实体的字段集。例如一个学生记录,由有序的字段集组成:学号,姓名,年龄,性别。文件(File):同一类记录的集合称为文件。文件是用来描述实体集的。例如所有的学生记录组成了一个学生文件。关键码(Key)能惟一标识文件中每个记录的字段或字段集,称为记录的关键码(简称为键)。2019/12/207概念设计和逻辑设计中两套术语的对应关系概念设计逻辑设计实体属性实体集实体标识符记录字段(或数据项)文件关键码在数据库技术中,每个概念都有类型(Type)和值(Value)之区分。例如“学生”是一个实体类型,而具体的人“张三”、“李四”是实体值。记录也有记录类型和记录值之分。在不会引起误解时,不去仔细区分类型和值,笼统地称“记录”。2019/12/208物理存储中的数据描述数据描述有两种形式:物理描述和逻辑描述。物理数据描述指数据在存储设备上的存储方式的描述,物理数据是实际存放在存储设备上的数据。在数据库系统中,逻辑数据与物理数据之间可以是差别很大的。数据库系统的一个目标是使用户能简单、方便、容易地存取数据,不必关心数据库的存储结构和具体实现方式。2019/12/209数据联系的描述(1)在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体集内部的联系和实体集之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系;实体之间的联系通常是指不同实体集之间的联系。两个实体集之间的联系一对一联系(1:1):如果对于实体集A中的每一个实体,实体集B中有N个实体(N≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1:N。实体集A联系名实体集B112019/12/2010数据联系的描述(2)一对多联系(1:N):如果对于实体集A中的每一个实体,实体集B中有N个实体(N≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1:N。1N实体集A联系名实体集B2019/12/2011数据联系的描述(3)例一对一联系一对多联系2019/12/2012数据联系的描述(4)多对多联系(M:N):如果对于实体集A中的每一个实体,实体集B中有N个实体(N≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有M个实体(M≥0)与之联系,则称实体集A与实体集B具有多对多联系,记为M:N。实体集A联系名实体集BMN一对一联系是一对多联系的特例,而一对多联系又是多对多联系的特例。2019/12/2013数据联系的描述(5)例多对多联系2019/12/2014数据联系的描述(6)实体间的联系若实体E1,E2,…,En之间存在联系,对于实体Ej与(j=1,2,…,i-1,i+1,…,n)中给定实体,最多只和Ei中的一个实体相联系,则说Ei与E1,E2,…,Ej-1,Ej+1,…,En联系是一对多的。对于课程、教师与参考书3个实体,如果一门课程可以有若干个教师讲授,使用若干本参考书,而每一个教师只讲授一门课程,每一本参考书只供一门课程使用,则课程与教师、参考书之间的联系是一对多的。1课程讲授教师参考书MN2019/12/2015数据联系的描述(7)有3个实体:供应商、项目、零件,一个供应商可以供给多个项目多种零件,而每个项目可以使用多个供应商供应的零件,每种零件可由不同供应商供给,由此看出供应商、项目、零件三者之间是多对多的联系。M供应商供应项目零件NP3个实体之间多对多的联系和3个实体两两之间的(共3个)多对多联系的语义是不同的。2019/12/2016数据联系的描述(8)单个实体集内的联系同一个实体集内的各实体之间也可以存在一对一、一对多、多对多的联系。例如,职工实体集内部具有领导与被领导的联系,即某一职工(干部)“领导”若干名职工,而一个职工仅被另外一个职工直接领导,因此这是一对多的联系。单个实体集之间一对多联系示例N1职工领导2019/12/20172.2数据模型数据模型的定义实体联系模型层次模型网状模型关系模型面向对象模型能表示实体类型及实体间联系的模型称为“数据模型”。2019/12/2018数据模型的定义数据模型的种类很多,目前被广泛使用的可分为两种类型。一种是独立于计算机系统的数据模型,完全不涉及信息在计算机中的表示,只是用来描述某个特定组织所关心的信息结构,这类模型称为“概念数据模型”;另一种数据模型是直接面向数据库的逻辑结构,它是对现实世界的第二层抽象。这类模型直接与DBMS有关,称为“逻辑数据模型”,简称“逻辑模型”。现实世界认识抽象概念模型逻辑模型信息世界机器世界现实世界中客观对象的抽象过程2019/12/2019实体联系模型(1)ER(实体─联系方法)图提供了表示实体型、属性和联系的方法:实体型:用矩形表示,矩形框内写明实体名。属性:用椭圆形表示,并用无向边将其与相应的实体型连接起来。例如,学生实体具有学号、姓名、性别、出生年份、系、入学时间等属性,用ER图表示如图所示。学生学号姓名性别系出生年份入学时间2019/12/2020实体联系模型(2)联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型(1:1,1:N或M:N)。需要注意的是,如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来,如右图。M供应商供应项目零件NP供应量联系的属性表示2019/12/2021实体联系模型(3)现以学校的教学情况为例来建立ER图。教学情况可由学生、课程、教师、学习、任课等组成。学生对课程是多对多联系:一个学生可以学多门课程,而一门课程又有多个学生学习;教师对课程是一对多联系:一个教师可以讲授多门课程,但一门课程至多只能由一个教师任教(当一门课程分别在不同的班开课时,可看做几门课程,它们的课程名可以相同,但课程号不能相同,用以区别,这样就可以满足一对多的假设)。学号姓名性别年龄学生课程教师学习任课学号课程号成绩课程号课程名课时数课程号姓名姓名性别年龄MNN1一般在划ER图时这两个属性要去掉!一般在划ER图时这两个属性要去掉!2019/12/2022层次模型(1)层次数据模型的数据结构在数据库中定义满足下面两个条件的基本层次联系的集合为层次模型。有且只有一个结点没有双亲结点,这个结点称为根结点;根以外的其他结点有且只有一个双亲结点。每个记录类型可包含若干个字段。这里,记录类型描述的是实体,字段描述实体的属性。各个记录类型及其字段都必须命名。各个记录类型、同一记录类型中各个字段不能同名。每个记录类型可以定义一个排序字段,也称为码字段,如果定义该排序字段的值是唯一的,则它能唯一地标识一个记录值。R1R2R3R4R5根节点叶节点叶节点叶节点兄弟节点兄弟节点树形结构图2019/12/2023层次模型(2)层次模型的优点主要有:⑴层次模型的数据结构比较简单清晰。⑵层次数据库的查询效率高。因为层次模型中记录之间的联系用有向边表示,这种联系在DBMS中常常用指针来实现。因此这种联系也就是记录之间的存取路径。当要存取某个结点的记录值,DBMS就沿着这一条路径很快找到该记录值,所以,层次数据库的查询性能优于关系数据库,不低于网状数据库。⑶层次数据模型提供了良好的完整性支持。2019/12/2024层次模型(3)层次模型的缺点主要有⑴现实世界中很多联系是非层次型的,如结点之间具有多对多联系。⑵一个结点具有多个双亲等,层次模型表示这类联系的方法很笨拙,只能通过引入冗余数据(易产生不一致性)或创建非自然的数据结构(引入虚拟结点)来解决。对插入和删除操作的限制比较多,因此应用程序的编写比较复杂。⑶查询子女结点必须通过双亲结点。⑷由于结构严密,层次命令趋于程序化。2019/12/2025网状模型(1)网状数据模型的数据结构在数据库中,把满足以下两个条件的基本层次联系集合称为网状模型:允许一个以上的结点无双亲;一个结点可以有多于一个的双亲。网状数据模型的优点:⑴能够更为直接地描述现实世界,如一个结点可以有多个双亲。结点之间可以有多种联系。⑵具有良好的性能,存取效率较高。2019/12/2026网状模型(2)网状数据模型的缺点主要有:⑴结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握。⑵网状模型的DDL、DML复杂,并且要嵌入某一种高级语言(如COBOL、C)中。因此用户不易掌握和使用。⑶由于记录之间的联系是通过存取路径实现的,应用程序在访问数据时必须选择适当的存取路径,因此,用户必须了解系统结构的细节。这样就加重了编写应用程序的负担。2019/12/2027关系模型(1)关系数据模型的数据结构从用户观点看,关系模型由一组关系组成。每个关系的数据结构是一张规范化的二维表。学号姓名年龄性别系名年级200912004王小明19女计算机系2009200912006黄大鹏20男数学系2009200912008张文斌18女经管系2009………………2019/12/2028关系模型(2)关系(Relation):一个关系对应通常说的一张表,如表2.2中的这张学生登记表。元组(Tuple)表中的一行即为一个元组。属性(Attribute):表中的一列即为一个属性,给每一个属性起一个名称即属性名。如这张表有6列,对应6个属性:学号,姓名,年龄,性别,系名和年级。码(Key):也称为码键。表中的某个属性组,它可以惟一确定一个元组,如表2.2中的学号,可以惟一确定一个学生,也就成为本关系的码。域(Domain):属性的取值范围,如人的年龄一般在1~150岁之间,大学生年龄属性的域是(14~38),性别的域是(男,女),系名的域是一个学校所有系名的集合。分量元组中的一个属性值。关系模式:对关系的描述,一般表示为关系名(属性l,属性2,…,属性n)2019/12/2029关系模型(3)关系术语一般表格术语关系名关系模式关系元组属性属性名属性值分量非规范关系表名表头(表格的描述)(一张)二维表记录或行列列名列值一条

1 / 39
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功