




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库系统数据库系统原理与实践原理与实践第第6 6章章 数据库设计数据库设计数据库设计概述数据库设计概述1需求分析需求分析22概念模型设计概念模型设计3关系模型设计关系模型设计456存储结构设计存储结构设计数据库的实现和维护数据库的实现和维护6.1 6.1 数据库设计概述数据库设计概述v数据库设计是指根据特定的应用,构造正数据库设计是指根据特定的应用,构造正确的数据库模式,并在该模式基础上,构确的数据库模式,并在该模式基础上,构建数据库及其应用系统,使之能够实现对建数据库及其应用系统,使之能够实现对数据的有效存储和访问,以满足用户的应数据的有效存储和访问,以满足用户的应用用需求需求。v数据库数
2、据库设计的主要步骤包括需求分析,概设计的主要步骤包括需求分析,概念模型设计,关系模型设计,存储结构设念模型设计,关系模型设计,存储结构设计,数据库的实现和维护五个阶段。计,数据库的实现和维护五个阶段。36.1 6.1 数据库设计概述数据库设计概述v数据库设计的任务和特点数据库设计的任务和特点 广义定义广义定义 指建立数据库及其应用系统,包括选择合适的计算指建立数据库及其应用系统,包括选择合适的计算机平台和数据库管理系统、设计数据库、以及开发机平台和数据库管理系统、设计数据库、以及开发数据库应用系统等数据库应用系统等内容内容 其成果有二:一是数据库,二是以数据库为基础的其成果有二:一是数据库,二
3、是以数据库为基础的应用系统应用系统。 狭义定义狭义定义 指根据一个组织的信息需求、处理需求和数据库管指根据一个组织的信息需求、处理需求和数据库管理系统,设计出数据库,包括概念模型、关系模型理系统,设计出数据库,包括概念模型、关系模型和存储和存储结构结构 其成果主要是数据库,不包括应用其成果主要是数据库,不包括应用系统系统46.1 6.1 数据库设计概述数据库设计概述v评判评判数据库设计数据库设计主要准则:主要准则: 完备性完备性 数据库应能表示应用领域所需的所有信息,满足数据存数据库应能表示应用领域所需的所有信息,满足数据存储需求,满足信息需求和处理需求,同时数据是可用的、储需求,满足信息需求
4、和处理需求,同时数据是可用的、准确的、安全准确的、安全的的 一致性一致性 数据库中的信息是一致的,没有语义冲突和值数据库中的信息是一致的,没有语义冲突和值冲突冲突 高效性高效性 数据库应该规范化和高效率,易于各种操作,满足用户数据库应该规范化和高效率,易于各种操作,满足用户的的性能需求性能需求 易维护易维护 需要维护时,改动比较少而且方便,扩充性好,不影响需要维护时,改动比较少而且方便,扩充性好,不影响数据库的完备性和一致性,也不影响数据库性能数据库的完备性和一致性,也不影响数据库性能。56.1 6.1 数据库设计概述数据库设计概述v数据库设计特点数据库设计特点 “三分技术,七分管理三分技术,
5、七分管理” 数据库设计是将应用需求转化为在相应硬件、软件数据库设计是将应用需求转化为在相应硬件、软件环境中的实现,在整个过程中,良好的管理是数据环境中的实现,在整个过程中,良好的管理是数据库设计的库设计的基础基础 与应用系统设计相与应用系统设计相结合结合,满足满足应用应用系统需求系统需求 与具体应用环境相关联与具体应用环境相关联 脱离实际的应用环境,空谈数据库设计,无法判定脱离实际的应用环境,空谈数据库设计,无法判定设计的质量设计的质量66.1 6.1 数据库设计概述数据库设计概述v数据库设计的方法和步骤数据库设计的方法和步骤76.1 6.1 数据库设计概述数据库设计概述v数据库设计的方法和步
6、骤数据库设计的方法和步骤 需求分析需求分析 准确收集用户信息需求和处理需求,并对收集的结果进行整理和准确收集用户信息需求和处理需求,并对收集的结果进行整理和分析,形成需求文档。分析,形成需求文档。 需求分析是整个设计活动的基础需求分析是整个设计活动的基础 概念模型设计概念模型设计 对用户需求进行综合、归纳、抽象,形成对用户需求进行综合、归纳、抽象,形成ERER模型模型 关系模型设计关系模型设计 将将ERER模型转化为关系数据库所支持的关系模型,建立关系模式,模型转化为关系数据库所支持的关系模型,建立关系模式,并对其进行优化(规范化),同时为各种用户和应用设计外模式并对其进行优化(规范化),同时
7、为各种用户和应用设计外模式 存储结构设计存储结构设计 选择物理存储结构,建立数据库物理模式选择物理存储结构,建立数据库物理模式( (内模式内模式) ) 实现和维护实现和维护 建立建立数据库模式,将实际数据载入数据库,建立真正的数据库模式,将实际数据载入数据库,建立真正的数据库数据库;在数据库上建立应用系统,在数据库上建立应用系统,并测试并测试、试、试运行运行 维护阶段是对运行中的数据库进行评价、调整和维护阶段是对运行中的数据库进行评价、调整和修改修改86.2 6.2 需求分析需求分析v需求分析是收集、分析用户的需求,是数需求分析是收集、分析用户的需求,是数据库设计过程的起点,也是后续步骤的基据
8、库设计过程的起点,也是后续步骤的基础础v需求分析需求分析 需求分析的任务需求分析的任务 需求收集需求收集 需求分析需求分析 需求分析的结果需求分析的结果96.2 6.2 需求分析需求分析v需求分析的任务是通过详细调查,获取原有需求分析的任务是通过详细调查,获取原有手工系统的工作过程和业务处理,明确用户手工系统的工作过程和业务处理,明确用户的各种需求,确定新系统的的各种需求,确定新系统的功能功能v用户需求主要有以下几个用户需求主要有以下几个方面方面: 信息需求信息需求 指用户从数据库中需要得到的信息,这些信息的性质,指用户从数据库中需要得到的信息,这些信息的性质,信息的来源等信息的来源等 功能需
9、求功能需求 指用户需要进行的处理,包括处理的对象,处理的方法指用户需要进行的处理,包括处理的对象,处理的方法和规则,处理的特殊和规则,处理的特殊要求要求 性能需求性能需求 指用户对新系统性能的要求,如系统的响应时间、系统指用户对新系统性能的要求,如系统的响应时间、系统的容量,以及一些其它的容量,以及一些其它属性属性106.2 6.2 需求分析需求分析v需求收集的主要途径是用户调查,用户调查需求收集的主要途径是用户调查,用户调查就是和用户交流,了解需求,与用户达成共就是和用户交流,了解需求,与用户达成共识,然后分析和表达识,然后分析和表达用户需求用户需求v用户调查的具体内容有用户调查的具体内容有
10、: : 调查组织机构调查组织机构情况情况 了解部门的组成情况、各个部门的职能和职责等,画出了解部门的组成情况、各个部门的职能和职责等,画出组织机构图组织机构图 调查各个部门的业务活动调查各个部门的业务活动情况情况 明确新系统的明确新系统的要求要求 确定系统的确定系统的边界边界 对调查结构进行初步的分析,确定哪些功能由计算机完对调查结构进行初步的分析,确定哪些功能由计算机完成或将来由计算机完成,哪些功能由手工成或将来由计算机完成,哪些功能由手工完成完成116.2 6.2 需求分析需求分析v结构化分析方法结构化分析方法 自顶向下、逐层自顶向下、逐层分解分解 采用数据流图对用户需求进行采用数据流图对
11、用户需求进行分析分析 用数据字典和加工说明对数据流图进行补充和用数据字典和加工说明对数据流图进行补充和说明说明126.2 6.2 需求分析需求分析v数据流图(数据流图(Data Flow DiagramData Flow Diagram,DFDDFD) 数据流数据流 用箭头表示,箭头方向表示数据流向,箭头上标明数据用箭头表示,箭头方向表示数据流向,箭头上标明数据流的流的名称名称 数据流由数据项数据流由数据项组成组成 数据存储数据存储 用双划线表示,并标明数据存储的用双划线表示,并标明数据存储的名称名称 用来保存数据流,可以是暂时的,也可以是永久用来保存数据流,可以是暂时的,也可以是永久的的 加
12、工加工 用圆角矩形表示,并在其内标明加工用圆角矩形表示,并在其内标明加工名称名称 数据的源点和终点数据的源点和终点 用方框用方框表示表示 表示数据的来源和去处,代表系统外部的表示数据的来源和去处,代表系统外部的数据数据136.2 6.2 需求分析需求分析14 (1) 数据流图 (2) 分层数据流图 图6.2 图书借阅管理系统的分层数据流图图6.3 图书维护分层数据流6.2 6.2 需求分析需求分析v数据项数据项卡片卡片 对数据流图中数据流的对数据流图中数据流的数据项的进一步说明,数据项的进一步说明,主要包括名称、描述、主要包括名称、描述、别名、类型、备注别名、类型、备注等等15v数据数据存储存
13、储卡片卡片 是数据流中数据存储的地方,也是数据流中数据存储的地方,也是数据流的来源和去向之一。对是数据流的来源和去向之一。对数据存储的描述主要有:存储名数据存储的描述主要有:存储名称、描述、别名、组成等称、描述、别名、组成等6.2 6.2 需求分析需求分析v加工说明加工说明 可以采用可以采用IPOIPO图图( (输入输入/ /处理处理/ /输出图的简称输出图的简称) )、结构化语言、判定表、判定树作为加工说明的结构化语言、判定表、判定树作为加工说明的工具工具16图6.6 插入图书的IPO图6.2 6.2 需求分析需求分析v需求分析的结果需求分析的结果 需求规格说明(需求规格说明(Softwar
14、e Requirement Software Requirement SpecificationSpecification简称简称SRSSRS) 具有正确性、无歧义性、完整性、一致性、可理解具有正确性、无歧义性、完整性、一致性、可理解性、可修改性、可追踪性和注释等性、可修改性、可追踪性和注释等形式化方法形式化方法 采用完全精确的语义和语法,无歧义采用完全精确的语义和语法,无歧义 不易产生错误理解不易产生错误理解,容易验证容易验证非非形式化方法形式化方法 一般采用自然语言来描述,可以使用图标和其它符号一般采用自然语言来描述,可以使用图标和其它符号帮助说明帮助说明 说明编写容易说明编写容易176.
15、3 6.3 概念模型设计概念模型设计v实体联系模型实体联系模型(Entity Relationship (Entity Relationship Approach Approach 简称简称ERER模型模型) )是被广泛采用的概是被广泛采用的概念模型设计念模型设计方法方法vERER模型有三个主要元素模型有三个主要元素类型类型 实体集实体集 属性属性 联系联系186.3 6.3 概念模型设计概念模型设计v实体集实体集 实体实体 (Entity) (Entity) 是某个抽象事物,相似实体的是某个抽象事物,相似实体的集合形成实体集集合形成实体集 (Entity Set(Entity Set) )
16、实体集中的每个实体都可以唯一标识;任意两实体集中的每个实体都可以唯一标识;任意两个实体集之间都是互斥个实体集之间都是互斥的的 在在ERER图中,实体集用方框表示,方框内注明实图中,实体集用方框表示,方框内注明实体的名称体的名称196.3 6.3 概念模型设计概念模型设计v属性属性 指实体集所具有的性质,通常一个实体集由若指实体集所具有的性质,通常一个实体集由若干个属性来刻画干个属性来刻画 例如:实体集例如:实体集“学生学生”具有学号、姓名、性别、年具有学号、姓名、性别、年龄、院系、年级等龄、院系、年级等属性属性 在一个实体集中,每个实体都有用来唯一标识在一个实体集中,每个实体都有用来唯一标识它
17、的一个或多个属性,这些属性称为实体集的它的一个或多个属性,这些属性称为实体集的标识符标识符 (Identifier) (Identifier) 例如:由于每个学生都对应一个唯一的学号,所以例如:由于每个学生都对应一个唯一的学号,所以学号就是实体集学号就是实体集“学生学生”的的标识符标识符 在在ERER图中,属性用椭圆型框表示,实体集标识图中,属性用椭圆型框表示,实体集标识符的属性或者属性组加下划线表示符的属性或者属性组加下划线表示206.3 6.3 概念模型设计概念模型设计v联系联系 表示一个或者多个实体集之间的关联关系表示一个或者多个实体集之间的关联关系 例如:例如:“学生借书学生借书”是实
18、体集是实体集“学生学生”和和“图书图书”之间的联系;之间的联系;“学生在教室听老师讲课学生在教室听老师讲课”是是“学学生生”、“教室教室”、“老师老师”和和“课程课程”这四个实体这四个实体集之间的联系;集之间的联系;“学生之间有交往联系学生之间有交往联系”是实体集是实体集“学生学生”之间的联系。之间的联系。 联系也会有属性,用于描述联系的联系也会有属性,用于描述联系的特征特征,但是但是联系本身没有标识符联系本身没有标识符 例如学生借书的时间、归还的时间等例如学生借书的时间、归还的时间等 在在ERER图中,联系用菱形表示,并用线段将其与图中,联系用菱形表示,并用线段将其与相关的实体集连接相关的实
19、体集连接起来起来216.3 6.3 概念模型设计概念模型设计v例例6.1 6.1 图图6.76.7是一个图书管理数据库的是一个图书管理数据库的ERER图,图,数据库中包括图书、作者和读者三个实体数据库中包括图书、作者和读者三个实体集,其中图书实体集有四个属性:书名、集,其中图书实体集有四个属性:书名、出版年、页数和单价;读者实体集有两个出版年、页数和单价;读者实体集有两个属性:姓名和地址;作者实体集有三个属属性:姓名和地址;作者实体集有三个属性:姓名、地址和邮箱。另外图中还有两性:姓名、地址和邮箱。另外图中还有两个联系:其一是图书和读者之间的借阅联个联系:其一是图书和读者之间的借阅联系,它有一
20、个属性借阅日期;其二是作者系,它有一个属性借阅日期;其二是作者和图书之间的写作联系。和图书之间的写作联系。226.3 6.3 概念模型设计概念模型设计23图6.7 图书管理数据库的ER图6.3 6.3 概念模型设计概念模型设计v二元联系二元联系 一对一联系一对一联系 (one-one) (one-one) 若对于实体集若对于实体集A A中的每一个实体,实体集中的每一个实体,实体集B B中至多有一个实体与之中至多有一个实体与之联系,反之亦然,则称实体集联系,反之亦然,则称实体集A A与与B B之间是一对一的联系,简写为之间是一对一的联系,简写为1 11 1联系联系 可用指向可用指向A A、B B
21、都带有箭头的线段表示都带有箭头的线段表示 一对多联系一对多联系 (one-many) (one-many) 若对于实体集若对于实体集A A中的每一个实体,实体集中的每一个实体,实体集B B有有n n ( (n n0) 0) 个实体与个实体与之联系。反之,对实体集之联系。反之,对实体集B B中的每一个实体,实体集中的每一个实体,实体集A A中至多有一中至多有一个实体与之联系,则称实体集个实体与之联系,则称实体集A A与与B B之间是一对多的关系,简写为之间是一对多的关系,简写为1 1N N联系联系 若若从从实体集实体集A A到到B B是多对一联系,就把箭头指向是多对一联系,就把箭头指向B B 多
22、对多关系多对多关系 (many-many) (many-many) 对实体集对实体集A A中的每一个实体,实体集中的每一个实体,实体集B B中有中有n n ( (n n0)0)个实体与之联个实体与之联系。反之对实体集系。反之对实体集B B中的每一个实体,实体集中的每一个实体,实体集A A中有中有m m ( (m m0) 0) 个个实例与之联系,则称实体集实例与之联系,则称实体集A A与实体与实体B B之间存在多对多的关系,简之间存在多对多的关系,简写为写为M MN N联系联系 指向指向A A和和B B的线段都无的线段都无箭头箭头246.3 6.3 概念模型设计概念模型设计v实体集的键实体集的键
23、 唯一标识实体的属性集称为唯一标识实体的属性集称为键键 键可以由多个属性键可以由多个属性组成组成 一个实体集可以有多个键。但是,习惯上只选一个实体集可以有多个键。但是,习惯上只选择一个作为择一个作为“主键主键”。在。在ERER图中,图中,“主键主键”中中含有的属性通常用下划线标识,等同于实体集含有的属性通常用下划线标识,等同于实体集的标识符的标识符256.3 6.3 概念模型设计概念模型设计v在某些情况下,某个实体集可能无法找到在某些情况下,某个实体集可能无法找到键,它的键是依据另一个实体集的部分属键,它的键是依据另一个实体集的部分属性与自身的某些属性联合起来方可起到键性与自身的某些属性联合起
24、来方可起到键的作用,这样的实体集叫做弱实体集的作用,这样的实体集叫做弱实体集(weak entity setweak entity set)v弱实体集弱实体集 在在ERER图中,图中,显示显示为双边的为双边的矩形矩形 键键组成组成(假设实体集(假设实体集E E为弱实体集):为弱实体集): E E中带下划线的属性(如果有的话中带下划线的属性(如果有的话) E E被双边的多对一联系指向的实体集的键被双边的多对一联系指向的实体集的键属性属性266.3 6.3 概念模型设计概念模型设计v例例6.3 6.3 一一个学校拥有多个教学楼,每个教学楼个学校拥有多个教学楼,每个教学楼具有一个唯一编号,例如第一教
25、学楼、第二教学具有一个唯一编号,例如第一教学楼、第二教学楼等等。可是,其他学校也可能用相同的编号,楼等等。可是,其他学校也可能用相同的编号,于是编号属性不能成为教学楼实体的键。为了唯于是编号属性不能成为教学楼实体的键。为了唯一地标识某个教学楼,需要同时给出它所属的学一地标识某个教学楼,需要同时给出它所属的学校名称和它本身的编号校名称和它本身的编号27图6.8 弱实体集教学楼和它的连接图图6.86.8显示了这种情况。显示了这种情况。弱实体集教学楼的键弱实体集教学楼的键是它自己的编号属性是它自己的编号属性和学校的名称属性,和学校的名称属性,教学楼和学校通过多教学楼和学校通过多对一联系属于相对一联系
26、属于相连接连接6.3 6.3 概念模型设计概念模型设计v实体集中可能包含一些子集,子集中的实实体集中可能包含一些子集,子集中的实体拥有集合中其他实体成员没有的特殊属体拥有集合中其他实体成员没有的特殊属性,在这种情形下,我们可以定义该实体性,在这种情形下,我们可以定义该实体集为超类,而将该子集定义为一个子集为超类,而将该子集定义为一个子类类vERER图中表示图中表示 超类和子类之间用一个被称为超类和子类之间用一个被称为ISAISA的联系进行的联系进行连接连接 每个每个ISAISA联系用三角形表示联系用三角形表示286.3 6.3 概念模型设计概念模型设计v例如:在图书借阅系统中,实体集例如:在图
27、书借阅系统中,实体集“借阅借阅人人”包含属性:编号、姓名、性别、办证包含属性:编号、姓名、性别、办证日期,但借阅人中有两类特殊子集日期,但借阅人中有两类特殊子集“学生学生”和和“老师老师”,“教师教师”具有职称属性,具有职称属性,“学生学生”具有专业和年级属性,因此可以具有专业和年级属性,因此可以将将“借阅者借阅者”定义为超实体集或父类,定义为超实体集或父类,“学生学生”和和“教师教师”定义为定义为“借阅者借阅者”实实体集的子类体集的子类296.3 6.3 概念模型设计概念模型设计30图6.9 超实体集和子实体集示例v 在在ERER模型中,父类和子模型中,父类和子类用于表示从特殊实体类用于表示
28、从特殊实体集到一般实体集的抽象,集到一般实体集的抽象,也可以表示为一般实体也可以表示为一般实体集中存在少数特殊实体集中存在少数特殊实体集集v 建立父类实际上是一种建立父类实际上是一种概括概括, , 是共同属性项和是共同属性项和操作的提取,这样可避操作的提取,这样可避免说明和存储上的大量免说明和存储上的大量冗余冗余6.3 6.3 概念模型设计概念模型设计vERER模型设计模型设计原则原则 识别实体识别实体 属性是不可再分的数据项,属性中不能包含其它属性是不可再分的数据项,属性中不能包含其它属属性性 属性不能与其它实体有联系,联系是实体之间的属性不能与其它实体有联系,联系是实体之间的联联系系 识别
29、联系识别联系 对于识别出的实体,进行两两组合,判断实体之间对于识别出的实体,进行两两组合,判断实体之间是否存在是否存在联系联系 联系的类型是联系的类型是1 11 1,1 1N N还是还是M MN N 如果是如果是M MN N的联系,是否可以分解,增加关联实体,的联系,是否可以分解,增加关联实体,使之成为使之成为1 1N N的联系的联系316.3 6.3 概念模型设计概念模型设计v下面以图书借阅管理系统为例,给出局部下面以图书借阅管理系统为例,给出局部ER图设计图设计实例实例(图图6.106.10局部局部ER图设计示例),注意:属性没有图设计示例),注意:属性没有图示。图示。(1)确定确定范围:
30、选择以借阅人为核心的范围,根据分层数据流图和范围:选择以借阅人为核心的范围,根据分层数据流图和数据字典来确定局部数据字典来确定局部ER图的边界图的边界。(2)识别识别实体:借阅人,借阅卡,图书,借阅实体:借阅人,借阅卡,图书,借阅。(3)定义属性:定义属性: 借阅人(借阅人(读者编号读者编号,姓名,读者类型,姓名,读者类型, , 密码密码, , 已借数量已借数量, , EmailEmail地址地址, , 电话号码电话号码) 借阅卡(借阅卡(借阅卡编号借阅卡编号,读者编号,读者编号) 图书(图书(图书编号图书编号,书名,作者,图书分类,出版社,单价,书名,作者,图书分类,出版社,单价: :元元,
31、 , 复本数量复本数量, ,库存量库存量) 借阅(借阅(读者编号,图书编号读者编号,图书编号,借阅日期,是否续借,续借,借阅日期,是否续借,续借日期,归还日期日期,归还日期)(4)确定联系:借阅人与借阅卡确定联系:借阅人与借阅卡(11 1)、借阅人与借阅、借阅人与借阅(1N)、借、借阅与图书阅与图书(1N)326.3 6.3 概念模型设计概念模型设计33图6.10 图书馆局部ER图设计示例6.3 6.3 概念模型设计概念模型设计v设计原则设计原则 忠实行忠实行 设计应当忠实于应用的具体要求,实体集和它们的属性应当设计应当忠实于应用的具体要求,实体集和它们的属性应当反映反映现实现实 避免冗余避免
32、冗余 在在ERER模型设计中要注意同一件事情只能用一种方式表达,即模型设计中要注意同一件事情只能用一种方式表达,即只能出现一只能出现一次次 简单性简单性 如果不是绝对需要,不要在设计中添加多余的实体和如果不是绝对需要,不要在设计中添加多余的实体和联系联系 选择正确的连接选择正确的连接 如果如果把把每种可能的联系都加到设计每种可能的联系都加到设计中中,会造成数据冗余和修,会造成数据冗余和修改复杂改复杂 选择正确的元素种类选择正确的元素种类 一般说来,属性比实体集或联系都易于实现。然而,并不一般说来,属性比实体集或联系都易于实现。然而,并不能能把一切事物都作为把一切事物都作为属性属性346.3 6
33、.3 概念模型设计概念模型设计v将将E E用一个属性或几个其他实体集的属性用一个属性或几个其他实体集的属性代代替替,必须遵守下列三个条件,必须遵守下列三个条件: 所有与所有与E E有关的联系都必须有指向有关的联系都必须有指向E E的箭头的箭头 E E必须是必须是1 1N N联系中的联系中的“1 1”,或者它对多重联系情,或者它对多重联系情况的推广况的推广 E E的属性必须总体上标识一个实体的属性必须总体上标识一个实体 如只有一个属性则肯定符合。然而,如果有几个属如只有一个属性则肯定符合。然而,如果有几个属性,那么不能有属性依赖于其他属性性,那么不能有属性依赖于其他属性 没有联系包含没有联系包含
34、E E多次多次356.3 6.3 概念模型设计概念模型设计v替代方法替代方法 如果从实体集如果从实体集F F到到E E有有1 1N N联系联系R R,那么删除,那么删除R R并并把把E E的属性作为的属性作为F F的的属性属性;如果名称跟如果名称跟F F原来的原来的属性名冲突则重命名属性名冲突则重命名 如果有多路联系如果有多路联系R R的箭头指向的箭头指向E E,把,把E E的属性作的属性作为为R R的属性,并删除从的属性,并删除从R R到到E E的弧的弧。366.4 6.4 关系关系模型设计模型设计v逻辑逻辑结构设计的任务是将概念结构设计阶结构设计的任务是将概念结构设计阶段设计的段设计的ER
35、ER图,转化为选用的图,转化为选用的DBMSDBMS所支持所支持的数据模型相符的逻辑结构,形成逻辑模的数据模型相符的逻辑结构,形成逻辑模型。型。v网状网状和层次数据模型已经逐步淡出市场,和层次数据模型已经逐步淡出市场,而新型的对象和对象关系数据模型还没有而新型的对象和对象关系数据模型还没有得到广泛应用,所以一般选择关系数据模得到广泛应用,所以一般选择关系数据模型。基于关系数据模型的型。基于关系数据模型的DBMSDBMS市场上比较市场上比较多,如:多,如:OracleOracle、DB2DB2、SQL ServerSQL Server、SybaseSybase、InformixInformix等
36、等等等。376.4 6.4 关系模型设计关系模型设计vERER模型到关系模型的模型到关系模型的转换转换 ERER模型的一般转换原则模型的一般转换原则 弱实体集的转换弱实体集的转换 子类实体集的子类实体集的转换转换386.4 6.4 关系模型设计关系模型设计vERER模型的一般转换原则模型的一般转换原则 一个实体集转换为一个表(一个实体集转换为一个表(TableTable),而实体集的),而实体集的属性转换为表的列(属性转换为表的列(ColumnColumn),实体集的主键转),实体集的主键转换为表的主键(换为表的主键(Primary KeyPrimary Key) 实体集联系根据联系的类型,转
37、换实体集联系根据联系的类型,转换如下如下: 1 1N N的的联系联系在在N N端的实体对应的表中增加属性,该属性是端的实体对应的表中增加属性,该属性是1 1端实体对端实体对应表的主应表的主键键 1:11:1的的联系联系1:11:1联系是联系是1 1N N联系的特例,两个实体分别转换成表后,联系的特例,两个实体分别转换成表后,只要在一个表中增加外键,一般在记录数较少的表中增只要在一个表中增加外键,一般在记录数较少的表中增加属性,作为外键,该属性是另一个表的主加属性,作为外键,该属性是另一个表的主键键M MN N的的联系联系通过引进一个新表来表达两个实体间多对多的联系,新通过引进一个新表来表达两个
38、实体间多对多的联系,新表的主键由联系两端实体的主键组合而成,同时增加相表的主键由联系两端实体的主键组合而成,同时增加相关的联系关的联系属性属性396.4 6.4 关系模型设计关系模型设计v弱实体集的转换弱实体集的转换 按照一般的转换规则按照一般的转换规则,将,将它转为一个表,该表它转为一个表,该表含有弱实体集的所有属性,但是由于弱实体集含有弱实体集的所有属性,但是由于弱实体集的键含有它所依赖的强实体集(通过支持联系的键含有它所依赖的强实体集(通过支持联系连接的实体集)的键,因此弱实体集转换后的连接的实体集)的键,因此弱实体集转换后的那张表一定要含有强实体集的主键那张表一定要含有强实体集的主键
39、图图6.86.8的的ERER模型转换为关系模型后应为:模型转换为关系模型后应为: 教学楼教学楼(学校名称学校名称,编号编号),学校(),学校(名称名称,地址),其中,地址),其中属性名称是学校表的主键,(学校名称,编号)是属性名称是学校表的主键,(学校名称,编号)是教学楼表的主键,同时教学楼表中的学校名称属性教学楼表的主键,同时教学楼表中的学校名称属性是外键,它参照学校表中的名称属性是外键,它参照学校表中的名称属性。406.4 6.4 关系模型设计关系模型设计v子类实体集的子类实体集的转换转换 只添加父类的主只添加父类的主键键 子类实体集转换后的表要含有父类的主键属性,这子类实体集转换后的表要
40、含有父类的主键属性,这是大部分设计中采用的方法是大部分设计中采用的方法图图6.96.9的的ERER设计转换为关系设计转换为关系模式为模式为:借阅人(:借阅人(编号编号,姓名,性别,办证日期);教师(姓名,性别,办证日期);教师(编号编号,职称);,职称);学生(学生(编号编号,专业,年级,专业,年级)。)。 添加父类的所有属性添加父类的所有属性 子子类实体集转换后的表含有父类的所有属性类实体集转换后的表含有父类的所有属性图图6.96.9的的ERER设计按照此种方法转换,它的形式为:借设计按照此种方法转换,它的形式为:借阅人(阅人(编号编号,姓名,性别,办证日期);教师(,姓名,性别,办证日期)
41、;教师(编编号号,姓名,性别,办证日期,职称);学生(,姓名,性别,办证日期,职称);学生(编号编号,姓名,性别,办证日期,专业,年级姓名,性别,办证日期,专业,年级)416.4 6.4 关系模型设计关系模型设计v图图6.76.7的的ERER模型包含模型包含3 3个实体:图书、读者和作者;个实体:图书、读者和作者;2 2个联系:借阅和写作;实体和联系又包含各自的属个联系:借阅和写作;实体和联系又包含各自的属性。根据概念模型向关系模型的转换规则,对于性。根据概念模型向关系模型的转换规则,对于M M:N N的联系,应为其设置一个关系模式,因此,本例中的联系,应为其设置一个关系模式,因此,本例中的关
42、系模式应包含如下的关系模式应包含如下5 5个个: 图书图书( (书名书名、出版年、页数、单价、出版年、页数、单价) ),描述图书实体,其中,描述图书实体,其中主码为主码为书名书名 借阅借阅( (书名书名、读者姓名读者姓名、日期、日期) ),描述借阅联系,其中主码,描述借阅联系,其中主码为书名和读者为书名和读者姓名姓名 读者读者( (姓名姓名、地址、地址) ),描述实体读者,其中主码为,描述实体读者,其中主码为姓名姓名 写作写作( (书名书名、作者姓名作者姓名) ),描述写作联系,其中主码为书名,描述写作联系,其中主码为书名和作者和作者姓名姓名 作者作者( (姓名姓名、地址、邮箱、地址、邮箱)
43、),描述作者实体,其中主码为,描述作者实体,其中主码为姓姓名名426.5 6.5 存储结构设计存储结构设计v数据库在物理设备上的存储结构和存储方数据库在物理设备上的存储结构和存储方法称为数据库的物理结构法称为数据库的物理结构( (内模式内模式) ),它依,它依赖于选择的计算机系统。为一个给定的逻赖于选择的计算机系统。为一个给定的逻辑结构选取一个最适合应用要求的物理结辑结构选取一个最适合应用要求的物理结构的过程就是数据库的物理结构设计。构的过程就是数据库的物理结构设计。v物理结构设计的物理结构设计的目的目的: 提高数据库的性能,满足用户的提高数据库的性能,满足用户的性能需求性能需求 有效地利用有
44、效地利用存储空间存储空间436.5 6.5 存储结构设计存储结构设计v数据库的物理数据库的物理结构设计结构设计步骤:步骤: 确定数据库的物理结构,在关系数据库中主要是确定数据库的物理结构,在关系数据库中主要是存储结构和存储方法存储结构和存储方法 对物理结构进行评价,评价的重点是时间和空间对物理结构进行评价,评价的重点是时间和空间的的效率效率v注意事项注意事项 DBMSDBMS的的特点特点 物理结构设计只能在特定的物理结构设计只能在特定的DBMSDBMS下进行,必须了解下进行,必须了解DBMSDBMS的特点,充分利用其提供的各种手段,了解其限制条件的特点,充分利用其提供的各种手段,了解其限制条件
45、 应用环境应用环境,特别是特别是计算机系统的计算机系统的性能性能 数据库系统不仅与数据库设计有关,与计算机系统有关数据库系统不仅与数据库设计有关,与计算机系统有关446.5 6.5 存储结构设计存储结构设计v存取方法选择存取方法选择 索引索引存取方法存取方法 聚簇存取方法聚簇存取方法 HASHHASH存取方法存取方法456.5 6.5 存储结构设计存储结构设计v索引索引存取方法存取方法 索引是数据库表的一个附加表,存储了建立索索引是数据库表的一个附加表,存储了建立索引列的值和对应的记录引列的值和对应的记录地址地址;查询查询数据时,先数据时,先在索引中根据查询的条件值找到相关记录的地在索引中根据
46、查询的条件值找到相关记录的地址,然后在表中存取对应的址,然后在表中存取对应的记录记录 建立索引的一般原则:建立索引的一般原则: 如果某属性或属性组经常出现在查询条件中,则考如果某属性或属性组经常出现在查询条件中,则考虑为该属性或属性组建立索引;虑为该属性或属性组建立索引; 如果某个属性经常作为最大值和最小值等聚集函数如果某个属性经常作为最大值和最小值等聚集函数的参数,则考虑为该属性建立索引;的参数,则考虑为该属性建立索引; 如果某属性和属性组经常出现在连接操作的连接条如果某属性和属性组经常出现在连接操作的连接条件中,则考虑为该属性或属性组建立索引;件中,则考虑为该属性或属性组建立索引;466.
47、5 6.5 存储结构设计存储结构设计v聚簇存取方法聚簇存取方法 主要思想主要思想 将经常进行连接操作的两个和多个数据表,按连接将经常进行连接操作的两个和多个数据表,按连接属性属性( (聚簇码聚簇码) )相同的值存放在一起,从而大大提高相同的值存放在一起,从而大大提高连接操作的连接操作的效率效率 一个数据库中可以建立很多簇,但一个表只能加入一个数据库中可以建立很多簇,但一个表只能加入一个聚簇中一个聚簇中 设计原则设计原则 经常在一起连接操作的表,考虑存放在一个聚簇经常在一起连接操作的表,考虑存放在一个聚簇中中 在聚簇中的表,主要用来查询的静态表,而不是频在聚簇中的表,主要用来查询的静态表,而不是
48、频繁更新的表繁更新的表476.5 6.5 存储结构设计存储结构设计vHASHHASH存取方法存取方法 主要原理主要原理 根据查询条件的值,按根据查询条件的值,按HASHHASH函数计算查询记录的地函数计算查询记录的地址,减少了数据存取的址,减少了数据存取的I/OI/O次数,加快了存取速度次数,加快了存取速度 设计设计原则原则 主要是用于查询的表(静态表),而不是经常更新主要是用于查询的表(静态表),而不是经常更新的的表表 作为查询条件列的值域(散列键值),具有比较均作为查询条件列的值域(散列键值),具有比较均匀的数值匀的数值分布分布 查询条件是相等比较,而不是范围(大于或等于)查询条件是相等比
49、较,而不是范围(大于或等于)比较比较486.5 6.5 存储结构设计存储结构设计v存储结构的确定存储结构的确定 存放存放位置位置 将数据库管理系统文件和数据库文件将数据库管理系统文件和数据库文件分开分开 如果系统采用多个磁盘和磁盘阵列,将表和索引存放在如果系统采用多个磁盘和磁盘阵列,将表和索引存放在不同的磁盘不同的磁盘上上,查询时查询时,两,两个个驱动器驱动器可以可以并行并行工作工作,提,提高高I/OI/O读写读写速度速度 为了系统的安全性,一般将日志文件和重要的系统文件为了系统的安全性,一般将日志文件和重要的系统文件存放在多个磁盘上存放在多个磁盘上, ,互为互为备份备份 数据库文件和日志文件
50、的备份数据库文件和日志文件的备份,一般,一般存储在磁带上存储在磁带上 内容内容 DBMSDBMS产品一般都提供了大量的系统配置参数,供数据库产品一般都提供了大量的系统配置参数,供数据库设计人员和设计人员和DBADBA进行数据库的物理结构设计和优化。如:进行数据库的物理结构设计和优化。如:用户数、缓冲区、内存分配、物理块的大小等等用户数、缓冲区、内存分配、物理块的大小等等496.6 6.6 数据库的实现和维护数据库的实现和维护v数据库的实施数据库的实施 建立数据库建立数据库 建立数据库是在指定的计算机平台上和特定的建立数据库是在指定的计算机平台上和特定的DBMSDBMS下,下,建立数据库和组成数
51、据库的各种对象建立数据库和组成数据库的各种对象数据库模式的建立数据库模式的建立 主要是数据库对象的主要是数据库对象的建立建立数据的载入数据的载入 “数字化数字化”数据数据 “非非数字化数字化”数据数据 测试测试 通过应用系统的各种操作,数据库中的数据能否保持一通过应用系统的各种操作,数据库中的数据能否保持一致性,完整性约束是否有效实施致性,完整性约束是否有效实施 数据库的性能指标是否满足用户的性能要求,分析是否数据库的性能指标是否满足用户的性能要求,分析是否达到设计达到设计目标目标506.6 6.6 数据库的实现和维护数据库的实现和维护v数据库的维护数据库的维护 数据库的转储和数据库的转储和恢
52、复恢复 保证保证一旦发生故障尽快将数据库恢复到某种一致的状态,并一旦发生故障尽快将数据库恢复到某种一致的状态,并尽可能减少对数据库的损失和破坏尽可能减少对数据库的损失和破坏 数据库的安全性和完整性数据库的安全性和完整性控制控制 数据库的运行过程数据库的运行过程中中,数据库的完整性约束数据库的完整性约束条件会条件会变化变化,需,需要要DBADBA不断修正,以满足用户需要不断修正,以满足用户需要。 数据库性能的监控、分析和数据库性能的监控、分析和改造改造 在数据库运行过程中,监控系统运行,对检测数据进行分析,在数据库运行过程中,监控系统运行,对检测数据进行分析,找出改进系统性能的方法找出改进系统性
53、能的方法 数据库的重组和数据库的重组和重构重构 重组重组按原设计要求重新安排存储位置、回收垃圾、减少指针链等,按原设计要求重新安排存储位置、回收垃圾、减少指针链等,提高系统性能提高系统性能 重构重构部分修改数据库模式和部分修改数据库模式和内模式内模式51本章小结本章小结v本章主要讨论了数据库设计的方法、步骤,本章主要讨论了数据库设计的方法、步骤,列举了较多的列举了较多的实例实例v详细介绍了数据库设计的各个阶段的目标、详细介绍了数据库设计的各个阶段的目标、方式、工具以及注意方式、工具以及注意事项事项v概念结构设计和逻辑结构设计,也是数据概念结构设计和逻辑结构设计,也是数据库设计过程中最重要的两个
54、环节。库设计过程中最重要的两个环节。v数据库设计是属于方法学的范畴,主要掌数据库设计是属于方法学的范畴,主要掌握基本方法和一般原则,并能在数据库设握基本方法和一般原则,并能在数据库设计过程中加以灵活运用,设计出符合实际计过程中加以灵活运用,设计出符合实际需求的数据库需求的数据库。52思考与练习题思考与练习题一、一、选择题选择题1.1.如何如何构造出一个合适的数据逻辑结构是(构造出一个合适的数据逻辑结构是( )主)主要解决的问题要解决的问题 。 A. A. 物理物理结构设计结构设计 B. B. 数据字典数据字典 C C. . 逻辑逻辑结构设计结构设计 D. D. 关系数据库查询关系数据库查询2.
55、2.概念结构概念结构设计是整个数据库设计的关键,它通过设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立对用户需求进行综合、归纳与抽象,形成一个独立于具体于具体DBMSDBMS的(的( )。)。 A. A. 数据模型数据模型 B. B. 概念模型概念模型 C C. . 层次层次模型模型 D D. . 关系模型关系模型53思考与练习题思考与练习题3.3.数据库数据库设计中,确定数据库存储结构,即确定关设计中,确定数据库存储结构,即确定关系、索引、聚簇、日志、备份等数据的存储安排和系、索引、聚簇、日志、备份等数据的存储安排和存储结构,这是数据库设计的(存储结构,这是数据
56、库设计的( )。)。 A A. . 需求分析需求分析阶段阶段 B. B. 逻辑设计阶段逻辑设计阶段 C C. . 概念概念设计阶段设计阶段 D D. . 物理设计阶段物理设计阶段4.4.数据库数据库物理设计完成后,进入数据库实施阶段,物理设计完成后,进入数据库实施阶段,下述工作中,(下述工作中,( )一般不属于实施阶段的工作。)一般不属于实施阶段的工作。 A. A. 建立库建立库结构结构 B B. . 系统调试系统调试 C C. . 加载加载数据数据 D D. . 扩充功能扩充功能54思考与练习题思考与练习题5.5.区分区分不同实体的依据是(不同实体的依据是( ) 。 A A. . 名称名称 B B. . 属性属性 C C. . 对象对象 D
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 45501-2025工业机器人三维视觉引导系统通用技术要求
- 出售房屋居间合同
- 工程担保借款合同
- 家庭房屋装修合同协议
- 幼儿园装饰装修合同
- 山地出租合同协议
- 甲乙合同股份协议
- 自媒体免责协议合同范本
- 办公室场地出租合同协议
- 核酸检测协议合同
- 2025年03月如东县事业单位工作人员120人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 槟榔合作协议合同
- 欢乐购物街(教案)-2024-2025学年一年级下册数学人教版
- 【9物一模】2025年安徽省合肥市蜀山区九年级中考一模物理试卷(含答案)
- Unit5Whatwereyoudoingwhentherainstormcame?SectionB1a-1d课件人教版八年级英语下册
- 2025年中铁快运股份有限公司招聘(98人)笔试参考题库附带答案详解
- GB/T 45255-2025公共信用综合评价规范
- 湖北省武汉市青山区2023-2024学年八年级下学期物理期中试题(含答案)
- 能源专业考试试题及答案
- 主题班会课件-《花开应有时》预防早恋男女交往
- 安徽省天一大联考2025届高三3月调研考试语文含答案
评论
0/150
提交评论