1、Access数据库应用教案第一章 数据库基础【教学目的】(1)了解数据库的产生、发展和数据库的基本概念 (2)掌握数据模型的有关知识、表示方式和有关数据模型中的基本概念(3)掌握实体的概念、实体之间的关系以及关系的完整性和关系模型、关系模型规范化基本知识(4)了解数据库设计的基本流程,掌握E-R图的绘制方法和转换成关系模型的方法【教学重点】(1)数据库的基本概念(2)数据模型、关系模型的完整性,关系模型的规范化 (3)设计数据库的基本思路(4)E-R图的绘制方法和转换 【教学难点】(1)E-R图的绘制(2)E-R图的转换成关系模式(3)关系模式的范式化【所需课时】 810学时1、1数据库概述一
2、、数据库的产生和发展 数据库技术产生于20世纪60年代中期,但是数据库这个词汇最早源于20世纪50年代,到现在为止数据库技术的发展已经经历三了个阶段u 人工管理阶段(1、1、1) 20世纪50年代,数据处理都是通过手工进行,人工管理阶段时期的数据管理技术具有如下特点:(1) 数据管理由应用程序完成。应用程序中不仅要规定数据的逻辑结构,而且在程序中还要设计物理结构,包括存储结构的存取方法、输入/输出方式等,一旦数据在存储器上改变物理地址,就需要相应地改变用户程序。(2) 数据不能共享。数据和程序一一对应,数据不能共享,数据组和数据组之间可能有许多重复数据,会造成数据冗余。(3) 数据缺乏独立性。
3、一组数据对应一个程序,数据面向应用,独立性很差。(4) 数据不能保存。在该阶段计算机主要用于科学计算,一般不需要将数据长期保存,只在计算一个题目时,将数据输入计算机,得到计算结果即可。 u 文件系统阶段(1、1、2) 文件系统阶段为20世纪50年代后期到20世纪60年代。在这一时期计算机的硬件和软件得到了飞速发展,计算机不再只用于科学计算这个单一任务,还可以做一些非数值数据的处理。这时也有了大容量的磁盘等存储设备,并且已经有了专门管理数据的软件,即文件系统。在文件系统中,按一定的规则将数据组织成为一个文件,应用程序通过文件系统对文件中的数据进行存取和加工。文件系统对数据的管理,实际上是通过应用
4、程序和数据之间的一种接口实现的,文件系统阶段有如下特点:(1)数据可以长期保存 数据可以长期保存在磁盘上。用户可以反复对文件进行查询、修改、插入和删除等操作。(2)文件系统提供了数据与程序之间的存取方法。应用程序和数据有了一定的独立性。数据物理结构的改变也不一定反映在程序上,大大减轻了程序员的负担。(3)数据冗余量大。数据冗余是指不必要的重复存储。在文件系统中,文件仍然是面对应用的,一个文件基本上对应于一个应用程序。即使多个程序使用了一部分相同的数据,也必须建立各自的文件,不能对数据项进行共享,因此数据冗余大,存储空间浪费。由于数据可能有多个副本,对其中之一进行修改时还容易造成数据的不一致性。
5、(4)文件之间缺乏联系,相对孤立,仍然不能反映客观世界各个事物之间错综复杂的联系。u 数据库系统阶段(1、1、3) 数据库管理系统(DataBase Management System,DBMS)是位于用户与操作系统之间的一层数据库管理软件,负责完成各种数据处理操作。典型的数据库管理系统有Microsoft SQL Server、Microsoft Office Access、Microsoft FoxPro和Oracle、Sybase等。数据库管理系统主要包括以下4个方面的功能:(1) 数据定义功能。数据库管理系统提供数据定义语言(Data Definition Language,DDL),
6、通过它可以方便地对数据库中的数据对象进行定义。(2) 数据操纵功能。数据库管理系统提供数据操纵语言(Data Manipulation Language,DML),通过它可以操纵数据以实现对数据库的基本操作,如查询、插入、删除和修改等。 (3) 数据库的运行管理。数据库管理系统统一控制和管理数据库的运行,保证了数据库的安全性、完整性和共享性。(4) 数据库的建立和维护。数据库管理系统包括了数据库初始数据的输入、数据库的恢复和数据库的监视等功能,这些功能通常由一些程序来完成。 (数据库系统阶段为20世纪60年代后期至末,计算机性能得到了很大提高,出现了大容量磁盘和存储器,同时价格也急剧下降。人们
7、克服了文件系统的不足,开发出数据库管理系统,从而将传统的数据管理技术推向一个新的阶段。数据库系统阶段的数据管理技术具有如下特点:(1) 数据结构化。数据库也是以文件方式存储数据的,但是,它是数据的一种高级组织形式,对数据进行合理设计,以便计算机存取。(2) 数据共享程度高。数据库管理系统把所有应用程序中所使用的数据汇集在一起,并以记录为单位存储起来,以便应用程序查询和使用。(3) 数据独立性强。数据库系统与文件系统的区别是:数据库对数据的存储是按照同一结构进行的,不同的应用程序都可以直接操作这些数据(即对应用程序的高度独立性)。(4) 数据冗余度小。数据库系统实现了有组织地、动态地存储大量关联
8、数据,方便多用户访问,数据冗余度小。(5) 加强对数据的保护。数据库系统对数据的完整性、唯一性和安全性都提供了一套有效的管理手段(即数据的充分共享性)。 当今的数据库主要研究的方向主要有两个:l 一是改造和扩充关系数据库,以适应新的应用要求;l 二是改用新的数据库模型。目前,这两个方面都取得了很大发展1、2数据库基础知识 为了更好地理解数据库管理系统,下面先介绍一下 信息、 数据、 数据库、 数据库系统这几个概念。1、2、11. 信息与数据1) 信息信息(Infomation)是对客观事物的特征、运动形态以及事物间的相互联系等多种要素的抽象反映。我们可以从两个方面来理解信息。 【第一,信息是客
9、观事物固有的特征,比如一个学生有学号、姓名、出生日期和身高等信息。信息是客观存在的,有些信息是人们能感受到的,有些信息则需要特殊的设备去检测。第二,信息是一种资源,在信息社会,信息已成为人类社会活动的一种重要资源,它与能源、物质并称为人类社会活动的三大要素。能源提供各种形式的动力,物质提供各种有用的材料,而信息可以为人类提供无穷的知识和智慧。】2) 数据数据(Data)通俗的说就是描述信息的符号,是数据中存储的基本对象,是描述事物的物理符号序列,可以是用来表示长度、体积、重量之类的数字数值,也可以是人名或地名、图形、图像、动画、影像、声音等非数值数据。数据与信息的联系信息与数据是两个既有联系、
10、又有区别的概念。数据是信息的载体,而信息是数据的内涵。同一信息可以有不同的数据表示形式;而同一数据也有不同的解释。 数据的三种范畴数据需要人们认识、理解、整理、规范和加工,然后才能存放到数据库中。也就是说数据从现实生活进入到数据库实际经历了若干个阶段。一般分为三个阶段,即现实世界阶段、信息世界阶段和机器世界阶段,称之为数据的三种范畴。数据在三种范畴中的概念、术语都有些不同。1现实世界在常见的库存管理系统中,首先涉及的是仓库、货物的存放以及货物的进出库等,这种管理称为现实世界管理。在现实世界管理中,这些被管理的对象称为实体,可以这样定义:客观存在并可以相互区分的客观事物或抽象事件。可以触及的客观
11、对象有仓库、器件、职工等,它们是实体,客观存在的抽象事件有订货、发货等,它们也是实体。每个实体具有一定的特征,这样才能根据实体的特征来区分一个个实体。如职工的编号、姓名、工资等都是职工实体具有的特征;订货的订单号、货物的品种、数量、单价等都是订货实体的特征。把具有相同特征的一类实体的集合称为实体集。如所有的器件、所有的职工、所有的订货都构成各自的实体集。又把区分实体的实体特征称为标识特征。实体的特征可以用来区分实体,但并不是所有的特征都能达到区分实体的目的。如职工的工资特征就不能区分一个个职工实体。所以要强调区分对象的特征或区分实体的特征标识特征(具体到关系数据库中就是关系表的主键)。如,职工
12、号就可以用来区分一个个职工,职工号是职工的标识特征,而工资就不是职工的标识特征。2信息世界在进行现实世界管理时,客观事物必然在人们的头脑中产生反映,这种反映就是信息。如,在库存管理中可以用账本管理库存业务,这种账本就是人们经过头脑加工、记录、整理和归类的信息,这种管理就是信息管理。所以信息是现实世界状态的反映,信息管理是现实世界管理的反映。信息世界不是现实世界的录像,这是因为信息世界的对象是经过了人为的选择、加工的,人们把这些有意义的对象进行命名、分类,并在信息世界范畴另外建立了一套描述这些对象的术语。在信息世界范畴,用实体记录表示实体,用实体记录集表示实体集,用属性表示实体的特征,用标识属性
13、表示标识特征。3机器世界当信息管理进入计算机后,就把它称为机器世界范畴或存储世界范畴。由于计算机只能处理数据化的信息,所以对信息世界中的信息必须进行数据化,数据化后的信息称为数据,所以说数据是信息的符号表示。在机器世界范畴,用记录表示信息世界范畴的实体记录,用文件表示实体记录集,用数据项或字段表示标识属性。表1-1中列出了数据在三种不同范畴使用的术语。实际上,在不同的范畴即使交叉使用有关术语,也不至于混淆。三种范畴所用术语均有有型和值之分。如实体集仓库是一个命名型,而(“WH1”,“广州”,450)是具体的值;又如属性(字段)是型,而“广州”、“北京”是属性城市的值。表1-1 三种范畴使用的不
14、同术语现实世界范畴信息世界范畴机器世界范畴所有客观对象条理化的信息数据库实体集实体集记录文件实体实体记录记录特征属性字段或数据项标识特征标识属性关键字2. 数据库数据库(DataBase,简写为DB)是长期存储在计算机内有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性并且容易扩展,可以为各种用户所共享。 3. 数据库管理系统数据库管理系统(DataBase Management System,DBMS)是位于用户与操作系统之间的一层数据库管理软件,负责完成各种数据处理操作。典型的数据库管理系统有Microsoft SQL Serve
15、r、Microsoft Office Access、Microsoft FoxPro和Oracle、Sybase等。数据库管理系统主要包括以下4个方面的功能:(1) 数据定义功能。数据库管理系统提供数据定义语言(Data Definition Language,DDL),通过它可以方便地对数据库中的数据对象进行定义。 (2) 数据操纵功能。数据库管理系统提供数据操纵语言(Data Manipulation Language,DML),通过它可以操纵数据以实现对数据库的基本操作,如查询、插入、删除和修改等。 (3) 数据库的运行管理。数据库管理系统统一控制和管理数据库的运行,保证了数据库的安全性
16、、完整性和共享性。(4) 数据库的建立和维护。数据库管理系统包括了数据库初始数据的输入、数据库的恢复和数据库的监视等功能,这些功能通常由一些程序来完成。 4. 数据库系统数据库系统(DataBase System,DBS)是指拥有数据库技术支持的计算机系统。它可以有组织地、动态地存储大量相关数据,提供数据处理和信息资源共享服务。数据库系统由计算机系统(硬件和基本软件)、数据库、数据库管理系统、数据库应用系统和有关人员(数据库管理员、应用设计人员、最终用户)组成。5、数据库应用系统数据库应用系统是为特定应用开发的数据库应用软件。数据库管理系统为数据的定义、存储、查询和修改提供支持,而数据库应用系
17、统是对数据库中的数据进行处理和加工的软件,它面向特定应用。1.2.2 数据模型1. 数据模型的概念 数据(Data)是描述事物的符号记录。模型(Model)是现实世界的抽象。数据模型(Data Model)是数据特征的抽象,是数据库管理的教学形式框架。数据模型描述的内容包括三个部分:数据结构、数据操作、数据约束。(1) 数据结构:主要描述数据的类型、内容、性质以及数据间的联系等。数据结构是数据模型的基础,数据操作和约束都建立在数据结构上。不同的数据结构具有不同的操作和约束。(随着社会的发展,技术要处理的数据量越来越庞大,想互间的关系越来越复杂,所以数据库中的大量数据必须按严格的数据模型来组织。
18、数据库中的数据是高度结构化的,它不仅反映数据本身,而且反映数据之间的关系。数据模型就是描述这种关系的数据结构形式,在数据库中使用数据模型对现实世界进行抽象。数据模型上数据库系统的核心和基础)理想的数据模型应满足三方面的要求,一是能比较真实地描述现实世界;二是容易被人所理解;三是便于在计算机上实现。(2) 数据操作:操作算符的集合,包括若干操作和推理规则,用以对目标类型的有效实例所组成的数据库进行操作。(数据操作是指数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。数据库主要有检索(查询)和更新(包括插入、删除、修改)两大类操作、数据模型必须定义这些操作的确切好那
19、仪、操作符号、操作规则(如优先级)以及实现操作的语言。数据操作是对系统动态特性的描述)(3) 数据约束:完整性规则的集合,用以限定符合数据模型的数据库状态以及状态的变化。约束条件可以按不同的原则划分为数据值的约束和数据间联系的约束,静态约束和动态约束,实体约束和实体间的参照约束等。 (完整性规则是给定的数据模型中数据极其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化以保证数据的正确、有效和相容)数据模型按不同的应用层次分成三种类型,分别是概念数据模型、逻辑数据模型、物理数据模型。(1) 概念数据模型(Conceptual Data Model):简称概念模型,是面向
20、数据库用户的实现世界的模型,主要用来描述世界的概念化结构,它使数据库的设计人员在设计的初始阶段摆脱计算机系统及DBMS的具体技术问题,集中精力分析数据以及数据之间的联系等,与具体的数据管理系统(DataBase Management System,DBMS)无关。概念数据模型必须换成逻辑数据模型才能在DBMS中实现。(2) 逻辑数据模型(Logical Data Model):简称数据模型,这是用户从数据库中看到的模型,是具体的DBMS所支持的数据模型,如网状数据模型(Network Data Model)、层次数据模型(Hierarchical Data Model)等。此模型既要面向用户,
21、又要面向系统,主要用于数据库管理系统(DBMS)的实现。(3) 物理数据模型(Physical Data Model):简称物理模型,是面向计算机物理表示的模型,描述了数据在存储介质上的组织结构,它不但与具体的DBMS有关,还与操作系统和硬件有关。每一种逻辑数据模型在实现时都有其对应的物理数据模型。DBMS为了保证其独立性与可移植性,大部分物理数据模型的实现工作由系统自动完成,而设计者只设计索引、聚集等特殊结构。概念模型是现实世界到信息世界的抽象,又称为信息模型。数据模型是信息世界到数据世界的抽象。 在概念数据模型中最常用的是E-R模型、扩充的E-R模型、面向对象模型及谓词模型。在逻辑数据类型
22、中最常用的是层次模型、网状模型和关系模型。2. 四种常见的数据模型在数据库领域中最常见的数据模型有四种即 层次模型、网状模型、关系模型和面向对象模型:下面分别介绍层次模型、网状模型、关系模型和面向对象模型。其中,层次模型和网状模型统称为非关系模型。1) 层次模型层次数据模型: 用树型结构来表示实体之间联系的模型称为层次数据模型。构成层次模型的树是由结点和连线组成,结点表示实体集,连线表示相连两个实体之间的联系,这种联系只能是一对多的。通常把表示“一”的实体放在上方,称为父结点;而把表示“多”的实体放在下方,称为子结点。 层次模型(Hierarchical Modle)是用树状结构表示数据之间联
23、系的数据模型。树是由节点和连线组成的,节点表示数据,连线表示数据之间的联系。层次模型满足如下两个条件: (1) 有且只有一个节点没有父节点,该节点称为根节点。(2) 其他节点有且仅有一个父节点。层次模型可以直接表示一对一联系和一对多联系,但不能直接表示多对多联系。如图1-4所示的就是一个层次模型的例子。其中,D1为根节点;D2和D3为兄弟节点,是D1的子节点;D4和D5为兄弟节点,是D2的子节点;D3、D4、D5为叶节点。图1-4 层次模型示例 2) 网状模型网状模型(Network Model)是用网络结构表示数据之间联系的数据模型,是层次模型的扩展。网状模型只需满足下面任意一个条件:(1)
24、 可以有任意多个节点而没有父节点。(2) 一个节点允许有多个父节点。(3) 两个节点之间可以有两种或两种以上的联系。网状模型可以直接表示多对多联系,但节点间的连线比较复杂,因而数据结构也比较复杂。如图1-5所示是一个网状模型的例子。其中,D1和D2没有父节点,D3和D5有两个父节点,D2和D3之间有两种联系R1和R2。图1-5 网状模型示例3) 关系模型关系模型(Ralational Model)是用关系来表示数据之间联系的数据模型,关系是指由行与列构成的二维表。Microsoft SQL Server、Microsoft Access、Microsoft FoxPro、Oracle、Syba
25、se等都属于关系模型数据库管理系统。这部分内容会在1.2.3节进一步深入讨论。4) 面向对象模型面向对象模型(Object Oriental Model)是一种新兴的数据模型,它采用面向对象的方法来设计数据库。面向对象模型的数据库存储以对象为单位,每个对象包含对象的属性和方法,具有类和继承等特点。Computer Associates公司的Jasmine就是面向对象模型的数据库系统。在面向对象的数据模型中,一个对象存取另一个对象的数据的唯一途径是调用被存取对象的某个方法。对象方法的调用通过在对象之间传送消息来实现。对象方法的调用接口是对外可见的。对象内部的变量和程序编码是封闭的、不可见的。面向
26、对象的数据模型实现了数据的独立性。下面用一个例子来说明这种独立性。 我们可以把银行的账户作为一个对象,记做account。对象account具有两个变量:一个是账号变量number,另一个是存款余额变量balance。account具有一个方法pay_interest,负责计算每个账户的利息并增加到该账户的balance变量中。该银行以往付给每个账户的利息都是8%。现在,银行调整利息如下:只有balance高于1000元的账户才能获得8%的利息,其他账户只能获得6%的利息。使用其他数据模型实现这种利息调整,必须修改有关的应用程序;使用面向对象的数据模型,则只需修改方法pay_interest就
27、可以实现这种利息调整,不需要任何其他改变,更不需要修改应用程序。 1.2.3 关系数据库关系数据库是E.F.Cold在20世纪70年代提出的数据库模型,自20世纪80年代以来,新推出的数据库管理系统几乎都支持关系数据模型。Microsoft Office Access是一种典型的关系数据库管理系统。1. 关系模型中的相关术语下面以“课程编号”表(参见表1-1)为例,介绍关系模型中的相关术语。(1) 关系。一个关系就是一个二维表,每个关系有一个关系名称,如表1-1所示的课程编号表。表1-1 课 程 编 号关系就是二维表格,表格中的每一行称作是一个元组,它相当于一个记录值,每一列是一个属性值集,列
28、可以命名,称为属性名。这里的属性与前面讲到的实体属性(特征)或记录的字段意义相当。由此可以说,关系是元组的集合,如果表格有n列,则称该关系是n元关系。(7) 主码。若一个表中有多个候选码,可以指定其中一个为主码(主关键字)。 (8) 外码。如果表中的一个属性(字段)不是本表的主码或候选码,而是另外一个表的主码或候选码,这个属性(字段)称为外码(外部关键字)。(9) 关系模式。一个关系的关系名及其全部属性名的集合简称为关系模式,也就是对关系的描述,一般表示为“关系名(属性名1,属性名2,属性名n)”,如“课程编号(课程编号,课程名称,课时)”就是一个关系模型。(10) 联系。实体集之间的对应关系
29、称为联系,它反映现实世界事物之间的相互关联。实体间的联系按联系方式可分为以下三种类型:一对一联系(11)、一对多联系(1n)、多对多联系(mn)。2. E-R(Entity - Relationship)模型实体-联系模型(简称E-R模型)是由P.P.Chen于1976年首先提出的,也称为E-R图。它提供不受任何DBMS约束的面向用户的表达方法,在数据库设计中被广泛用作数据建模的工具。E-R数据模型问世后,经历了许多修改和扩充。E-R模型的构成成分是实体集、属性和联系集,其表示方法如下:(1) 实体集用矩形框表示,矩形框内写上实体名。(2) 实体的属性用椭圆框表示,框内写上属性名,并用无向边与
30、实体集相连。(3) 实体间的联系用菱形框表示,联系以适当的含义命名,名字写在菱形框中,用无向连线将参加联系的实体矩形框分别与菱形框相连,并在连线上标明联系的类型,即1-1(1对1)、1-M(1对多)或M-M(多对多)。3. 关系模型的完整性关系模型的完整性规则是对关系的某种约束条件。关系模型有四类完整性约束,即实体完整性、参照完整性、值域完整性和用户定义完整性。 1) 实体完整性每个关系都有一个主关键字,每个元组主关键字的值应是唯一的。主关键字的值不能为空,否则,无从识别元组,这就是实体完整性约束。2) 参照完整性在关系模型中,实体之间的联系是用关系来描述的,因而存在关系与关系之间的引用。这种
31、引用可通过外部关键字来实现。参照完整性规则是对关系外部关键字的规定,要求外部关键字取值必须是客观存在的,即不允许在一个关系中引用另一个关系里不存在的元组。3) 值域完整性值域完整性指数据表中的记录的每个字段的值应在允许的范围内。例如,可规定“学号”字段必须由数字组成,并且字段不能超过5个字符。 4) 用户定义完整性由用户根据实际情况,对数据库中数据所做的规定称为用户定义完整性规则,也称为域完整性规则。通过这些规则限制数据库只接受符合完整性约束条件的数据值,从而保证数据库的数据合理可靠。4. 关系模型的范式化范式化是保持存储数据完整性并且使冗余数据最少的结构过程,规范化的数据库即符合关系模型规则
32、的数据库。关系模型规则称为范式。范式包括第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。1) 第一范式设R是一个关系模式,如果R中的每个属性都是不可再分的最小数据项,则称R满足第一范式或R是第一范式。第一范式满足以下两个条件:(1) 记录的每个属性只能包含一个值。(2) 关系中的每个记录一定不能相同。例如,学生(学号,姓名,性别,系名,入学时间,家庭成员)不满足第一范式,因为家庭成员属性可以再分解,可将“学生”分解为学生(学号,姓名,性别,系名,入学时间)和家庭(学号,家庭成员,亲属关系)。2) 第二范式 如果关系模式R是第一范式,且所有非主属性都完全依赖于其主关键字,则称R是第二
33、范式。如表1-1中,“课程名称”、“课时”依赖于“课程编号”属性,因此“课程编码”关系是第二范式。3) 第三范式假设关系中有A、B、C三个属性,传递依赖是指关系中B属性依赖于主关键字段A,而C属性依赖于B属性,称字段C传递依赖于A。如果关系模式R是第二范式,且所有非主属性对任何主关键字都不存在传递依赖,则称R满足第三范式或R是第三范式。如表1-2所示,候选键是“教师编号”属性,“系别编号”、“课程编号”、“工作时间”、“学历”、“职称”都依赖该候选键,并且相互之间无关,其属于第三范式。表1-2 教 师 表利用关系范式实现数据库的数据存储的规范化,可减少数据冗余,节省存储空间,避免数据不一致性,
34、提高对关系的操作效率,同时满足应用需求。在实际应用中,并不一定要求全部模式都达到第三范式。有时故意保留部分冗余可能会更方便数据查询,尤其对于那些更新频度不高,查询频度极高的数据库系统更是如此。5. E-R模型与关系模型的转化E-R模型是数据库的一种概念模型,关系数据库采用的模型是关系模型,因此,必须将E-R模型转化为关系模型。根据E-R模型中实体之间的联系,将E-R模型转化为关系模型的方法如下。 1) 一对一(11)联系的转换转换方法:将联系与任意一端实体所对应的关系模式合并,在关系模式的属性中加入另一个实体的主码和联系本身的属性。【例1-1】在人事管理系统中,“部门经理”实体和“部门”实体之
35、间的任职联系是一对一的联系,其E-R模型如图1-6所示,请将其E-R模型转换为关系模型。图1-6 部门-经理E-R模型转换方法:该E-R模型有两个实体,即“部门”实体和“部门经理”实体,且它们是11的联系。因此,将联系合并到“部门”实体或“部门经理”实体中,并将联系本身的属性和另一个实体的主码作为属性放入合并的实体中,以下两种方法均可:(1) 将“任职”联系合并到“部门”实体中。部门(部门经理,部门名称,经理编号,聘任时间,任期)经理(经理编号,经理姓名)(2) 将联系合并到“部门经理”实体中。部门(部门编号,部门名称)经理(经理编号,经理姓名,部门编号,聘任时间,任期)2) 一对多(1n)联
36、系的转换转换方法:将该联系与n端实体所对应的关系模式合并。合并时需要在n端实体的关系模式的属性中加入1端实体的主码和联系本身的属性。【例1-2】请将图1-7中的E-R模型转换为关系模型。6. 关系运算早期的关系操作有两种表示方式:关系代数与关系演算。理论上,关系代数和关系演算被证明是完全等价的。关系代数通过对关系的运算来表达查询,其操作对象是关系,操作结果亦为关系。传统的集合操作包括并、交、差、广义笛卡儿积等。这类操作将关系看做元组的集。其操作是从关系的水平方向(即关系的行)来进行的。 设关系R和关系S具有相同数目的属性列(n列属性),并且相应的属性取自同一个域,则可定义以下四种集合运算: v
37、 并(Union):关系R与关系S的并,它是属于R或属于S的元组组成的集合,结果为n列属性的关系。v 交(Intersection):关系R与关系S的交,它是既属于R又属于S的元组组成的集合,结果为n列属性的关系。v 差(Difference):关系R与关系S的差,它是属于R而不属于S的元组组成的集合,结果为n列属性的关系。v 广义笛卡儿积(Extended Cartesian Product):关系R(假设为n列)和关系S(假设为m列)的广义笛卡儿积是一个(n+m)列元组的集合,每一个元组的前n列是来自关系R的一个元组,后m列是来自关系S的一个元组。若R有K1个元组,S有K2个元组,则关系R
38、和关系S的广义笛卡儿积有K1K2个元组。以传统的集合操作为依据,数据库关系运算主要包括选择(Select)、投影(Project)、连接(Join)、自然连接(Nature Join)。1) 选择选择运算是在关系中选择满足某些条件的元组。也就是说,选择运算是在二维表中选择满足指定条件的行。示例如图1-8所示。图1-8 选择运算2) 投影投影运算是从关系模式中指定若干个属性组成新的关系,即在关系中选择某些属性列。示例如图1-9所示。 3) 连接连接运算将两个关系模式通过公共的属性名拼接成一个更宽的关系模式,生成的新关系中包含满足连接条件的元组。示例如图1-10所示。4) 自然连接在连接运算中,按
39、字段值相等的连接称为等值连接,去掉重复值的连接称为自然连接。示例如图1-11所示。图1-9 投影运算图1-10 连接运算图1-11 自然连接运算1.3 数据库设计 1.3.1 数据库设计的两个方面数据库设计的目标是在DBMS的支持下,按照应用系统的要求,设计一个结构合理、使用方便、效率较高的数据库系统。数据库设计涉及两方面:数据库的结构设计和数据库的行为设计。在设计数据库的过程中,应将结构设计和行为设计相结合。 数据库的结构设计是从应用的数据结构角度对数据库的设计。由于数据的结构是静态的,因此数据库的结构设计又称为数据库的静态结构设计。其设计过程是:先将现实世界中的事物、事物之间的联系用E-R
40、图表示,再将各E-R图汇总,得出数据库的概念结构模型,再将概念结构模型转换为关系数据库的关系结构模型。数据库的行为设计指根据应用系统用户的行为对数据库的设计,是指数据查询、统计、事物处理等。由于用户的行为是动态的,因此数据库的行为设计又称为数据库的动态设计。其设计过程是:首先将现实世界中的数据及应用情况用数据流图和数据字典表示,并描述用户的数据操作要求,从而得出系统的功能结构和数据库结构。数据库的结构设计和数据库的行为设计将贯穿数据库设计的每一步。 1.3.2 数据库设计的步骤数据库设计可分为6个阶段:需求分析阶段、概要设计阶段、详细设计阶段、编码阶段、测试阶段、安装及维护阶段。各个阶段的主要
41、任务如下。1. 需求分析阶段需求分析阶段的主要任务是:通过与数据库的最终用户交流,了解和掌握数据库应用系统开发对象(也称为用户,指待使用数据库应用系统的部门)的工作流程和每个岗位、每个环节的职责,了解和掌握信息从开始产生或建立,到最后输出、存档或消亡所经过的传递和转换过程,了解和掌握各种人员在整个系统活动过程中的作用。 为了实现设计目标,首先要进行下述准备工作:(1) 确定哪些工作应由计算机来做,哪些工作仍由手工来做。(2) 掌握各种人员对信息和处理各有什么要求。(3) 了解对操作界面和报表输出格式各有什么要求,对信息的安全性、完整性有什么要求。(4) 了解用户希望从数据库中得到什么样的信息。
42、 (5) 集体讨论数据库所要解决的问题,并描述数据库需要生成的报表。 (6) 收集当前用于记录数据的表格。 (7) 参考某个与当前要设计的数据库相似的典型案例。 通过进行系统调查和分析,搜集足够的数据库设计的依据。接着完成如下工作:画出数据流图,建立数据字典和编写需求说明书。(1) 画出数据流图。数据流图(Data Flow Diagram,DFD)是描述实际业务管理系统工作流程的一种图形表示。数据流图使用带箭头的连线表示数据的流动方向或者表示前者(即不带箭头的一端)对后者(即箭头所指向的一端)的使用,用圆圈表示进行信息处理的一个环节,用双线段或开口矩形表示存档文件或实物,用矩形表示参与活动的
43、人员或部门。通过下发给教职员工的工资数据流动情况,可以设计出工资管理系统的数据流图,如图1-12所示。图1-13所示为工资管理的业务处理流程图。图1-12 工资管理系统的数据流图 2) 建立数据字典。数据字典(Data Dictionary)是对系统流程中数据和处理的描述。在数据库应用系统设计中,它是最原始的数据字典,以后在概要设计和详细设计中的数据字典都由它依次变换和修改而得到。例如,对教职工工资管理系统进行分析,可得出工资款项的定义:工资款项即进行工资核算所需要的各个数据项,包括工资条上计算应发工资、实发工资所需要的各项数据,如姓名、固定工资、绩效工资、生活补贴等。 工资款项的定义就是建立
44、教职工工资核算所需的各项数据。根据工资款项的不同属性,工资款项可分为: 相对固定数据项,如职工编号、姓名、参加工作时间、固定工资、生活补贴等。 变动原始数据项,如出勤天数、病假天数等。 变动基础数据项,如病、事假扣款等。 计算所得数据项,如应发工资、实发工资等。(3) 编写需求说明书。需求说明书就是系统总体设计方案,它包括数据流图和数据字典;包括系统设计总体目标,系统适宜采用的计算机系统和数据库管理系统及相应配置情况;包括系统开发人员组成、开发费用和时间;包括划分系统边界,即哪些数据和处理由计算机完成,哪些数据和处理仍由人工完成;包括对用户使用系统的要求等许多方面的详细内容。需求说明书是开发单
45、位与用户共同协商达成的文档,一般要经过有关方面的专家进行评审和通过。它是以后各阶段进行开发、设计的主要依据,也是最终进行系统测试的依据。通过相关需求分析可知,工资管理系统应具有以下功能: 录入工资结算单中各工资数据项的原始数据,据此进行应发工资、代扣款项、实发工资数的计算,能对来自人事部门的人员变动数据进行相应的人员变动数据处理,打印工资结算单。 根据结算单,按部门、班组、人员类别、费用科目进行分类汇总,打印分类汇总表。 根据工资汇总表进行工资费用的分配、福利费的计提,打印工资费用计提、分配表。 根据工资汇总表中代扣款项(如个人所得税代扣计算)的有关数据进行汇总,将汇总结果存入银行或转入其他有
46、关部门。 提供工资数据的查询功能。 2. 概要设计阶段这个阶段是将需求分析阶段的结果模块化,并把本系统的数据流向等关系搞明白。最好画出程序的流程图,把整个项目的框架设计出来,如图1-13画出了工资管理的业务处理流程图。另外,还要考虑需要哪些功能模块,每个模块大体需要完成哪些功能,以及它们之间有什么关系,等等,如图1-14所示。图1-14 工资管理系统模块3. 详细设计阶段这个阶段是在系统模块化的基础上,把系统的功能具体化,逐步完善系统的功能需求。这个阶段要为具体的设计打好基础。数据库设计在每一个具体阶段的后期都要经过用户确认。如果不能满足要求,则要返回到前面一个或几个阶段进行调整和修改。整个设计过程实际上是一个不断返回修改、调整的迭代过程。4. 编码阶段该阶段主要是根据详细设计的结果把原始数据装入数据库,建立一个具体的数据库并编写和调试相应的应用程序。应用程序的开发目标是开发一个可依赖的有效的数据库存取程序,来满足用户的处理要求。 1) 规划数据库中的表 表是数据库的基本信息结构。确定表可能是数据库设计过程中最难处理的步骤,因为要从数据库获得的结果(如要打印的报表,要使用的格式,要解决的问题等)不一定能够提供用于生成它们的表的结构的线索。 在设计表时,应按以下设计原则对信息进行分类: (1) 表中不应该包