Access数据库程序设计与应用教程(工业和信息化普通高等教育“十二五”规划教材)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-12 16:48:51

点击下载

作者:李勇帆 廖瑞华

出版社:人民邮电出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

Access数据库程序设计与应用教程(工业和信息化普通高等教育“十二五”规划教材)

Access数据库程序设计与应用教程(工业和信息化普通高等教育“十二五”规划教材)试读:

前言

当今数字信息时代是一个以智力资源的占有和配置、知识生产与分配及使用为重要因素的知识经济时代,信息就像空气一样,充塞在人们工作、生活的每个角落,信息数据的管理直接渗透到经济、文化和社会的各个领域,数据库技术迅速改变着人们的工作、生活和社会的结构。因此,社会对大学生的数据库程序设计与应用的能力也有新的、更高的要求,能精通数据库技术,掌握数据库管理系统的基本理论与知识,会设计与开发诸如信息管理系统、客户关系管理系统、电子商务系统、智能信息系统、企业资源计划系统等各类数据库管理系统,是当今知识经济时代大学生应该具备的基本素质。

为了适应新时期大学计算机基础课程——“数据库程序设计与应用”的教学需要,我们认真总结了多年来的教学实践,根据湖南省软科学研究计划重点项目——“云计算视阈下湖南教育信息化资源体系构建的战略对策研究”(2013ZK2014)、湖南省教育科学规划重点课题——“基于云计算的区域教育信息化资源公共服务模式研究”(XJK013AXX001)、湖南省普通高等学校教学改革项目——“六年制免费师范生计算机基础课程体系和教学模式的创新研究与实践”(湘教通[2011]315-458)及“湖南第一师范学院重点建设学科——《教育技术学》学科项目”(湘一师院字[2011]61号)等项目的研究成果,组织编写了本套教材。

本套教材是根据教育部高等教育司组织制订的《高等学校计算机课程教学大纲》(2013年版)、教育部考试中心最新颁布的《全国计算机等级考试Access数据库程序设计考试大纲(2013版)》,结合当前数据库技术的最新发展和“Access数据库程序设计与应用”课程教学的实际情况编写而成的。本套教材分主教材《Access 数据库程序设计与应用教程》和辅助教材《Access数据库程序设计上机指导及测试》两本。

主教材共分9章:第1章为数据库基础,介绍了数据库系统的基本概念、数据管理技术的发展、数据库系统的组成、三级模式结构、数据模型以及关系数据库结构特性、数据库设计的基本流程;第 2 章为 Access 2010 数据库及其创建与管理,在简要介绍Access 2010数据库管理系统结构特性的基础上,重点讲解了Access 2010的安装、启动与退出,数据库创建,数据库的打开与关闭,数据库窗口的操作,数据库的维护与安全管理;第3章为表操作,重点介绍了创建表、表记录的编辑与维护、表间关系的建立及表对象的编辑;第4章为查询操作,主要讲解数据库查询功能与视图及如何创建选择查询、参数查询、交叉表查询、汇总查询、操作查询及SQL查询等内容;第5章为窗体设计,主要讲解窗体的类型与视图及如何快捷创建窗体、利用设计视图创建窗体以及常用的窗体控件、窗体的属性及修饰、创建系统控制窗体;第6章为报表操作,重点介绍了报表的概念与视图、快捷创建报表、报表的设计、如何使用计算控件及创建其他报表等;第7章为宏操作,主要讲解宏的定义与创建、宏操作、宏的运行与调试、宏与事件、宏组及应用、条件宏等内容;第8章为VBA编程,在精要介绍VBA的编程环境的基础上,详细介绍了面向对象程序设计、VBA模块、VBA编程基础、程序控制结构、VBA过程及VBA程序运行错误处理、利用VBA进行数据库程序设计等内容;第9章为数据库应用系统开发实例,以“教学管理系统”为例,详细介绍了数据库管理系统的需求分析与系统设计、功能模块设计与实现。

辅助教材与主教材紧密配合,由上机实验和基础知识测试题两部分构成。

本套教材力求内容新颖、注重应用,重视操作能力和综合应用能力的培养,理论联系实际,以实际案例为引导,通俗易懂、概念明确,可操作性强,学习者只要按照教材给出的步骤,按图索骥,边学习边上机实践操作,便能很快地掌握数据库管理系统的基本理论与知识,熟悉面向应用的程序开发流程与方法,并能独立地设计与开发实用的数据库管理系统。

本套教材在湖南第一师范学院信息科学与工程系王杰文教授、谢培松教授、肖建华教授、张如健副教授的大力支持下,由享受国务院特殊津贴、首届湖南省普通高等学校教学名师李勇帆教授和廖瑞华副教授担任主编,胡恩博、王玉辉担任副主编,参加编写的有胡英、谢强、李俊英、张卓林、王尧哲、李里程、李兵等,其中,第1章由李勇帆和廖瑞华编写,第2章由张卓林编写,第3章由王玉辉编写,第4章由胡英编写,第5章由廖瑞华和李兵编写,第6章由李俊英编写,第7章由王尧哲编写,第8章由谢强和李里程编写,第9章由胡恩博编写,最后由李勇帆教授统稿并定稿。另外,参加讨论及资料收集的还有洪伟、赵晋琴、王建军、田祖伟、李新国、周克江、杨建良、谭敬德、胡伟、肖杰、曾玢石、肖升、李卫东、朱珏钰、张景贵、黄悦、蒋伟雄、邢志芳、李卫民、傅红普、彭剑、张剑、伍智平、汤希玮、周辉、张燕丽、李科峰、姜华、刘济源、苏静等;同时,在教材的策划和编写过程中,广泛听取了不同地区、不同高校的数据库程序设计与应用课程教育专家、资深教师的意见和建议,在此一并致谢。

由于时间仓促,加之编者水平有限,书中难免存在疏漏和不足之处,敬请广大师生及读者批评指正,以便再版时修订完善。编者2014年1月第1章数据库基础

数据库技术是计算机应用领域中最重要的技术之一,是软件学科的一个独立的分支。随着管理信息系统在各行各业中的广泛应用,对于当代大学生来说,应用和开发管理信息系统已经不仅仅是计算机专业的学生必须掌握的技能,对非计算机专业的学生同样重要。而数据库的基础知识正是应用和开发管理信息系统的基础。

本章学习目标:

• 了解数据库管理技术的发展阶段;了解数据库的三级模式和二级映射功能;了解三种数据模型的优缺点;

• 熟悉 E-R 模型的相关知识;初步了解数据库设计方法;

• 掌握数据库系统的相关概念;掌握数据模型的三要素;掌握关系数据模型的相关概念;

• 掌握关系运算的常用操作。1.1 数据库系统概述

数据库、数据库管理系统、数据库应用系统等仅仅是数据库系统的组成部分。人们对数据管理经历了人工管理、文件系统、数据库系统三个阶段。1.1.1 数据、信息与数据处理

自20世纪40年代电子计算机问世以来,人们将十进制数变为计算机能够存储和处理的二进制数,随后将文字编码成位串形式,将图形、图像、声音等多媒体信息数字化。到目前为止,几乎所有信息都可以表示成计算机能识别的字符串和位串,为信息的迅速传播和处理提供了便利,现在的社会已成为信息化的社会。

1.信息(Information)

信息是对现实世界中各种事物的存在方式、运动状态或事物间联系形式的反映的综合。例如,“友谊商店的邦宝服装在3月8日打7.5折”,这是一条有关商品打折的信息;“湖南第一师范学院需要招聘2名图书管理员”,这是有关招聘的信息。信息是可以被感知和存储的,并且可以被加工、传递和再生。

2.数据(Data)

数据是指保存在存储介质上能够识别的物理符号。也可以说数据是用来记录信息的可识别的符号,它是信息的具体表现形式。数据不只是简单的数字,还包括文字、图形、图像、声音、物体的运动状态等。数据都可以数字化后存入计算机。

软件中的数据有型(Type)与值(Value)之分,数据的型表示数据表示的类型,例如字符型、日期型、整型等;数据的值表示符合给定型的值,例如日期型“2013/10/3”。

同样的信息可以用不同的数据方式来描述。例如,可以用自然语言来描述这样一条有关学生的信息:“刘小颖,女,1991年4月5日出生,2010年入学,该学生的学号为201001010102,湖南邵阳人”。为了能在计算机中方便地存储和处理学生信息,可以用这样一个记录来描述上述的学生信息:(201001010102,刘小颖,1991-4-5,2010,湖南邵阳)。

综上所述,数据是信息的符号表示,或称载体;信息是数据的内涵,是数据的语义解释。数据的含义称为数据的语义,数据与其语义是不可分的。例如,对于数据“2010”如果不和学生信息联系起来,还可以理解为2010个学生、2010年出生等。值得注意的是,信息和数据这两个概念有时可以不加区别地使用,例如信息处理也可以说成是数据处理。

3.数据处理

数据处理是将数据转换成信息的过程,包括对数据的收集、存储、加工、检索、传输等一系列活动,其目的是从大量的原始数据中抽取和推导出有价值的信息。数据处理的目的是借助计算机科学地保存和管理复杂的大量的数据,以便用户能方便而充分地利用这些宝贵的信息资源。

可以用一个等式来简单地表示信息、数据与数据处理的关系:信息=数据+数据处理。1.1.2 数据管理技术的发展

数据管理技术是对数据进行分类、组织、编码、输入、存储、检索、维护和输出的技术。数据管理的水平是和计算机硬件、软件的发展相适应的。随着计算机技术的发展和数据管理规模的扩大,数据管理技术的发展大致经历了三个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。

1.人工管理阶段(20世纪50年代中期以前)

人工管理阶段的计算机主要用于科学计算。这个阶段没有像磁盘这样的可直接存取的外存储设备,没有操作系统和数据管理方面的软件,数据完全由程序设计人员有针对性地设计程序进行管理,而且在编制应用程序时,要全面考虑数据的定义、存储结构、存取方法和输入方式等,这一阶段数据管理的特点如下。

① 数据不保存。仅仅在计算某一个项目时将数据输入,用完就退出,对数据不做长期保存。

② 应用程序管理数据。数据没有专门的软件进行管理,需要应用程序自己进行管理,应用程序中要规定数据的逻辑结构和设计物理结构(包括存储结构、存取方法、输入/输出方式等)。程序员必须花费大量精力于数据的物理布置上,因此程序员负担很重。

③ 数据无独立性。数据是作为输入程序的组成部分,数据和程序同时提供给计算机运算使用。程序员对存储结构,存取方法及输入/输出的格式有绝对的控制权,要修改数据必须修改程序,因为数据无法独立存在。

④ 数据不能共享。一组数据对应一个程序。不同应用的数据之间是相互独立、彼此无关的。数据不但高度冗余,而且不能共享。

人工管理阶段数据和程序的关系如图1-1所示。

2.文件系统阶段(20世纪50年代中期到60年代中期)

在这一阶段,计算机的应用范围从科学计算扩大到信息管理,硬件方面有了磁盘、磁鼓等能对数据进行直接存取的设备;软件方面出现了高级语言和操作系统。操作系统中有了专门的数据管理软件,即文件系统。这一阶段数据管理的特点如下。

① 数据可以长期保存在外存储设备上。计算机需要对数据进行反复地查询、修改、增删等处理,数据长期存储在外存储设备上。

② 由文件系统管理数据。数据放在相互独立的数据文件中,由文件系统统一管理。应用程序通过文件系统对存放在文件中的数据进行操作(数据查询、修改、插入、删除)。程序员可以将更多的精力集中在算法上,而不必过多地考虑物理细节。

③ 数据共享性差,冗余度大。在文件系统中,文件是面向应用的,即一个文件和一个应用程序基本上是一一对应的,这就不便于数据的共享,同时增加了数据的冗余度,浪费了存储空间。

④ 数据独立性差。文件系统中的数据文件依赖于应用程序的存在而存在,程序和数据之间的依赖关系并未根本改变,数据与程序之间仍缺乏独立性。

文件系统阶段程序与数据之间的关系如图1-2所示。图1-1 人工管理阶段图1-2 文件系统阶段

3.数据库系统阶段(20世纪60年代后期至今)

在这一阶段,计算机的软硬件得到了进一步的发展,已出现了容量大、速度高的磁盘;需要管理的数据量急剧增加,联机实时处理的要求更多,数据管理技术得到了很大提高,应用程序和数据的联系通过数据库管理系统(DataBase Management System,DBMS)来实现。

数据库系统阶段对数据管理的特点如下。

① 数据结构化。在数据库系统中数据按一定的模式组织与存储,即按一定的数据模型组织数据,最大限度地减小数据的冗余度。

② 数据的共享性高,冗余度低,易扩充。数据库从整体的观点来看待和描述数据;面向整个系统,减小了数据的冗余,节约存储空间,缩短存取时间,避免数据之间的不相容和不一致;面向不同的应用,存取相应的数据库的子集。当需求改变或增加时,只要重新选择数据子集或者加上一部分数据,便可以满足更多更新的要求,保证了系统的易扩充性。

③ 数据独立性高。处理数据使用户所面对的是简单的逻辑结构,不涉及具体的物理存储结构,数据的存储和使用数据的程序彼此独立,数据存储结构的变化尽量不影响用户对程序的使用,用户对程序的修改也不要求数据结构做大的改动。

④ 数据的安全性。设置数据的使用权限可以防止数据的非法使用,能防止数据的丢失;当数据库被破坏时,系统可以把数据库恢复到可用的状态。

⑤ 数据的完整性。系统采用一些完整性检验以确定数据符合某些规则,保证数据库中的数据始终是正确的。

数据库能实现有组织地、动态地存储大量有关联的数据,能处理复杂的数据对象和对象之间的关系。

数据库系统阶段程序与数据之间的关系如图1-3所示。图1-3 数据库系统阶段1.1.3 数据库系统的组成

数据库系统(DataBase System,简称 DBS)是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统及其开发工具、数据库应用系统、数据库管理人员和用户、硬件平台和软件平台组成。通常将数据库系统简称为数据库。

1.数据库

不论是什么数据,都可以经过数字化后存入计算机。将数据按一定的数据模型组织起来,使其具有较小的冗余度、较高的独立性和易扩展性,并可为一定范围内的各种用户共享。这种数据的集合称为数据库(DataBase,DB)。简而言之,数据库是长期存储在计算机内的有组织的、可共享的数据集合。数据库不仅要反映数据本身的内容,还要反映数据之间的联系。有关数据模型的概念请参见本章1.2节。

2.数据库管理系统

数据库管理系统(DataBase Management System,DBMS)是指负责数据库存取、维护和管理的系统软件,它是数据库系统的核心组成部分。

它的基本功能有:数据定义功能,数据存取功能,数据库的组织,存储和管理,数据库运行管理,数据库的建立和维护,通信功能和数据转换功能等。(1)数据定义功能

DBMS 提供数据定义语言(Data Definition Language,DDL),用户通过 DDL 可以方便地对数据库中的数据对象进行定义,包括数据结构、数据的完整性约束条件和访问控制条件等。(2)数据存取功能

DBMS 提供数据操纵语言(Data Manipulation Language,DML)实现对数据库的操作。基本操作包括检索、插入、删除和修改。(3)数据库的组织、存储和管理

数据库中物理存在的数据包括两部分:一部分是元数据,即描述数据的数据,主要是数据库系统的三级模式,即外模式、模式、内模式(具体参见本章1.1.4小节),它们构成数据字典(Data Dictionary,DD)的主体,DD由DBMS管理、使用;另一部分是原始数据,它们构成物理存在的数据库,DBMS一般提供多种文件组织方法,供数据库设计人员选用。数据一旦按某种组织方法装入数据库,其后对它的检索和更新都由DBMS的专门程序完成。(4)数据库运行管理

数据库运行管理是数据库管理系统的核心部分。如前所述,数据库方法的最大优势在于允许多个用户并发地访问数据库,充分实现共享。相应地,DBMS必须提供并发控制机制、访问控制机制和数据完整性约束机制,从而避免多个读写操作并发执行可能引起的冲突,数据失密或安全性、完整性被破坏等一系列问题。(5)数据库的建立和维护

DBMS一般都要保存工作日志、运行记录等来用于恢复数据,一旦出现故障,使用这些历史和维护信息可将数据库恢复到一致状态。此外,当数据库性能下降,或系统软硬设备变化时也能重新组织或更新数据库。(6)通信功能和数据转换功能等

DBMS具有与操作系统的联机处理、分时处理、远程作业输入的相应接口,具有与网络中其他软件的通信功能。此外,DBMS还具有与其他DBMS或文件系统的数据转换功能。

3.数据库应用系统

数据库应用系统(DataBase Application System,DBAS)是指用户为了解决某一类信息处理的实际需求而利用数据库系统开发的软件系统,如利用Access开发的图书管理系统、教务管理系统、工资管理系统等。

4.数据库管理员和用户

数据库管理员(DataBase Administrator,DBA)是专门人员或者管理机构,负责监督和管理数据库系统。用户是指通过应用程序使用数据库的人员,最终用户无需自己编写应用程序。

5.硬件平台和软件平台

数据库系统对硬件平台的要求是:计算机要有足够大的内存和外存,有较高的通道能力以保证数据库系统能正常运行。

数据库系统的软件主要包括数据库管理系统、操作系统、具有与数据库接口的高级语言及其编译系统、以数据库管理系统为核心的应用开发工具、数据库应用系统。其中操作系统是支持DBMS运行的系统,没有合适的操作系统,DBMS无法正常运转。数据库管理系统包括SQL Server、Oracle、Access 等,应用开发工具包括 C++、Java、Visual Basic.NET、Delphi 等,通过这些工具,应用程序开发人员能够开发出合乎用户需求的应用系统。1.1.4 数据库系统的三级模式结构

数据库系统的数据的高度独立性来自于数据库系统的三级模式结构和二级映像功能。数据库的三级模式为模式、外模式和内模式,与之对应的是三级模式结构,即全局逻辑结构、局部逻辑结构和物理存储结构。数据库系统的三级模式结构如图1-4所示。

1.模式

模式又称概念模式或逻辑模式,对应于概念级。它是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。模式与具体的应用程序无关,也不涉及到数据的物理存储内容。

模式是数据库数据在逻辑级上的视图。数据库模式以某一种数据模式作为基础,综合地考虑了所有用户的需求,同时将这些需求统一起来形成了一个逻辑整体。它是由数据库管理系统提供的数据模式描述语言来描述、定义,体现和反映了数据库系统的整体观,一个数据库只有一个模式。

2.外模式

外模式又称子模式或用户模式,是用户和程序员看到并使用的局部数据逻辑结构和特征。不同的用户因其需求不同,看待数据的方式不同,因此不同用户的外模式的描述也不相同,一个数据库有若干个外模式。图1-4 数据库系统的三级模式结构

3.内模式

内模式又称存储模式或物理模式,是对数据物理结构和存储方式的描述,也是数据在存储介质上的保存方式。一个数据库只有一个内模式,是以数据模型为基础的。模式综合考虑所有用户的需求,并将其结合成有机逻辑整体。

在一个数据库系统中,只有唯一的数据库,因而作为定义、描述数据库存储结构的内模式和定义、描述数据库逻辑结构的模式,也是唯一的,但建立在数据库系统之上的应用则是非常广泛、多样的,所以对应的外模式不是也不可能是唯一的。

在数据库的三级模式中,逻辑模式是数据库的中心与关键,它独立于数据库的其他层次,所以在设计数据库模式结构时,应首先确定数据库的逻辑模式。

4.三级模式间的映像

数据库系统的三级模式是对数据的三个抽象级别。它把数据库的具体组织留给了数据库管理系统管理,使用户能够从逻辑上处理数据,而不必关心数据在计算机中的具体表示方式和存储方式。为了实现三个抽象级别的联系和转换,数据库系统在三级模式中提供了两个层次的映像,即“模式/内模式映像”和“外模式/模式映像”。正是这两级映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。(1)模式/内模式映像

模式/内模式映像定义了数据的全局逻辑结构和存储结构的对应关系。当数据库的存储结构发生变化时,由数据库管理员对模式/内模式映像做相应的改变,可以使模式保持不变,从而应用程序不必改变。保证了程序与数据的物理独立性。(2)外模式/模式映像

外模式/模式映像定义了某一个外模式与模式之间的对应关系。这些映像的定义通常包含在外模式当中。当模式改变时,由数据管理员对各个外模式/模式映像作相应的改变,就可以使外模式不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性。1.2 数据模型

数据库中的数据是有结构的,这种结构反映出事物之间的相互联系。在数据库中,我们用数据模型来抽象、表示和处理现实世界中的数据和信息。数据库系统一般基于某种数据模型,数据模型是数据库系统的数学形式框架,是数据库系统的核心和基础。1.2.1 数据模型概述

数据模型(Data Model)是用来抽象、表示和处理现实世界中的数据和信息的工具。数据模型应满足3个方面的要求:一是能够比较真实地模拟现实世界;二是容易被人理解;三是便于在计算机系统中实现。

数据模型由数据结构、数据操作、数据约束3部分组成。(1)数据结构

数据结构是所研究的对象类型的集合。这些对象是数据库的组成部分,如表、表中的字段、名称等。数据结构分为两类:一类是与数据类型、内容等有关的对象;另一类是与数据之间关系有关的对象。

数据结构是刻画一个数据模型性质最重要的方面,在数据库系统中按照其数据结构的类型来命名数据模型。常用的数据结构有3种:层次结构、网状结构和关系结构。这3种结构的数据模型分别命名为层次模型、网状模型、关系模型。(2)数据操作

数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。数据库的操作主要有检索和更新这两大类操作。数据模型必须定义这些操作的确切含义、操作符号、操作规则(如优先级)以及实现操作的语言。(3)数据约束

数据约束主要描述数据结构内数据间的语法、语义联系,它们之间的制约与依存关系,以及数据动态变化的规则,以保证数据的正确、有效与相容。例如,对于教学管理系统中的教师的“教师编号”属性取值不能出现重复值,教师信息中的“系编号”属性的值必须取自院系信息中的某个具体的系编号。

数据模型按不同的应用层次分成三种类型:概念数据模型、逻辑数据模型、物理数据模型。

概念数据模型又称概念模型,它是一种面向客观世界、面向用户的模型;它与具体的数据库管理系统无关,与具体的计算机平台无关。概念模型着重于对客观世界复杂事物的结构描述以及对它们之间的内在联系的刻画。比较有名的概念模型是E-R模型。

逻辑数据模型又称数据模型,它是一种面向数据库系统的模型。概念模型需要转换成数据模型后才能在数据库中表示。目前常见的数据模型有层次模型、网状模型、关系模型、面向对象模型等。

物理数据模型也称为物理模型,它是一种面向计算机物理表示的模型,给出了数据模型在计算机上物理结构的表示。1.2.2 概念模型

概念模型主要用于数据库的设计阶段,它是数据库设计人员进行数据库设计的有力工具,也是用户和数据库设计人员进行交流的语言。

1.概念模型的基本概念

① 实体:客观存在并可相互区别的事物称为实体。一个实体是现实世界客观存在的一个事物,可以是一个具体的事物,例如一个学生、一台桌子等,也可以是抽象的事物,如一个想法、一个计划或一个工程项目等。实体由它们自己的属性值表示其特征。

② 属性:实体所具有的某一特性。一个实体可由若干个属性来描述。例如,学生实体可以用学号、姓名、性别、出生日期、民族等属性来描述。

③ 域:一个属性的取值范围。例如,学生的性别只能取“男”或“女”这两个值。

④ 码:唯一标识实体的属性集称为码。例如,学号是学生实体的码。

⑤ 实体型:用实体名及其属性名集合来描述和刻画同类实体,称为实体型。例如,学生(学号、姓名、性别、出生年月、政治面貌)是一个实体型。

⑥ 实体集:同一类型实体的集合称为实体集。例如,某校的全体学生就是一个实体集。

⑦ 联系:实体之间的关联称为联系。实体的联系分为实体内部的联系和实体之间的联系。实体内部的联系通常是组成实体的各属性之间的联系。实体之间的联系是指不同实体集之间的联系。两实体集之间的联系主要有以下3类。

• 一对一联系(1∶1)。如果对于实体集 A 中的每一个实体,实体集 B 中至多有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1︰1。例如,实体集班级与实体集班长之间存在一对一联系,意味着一个班长负责一个班,而且一个班也只有一个班长。

• 一对多联系(1∶n)。如果对于实体集 A 中的每一个实体,实体集 B 中有 n(n≥0)个实体与之联系,反之,对于实体集B中的每一个实体,实体集A中至多有一个实体与之联系,则称实体集A与实体集B具有一对多联系,记为1︰n。例如,在本书涉及的教学管理系统中,实体集院系和与实体集教师就是一对多联系。因为一个院系中有若干名教师,而每名教师只属于一个院系。

• 多对多联系(m∶n)。如果对于实体集 A 中的每一个实体,实体集 B 中有 n(n≥0)个实体与之联系。反之,对于实体集B中的每一个实体,实体集A中也有m(m≥0)个实体与之联系,则称实体集A与实体集B具有多对多联系,记为m∶n。例如,在教学管理系统中,实体集课程与实体集学生之间的联系是多对多联系(m∶n)。因为一个课程同时有若干名学生选修,而一个学生可以同时选修多门课程。

以上3类联系如图1-5所示。

实际上,一对一联系是一对多联系的特例,而一对多联系又是多对多联系的特例。实体集之间这种一对一、一对多和多对多的联系不仅存在于两个实体集之间,也存在于两个以上的实体集之间。

实体集内部也有类似地联系,例如对于教学管理系统中的教师实体集内部有领导与被领导的关系,即某一教师(如教研室主任)“领导”若干名教师,而一个教师仅被另一个教师直接领导。图1-5 两个实体集之间的3类联系

2.实体-联系模型

概念模型的表示方法很多,其中最为著名的是 1976 年 P.P.S.Chen 提出的实体-联系方法(Entity- Relationship Approach)。该方法用 E-R 图来描述现实世界的概念模型,称为实体-联系模型,简称E-R模型。E-R图提供了表示实体集、属性和联系的方法。图1-5所示的用来描述实体集之间联系的图就是E-R图。

在E-R图中,用矩形框、椭圆形框、菱形框分别表示实体集、属性、联系。

① 矩形框:表示实体集,矩形框内写明实体名。

② 椭圆形框:表示某实体的属性或者实体间联系的属性,用无向边将其与相应的实体或联系连接起来。

③ 菱形框:表示实体集之间的联系,菱形框内写上关系名,用无向边将菱形分别与有关实体集相连接,在无向边旁标上关系的类型。若实体集之间的关系也具有属性,则把属性和菱形也用无向边连接上。

图1-6所示的为教学管理系统中班级实体;图1-7所示的为实体集教师内部的联系;图1-8所示的为教学管理系统中院系、教师、专业、学生、课程、班级这6个实体之间的联系。图1-6 班级实体及属性图1-7 教师实体集内部的联系图1-8 教学管理系统实体集及其联系图

3.三种数据模型

常见的数据模型有3种:层次模型、网状模型和关系模型。(1)层次模型

层次模型是数据库系统中最早出现的数据模型,采用树型结构来表示实体及实体间的联系的模型。这种模型体现出实体之间只有简单的层次关系,其特点是:①有且仅有一个根结点;②其他结点仅有一个根结点或父结点。结点之间的关系是父结点与子结点的关系,即一对多的关系。如一个学院的数据库结构中,一个学院有多个系,但每个系只对应一个学院;每个系下面有多个教研室,但每个教研室只对应一个系,如图1-9所示。

层次模型的优点是:模型本身比较简单;实体间联系是固定的;模型提供了良好的完整性支持。层次模型的缺点是:现实世界中很多联系是非层次性的,只能通过引入冗余数据或创建非自然的数据组织来解决;对插入和删除操作的限制比较多;查询子结点必须通过父结点;结构严密,层次命令趋于程序化。图1-9 层次模型(2)网状模型

网状模型以网状结构表示实体与实体之间的联系。网中的每一个结点代表一个记录类型。网状模型可以表示多个从属关系的联系,也可以表示数据间的交叉关系。网状模型的特点是:允许一个以上的结点无双亲;一个结点可以有多于一个的双亲。网状模型可以方便地表示各种类型的联系,但结构复杂,数据处理比较困难。图1-10所示的是学生选课情况的网状模型。图1-10 网状模型

网状模型的优点是:能更为直接地描述现实世界,具有良好的性能,存取效率较高。网状模型的缺点是:结构比较复杂,用户不容易使用。由于记录之间联系是通过存取路径实现的,应用程序在访问数据时必须选择适当的存取路径,因此,用户必须了解系统结构的细节,加重了编写应用程序的负担。(3)关系模型

关系模型以二维表结构来表示实体以及实体之间的联系,是一个“二维表框架”组成的集合。关系模型是目前最流行的数据库模型。支持关系模型的数据库管理系统称为关系数据库管理系统, Access就是一种关系数据库管理系统。表1-1给示出了教学管理系统中的班级实体关系。无论是实体还是实体之间的联系,在关系模型里面都用一张二维表来表示。表1-1 班级关系

关系模型较层次模型和网状模型具有以下优点:关系模型以严格的数学概念作为基石,数据结构比较简单,具有很高的数据独立性。

所以,关系模型诞生以后发展迅速,深受用户的喜爱。当然,关系模型也有缺点。其中最主要的缺点是:由于存取路径对用户透明,查询效率往往不如非关系数据模型。1.3 关系数据库

关系数据库系统是支持关系数据模型的数据库系统。关系数据库应用数学方法来处理数据库中的数据。最早提出将这类方法用于数据处理的是1962年CODASYL发表的“信息代数”一文,之后 1968 年由 David Child 在 7090 机上实现了集合论数据结构,但系统而严格地提出关系模型的是美国IBM公司的E.F.Codd。1970年E.F.Codd连续发表了多篇论文,奠定了关系数据库的理论基础。1.3.1 关系数据库的基本术语

关系数据结构非常简单,在关系数据模型中,现实世界中的实体及实体与实体之间的联系均用关系来表示。从逻辑或用户的观点来看,关系就是二维表。常用的关系术语如下。

① 关系:一个关系就是一张二维表。

② 属性:表的每一列为一个属性(也称为字段),如学生表中学号就是一个属性。

③ 元组:表的每一行为一个元组(也称为记录),它是一组字段的信息的集合。

④ 域:属性的取值范围称为域。如学生选课表的综合成绩的取值范围是 0 到 100 之间的浮点数。

⑤ 关系模式:关系名及关系中的属性集合构成关系模式,一个关系模式对应一个关系的结构。关系模式的格式为:关系名(属性名1,属性名2,属性名3,…,属性名n)。例如,班级表的关系模式为:班级(班级名称,专业编号,班级人数,班长姓名)。

⑥ 主关键字:主关键字也叫主键,是唯一标识表中记录的字段或字段的组合。如学生表中的学号可作为主关键字,它能唯一标识表中的每一条记录,即表中不能有两个相同的学号出现。学生选课表中的学号和课程编号两个字段的组合为主关键字。

⑦ 候选码:如果某个字段的值能唯一标识表中一个记录,这个字段就被称为候选码。一个关系中可能有多个候选码。当然,候选码也可以是多个字段的组合。

⑧ 外部关键字:外部关键字也叫外键,是用来与另一个关系进行联接的字段,且是另一个关系中的主关键字。例如,在教学管理系统中,系编号在专业表中是外键,而在院系表中为主键,这是因为专业表和院系表通过系编号字段相关联。1.3.2 关系的性质

关系与二维表及传统的数据文件有类似之处,但也有区别。关系是一种规范化的二维表,作为关系的二维表必须满足下列性质。

① 每一个属性是不可分解的。这是关系数据库对关系的最基本的一条限定,要求关系的每一个分量必须是一个不可分的数据项,也就是说,不允许表中还有表。

② 每一个关系模式中属性的数据类型以及属性的个数是固定的,并且每个属性必须命名,在同一个关系模式中,属性名必须是不同的。

③ 每一个关系仅仅有一种记录类型,即一种关系模式。

④ 在关系中元组的顺序(即行的顺序)是无关紧要的,即行的次序可以任意交换。

⑤ 在关系中属性的顺序(即列的顺序)是无关紧要的,可以任意交换,但交换时一定是整体交换,属性名和属性值必须作为整列同时交换。

⑥ 元组不可以重复,即在一个关系中任意两个元组不能完全一样。1.3.3 关系模型的完整性约束

数据完整性由完整性规则来定义,关系模型的完整性规则是对关系的某种约束条件。关系模型中可以有3类完整性约束:实体完整性、参照完整性和用户定义的完整性。在对关系数据库执行插入、删除和修改操作时,必须遵循下述3类完整性规则。

① 实体完整性规则(entity integrity rule):关系中的元组在组成主键的属性上不能有空值。

② 参照完整性规则(reference integrity rule):外键的值不允许参照不存在的相应表的主键的值,要么外键为空值。

③ 用户定义的完整性规则:用户定义的完整性规则是用户根据具体应用的语义要求,利用DBMS提供的定义和检验这类完整性规则的机制,用户自己定义的完整性规则。1.3.4 关系代数

关系代数是以关系为运算对象的一组高级运算的集合。关系的基本运算分为传统的集合运算和专门的关系运算两类。

1.传统的集合运算

传统的集合运算包括并、交、差、笛卡尔积。(1)并

设关系R和关系S都有n个属性,且相应的属性取自同一个域,则关系R与关系S的并是由属于R或属于S的元组组成的集合,表示为R∪S。【例1-1】表1-2和表1-3中给定了两个关系R和S,它们具有相同的属性。表1-2 关系R表1-3 关系S

则R∪S的结果如表1-4所示。(2)交

设关系R和关系S都有n个属性,且相应的属性取自同一个域,则关系R与关系S的交是由属于R且属于S的元组组成的集合,表示为R∩S。【例1-2】表1-2和表1-3中给定了两个关系R和S,它们具有相同的属性。则R∩S的结果如表1-5所示。表1-4 R∪S表1-5 R∩S(3)差

设关系R和关系S都有n个属性,且相应的属性取自同一个域,则关系R与关系S的差是由属于R但不属于S的元组组成的集合,表示为R-S。【例1-3】表1-2和表1-3中给定了两个关系R和S,它们具有相同的属性。则R-S的结果如表1-6所示。表1-6 R-S(4)笛卡尔积

设关系R和S的属性个数分别是r和s,则关系R与关系 S 的笛卡尔积是一个(r+s)个属性的元组集合,每个元组的前r个属性值来自R的一个元组,后s个属性值来自S的一个元组,记为R×S。若R有m个元组,S有n个元组,则R×S有m×n个元组。【例1-4】表1-2和表1-3中给定了两个关系R和S,它们具有相同的属性。则R×S的结果如表1-7所示。表1-7 R×S

说明:因为R和S的属性名相同,所以属性名前加上相应的关系名,如R.A,S.A。

2.专门的关系运算

专门的关系运算包括:选择、投影、联接、除等。本书不讨论“除”运算。(1)选择

选择运算是从关系中查找出满足条件的元组。其中:条件是逻辑表达式,运算后的结果是条件为真的元组。比如,从学生表中查找姓“王”的学生就属于选择运算。选择运算一般会改变记录的个数,但不改变属性的个数。(2)投影

投影运算是从关系模式中指定若干属性构成新的关系。比如,从学生表查询学生情况,查询结果只包含学号和姓名两个属性,这就是投影运算。投影运算不会改变元组的个数,只改变属性的个数,也有可能改变属性的显示顺序。(3)联接

联接操作是从笛卡尔积中选取属性间满足一定条件的元组。

在联接运算中,按照字段值对应相等为条件进行的联接操作为等值联接。自然联接是去掉重复属性的等值联接。自然联接是最常用的联接运算。【例1-5】关系R和S如表1-8和表1-9所示。满足条件B

说明:自然连接时,在没指明连接条件的情况下,一般是按两个关系中相同属性进行的等值连接,然后去掉重复的属性。【例1-6】院系和专业为教学管理系统中的两个关系,如表1-13和表1-14所示。院系和专业的自然联接的结果如表1-15所示。表1-13 院系表1-14 专业表1-15 院系和专业的自然联接运算1.4 数据库设计

数据库设计是建立数据库及其应用系统的核心技术。1.4.1 数据库设计概述

数据库设计是在一定平台制约下,根据信息需求与处理需求设计出性能良好的数据模式。所谓信息需求主要是指用户数据对象的数据及其结构,它反映了数据库的静态需求;所谓处理需求是指用户对象的行为和动作,它反映了数据库的动态需求。

在数据库设计中有两种方法,一种是以处理需求为主,兼顾信息需求的面向过程的方法(process-oriented approach);另一种是以信息需求为主,兼顾处理需求的面前数据的方法(data-oriented approach)。目前,主流的数据库设计方法为后者。

数据库设计一般采用生命周期(life cycle)法。该方法将数据库应用系统的开发分为以下目标独立的6个阶段:需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、数据库的物理设计阶段、数据库实现阶段、数据库运行和维护阶段。通常我们说的数据库设计是指前4个阶段。1.4.2 需求分析

需求分析也就是分析用户的需求。需求分析是软件开发中最重要的一个环节,对软件需求的深入理解是软件开发工作获得成功的前提条件,不论我们把数据库设计做得多么出色,不能满足用户的需求,只会令用户失望,给开发者带来烦恼。

需求分析的重点是调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。

调查的重点是“数据”和“处理”。通过调查,获得用户对数据库的信息需求、处理需求以及安全性与完整性需求。信息需求是指用户需要从数据库中获得的信息的内容与性质,由此导出在数据库中需要存储哪些数据,也就是数据需求;处理需求是指用户要完成什么处理功能,对处理的响应时间有什么要求;安全性需求是描述数据库应用系统中不同用户操作数据库的情况,完整性需求定义了数据间的关联以及数据的取值范围要求。【例1-7】开发教学管理系统的用户需求分析。

对某一本科院校的教学工作进行调查,要求本教学管理系统能够记录各系各专业的学生选课情况、教师的授课情况以及学生、课程、教师、院系、班级、专业的基本情况。具体情况如下。

• 某一本科院校有若干个系,每个系有若干个专业,每个专业有若干门课程,不同系或不同专业可能有相同的课程,如信息科学与工程系的电子科学与技术专业、计算机科学与技术专业都有C语言程序设计课程,文史系和外语系的各专业都有大学计算机基础课程等;每个专业有若干个班级,每个班级有若干名学生,每个学生可以修多门课程,每门课程被多名学生修;每个系有若干名教师,每名教师可以讲授多门课程,每门课程又可以被多名教师讲授;每名教师可以给多个班级授课,每个班级有多名授课教师。

• 新任教师个人信息的录入。此信息应包含教师的个人资料,如教师编号等。

• 教师个人信息的修改。要求系统可以对教师个人信息的各项内容进行修改并保存。

• 教师记录的删除。如果教师离开该学校,要求系统能够删除数据库中该教师记录。

• 教师信息的查询。由于教师较多,要求系统可以进行查询。

• 教师可以对所教课程的学生成绩进行管理,如录入成绩、修改成绩等。

• 学生个人信息的录入。此信息应包含学生的个人资料,如学号、姓名、性别、出生日期、政治面貌、家庭住址等。

• 学生个人信息的修改。要求系统可以对学生个人信息的各项内容进行修改并保存。

• 学生记录的删除。如果学生毕业或退学,要求系统能够删除数据库中的学生相应记录。

• 学生信息的查询。

• 学生可查询自己某门课程的成绩,但不能修改。

• 课程信息的添加、修改、删除以及查询等。

• 院系信息的添加、修改、删除以及查询等。

• 专业信息的添加、修改、删除以及查询等。

• 班级信息的添加、修改、删除以及查询等。

• 教学管理人员可根据学生信息和教师信息以及课程情况等进行录入、修改和删除,对系统中所有数据均能进行任意操作。

• 登录系统时要进行密码和身份认证,认证通过后,方可进入系统。

了解了用户的需求,需要进一步分析和表达用户的需求。表达的含义是产生规格说明书等有关的文档。规格说明就是把分析的结果完全地、精确地表达出来。系统分析员经过调查分析后建立好模型,在这个基础上,逐步形成系统需求说明书,这也是需求分析的阶段成果。

一般采用以下两种方法来分析和表达用户的需求:面向对象方法和结构化分析方法(Structured Analysis,简称 SA 方法)。结构化分析方法的基本思想是把系统自上而下逐步分解,逐步求精,基本原则是抽象与分解。尤其是对于一个大型的应用系统,控制系统的复杂性的基本手段就是分解。按照这种方法,无论系统多么大,总可以有计划地把它分解为足够小的子问题。

结构化分析法实际上是一个建模活动,用结构化分析建模获得一个分析模型,它的元素包含有描述系统的数据字典、各种图以及规格。在分析建模中,核心是数据字典,围绕数据字典有 3个子模型,即数据模型、功能模型和行为模型。一般地,数据模型用E-R图来描述,功能模型用数据流图来描述,行为模型用状态转换图来描述。

结构化分析法用数据流图表达数据和处理过程的关系,用数据字典对系统中数据进行详细描述,是各类数据属性的清单。

数据字典在需求分析阶段建立,在数据库设计过程中还会不断修改和完善。数据字典一般包括以下5个部分:数据项、数据结构、数据流、数据存储、处理过程。其中:数据项是数据的最小单位;数据结构是若干数据项有意义的集合;数据流可以是数据结构,也可以是数据项,表示某一处理过程的输入和输出;数据存储是处理过程中存取的数据,如计算机文件、手工凭证等;处理过程即处理的过程。

本书不详细介绍结构化分析建模,请读者参考相关资料。1.4.3 概念结构设计

概念结构设计是整个数据库设计的关键。我们已经知道,概念结构设计的常用工具是E-R图,这一步的工作至少要包括以下内容。

• 确定实体。

• 确定实体的属性。

• 确定实体的码。

• 确定实体间的联系和联系类型。

• 画出表示概念模型的 E-R 图。

• 确定属性之间的依赖关系。

1.概念设计的策略

概念结构设计主要采用以下4种策略。

① 自顶向下。先定义全局概念结构的框架,然后逐步细化。

② 自底向上。先定义每个局部应用的概念结构,然后按一定的规则把它们集成起来,最后得到全局概念模型。

③ 由里向外。先定义最重要的核心概念结构,然后向外扩充,直至总体概念结构。

④ 混合策略。将自顶向下和自底向上方法相结合,先用自顶向下方法设计一个概念结构的框架,以它为骨架集成由自底而上策略中设计的每个局部概念结构。

本节我们主要讨论自底向上的设计策略,这也是目前最常用的一种设计策略。

2.设计步骤

按照自顶向下的需求分析步骤,根据自底向上的设计概念结构策略,采用E-R方法的概念结构设计的步骤如下。

第1步:根据需求分析的结果(数据流图、数据字典等)对现实世界的数据进行抽象,设计各个局部视图即 E-R 图。内容包括选择局部应用,即确定各局部 E-R 模型的范围,定义各局部E-R模型实体、联系及实体和联系的属性。

第2步:设计全局E-R模型。内容包括将所有局部E-R图集成一个全局E-R图。

第3步:优化全局E-R模型。

3.设计局部E-R图

设计局部E-R图首先要选择局部应用。一个局部应用实际上对应着应用系统中的一个子系统,也就是一个子需求,局部E-R图对应着一个应用系统中的一个局部应用。需要说明的是,按照信息理论的研究结果,一个局部应用中的实体数不能超过9个,不然要将局部应用对应的子系统进行细分。

每一个局部应用一般对应着一组数据流图,局部应用中用到的数据可以从相应的数据字典中抽取出来。参照数据流图,确定局部应用后,利用上面的抽象机制可以对局部应用中的数据进行分类、组织(聚集),形成实体以及实体的属性,标记实体的码,确定各实体之间的联系,设计相应的局部E-R图。事实上,在需求分析阶段得到的数据字典和数据流图中的数据项就体现了实体、实体属性等的划分。当然还需要对需求分析中得到的数据信息进行必要的调整。

在调整中应遵循的准则是:现实世界中的事物能做“属性”处理的就不要用作实体来对待。这样有利于简化E-R图,更重要的是可以减少数据库应用系统中的表对象,便于系统优化。

那么怎么来确定某个事物是实体还是属性呢?一般来说,满足下面两个准则的事物都可以作为属性来看待。

准则一:如果事物作为“属性”,则不能再具有需要描述的性质。也就是说作为属性的事物不能包含其他属性,也可以说作为属性的事物我们完全可以用该事物的名字来描绘该属性名。

准则二:属性不能与其他实体具有联系。联系只能是实体之间的联系。

例如,教学管理系统中的某个教师的职称,职称是教师实体的一个属性,这是因为我们只需要知道该教师是什么职称就可以了;但如果不同的职称,单位课时费不同的话,职称就包含课时费这个属性,这时就需要将职称单独作为一个实体。由于我们的教学管理系统不需要具备给教师算课时费的功能,所以,职称在这里只是教师的一个属性。也就是说,事物是实体还是属性与事物所在的应用系统的功能密切相关。

再例如,对于教学管理系统中的专业,一个学生对应一个专业,专业可以是学生实体的一个属性。但由于专业还要与院系实体发生联系,即一个院系对应着多个专业,则根据准则二,专业作为一个实体。

4.设计全局E-R图

设计完各局部E-R图后,最后要将各局部E-R图合并成一张全局E-R图,即集成。集成有两种方式,一种是将各局部E-R图一次集成;另一种是逐步集成,用累加的方式一次集成两个E-R图。

无论对于哪种方式,每次集成E-R图时需要两步。第一步,合并E-R图,生成初步E-R图;第二步,修改与重构,生成基本E-R图。下面分别讨论。(1)合并E-R图,生成初步E-R图。

在将局部E-R图集成全局E-R图时,需要消除各局部E-R图所产生的冲突。合理地消除冲突是第一步的关键。

各E-R图之间的冲突主要有3类:属性冲突、命名冲突和结构冲突。

① 属性冲突包括属性域冲突和属性取值单位冲突。

属性域冲突是指同一属性在不同的局部 E-R 图中数据类型、取值范围或取值集合不同。属性取值单位冲突是指同一属性在不同的局部E-R图中具有不同的单位。

② 命名冲突包括两种情况:

第一种是同名异义,也就是意义不同的对象在不同的E-R图中具有相同的名字。

第二种是异名同义,也就是具有相同语义的两个对象在不同的局部E-R图中名字不同。

③ 结构冲突包括三种情况:

第一种是同一对象在不同的局部E-R图中具有不同的抽象。例如,某对象在某局部E-R图中是实体,而在另一局部E-R图中却是属性。

第二种是同一实体在不同的局部 E-R 图中所包含的属性个数以及属性的排列顺序不完全一样。此时可以采用各局部E-R图中属性的并集作为实体的属性,再对该实体的属性进行调整。

第三种是实体间的联系在不同的局部E-R图中具有不同的联系类型。比如在某局部应用中两实体的联系是多对多的联系,而在另一局部应用中却是一对多的联系。此时应根据实际的语义来进行调整。(2)修改与重构,生成基本E-R图。

这一步也是对初步全局E-R图的优化。一个好的全局E-R图首先要能反映用户的需求,还要满足以下条件。

① 实体个数尽可能少。

② 实体所包含的属性尽可能少。

③ 实体间联系没有冗余。

为此,需要修改、重构初步E-R图以消除冗余,主要采用分析方法。除分析方法外,还可以用规范化理论来消除冗余。在优化的时候,可以将具有相同主码的两个实体进行合并,还可以考虑将具有1︰1的联系的两个实体合并为一个实体,消除冗余属性和冗余联系。但要注意,有时适当的冗余能够提高效率。

按照上述方法,可以画出教学管理系统的全局E-R图,如图1-8所示。

需要强调的是,由于各实体包含的属性比较多,为了使所画的E-R图简明清晰,将各实体所涉及的属性单独列出。以下分别列出了教学管理系统涉及的6个实体的属性(其中各实体的码用下横线列出)。

院系:(系编号,系名称,系主任,系网址,系办电话)

专业:(专业编号,专业名称,系编号)

学生:(学号,姓名,性别,民族,出生年月,政治面貌,班级名称,年级,家庭住址,寝室电话,手机,简历,照片)

课程:(课程编号,课程名,学分,周学时,理论课时,实践课时,总学时,开课学期,课程类型)

教师:(教师编号,系编号,姓名,性别,民族,出生年月,参加工作日期,学历,学位,职称,党员否,基本工资,住宅电话,手机,院系编号,电子邮箱)

班级:(班级名称,专业编号,班级人数,班长姓名)1.4.4 逻辑结构设计

逻辑结构设计的任务就是把概念设计阶段设计好的E-R图转换成与所选DBMS产品所支持的数据模型相吻合的逻辑结构。这里我们只讨论E-R模型向关系数据模型的转换。

将E-R模型向关系模型转换就是要将实体、实体的属性和实体之间的联系转化为关系模式,这种转换的规则包括以下几点。

① 一个实体型转换为一个关系模式。实体的属性即为关系的属性,实体的码也就是关系的码。

② 一个 m︰n 联系转换为一个关系模式,与该联系相连的两个实体的码以及联系本身的属性均转换成关系的属性,同时关系的码为两个实体码的组合。

③ 一个 1︰n 联系可以转换为一个独立的关系模式,也可以与 n 端对应的关系模式合并。如果转换成一个独立的关系模式,则与该联系相连的两个实体的码以及联系本身的属性均转换为关系的属性,同时关系的码为n端实体的码。

④ 一个 1︰1 联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的两个实体的码以及联系本身的属性均转换为关系属性,而每个实体的码均为该关系的候选码。如果与其中一端实体对应的关系模式合并,则需要在该关系的属性中加入另一个关系模式的码和联系本身的属性。

⑤ 3 个或 3 个以上的实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为此关系的属性,而此关系的码为各实体码的组合。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载