AnIntroductiontoDatabaseSystem数据库系统原理AnIntroductiontoDatabaseSystem第七章数据库设计AnIntroductiontoDatabaseSystem第七章数据库设计7.1数据库设计概述7.2需求分析7.3概念结构设计7.4逻辑结构设计7.5数据库的物理设计7.6数据库实施7.7数据库运行与维护7.8小结AnIntroductiontoDatabaseSystem数据库设计概述(续)什么是数据库设计数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)在数据库领域内,常常把使用数据库的各类系统统称为数据库应用系统。AnIntroductiontoDatabaseSystem7.1.1数据库和信息系统数据库是信息系统的核心和基础把信息系统中大量的数据按一定的模型组织起来提供存储、维护、检索数据的功能使信息系统可以方便、及时、准确地从数据库中获得所需的信息数据库是信息系统的各个部分能否紧密地结合在一起以及如何结合的关键所在数据库设计是信息系统开发和建设的重要组成部分AnIntroductiontoDatabaseSystem数据库设计人员应该具备的技术和知识数据库的基本知识和数据库设计技术计算机科学的基础知识和程序设计的方法和技巧软件工程的原理和方法应用领域的知识AnIntroductiontoDatabaseSystem数据库设计的基本步骤(续)二、数据库设计的过程(六个阶段)⒈需求分析阶段准确了解与分析用户需求(包括数据与处理)是整个设计过程的基础,是最困难、最耗费时间的一步AnIntroductiontoDatabaseSystem数据库设计的基本步骤(续)⒉概念结构设计阶段是整个数据库设计的关键通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型AnIntroductiontoDatabaseSystem数据库设计的基本步骤(续)⒊逻辑结构设计阶段将概念结构转换为某个DBMS所支持的数据模型对其进行优化AnIntroductiontoDatabaseSystem数据库设计的基本步骤(续)⒋数据库物理设计阶段为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)AnIntroductiontoDatabaseSystem数据库设计的基本步骤(续)⒌数据库实施阶段运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果建立数据库编制与调试应用程序组织数据入库并进行试运行AnIntroductiontoDatabaseSystem数据库设计的基本步骤(续)⒍数据库运行和维护阶段数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整与修改。需求搜集和分析设计概念结构设计逻辑结构数据模型优化设计物理结构评价设计、性能预测使用、维护数据库物理实现试运行需求分析阶段概念设计阶段逻辑设计阶段物理设计阶段数据库实施阶段数据库运行维护阶段AnIntroductiontoDatabaseSystem数据库各级模式的形成过程应用需求应用1应用需求应用2应用需求应用3应用需求应用4逻辑模式内模式综合概念模式转换映像映像外模式应用1外模式应用2外模式应用3外模式应用4AnIntroductiontoDatabaseSystem数据库设计的基本步骤(续)逻辑设计阶段首先将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式然后根据用户处理的要求、安全性的考虑,在基本表的基础上再建立必要的视图(View),形成数据的外模式AnIntroductiontoDatabaseSystem数据库设计的基本步骤(续)物理设计阶段根据DBMS特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式AnIntroductiontoDatabaseSystem第七章数据库设计7.1数据库设计概述7.2需求分析7.3概念结构设计7.4逻辑结构设计7.5数据库的物理设计7.6数据库实施7.7数据库运行与维护7.8小结7.3.2概念结构设计的方法与步骤设计概念结构的四类方法自顶向下首先定义全局概念结构的框架,然后逐步细化自底向上首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构概念结构设计的方法与步骤(续)逐步扩张首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构混合策略将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。概念结构设计的方法与步骤(续)自顶向下策略概念结构设计的方法与步骤(续)自底向上策略概念结构设计的方法与步骤(续)逐步扩张概念结构设计的方法与步骤(续)常用策略自顶向下地进行需求分析自底向上地设计概念结构需求概念模式1.1概念模式1.2概念模式n.1概念模式n.2概念模式1概念模式n…需求1需求n…需求1.1需求1.2需求n.1需求n.2全局概念模式概念结构设计的方法与步骤(续)自底向上设计概念结构的步骤第1步:抽象数据并设计局部视图第2步:集成局部视图,得到全局概念结构需求分析DFDDD数据抽象、局部视图的设计分E-R图视图集成总E-R图逻辑结构设计征求用户意见直到满意为止7.3.3数据抽象与局部视图设计数据抽象局部视图设计一、数据抽象概念结构是对现实世界的一种抽象从实际的人、物、事和概念中抽取所关心的共同特性,忽略非本质的细节把这些特性用各种概念精确地加以描述这些概念组成了某种模型数据抽象(续)数据抽象的用途对需求分析阶段收集到的数据进行分类、组织(聚集),形成实体实体的属性,标识实体的码确定实体之间的联系类型(1:1,1:n,m:n)一、合并分E-R图,生成初步E-R图各分E-R图存在冲突各个局部应用所面向的问题不同由不同的设计人员进行设计各个分E-R图之间必定会存在许多不一致的地方合并分E-R图的主要工作与关键所在:合理消除各分E-R图的冲突合并分E-R图,生成初步E-R图(续)冲突的种类属性冲突命名冲突结构冲突AnIntroductiontoDatabaseSystem第七章数据库设计7.1数据库设计概述7.2需求分析7.3概念结构设计7.4逻辑结构设计7.5数据库的物理设计7.6数据库实施7.7数据库运行与维护7.8小结AnIntroductiontoDatabaseSystem逻辑结构设计逻辑结构设计具体过程转化为一般数据模型转化为特定DBMS支持下的据模型优化模型概念结构设计数据库物理设计基本E-R图特定DBMS的特点与限制优化方法如规范化理论逻辑模型转换规则AnIntroductiontoDatabaseSystemE-R图向关系模型的转换(续)转换内容E-R图由实体、实体的属性和实体之间的联系三个要素组成关系模型的逻辑结构是一组关系模式的集合将E-R图转换为关系模型:将实体、实体的属性和实体之间的联系转化为关系模式。AnIntroductiontoDatabaseSystemE-R图向关系模型的转换(续)转换原则⒈一个实体型转换为一个关系模式。关系的属性:实体型的属性关系的码:实体型的码例,有一个学生实体AnIntroductiontoDatabaseSystem学生学号出生日期年级所在系平均成绩姓名学生实体可以转换为如下关系模式:学生(学号,姓名,出生日期,所在系,年级,平均成绩)AnIntroductiontoDatabaseSystemE-R图向关系模型的转换(续)⒉一个m:n联系转换为一个关系模式。关系的属性:与该联系相连的各实体的码以及联系本身的属性关系的码:各实体码的组合例,“选修”联系是一个m:n联系,它的E-R图为:AnIntroductiontoDatabaseSystemE-R图向关系模型的转换(续)课程选修学生mn成绩AnIntroductiontoDatabaseSystemE-R图向关系模型的转换(续)按照上面规则可以将它转换为如下关系模式,其中学号与课程号为关系的组合码:选修(学号,课程号,成绩)AnIntroductiontoDatabaseSystemE-R图向关系模型的转换(续)⒊一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。1)转换为一个独立的关系模式关系的属性:与该联系相连的各实体的码以及联系本身的属性关系的码:n端实体的码AnIntroductiontoDatabaseSystemE-R图向关系模型的转换(续)⒊一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。2)与n端对应的关系模式合并合并后关系的属性:在n端关系中加入1端关系的码和联系本身的属性合并后关系的码:不变可以减少系统中的关系个数,一般情况下更倾向于采用这种方法AnIntroductiontoDatabaseSystemE-R图向关系模型的转换(续)班级组成学生1nAnIntroductiontoDatabaseSystemE-R图向关系模型的转换(续)例,“组成”联系为1:n联系。将其转换为关系模式的两种方法:1)使其成为一个独立的关系模式:2)将其学生关系模式合并:组成(学号,班级号)学生(学号,姓名,出生日期,所在系,年级,班级号,平均成绩)AnIntroductiontoDatabaseSystemE-R图向关系模型的转换(续)⒋一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。1)转换为一个独立的关系模式关系的属性:与该联系相连的各实体的码以及联系本身的属性关系的候选码:每个实体的码均是该关系的候选码AnIntroductiontoDatabaseSystemE-R图向关系模型的转换(续)⒋一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。2)与某一端对应的关系模式合并合并后关系的属性:加入对应关系的码和联系本身的属性合并后关系的码:不变AnIntroductiontoDatabaseSystemE-R图向关系模型的转换(续)班级管理教师11AnIntroductiontoDatabaseSystemE-R图向关系模型的转换(续)例,“管理”联系为1:1联系,可以有三种转换方法:(1)转换为一个独立的关系模式:管理(职工号,班级号)或管理(职工号,班级号)AnIntroductiontoDatabaseSystemE-R图向关系模型的转换(续)例,“管理”联系为1:1联系,可以有三种转换方法:(2)“管理”联系与班级关系模式合并,则只需在班级关系中加入教师关系的码,即职工号:班级:(班级号,学生人数,职工号)AnIntroductiontoDatabaseSystemE-R图向关系模型的转换(续)例,“管理”联系为1:1联系,可以有三种转换方法:(3)“管理”联系与教师关系模式合并,则只需在教师关系中加入班级关系的码,即班级号:教师:(职工号,姓名,性别,职称,班级号,是否为优秀班主任)AnIntroductiontoDatabaseSystemE-R图向关系模型的转换(续)注意:u从理论上讲,1:1联系可以与任意一端对应的关系模式合并。u但在一些情况下,与不同的关系模式合并效率会大不一样。因此究竟应该与哪端的关系模式合并需要依应用的具体情况而定。u由于连接操作是最费时的操作,所以一般应以尽量减少连接操作为目标。例如,如果经常要查询某个班级的班主任姓名,则将管理联系与教师关系合并更好些。AnIntroductiontoDatabaseSystemE-R图向关系模型的转换(续)⒌三个或三个以上实体间的一个多元联系转换为一