配色: 字号:
第3章 数据库应用系统设计方法
2022-06-07 | 阅:  转:  |  分享 
  
数据库原理及应用第3章数据库应用系统设计方法数据库应用系统设计是指以计算机为开发和应用平台,以操作系统、某一商用数据库管理系统软件及开
发工具、某一程序语言等为软件环境,采用数据库设计技术进行完成某一特定应用领域或部门的数据管理功能的数据库应用系统的设计实现过程。
主要内容3.1数据库应用系统设计概述3.2用户需求分析3.3数据库概念结构设计3.4数据库逻辑结构设计3.5数
据库物理结构设计3.6数据库实现技术简介3.7数据库应用系统运行与维护第3章数据库应用系统设计方法3.1数据库应用
系统设计概述一、数据库应用系统的生命周期1、数据库应用系统设计涉及的问题及特点(1)一个数据库应用系统首先是一个应用软件系统,
所以其设计过程总体上应遵循问题定义、可行性研究、需求分析、总体设计、详细设计、编码与单元测试、综合测试、软件维护的软件生命周期的阶
段划分原则。一、数据库应用系统的生命周期1、数据库应用系统设计涉及的问题及特点(2)数据库应用系统的设计涉及到数据库的逻辑组
织、物理组织、查询策略与控制机制等专门知识。所以也需要一定的数据库设计知识和设计方法:概念结构设计逻辑结构设计物理结构设计
一、数据库应用系统的生命周期1、数据库应用系统设计涉及的问题及特点(3)数据库应用系统的设计,还要求设计人员应具有一定的关于该
组织的业务知识或实践经验。一、数据库应用系统的生命周期所以数据库应用系统的设计是一个极具挑战性的课题。本课程依照数据库应用系统
设计的三个基本特点,将软件工程与数据库技术相结合,提出了基于数据库应用系统生命周期的数据库应用系统设计方法。是指:把数据库应用系
统从开始进行用户需求分析,设计实现到投入应用,以至被新的系统取代而停止使用的整个时期。一、数据库应用系统的生命周期2、数据库应用
系统的生命周期二、数据库应用系统设计方法1、用户需求分析时期用户需求分析时期的主要工作包括分析用户对数据管理的功能需求、应用需
求和安全性需求,是进行数据库应用系统设计的基础。二、数据库应用系统设计方法2、数据库设计时期数据库设计时期的主要工作是针对某
一用户组织的数据管理应用需求,设计(构造)最优的数据库概念结构、逻辑结构和物理结构,使之能有效地存储和管理数据,以满足用户的信息管
理和数据操作需求。二、数据库应用系统设计方法3、数据库实现时期数据库实现时期的主要工作是依据数据库应用系统的功能需求和数据库
物理结构设计阶段设计好的存储结构和存取方法,设计数据库的子模式,给已经创建好的数据表装入实验数据,设计编程实现能够满足该用户组织中
各个用户对数据库应用需求的功能模块及其行为特性,装入实际数据进行系统试验性运行等。二、数据库应用系统设计方法4、数据库运行维护时
期数据库应用系统运行与维护时期的主要工作包括:必要的改正性维护、适应性维护、完善性维护;数据库转储备份与恢复及故障维护;数据库运
行性能的检测与改善等。三、数据库应用系统的视图级别在数据库应用系统的开发、使用和管理中,涉及到的人员主要有:(1)数据库应用
系统用户(一般简称用户)(2)应用程序员(3)系统分析员(4)数据库管理员(DataBaseAdministrator,
DBA)不同的人员所看到的数据库是有区别的,所以数据库应用系统具有不同的视图级别。三、数据库应用系统的视图级别在数据库应用系统
的开发、使用和管理中,涉及到的人员主要有:(1)数据库应用系统用户(一般简称用户)(2)应用程序员(3)系统分析员(4)数
据库管理员(DataBaseAdministrator,DBA)不同的人员所看到的数据库是有区别的,所以数据库应用系统具有不
同的视图级别。三、数据库应用系统的视图级别在数据库应用系统的开发、使用和管理中,涉及到的人员主要有:(1)数据库应用系统用户(
一般简称用户)(2)应用程序员(3)系统分析员(4)数据库管理员(DataBaseAdministrator,DBA)
不同的人员所看到的数据库是有区别的,所以数据库应用系统具有不同的视图级别。指那些在数据库应用系统设计中专门从事应用程序编写的程序
员。三、数据库应用系统的视图级别在数据库应用系统的开发、使用和管理中,涉及到的人员主要有:(1)数据库应用系统用户(一般简称
用户)(2)应用程序员(3)系统分析员(4)数据库管理员(DataBaseAdministrator,DBA)不同的人
员所看到的数据库是有区别的,所以数据库应用系统具有不同的视图级别。是指在数据库应用系统设计中负责系统需求分析,承担数据库应用系统
的软、硬件配置,参与数据库各级模式设计的工作人员(总设计师)。三、数据库应用系统的视图级别在数据库应用系统的开发、使用和管理中
,涉及到的人员主要有:(1)数据库应用系统用户(一般简称用户)(2)应用程序员(3)系统分析员(4)数据库管理员(Data
BaseAdministrator,DBA)不同的人员所看到的数据库是有区别的,所以数据库应用系统具有不同的视图级别。是指
在数据库系统运行过程中监管系统运行情况,改进系统性能和存储空间管理,负责数据库的备份与恢复等工作的系统管理人员应用数据库系统用户
终端用户外模式应用程序员DBMS逻辑模式系统分析员内模式OSDBA数据库三、数据库应用系统的视图级别#第3章数据库应用系统设计
方法3.2用户需求分析用户需求分析阶段的主要任务是了解用户组织的机构,建立用户组织的结构层次方框图;分析用户的业务活动,建立用
户的数据管理业务数据流图;收集所需数据,整理数据库中的信息内容;分析用户的数据处理要求和数据安全性与完整性要求;确定系统功能和软硬
环境配置,最终形成系统需求分析说明书。一、数据流图及用户业务处理逻辑描述1、数据流图的概念◆数据流图是一种用于描绘系统逻
辑模型的图形工具,是逻辑系统的图形表示。◆数据流图只关心系统需要完成的基本逻辑功能,而无须考虑这些逻辑功能的实现问题。◆数
据流图中没有任何具体的物理元素,只从数据传递和处理的角度反映信息在系统中的流动情况。数据源点与终点数据处理
数据存储数据流一、数据流图及用户业务处理逻辑描述2、数据流图的基本符号(1)数据源点与终点数据源点与终点用于
表示外部客体,比如存在于系统之外的人、事或组织等。数据的源点是指数据的起源处,数据的终点是指数据的目的地。数据源点与终点
数据处理数据存储数据流一、数据流图及用户业务处理逻辑描述2、数据流图的基本符号(2)数据处理
数据处理是对数据流图中的数据进行的特定加工过程。一个处理可以是一个程序、一组程序或一个程序模块,也可以是某个人工处理过程。数据源
点与终点数据处理数据存储数据流一、数据流图及用户业务处理逻辑描述2、数据流图的基本符号
(3)数据存储数据存储代表待处理的数据存放的场所,表示了处于静止状态的数据。一个数据存储可以是一个文件、文件的一部分、一个数据
库、数据库中的一个记录等。数据源点与终点数据处理数据存储数据流一、数据流图及用户业务处理逻辑
描述2、数据流图的基本符号(4)数据流数据流代表数据流图中数据的流动情况,箭头指明数据流动的方向。图书目录文件出版社档案
文件图书预定处理图书预定汇总出版社订单顾客订单顾客出版社订单文件订货汇总文件顾客购书档案文件一、数据流图及用户业务处理逻辑描述例
3.1图书预定系统——数据流图应用示例#补充例题:设计考务系统的顶层数据流图。解:补充例题:设计房屋租赁系统的数据流图。图书目
录文件出版社档案文件图书预定处理图书预定汇总出版社订单顾客订单顾客出版社订单文件订货汇总文件顾客购书档案文件二、数据字典1、数据
字典的引入数据流图表示了数据与处理的关系,但在数据流图中无法表达出每个数据和处理的具体含义和详细描述信息,于是引入数据字典来弥补
数据流图的不足,并和数据流图一起构成了用户需求信息的描述手段和工具。二、数据字典2、数据字典的概念数据字典是描述和定义数据流图
中所有数据的集合,用于给出数据流图中所有数据的定义和描述信息。二、数据字典及用户业务处理逻辑描述3、数据字典定义和描述信息的
方法(1)数据项数据项是最小的数据单位,是组成数据流的基本元素。对数据项的定义和描述信息主要包括:数据项名、别名、含义、类
型、长度、取值范围、使用频率、使用方式,及与其它数据项的关系等。二、数据字典3、数据字典定义和描述信息的方法(2)数据流数据
流表示数据处理过程中的输入或输出数据,可以是数据项,也可以是由数据项组成的某种数据结构的数据单位。对数据流的定义和描述信息主要包
括:数据流名、含义、组成数据流的数据项或数据结构、数据流的来源或去向、数据流的流量等。二、数据字典3、数据字典定义和描述信息
的方法(3)数据表数据表是信息管理中最长见的数据格式,许多数据表与数据库逻辑设计后的关系模式有一定的对应关系。二、数据字典
3、数据字典定义和描述信息的方法(3)数据表对数据表的描述信息主要有:数据表名、数据表中各个属性(字段)的编号、名称、数据
类型、数据长度、取值范围、数据表的所有者等。二、数据字典(3)数据表(示例)表3.1课程数据表所有者:计划管理子系统序号中
文名称类型长度字段名1课程代号char7KCDH2课程名称vchar50KCMC3课程类型vchar8KCLX4学时numer
ic2XS5学分numeric1XF6任课教研室vchar8RKJYS二、数据字典3、数据字典定义和描述信息的方法(4)处
理处理表示一个处理所要完成的工作或功能。对处理的定义和描述信息主要包括:处理的名称、处理的定义或描述、流入和流出处理的数据流
、执行频次等。#三、用户需求分析过程1、分析用户的业务活动,建立用户业务数据流图①详细了解各个用户(科员或部门)当前业务
活动、业务流程和业务处理中各个环节之间的信息流动顺序、处理顺序、需要的信息存储支持和处理的结果信息存储需求。②梳理各个业务活动
和业务流程中的输入信息和输出信息及其与中间信息的关系。③建立描述用户业务处理及其信息流动过程的数据流图。三、用户需求分析过程
1、分析用户的业务活动,建立用户业务数据流图分析方法:查阅各部门的业务处理记录和档案资料;和用户进行个别询问和座谈交流;
视情进行必要的跟班作业,问卷调查等。分析结果标志:建立描述用户业务信息流动和处理逻辑的数据流图。三、用户需求分析过程2、整理
用户业务信息流动和处理的数据信息,建立描述数据信息的数据字典①收集和整理描述用户业务信息流动和业务处理要求所涉及的各种数据信
息,包括:帐表、单据、报表、合同和档案中的数据描述要求,从各种规章、制度和业务处理文件中抽取出数据的描述信息。②通过进一步的梳
理和分类,标注出各个数据所相关的业务范围或相关部门。③确定每类信息中数据元素的确切的名称、类型、长度、取值范围和应用特征。三
、用户需求分析过程2、整理用户业务信息流动和处理的数据信息,建立描述数据信息的数据字典基本方法:从涉及的各种文档资料中收集
、分析和整理建立数据库所需的数据信息;并通过必要的个别交谈咨询和问卷调研等措施,完善收集和整理的数据信息。成果标志:完成数据字
典的编制。三、用户需求分析过程3、分析用户的信息处理要求,确定系统的信息管理和系统处理功能①进一步了解和细化用户组织中各
个业务部门的信息处理要求,也即他们希望从数据库中获得哪些信息,要获取的信息包括哪些具体内容;希望数据库应用系统完成什么样的处理功能
,对数据的处理方式和响应时间有什么样的要求。②进而根据计算机目前的处理能力来确定系统应实现的功能和所应具有的性能。三、用户
需求分析过程3、分析用户的信息处理要求,确定系统的信息管理和系统处理功能基本方法:查阅业务处理记录和档案资料;个别交谈询
问和集体座谈交流;进行必要的跟班作业。分析的结果:以文档形式描述的系统功能需求列表、系统性能要求列表和必要的辅助说明信息。三
、用户需求分析过程4、调研用户组织的机构组成和地理分布,初步确定系统的软硬环境配置方案调研了解用户组织的机构组成、各个部门的
职责及其相互关系、各个部门的规模和地理分布范围等信息;为系统网络环境及体系结构、系统硬件环境及性能要求、系统的软件环境配置及开发
工具需求等的确定提供依据。三、用户需求分析过程4、调研用户组织的机构组成和地理分布,初步确定系统的软硬环境配置方案基本方法
:与该用户组织中的有关领导和业务主管进行座谈;索取和收集相关的文档资料。在调研了解的基础上;勾画出一张能够比较全面反映该用户
组织机构及其相互关系的组织机构层次方框图。XX大学教务部教务长主管副部长主管副部长主管副部长主管副部长教务处教保处研究生处继续教
育处计划办教学实施办教材办培养办学位办继教办三、用户需求分析过程图3.5组织机构层次方框图示例三、用户需求分析过程4、调研用户组
织的机构组成和地理分布,初步确定系统的软硬环境配置方案接着:①根据各个部门的地理分布情况和初步的投资意向,初步确定系统的网络
拓扑结构和网络软硬件配置。②根据整个系统的信息处理需求,确定系统相关的硬件配置和软件配置,给出相应的开发平台与开发工具需求。
③根据用户组织的性质和信息安全要求,确定相应的信息安全措施。三、用户需求分析过程5、收集、整理需要进行管理的具体数据收
集、整理将要管理的实际数据及其组织格式,进一步完善数据字典中有关数据信息的描述,为数据库概念结构和数据库逻辑结构的设计提供参考,为
后续的系统实现验证和实际数据的录入奠定基础。三、用户需求分析过程用户需求分析的结果:完整的系统需求分析说明书。#四、数据库
应用系统的功能需求功能包括:①建立的数据库应用系统的信息管理功能;②基于该数据库应用系统的信息处理功能和辅助决策功能。
四、数据库应用系统的功能需求1、教学管理数据库应用系统的功能需求示例1)学生信息管理①学生信息的录入、修改、删除和灵活多
样的查询功能;②学生选课信息的录入、修改、删除和查询功能;③学生课程考试成绩的录入、修改、删除和灵活多样的查询功能(比如,
统计、排名等);④学生留级、休学等特殊信息的管理功能。四、数据库应用系统的功能需求1、教学管理数据库应用系统的功能需求示例
2)课程信息管理①课程基本信息的录入、修改、删除和查询功能;②专业选课信息及选课要求信息的查询功能;③课程安排
及其主讲教师信息的查询功能等。四、数据库应用系统的功能需求1、教学管理数据库应用系统的功能需求示例3)院系及专业信息管理院
系机构设置和专业设置信息的管理,包括相关的录入、修改、删除和查询功能。4)各种管理信息的报表输出和打印功能四、数据库应用系统的
功能需求2、企业网站的功能需求示例1)新闻发布2)产品展示3)用户管理4)需求调查与信息反馈5)网上购物6)人才招
聘7)企业论坛五、数据库应用系统环境配置与安全性需求1、数据库应用系统的环境配置依据用户需求分析获知的建立系统的复杂程
度;用户组织的规模、管理层次及其相互间的业务关系;用户组织各分机构的地理分布(一个办公室,一个建筑物内,一个大院内,一个城市的不同
街区,位于不同的城市等),确定要建的数据库应用系统的环境配置。五、数据库应用系统环境配置与安全性需求1、数据库应用系统的环
境配置1)单机(C/S模式)数据库应用系统,还是基于网络(B/S模式)的数据库应用系统;2)采用的数据库软件(及操作系统)是
什么。五、数据库应用系统环境配置与安全性需求2、系统的安全性需求1)数据库数据的备份策略;2)用户操作权限的授权和控制
;3)数据库加密方式,网络防火墙的配置,信息传输中的安全措施等。##第3章数据库应用系统设计方法3.3数据库概念结构
设计概念结构是一种能反映用户观点并更接近于现实世界的数据模型,也称为概念模型。数据库的概念结构是指用来表示用户组织中所涉及的所
有对象和事物(也即,实体),以及它们之间联系的一组实体-联系模型(EntityRelationshipModel,简称为E-R
模型)。概念结构设计的目标就是从需求分析中找到实体(集)、确认实体的属性、确认实体之间的联系,设计出反映用户组织信息管理需求的
E-R模型,并进而需求信息的正确性和完整性。由于E-R模型是一种图示表示形式,所以E-R模型也称为实体-联系图(EntityR
elationshipDiagram,简称为E-R图)。一、实体与实体集1、实体与实体集(1)实体是存在于用户组织中的抽
象的但有意义的“事物”。也即是用户组织中独立的客体。一、实体与实体集1)实体可以是具体的对象。例如,一个班级是一个实体。2
)实体可以是抽象的事件、抽象的概念这样的对象。例如,一次考试是这样的一个实体。3)实体可以是有形的对象。例如,一个学生是一
个实体。4)实体可以是无形的对象。例如,像爱和恨这样的概念就是无形实体一、实体与实体集(2)实体集实体集是具有相同类型及
相同属性的一组实体构成的集合。例如:所有的大学生构成了一个大学生实体集。一个大学的所有的课程,构成一个课程实体集。所有的汽
车构成一个汽车实体集。一、实体与实体集2、属性与实体集的标识码(1)属性实体通过一组属性表示。属性(Attribute
)是指实体集中所有实体所具有的的共同特征。例如,不同专业的学生实体集的属性都包括:“学号”、“姓名”、“性别”、“出生年月”等
一、实体与实体集2、属性与实体集的标识码(2)属性的值属性的值指属性的具体取值。例如,学生张华:“姓名”取值为张华;
“学号”取值为201401001;“性别”取值为男;“出生年月”取值为1996-12-14。一、实体与实体集2、属性与实体
集的标识码(3)属性的值域属性的值域(Domain)是指属性的取值范围。例如,大学生的“性别”的值域为{男,女}。◆属性
的值域可以是整数的集合,实数的集合,字符串的集合,或其它类型的值的集合。一、实体与实体集2、属性与实体集的标识码(4)特定
的实体当某实体集的每个属性使它的值域中的一个值同该实体集中的一个实体相联系时,就具体地描述了该实体集中的某个特定的实体。一、实体
与实体集(4)特定的实体例如,设有学生实体集有属性值域:{张华,李建军,王丽丽,……}{201401001,2014
01002,201201003,…}{男,女}{1996-12-14,1996-08-20,1997-02-02,…}
则当该学生实体集中的特定实体“张华”的每一个属性,与其相应的值域中的值相联系时,学生张中华的属性值集合{张华,201401001
,男,1996-12-14,……},就具体地描述了该学生实体集中的特定实体——张华的特征。一、实体与实体集2、属性与实体
集的标识码(5)实体记录用来表示一个特定实体的属性值集合称为实体记录。例如:{张华,201401001,男,1996-12-
14,……}是一个实体记录。实体记录集即为同类实体的实体记录的集合。一、实体与实体集2、属性与实体集的标识码(6)实体
集的标识码一般,把能够唯一地标识实体集中的每一个不同实体的一个或一组属性称为实体集的标识码。##二、实体集之间的联系及联系集
实体之间的联系:实体集之间的联系(Relationship)是指实体集之间有意义的相互作用及对应关系。●一对一联系(1:1
)●一对多联系(1:N,1:)●多对多联系(M:N,:)实体集E2实体集E1二、实体集之间的联系与联系集1
、一对一联系如果实体集E1中的每一个实体,至多与实体集E2中的一个实体有联系。反之,实体集E2中的每一个实体至多与实体集E1
中的一个实体有联系。则称E1和E2是一对一联系记为“1∶1”。11E2E111座位乘客实体集E2实体集E1二、实体集之间的联
系与联系集1、一对一实体集E2实体集E1二、实体集之间的联系与联系集2、一对多联系如果实体集E1中至少有一个实体与实体集
E2中的一个以上的实体有联系。反之,实体集E2中的每一个实体至多与实体集E1中的一个实体有联系。则称E1和E2是一对多联系
,记为“1∶N”,或“1:”。1ME1E21车间工人M实体集E2实体集E1二、实体集之间的联系与联系集2、一对多联系实体
集E2实体集E1二、实体集之间的联系与联系集3、多对多联系如果实体集E1中至少有一个实体与实体集E2中的一个以上的实体有联系
。反之,实体集E2中至少有一个实体与实体集E1中的一个以上的实体有联系。则称E1和E2是一对多联系,记为“M∶N”,或“
:”。MNE1E2MN学生课程实体集E2实体集E1二、实体集之间的联系与联系集3、多对多联系二、实体集之间的联系与联系集
4、联系集及其标识码联系集(RelationshipSet)是指具有相同属性的联系构成的集合。把能够唯一地标识联系集中的每个
联系的一个或一组属性称为联系集的标识码。一般情况下,联系集的标识码由被它联系的两个实体集的标识码组成。##三、E-R图设计方
法E-R图(Entity-RelationshipDiagram)也即实体联系图/E-R模型(E-RModel)。三、E-
R图设计方法1、E-R图的基本要素(1)实体集(2)联系集(3)属性集(4)标识码属性A1NRBYX标识码三、E-R图
设计方法2、E-R图的描述约定实体集A联系集R属性X三、E-R图设计方法3、建立E—R模型的步骤定义实体集;定义联系集;
根据各实体集和各联系集之间的联系,将它们组合起来,形成E-R图的雏形;■确定实体集与联系集的属性,标识出实体集与联系集的主码,形成
完整的E-R图。专业M设置NN课程例3.2:用实体-联系模型描述一个大学的专业、课程、学生和老师之间的教学情况,并设计相应的E-R
图。分析:通过分析,可将大学的专业、课程、学生和教师间的关系归纳如下:(1)大学有多个专业,每个专业设置有多门课程,某些课程
可被多个专业设置。课程N讲授M教师例3.2:用实体-联系模型描述一个大学的专业、课程、学生和老师之间的教学情况,并设计相应的ER图
。分析:通过分析,可将大学的专业、课程、学生和教师间的关系归纳如下:(2)每位教师可以主讲多门课程,某些课程可由多位教师主讲
。学生M学习N课程例3.2:用实体-联系模型描述一个大学的专业、课程、学生和老师之间的教学情况,并设计相应的ER图。分析:通过分
析,可将大学的专业、课程、学生和教师间的关系归纳如下:(3)一个学生必须学习多门课程,多个学生可以同时学习同一门课程(一门课程
可以被多名同学同时学习)1N归属专业学生例3.2:用实体-联系模型描述一个大学的专业、课程、学生和老师之间的教学情况,并设计相应
的ER图。分析:通过分析,可将大学的专业、课程、学生和教师间的关系归纳如下:(4)一个专业有多个学生;一个学生只能属于某一专
业,一个学生并属于某个班级。1N归属专业学生MM设置学习NNN课程N讲授M教师大学教学情况实体-联系模型(E-R图)的雏形/主
体例3.2:用实体-联系模型描述一个大学的专业、课程、学生和老师之间的教学情况,并设计相应的ER图。分析:专业、课程、学生和教师的
属性和标识码:(1)大学有多个专业,每个专业用唯一的专业代码和专业名称标识;(2)每门课程由课程号和课程名唯一标识;(3)每
位教师由教职工号、姓名、性别、出生年月、职称、(所属)教研室和电话标识;(4)每个学生由学号、姓名、性别、出生年月和籍贯标识。专
业代码专业名称班级学号姓名性别出生年月1籍贯N归属学生专业MM设置学习NN分数学时课程课程号课程名N讲授M教职工号电话号码教师姓名
教研室职称性别出生年月大学教学信息管理E-R图大学教学信息管理E-R图专业代码学号班级专业代码专业名称学号姓名性别出生年月1N
归属籍贯学生专业M学号M设置学习专业代码课程号NN分数学时课程课程号课程号课程名N讲授教职工号课程号M教职工号电话号码教师姓名教研
室职称性别出生年月图3.9大学教学信息管理E-R图##四、实体—联系模型设计中的一些特殊情况EMPLOYEESPERSONSPE
RSONS1N1N2NMOTHERCHILDRENMANAGERMANAGEDPARENTsCHILDRENMANAGEMOTHE
R-OFFAMILY四、实体—联系模型设计中的一些特殊情况1、递归联系(a)(b)(c)图3.10递归联系的E-R图表示用户1
M签定供应MNMN合同订货产品四、实体—联系模型设计中的一些特殊情况2、冗余联系图3.11冗余联系示例四、实体—联系模型设计中
的一些特殊情况3、isa联系AisaB表示实体集A包含在实体集B中,A是B中的一种特殊的群体。isa联系示例:ADD
RESS地址SALARY工资EMP-NO职工号NAME姓名PERSONNEL机组人员isaPILOTS飞行员MCAN-FLY能驾驶
NMODEL-NO型号MANUFACTURER制造厂PLANES飞机1TYPE类型是MSERIAL-NO序列号AICRAFT具体飞
机图3.12航空公司飞行员和班组人员的isa联系的E-R模型表示四、实体—联系模型设计中的一些特殊情况4、弱实体与弱联系如果
某实体集E1的存在依赖于另一个实体集E2的存在,并且这两个实体集之间的联系是用来标识E1的,那么就把实体集E1称为弱实体。另一种
弱实体集的定义:没有足够的属性形成主码的实体集。姓名性别出生年月教职工号教职工1抚养N子女姓名教职工号子女子女号出生年月
四、实体—联系模型设计中的一些特殊情况4、弱实体与弱联系#####图3.13弱实体示例四、实体—联系模型设计中的一些特
殊情况5、组合实体集(1)组合实体集的引入银行担保订购客户项目四、实体—联系模型设计中的一些特殊情况5、组合实体集(1
)组合实体集的引入在有银行贷款支持的购房交易中,由第三方(银行)提供担保的客户与项目之间存在的定购关系,可用如下的“E-R图”描
述其担保-订购关系。显然,图(a)的“E-R图”违反了“联系集是实体集与实体集之间的联系”的E-R图设计约定。该问题的解决方案
是:可以将该联系集和被其联系的实体集组合成高层实体集(组合实体集),并约定组合实体集也可以被看成是一个实体集而经某一联系集联系和其
它实体集产生联系。这样,图(a)的“E-R图”就可以表示成图(b)的E-R图了。(b)(a)四、实体—联系模型设计中的一些特殊情况
5、组合实体集(1)组合实体集的引入(2)组合实体集的应用示例例3.6某海外代购公司为扩展公司业务,需要开发一个信息
化管理系统。请根据其管理需求和涉及到的实体集及其相互之间的联系描述,完成该系统的E-R图设计(全国软件设师综合技能考试试题)。该
系统的管理需求和涉及到的实体集及其相互之间的联系描述如下:(1)公司员工信息包括工号、身份证号、姓名、性别和一个手机号,工号唯一
标识每一位员工。员工分为代购员和配送员。(2)商品信息包括商品条码、商品名称、所在超市名称、采购价格、销售价格和商品介绍,系统内
部用商品条码唯一标识每种商品。一种商品只在一家超市代购。(3)顾客信息包括顾客真实姓名、身份证号(缴税用)、一个手机号和一个收货
地址,系统自动生成唯一的顾客编号。(4)托运公司信息包括托运公司名称、电话和地址,系统自动生成唯一的托运公司编号。(5)顾客登
录系统之后,可下订单购买商品;订单支付成功后,系统记录唯一的支付凭证编号。顾客需要在订单里指定运送方式(空运或海运)。(6)代购
员根据顾客的订单在超市采购对应商品,一份订单所含的多个商品可能由多名代购员从不同超市采购。(7)采购完的商品交由配送员根据顾客订
单组合装箱,然后交给托运公司运送。托运公司按顾客订单核对商品名称和数量,然后按顾客的地址进行运送。组合实体集内部:(2)商品信
息包括商品条码、商品名称、所在超市名称、采购价格、销售价格和商品介绍。系统内部用商品条码唯一标识每种商品。一种商品只在一家超市代
购。(3)顾客信息包括顾客真实姓名、身份证号(缴税用)、一个手机号和一个收货地址,系统自动生成唯一的顾客编号。(5)顾客登录系
统之后,可下订单购买商品;订单支付成功后,系统记录唯一的支付凭证编号。顾客需要在订单里指定运送方式(空运或海运)。(2)“商品”
、“顾客”及其联系“订单”三者作为一个整体(组合实体集):一是与“代购员”构成多对多联系。二是与“托运公司”构成多对多联系。
(1)公司员工信息包括工号、身份证号、姓名、性别和一个手机号,工号唯一标识每一位员工。员工分为代购员和配送员。代购员和员工构成了
如图的用isa表示的递归关系。(6)代购员根据顾客的订单在超市采购对应商品,一份订单所含的多个商品可能由多名代购员从不同超市采
购。(7)采购完的商品交由配送员根据顾客订单组合装箱,然后交给托运公司运送。托运公司按顾客订单核对商品名称和数量,然后按顾客的
地址进行运送。(4)托运公司信息包括托运公司名称、电话和地址,系统自动生成唯一的托运公司编号。五、基于E-R图的概念结构设计步骤
和方法1、分E—R图的设计分E-R图的设计是从用户或用户组的不同数据观点出发,将数据库应用系统划分成多个不同的局部应用。五
、基于E-R图的概念结构设计步骤和方法2、总体E—R图的设计将设计好的各分E—R图进行集成,形成一个完整的,能支持各个局部概念
结构的数据库整体概念结构。会进一步涉及:消除命名冲突、消除属性特征冲突、消除结构冲突,也即:消除各分E-R图间存在的命名、属性
特征和结构的不一致和矛盾。五、基于E-R图的概念结构设计步骤和方法消除命名冲突:命名冲突包括同名异义和异名同义两种情况。◆同
名异义是指在不同的局部应用中的意义不同的对象(实体集、联系集或属性)采用了相同的名称。比如:学生——本科生,研究生五、基于E-R
图的概念结构设计步骤和方法消除命名冲突:命名冲突包括同名异义和异名同义两种情况。◆异名同义是指同一意义的对象在不同的局部应用
中采用了不同的名称。比如:家属,配偶五、基于E-R图的概念结构设计步骤和方法消除属性特征冲突:属性特征冲突是指同一意义的属
性在不同局部应用的分E-R图中采用了不同的数据类型、不同的数据长度、不同的数据取值范围、不同的度量单位等而产生的冲突。比如:性别
——男/女,M/F五、基于E-R图的概念结构设计步骤和方法消除结构冲突:结构冲突是指同一意义的对象(实体集、联系集或属性)在
不同局部应用的分E-R图中采用了不同的结构特征。有三种情况:(1)同一实体集在不同局部应用的分E-R图中所包含的属性个数不同,当
然有时也要考虑各属性排列顺序上的不一致。五、基于E-R图的概念结构设计步骤和方法消除结构冲突:结构冲突是指同一意义的对象(
实体集、联系集或属性)在不同局部应用的分E-R图中采用了不同的结构特征。有三种情况:(2)表示同一意义的实体集间的联系在不同局部
应用的分E-R图中采用了不同的联系类型。五、基于E-R图的概念结构设计步骤和方法消除结构冲突:结构冲突是指同一意义的对象(实
体集、联系集或属性)在不同局部应用的分E-R图中采用了不同的结构特征。有三种情况:(3)表示同一意义的对象(实体集、属性)在不同
局部应用的分E-R图中具有不同的抽象。比如:在一个分E-R图中抽象为实体集,而在另一个分E-R图中抽象为属性。五、基于E-R图
的概念结构设计步骤和方法3、总体E—R图优化由于在面向各个局部应用时对全局应用考虑不周,因而会使得到的总体E-R图存在冗余数据
和冗余联系。出生年月学号课程号课程号学号课程名学习学生课程姓名学时性别籍贯学分分数学分E—R图中存在冗余数据的例子:(有冗余
属性的)关系模式:课程关系模式:C(C#,CNAME,CLASSH,C_NUMBER)学习关系模式:SC(S#,C#,GRADE,
C_NUMBER)出生年月学号课程号课程号学号课程名学习学生课程姓名学时性别籍贯学分分数学分总体E—R图设计示例两个没有冗余属性的
关系模式:课程关系模式:C(C#,CNAME,CLASSH,C_NUMBER)学习关系模式:SC(S#,C#,GRADE)##E
-R图设计练习:1、下面的图给出的是一张交通违章处罚通知书。请根据这张通知书所提供的信息设计一个E-R模型,图上可省略属性标注。
提示:可以考虑违章处罚通知书只有警告处罚和既有警告处罚也有罚款处罚两种情况,只需考虑其中一种情况即可。E-R图设计练习:1、
下面的图给出的是一张交通违章处罚通知书。(1)请根据这张通知书所提供的信息设计一个E-R模型,图上可省略属性标注。E-R图设计练
习:交通违章通知书:编号:TZ11201司机姓名:XXX驾驶执照:XXXXXX地址:XXXXXXXXXX邮编:XXXXXX电话
:XXXXXXXX 机动车牌照:XXXXXX型号:XXXXXX制造厂:XXXXXX生产日期:XXXXXX 违章日期:XXXXXX时
间:XXXXXX地点:XXXXXX违章记载:XXXXXXXX 处罚方式:警告:罚款:暂扣驾驶执照: 警察签字:XXX警察编号
:XXX 被处罚人签字:XXX E-R图设计练习:第3章数据库应用系统设计方法3.4数据库逻辑结构设计数据库的逻辑结构
是一种由具体的DBMS支持的数据模型。0、逻辑结构设计的任务和步骤1、关系数据库逻辑结构设计阶段的主要任务就是把用E-R模型表
示的数据库的概念结构,转换成关系数据库管理系统所支持的逻辑数据模式;利用关系数据库的规范化理论对这组关系模式进行规范化设计;并根据
数据库的完整性和一致性要求以及系统查询效率要求,对得到的关系模式进行必要的优化处理,从而得出满足所有数据要求的关系数据模型,也即数
据库的逻辑结构。0、逻辑结构设计的任务和步骤2、步骤(1)将设计好的概念结构转换成关系模型;(2)利用规范化理论对转换好的关
系模型进行规范化设计和处理;(3)对关系模型进行优化处理。一一、E—R图表示的概念结构向关系模型的转换1、多对多联系向关系模型
的转换当两个实体集间的联系为M∶N联系时,每一个实体集用一个单独的关系模式表示,该关系模式的属性用相应实体集的属性表示,关系的键
用相应实体集的标识码表示。联系集也用一个单独的关系模式表示,该关系模式的属性用该联系集的属性表示,关系的键用该联系集的标识码表示。
专业代码专业名称专业代码学号班级学号姓名性别出生年月1籍贯N归属学生专业M学号M设置学习专业代码课程号NN分数学时课程课程号课程号
课程名N讲授教职工号课程号M教职工号电话号码教师姓名教研室职称性别出生年月图3.18E-R图中的M∶N联系的关系模式专业代码专
业名称专业代码学号班级学号姓名性别出生年月1籍贯N归属学生专业M学号M设置学习专业代码课程号NN分数学时课程课程号课程号课程名N讲
授教职工号课程号M教职工号电话号码教师姓名教研室职称性别出生年月图3.18E-R图中的M∶N联系的关系模式学生关系模式:S(S#
,SNAME,SSEX,SBIRTHIN,PLACEOFB)学习关系模式:SC(S#,C#,GRADE)课程关系模式:C(C#
,CNAME,CLASSH)专业关系模式:SS(SCODE#,SSNAME)设置关系模式:CS(SCODE#,C#)专业代码专
业名称专业代码学号班级学号姓名性别出生年月1籍贯N归属学生专业M学号M设置学习专业代码课程号NN分数学时课程课程号课程号课程名N讲
授教职工号课程号M教职工号电话号码教师姓名教研室职称性别出生年月图3.18E-R图中的M∶N联系的关系模式教师关系模式:T(
T#,TNAME,TSEX,TBIRTHIN,TITLEOF,TRSECTION,TEL)讲授关系模式:TEACH(T#,C#
)课程关系模式:C(C#,CNAME,CLASSH)学生关系模式:S(S#,SNAME,SSEX,SBIRTHIN,PLACE
OFB)专业关系模式:SS(SCODE#,SSNAME)课程关系模式:C(C#,CNAME,CLASSH)设置关系模式:CS
(SCODE#,C#)学习关系模式:SC(S#,C#,GRADE)教师关系模式:T(T#,TNAME,TSEX,TBIRTHI
N,TITLEOF,TRSECTION,TEL)讲授关系模式:TEACH(T#,C#)图3.18图3.9的实体-联系模型中的M
:N联系的关系模式二、E—R图表示的概念结构向关系模型的转换2、一对多联系向关系模型的转换当两个实体集间的联系为1∶N联系时,
联系两个实体集的联系集不再单独设置为关系,两个实体集的转换采用如下策略:(1)将位于联系集1端和N端的实体集按“多对多联系向关
系模型的转换”中所述的转换方式分别转换成一个关系模式,并将1端实体集的标识码和联系集的非标识码属性加入到N端实体集所转换成的关系模
式中。专业代码专业名称专业代码学号班级学号姓名性别出生年月1籍贯N归属学生专业M学号M设置学习专业代码课程号NN分数学时课程课程号
课程号课程名N讲授教职工号课程号M教职工号电话号码教师姓名教研室职称性别出生年月图3.18E-R图中的1∶N联系的关系模式专业
关系模式:SS(SCODE#,SSNAME)学生关系模式:S(S#,SNAME,SSEX,SBIRTHIN,PLACEOFB
,SCODE#,CLASS)二、E—R图表示的概念结构向关系模型的转换学生关系模式:S(S#,SNAME,SSEX,SBIR
THIN,PLACEOFB,SCODE#,CLASS)专业关系模式:SS(SCODE#,SSNAME)图3.19图3
.9的实体-联系模型中的1:N联系的关系模型二、E—R图表示的概念结构向关系模型的转换2、一对多联系向关系模型的转换(2)对于
象“一般”意义上的实体集和“具体”意义上的实体集这样的两个实体集之间的1∶N联系,将位于1端的“一般”意义上的实体集和位于
N端的“具体”意义上的实体集按“多对多联系向关系模型的转换”中所述的转换方式分别转换成一个关系模式,并将联系它们的联系集看作一个属
性加入到位于N端的实体集对应的关系模式中。ADDRESS地址SALARY工资EMP-NO职工号NAME姓名PERSONNEL班组人
员Misa1PILOTS飞行员MCAN-FLY能驾驶NMODEL-NO型号MANUFACTURER制造厂PLANES飞机1TYPE
类型是MSERIAL-NO序列号AICRAFT具体飞机图3.12航空公司飞行员和班组人员的isa联系的E-R模型表示ADDRESS
地址SALARY工资EMP-NO职工号NAME姓名PERSONNEL班组人员Misa1PILOTS飞行员MCAN-FLY能驾驶NM
ODEL-NO型号MANUFACTURER制造厂PLANES飞机1TYPE类型是MSERIAL-NO序列号AICRAFT具体飞机
飞机关系模式:PLANES(MODEL-NO,MANUFACTURER)具体飞机关系模式:AICRAFT(SERIAL-
NO,TYPE)图3.12航空公司飞行员和班组人员的isa联系的E-R模型表示二、E—R图表示的概念结构向关系模型的转换飞机关
系模式:PLANES(MODEL-NO,MANUFACTURER)具体飞机关系模式:AICRAFT(SERIAL-NO,
TYPE)二、E—R图表示的概念结构向关系模型的转换3、一对一联系向关系模型的转换当两个实体集间的联系为1∶1联系时,联
系两个实体集的联系集不再单独设置为关系,两个实体集的转换及优化采用如下策略。(1)将位于联系集两端的实体集按“多对多联系向关系模
型的转换”中所述的转换方式分别转换成一个关系模式,并在转换成的两个关系模式中的任意一个关系模式的属性中加入另一个关系模式的主键属性
和联系集的非标识码属性,得到两组转换成的关系模式。二、E—R图表示的概念结构向关系模型的转换3、一对一联系向关系模型的转换当两
个实体集间的联系为1∶1联系时,联系两个实体集的联系集不再单独设置为关系,两个实体集的转换及优化采用如下策略。(2)将位于联
系集两端的实体集按“多对多联系向关系模型的转换”中所述的转换方式分别转换成一个关系模式,并在转换成的两个关系模式中的任意一个关系模
式的属性中加入另一个关系模式的主键属性和联系集的非标识码属性,得到两组转换成的关系模式。(2)选择两组关系模式中数据冗余小、信息
完整和更符合实际的一组关系模式,作为最终的关系模式。地址电话邮政编码公司名公司1任职年月任职1职称总裁姓名公司总裁性别出生年月图3
.20公司总裁与公司的一对一联系地址电话邮政编码公司名公司1任职年月任职1职称总裁姓名公司总裁性别出生年月(1)转换公司关系模式(
公司名,地址,电话,邮政编码,总裁姓名,任职年月)公司总裁关系模式(总裁姓名,性别,出生年月,职称)地址电话邮政编码公司名公司1
任职年月任职1职称总裁姓名公司总裁性别出生年月(1)转换或:公司关系模式(公司名,地址,电话,邮政编码)公司总裁关系模式(总裁姓名
,性别,出生年月,职称,公司名,任职年月)二、E—R图表示的概念结构向关系模型的转换(1)转换公司关系模式(公司名,地址,电话
,邮政编码,总裁姓名,任职年月)公司总裁关系模式(总裁姓名,性别,出生年月,职称)或:公司关系模式(公司名,地址,电话,邮政编码
)公司总裁关系模式(总裁姓名,性别,出生年月,职称,公司名,任职年月)二、E—R图表示的概念结构向关系模型的转换(2)优化选择
在第一组关系模式中,“公司关系”的主键为{公司名,任职年月}。不足之处是:(1)由于“总裁姓名”和“任职年月”不是“公司关系
”的固有和自然属性,所以也有点不太符合实际。(2)总裁姓名在两个关系模式中都出现了,有数据冗余。第2组关系模式:公司关系(公司名
,地址,电话,邮政编码,总裁姓名,任职年月)公司总裁关系(总裁姓名,性别,出生年月,职称)第2组关系模式:公司关系(公司名,地址,
电话,邮政编码)公司总裁关系(总裁姓名,性别,出生年月,职称,公司名,任职年月)二、E—R图表示的概念结构向关系模型的转换(2)优
化选择在第二组关系模式中:(1)“公司关系”中记录的都是公司的自然信息,与谁任总裁无关。(2)“公司总裁关系”中的记录可反
映出历届总裁及其任职时间。所以,从信息完整性和更符合实际角度出发,最终应选择第二组关系模式。√第2组关系模式:公司关系(公司名,地
址,电话,邮政编码,总裁姓名,任职年月)公司总裁关系(总裁姓名,性别,出生年月,职称)第2组关系模式:公司关系(公司名,地址,电话
,邮政编码)公司总裁关系(总裁姓名,性别,出生年月,职称,公司名,任职年月)E-R图转换关系模型练习:将下图所示的E-R图转化为
关系模型,写出关系模式,并给出各关系模式的主键。二、E—R图表示的概念结构向关系模型的转换4、组合实体集及联系向关系模型的转换
在进行E-R图向关系模式的转换中,组合实体集内的实体集和联系集已经按其联系类型被转换成相应的关系模式了。设置组合实体集的目的就是
根据联系组合实体集的联系集及其联系类型,并按照前述的转换规则把联系集及其联系的另一端的实体集转换成相应的关系模式。与前述的多对多
转换规则所不同的是,属于联系集的且来自组合实体集的标识码属性应该是组合实体集中的联系集的全部或部分主码属性。也即,在将联系组合实体
集的联系集转换成关系模式时,来自组合实体集一方的标识码属性的选取应该是组合实体集中的“联系集”的全部或部分标识码属性。(1)对多
对多联系“商品-订单-顾客”的转换商品(商品条码,商品名称,所在超市名称,采购价格,销售价格,商品介绍)顾客(顾客编号,顾客姓名,
身份证号,手机号,收货地址)订单(订单ID,顾客编号,商品条码,商品数量,运送方式,支付凭证编号)(2)对多对多联系“代购员(员
工)-代购-顾客的商品订单”的转换员工(工号,身份证号,姓名,性别,手机号)代购(代购ID,(代购员)工号,订单ID,商品条码
)其中,用“工号”的编排特征,区分其代购员身份。(3)多对多联系“配送员(员工)-运送-托运公司”的转换,以及多对多联系“托运
公司-运送-顾客的商品订单”的转换托运公司(托运公司编号,托运公司名称,电话,地址)运送(运送ID,(配送员)工号,托运公司编
号,订单ID,发运时间)员工(工号,身份证号,姓名,性别,手机号){也即(2)中的“员工”关系模式}其中,用“工号”的编排特征,
区分其代购员身份。三、关系数据库模式的规范化设计及优化1.关系数据库模式的规范化设计◆数据库逻辑结构设计的结果是一组关
系模式。◆这组关系模式的合理与否直接影响数据库的查询性能。因此,需要按照某种规则或标准来衡量得到的这组关系模式的合理性,也
即判断其是否是规范化的关系模式。三、关系数据库模式的规范化设计及优化1.关系数据库模式的规范化设计所谓关系模式的规范化设
计,就是按照不同的范式(标准)对关系模式进行分解,通过将一个关系模式不断地分解成多个关系子模式和建立模式之间的关联,来消除数据依赖
中不合理的部分,最终实现使一个关系仅描述一个实体。或一个关系仅描述者实体间的一种联系。三、关系数据库模式的规范化设计及优化1.
关系数据库模式的规范化设计关系模式规范化设计的范式(标准):1NF、2NF、3NF、BCNF等几种,3NF、BCN
F应用最为广泛,一般推荐以3NF为标准。三、关系数据库模式的规范化设计及优化2.关系模式的优化当关系模式的规范化程度较
高时,关系模式分解的就比较“碎”,在实际应用中就会因出现过多的联接运算而使查询效率较低。关系数据模型优化就是依据应用需求对信息处
理的要求,综合衡量得到的关系模式是否符合最常用的查询要求,从查询效率角度出发对某些关系模式进行合并,以便减少联接运算次数,提高查询
效率。三、关系数据库模式的规范化设计及优化2.关系模式的优化比如:SSC(SCODE#,SSNAME,C#)将其分解
成两个关系模式:SS(SCODE#,SSNAME)CS(SCODE#,C#)##第3章数据库应用系统设计方法3.5
数据库物理结构设计数据库的物理结构是指数据库在物理存储设备上的文件组织方式、存储结构和存取方法。因此,数据库物理结构设计就是
要建立数据库文件,并根据应用要求和所选用的DBMS的数据库存储结构及存储方法,为逻辑结构设计阶段设计好的逻辑数据库模型,选择和设计
其在物理存储设备上的物理存储结构和存取方法。基于SQLServer数据库管理系统开发数据库应用系统时,数据库的物理结构设计内容
主要包括:创建数据库数据文件和日志文件,在数据库数据文件中创建二维表形式的关系模式(以下简称数据表、关系表或表,是关系模式在关系
数据库中的存在形式),为数据表创建索引,对数据库的物理结构进行评价等。一、SQLServer的数据文件和日志文件1、数据文件
与日志文件数据库中的所有的数据信息和相关控制信息都是存放在物理文件中的。数据库的物理文件主要包括数据文件和日志文件两种。一、
SQLServer的数据文件和日志文件1)数据文件数据文件是指存储用户的数据库对象(如表,视图,索引等)和用户数据的文件
。小型数据库应用系统可以仅有一个数据文件,大型数据库应用系统可以有多个数据文件。其中的一个数据文件被定义为主数据文件,用来存储
数据库的启动信息和部分数据,是数据库的起点,并指向数据库中的其他次数据文件。一、SQLServer的数据文件和日志文件2)
日志文件日志文件是一个系统文件。日志文件的功能是用于记录用户对数据库中插入新数据、删除原数据、修改原数据时的各种相关的更新信
息,这些更新信息也称为恢复数据库所需的日志信息。一、SQLServer的数据文件和日志文件2)日志文件每个数据库至少应有
一个日志文件。对于一个大型或较大型数据库来说,为了保障充足的日志信息、比较长的恢复时段和更快的恢复速度,每个数据库应至少配置2个
或3个日志文件。一、SQLServer的数据文件和日志文件2)日志文件数据库的更新信息一般包括:从事更新的用户标识信息
;开始更新时间,结束更新时间;当为修改操作时,未修改前的数据和修改后的数据;当为插入操作时,新插入的数据;当为删除操作时,
删除前的原数据等。一、SQLServer的数据文件和日志文件2)日志文件日志文件的作用(用途):当由于出现某种数据库故
障而使数据库中信息损坏时,就可在系统恢复机制的控制下,利用日志文件中的信息实现对数据库中数据的恢复。一、SQLServer的数
据文件和日志文件2、SQLServer2012数据库的存储结构数据库数据(文件).mdf及.ndf日志(文件).ldf表
、索引盘区(8个连续页面)页(8KB)数据SQLServer2012数据库的存储结构如下图:SQLServer的数据库由数
据文件和日志文件组成。每个SQLServer文件由多个盘区(extent)组成,每个盘区由8个连续的页面组成。SQLSer
ver2012利用盘区和页面数据结构给数据库对象分配存储空间。数据库数据(文件).mdf及.ndf日志(文件).ldf表、索引盘
区(8个连续页面)页(8KB)数据……1)盘区每个盘区是由8个连续页组成的数据结构,大小为8KB×8=64KB。当创建一个
数据库对象(比如,一个表、一个索引)时,SQLServer自动以盘区为单位给它们分配存储空间。每个盘区只能包含一个数据库对象,
每个数据对象可以占用多个盘区。数据库数据(文件).mdf及.ndf日志(文件).ldf表、索引盘区(8个连续页面)页(8KB)数据
……2)页面(数据页、索引页、文本页、图像页等)每个页面大小为8KB(8192个字节),页面的开始部分是96个字节的页头信
息,用于存储页的类型、该页的可用空间数量、占用该页的数据库对象的对象标识等系统信息;剩余的8096个字节用于存放该页的数据库对象的
数据信息。系统数据库用户数据库二、SQLServer2012数据库数据库是以数据库文件形式存在的,数据库文件是数据库的物
理表象。二、SQLServer2012数据库1、系统数据库Master、Msdb、Model和Tempdb。(1)Mas
ter:记录了一个SQLServer系统的所有系统信息所有的登录信息系统设置信息SQLServer初始化信息系统中其它
系统数据库和用户数据库的相关信息,包括其空间分配信息等二、SQLServer2012数据库1、系统数据库Master、M
sdb、Model和Tempdb。(2)Msdb:存储计划信息以及与备份和恢复相关的信息,尤其是SQLServerAgen
t需要使用它来执行安排工作和警报、记录操作者等操作二、SQLServer2012数据库1、系统数据库Master、Msd
b、Model和Tempdb。(3)Model:是所有用户数据库的创建模板。当创建数据库时,系统会将Model数据库中的内容复
制到新建的数据库中去。可以对Model数据库进行修改,包括添加用户定义数据类型、规则和存储过程等,对Model数据库的任何修改都会
自动地反映到新建的数据库中。二、SQLServer2012数据库1、系统数据库Master、Msdb、Model和Temp
db。(4)Tempdb:用作系统的临时存储空间,用来存储临时信息。存储用户建立的临时表和临时存储过程存储用户说明的全局变量
值为数据排序创建临时表!注:所有在tempdb中创建的临时表都会在SOLServer停止和重启时删除。二、SQLServ
er2012数据库2、用户数据库用户数据库是指存储用户的数据库对象、存储用户的数据和存储用户更新数据库时的日志信息的数据库。其
中:存储用户的数据库对象和用户数据的数据库文件称为用户数据库数据文件,文件类型为“.mdf”,例如JXGL.mdf。存储用户更
新数据库时的日志信息的数据库文件称为用户数据库日志文件,文件类型为“.ldf”,例如JXGL_log.ldf。SQLServe
r2012数据库中的主要数据库对象有:(1)表。存放各种数据的载体。(2)视图。查看数据库中一个或多个表或视图中数据的一种方法
。(3)索引。实现数据快速检索并强制数据完整性的一种存储结构。(4)存储过程。一组预先编译好的能实现特定数据操作功能的SQ
L语句集。(5)触发器。一种特殊的存储过程,在用户向表中插入、更新或删除数据时自动执行。(6)函数。将一个或多个T-SQL命令
语句创建成函数,以便能够重复性使用这些函数。(7)用户。数据库的用户,也即允许访问数据库的用户列表。二、SQLServer
2012数据库数据库创建方法:(1)通过SQLServerManagementStudio创建自己的数据库(文件)。(
2)使用SQL语言创建自己的数据库(文件){详见第4章}。三、SQLServerManagementStudio创建数据库的
方法使用SQLServerManagementStudio创建数据库示例。【例3.13】使用SQLServerMa
nagementStudio工具,为图1.8和图1.11所示的大学教学管理数据库创建数据库,数据库的名称为JXGL。(1)单
击“开始→所有程序→MicrosoftSQLServer2012→SQLServerManagementStudio”
菜单命令,启动SQLServerManagementStudio工具。(2)在启动后弹出的“连接到服务器”对话框(如图1.
15)中,点击“连接”按钮,连接数据库服务器。(3-1)在成功启动后的SQLServerManagementStudio工
具主界面中,打开“对象资源管理器”(有时“对象资源管理器”已经自动打开,如图1.16)。(3-2)在“对象资源管理器”中鼠标右键
单击“数据库”对象,在弹出的快捷菜单上选择“新建数据库”。系统将显示“新建数据库”对话框,如图3.22所示。(4)在单击“新建数
据库”对话框中的“常规”选项卡,进行数据库属性设置。设置过程如下。①在“数据库名称”文本框中输入要建立的数据库的名称:JXG
L。注意,数据库的名称必须遵循SQLServer的命名规范,并且不能与已有的数据库名重复。系统会自动为该数据库建立两个数据库文
件:数据文件“JXGL.mdf”和日志文件“JXGL_log.ldf”,默认存储在“安装目录\MicrosoftSQLServ
er\MSSQL1.MSSQLSERVER\MSSQL\DATA”目录下。(4)在单击“新建数据库”对话框中的“常规”选项卡,进
行数据库属性设置。设置过程如下。②在“数据库文件”列表中的“逻辑名称”栏可以根据需求修改数据文件和日志文件的逻辑名称。如果
确需修改,作为初学者,建议按①的方法在“数据库名称(N)”栏重新输入新的名称即可。(4)在单击“新建数据库”对话框中的“常规”
选项卡,进行数据库属性设置。设置过程如下。③根据需求可修改数据文件和日志文件的初始大小和自动增长方式。若要修改自动增长方式,则
需单击“自动增长”栏中相应文件的“…”按钮,在弹出的“更改JXGL的自动增长设置”对话框中进行相应的设置,如图3.23所示。图3.
22(4)在单击“新建数据库”对话框中的“常规”选项卡,进行数据库属性设置。设置过程如下。③根据需求可修改数据文件和日志文件
的初始大小和自动增长方式。若要修改自动增长方式,则需单击“自动增长”栏中相应文件的“…”按钮,在弹出的“更改JXGL的自动增长设置
”对话框中进行相应的设置,如图3.23所示。作为初学者,建议不要尝试做这一步。图3.23(4)在单击“新建数据库”对话框中的“
常规”选项卡,进行数据库属性设置过程如下。④若要修改数据库文件的存储路径,则需单击“路径”栏中相应文件的“…”按钮,在弹出的“
定位文件夹”对话框中进行存储路径的选择,如图3.24所示。图3.24(4)在单击“新建数据库”对话框中的“常规”选项卡,进行数据
库属性设置过程如下。⑤如需添加新的数据文件或日志文件,可单击图3.22中的“添加”按钮,在“逻辑名称”栏输入要添加的新文件名;
在“文件类型”栏选择“数据”或“日志”。添加数据文件时,“文件组”栏可选择PRIMARY组或新创建一个新文件组;再选择文件增长方式
等,点击“确定”按钮完成数据库新文件的添加。也可以从数据库中删除所选文件,但要注意,无法删除主数据文件和主日志文件。初学者,建议不
要尝试做这一步。(5)单击“确定”按钮,SQLServer完成数据库的创建。在“对象资源管理器”中双击“数据库”对象,可以看到
新建的“JXGL”数据库。四、数据表及其创建与修改1、数据表数据表也即关系表,简称为表,是关系数据库中组织数据的基本单位,是关
系模式在数据库中的物理表象,是数据库中存储各特定主题数据的地方,也是数据管理应用中从数据库中查询数据的“数据之源”。数据表及其该
表所属的数据是存储在数据库文件中的,当数据库文件多于一个时,每一个数据表及其数据只能存储在其中的一个数据库文件中。四、数据表及
其创建与修改2、数据表的数据类型及约束S(S#,SNAME,SSEX,SBIRTHIN,PLACEOFB,SCODE
#,CLASS)在创建数据表时,需要给出表名、各属性(字段)名、各属性的数据类型和与该数据类型相适应的数据长度、该属性值是
否可为空值(null)、关系表的主键等。其中,表中有关属性值是否可为空值属于该属性的约束信息;指出表中哪些属性是主键属性属于该
关系表的约束信息,凡是主键属性,其属性值一定不能为空值。四、数据表及其创建与修改2、数据表的数据类型及约束表3.2学生关系
表及其约束字段名称字段类型字段大小允许为空含义与说明S#char9否学号,主键SNAMEchar16否姓名SSEXchar2否性别
SBIRTHINdatetime否出生日期PLACEOFBchar16否籍贯SCODE#char5是专业代码CLASSchar6是
班级四、数据表及其创建与修改3、创建数据表的方法建立了SQLServer数据库文件(空数据库)后,接下来在该数据库文件中要创
建的数据库对象就是数据表。在SQLServer2012中,可以利用SQLServer2012的表设计器创建表,也可以利用
SQL语言语句创建表(详见第4章)。下面介绍利用SQLServer2012中的表设计器创建数据表的方法。利用SQLServ
er2012中的表设计器创建数据表【例3.14】利用表设计器在大学教学管理数据库JXGL中创建“学生关系表”S。1)进入表
设计视图对话框(1)启动SQLServerManagementStudio工具,并连接数据库服务器。然后在SQLSer
verManagementStudio工具的主界面中的“对象资源管理器”中展开“数据库”,进而展开之前创建的“JXGL”。主
界面中的资源管理器部分如图3.25所示。图3.25(2-1)鼠标光标放在“JXGL”下的“表”对象上点击右键,在弹出的快捷菜
单上选择“新建表”菜单命令,如图3.26。图3.26(2-2)鼠标光标放在“JXGL”下的“表”对象上点击右键,在弹出的快捷菜
单上选择“新建表”菜单命令,如图3.26。系统会弹出“表设计器”对话框,如图3.27所示。图3.272)“学生表”结构的建立在
“表设计器”中依次输入已经设计好的“学生表”S的各个属性信息,包括列名、数据类型、是否允许为空值等,如图3.28所示。图3.28
3)为“学生表”S创建主键在表设计器中鼠标右键单击“S#”字段,在弹出的下拉菜单(图3.29)中选择“设置主键”命令,将学号字段
设置为主键,如图3.30所示。或者选中“S#”字段后,单击工具栏中的按钮,将学号字段设置为主键。图3.30图3.294)保存创
建的表(1)在“文件”菜单中选择“保存”菜单命令,弹出“选择名称”对话框,如图3.31所示,接着为该表输入名称:S,单击“确定”
按钮,完成数据表的创建。(2)在“对象资源管理器”的“JXGL”数据库下的“表”对象中,用户可以查看到刚刚建立的数据表S。利用S
QLServer2012中的表设计器创建数据表数据库创建和数据表创建过程屏幕录像:2创建数据库和表.exe22创建数据库和表
.exe创建数据库和表2创建数据库和表.exe.exe四、数据表及其创建与修改4、表结构的修改方法修改操作包括:(1)更改表
名。(2)添加新的列。(3)删除已有的列。(4)修改已有列的属性(列名、数据类型、长度、默认值以及约束)。二、表结构的修改修
改:进入表设计器修改表结构新建列:添加新属性修改:修改该列的属性设置重命名:为该列重新命名删除:删除选中的列重命名:为表重新命名删
除:删除选中的表四、数据表及其创建与修改5、表的删除方法当要删除一个表时,首先在SQLServerManagementS
tudio工具的数据库窗口的“对象资源管理器”中选中要删除的表,然后在要删除的表上单击鼠标右键,在弹出菜单中选择“删除”选项。另一
种方法是选择SQLServerManagementStudio主窗口的“编辑”→“删除”命令。四、数据表及其创建与修改6、
表中数据的插入和更新创建好表后就可以向表中输入(添加)数据了。1)添加数据记录打开表S(如下图):1)添加数据记录打开表
S,则对象资源管理器详细信息如图3.32所示。1)添加数据记录添加数据记录的操作步骤:(1)将光标定位到“行编辑器”中有“
”的一行,即可输入要添加的记录。(2)记录输入完毕后,关闭数据表视图,系统自动保存表中数据。【例3.15】给创建的学生关系表输
入图1.8中的学生关系的数据记录。按添加记录的步骤,添加了学生关系S的记录的结果如图3.33所示。上图中,最下部的一行符
号和数字称为记录定位器,用于定位记录。其中,数字是当前记录的行数和表中共有的记录数。相关的符号含义如下。2)修改数据记录如果之
前添加的数据记录出错了或过时了,就需要对其进行修改。修改数据记录步骤为:(1)将光标定位到需要修改的数据记录。(2)直接在需
要修改的字段进行修改。(3)关闭数据表视图,系统自动保存表中数据。3)删除数据记录删除表中的数据记录的步骤为:(1)单击拟
删除的数据记录的“行定位器”。(2)右击弹出快捷菜单,如图3.34所示,选择“删除记录”选项,系统显示提示信息对话框。(3)如
图3.35所示,在“删除记录提示”对话框中,单击“是”按钮,即可删除该记录。图3.35图3.344)浏览数据记录【例3.16】
浏览大学教学管理数据库“JXGL”中学生关系表S的所有学生记录。(1)启动SQLServerManagementStudi
o工具,在“对象资源管理器”中选择“数据库”对象中的“JXGL”数据库。(2)在“JXGL”数据库下的“表”对象中鼠标右键单击表
S,在弹出的快捷菜单上选择“打开表”菜单命令。(3)在“数据视图”中将显示表S所有记录的内容,如图3.33所示。五、索引技术1
、索引的概念索引是一种表形式的数据结构,由给定的一个或一组数据项(主键或非主键)组成。对于主键值Ki(i=1,2,…,n)和
对应记录的地址A(Rki),{Ki,A(Rki)}称为索引项,索引的一般结构为:K1K2K3…knA(RK1)A(RK2)A(R
K3)…A(Rkn)数据区(学生关系S)索引表主键地址指针201401001张华…201401003王丽丽
…201401001o201401002李建平…201401002o201402002吴志伟…
201401003o201402001杨秋红…201402001o………201402002o…
…图3.37学生关系索引五、索引技术线性索引树形索引五、索引技术索引的分类{组织方式}五、索引技术2、线性索
引分为稠密索引和稀疏索引。五、索引技术(1)稠密索引(denseindex)及其特征1)按主键值的排序建立索引项,每个索
引项包含一个主键值和由该主键值标识的记录的地址指针。2)每个索引项对应一个记录,记录的存放顺序是任意的。3)索引项的个数与记
录的个数相等(也就是说索引项较多,所以称为稠密索引)。数据区(学生关系S)索引表主键地址指针201401001张华…
201401003王丽丽…201401001o201401002李建平…201401002
o201402002吴志伟…201401003o201402001杨秋红…201402001o…
……201402002o……图3.37学生关系索引五、索引技术稠密索引示例:五、索引技术(2)稀疏索引(spars
eindex)及其特征1)所有数据记录按主键值顺序存放在若干个块中。2)每个块的最大主键值(即该块最后一个数据记录的主键
值)和该块的起始地址组成一个索引项。3)每个块中的索引项按主键值顺序排列组成索引表(由于是每个块只有一个索引项,索引项较少,所
以称为稀疏索引)。稀疏索引示例:数据区(学生关系S)201401001张华…索引表主键地址指针201401002李
建平…201401003o201401003王丽丽…201402003o201402001杨秋红
…201403003o201402002吴志伟………201402003李涛…201403001
赵晓艳…201403002赵惠…201403003孙东方…图3.38学生关系的稀疏索引方式五、索引技术五、索引技术
3、B-树(树形索引)在稀疏索引方式中,当索引项很多时,可以将索引分块,建立高一级的索引;进一步,还可以建立更高一级的索引,…
,直至最高一级的索引只占一个块为止。这种多级索引就组成了一棵多级索引树。2°9°-∧26°60°99°
2°26°140°9°15°-∧60°85°-∧140°159°-∧第一级索引140
°180°-∧第二级索引2°5°-∧26°39°48∧99°120°-∧180°201
°220°第三级索引图3.39多级索引五、索引技术五、索引技术与B-树相关的概念、术语:(1)结点在B-树中,将根结点
、叶结点和内结点统称为结点。其中,内结点是指B-树中除根结点和叶结点以外的其它结点。°60°99°°180
°-∧°26°140°°9°-∧3948-85--15
--159--201220-120--25-五、索引技术根结点内结点叶结点五、索引技术
与B-树相关的概念、术语:(1)结点:在B-树中,将根结点、叶结点和内结点(B-树中除根结点和叶结点以外的结点)统称为结点。
根结点和内结点是存放索引项的存储块,简称为索引存储块或索引块。五、索引技术与B-树相关的概念、术语:(1)结点:在B-树中,将
根结点、叶结点和内结点(B-树中除根结点和叶结点以外的结点)统称为结点。叶结点是存放记录索引项的存储块,简称为记录索引块或叶块。
也即,每个记录索引项中包含的是关系中一个记录的主键和它的地址指针。五、索引技术与B-树相关的概念、术语:(2)子树:结点中每
个地址指针指向一棵子树,也即结点中的每个分支称为一棵子树。°60°99°°180°-∧°26
°140°°9°-∧3948-85--15--159--2
01220-120--25-五、索引技术根结点内结点叶结点五、索引技术与B-树相关的概念、术语:
(3)B-树的深度:每棵B-树所包含的层数,包括叶结点,称为B-树的深度。°60°99°°180°-∧
°26°140°°9°-∧3948-85--15--
159--201220-120--25-五、索引技术根结点内结点叶结点五、索引技术与B-树相关
的概念、术语:(4)B-树的阶数:B-树的结点中具有的最多的指针数称为B-树的阶数。°60°99°°180
°-∧°26°140°°9°-∧3948-85--15-
-159--201220-120--25-五、索引技术根结点内结点叶结点满足如下条
件的B-树称为一棵m阶B-树(m为不小于3的正整数):(1)根结点或者至少有2个子树,或者本身为叶结点;(2)每个结点最多有m
棵子树;(3)每个内结点至少有棵子树(为向上取整符号);(4)从根结点到叶结点的每一条路径长度相等,也即树中
所有叶结点处于同一层次上。五、索引技术B-树的定义:…五、索引技术有关约定:(1)除叶结点之外的所有其它结点的索引块最多可
存放m-1个主键值和m个地址指针。…五、索引技术有关约定:(2)叶结点上不包含数据记录本身,而是由记录索引项组成的记录索引块
,每个记录索引项包含有主键值和地址指针。每个叶结点中的记录索引项按其主键值大小从左到右顺序排列。每个叶结点最多可存放n个记录索引项
(n为不小于3的正整数)。格式:五、索引技术有关约定:(3)一般假设,每一个索引块能容纳的索引项数是个奇数,且m=2d-1≥3
;每一个页块(记录索引块)能容纳的记录索引项也是个奇数,且n=2e-1≥3。这里,d和e是大于等于2的正整数。而且值得注意的是
:前面分别用m和n表示索引块中的索引项数和页块中的记录索引项数,说明索引快和页块中的项数可以不同。°60°99°°
9°-∧°26°140°°180°-∧3948-85--
15--159--201220-120--25-五、索引技术多级索引的B-树示例
:第一个索引项(省略了主鍵值)第二个索引项第三个索引项图3.40图3.39中多级索引的B-树五、索引技术4、SQLSe
rver的形索结构1)聚簇索引聚簇索引是一种对表在物理数据页中的数据,按建立索引的列值(由一个或多个列组成的主键)进行(升序)排序,并按排序结果重新把数据记录物理地顺序存放在一起的索引结构。也就是说,聚簇索引中索引行的顺序与表中数据记录的物理顺序相同。五、索引技术1)聚簇索引聚簇索引的结构类似于一种树状结构,由根节点和非叶级节点的索引页和叶级节点的数据页组成,数据页是聚簇索引的最底层(叶子节点)。也就是说,根页和非叶级页存放的是索引数据,叶级页存放的是表中的数据记录。五、索引技术图3.41聚集索引结构示意图五、索引技术4、SQLServer的形索结构2)非聚簇索引非聚簇索引是一种如图3.25中由根页节点至最后一级分支索引页节点组成的索引结构(B-树结构)。也就是说,非聚簇索引仍包含有按升序排列的列值,但它并不对表在物理数据页中的数据记录的物理顺序进行重新排序,所以索引顺序与表中数据记录的物理顺序并不相同,且叶级索引页中包含的是数据记录的主键值及其指向该数据记录的指针,而不是数据记录本身。也即,非聚簇索引的最底层的叶级索引页中的行指向的是数据页中的数据记录。五、索引技术图3.42非聚集索引结构示意图五、索引技术5、索引的规划索引规划首先是确定需要为哪些关系表建立索引,接着还涉及到选择建立索引的属性(字段)、建立索引的原则和顺序,最后才是索引的创建方法。五、索引技术5、索引的规划索引的规划分为以下几个步骤:1)选择索引字段2)确认在哪个或哪些字段上建立索引或建立组合索引的一般规则3)聚集索引和非聚集索引的创建顺序4)索引规划方案的评价五、索引技术6、索引的创建完成表的索引规划后,并且数据表中有巨大级别量的数据时,就可以利用SQLServerManagementStudio工具或Transcaction-SQL语句创建索引了。1)创建索引例3.17使用SQLServerManagementStudio,为大学教学信息管理数据库中的学生关系S在学生姓名SNAME列上建立非聚集索引,要求按升序排列。{略}五、索引技术6、索引的创建2)查看索引例3.18在大学教学信息管理数据库中,查看学生关系S中的索引。{略}五、索引技术6、索引的创建3)删除索引例3.19在大学教学信息管理数据库中,删除学生关系S中的索引。{略}六、数据库物理结构评价评价方法:就是对数据库物理设计过程中设计好的存储结构和存储方式从时间效率、空间效率、维护代价和各种用户要求等方面进行定量估算和权衡物理结构设计修改满足设计要求数据库实现逻辑结构设计评价设计的物理存储结构存储方法确定DB的物理存储结构存储方法修改物理模型逻辑模型六、数据库物理结构评价数据库物理结构设计及其评价后的修改过程,以及与逻辑设计和数据库实现阶段的关系:第3章数据库应用系统设计方法3.6数据库实现技术简介数据库实现主要包括:数据库的子模式设计;数据库应用行为设计与实现;装入实际数据进行系统试运行等。1、数据库子模式设计数据库的子模式设计就是根据数据库应用系统面对的不同用户及其他们分别看到的数据库局部逻辑结构,由系统分析员创建必要的用户子模式(用户视图),以便为应用程序员面向各个用户的数据库应用程序模块的设计提供方便。当然,有些程序员习惯于直接在数据表上对数据进行操作,这样就不需要再设计数据库子模式了。2、数据库应用行为设计与实现编程设计能够满足该用户组织中各种用户对数据库应用需求的功能模块和行为特性,也即进行应用程序的设计、调试和实现。主要包括:功能模块设计、统计分析设计、特殊功能要求设计、用户接口和系统界面设计等。3、装入实际数据进行系统试运行给数据库录入和加载实验验证数据。对建立的数据库应用系统的初步试运行过程。在系统试运行期,要通过反复执行数据库的各种操作,测试系统是否满足用户的功能要求。在系统试运行期,还要特别注意系统的性能测试、评价和修改完善。第3章数据库应用系统设计方法3.7数据库应用系统运行与维护一、软件维护软件维护是指在一个软件交付使用之后,为了改正错误或满足新的需求而维护软件的过程。常用的软件维护包括改正性维护、适应性维护和完善性维护。一、软件维护1.改正性维护软件投入运行后,对发现的某些软件错误的进一步诊断和改正过程。一、软件维护2.适应性维护为了适应变化了的软件和硬件环境而进行的修改软件的活动,称为适应性维护。一、软件维护3.完善性维护针对用户对投入运行后的软件提出的增加新功能或修改已有功能的建议,而进行的修改和维护软件的活动,称为完善性维护。二、软件运行与维护时期的工作1.必要的改正性维护、适应性维护、完善性维护2.数据库备份与恢复及故障处理3.数据库运行性能的检测与改善##本章复习要点数据库应用系统的生命周期(4个时期6个阶段)数据库管理员及其职责数据流图(概念,与程序流程图的区别)数据库的主要功能需求数据库的安全性需求本章复习要点实体集与联系集(基本概念,区别)实体集之间的联系E-R图设计步骤和分析设计方法实体联系模型向关系模型的转换(多对多,一对多,一对一)本次课复习要点数据库物理结构设计数据库数据文件日志文件线性索引:稠密索引与稀疏索引的概念及区别树形索引:B-树软件维护:改正性维护、适应性维护、完善性维护
献花(0)
+1
(本文系太好学原创)