1、xx厦门大学计算机科学系厦门大学计算机科学系第七章第七章 数据库设计数据库设计(2017版)版)厦门大学计算机科学系本科生课程厦门大学计算机科学系本科生课程数据库系统原理数据库系统原理第七章 数据库设计n 7.1 数据库设计概述数据库设计概述n 7.2 需求分析需求分析n 7.3 概念结构设计概念结构设计n 7.4 逻辑结构设计逻辑结构设计n 7.5 数据库的物理设计数据库的物理设计n 7.6 数据库实施和维护数据库实施和维护n 7.7 小结小结感谢你的观赏感谢你的观赏2019-8-2数据库设计概述(续)什么是数据库设计什么是数据库设计 数据库设计是指对于一个给定的应用环境,数据库设计是指对于
2、一个给定的应用环境,构造最优的数据库模式,建立数据库及其应构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)种用户的应用需求(信息要求和处理要求)在数据库领域内,常常把使用数据库的各类在数据库领域内,常常把使用数据库的各类系统统称为数据库应用系统系统统称为数据库应用系统感谢你的观赏感谢你的观赏2019-8-2第七章 数据库设计n 7.1 数据库设计概述数据库设计概述n 7.2 需求分析需求分析n 7.3 概念结构设计概念结构设计n 7.4 逻辑结构设计逻辑结构设计n 7.5 数据库的物理设计数
3、据库的物理设计n 7.6 数据库实施和维护数据库实施和维护n 7.7 小结小结感谢你的观赏感谢你的观赏2019-8-27.1.1 数据库和信息系统 数据库是信息系统的核心和基础数据库是信息系统的核心和基础 把信息系统中大量的数据按一定的模型组织起来把信息系统中大量的数据按一定的模型组织起来 提供存储、维护、检索数据的功能提供存储、维护、检索数据的功能 使信息系统可以方便、及时、准确地从数据库中获得所使信息系统可以方便、及时、准确地从数据库中获得所需的信息需的信息 数据库是信息系统的各个部分能否紧密地结合在一数据库是信息系统的各个部分能否紧密地结合在一起以及如何结合的关键所在起以及如何结合的关键
4、所在 数据库设计是信息系统开发和建设的重要组成部分数据库设计是信息系统开发和建设的重要组成部分感谢你的观赏感谢你的观赏2019-8-2数据库设计人员应该具备的技术和知识 数据库的基本知识和数据库设计技术数据库的基本知识和数据库设计技术 计算机科学的基础知识和程序设计的计算机科学的基础知识和程序设计的方法和技巧方法和技巧 软件工程的原理和方法软件工程的原理和方法 应用领域的知识应用领域的知识感谢你的观赏感谢你的观赏2019-8-2数据库设计的基本步骤(续)二、数据库设计的过程二、数据库设计的过程(六个阶段六个阶段)需求分析阶段需求分析阶段 准确了解与分析用户需求(包括数据与处理)准确了解与分析用
5、户需求(包括数据与处理)是整个设计过程的基础,是最困难、最耗费时是整个设计过程的基础,是最困难、最耗费时间的一步间的一步感谢你的观赏感谢你的观赏2019-8-2数据库设计的基本步骤(续)概念结构设计阶段概念结构设计阶段 是整个数据库设计的关键是整个数据库设计的关键 通过对用户需求进行综合、归纳与抽象,形成通过对用户需求进行综合、归纳与抽象,形成一个独立于具体一个独立于具体DBMS的概念模型的概念模型感谢你的观赏感谢你的观赏2019-8-2数据库设计的基本步骤(续)逻辑结构设计阶段逻辑结构设计阶段 将概念结构转换为某个将概念结构转换为某个DBMS所支持的数据模型所支持的数据模型 对其进行优化对其
6、进行优化感谢你的观赏感谢你的观赏2019-8-2数据库设计的基本步骤(续)数据库物理设计阶段数据库物理设计阶段 为逻辑数据模型选取一个最适合应用环境的物为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)理结构(包括存储结构和存取方法)感谢你的观赏感谢你的观赏2019-8-2数据库设计的基本步骤(续)数据库实施阶段数据库实施阶段 运用运用DBMS提供的数据语言、工具及宿主语提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果言,根据逻辑设计和物理设计的结果 建立数据库建立数据库 编制与调试应用程序编制与调试应用程序 组织数据入库组织数据入库 并进行试运行并进行试运行
7、感谢你的观赏感谢你的观赏2019-8-2数据库设计的基本步骤(续)数据库运行和维护阶段数据库运行和维护阶段 数据库应用系统经过试运行后即可投入正数据库应用系统经过试运行后即可投入正式运行。式运行。在数据库系统运行过程中必须不断地对其在数据库系统运行过程中必须不断地对其进行评价、调整与修改。进行评价、调整与修改。感谢你的观赏感谢你的观赏2019-8-2需求搜集和分析需求搜集和分析设计概念结构设计概念结构设计逻辑结构设计逻辑结构数据模型优化数据模型优化设计物理结构设计物理结构评价设计、性能预测评价设计、性能预测使用、维护数据库使用、维护数据库物理实现物理实现试运行试运行需求分析阶段需求分析阶段概念
8、设计阶段概念设计阶段逻辑设计阶段逻辑设计阶段物理设计阶段物理设计阶段数据库实施阶段数据库实施阶段数据库运行维护阶段数据库运行维护阶段感谢你的观赏感谢你的观赏2019-8-2数据库各级模式的形成过程应用需求应用需求应用应用1应用需求应用需求应用应用2应用需求应用需求应用应用3应用需求应用需求应用应用4逻辑逻辑模式模式内模式内模式综合综合概念概念模式模式转换转换映像映像映像映像外式模外式模应用应用1外模式外模式应用应用2外模式外模式应用应用3外模式外模式应用应用4感谢你的观赏感谢你的观赏2019-8-2数据库设计的基本步骤(续)逻辑设计阶段逻辑设计阶段 首先将首先将E-R图转换成具体的数据库产品支
9、图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库持的数据模型,如关系模型,形成数据库逻辑模式逻辑模式 然后根据用户处理的要求、安全性的考虑,然后根据用户处理的要求、安全性的考虑,在基本表的基础上再建立必要的视图在基本表的基础上再建立必要的视图(View),形成数据的外模式,形成数据的外模式感谢你的观赏感谢你的观赏2019-8-2数据库设计的基本步骤(续)物理设计阶段物理设计阶段 根据根据DBMS特点和处理的需要,进行物理特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式存储安排,建立索引,形成数据库内模式感谢你的观赏感谢你的观赏2019-8-2第七章 数据库设计n 7
10、.1 数据库设计概述数据库设计概述n 7.2 需求分析需求分析n 7.3 概念结构设计概念结构设计n 7.4 逻辑结构设计逻辑结构设计n 7.5 数据库的物理设计数据库的物理设计n 7.6 数据库实施和维护数据库实施和维护n 7.7 小结小结感谢你的观赏感谢你的观赏2019-8-27.3.2 概念结构设计的方法与步骤 设计概念结构的四类方法设计概念结构的四类方法 自顶向下自顶向下 首先定义全局概念结构的框架,然后逐步细化首先定义全局概念结构的框架,然后逐步细化感谢你的观赏感谢你的观赏2019-8-27.3.2 概念结构设计的方法与步骤 设计概念结构的四类方法设计概念结构的四类方法 自底向上自底
11、向上 首先定义各局部应用的概念结构,然后将它们首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构集成起来,得到全局概念结构感谢你的观赏感谢你的观赏2019-8-2概念结构设计的方法与步骤(续)逐步扩张逐步扩张 首先定义最重要的核心概念结构,然后首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构概念结构,直至总体概念结构感谢你的观赏感谢你的观赏2019-8-2概念结构设计的方法与步骤(续)混合策略混合策略 将自顶向下和自底向上相结合,用自顶将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结
12、构的框架,向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的以它为骨架集成由自底向上策略中设计的各局部概念结构。各局部概念结构。感谢你的观赏感谢你的观赏2019-8-2概念结构设计的方法与步骤(续)常用策略常用策略自顶向下地进行需求分析自顶向下地进行需求分析自底向上地设计概念结构自底向上地设计概念结构感谢你的观赏感谢你的观赏2019-8-2需求需求概念模式概念模式1.1概念模式概念模式1.2概念模式概念模式n.1概念模式概念模式n.2概念模式概念模式1概念模式概念模式n需求需求1需求需求n需求需求1.1需求需求1.2需求需求n.1需求需求n.2全局概念模式全局概念模式感谢
13、你的观赏感谢你的观赏2019-8-2概念结构设计的方法与步骤(续)自底向上设计概念结构的步骤自底向上设计概念结构的步骤 第第1步:抽象数据并设计局部视图步:抽象数据并设计局部视图 第第2步:集成局部视图,得到全局概念结构步:集成局部视图,得到全局概念结构感谢你的观赏感谢你的观赏2019-8-2需求分析需求分析DFDDD数据抽象、局数据抽象、局部视图的设计部视图的设计分分E-R图图视图集成视图集成总总E-R图图逻辑结构设计逻辑结构设计征求征求用户用户意见意见直到直到满意满意为为 止止感谢你的观赏感谢你的观赏2019-8-27.3.3 数据抽象与局部视图设计 数据抽象数据抽象 局部视图设计局部视图
14、设计感谢你的观赏感谢你的观赏2019-8-2一、数据抽象 概念结构是对现实世界的一种抽象概念结构是对现实世界的一种抽象 从实际的人、物、事和概念中抽取所关心的从实际的人、物、事和概念中抽取所关心的共同特性,忽略非本质的细节共同特性,忽略非本质的细节 把这些特性用各种概念精确地加以描述把这些特性用各种概念精确地加以描述 这些概念组成了某种模型这些概念组成了某种模型感谢你的观赏感谢你的观赏2019-8-2数据抽象(续)数据抽象的用途数据抽象的用途 对需求分析阶段收集到的数据进行分类、组织对需求分析阶段收集到的数据进行分类、组织(聚集),形成(聚集),形成 实体实体 实体的属性,标识实体的码实体的属
15、性,标识实体的码 确定实体之间的联系类型确定实体之间的联系类型(1:1,1:n,m:n)感谢你的观赏感谢你的观赏2019-8-2一、合并分E-R图,生成初步E-R图 各分图存在冲突各分图存在冲突 各个局部应用所面向的问题不同由不同的设各个局部应用所面向的问题不同由不同的设计人员进行设计计人员进行设计各个分各个分E-R图之间必定会存在许多不一致的图之间必定会存在许多不一致的地方地方n合并分合并分E-R图的主要工作与关键所在:合理图的主要工作与关键所在:合理消除各分消除各分E-R图的冲突图的冲突感谢你的观赏感谢你的观赏2019-8-2合并分E-R图,生成初步E-R图(续)冲突的种类冲突的种类 属性
16、冲突属性冲突 命名冲突命名冲突 结构冲突结构冲突感谢你的观赏感谢你的观赏2019-8-2第七章 数据库设计n 7.1 数据库设计概述数据库设计概述n 7.2 需求分析需求分析n 7.3 概念结构设计概念结构设计n 7.4 逻辑结构设计逻辑结构设计n 7.5 数据库的物理设计数据库的物理设计n 7.6 数据库实施和维护数据库实施和维护n 7.7 小结小结感谢你的观赏感谢你的观赏2019-8-2逻辑结构设计具体过程逻辑结构设计逻辑结构设计转化为转化为一般数一般数据模型据模型转化为特转化为特定定DBMS支持下的支持下的据模型据模型 优化模优化模型型概念结概念结构设计构设计数据库数据库物理设计物理设计
17、基本基本E-R图图特定特定DBMS的的特点与限特点与限制制优化方优化方法如规法如规范化理范化理论论逻辑逻辑模型模型转换规转换规则则感谢你的观赏感谢你的观赏2019-8-2E-R图向关系模型的转换(续)转换内容转换内容 E-R图由实体、实体的属性和实体之间的联系图由实体、实体的属性和实体之间的联系三个要素组成三个要素组成 关系模型的逻辑结构是一组关系模式的集合关系模型的逻辑结构是一组关系模式的集合 将将E-R图转换为关系模型:将实体、实体的属图转换为关系模型:将实体、实体的属性和实体之间的联系转化为关系模式。性和实体之间的联系转化为关系模式。感谢你的观赏感谢你的观赏2019-8-2E-R图向关系
18、模型的转换(续)转换原则转换原则 一个实体型转换为一个关系模式。一个实体型转换为一个关系模式。关系的属性关系的属性:实体型的属性:实体型的属性关系的码关系的码:实体型的码:实体型的码例,有一个学生实体例,有一个学生实体感谢你的观赏感谢你的观赏2019-8-2 学生实体可以转换为如下关系模式:学生实体可以转换为如下关系模式:学生(学生(学号学号,姓名,出生日期,所在系,姓名,出生日期,所在系,年级,平均成绩)年级,平均成绩)学生学生 学号学号出生出生日期日期年级年级所在系所在系 平均平均成绩成绩姓名姓名感谢你的观赏感谢你的观赏2019-8-2E-R图向关系模型的转换(续)一个m:n联系转换为一个
19、关系模式关系的属性:与该联系相连的各实体的码以及联系本身的属性关系的码:各实体码的组合例,“选修”联系是一个m:n联系,它的E-R图为:感谢你的观赏感谢你的观赏2019-8-2E-R图向关系模型的转换(续)按照上面规则可以将它转换为如按照上面规则可以将它转换为如下关系模式,其中学号与课程号为下关系模式,其中学号与课程号为关系的组合码:关系的组合码:选修(选修(学号学号,课程号课程号,成绩),成绩)课程课程选修选修学生学生mn成绩成绩感谢你的观赏感谢你的观赏2019-8-2E-R图向关系模型的转换(续)一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。1)转换为一个独立
20、的关系模式关系的属性:与该联系相连的各实体的码以及联系本身的属性关系的码:n端实体的码感谢你的观赏感谢你的观赏2019-8-2E-R图向关系模型的转换(续)一个一个1:n联系可以转换为一个独立的关系模式,联系可以转换为一个独立的关系模式,也可以与也可以与n端对应的关系模式合并端对应的关系模式合并 2)与与n端对应的关系模式合并端对应的关系模式合并合并后关系的属性合并后关系的属性:在:在n端关系中加入端关系中加入1端关系的码和联系本身的属性端关系的码和联系本身的属性合并后关系的码合并后关系的码:不变:不变 可以减少系统中的关系个数,一般情况下更可以减少系统中的关系个数,一般情况下更倾向于采用这种
21、方法倾向于采用这种方法感谢你的观赏感谢你的观赏2019-8-2E-R图向关系模型的转换(续)例,例,“组成组成”联系为联系为1:n联系。联系。将其转换为关系模式的两种方法:将其转换为关系模式的两种方法:1)使其成为一个独立的关系模式:使其成为一个独立的关系模式:2)将其学生关系模式合并:将其学生关系模式合并:组成(组成(学号学号,班级号),班级号)学生(学生(学号学号,姓名,出生日期,所在系,姓名,出生日期,所在系,年级,年级,班级号班级号,平均成绩),平均成绩)班级班级组成组成学生学生1n感谢你的观赏感谢你的观赏2019-8-2 一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对
22、应的关系模式合并 1)转换为一个独立的关系模式关系的属性:与该联系相连的各实体的码以及联系本身的属性关系的候选码:每个实体的码均是该关系的候选码感谢你的观赏感谢你的观赏2019-8-2E-R图向关系模型的转换(续)一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。2)与某一端对应的关系模式合并合并后关系的属性:加入对应关系的码和联系本身的属性合并后关系的码:不变感谢你的观赏感谢你的观赏2019-8-2E-R图向关系模型的转换(续)例,例,“管理管理”联系为联系为1:1联系,可以有三种转联系,可以有三种转换方法:换方法:(1)转换为一个独立的关系模式:)转换为一个独
23、立的关系模式:管理(管理(职工号职工号,班级号),班级号)或或管理(职工号,管理(职工号,班级号班级号)班级班级管理管理教师教师11感谢你的观赏感谢你的观赏2019-8-2例,例,“管理管理”联系为联系为1:1联系,可以联系,可以有三种转换方法:有三种转换方法:(2)“管理管理”联系与班级关系模式联系与班级关系模式合并,则只需在班级关系中加入教合并,则只需在班级关系中加入教师关系的码,即职工号:师关系的码,即职工号:班级:(班级:(班级号班级号,学生人数,职工号),学生人数,职工号)E-R图向关系模型的转换(续)班级班级管理管理教师教师11感谢你的观赏感谢你的观赏2019-8-2E-R图向关系
24、模型的转换(续)例,例,“管理管理”联系为联系为1:1联系,可联系,可以有三种转换方法:以有三种转换方法:(3)“管理管理”联系与教师关系模联系与教师关系模式合并,则只需在教师关系中加式合并,则只需在教师关系中加入班级关系的码,即班级号:入班级关系的码,即班级号:教师:(教师:(职工号职工号,姓名,性别,职称,班级号,姓名,性别,职称,班级号,是否为优秀班主任)是否为优秀班主任)班级班级管理管理教师教师11感谢你的观赏感谢你的观赏2019-8-2E-R图向关系模型的转换(续)注意:注意:从理论上讲,从理论上讲,1:1联系可以与任意一端对应的关系模联系可以与任意一端对应的关系模式合并式合并 但在
25、一些情况下,与不同的关系模式合并效率会大但在一些情况下,与不同的关系模式合并效率会大不一样。因此究竟应该与哪端的关系模式合并需要不一样。因此究竟应该与哪端的关系模式合并需要依应用的具体情况而定依应用的具体情况而定 由于连接操作是最费时的操作,所以一般应以尽量由于连接操作是最费时的操作,所以一般应以尽量减少连接操作为目标减少连接操作为目标 例如,如果经常要查询某个班级的班主任姓名,例如,如果经常要查询某个班级的班主任姓名,则将管理联系与教师关系合并更好些则将管理联系与教师关系合并更好些感谢你的观赏感谢你的观赏2019-8-2E-R图向关系模型的转换(续)三个或三个以上实体间的一个多元联系转换为一
26、个关系模式。关系的属性:与该多元联系相连的各实体的码以及联系本身的属性关系的码:各实体码的组合例,例,“讲授讲授”联系是一个三元联系联系是一个三元联系感谢你的观赏感谢你的观赏2019-8-2E-R图向关系模型的转换(续)“讲授讲授”联系是一个三元联系,可以将它转联系是一个三元联系,可以将它转换为如下关系模式,其中课程号、职工换为如下关系模式,其中课程号、职工号和书号为关系的组合码:号和书号为关系的组合码:讲授(讲授(课程号,职工号,书号课程号,职工号,书号,课时),课时)课程课程教师教师1m参考书参考书n课时课时讲授讲授感谢你的观赏感谢你的观赏2019-8-2E-R图向关系模型的转换(续)同一
27、实体集的实体间的联系,即自联系,也可按上述1:1、1:n和m:n三种情况分别处理。例,如果教师实体集内部存在领导与被领例,如果教师实体集内部存在领导与被领导的导的1:n自联系自联系感谢你的观赏感谢你的观赏2019-8-2E-R图向关系模型的转换(续)教师实体集内部存在领导与被领导的教师实体集内部存在领导与被领导的1:n自联自联系,我们可以将该联系与教师实体合并,这系,我们可以将该联系与教师实体合并,这时主码职工号将多次出现,但作用不同,可时主码职工号将多次出现,但作用不同,可用不同的属性名加以区分:用不同的属性名加以区分:教师:教师:职工号职工号,姓名,性别,职称,姓名,性别,职称,系主系主任
28、职工号任职工号职工职工领导领导1n感谢你的观赏感谢你的观赏2019-8-2E-R图向关系模型的转换(续)具有相同码的关系模式可合并具有相同码的关系模式可合并 目的:减少系统中的关系个数目的:减少系统中的关系个数 合并方法:将其中一个关系模式的全部属性加合并方法:将其中一个关系模式的全部属性加入到另一个关系模式中,然后去掉其中的同义入到另一个关系模式中,然后去掉其中的同义属性(可能同名也可能不同名),并适当调整属性(可能同名也可能不同名),并适当调整属性的次序属性的次序感谢你的观赏感谢你的观赏2019-8-2第七章 数据库设计n 7.1 数据库设计概述数据库设计概述n 7.2 需求分析需求分析n
29、 7.3 概念结构设计概念结构设计n 7.4 逻辑结构设计逻辑结构设计n 7.5 数据库的物理设计数据库的物理设计n 7.6 数据库实施和维护数据库实施和维护n 7.7 小结小结感谢你的观赏感谢你的观赏2019-8-2 什么是数据库的物理设计什么是数据库的物理设计 数据库在物理设备上的存储结构与存取方法称数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于给定的计算机为数据库的物理结构,它依赖于给定的计算机系统系统 为一个给定的逻辑数据模型选取一个最适合应为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构的过程,就是数据库的物理用环境的物理结构的过程,就是数据库的物理设计
30、设计7.5 数据库的物理设计感谢你的观赏感谢你的观赏2019-8-27.5 数据库的物理设计 数据库物理设计的步骤数据库物理设计的步骤 确定数据库的物理结构确定数据库的物理结构 对物理结构进行评价,评价的重点是时间和空对物理结构进行评价,评价的重点是时间和空间效率间效率 如果评价结果满足原设计要求则可进入到物理如果评价结果满足原设计要求则可进入到物理实施阶段,否则,就需要重新设计或修改物理实施阶段,否则,就需要重新设计或修改物理结构,有时甚至要返回逻辑设计阶段修改数据结构,有时甚至要返回逻辑设计阶段修改数据模型。模型。感谢你的观赏感谢你的观赏2019-8-2物理设计过程 数据库物理设计数据库物
31、理设计确定数确定数据库的据库的物理结物理结构构评价数据评价数据库的物理库的物理结构结构逻辑结逻辑结构设计构设计数据库数据库实施实施物理物理模型模型逻辑逻辑模型模型感谢你的观赏感谢你的观赏2019-8-27.5.2 关系模式存取方法选择 数据库系统是多用户共享的系统,对同一数据库系统是多用户共享的系统,对同一个关系要建立多条存取路径才能满足多用个关系要建立多条存取路径才能满足多用户的多种应用要求。户的多种应用要求。物理设计的第一个任务就是要确定选择哪物理设计的第一个任务就是要确定选择哪些存取方法,即建立哪些存取路径。些存取方法,即建立哪些存取路径。感谢你的观赏感谢你的观赏2019-8-2关系模式
32、存取方法选择(续)DBMS常用存取方法常用存取方法 索引方法,目前主要是索引方法,目前主要是B+树索引方法树索引方法 聚簇(聚簇(Cluster)方法)方法 HASH方法方法感谢你的观赏感谢你的观赏2019-8-2一、索引存取方法的选择 选择索引存取方法的主要内容选择索引存取方法的主要内容根据应用要求确定根据应用要求确定 对哪些属性列建立索引对哪些属性列建立索引 对哪些属性列建立组合索引对哪些属性列建立组合索引 对哪些索引要设计为唯一索引对哪些索引要设计为唯一索引感谢你的观赏感谢你的观赏2019-8-2索引存取方法的选择(续)选择索引存取方法的一般规则选择索引存取方法的一般规则 如果一个如果一
33、个(或一组或一组)属性经常在查询条件中出属性经常在查询条件中出现,则考虑在这个现,则考虑在这个(或这组或这组)属性上建立索引属性上建立索引(或组合索引或组合索引)如果一个属性经常作为最大值和最小值等聚如果一个属性经常作为最大值和最小值等聚集函数的参数,则考虑在这个属性上建立索集函数的参数,则考虑在这个属性上建立索引引 如果一个如果一个(或一组或一组)属性经常在连接操作的连属性经常在连接操作的连接条件中出现,则考虑在这个接条件中出现,则考虑在这个(或这组或这组)属性属性上建立索引上建立索引感谢你的观赏感谢你的观赏2019-8-2索引存取方法的选择(续)关系上定义的索引数过多会带来较多关系上定义的
34、索引数过多会带来较多的额外开销的额外开销 维护索引的开销维护索引的开销 查找索引的开销查找索引的开销感谢你的观赏感谢你的观赏2019-8-2建立聚簇索引 聚簇索引聚簇索引 建立聚簇索引后,基表中数据也需要按指定的建立聚簇索引后,基表中数据也需要按指定的聚簇属性值的升序或降序存放。也即聚簇索引聚簇属性值的升序或降序存放。也即聚簇索引的索引项顺序与表中元组的物理顺序一致。的索引项顺序与表中元组的物理顺序一致。例:例:CREATE CLUSTER INDEX Stusname ON Student(Sname);在在Student表的表的Sname(姓名)列上建立一个(姓名)列上建立一个聚簇索引聚簇
35、索引,而且,而且Student表中的记录将按照表中的记录将按照Sname值值的升序存放的升序存放 感谢你的观赏感谢你的观赏2019-8-2建立聚簇索引 在一个基本表上最多只能建立一个聚簇索引在一个基本表上最多只能建立一个聚簇索引 聚簇索引的用途:对于某些类型的查询,可以聚簇索引的用途:对于某些类型的查询,可以提高查询效率提高查询效率 聚簇索引的适用范围聚簇索引的适用范围 很少对基表进行增删操作很少对基表进行增删操作 很少对其中的变长列进行修改操作很少对其中的变长列进行修改操作 感谢你的观赏感谢你的观赏2019-8-2第七章 数据库设计n 7.1 数据库设计概述数据库设计概述n 7.2 需求分析
36、需求分析n 7.3 概念结构设计概念结构设计n 7.4 逻辑结构设计逻辑结构设计n 7.5 数据库的物理设计数据库的物理设计n 7.6 数据库实施和维护数据库实施和维护n 7.7 小结小结感谢你的观赏感谢你的观赏2019-8-27.6 数据库的实施和维护 数据库实施的工作内容数据库实施的工作内容 用用DDL定义数据库结构定义数据库结构 组织数据入库组织数据入库 编制与调试应用程序编制与调试应用程序 数据库试运行数据库试运行感谢你的观赏感谢你的观赏2019-8-2数据库实施数据库实施定义数定义数据库结据库结构构数据数据装载装载数据库物数据库物理设计理设计数据库运数据库运行和维护行和维护物理物理模
37、型模型编制与编制与调试应调试应用程序用程序 数据库数据库试运行试运行数据库数据库系统系统7.6 数据库的实施过程感谢你的观赏感谢你的观赏2019-8-2第七章 数据库设计n 7.1 数据库设计概述数据库设计概述n 7.2 需求分析需求分析n 7.3 概念结构设计概念结构设计n 7.4 逻辑结构设计逻辑结构设计n 7.5 数据库的物理设计数据库的物理设计n 7.6 数据库实施和维护数据库实施和维护n 7.7 小结小结感谢你的观赏感谢你的观赏2019-8-27.7 小结 数据库的设计过程数据库的设计过程 需求分析需求分析 概念结构设计概念结构设计 逻辑结构设计逻辑结构设计 物理设计物理设计 实施实
38、施 运行维护运行维护设计过程中往往还会有许多反复。设计过程中往往还会有许多反复。感谢你的观赏感谢你的观赏2019-8-2小结(续)数据库各级模式的形成数据库各级模式的形成 数据库的各级模式是在设计过程中逐步形成的数据库的各级模式是在设计过程中逐步形成的 需求分析阶段综合各个用户的应用需求(现实需求分析阶段综合各个用户的应用需求(现实世界的需求)。世界的需求)。概念设计阶段形成独立于机器特点、独立于各概念设计阶段形成独立于机器特点、独立于各个个DBMS产品的产品的概念模式概念模式(信息世界模型),(信息世界模型),用用E-R图来描述。图来描述。感谢你的观赏感谢你的观赏2019-8-2小结(续)在
39、逻辑设计阶段将在逻辑设计阶段将E-R图转换成具体的数据库图转换成具体的数据库产品支持的数据模型如关系模型,形成数据库产品支持的数据模型如关系模型,形成数据库逻辑模式逻辑模式。然后根据用户处理的要求,安全性。然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图的考虑,在基本表的基础上再建立必要的视图(VIEW)形成数据的)形成数据的外模式外模式。在物理设计阶段根据在物理设计阶段根据DBMS特点和处理的需要,特点和处理的需要,进行物理存储安排,设计索引,形成数据库进行物理存储安排,设计索引,形成数据库内内模式模式。感谢你的观赏感谢你的观赏2019-8-2小结(续)整个数据库设计过
40、程体现了结构特征与行整个数据库设计过程体现了结构特征与行为特征的紧密结合。为特征的紧密结合。感谢你的观赏感谢你的观赏2019-8-2小结(续)目前很多目前很多DBMS都提供了一些辅助工具(都提供了一些辅助工具(CASE工具),为加快数据库设计速度,设计人员可根工具),为加快数据库设计速度,设计人员可根据需要选用。据需要选用。例如需求分析完成之后,设计人员可以使用例如需求分析完成之后,设计人员可以使用ORACLE DESIGNER 画画E-R图,将图,将E-R图转换图转换为关系数据模型,生成数据库结构;画数据流为关系数据模型,生成数据库结构;画数据流图,生成应用程序。图,生成应用程序。感谢你的观赏感谢你的观赏2019-8-2附录:主讲教师主讲教师:主讲教师:xxxxxx附录:课程助教单位:厦门大学计算机科学系数据库实验室单位:厦门大学计算机科学系数据库实验室2016级硕士研究生级硕士研究生助教:助教:xxxxxx单位:厦门大学计算机科学系数据库实验室单位:厦门大学计算机科学系数据库实验室2016级硕士研究生级硕士研究生助教:助教:xxxx