Access数据库程序设计(等级考试版)主编:崔丹罗建航学时:48第1章数据库基础第1章内容提纲1.1数据库基础知识1.2关系数据库1.3数据库设计基础1.4Access简介1.1数据库基础知识1.1.1计算机数据管理的发展1.1.2数据库系统1.1.3数据模型1.1.1计算机数据管理的发展(1)1.数据与数据处理数据是指存储在某一载体上能够被识别的物理符号。数据包含两个方面的内容,一是对事物特征的描述,表示事物的属性,如大小、形状、数量等;二是存储的形式,如数字、文字、图形、图像、声音、动画、影像等。数据处理是指将数据转换成信息的过程。信息是一种被加工成特定形式的数据,这种数据形式对数据接受者来说是有意义的。2.数据管理技术当前的计算机数据处理是基于数据库的一种计算机应用和发展,它是按特定需求对数据进行加工的过程。1)人工管理阶段2)文件管理阶段3)数据库系统阶段4)分布式数据库系统阶段5)面向对象数据库系统阶段1.1.1计算机数据管理的发展(2)1)人工管理阶段20世纪50年代以前,计算机主要用于数据计算。从当时的硬件看,外存只有纸带、卡片、磁带,没有直接存取设备;从软件看,没有操作系统及数据管理的软件;从数据看,数据量小,用于数据结构的模型没有完善。所以这一阶段的管理由用户直接管理,存在以下主要特点。•数据不能长期保存。•数据相对于程序不具有独立性。•数据不共享。该阶段应用程序与数据之间的关系如图所示。该阶段应用程序与数据之间的关系如图1.1所示。1.1.1计算机数据管理的发展(3)2)文件管理阶段20世纪50年代后期到60年代中期,计算机外部存储设备中出现了磁鼓、磁盘等直接存取的存储设备;计算机操作系统中已有了专门的管理数据软件,称为文件系统。在数据的处理方式上不仅有了文件批处理,而且能够在需要时随时从存储设备中查询、修改或更新数据。这一阶段的特点如下。•数据可组织成文件长期保存在计算机中,并可以经常进行查询、修改和删除等操作。•数据具有较低的独立性。•数据共享性低,冗余度大。该阶段应用程序与数据之间的关系如图所示。1.1.1计算机数据管理的发展(4)3)数据库系统阶段20世纪60年代后期,计算机性能大幅度提高,特别是大容量磁盘的出现,使存储容量大大增加并且价格下降。为满足和解决实际应用中多个用户、多个应用程序共享数据的要求,使数据能为尽可能多的应用程序服务,在软件方面就出现了统一管理数据的专用软件系统,克服了文件系统管理数据时的不足,这就是数据库管理技术。该阶段应用程序与数据之间的关系如图所示。1.1.1计算机数据管理的发展(5)4)分布式数据库系统阶段数据库技术与通信网络技术的结合产生了分布式数据库系统。网络技术的发展为数据库提供了分布式运行的环境,从主机—终端体系结构发展到客户机/服务器(Client/Server,C/S)体系结构。1.1.1计算机数据管理的发展(6))面向对象数据库系统阶段数据库技术与面向对象程序设计技术相结合产生了面向对象的数据库系统。它采用面向对象的观点来描述现实世界实体(对象)的逻辑组织、对象之间的限制和联系等,克服了传统数据库的局限性,能够直观地存储复杂的数据对象以及这些对象之间的复杂关系,大大提高了数据库管理的效率,降低了用户使用的复杂性。1.1.1计算机数据管理的发展(6)1.1.2数据库系统(1)1.数据库数据库(Database,DB)是存储在计算机存储设备上、结构化的相关数据集合。它不仅包括描述事物的数据本身,而且还包括相关事物之间的联系。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可供各种用户共享。对于数据库中数据的增加、删除、修改和检索等操作均由系统软件进行统一的控制。2.数据库管理系统数据库管理系统(DatabaseManagementSystem,DBMS)是位于用户与操作系统之间的一层数据管理软件。数据库管理系统的主要功能(1)数据定义功能。(2)数据操纵功能。(3)数据库的运行管理。(4)数据的组织、存储和管理。(5)数据库的建立和维护。(6)数据通信接口。1.1.2数据库系统(2)3.数据库应用系统数据库应用系统是由系统开发人员利用数据库系统资源开发出来的、面向某一类实际应用的应用软件系统。4.用户用户是指与数据库系统打交道的人员,包括以下三类人员。数据库应用系统开发员:开发数据库系统的人员。数据库管理员:全面负责数据库系统的正常运行和维护的人员。最终用户:使用数据库应用系统的人员。1.1.2数据库系统(3)5.数据库系统数据库系统(DBS)是指引入数据库后的计算机系统。一般由数据库、数据库管理系统及其开发工具、应用系统、数据库管理员和用户构成。结构如图所示:1.1.2数据库系统(4)数据库系统在其内部采用了三级模式和二级映射的抽象结构体系,如图所示。三级模式分别为概念级模式、内部模式和外部模式,二级映射分别为概念级到内部级的映射、外部级到概念级的映射。1.1.2数据库系统(5)1.1.3数据模型(1)1.数据模型的组成数据模型所描述的内容包括数据结构、数据操作和数据约束三部分。2.数据模型的分类数据模型按不同的应用层次分为概念数据模型、逻辑数据模型和物理数据模型。3.E-R模型1)实体(Entity):客观存在并可相互区别的事物。2)属性(Attribute):刻画了实体的特性。3)联系(Relationship):实体集之间的对应关系称为联系。两个实体集之间的联系实际上是实体集之间的函数关系,有三种类型。(1)一对一(OnetoOne)的联系。如果对于实体集A中的每一个实体,实体集B中至多有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一的联系,记为1:1。(2)一对多(OnetoMany)的联系。如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系;反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B具有一对多的联系,记为1:n。(3)多对多(ManytoMany)的联系。如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系;反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体集B具有多对多的联系,记为m:n。1.1.3数据模型(2)4.数据模型的种类每个数据库管理系统都是基于某种数据模型的。在目前的数据库领域中,常用的数据模型有层次模型、网状模型、关系模型和面向对象模型等。1)层次模型层次模型是最早发展起来的数据模型,它把客观问题抽象为一个严格的自上而下的层次关系。层次模型用树形结构如图所示1.1.3数据模型(3)2)网状模型网状模型的数据结构是一个网络结构,其基本特征是:一个双亲允许有多个子女;反之,一个子女也可以有多个双亲,如图所示。与层次模型不同,网状模型中的任意结点间都可以有联系,适用于表示多对多的联系,因此,与层次模型相比,网状模型更具有普遍性。也可以认为层次模型是网状模型的特例。1.1.3数据模型(4)3)关系模型关系模型是各种数据模型中最为重要的模型。关系模型是建立在数学概念基础上的,在关系模型中,把数据看成一个二维表,这个二维表就叫做关系。如下表所示。表1.1学生关系表学生编号姓名班级…20100102王大海20100120100104刘小萍20100120100301王芳20100320100401毛程伟201004…………4)面向对象模型面向对象数据模型中的主要概念有对象、类、方法、消息、封装、继承和多态等。其中,最基本的概念是对象(Object)和类(Class)。对象是现实世界中实体的模型化,每一个对象都有唯一的标识符,把“状态”和“行为”封装在一起。1.1.3数据模型(5)1.2关系数据库1.2.1关系数据库模型1.2.2关系运算1.2.3关系模型的完整性1.2.4规范化理论关系数据库模型(1)一个关系可以看作一个二维表,由各表示一个实体的若干行或各表示实体(集)某方面属性的若干列组成。1、关系模型由关系数据结构、关系操作集合和关系完整性约束三大要素组成。2、关系模型的基本概念1)关系:一个关系就是一张二维表。2)属性:二维表中垂直方向的列称为属性。3)元组:二维表中水平方向的行称为元组。4)域:属性所取值的变化范围称为属性的域(Domain)。5)关系模式关系的描述称为关系模式(relationschema)。它可以形式化地表示为R(U,D,Dom,F)其中,R为关系名,U为组成关系的属性名集合,D为属性组U中属性所来自的域,Dom为属性向域的映像集合,F为属性间数据依赖关系的集合。7)候选码(候选键)如果关系中的一个码移去了任何一个属性,它就不再是这个关系的码,则称这样的码为该关系的候选码或候选键。8)主码(主键)一个关系中往往有多个候选码,若选定其中一个用来唯一标识该关系的元组,则称这个被指定的候选码为该关系的主码(主键)。1.2.1关系数据库模型(2)9)外码(外键)当关系中的某个属性或属性组虽然不是这个关系的主码,或只是主码的一部分,但却是另一个关系的主码时,则称该属性或属性组为这个关系的外码或外键。10)主属性和非主属性关系中包含在任何一个候选码中的属性称为主属性,不包含在任何一个候选码中的属性称为非主属性。1.2.1关系数据库模型(3)3.关系形式关系是属性值域笛卡儿积的一个子集。1)笛卡儿积(CartesianProduct)设有一组域,这些域可以部分或者全部相同。域的笛卡儿积定义为如下集合:其中,每一个元素称为一个n元组(或简称元组),元素中的每一个值称为一个分量。若干个域的笛卡儿积具有相当多的元素,在实际应用中可能包含许多“无意义”的元素。人们通常感兴趣的是笛卡儿积的某些子集,笛卡儿积的子集就是一个关系。1D×2D×…×Dn={(1d,2d,…,dn)|diiD,i=1,2,…,n}1.2.1关系数据库模型(4)2)关系的形式定义笛卡儿积的子集R称为在域上的一个关系(Relation),通常表示为其中,R表示关系的名称,n称为关系R的元数或度数(Degree),而关系R中所含有的元组个数称为R的基数(CardinalNumber)。关系是笛卡儿积的子集,所以关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。由于域可以相同,为了加以区分,必须为每列起一个名字,称为属性(attribute),n目关系必有n个属性。1.2.1关系数据库模型(5)关系运算(1)1.传统的集合运算并、差、交是集合的传统运算形式,进行集合运算的关系R与S必须具有相同的关系模式,即R和S必须具有相同的属性集。1)并(Union)设有关系R、S(R、S具有相同的关系模式),则关系R与关系S的并由属于R或者属于S的元组组成。记作:式中,“∪”为并运算符,t为元组变量,结果R∪S为一个新的与R、S同类的关系。2)差(Difference)设有关系R、S(R、S具有相同的关系模式),则关系R与关系S的差由属于R而不属于S的元组组成。记作:式中,“-”为差运算符,t为元组变量,结果R-S为一个新的与R、S同类的关系。3)交(Intersection)设有关系R、S(R、S具有相同的关系模式),则关系R与关系S的交由既属于R又属于S的元组组成。记作:式中,“∩”为交运算符,结果R∩S为一个新的与R、S同类的关系。1.2.2关系运算(2)2.专门的关系运算1)选择(Selection)选择是在关系R中选择满足给定条件的元组,即从行的角度进行操作。