资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,SQL Server 应用系统开发,第一章 数据库设计概述,本章综述,本章描述了数据库设计的一般过程,并以开封大学总务处总务管理系统的数据库设计为应用实例,通过需求分析、概念结构设计、逻辑结构设计、数据库的实现四个阶段描述了数据库设计的一般工作过程,本章内容,数据库设计基础,数据库设计过程之一-需求分析,数据库设计过程之二-概念结构设计,数据库设计之三-逻辑结构设计,数据库设计过程之四,数据库实现,技能展示,:,掌握数据库的基本概念,了解数据库设计的一般流程,掌握E-R图的作图,了解范式的概念,掌握数据规范化的方法,1.1 数据库设计基础,开封大学信息工程学院,数据库基本概念,SQL Server数据库设计概述数据库管理系统,数据库在计算机系统中的位置,硬件平台,基础软件平台,软件基础构架平台,应用软件平台,软件产品,协同软件,办公软件,数据库系统,操作系统,中间件,应用服务器,1.1.1数据库基本概念,开封大学信息工程学院,数据库的地位,数据库技术产生于六十年代末,是数据管理的最新技术,是计算机科学的重要分支。,数据库系统与操作系统能够一样是计算机系统的基础软件,也称为系统软件、平台软件。它的出现极大地促进了计算机技术在各行各业的应用,数据库技术是信息系统的核心和基础,是信息化建设的基础设施,它的出现极大地促进了计算机应用向各行各业的渗透。,数据库的建设规模、数据库信息量的大小和使用频度已成为衡量一个国家信息化程度的重要标志。,1.1.1数据库基本概念,开封大学信息工程学院,数据,(Data),数据库,(Database),数据库管理系统,(DBMS),数据库系统,(DBS),1.1.1,数据库基本概念,开封大学信息工程学院,一、数据,数据(Data)是数据库中存储的基本对象,数据的定义,描述,事物,的符号记录,数据的种类,文本、图形、图像、音频、视频、学生的档案记录、货物的运输情况等,数据的特点,数据与其语义是不可分的,开封大学信息工程学院,数据举例,数据的含义称为数据的语义,数据与其语义是不可分的。,例如 93是一个数据,语义1:学生某门课的成绩,语义2:某人的体重,语义3:计算机系2003级学生人数,语义4:请同学给出。,。,开封大学信息工程学院,数据举例,学生档案中的学生记录,(李明,男,197205,江苏南京市,计算机系,1990),语义:学生姓名、性别、出生年月、籍贯、所在院系、,入学时间,解释:李明是个大学生,1972年5月出生,江苏南京市人,1990年考入计算机系,请给出另一个解释和语义,开封大学信息工程学院,二、数据库,数据库的定义,数据库(Database,简称DB),是,长期储存,在计算机内、,有组织,的,、,可共享,的,大量,数据的集合。,数据库的基本特征,数据按一定的数据模型组织、描述和储存,可为各种用户共享,冗余度较小,数据独立性较高,易扩展,开封大学信息工程学院,三、数据库管理系统(DBMS,),什么是DBMS(Database Management System),位于用户与操作系统之间的一层,数据管理软件,。,是基础软件,是一个大型复杂的,软件系统,DBMS的用途,科学地,组织和存储数据,、高效地,获取和维护数据,常用的数据库管理系,统如:,Access、Microsoft SQL Server、Oracle、MySQL、DB2、Informix等,开封大学信息工程学院,DBMS,功能模块,数据定义功能,数据操纵功能,数据库的运行,控制与管理,数据库的建立和,维护功能,DBMS的主要功能,其它功能,开封大学信息工程学院,1.数据定义功能,提供数据定义语言(Data Definition Language,DDL),定义数据库中的数据对象,主要包括:,模式、外模式、存储模式定义,安全性定义,完整性定义,这些定义,存储在数据字典中,数据库的三级模式结构如图1-1所示。,开封大学信息工程学院,图1-1 数据库的三级模式结构,开封大学信息工程学院,3.数据库的运行控制与管理,数据库在建立、运行和维护时由DBMS统一管理和控制,保证数据的安全性、完整性、多用户对数据的并发及发生故障后的系统恢复,2.数据操纵功能,提供数据操纵语言(Data Manipulation Language,DML),实现对数据库的基本操作 (查询、插入、删除和,修改),开封大学信息工程学院,4.数据库的建立和维护功能(实用程序),数据库初始数据装载转换,数据库转储,介质故障恢复,数据库的重组织,性能监视分析等,5.其它功能,DBMS与网络中其它软件系统的通信,两个DBMS系统的数据转换,异构数据库之间的互访和互操作,开封大学信息工程学院,DBMS的层次结构,数据文件,数据字典,,索引,统计数据,操作系统,数据存储层,数据存取层,语言翻译处理层,数据库,应用层,DBMS,执行物理文件的读写操作,事务,日志,封锁,存取路径,提供单元组接口,DDL,DML,DCL,查询引擎,提供关系、视图接口,缓冲区,提供数据页操作,开封大学信息工程学院,四、数据库系统,什么是数据库系统,(Database System,简称DBS),在计算机系统中引入,数据库后,的系统构成,数据库系统的构成,数据库,数据库管理系统(及其开发工具),应用系统,数据库管理员(DBA:DataBase Administrator),用户,开封大学信息工程学院,图1-2 应用程序与数据库、数据库管理系统之间的关系,开封大学信息工程学院,数据库系统各组成成分的关系,用户,应用系统,数据库,用户,用户,操作系统,DBMS,应用开发工具,数据库管理员,管理维护,在不引起混淆的情况下常常把,数据库系统简称为数据库,开封大学信息工程学院,数据库应用系统软硬件层次结构,应用系统,硬件,操作系统,应用开发工具软件,PB,VB,VC,DELPHI,DBMS,Oracle,Db2,Sybase,SQL Server,Informix,图,数据库在计算机系统中的地位,开封大学信息工程学院,1.1.2 SQL Server数据库设计概述,数据库设计(Database Design)是指对于给定的应用环境,构造最优的数据库结构,建立数据库及其应用系统,使之有效存储数据,对数据进行操作和管理,以满足用户的处理需求的过程,数据库设计大致分为四个阶段,1.需求分析、,2.概念结构设计,3.逻辑结构设计,4.数据库的实现,开封大学信息工程学院,数据库设计步骤,需求分析,概念结构设计,数据库实现,逻辑结构设计,开封大学信息工程学院,1.2 数据库设计过程之一-需求分析,开封大学信息工程学院,需求分析理论基础,开封大学总务综合信息管理系统的需求,1.2.1 需求分析理论基础,进行数据库软件开发,必须首先了解与分析用户需求。,需求分析的任务是通过详细的调查研究,充分了解原系统工作概况,明确用户的各种需求,然后在此基础上确定系统的功能,为概念设计奠定基础,开封大学信息工程学院,1.2 数据库设计过程之一-需求分析,需求分析阶段需要完成工作:,确定系统范围(或系系统边界)。,确定用户对未来系统的各种需求。,分析业务,得出数据流。,分析系统数据,产生数据字典,开封大学信息工程学院,系统分析报告,(也称需求规范说明书,),系统的概况、目标、范围、,背景、历史和现状,系统的总体结构和子系统,的结构说明,系统功能划分和说明,组织结构图、数据流程图、,功能模块图和数据字典等,图表,系统分析报告,开封大学信息工程学院,1.2.2开封大学总务综合信息管理系统的需求,该系统主要以建筑房间、资产等为管理对象,主要功能包括,用户管理,资产管理,建筑房间管理。,开发系统时,主要关注的问题,总务综合信息管理系统应提供哪些功能,。,总务综合信息管理系统中涉及哪些对象,各对象间以及对象内部存在哪些关系?如何保存各数据对象,以便于数据处理。,开封大学信息工程学院,总务综合信息,管理系统,建筑房间的管理,资产的管理,房间信息的管理和查询,资产信息的管理和查询,系统应具有的功能,开封大学信息工程学院,1.3 数据库设计过程之二-概念结构设计,开封大学信息工程学院,概念结构设计理论基础,概念结构设计的任务及其工作,开封大学总务综合信息管理系统的概念结构设计,1.3 数据库设计过程之二-概念结构设计,开封大学信息工程学院,1.3.1 概念结构设计理论基础,一、,数据抽象、,数据的描述,在数据处理中,将涉及不同的数据描述领域。从事物的特性到计算机里的具体表示,数据描述经历了三个领域(三个世界):,现实世界:,存在于人们头脑以外的客观世界,现实世界的数据就是客观存在的各种报表、图表等原始数据。,信息世界:,现实世界在人们头脑中的反映,把现实世界的数据用文字和符号记载下来。,计算机世界,:,信息世界的信息在计算机(机器)世界中以数据形式存储。,现实世界,信息世界,计算机世界,认识、抽象,转换,开封大学信息工程学院,1.3.1 概念结构设计理论基础,一、数据抽象、数据描述,现实世界(,事物及其联系,),信息世界(,实体及其联系,),概念化,认识抽象,计算机世界(,数据及其联系,),形式化,转换,在信息世界和计算机世界进行数据描述,形成两种数据模型:,信息模型 概念数据模型,数据模型 结构数据模型,开封大学信息工程学院,1.数据模型分为两类(分属两个不同的层次),(1)概念数据模型,也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计。,(2)结构数据模型-逻辑模型和物理模型,逻辑模型主要包括网状模型、层次模型、关系模型、面向对象模型等,按计算机系统的观点对数据建模,用于DBMS实现。,物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。,开封大学信息工程学院,两大类数据模型(续),客观对象的抽象过程,-,两步抽象,现实世界中的客观对象抽象为概念模型;,把概念模型转换为某一DBMS支持的数据模型,。,开封大学信息工程学院,两大类数据模型(续),DBMS支持的数据模型,概念模型,认识,抽象,信息世界,机器世界,现实世界中客观对象的抽象过程,现实世界,现实世界 概念模型,数据库设计人员完成,逻辑模型 物理模型,由DBMS完成,概念模型 逻辑模型,数据库设计人员完成,开封大学信息工程学院,二、概念模型涉及的基本概念,按用户的观点来对数据和信息建模。,用于建立信息世界的数据模型,组织信息世界的信息及其联系,描述从现实世界中抽象出来的事物以及它们之间的联系,与硬件、DBMS无关。,概念模型,强调其语义表达能力,,要求概念简单、清晰,易于为用户理解。,概念模型是现实世界到信息世界的抽象,是用户与数据库设计人员之间进行交流的语言。是,数据库设计人员进行数据库设计的工具。,概念模型的描述工具:,E-R图。,1.,概念数据模型-简称概念模型,开封大学信息工程学院,实体(Entity),属性(Attribute),关键字/码(Key),域(Domain),实体型(Entity Type),实体集(Entity Set),实体型之间的联系(Relationship),概念模型的表示方法:实体-联系方法,E-R方法(Entity-Relationship-Approach),2.概念模型的基本概念,开封大学信息工程学院,概念模型的基本概念,:,实体,1.实体,(,Entity,),客观存在并可相互区分的事物叫实体。,实体是对现实世界任何可被识别事物的抽象命名,不论是可见还是不可见。,实体可以是具体的人、事、物。,如:学生张林、计算机系、一次借书等,实体可以是抽象的概念,如“大学生”,“部门”,“建筑”,实体可以是事物之间的联系,如“一次借书”,“房间的分配”,实体型:抽象的实体,如“大学生”,“建筑”,“部门”,实体值:具体的实体,如“大学生张林”,“综合楼”,“软件学院”,开封大学信息工程学院,概念模型的基本概念,:,属性,2.属性(Attribute),实体所具有的某一特性,即客观事物性质的抽象,一个实体的特征可以由若干个属性来刻画,例如,部门实体由部门号、部门名、部门性质、联系电话等属性组成,属性一般由属性名、属性型和属性值组成,属性名:是属性标识,属性型和属性值:给出属性的类型和取值,任何实体,统一地用一组属性来描述它,概念模型的基本概念,:域,3.域(Domain)、值域、值集,属性的取值范围,例如,性别的域为“男”、“女”两个值,也可以用“T”、“F”;甚至“0”、“1”,又如,月份的域为的整数,开封大学信息工程学院,概念模型的基本概念,:,码,4.码(Key)、关键字,实体是可区别的,用什么来区分?,-,码,能,唯一标识实体,的一个属性(或属性组)称作,码,码,是唯一取值,一个实体集中任意两个实体在码属性上的取值不能相同。,如:“学号”是学生实体的码,又如:部门实体(部门号、部门名、部门性质、联系电话)中,部门号不会相同,可以作码,开封大学信息工程学院,概念模型的基本概念:,实体型,5.实体型(Entity Type),具有相同属性的实体必然具有共同的特征和性质,用实体名与其属性名集合共同构成实体型。,例,学生(学号、姓名、年龄、性别、系、年级),注意,实体型与实体(值)之间的区别,后者是前者的一个特例(值),如(9808100,王平,21,男,计算机系,2)是一个学生实体(值),开封大学信息工程学院,概念模型的基本概念:,实体集,6.实体集(Entity Set),同型共性实体(值)的集合称为实体集。,如全体学生的实体集合,不论是实体型、实体值或实体集,一般笼统地说实体,根据上下文去理解。,实体和属性都有所谓类型与值之分。型是结构,值是在结构约束下的取值。,开封大学信息工程学院,例,学生,(,学号,姓名 性别 年龄 系别,),9908001 王平 男 21 计算机系,9908002 李林 男 20 计算机系,9901100 马燕 女 20 中文系,:,:,实体型,实体,属性,属性值,实体集,“性别”属性的,域是“男”,“女”,码,开封大学信息工程学院,概念模型的基本概念:,实体的联系,7.实体的联系(Relationship),事物联系在信息世界中有两大类:,一类是实体内部,属性之间,的联系,一类是实体集的,实体和实体之间,的联系,例:学生实体的“学号”与“姓名”的联系;学生实体与课程实体之间的“选课”联系,开封大学信息工程学院,实体间的联系,实体间联系有三种方式:,一对一联系(简记为1:1),一对多联系(简记为1:n),多对多联系(简记为m:n),三种联系方式中,基本的是1:n联系,因为1:n包含了1:1,而m:n可以转换为1:n。,开封大学信息工程学院,两个实体集之间的联系:1:1,一对一联系的定义:,设有两个实体集E,1,和E,2,,如果E,1,中的一个实体与E,2,中至多一个实体相联系,并且 E,2,中的一个实体与E,1,中至多一个实体相联系,则称E,1,和E,2,是1:1联系。,注意,1:1不是一一对应,“至多”可能一个都不联系,如,“,职工,”,与,“,部门,”,之间的,“,管理,”,联系:,职工,部门,管理,1,1,张三,李四,王五,周六,财务处,人事处,车队,宿管科,开封大学信息工程学院,两个实体集之间的联系:1:n,一对多联系:,若E,1,中的一个实体与E,2,中的n(n0)个实体相联系,并且E,2,中的一个实体与E,1,中至多一个实体相联系,则称E,1,和E,2,是 1:n 联系,或 E,2,和 E,1,是 n:1 联系。,注意:,n0,即“多”包括0个;“至多”的意思,如,“,教师,”,和,“,学生,”,之间的,“,班主任,”,联系:,教师,学生,班主任,1,n,张奇,李林,周于,STU1,STU2,STU3,STU4,STU5,STU6,STU7,开封大学信息工程学院,两个实体集之间的联系:m:n,多对多联系:,E,1,中的一个实体与E,2,中 n(n0)个实体相联系,并且E,2,中的一个实体与E,1,中 m(m0)个实体相联系,则称E,1,和E,2,是 m:n 联系。,注意:n0,m0,如,“,学生,”,和,“,课程,”,之间的,“,选修,”,联系,:,学生,课程,选修,m,n,张三,李四,王五,周六,C语言,网站学,电子学,管理学,开封大学信息工程学院,E-R方法-实体-联系方法,E-R方法是美籍华人陈平山(P.P.S.Cen)于1976年提出来的。,E-R方法用E-R图表示概念模型,宏观上指出“实体型”的属性组成,“实体型”之间的联系,然后注明联系方式,简单地表示实体及实体间的联系情况。,E-R方法描述的概念模型也称,E-R模型。,本节仅介绍E-R图的要点。,三、概念模型的表示方法:E-R图,开封大学信息工程学院,E-R方法的图形表示,实体型:,用矩形表示,矩形框内写明实体名,概念模型的表示方法:E-R图,属性:,用椭圆形表示,框内写明属性名用无向边将其与相应的实体型连接起来,联系:,用菱形表示,框内写明联系名称并用无向边分别与有关实体型连接起来同时在无向边旁标上联系的类型:1:1,1:n,m:n,实体名1,实体名2,属性名1,属性名1,联系名,m,1,n,n,1,1,开封大学信息工程学院,E-R图示例,。,三个实体:学院、教师、学生;,每个实体都有相应的属性;,一个学院可以聘用多个教师,,学院和教师是一对多关系,一个教师可以给多名学生上课,教师和学生是一对多关系,,,开封大学信息工程学院,-图例1:学院、教师、学生三实体间关系,用矩形表示实体集,在框内写上实体名,用椭圆表示实体的属性,用无向边把实体与其属性连接起来,用菱形表示实体间的联系,将参与联系的实体用线段连接,联系的,类型,码属性用下划线标明,1,学生,教师,上课,姓名,职称,学院,聘用,编号,名称,姓名,学号,性别,教师编号,m,1,m,开封大学信息工程学院,-图例2:学生选修课程,联系的属性,学生,课程,选修,姓名,学号,系别,课程名,先修课,学分,成绩,m,n,开封大学信息工程学院,E-R方法用图形表示了实体、属性、实体之间的联系方式,E-R图中的实体、联系、属性,三个部分缺一不可,;如果E-R图很复杂,则可将属性部分另图表示。,每个部分都要命名,,,并且要,用不同的名字,;,同一张E-R图中的实体型、联系类型一定要不同名,而不同实体型和联系的属性命名可以相同。,联系方式的表示完全是人为规定的,还有其他表示方法,画E-R图前先要根据现实世界应用的实际背景,定义实体、属性及实体间的联系,。,画E-R图注意事项,:,开封大学信息工程学院,1.3.2 概念结构设计的任务及其工作,概念结构设计是整个数据库设计的关键,该阶段通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。概念模型一般用E-R图表示,设计E-R模型应遵循以下原则,根据单个应用的需求,画出能反映每一应用的局部E-R图。,将局部E-R图合并起来,得出系统总体的E-R图,开封大学信息工程学院,实体及其属性,建筑:建筑名称、建筑号、层数、房间数、建筑时间、建筑图片,房间:所属建筑、类型、所在层、门牌号、面积,部门:部门名称、部门性质、联系电话,物品:类别、设备名称、分类号、单价、型号、规格、金额,1.3.3开封大学总务综合信息管理系统的概念结构设计,开封大学信息工程学院,实体之间的联系如下:,(1),一个建筑由多个房间组成,一个房间只能属于一个建筑,因此建筑和房间存在一对多关系。,(2),一个部门可以分配多个房间,一个房间同时只能分配给一个部门使用,因此部门和房间存在一对多关系。,(3),一个房间可以放多种物品,一种物品可以放在多个房间中,因此房间与物品存在多对多的关系。,开封大学信息工程学院,开封大学总务综合信息管理系统”的局部E-R模型,图,1-6,“开封大学总务综合信息管理系统”的局部,E-R,模型,开封大学信息工程学院,图1-7“开封大学总务综合信息管理系统”的整体E-R模型,开封大学总务综合信息管理系统”的整体E-R模型,开封大学信息工程学院,1.4 开封大学数据库设计之三-逻辑结构设计,开封大学信息工程学院,逻辑结构设计理论基础,逻辑结构设计的任务及其工作,开封大学总务综合信息管理系统数据库逻辑结构设计,1.4 SQL Server数据库设计之三-逻辑结构设计,1.4.1逻辑结构设计理论基础,逻辑数据模型简称数据模型,是对现实世界的第二层抽象,主要用于DBMS的实现。数据模型包括层次模型、网状模型、关系模型,它们之间的根本区别在于数据之间联系的表示方式不同。,开封大学信息工程学院,一、关系数据模型的基本术语,关系模型是目前最重要的一种数据模型,,,是完全不同于其它模型的一种新的数据模型。,关系模型的基本数据结构是二维表,。,关系数据库采用关系模型作为数据的组织方式。,1.关系数据模型,开封大学信息工程学院,Edgar F.Codd 博士-关系数据库之父美国工程院院士,原是英国人,1923生于英格兰中部波特兰,第二次世界大战时应征入伍,在皇家空军服役。1942-1945年间任机长,参与了许多惊心动魄的空战,英国牛津大学数学专业理学学士及硕士学位,,,毕业后到IBM公司工作从事操作系统和自动机理论研究,年近40重返密歇根大学进修计算机与通信专业,,1963年获得硕士学位,1965年又获得博士学位。,60年代后期开始数据库研究,1970年E.F.Codd博士提出关系模型概念(CACM,Vol 13,vol6,1970),1981年获得图灵奖,,,84年从IBM退休,还创办了一个研究所,关系研究所(The Relational Institute)和一个公司,Codd&Assoclations,进行关系数据库产品的研发、销售、咨询等业务,2.基本术语,关系(Relation):,理解为二维表,元组(Tuple):,二维表的行,属性(Attribute):,二维表的列,主键/关键字,也称为,码(Key):,可以唯一确定一个元组的属性组,域(Domain):,属性的取值范围,分量:,元组中的一个属性值,关系模式:,对关系的描述,关系框架,二维表表头,关系名(属性名1,属性名2,属性名n),开封大学信息工程学院,关系模型:简例,部门关系模式-部门二维表格:,部门,(编号,部门名称,部门性质,联系电话),属性,元组,部门关系,主码,分量即属性值,关系的每一个分量必须是一个不可分的数据项,不允许大表套小表,编号,部门名称,部门性质,联系电话,1101,总务处,教辅科研服务机构,0378-3506002,1106,老干部处,党群组织机构,0378-3506012,1107,组织部,党群组织机构,0378-3506003,2101,后勤中心,行政管理机构,0378-3506013,开封大学信息工程学院,关系模型的基本术语,外键,如果一个关系R中的某个属性或属性组F并非该关系的关键字,但它和另外一个关系S的关键字K相对应,则称F为关系R的外键,同时要求外键F的值要参照关系S中主键K的值。外键用于实现表间关联,房间编号,建筑编号,.,建筑编号,建筑名称,.,房间关系,建筑关系,参照关系,外键,主键,主键,开封大学信息工程学院,实体及联系都用关系表示:,例,学生,课程,选修,姓名,学号,系别,课号,课名,学分,分数,m,n,关系模式:,学生,(,学号,姓名,系别)-对应,学生实体,关系模式:,课程,(,课号,课名,学分)-对应,课程实体,关系模式:,选修,(,学号,课号,分数)-对应,选修联系,开封大学信息工程学院,关系数据库:,例,学生关系,学号,姓名,出生,系别,101,袁敏,80-2-3,机电,102,李强,81-6-8,化工,103,张伟,80-8-9,外语,104,孙正,81-5-1,中文,课号,课名,学分,1011,C 语言,8,1012,数据结构,8,1013,微机原理,7,1013,VB,6,课程关系,选修关系,学号,课号,分数,101,1011,79,101,1012,89,101,1013,64,102,1011,74,102,1012,86,102,1013,82,开封大学信息工程学院,数据结构关系,关系操作,关系完整性约束,二、关系数据模型的三要素,开封大学信息工程学院,(1)数据结构关系,实体及实体之间的联系都用二维表(关系)来表示,二维表(关系)以文件形式存储,二、关系数据模型的三要素,开封大学信息工程学院,(2)关系操作:,操作类型:,数据查询:选择、投影、连接、除、并、交、差,数据更新:查询、插入、删除、修改。,操作对象和结果:都是关系(,二维表,元组的集合,),非过程化的数据操作,用户只要指出“做什么”,无须详细说明“怎么做”,提高了数据独立性。,(3)关系完整性约束,实体完整性,参照完整性,域,的完整性,二、关系数据模型的三要素,开封大学信息工程学院,三、关系模型的规范化,关系模型的规范化理论是研究如何将一个不好的关系模型转化为一个好的关系模型的理论,它是围绕范式而建立的,根据满足规范的条件不同,可以化分为五个等级,:,第一规范化形式 1NF,第二规范化形式 2NF,第三规范化形式 3NF,第四规范化形式 4NF,第五规范化形式 5NF,开封大学信息工程学院,1.,第一规范化形式1NF,第一规范化形式简称第一范式:在一个关系(数据表)中没有重复的数据项,每个属性都是不可分割的最小数据元素。,即每列的列名(字段名)都是惟一的,一个关系中不允许有两个相同的属性名,同一列的数据具有相同的数据类型,列的顺序交换后不能改变关系的实际意义。,开封大学信息工程学院,【例】将表1-1修改为满足第一范式。,表1-1,房间号,建筑,面积,所在楼层,类型,建筑号,名称,面积,类型,修改为,房间,号,建筑,号,建筑,名称,占地,面积,建筑,类型,房间,面积,所在,楼层,房间,类型,表,1-2,开封大学信息工程学院,2、第二规范化形式 2NF,第二规范化形式简称第二范式:在已满足,1NF,的关系中,一行(数据元组、记录)中所有非关键字数据元素都完全依赖于关键字(记录惟一)。即一个关系中不允许有两个相同的实体,行的顺序交换后不能改变数据表的实际意义。,关键字:,也叫关键字段或主键,是所有数据都是惟一不重复的字段或字段的组合。,第二范式就是数据表中没有相同的行,通过关键字使记录惟一。,不满足2NF的数据表,将导致数据插入或删除的异常,稍有不慎会使数据不一致,规范化的数据表都必须满足2NF。,开封大学信息工程学院,【实例练习1-2】根据第二范式的要求,修改表1-3“房间表”使其满足第二范式。,表,1-3,房间,号,建筑,号,建筑,名称,占地,面积,建筑,类型,房间,面积,所在,楼层,房间,类型,解决方法:,增加一列“序号”作为该表的关键字,表1-4,序号,房间,号,建筑,号,建筑,名称,占地,面积,建筑,类型,房间,面积,所在,楼层,房间,类型,开封大学信息工程学院,3、第三规范化形式 3NF,第三规范化形式简称第三范式:在已满足2NF的关系中,不存在传递依赖于关键字的数据项。,传递依赖:,某些列的数据不是直接依赖于关键字,而是通过某个非关键字间接的依赖于关键字。,简单说第三范式就是表中没有间接依赖关键字的数据项。,实现第三范式的方法就是将不依赖关键字的列删除,单独创建一个数据表存储。,规范化的数据库应尽量满足3NF,一个满足3NF的数据库将有效地减少数据冗余。,注意:三个范式不是独立的,3NF包含2NF,2NF又包含1NF。,开封大学信息工程学院,【实例练习1-3】根据第三范式的要求,修改表1-5“房间表”使其满足第三范式,。,房间,号,建筑,号,建筑,名称,占地,面积,建筑,类型,房间,面积,所在,楼层,房间,类型,建筑ID,建筑号,建筑名称,占地面积,建筑类型,建成时间,图片,表,1-7,序号,房间,号,建筑,ID,房间,名称,所在,楼层,房间,类型,表1-6,表1-5,解决方法:拆成两张表,表1-6和表1-7,开封大学信息工程学院,【实例练习1-4】根据数据规范化原则,将W关系规范到第三范式。W(日期,工号,姓名,工种,定额,超额,车间,车间主任,),开封大学信息工程学院,1.4.2逻辑结构设计的任务及其工作,逻辑结构设计的任务是把概念模型转换成DBMS支持的数据模型并对该模型进行优化。,1一对一关系向关系模式的转化,(1)转换为一个独立的关系,(2)与任意一端实体对应的关系合并,E-R图向关系模式的转化,开封大学信息工程学院,2.一对多关系向关系模式的转化,(1)转换为一个独立的关系(2)与N端实体对应的关系合并,E-R图向关系模式的转化,开封大学信息工程学院,3多对多联系向关系模式的转化,一个MN联系要转换为一个独立的关系。,关系的属性为与该联系相连的各实体的主键以及联系本身的属性,关系的主键为各实体主键的组合。,用E-R模型转换得到的关系模型不一定是最优的,需要利用关系规范化理论进行进一步的规范化设计,使之符合DBMS的要求。,E-R图向关系模式的转化,开封大学信息工程学院,1.4.3开封大学总务综合信息管理系统数据库逻辑结构设计,1,全校建筑设施的,“,建筑表,”,建筑号,建筑名称,建筑类型,占地,面积,房间数,建成时间,图片,建筑描述,其中:,“建筑类型”可把学校的建筑分为两大类,宿舍和非宿舍建筑。,房间数不用手工输入,可以根据房间表中登记的房间记录数自动计算出来,表1-8,2校内,“,部门表,”,表,1-9,部门号,部门名称,部门性质,联系电话,开封大学信息工程学院,3所有房间的,“,房间表,”,表,1-10,门牌号,建筑ID,房间面积,所在楼层,房间类型,开封大学信息工程学院,4部门房间分配情况的,“,房间分配表,”,表,1-11,门牌号,建筑ID,部门名,联系电话,房间名称,分配时间,开封大学信息工程学院,5.部门房间 的,“,物品登记表,”,表,1-12,门牌,号,建筑,ID,部门,物品,编号,物品名称,分类号,型号,规格,单价,数量,金额,负责人,其中金额的值不用手功输入,由数据库自动计算。,开封大学信息工程学院,【实例练习1-5】开封大学总务综合信息管理数据库的规范化设计,。,分析发现,表1-11“房间分配表”,还不满足第三范式:,表,1-13,门牌号,建筑ID,部门号,联系电话,房间名称,分配时间,进一步规范化后形成表1-13满足第三范式,开封大学信息工程学院,开封大学信息工程学院,1.5 数据库设计过程之四,数据库实现,数据库实现的理论基础,数据库实现的任务及其工作,“,开封大学总务综合信息管理系统,”,的数据库实现,1.5 数据库设计过程之四数据库实现,1.5.1 数据库实现的理论基础,1.数据完整性,实体完整性,参照完整性,域完整性,用户自定义完整性,开封大学信息工程学院,(1)实体完整性,实体完整性是指数据表中的所有行都是惟一的确定的,所有记录都是可以区分的(满足2NF)。,实体完整性规则规定了表中的主键值惟一,所有主要属性都不能取空值。,例如,在“部门表”中,“部门号”可以作为主键,同时“部门号、部门名称、部门性质、联系电话”都不能取空值才能保证每个“部门”实体的完整性。,开封大学信息工程学院,(2)参照完整性,参照完整性用于确保相联系的表间的数据保持一致,避免因一个表的记录修改,造成另一个表的内容变为无效的值。参照完整性通过外键实现,当一个表中的某列数据(外键)依赖并引用另一个表中的某列数据时,这两个表之间的相关数据必须保持一致性。,房间编号,(主键),建筑编号,(外键),.,建筑编号,(主键),建筑名称,.,房间关系,(从表或子表),建筑关系,(主表或父表),参照关系,(主从表数据一致),开封大学信息工程学院,(3)域完整性,域完整性是指表中每列的数据具有正确的数据类型、格式和有效的取值范围,保证数据的正确性。,例如:,房间关系:房间的状态只能取值为“未分配”或“已分配”;,物品登记关系:物品的数量只能是数字字符;,建筑关系:房间数只能是大于0的正整数。,开封大学信息工程学院,(4)用户自定义完整性,用户自定义完整性指数据使用者根据实际需要自行定义的数据完整性,开封大学信息工程学院,2.约束,(1)主键约束(Primary key),(2)惟一约束(Unique),(3)外键约束(Foreign key),(4)检查约束(Check),(5)默认值约束(Default),(6)空值约束(NULL),SQL Server 提供了6种约束,开封大学信息工程学院,(1)主键约束(Primary key),设置主键约束的字段称为关键字段,主键值是记录的惟一标识,主键约束可以保证数据的实体完整性,使表中的记录是惟一可区分和确定的(满足2NF)。,规范化的数据库每个表都必须设置主键约束,主键有以下特点和限制:,主键的字段值必须是惟一的,不允许重复。,主键的字段值必须是确定的,不允许为空。,一个表只能定义一个主键,主键可以是单一字段,也可以是多个字段的组合,用多个列的组合作主键时每个列上的数据都可以重复,但其组合值不允许重复。,Text、Ntext和Image类型的字段不能做主键。,不论输入数据的顺序如何,数据表将按记录的主键值从小到大进行物理升序排序。,开封大学信息工程学院,(2)惟一约束(Unique),惟一约束可以指定一列数据或几列数据的组合值在数据表中是惟一不能重复的。,惟一约束用于保证主键以外的字段值不能重复,用以保证数据的实体完整性,但惟一约束的字段不是主键,其区别是:,一个表可以定义多个惟一约束,而主键约束只能定义一个,定义为惟一约束的字段可以允许为空值(只能有一个),而主键约束的字段不允许为空值;,记录按主键值的指定顺序存储,而惟一约束的字段值不改变记录的物理位置,仅仅保证该字段的值不重复。,例如“房间分配表”中指定“分配ID”为主键,还需保证“房间ID”字段的值不能重复,则可以设置为惟一约束,。,开封大学信息工程学院,(3)外键约束(Foreign key),如果一个表中某个字段的数据只能取另一个表中某个字段值之一,则必须为该字段设置外键约束,设置外键约束字段的表称为子表,它所引用的表称为父表。,外键约束可以使一个数据库中的多个数据表之间建立关联,外键的取值必须是被引用表中主键的值,通过外键约束可以使父表与子表建立一对多的逻辑关系。,外键约束可以保证数据的参照完整性和域完整性,。,外键可以是单一字段,也可以是多个字段的组合。,外键所引用父表中的字段必须是创建了主键约束或惟一约束的列。,外键允许空值,可以有重复值,但必须是父表引用列中的数据之一,也就是说父表中没有的数据子表不可以添加。,子表中外键字段添加的新数据,必须先在父表中添加,再在子表中添加,子表中引用父表数据的记录未删除,则父表中被引用的数据不能被删除,开封大学信息工程学院,(4)检查约束(Check),检查约束是用指定的条件(逻辑表达式)检查限制输入数据的取值范围是否正确,用以保证数据的参照完整性和域完整性。,例如:,“建筑表”的“房间数”只能使用数字;,“部门表”中的“联系电话”只能使用数字与“-”号;,“建筑表”的“类型”只能取值为“宿舍”或“其他”;,“物品登记表中的”的“数量”和“单价”必须大于0。,开封大学信息工程学院,(5)默认值约束(Default),默认值约束是给某个字段绑定一个默认的初始值(可以是常量、表达式或系统内置函数),输入记录时若没有给出该字段的数据,则自动填入默认值以保证数据的域完整性。,对于事先不知道数据或需要自动计算产生数据但又不允许为空的字段,使用默认值约束尤其方便并提高效率。,对设置了默认值约束的字段若输入数据时则以输入的数据为准,例如,“,物品登记表,”,中的:,“,金额,”,在创建数据库初期是没有数据的,在系统运行时能自动计算,可以设置默认值为0;,“,登记日期,”,可用系统当前的日期设置默认值,。,开封大学信息工程学院,(6)空值约束(NULL),空值NULL是不知道或不能确定的特殊数据,不等同于数值0
展开阅读全文