版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章
关系数据库管理系统基础知识1.1数据库系统概述1.2数据模型1.3关系数据库及其设计过程1.4关系数据库的规范化
1.5数据表的关联与数据的完整性
1.6关系数据库应用实例—《电脑器材销售管理》
1.7实训要求与习题第1章
关系数据库管理系统基础知识
学习目的与要求数据库系统的基本概念数据模型的基本概念实体联系模型关系模型的概念和性质数据库系统的规范化理论等内容设计创建一个《电脑器材销售管理》数据库模型1.1数据库系统概述
计算机应用从科学计算进入数据处理是一个重大转折,数据处理是指对各种形式的数据进行收集、储存、加工和传播的一系列活动,其基本环节是数据管理。数据管理指的是对数据的分类、组织、编码、储存、检索和维护。数据管理方式多种多样,其中数据库技术是在应用需求的推动下,在计算机硬件、软件高速发展的基础上出现的高效数据管理技术。数据库系统在计算机应用中起着越来越重要的作用,从小型单项事务处理系统到大型信息系统,从联机事务处理(OLTP)到联机分析处理(OLAP),从传统的企业管理到计算机辅助设计与制造(CAD/CAM)、现代集成制造系统(CIMS)、办公信息系统(OIS)、地理信息系统(GIS)等,都离不开数据库管理系统。正是这些不断涌现的应用要求,又不断地推动了数据库技术的更新换代。1.1.1数据库技术的产生与发展
1.
数据库技术的产生
从20世纪60年代后期开始,计算机技术从科学计算迅速扩展到数据处理领域,随着数据处理的不断深入,数据处理的规模越来越大,数据量也越来越多,数据处理成为最大的计算机应用领域。数据处理技术也不断地完善,经历了人工管理、文件系统和数据库系统三个阶段。
(1)
人工管理阶段计算机在其诞生初期,人们还是把它当作—种计算工具,主要用于科学计算。通常是在编写的应用程序中给出自带的相关数据,将程序和相关数据同时输入计算机。不同用户针对不同问题编制各自的程序,整理各自程序所需要的数据。数据的管理完全由用户自己负责。人工管理阶段程序与数据的关系特点:数据不能单独保存。数据无独立性。数据冗余不能共享。(2)
文件系统阶段 在文件系统中,把数据组织成相互独立的数据文件,利用“按文件名访问,按记录存取”的管理技术,程序和数据分别存储为程序文件和数据文件。数据文件是独立的,可以长期保存在外存储器上多次存取。数据的存取以记录为基本单位,并出现了多种文件组织形式,如顺序文件、索引文件、随机文件等。
文件系统阶段程序与数据的关系数据与程序缺乏独立性。数据的冗余和不一致性。数据的无结构性。特点:(3)
数据库系统阶段 为了从根本上解决数据与程序的相关性,把数据作为一种共享的资源进行集中管理,为各种应用系统提供共享服务,数据库技术应运而生,使信息管理系统的重心从以加工数据的程序为中心转向以数据共享、统一管理为核心。
数据库系统阶段程序与数据的关系①
数据结构化②
数据能够共享③
数据冗余度小,易扩充④
数据与程序的独立性较高⑤
对数据实行集中统—控制
优点:2.
数据库技术的发展 随着计算机科学的不断发展,数据库技术大致上经历了三个发展时期: (1)
20世纪60年代的萌芽期 (2)
20世纪70年代的发展期 (3)
20世纪80年代的成熟期数数据库库1、数数据库库数据库库(Database,,简称称DB),,顾名名思义义,是是存放放数据据的仓仓库。。只不不过这这个仓仓库是是创建建在计计算机机存储储设备备上,,如硬硬盘就就是一一类最最常见见的计计算机机大容容量存存储设设备。。数据据必须须按一一定的的格式式存放放,以以利于于以后后使用用。可可以以说数数据库库就是是长期期存储储在计计算机机内、、与应应用程程序彼彼此独独立的的、以以—定定的组组织方方式存存储在在一起起的、、彼此此相互互关联联的、、具有有较少少冗余余的、、能被被多个个用户户共享享的数数据集集合。。在这这里要要特别别注意意数据据库不不是简简单地地将一一些数数据堆堆积在在一起起,而而是把把相互互间有有一定定关系系的数数据,,按一一定的的结构构组织织起来来的数数据集集合。。2、数据库库体系系结构构为了有有效地地组织织、管管理数数据,,人们们为数数据库库设计计了一一个严严谨的的体系系结构构,包包括了了内模式式、模模式和和外模模式三级模模式结结构,,这三级级模式式反映映了看看待数数据库库的三三种不不同的的数据据观点点。数数据库库管理理系统统数据库库管理理系统统(DataBaseManagementSystem,,简称称DBMS)是是位于于用户户与计计算机机操作作系统统之间间的一一个系系统软软件,,由一一组计计算机机程序序组成成。它它能够够对数数据库库进行行有效效的组组织、、管理理和控控制,,包括括数据据的存存储、、数据据的安安全性性与完完整性性控制制等。。DBMS主要要功能能:1.数数据据定义义功能能2.数数据据操纵纵功能能3.数数据据库的的运行行控制制与管管理4.数数据据库的的建立立和维维护功功能5.数数据据通信信接口口数数据库库系统统数据库库系统统(DatabaseSystem,简简称DBS)是是指在在计算算机系系统中中引入入数据据库后后的系系统,,带有有数据据库的的计算算机系系统硬硬件和和软件件层次次如图图所示示。数据库库系统统构成成硬件平平台数据库库软件数据库库管理理系统统(DBMS))、支支持DBMS运运行的的操作作系统统、具具有数数据库库接口口的高高级语语言及及其编编译系系统、、以DBMS为为核心心的应应用开开发工工具。。为特定定应用用环境境开发发的数数据库库应用用系统统。相关人人员数据库库管理理员((DBA))、系系统分分析员员、数数据库库设计计员、、应用用程序序员、、用户户1.2数数据据模型型概念数数据模模型::独立立于计计算机机系统统的数数据模模型,,用来描描述所所使用用的信信息结结构。。逻辑数数据模模型::现实实世界界的第第二层层抽象象,反反映数数据的的逻辑辑结构构。物理数数据模模型::反映映数据据在计计算机机中的的存储储结构构。在数据据库中中用数数据模模型来来抽象象、表表示和和处理理现实实世界界中的的数据据和信信息。。根据据数据据抽象象层次次,针针对不不同的的数据据对象象和应应用目目的,,可以以分为为三类类:1.2.1数据据模型型的组组成要要素数据结结构::所研研究的的对象象类型型的集集合,,这些些对象象是数数据库库的组组成成成分。。数据操操作::指对对数据据库中中不同同数据据结构构的对对象所所允许许执行行的操操作的的集合合,包包括操操作及及操作作规则则。完整性性约束束:数数据的的完整整性约约束条条件是是一组组完整整性规规则的的集合合。概概念模模型具体的的数据据库管管理系系统DBMS所所支持持的逻逻辑数数据模模型不不便于于非计计算机机专业业人员员理解解和应应用,,在开开始设设计数数据模模型时时,可可以先先用概概念数数据模模型将将现实实世界界中的的客观观事物物用某某种信信息结结构表表示出出来,,再转转化为为用计计算机机表示示的逻逻辑数数据模模型,,如图图所示示。概念模模型涉涉及的的概念念(1)实实体体:现现实世世界中中客观观存在在并可可相互互区分分的事事物称称为实实体。。(2)属属性性:实实体所所具有有的某某一特特性称称为属属性。。(3)实实体和和属性性的型型与值值:型型是结结构,,用实实体名名及其其属性性名集集合描描述同同类实实体,,称为为实体体型;;值是是数据据,不不同的的实体体有不不同的的属性性内容容(属属性值值)。。(4)实实体体集::具有有相同同实体体型的的实体体值的的集合合称为为实体体集。。(5)关关键键字::在实实体属属性中中,能能区别别实体体集合合中不不同个个体的的某一一个或或某几几个属属性的的组合合,称称为关关键字字。2.实实体间间的联联系两个实实体集集之间间的联联系可可以分分为三三类::一对一一联系系(1:1)一对多多联系系(1:N)多对多多联系系(M:N)3.概概念念模型型的表表示方方法概念模模型的的表示示方法法很多多,其其中最最著名名最常常用的于于1976年提提出的的实体体-联联系方方法((E-R方方法))。该该方法法用E-R图描描述信信息世世界的的概念念模型型。方法如如下::实体型型:用用矩形形表示示,矩矩形框框内写写上实实体名名。属性::用椭椭圆形形或圆圆角矩矩形表表示,,图形形内写写上属属性名名,并并用直直线将将其与与相应应的实实体连连接起起来。。联系::用菱菱形表表示,,菱形形框内内写上上表示示联系系行为为的动动词表表示联联系名名,并并用直直线分分别与与有关关实体体连接接起来来,同同时在在直线线旁边边标上上联系系的类类型(1::1,,1::N或或M::N)。如如果一一个联联系具具有属属性,,则这这些属属性也也要用用直线线与该该联系系连接接起来来。学生实实体通常在在表示示单个个实体体的E-R图中中,除除了要要标明明实体体名外外,还还要标标明实实体所所具有有的属属性。。例如如学生生实体体具有有学号号、姓姓名、、性别别、出出生日日期和和所在在系的的属性性,其其E-R图图如下下:实体之之间的的联系系的表表示在表示示实体体之间间的联联系时时,每每个实实体只只标明明其实实体名名,而而把实实体属属性单单独用用图表表示或或把所所有实实体集集用列列表表表示。。两个以以上的的实体体集之之间联联系的的表示示同一个个实体体集内内部联联系的的表示示层层次模模型在数据据库中中,对对满足足以下下两个个条件件的数数据模模型称称为层层次模模型。。有且仅仅有一一个节节点无无双亲亲,这这个节节点称称为““根节节点””。其他节点点有且仅仅有一个个双亲。。层次模型型中相关关概念在层次模模型中,,同一双双亲的子子女节点点称为兄兄弟节点点;没有子女女的节点点称为叶叶节点;;双亲节点点与其任任意一个个子女节节点都构构成一个个基本层层次联系系,表示示一对多多的关系系。层次模型型特点层次模型型的优点点:层次模型型数据结结构简单单,对具具有一对对多的层层次关系系的描述述非常自自然、直直观、容容易理解解。记录录之间的的联系通通过指针针来实现现,查询询效率较较高。层次模型型的缺点点:上一层记记录类型型和下一一层记录录类型只只能表示示一对多多联系,,无法实实现多对对多联系系。如果果要实现现多对多多联系,,则非常常复杂,,效率非非常低,,使用也也不方便便。网网状模型型在网状模模型中,,允许::一个以上上的节点点无双亲亲。一个节点点可以有有多于一一个的双双亲。网状模型型的特点点网状模型型的优点点:记录之间间联系通通过指针针实现,,具有良良好的性性能,存存取效率率较高。。能够更更为直接接地描述述现实世世界,如如一个节节点可以以有多个个双亲。。网状模型型的缺点点:随着应用用环境的的扩大,,数据库库的结构构会变得得越来越越复杂,,编写应应用程序序也会更更加复杂杂,程序序员必须须熟悉数数据库的的逻辑结结构。与与层次模模型一样样,现在在的数据据库管理理系统已已经很少少使用网网状模型型了。关关系模型型关系模型型是三种种数据模模型中最最重要的的模型,,是当前前使用最最广泛的的数据模模型。MicrosoftSQLServer2000数据库库管理系系统也是是基于关关系模型型的。关关系模型型是建立立在数学学概念基基础上的的,它的的主要特特征是使使用关系系来表示示实体以以及实体体之间的的联系。。1.关关系模型型的基本本术语(1)关关系系
一个个关系模模型的逻逻辑结构构是二维维表,它它由行和和列组成成。(2)元元组组
表中中的一行行称为一一个元组组,在数数据库中中也称为为记录。。(3)属属性性
表中中的一列列称为一一个属性性,用来来描述事事物的特特征,属属性分为为属性名名和属性性值。在在数据库库中属性性也称为为字段。。(4)域域属属性的的取值范范围。(5)关关系系模式关关系模模式描述述关系的的信息结结构和语语义限制制,是型型的概念念;而关关系是关关系模式式中的——个实例例,是值值的概念念。关系系模式的的描述形形式---关系系名(属属性1,,属性2,…,,属性n)。1.关关系模型型的基本本术语(6)关关系数数据库使使用用关系模模型表示示和处理理数据的的数据库库,是一一些相关关的表和和其他数数据库对对象的集集合。(7)关关键字字/码若若关系系中的某某一个属属性或属属性组的的值惟一一地决定定其它所所有属性性,则这这个属性性或属性性组称为为该关系系的关键键字。(8)候候选键键/候选选关键字字/侯选选码如如果一个个关系中中有多个个属性或或属性组组都能用用来标识识该关系系的元组组,那么么这些属属性或属属性组都都称为该该关系的的候选关关键字。。1.关关系模型型的基本本术语(9)主主键/主关键键字/主主码在在一个关关系的多多个候选选关键字字中指定定其中一一个作为为该关系系的关键键字,则则称它为为主关键键字或主主键、主主码。(10)外键/外关键键字/外外码如如果一个个关系R中的某某个属性性或属性性组F并并非该关关系的关关键字,,但它和和另外一一个关系系S的关关键字K相对应应,则称称F为关关系R的的外键,,同时要要求外键键F的值值要参照照关系S中主键键K的值值。有时时,R和和S可能能为同一一个关系系。2.关关系模型型三要素素(1)数数据结结构———关系关关系模模型中数数据的逻逻辑结构构就是一一张二维维表格。。在关系系数据库库中,关关系模式式是型((二维表表格),,关系是是值(元元组的集集合),,关系模模式必须须指出这这个元组组集合的的结构,,即它由由哪些属属性构成成,这些些属性采采用何种种类型、、来自哪哪些域,,以及属属性与域域之间的的映像关关系。(2)关关系操操作关关系模型型中常用用的关系系操作有有数据查查询和数数据更新新两大部部分,其其中数据据查询包包括选择择、投影影、连接接、除、、并、交交、差;;数据更更新包括括插入、、删除、、修改操操作。(3)关关系完完整性约约束关关系模型型允许定定义三类类完整性性约束::实体完完整性、、参照完完整性和和数据类类型的域域完整性性。实体体完整性性和参照照完整性性是关系系模型必必须满足足的约束束条件,,由关系系系统自自动支持持;数据据类型的的域完整整性是数数据取值值要遵循循的约束束条件。。3.关关系模型型的特点点(1)关关系模模型具有有严格的的理论基基础(2)关关系模模型的数数据结构构单一(3)
关系系模型存存取简单单1.3关关系系数据库库及其设设计过程程关系数据据库是目目前使用用最广泛泛的数据据库,现现实世界界信息结结构复杂杂、应用用环境千千变万化化,如何何构造一一个合理理的数据据库系统统,使之之能够有有效地存存储数据据,满足足各种用用户的需需求是我我们要解解决的首首要问题题,本节节将结合合应用实实例《电电脑器材材销售管管理》研研究关系系数据库库的设计计过程。。关关系与表表格关系模型型是建立立在集合合代数基基础上的的,关系系是有严严格的数数学定义义的,并并不是所所有的二二维表格格都可以以称为关关系,这这个表格格应该具具有如下下一些性性质。(1)关关系系必须是是规范化化的关系系(2)表表中的的“行””是惟一一的(3)行行的次次序可以以任意(4)表表中中的“列列名”是是惟一的的
(5)列列的次序序可以任任意(6)必必须满满足完整整性约束束条件数数据表基基本概念念关系数据据库中包包含若干干关系———二维维数据表表,可分分为基本本的数据据表、查查询结果果集、视视图等,,其中数数据表是是最重要要的一类类关系,,其它的的对象大大都依附附于数据据表。数数据据表是数数据库中中最基本本的对象象,用来来在数据据库中存存储用户户的全部部数据。。数据库库中可以以有多个个数据表表,每个个数据表表可代表表用户某某类有意意义的需需求信息息。例如如在一个个学校““教学管管理”数数据库中中有“教教师信息息表”、、“学生生信息表表”和““课程成成绩表””等。数数据据表中的的每一行行代表不不同需求求的一个个实体对对象。例例如“学学生信息息表”中中用一个个学生的的档案信信息属性性作为一一个实体体;而在在“课程程成绩表表”中用用一个学学生的课课程成绩绩信息属属性作为为一个实实体。数数据据表中的的每一列列都代表表实体对对象的一一个属性性特征,,如学生生的姓名名、住址址等。数数据表经经设计完完成并创创建之后后,就一一直存储储在数据据库文件件中,直直到被删删除为止止。数数据库设设计过程程数据库设设计所要要解决的的问题是是建立数数据表及及其应用用系统,,具体说说,就是是指对一一个给定定的需求求和应用用环境,,构造最最优化的的数据库库模式,,建立数数据库及及其应用用系统,,满足用用户的各各种应用用需求。。大型数数据库的的设计和和开发是是一项庞庞大的工工程,是是多学科科的综合合性技术术。数数据库库设计步步骤大致致可以分分为需求求分析、、概念结结构设计计、逻辑辑结构设设计、物物理结构构设计、、数据库库实施、、数据库库运行和和维护几几个阶段段。设计计一个完完善的数数据库应应用系统统往往是是上述六六个阶段段的不断断反复、、逐步完完善的过过程,如如图所示示。数数据库设设计过程程1.需求分析析需求分析析的任务务是由计计算机人人员(系系统分析析员)和和用户双双方共同同通过详详细的调调查研究究,充分分了解用用户的组组织机构构、业务务规则、、数据需需求、完完整性约约束条件件、事务务处理和和安全性性要求等等,为概概念设计计奠定基基础。这这个阶段段的许多多方法与与系统分分析设计计、软件件工程的的方法类类似,画画出组织织机构图图、业务务流程图图,详细细描述用用户应用用环境的的业务流流程、数数据需求求。2.概概念结结构设计计最常用的的概念模模型表示示方法是是实体-联系模模型,简简称E-R模型型。设计计E-R模型应应遵循的的原则::
(1)首首先针对对特定用用户的应应用,确确定实体体、属性性和实体体间的联联系,做做出局部部E-R模型。。
(2)综综合各个个用户的的局部E-R模模型,在在消除冗冗余联系系并保证证数据完完整性的的前提下下,产生生能准确确地反映映原来的的局部E-R模模型(包包括实体体、属性性及实体体间的相相互联系系)、反反映数据据库整体体概念、、不存在在相互表表达矛盾盾的总体体E-R模型。。
一个个系统的的E-R模型并并不是惟惟一的,,强调不不同侧面面和不同同联系,,做出的的E-R模型可可能会有有很大的的差别。。数数据库设设计过程程3.逻逻辑结结构设计计逻辑结构构设计的的任务就就是把概概念模型型转换成成DBMS所支支持的数数据模型型,如关关系模型型、层次次模型或或网状模模型。我我们只讨讨论E-R模型型向关系系模型的的转换原原则。(1)实实体向向关系模模型的转转化(2)一一对一一联系向向关系模模型的转转化(3)一一对多多联系向向关系模模型的转转化(4)多多对多联联系向关关系模型型的转化化用用E-R模型转转换得到到的关系系模型要要利用关关系规范范化理论论进行进进一步的的规范化化设计,,使之符符合DBMS的的要求。。4.物物理结结构设计计在物理结结构设计计时,应应考虑以以下几个个方面::(1)确确定数数据的存存储结构构(2)索索引结结构设计计(3)数数据据存储位位置的考考虑(4)系系统统配置的的优化数数据库设设计过程程5.数数据库库实施确定了数数据库的的逻辑结结构和物物理结构构,就可可以利用用DBMS提供供的数据据定义语语言建立立数据库库的结构构。数据据库的结结构建立立好之后后,就可可以向数数据库中中装载数数据。(1)根根据确定定的逻辑辑结构与与物理结结构,用用DBMS提供供的数据据定义语语言定义义数据库库结构。。
(2)数数据装装载数据据库结构构建立后后向数据据库中装装载数据据(也称称为数据据加载)。6.数数据库库的运行行与维护护数据库设设计与应应用开发发工作完完成之后后,系统统进入运运行与维维护阶段段,主要要任务如如下。(1)
维护护数据库库的安全全性和数数据完整整性(2)数数据库库的转储储和恢复复
(3)监监测并改改善数据据库性能能
(4)数数据库的的重新组组织《《电脑器器材销售售管理》》数据库库的模型型设计本书以某某电脑公公司的《《电脑器器材销售售管理》》数据库库应用系系统为例例贯穿全全书,本本节主要要介绍如如何设计计该数据据模型,,在以后后各章节节均以该该数据库库为【实实例练习习】进行行操作,,通过该该实例的的学习使使读者掌掌握SQLServer数数据库系系统与数数据库应应用技术术。【实例练练习1-1】某某电脑公公司《电电脑器材材销售管管理》数数据库应应用系统统的模型型设计该电脑公公司的需需求分析析可以简简单概括括为:““商品购购进→库库存管理理→商品品销售””三大环环节。1、概念模模型:在概念模模型中可可以初步步将商品品、供货货商、客客户、员员工对象象作为实实体,其其属性的的描述::商品(商品编编号或条条形编码码、商品品名称、、规格尺尺寸或型型号、计计量单位位、供货货厂家、、进货价价格、销销售参考考价格、、库存数数量)供货商(供货厂厂家编号号、厂家家名称、、厂家地地址、进进货商品品名称、、进货日日期、进进货数量量、进货货价格、、厂家账账户、厂厂家联系系人、收收货员工工)客户(客户名名称、销销售商品品名称、、规格、、计量单单位、销销售日期期、销售售单价、、销售数数量、销销售金额额、销售售员工))员工(员工编编号、姓姓名、性性别、年年龄或出出生日期期、部门门、工龄龄或工作作时间、、照片、、个人简简历)在一个关系系数据库中中允许有多多个不同的的关系—数数据表,并并对所有的的数据表进进行统一管管理。我们们可以根据据各个不同同职能部门门的实际工工作需要,,把概念模模型中的一一个实体集集作为一个个关系,初初步设计成成关系数据据库逻辑模模型中的4个二维数数据表格。。2、逻辑模模型(1)公司司管理层使使用的简单单《商品一一览表》该表是公司司所经营和和准备扩展展经营的全全部商品明明细,为规规范化经营营管理,由由公司决策策部门对商商品统一进进行分类,,制定统一一的商品编编号,用““货号”表表示,并指指定统一的的商品名称称,《商品品一览表》》的主要数数据项见表表1.5。。货号货名规格单位平均进价参考价格库存量
其中:“平均进价价”根据从从不同厂家家购进同种种商品的不不同价格,,或从同一一厂家因进进货时间不不同而价格格不同时,,由数据库库系统按加加权平均方方法自动计计算的平均均“进货价价格”。“参考价格格”是公司司为该商品品制定的销销售指导价价格,允许许销售员在在5%的范范围内自主主灵活销售售。2、逻辑模模型(2)进货货部门按进进货记录填填写的每年年度一张的的《进货表表xxxx》该表用于保保存详细的的进货记录录,由收货货人每次进进货时填写写,采用以以一个年度度(或月份份)为单位位使用一张张“进货表表”,表的的名称后缀缀年份(或或年月)标标志加以区区分(若前前缀数字作作数据表名名不符合标标识符命名名规则)。。本例题《进进货表2006》表表示2006年的““进货表””,2006年度结结束到2007年时时自动创建建并使用《《进货表2007》》。进货日期货号货名规格单位进价进货数量供货商厂家地址账户联系人收货人
2、逻辑模模型(3)销售部门门按销售记记录填写每每年度一张张的《销售售表xxxx》该表用于保保存详细的的销售记录录,由销售售员每次销销售商品时时填写。2006年年使用《销销售表2006》,,2006年度结束束到2007年时自自动创建并并使用《销销售表2007》。。销售
日期客户
名称货号货名规格单位销售
单价销售
数量销售
金额销售员
2、逻辑模模型(4)全公司职职工的《员员工表》结合整个公公司的人事事管理,能能表示《进进货表xxxx》中中“收货人人”和《销销售表xxxx》中中“销售员员”的详细细信息。其中“出生生日期”即即代表年龄龄,如果使使用“年龄龄”数据项项则每年都都需要改变变,采用““出生日期期”可以由由数据库的的函数自动动计算并显显示每年的的当前年龄龄。员工编号ID姓名性别出生日期部门工作时间照片个人简历
1.4关关系数据据库的规范范化在1.3.1节中我我们介绍关关系与表格格时曾指出出并不是所所有的二维维表格都可可以称为关关系,在关关系数据库库中,每一一个表格必必须满足一一定的要规规范条件。。数据模型是是数据库应应用系统的的基础和核核心,合理理设计数据据模型是数数据库应用用系统设计计的关键,,使用规范范化的优点点是:l大大改进数数据库的整整体组织结结构l减少数据冗冗余l增强数据的的一致性和和正确性l提高数据库库设计的灵灵活性更好的处理理数据库的的安全性数据库的三三个规范化化形式数据模型应应进行规范范化处理,,一个数据据库可以有有三种不同同的规范化化形式,即即:l第一规范化化形式1NFl第二规范化化形式2NFl第三规范化化形式3NF1.第一规范化化形式1NF第一规范化化形式简称称第一范式式:在一个个关系(数数据表)中中没有重复复的数据项项,每个属属性都是不不可分割的的最小数据据元素。即即每列的列列名(字段段名)都是是惟一的,,一个关系系中不允许许有两个相相同的属性性名,同一一列的数据据具有相同同的数据类类型,列的的顺序交换换后不能改改变关系的的实际意义义。字段:就是数据表表中的列,,一列叫做做一个字段段,表示关关系中实体体的一个属属性。简单说第一一范式就是是指数据表表中没有相相同的列———字段惟惟一。关系数据库库中所有的的数据表都都必须满足足1NF。。2、第二规规范化形式式2NF第二规范化化形式简称称第二范式式:在已满满足1NF的关系中,,一行(数数据元组、、记录)中中所有非关关键字数据据元素都完完全依赖于于关键字((记录惟一一)。即一一个关系中中不允许有有两个相同同的实体,,行的顺序序交换后不不能改变数数据表的实实际意义。。关键字:也也叫关键字字段或主键键,是所有有数据都是是惟一不重重复的字段段或字段的的组合。记录:数据表中的的一行叫做做一条记录录,由表中中各列的数数据项组成成,是一组组多个相关关数据的集集合,也称称为数据元元组。如果指定一一个关键字字,则可以以在这个数数据表中惟惟一确定一一条记录((行),比比如在《学学生信息表表》里指定定“学号””为关键字字,则每个个学号都惟惟一的表示示一个学生生的信息,,其他属性性都完全依依赖于“学学号”。简单说第二二范式就是是数据表中中没有相同同的行,通通过关键字字使记录惟惟一。不满足2NF的数据据表,将导导致数据插插入或删除除的异常,,稍有不慎慎会使数据据不一致,,规范化的的数据表都都必须满足足2NF。。【实实例例练练习习1-2】】根据据第第二二范范式式要要求求,,不不难难发发现现《《电电脑脑器器材材销销售售管管理理》》数数据据库库模模型型表表1.7《《销销售售表表xxxx》》不不满满足足第第二二范范式式::因为为公公司司每每天天可可以以销销售售多多种种商商品品,,则则““销销售售日日期期””不不惟惟一一;;一一个个客客户户可可能能多多次次购购买买不不同同的的商商品品,,则则““客客户户名名称称””不不惟惟一一;;同同一一货货号号的的商商品品会会多多次次销销售售给给不不同同的的客客户户……。。就就是是说说《《销销售售表表xxxx》》中中没没有有一一列列的的值值是是保保证证不不可可重重复复的的,,无无法法指指定定关关键键字字段段使使某某条条销销售售记记录录惟惟一一,,即即不不能能保保证证没没有有相相同同的的行行。。解决决方方法法::增加加一一列列““序序号号””作作为为该该表表的的关关键键字字,,该该列列数数据据没没有有重重复复的的值值,,则则可可以以保保证证没没有有重重复复的的记记录录((行行)),,以以满满足足2NF。。序号销售日期客户名称货号货名规格单位销售单价销售数量销售金额销售员
3、、第第三三规规范范化化形形式式3NF第三三规规范范化化形形式式简简称称第第三三范范式式::在在已已满满足足2NF的的关关系系中中,,不不存存在在传传递递依依赖赖于于关关键键字字的的数数据据项项。。传递递依依赖赖::某些些列列的的数数据据不不是是直直接接依依赖赖于于关关键键字字,,而而是是通通过过某某个个非非关关键键字字间间接接的的依依赖赖于于关关键键字字。。简单单说说第第三三范范式式就就是是表表中中没没有有间间接接依依赖赖关关键键字字的的数数据据项项。。实现现第第三三范范式式的的方方法法就就是是将将不不依依赖赖关关键键字字的的列列删删除除,,单单独独创创建建一一个个数数据据表表存存储储。。规范范化化的的数数据据库库应应尽尽量量满满足足3NF,,一一个个满满足足3NF的的数数据据库库将将有有效效地地减减少少数数据据冗冗余余。。注意意::三三个个范范式式不不是是独独立立的的,,3NF包包含含2NF,,2NF又又包包含含1NF。。【实实例例练练习习1-3】】《进进货货表表xxxx》》既既不不满满足足第第二二范范式式也也不不满满足足第第三三范范式式。。第一一::由由于于每每列列数数据据都都不不能能惟惟一一标标识识一一条条进进货货记记录录,,增增加加一一列列““序序号号””作作为为关关键键字字,,即即可可以以满满足足第第二二范范式式。。第二二::““厂厂家家地地址址、、账账户户、、联联系系人人””不不是是““进进货货记记录录””实实体体中中必必不不可可少少的的数数据据项项,,它它们们只只依依赖赖于于““供供货货商商””,,通通过过““供供货货商商””而而间间接接依依赖赖于于关关键键字字,,是是具具有有传传递递依依赖赖的的数数据据项项。。解决方法:将《进货表xxxx》中中有传递依赖赖的“厂家地地址、账户、、联系人”三三列删除,单单独建立一个个存储进货厂厂家信息的《《供货商表》》,指定“供供货商ID””字段为主键键,使其满足足第二范式((也满足第三三范式)。供货商ID供货商厂家地址账户联系人
【实例练习1-3】增加《供货商商表》后,可可在《进货表表xxxx》》中只保留一一个“供货商商ID”字段段,以便与《《供货商表》》建立关联。。注意:u修改后的《进进货表xxxx》在与《《供货商表》》建立关联后后(在后面介介绍),我们们就可以通过过“供货商ID”字段在在《供货商表表》中找到该该厂家的所有有信息。u修改后的《进进货表xxxx》仅仅消消除了一部分分传递依赖,,仍不满足第第三范式,因因为“货名””“规格”““单位”也是是依赖于“货货号”具有传传递依赖的数数据项,同样样修改后的表表1.9《销销售表xxxx》也不满满足第三范式式,我们将在在后面再进一一步规范。序号进货日期货号货名规格单位进价进货数量供货商ID收货人
数据库规范化化设计的原则则规范化数据库库的设计原则则:l保证数据库中中的所有数据据表都能满足足2NF,力力求绝大多数数数据表满足足3NF;l保证数据的完完整性;l尽可能减少数数据冗余。规规范化的缺缺点及非规范范化数据库的设计计都需要一定定程度的规范范化,但规范范化的缺点是是降低了数据据库的性能,,由于规范化化数据库要连连接不同表中中的数据,必必须给所关联联的数据表进进行定位、这这会占用更多多的CPU、、内存和输入入输出,自然然对数据库性性能产生一定定的负面影响响。所谓“非规范范化”是对已已经规范化的的数据库做适适当的修改,,允许有限度度的冗余性,,比如允许在在一个表中使使用少量频率率较高的重复复数据,则有有利于提高数数据库的性能能。注意:非规范范化的数据库库不同于没有有规范化过的的原始数据库库。1.5数据据表的关联与与数据的完整整性表表的关联对相关的数据据表进行连接接─建立关联联,可以使不不同的数据表表成为一个逻逻辑上的整体体,以便统一一管理。在SQLServer中数据表表的连接有交叉连接、内内连接、外连连接、自连接接等4种方式。。假设有《学生生信息表》《《学生成绩表表》,我们通通过这两个简简单数据表的的连接来理解解交叉连接、、内连接、外外连接和自连连接。学号姓名1001吕川页1002郑学敏1003于丽1004孙立华学号成绩1003921004781005851、交叉连接交叉连接也称称为非限制连连接、无条件件连接或笛卡卡尔连接,就就是将两个表表不加任何限限制的组合在在一起,其连连接方法是将将第一个表中中的每条记录录(行)分别别与第二个表表中的每条记记录(行)连连接成一条新新的记录(行行),连接结结果是具有两两个表记录数数乘积的逻辑辑数据表。两个表采用交交叉连接没有有实际意义,,仅用于说明明表直接的连连接原理。【例1-3】】将《学生信信息表》和《《学生成绩表表》进行交叉叉连接,结果果见表1.14。2、内连接内连接也称为为自然连接,,就是只将两两个表中满足足指定条件的的记录(行))连接成一条条新记录,舍舍弃所有不满满足条件没有有连接的记录录。内连接实际上上是把交叉连连接的结果按按指定条件进进行筛选后的的结果,是数数据表最常用用的连接方式式。【例1-4】】将《学生信信息表》和《《学生成绩表表》按“学号号=学号”进进行内连接显显示全部字段段,可得到两两个表中共有有的记录信息息。结果见表表1.15。。注意:《学生生信息表》中中的1001、1002号学生没有有对应的考试试成绩,《学学生成绩表》》中的1005号学生尚尚没有在《学学生信息表》》中注册(实实际中这种情情况是不可能能存在的)或或已经转学离离开,这些记记录不满足连连接条件,所所以不会出现现在结果集中中。3、外连接外连接分为左左外连接、右右外连接、全全外连接三种种。(1)左外连连接左外连接可以以得到左表((指定的第一一个表)的全全部记录信息息及右表(指指定的第二个个表)相关的的记录信息。。就是取左表表的全部记录录按指定的条条件与右表中中满足条件的的记录连接成成一条新记录录(相当于内内连接),但但该条件不限限制左表,左左表的全部记记录都包括在在结果集中,,若右表中没没有满足条件件的记录与之之连接,则在在相应的结果果字段中填入入NULL((Bit类型型填0),以以保持左表的的完整性。【例1-5】】将《学生信信息表》和《《学生成绩表表》按“学号号=学号”进进行左外连接接显示全部字字段。结果见见表1.16。(2)右外连连接右外连接可以以得到右表((指定的第二二个表)的全全部记录信息息及左表(指指定的第一个个表)相关的的记录信息。。右外连接与与左外连接方方法相同,只只是把两个表表的顺序颠倒倒了一下,就就是取右表的的全部记录按按指定的条件件与左表中满满足条件的记记录连接成一一条新记录,,但该条件不不限制右表,,右表的全部部记录都包括括在结果集中中,若左表中中没有满足条条件的记录与与之连接,则则在相应的字字段上填入NULL(Bit类型填填0),以保保持右表的完完整性。【例1-6】】将《学生信信息表》和《《学生成绩表表》按“学号号=学号”进进行右外连接接显示全部字字段。结果见见表1.17。(3)全外连连接全外连接可以以得到左表与与右表的全部部记录信息。。相当于先左左外连接再右右外连接的综综合连接,就就是取左表((第一个表))的全部记录录按指定的条条件与右表((第二个表))中满足条件件的记录连接接成一条新的的记录,右表表中若没有满满足条件的记记录则在相应应的字段上填填入NULL,再将左表表不符合条件件记录的相应应字段填入NULL,以以保持两个表表的完整性。。【例1-7】】将《学生信信息表》和《《学生成绩表表》按“学号号=学号”进进行全外连接接显示全部字字段。结果见见表1.18。4、自连接自连接就是一一张表看成两两个副本,对对同一数据表表的两个副本本按指定条件件进行内连接接。使用自连接可可以将一张表表中满足条件件的不同记录录连接起来。。我们将在5.2.4节实实现表的连接接时举例说明明自连接。数据的完整性性及约束1、数据的完整性性数据的完整性性泛指数据的的正确性和一一致性,包括括实体完整性性、参照完整整性和域完整整性。(1)实体完完整性实体完整性是是指数据表中中的所有行都都是惟一的确确定的,所有有记录都是可可以区分的((满足2NF)。实体完完整性规则规规定了表中的的主键值惟一一,所有主要要属性都不能能取空值。例如,在《员员工表》中,,“员工编号号”可作为主主键,同时““员工编号、、姓名、性别别、出生日期期、部门、工工作时间”都都不能取空值值才能保证每每个“员工””实体的完整整性。(2)参照完完整性当一个表中的的某列数据((外键)依赖赖并引用另一一个表中的某某列数据时,,这两个表之之间的相关数数据必须保持持一致性。例如在《进货货表xxxx》中的“供供货商ID””(外键)的的取值必须参参照《供货商商表》中的““供货商ID”(主键))的有效值,,与其保持一一致性。再例如《进货货表xxxx》中的“收收货人”、《《销售表xxxx》中的的“销售员””必须与《员员工表》中的的某个“姓名名”属性值保保持一致。(3)域完整整性域完整性是指指表中每列的的数据具有正正确的数据类类型、格式和和有效的取值值范围,保证证数据的正确确性。例如员工的性性别只能取值值为“男”或或“女”;厂厂家账户只能能是数字字符符;进货数量量只能是大于于0的正整数数。2、约束(1)主键约束(Primarykey)设置主键约束束的字段称为为关键字段,,主键值是记记录的惟一标标识,主键约约束可以保证证数据的实体体完整性,使使表中的记录录是惟一可区区分和确定的的(满足2NF)。规范化的数据据库每个表都都必须设置主主键约束,主主键有以下特特点和限制::l主键的字段值值必须是惟一一的,不允许许重复。l主键的字段值值必须是确定定的,不允许许为空。l一个表只能定定义一个主键键,主键可以以是单一字段段,也可以是是多个字段的的组合,用多多个列的组合合作主键时每每个列上的数数据都可以重重复,但其组组合值不允许许重复。lText、Ntext和和Image类型的字段段不能做主键键。不论输入数据据的顺序如何何,数据表将将按记录的主主键值从小到到大进行物理理升序排序。。【实例练习1-4】为《电脑器材材销售管理》》数据库模型型中的数据表表设置主键::《销售表xxxx》《进进货表xxxx》将“序序号”字段设设置为主键;;《商品一览表表》将“货号号”设置为主主键;《供货商表》》将“供货商商ID”设置置为主键;《员工表》将将“员工ID”设置为主主键。(2)惟一约束(Unique)惟一约束可以以指定一列数数据或几列数数据的组合值值在数据表中中是惟一不能能重复的。惟一约束用于于保证主键以以外的字段值值不能重复,,用以保证数数据的实体完完整性,但惟惟一约束的字字段不是主键键,其区别是是:l一个表可以以定义多个个惟一约束束,而主键键约束只能能定义一个个;l定义为惟一一约束的字字段可以允允许为空值值(只能有有一个),,而主键约约束的字段段不允许为为空值;l记录按主键键值的指定定顺序存储储,而惟一一约束的字字段值不改改变记录的的物理位置置,仅仅保保证该字段段的值不重重复。例如《供货货商表》中中指定了““供货商ID”为主主键,若还还需保证““供货商””“厂家地地址”“账账户”各字字段的值不不能重复,,则可以设设置为惟一一约束。(3)外键约束((Foreignkey))如果一个表表中某个字字段的数据据只能取另另一个表中中某个字段段值之一,,则必须为为该字段设设置外键约约束,设置置外键约束束字段的表表称为子表表,它所引引用的表称称为父表。。外键约束可可以使一个个数据库中中的多个数数据表之间间建立关联联,外键的的取值必须须是被引用用表中主键键的值,通通过外键约约束可以使使父表与子子表建立一一对多的逻逻辑关系。。外键约束可可以保证数数据的参照照完整性和和域完整性性性。l外键可以是是单一字段段,也可以以是多个字字段的组合合。l外键所引用用父表中的的字段必须须是创建了了主键约束束或惟一约约束的列。。l外键允许空空值,可以以有重复值值,但必须须是父表引引用列中的的数据之一一,也就是是说父表中中没有的数数据子表不不可以添加加。l子表中外键键字段添加加的新数据据,必须先先在父表中中添加,再再在子表中中添加。l子表中引用用父表数据据的记录未未删除,则则父表中被被引用的数数据不能被被删除。【实例练习习1-4】】《进货表》》《销售表表》中的““货号”是是公司在《《商品一览览表》中统统一规定的的,它们的的取值必须须是《商品品一览表》》主键“货货号”的字字段值之一一,必须设设置外键。。《进货表》》中的“供供货商ID”是连接接生产厂家家有关信息息的,必须须设置外键键约束引用用父表主键键“供货商商ID”的的数据。《进货表》》中的“收收货人”和和《销售表表》中的““销售员””都是本公公司员工,,它的取值值必须是《《员工表》》“姓名””字段值之之一,必须须设置外键键约束。注意:因为《员工工表》指定定了“员工工ID”为为主键,所所以子表外外键所引用用的“姓名名”字段必必须设置惟惟一约束以以满足外键键约束的要要求。(4)检查约束((Check)检查约束是是用指定的的条件(逻逻辑表达式式)检查限限制输入数数据的取值值范围是否否正确,用用以保证数数据的参照照完整性和和域完整性性。例如::《商品一览览表》的““货号”只只能使用数数字。《供货商表表》的“供供货商ID”只能使使用大写字字母,账户户只能使用用数字或““-”号。。《员工表》》的“性别别”只能取取值为“男男”或“女女”;《销售表xxxx》》的“数量量”“销售售单价”必必须大于0;“销售售单价”只只能在公司司“参考价价格”的5%范围内内下浮或上上调。(5)默认值约束束(Default)默认值约束束是给某个个字段绑定定一个默认认的初始值值(可以是是常量、表表达式或系系统内置函函数),输输入记录时时若没有给给出该字段段的数据,,则自动填填入默认值值以保证数数据的域完完整性。对于事先不不知道数据据或需要自自动计算产产生数据但但又不允许许为空的字字段,使用用默认值约约束尤其方方便并提高高效率。对设置了默默认值约束束的字段若若输入数据据时则以输输入的数据据为准。《商品一览览表》的““库存量””在创建数数据库初期期是没有数数据的,在在系统运行行时能自动动计算,可可以设置默默认值为0。《进货表》》的“进货货日期”和和《销售表表》中的““销售日期期”,可用用系统当前前的日期设设置默认值值。(6)空值约束((NULL)空值NULL是不知知道或不能能确定的特特殊数据,,不等同于于数值0和和字符的空空格。空值约束就就是设置某某个字段是是否允许为为空,用以以保证数据据的实体完完整性和域域完整性性性。必须有确定定值的字段段(尤其是是数值字段段)可设置置空值约束束为“否””,即不允允许为空;;可以允许许有不确定定值的字段段设置空值值约束为““是”,则则允许为空空。《商品一览览表》的““平均进价价”“参考考价格”需需要根据进进价和市场场情况才可可以制定,,在确定经经营某种商商品初期,,开始输入入商品信息息时可以允允许为空,,其他字段段则不允许许为空。《进货表》》填写进货货记录时所所有字段均均不允许为为空,必须须设置空值值约束为““否”。《员工表》》中的“照照片”“个个人简历””允许为空空,空值约约束可设置置为“是””。1.6关关系数据据库应用实实例—《电电脑器材销销售管理》》1.6.1《电脑器器材销售管管理》数据据库的规范范化设计【实例练习习1-5】】《电脑器器材销售管管理》数据据库的进一一步规范化化设计1.满足第一范范式《电脑器材材销售管理理》全部数数据表都已已经满足了了1NF,,即各表中中没有重复复的数据项项─各表的的字段名是是惟一的,,没有相同同的列。2.满足第二范范式在【实例练练习1-4】为每个个表指定了了关键字──创建主键键约束后,,全部数据据表也都已已经满足了了2NF,,即各表中中的关键字字段都可以以惟一区分分不同的记记录,没有有重复的行行。【实例练习习1-5】】3、满足第三范范式减少数数据冗余(1)主表表《商品一一览表》、、《供货商商表》、《《员工表》》中都没有有传递依赖赖的字段,,所有字段段都直接依依赖关键字字,因此都都能满足第第三范式。。(2)修改改后的《进进货表xxxx》还还存在与《《商品一览览表》中““货号、货货名、规格格、单位””相重复的的字段,其其中“货名名、规格、、单位”是是有传递依依赖的字段段,不能满满足第三范范式。解决方法::将表1.11《进货货表xxxx》中的的重复字段段“货名、、规格、单单位”删掉掉,只保留留“货号””字段,并并设置为外外键约束引引用父表《《商品一览览表》的主主键“货号号”。满足足第三范式式的《进货货表xxxx》见表表1.19。【实例练习习1-5】】(3)在表表1.9《《销售表xxxx》》中只保留留“货号””并设置为为外键,引引用父表《《商品一览览表》的主主键“货号号”。考虑销售时时有“商
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论