第1章 设计数据库.docx
《第1章 设计数据库.docx》由会员分享,可在线阅读,更多相关《第1章 设计数据库.docx(24页珍藏版)》请在冰豆网上搜索。
第1章设计数据库
第1章
设计数据库
■数据库的发展历史和数据库的基本概念。
■需求分析。
■概念模型设计。
■逻辑模型设计。
■物理模型设计。
■数据库的实现、运行和维护。
■SQLServer2012数据库管理系统。
■掌握数据库的基本概念和数据库的发展历史。
■了解需求分析的任务和方法。
■掌握概念模型的概念和设计方法。
■掌握逻辑模型的概念和设计方法。
■了解物理模型的概念和设计方法。
■了解数据库的实现、运行和维护的内容。
■熟悉SQLServer2012数据库管理系统的功能和组成部分。
1.1工作场景导入
【工作场景】
为了提高教务管理工作水平,达到学校日常管理工作信息化、智能化的要求,教务处要求信息管理员小孙创建一个学生成绩管理系统。
学生成绩管理系统所涉及的信息包括校内所有的系、班级、学生、课程和学生成绩。
学生成绩管理系统的具体实施步骤分成两步。
第一步,创建一个学生成绩数据库,将系统所有的信息存储在数据库中。
第二步,以学生成绩数据库为基础创建学生成绩管理系统,通过Windows应用程序或浏览器来完成系统信息的修改和查询。
【引导问题】
(1)什么是数据库?
数据库的发展历史是怎样的?
(2)怎样完成需求分析?
(3)怎样完成概念模型设计?
(4)怎样完成逻辑模型设计?
(5)怎样完成物理模型设计?
(6)怎样完成数据库的实施、运行和维护?
(7)什么是SQLServer2012?
1.2数据库概述
1.2.1数据库的基本概念
数据是描述事物的符号记录。
数据包括文字、图形、图像、声音等。
数据库(Database,DB)是一个长期存储在计算机内的、有组织的、可共享的、统一管理的数据集合。
数据库中的数据是按照一定的数据模型组织、描述和存储的,有较小的冗余度、较高的数据独立性和易扩展性。
数据库管理系统(DatabaseManagementSystem,DBMS)是使用和管理数据库的系统软件,负责对数据库进行统一的管理和控制。
所有对数据库的操作都交由数据库管理系统完成,这使得数据库的安全性和完整性得以保证。
数据库管理员(DatabaseAdministrator,DBA)是专门负责管理和维护数据库服务器的人。
通常,数据库管理员的工作职责包括安装和升级数据库服务器及应用程序工具,编制数据库设计系统存储方案并制订未来的存储需求计划,根据应用来创建和修改数据库,管理和监控数据库的用户,监控和优化数据库的性能,制订数据库备份计划,定期进行数据库备份,在灾难出现时对数据库信息进行恢复等。
在实际工作中,可能一个数据库有一个或多个数据库管理员,也可能一个数据库管理员同时负责系统中的多项工作。
数据库系统(DatabaseSystem,DBS)是由数据库及其相关应用软件、支撑环境和使用人员所组成的系统,专门用于完成特定的业务信息处理。
数据库系统通常由数据库、数据库管理系统、数据库管理员、用户和应用程序组成。
1.2.2数据库的发展历史
数据库的发展大致可划分为以下几个阶段:
人工管理阶段、文件系统阶段和数据库系统阶段。
(1)人工管理阶段。
20世纪50年代中期之前,计算机刚刚出现,主要用于科学计算。
硬件存储设备只有磁带、卡片和纸带;软件方面还没有操作系统,没有专门管理数据的软件。
因此,程序员在程序中不仅要规定数据的逻辑结构,还要设计其物理结构,包括存储结构、存取方法、输入/输出方式等。
数据的组织单纯面向该应用,不同的计算程序之间不能共享数据,使得不同的应用之间存在大量的重复数据,数据与程序不独立。
数据是通过批处理方式进行处理的,处理结果不保存,难以重复使用。
(2)文件系统阶段。
20世纪50年代中期到60年代中期,随着计算机大容量存储设备(如硬盘)和操作系统的出现,数据管理进入文件系统阶段。
在文件系统阶段,数据以文件为单位存储在外存,且由操作系统统一管理。
用户通过操作系统的界面管理数据文件。
文件的逻辑结构与物理结构相对独立,程序和数据分离。
用户的程序与数据可分别存放在外存储器上,各个应用程序可以共享一组数据,通过文件来进行数据共享。
但是,数据在文件中的组织方式仍然是由程序决定的,因此必然存在相当大的数据冗余。
数据的逻辑结构和应用程序相关联,一方修改,必然导致另一方也要随之修改。
简单的数据文件不能体现现实世界中数据之间的联系,只能交由应用程序来进行处理,缺乏独立性。
(3)数据库系统阶段。
20世纪60年代后,随着计算机在数据管理领域的普遍应用,数据管理开始运用数据库技术,进入了数据库系统阶段。
数据库技术以数据为中心组织数据,采用一定的数据模型。
数据模型不仅体现数据本身的特征,而且体现数据之间的联系。
形成的数据库数据冗余小,易修改,易扩充,便于共享,程序和数据有较高的独立性。
不同的应用程序对数据库的操作均由数据库管理系统统一执行,这就保证了数据的安全性、完整性,可有效地完成并发管理。
1.2.3数据库系统的结构
数据库系统通常采用3级模式结构,即数据库系统由模式、外模式和内模式3级组成。
●模式。
模式也称逻辑模式,表示数据库中全体数据的逻辑结构、数据之间的联系、安全性和完整性要求,是完整的数据视图。
模式所描述的逻辑结构包含整个数据库。
●外模式。
外模式也称子模式或者用户模式,表示数据库用户能够使用的部分数据的逻辑结构和特征,是用户的数据视图。
外模式面向用户,用于描述用户所关心的数据。
●内模式。
内模式也称存储模式,表示数据库中数据的物理结构和存储结构。
内模式描述了数据库在物理存储设备上的存储方式。
外模式可以有多个,而模式只有一个。
每个外模式和模式之间存在外模式与模式映像,是外模式和模式之间的对应关系。
当模式改变时,外模式与模式的映像随之改变,使得外模式保持不变,使用外模式的应用程序也保持不变,保证了数据的逻辑独立性。
逻辑独立性将数据库的结构与应用程序相分离,减少了修改应用程序的工作量。
内模式和模式一样,只有一个。
模式和内模式之间存在模式与内模式映像,是模式和内模式之间的对应关系。
当内模式改变时,模式与内模式的映像随之改变,使得模式保持不变,保证了数据的物理独立性。
1.3需求分析
自数据库系统阶段至今,人们将软件工程的理论应用于数据库设计,形成了一个完整的数据库设计实施方法,整个过程包括需求分析、概念模型设计、逻辑模型设计、物理模型设计及数据库实现、运行和维护5个阶段。
1.3.1需求分析的任务
需求分析的内容是充分调查研究,收集基础数据,了解系统运行环境,明确用户需求,确定新系统的功能,最终得到系统需求分析说明书,作为设计数据库的依据。
需求分析所调查的重点是数据和处理,以获得用户对数据库的以下要求:
用户需要从数据库中获得信息的内容与性质;用户要完成什么处理功能,对处理的响应时间有什么要求;安全性和数据完整性要求;企业的环境特征,包括企业的规模与结构、部门的地理分布、主管部门对机构的规定与要求、对系统费用与利益的限制及未来系统的发展方向。
1.3.2需求分析的方法
在做需求分析时,首先要了解用户单位的组织机构组成,然后调查用户单位的日常业务活动流程。
在此基础上,明确用户的信息需求和系统概念需求,明确用户对系统的性能和成本的要求,确认数据项,产生系统需求说明书。
需求分析的调查方法包括跟班作业、开调查会、请专人调查、发放用户调查表和查阅原系统有关记录。
1.3.3需求分析的成果
需求分析生成的结果包括数据字典、数据流图、判定表、判定树等。
(1)数据字典是系统中所有数据及其处理的描述信息的集合。
数据字典由数据项、数据结构、数据流、数据存储及处理过程组成。
(2)数据流图是结构化分析方法中使用的图形化工具,描绘数据在系统中流动和处理的过程。
数据流图包括数据流、数据源、对数据的加工处理和数据存储。
数据流图根据层级不同可分为顶层数据流图、中层数据流图和底层数据流图。
顶层数据流图经过细化可以产生中层流图和底层流图。
(3)判定表和判定树是描述加工的图形工具,分别是表格和树状结构,适合描述问题处理中具有多个判断的结构,而且每个决策与若干条件有关。
判定表和判定树可以给出判定条件和判定决策,以及判定条件的从属关系、并列关系和选择关系。
1.4概念模型设计
需求分析结束后,进入概念模型设计阶段。
1.4.1数据模型
数据模型是用来描述现实世界的数据、数据之间的联系、数据的语义和完整性约束的工具。
数据模型包括概念模型、逻辑模型和物理模型。
1.4.2概念模型
概念模型要能真实地反映现实世界,包括事物和相互之间的联系,能满足用户对数据的处理要求,是表示现实世界的一个真实模型。
概念模型是用户与数据库设计人员之间进行交流的语言。
概念模型不依赖于特定的数据库管理系统,但可以转换为特定的数据库管理系统所支持的数据模型。
因此,概念模型要易于理解、易于扩充和易于向各种类型的逻辑模型转换。
1.4.3概念模型设计的任务
概念模型设计的任务是根据需求分析说明书对现实世界进行数据抽象,建立概念模型。
概念模型的作用是与用户沟通,确认系统的信息和功能,与DBMS无关。
1.4.4概念模型设计的方法
概念模型的设计方法有4种,分别是自顶向下、自底向上、逐步扩张和混合策略。
自顶向下是指先设计概念模型的总体框架,再逐步细化。
自底向上是指先设计局部概念模型,再合并成总体。
逐步扩张是指先设计概念模型的主要部分,再逐步扩充。
混合策略是指将自顶向下和自底向上相结合,先设计概念模型的总体框架,再根据框架来合并各局部概念模型。
1.4.5概念模型设计的成果
概念模型有实体-联系模型、面向对象的数据模型、二元数据模型、语义数据模型、函数数据模型等。
下面仅介绍常用的实体-联系模型。
1.4.6实体-联系模型
实体-联系模型是用E-R图来描述现实世界的概念模型。
实体-联系模型中的基本概念有以下几个。
●实体。
实体是现实世界中可区分的客观对象或抽象概念,如一个学生、一门课程。
●属性。
属性是实体所具有的特征,如每个学生都有学生编号、姓名、性别、班级、出生日期等属性。
●实体集。
实体集是具有相同属性描述的实体的集合,如学生、课程。
●联系。
两个实体集之间存在一对一、一对多和多对多3种联系。
例如,一个班级只有一个班长,班级和班长之间是一对一的联系;一个学生属于一个班级,一个班级有多个学生,班级和学生之间是一对多的联系;一个学生选修多门课程,一门课程有多个学生选修,课程和学生之间是多对多的联系。
●键。
键是可以将实体集中的每个实体进行区分的属性或属性集,也称主属性。
例如,每个学生的学生编号绝不相同,学生编号这个属性可以作为学生实体集的键。
●域。
域是实体集的各个属性的取值范围。
例如,学生的性别属性取值为“男”或“女”。
E-R图的内容包括实体集、属性和联系。
E-R图中,实体集用矩形表示,内有实体集名称;属性用椭圆形表示,内有属性名称,并用直线与所属实体型相连,作为键的属性用下划线标出;联系用菱形表示,内有联系名称,并用直线与实体集相连,且在联系旁边注明联系的类型(如1∶1、1∶n或者m∶n)。
如果联系有属性,那么也要用直线将属性和联系相连,如图1.1所示。
图1.1E-R图
采用实体-联系模型进行概念模型设计的步骤分为如下3步。
(1)设计局部实体-联系模型。
具体任务是确定局部实体-联系模型中的实体集、实体集的属性、键、实体集之间的联系和属性,画出局部E-R图。
(2)设计全局实体-联系模型。
具体任务是合并局部E-R图,生成全局E-R图,并消除局部E-R图合并时产生的冲突。
(3)优化全局E-R模型。
具体任务是修改全局E-R图,消除冗余属性和冗余联系,得到最终的E-R图。
1.5逻辑模型设计
概念模型设计结束后,进入逻辑模型设计阶段。
1.5.1逻辑模型
逻辑模型通常由数据结构、数据操作和完整性约束组成。
其中,数据结构是指表示与数据类型、内容、性质等有关的系统静态特性,数据操作是数据库检索和更新操作的含义、规则和实现的语言,数据的约束条件是逻辑模型中数据及其联系所要遵守的完整性规则的集合。
逻辑模型是数据库系统的核心和基础。
逻辑模型设计的要求是把概念模型转换成所选用的数据库管理系统所支持的特定类型的逻辑模型。
已有的逻辑模型有层次模型、网状模型和关系模型。
(1)层次模型的总体结构为树形结构,其中节点表示记录类型,每个记录类型包含多个属性,节点之间的连线表示记录类型之间的联系,除根节点外的所有节点有且只有一个双亲节点。
层次模型的优点是简单,完整性支持良好,适用于层次性联系的场合;缺点是插入和删除操作的限制较多,查询必须逐级通过双亲节点。
(2)网状模型允许节点有零个乃至多个双亲,还允许节点之间有多个联系。
它较之层次模型更接近现实,存取效率高;但数据独立性复杂,在存取时要指定路径。
(3)关系模型建立在严格的数学概念基础上,是当前流行的逻辑模型。
关系模型中以表来表示实体和实体之间的联系,以表来存储记录,数据结构简单,存取路径透明,具有良好的数据独立性和安全保密性。
1.5.2关系模型的概念
关系模型中,表是基础逻辑结构,由行和列组成,如表1.1所示。
表1.1教师信息表
教师工号
姓名
性别
出生日期
职称
09001
王斌
男
1975-3-26
副教授
09002
李梅
女
1977-6-2
讲师
09003
金志明
男
1957-12-15
教授
09004
王思思
女
1981-3-2
助教
关系模型中的基本概念如下。
●关系:
表。
●元组:
也称作记录,指表中的一行。
关系中的元组不能重复,而且理论上没有顺序。
●属性:
也称作字段,指表中的一列。
关系中的属性值具有原子性,不可分解。
●码:
表中可以唯一确定一个元组的属性或者属性组。
●候选码:
表中所有可以唯一确定一个元组的属性或者属性组。
●主码:
也称作键,指表中唯一确定一个元组的属性或者属性组。
●外码:
不是表中的码,而是与另一个表中的主码相对应的属性或者属性组。
●域:
属性的取值范围。
●分量:
一个元组中的某个属性值。
●关系模式:
对关系的描述,可写成:
关系名(属性1,属性2,…,属性n)。
●关系模型的数据操作主要包括查询、插入、更新和删除。
●关系模型的完整性分为3类,即实体完整性、参照完整性和用户自定义完整性。
其中,实体完整性是指关系的主码值不能为空值;参照完整性是指关系的外码值必须为空值或者等于所对应主码所在关系中某个元组的主码值。
1.5.3逻辑模型设计的任务
逻辑模型设计的任务是把概念结构模型转换为所使用的DBMS所支持的逻辑模型。
1.5.4关系模型设计的方法
将实体-联系模型转换成关系模型的步骤分为如下3步。
(1)将E-R图转换为关系模式集合。
在转换时,E-R图中的一个实体集转换为一个关系模式,实体集中的属性转换为关系模式的属性,实体集的码转换为关系模式的关键字。
E-R图中的联系也要进行转换,转换方法如下:
一对一的联系可以转换成单个关系模式,也可以与任意一端的实体集转换成的关系模式合并;一对多的联系可以转换成单个关系模式,也可以与多端的实体集转换成的关系模式合并;多对多、3个及3个以上的联系只能转换成单个关系模式。
(2)对关系模式集合进行规范化处理,满足一定的范式。
范式是符合某一种级别的关系模式的集合。
关系数据库中的关系必须满足不同的范式。
目前关系数据库有6种范式,即第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)和第六范式(6NF)。
满足最低要求的范式是第一范式(1NF)。
在第一范式的基础上进一步满足更多要求的称为第二范式(2NF),其余范式以此类推。
一般来说,数据库只需满足第三范式(3NF)即可。
第一范式是指表的每一列都是不可分割的基本数据项,同一列中不能有多个值,不能存在两条记录具有完全相同的属性值。
在任何一个关系数据库中,第一范式是对关系模式的基本要求,不满足第一范式的数据库就不是关系数据库。
例如,学生信息表的属性包含学生编号、学生姓名、班级编号和联系方式,其中联系方式不能将电话、地址和邮编这3类数据合在一列中显示,解决的方法是在学生信息表中设置电话、地址和邮编3列,分别保存这3部分数据。
一个学生的记录只能对应学生信息表中的一条记录,不能有两条记录同时对应一个学生。
第二范式建立在第一范式的基础上,即满足第二范式必须先满足第一范式。
第二范式要求实体的属性完全依赖于主码,即不能存在仅依赖主码一部分的属性。
如果存在,那么这个属性和主码的这一部分应该分解形成一个新的实体集,新实体集与原实体集之间是一对多的关系。
第二范式要求实体集的非主属性不能部分依赖于主码。
例如,成绩表的属性包含学生编号、课程编号、成绩、学生姓名、班级编号,主码是学生编号和课程编号。
但是,学生姓名和班级编号属性可以由学生编号属性推知,因此成绩表的结构不符合第二范式。
这样设计的表在使用中有很多问题,插入一个学生的所有课程成绩将反复插入该学生的基本信息,如果删除该学生的所有课程成绩将导致删除该学生的基本信息,如果该学生的基本信息有变化又需要将其所有的成绩记录进行更新。
为了解决数据冗余和重复操作的问题,可以将其中的学生编号、学生姓名和班级属性分解出来,形成学生信息表,原有的成绩表保留学生编号、课程编号和成绩属性。
这样调整可使得两个表均满足第二范式的要求。
第三范式建立在第二范式的基础上,要求一个数据库表中不包含其他表中已包含的非主码信息,即第三范式就是属性不依赖于其他非主属性,也就是不存在传递依赖。
例如,班级信息表的属性包含班级编号、班级名称、系名称、系简介,主码是班级编号。
如果插入同一个系的两个班级的信息,将产生两条记录,其中系名称和系简介完全一样。
其实,同一个系的系名称和系简介是一样的。
这样又会产生大量的数据冗余。
可以添加系信息表,系信息表的属性包含系编号、系名称、系简介,主码是系编号,在班级信息表中删除系名称和系简介,添加系编号。
这样使得数据库满足第三范式的要求。
BCNF是指关系模式的所有属性都不传递依赖于该关系模式的任何候选码,或是每个决定因素都包含码。
第一范式到BCNF的4种范式之间有以下关系:
BCNF高于第三范式、高于第二范式、高于第一范式。
综上所述,规范化的目的是使结构更合理,消除存储异常,使数据冗余尽量小,便于插入、删除和更新。
在对关系模式进行规范化时,必须遵从概念单一化原则,即一个关系模式描述一个实体或实体间的一种联系。
规范化的操作方法是将关系模式分解成两个或多个关系模式,分解后的关系模式集合必须保证不会丢失原有关系的信息。
实际操作时,并不一定要求全部模式都达到BCNF,有时故意保留部分冗余以便于数据查询。
(3)优化关系模式,定义数据完整性、安全性,评估性能。
1.6物理模型设计
1.6.1物理模型设计的任务
物理模型的设计是要选取一个最适合数据库应用环境的物理结构,包括数据库的存储记录格式、存储记录安排和存取方法,使得数据库具有良好的响应速度、足够的事务流量和适宜的存储空间。
它与系统硬件环境、存储介质性能和DBMS有关。
1.6.2物理模型设计的方法
在关系模型数据库中,物理模型主要包括存储记录结构的设计、数据存放位置、存取方法、完整性、安全性和应用程序。
其中,存储记录结构包括记录的组成、数据项的类型和长度以及逻辑记录到存储记录的映像。
数据存放位置是指是否要把经常访问的数据结合在一起。
存取方法是指聚集索引和非聚集索引的使用。
完整性和安全性是指对数据库完整性、安全性、有效性、效率等方面进行分析并做出配置。
物理模型设计的内容包括分析影响数据库物理模型设计的因素,确定数据的存放位置、存取方法、索引和聚集,使空间利用率达到最大,系统数据操作负荷最小。
1.7数据库的实现、运行和维护
数据库实现的内容包括使用DBMS创建实际数据库结构、加载初始数据、编制和调试相应的数据库系统应用程序。
数据库的运行内容是指使用已加载的初始数据对数据库系统进行试运行、制订合理的数据备份计划、调整数据库的安全性和完整性条件。
数据库的维护内容是对系统的运行进行监督,及时发现系统的问题,给出解决方案。
1.8SQLServer2012简介
1.8.1SQLServer2012产品性能
SQLServer是一个关系数据库管理系统,最初是由Microsoft、Sybase及Ashton-Tate三家公司开发的,于1988年推出了第一个OS/2版本。
1992年,Microsoft将SQLServer移植到WindowsNT系统上。
后来,Microsoft不断对SQLServer的功能进行扩充,推出了更多产品版本,分别是SQLServer7.0、SQLServer2000、SQLServer2005、SQLServer2008、SQLServer2012和SQLServer2014。
本书使用的是SQLServer2012。
SQLServer2012是一个重要的产品版本。
作为新一代的数据平台产品,SQLServer2012全面支持云技术,并且能够快速构建相应的解决方案,实现私有云与公有云之间数据的扩展与应用的迁移。
SQLServer2012的云计算信息平台可帮助企业对整个组织有突破性的深入了解,并且能够快速在内部和公共云端重新部署方案和扩展数据,提供对企业基础架构最高级别的支持。
在业界领先的商业智能领域,SQLServer2012提供了更多更全面的功能以满足不同人群对数据以及信息的需求,包括支持来自不同网络环境的数据的交互,全面的自助分析等创新功能。
针对大数据以及数据仓库,SQLServer2012提供从数TB到数百TB全面端到端的解决方案。
SQLServer2012推出了许多新的特性和关键的改进,包括通过AlwaysOn提供所需运行时间和数据保护,通过列存储索引获得突破性和可预测的性能,通过用于组的新用户定义角色和默认架构来帮助实现安全性和遵从性,通过列存储索引实现快速数据恢复以便更深入地了解组织,通过SSIS改进、用于Excel的MasterDataServices外接程序和新DataQualityServices,确保更加可靠、一致的数据,通过使用SQLAzure和SQLServer数据工具的数据层应用程序组件(DAC)奇偶校验,优化服务器和云间的IT和开发人员的工作效率,从而在数据库、BI和云功能间实现统一的开发体验。
1.8.2SQLServer2012产品版本
SQLServer2012包含企业版(Enterprise)、商业智能版(BusinessIntelligence)、标准版(Standard)、Web版、开发者版(Developer)和精简版(Express)。
不同的版本具备不同的性能、功能和价格。
(1)企业版。
SQLServer2012企业版是一个全面的数据管理和业务智能平台,提供了全面的高端数据中心功能,可为关键任务工作负荷提供较高服务级别,支持最终用户访问深层数据。
它的性能极为快捷、虚拟化不受限制,为关键业务应用提供了企业级的可扩展性、数据仓库、安全、高级分析和报表支持,可以提供更加坚固的服务器和执行大规模在线事务处理。
(2)商业智能版。
SQLServer