1全国计算机等级考试二级教程――Access数据库程序设计Zaa//第一章:数据库基础知识一.数据库基础知识及关于数据库的概念:1.数据库的基本概念:数据、数据处理、数据库、数据库管理系统、数据库系统(1)数据:是指存储在某一种媒体上能够被识别的物理符号。通常我们所说的数据包括两方面的内容:1)描述事物特性的数据内容.2)存储在某一种媒体上的数据形式.数据不仅包括数字、字母、文字和其他特殊字符组成文本形式的数据,而且还包括图形,图像,动画,声音等多媒体数据。(2)数据处理:是指将数据转换成信息的过程.信息:是指一种被加工成特定形式的数据,并且这种数据形式对于数据接收者来说是有义.(3)数据库(Database,即DB)。是存储在计算机存储设备上,结构化的相关数据集合.(4)数据库管理系统(DatabaseManagementSystem,即DBMS)。为了让多种应用程序并发地使用数据库中具有最小冗余的共享数据必须使数据库与程序有较高的独立性,这就需要一个软件系统对数据实行专门的管理,该软件就叫做数据库管理系统。也就是说数据库管理系统是一种在操作系统支持下的系统软件。(5)数据库系统(DatabaseSystem,即DBS)。指引进数据库技术后的计算机系统,实现有组织地,动态地存储大量相关数据,提供数据处理和信息资源共享的便利手段.数据库系统有5个部分组成包括:硬件系统、数据库集合、数据库管理系统及相关软件、数据库管量员和用户。数据库系统需要操作系统的支持。(6)数据库(DB)、数据库管理系统(DBMS)和数据库系统(DBS)之间的关系。数据库是结构化的相关数据的集合。为建立、使用和维护数据而配置的软件称为数据库管理系统,而数据库管理系统是数据库系统的一个组成部分,它是数据库系统的核心。所以数据库系统(DBS)包含数据库(DB)和数据库管理系统(DBMS)。2.数据库系统的发展阶段和基本特点:数据处理的中心问题就是数据管理,它共分为5个阶段.多年来,数据管理经历了人工管理阶段、文件系统管理阶段、数据库系统管理阶段、分布式数据库管理系统阶段和面向对象的数据库系统阶段共五个阶段。其中,各个阶段的主要特点见下表所示:2发展阶段主要特点(1)人工管理阶段程序和数据不具有独立性,一组数据只对应一组程序;数据不长期保存,程序运行结束后就退出计算机系统;一个程序中的数据无法被其他程序利用,程序与程序之间有大量的重复数据存在,称为数据冗余。(2)文件系统管理阶段程序和数据有了一定的独立性,程序和数据分开存储;有了程序文件和数据文件的区别,数据文件可以长期保存在存储器上被多次存取;程序和数据相互依赖,同一数据项可能重复出现在多个文件中,导致数据冗余度大。(3)数据库系统管理阶段提高了数据的共享性,使多个用户能够同时访问数据库中的数据;大大减小了数据的冗余度,以提高数据的一致性和完整性;提高数据与应用程序的独立性(所谓数据独立性就是指数据与应用程序相互独立,用户无需考虑数据的存储位置和结构),从而减少了应用程序的开发与维护代价。三者之间的区别:主要在于数据与程序之间的关系。在人工管理阶段,数据与程序不具有独立性,程序与程序之间有大量的重复数据存在,称为数据冗余;在文件系统阶段,程序和数据有了一定的独立性,但程序和数据相互依赖,同一数据项可能重复出现在多个文件中,导致数据冗余度大;在数据库系统阶段程序和数据高度独立,实现了数据共享,减少了数据冗余.。(4)分布式数据库管理系统阶段:它是数据库技术和计算机网络技术紧密结合的产物。开放式数据库连接ODBC(OpenDataBaseConnectivity)是用于数据库服务器的一种标准协议。计算机网络是由多台计算机互联而成,为保证网络中计算机间的数据交换,要求计算机在交换数据的过程中遵守相应的网络协议,一个网络协议由语法、输出和时序三个要素组成。(5)面向对象的数据库系统阶段:是数据库技术与面向对象(在这里“对象”指的就是多媒体技术,它包括图形,图像,动画,声音等多媒体数据)程序设计相结合的产物。3.数据库系统的特点:(1)实现数据共享,减少数据冗余(2)采用特定的数据模型(是关系模型,也叫做二维表模型)(3)具有较高的数据独立性(所谓数据独立性就是指数据与应用程序相互独立,用户无需考虑数据的存储位置和结构)(4)有统一的数据控制功能4..数据模型:(1).实体的描述:31)实体:客观存在并且可以相互区别的事物称为实体.2)实体的属性:描述实体的特性称为属性.3)实体集和实体型:属性值的集合表示一个实体,而属性的集合表示一种实体的类型,称为实体型.同类型的实体的集合,称为实体集.(2)实体间联系及联系的种类:实体之间的对应关系称为联系,它反映现实世界事物之间的相互关联。实体间联系的种类是指一个实体型中可能出现的每一个实体与另一个实体型中多少个具体实体存在联系,可归纳为以下3种类型:A.一对一联系:如果实体集A中的每一个实体只与实体集B中的一个实体相联系,反之亦然,则称这种关系是一对一联系。例如一个班级只能有一个班长,并且班长不可以在别的班级兼职,他只能在一个班级担任班长职务,那么班级与班长之间的关系就是一对一联系。其实体-联系模型(即E-R模型)如下图所示(其中矩形表示实体,菱形表示实体之间的关系):B.一对多联系:如果实体A中的每一个实体,在实体集B中都有多个实体与之对应;实体集B中的每一个实体,在实体集A中只有一个实体与之对应,则称实体集A与实体集B是一对多联系。例如一个班级是由多名学生组成的,而一个学生只能属于一个班级,则班级与学生之间的联系就是一对多联系。其实体-联系模型(即E-R模型)如下图所示(其中矩形表示实体,菱形表示实体之间的关系):C.多对多联系:如果实体集A中的每一个实体在实体集B中都有多个实体与之对应,反之亦然,则称这种关系是多对多联系。例如一门课程可以被多个学生选修,而一个学生也可以同时选修多门课程,则课程和学生之间的关系就是多对多联系。其实体-联系模型(即E-R模型)如下图所示(其中矩形表示实体,菱形表示实体之间的关系):(3)数据模型简介:为了反映事物本身及事物之间的各种联系,数据库中的数据必须有一定的结构,这种结构就叫做数据模型,所以说数据模型就是数据库管理系统用来表示实体及实体间联系的方法.1).层次数据模型:用树形结构来表示实体及其之间的联系的模型称为层次模型。42).网状数据模型:用网状结构来表示实体及其之间的联系的模型称为网状模型。3)关系数据模型:用二维表的结构来表示实体以及实体之间的联系的模型就称为关系模型。(4)关系模型:1)关系的数据结构:关系模型采用二维表来表示,一个关系对应一张二维表。可以说一个关系就是一个二维表。①认识表:一个二维关系称为一个表。在二维关系中,横向上的一行称为一个元组,纵向上的一列称为一个属性;在一个具体的表中,横向上的一行称为一条记录,纵向上的一列称为一个字段。②表是由结构和记录组成(要先创建表结构,再输入记录)2)元组:在一个二维表(一个具体关系)中,水平方向上的一行称为一个元组或称为一条记录。3)属性:二维表中垂直方向上的一列称为一个属性或称为一个字段,每一个列有一个列名叫做属性名或叫做字段名。4)域:属性的取值范围,也就是不同元组对同一属性的取值所限定的范围。5)关键字:在二维表中能够惟一标识出元组的属性值的字段称为该表的关键字。二维表中可能有若干个关键字,它们称为表的候选关键字。从二维表的所有候选关键字中选取一个作为用户使用的关键字就称为主关键字(在Access中简称为主键)。表A中的某字段的属性值是表B中的主关键字或候选关键字,则称该字段为表A的外部关键字(在Access中简称为外键或外码)。6)关系模型采用二维表来表示,二维表一般满足下面的7个性质:a二维表中元组个数是有限的元组个数的有限性;b二维表中元组均不相同元组的惟一性;c二维表中元组的次序可以任意交换元组的次序无关性;d二维表中的属性必须是不可分割的数据单元属性的原子性;e二维表中属性名各不相同属性名惟一性;f二维表中属性的次序可以任意交换属性的次序无关性;g二维表中属性的分量具有与该属性相同的值域分量值域的统一性。7)关系中的数据约束:关系模型中允许定义三类数据约束,它们是实体完整性约束(也就是表中记录的惟一性,即表中的主关键字段应没有重复值)、参照完整性约束(也就产建立表之间的关系)和域完整性约束(也就是表中字段值的取值范围)。5.关系运算:(1)传统的关系运算:(1)并:两个相同结构关系的并运算结果是由属于这两个关系的元组组成的集合。(2)交:设有两个相同结构的关系A和B,它们的交集是由既属于A又属于B的元组组5成的集合。(3)差:设有两个具有相同结构的关系A和B,A差B的结果是由属于A但不属于B的元组组成的集合,即差运算的结果是从A中去掉B中也有的元组。(2)专门的关系运算:1)选择::从关系中找出满足给定条件的元组的操作称为选择(是指对一个表进行横向切割).选择是从行的角度进行的运算,即在水平方向上抽取记录。经过选择运算得到的结果可以形成新的关系,其关系模式不变,但其中的元组是原关系的一个子集。2)投影::从关系中指定若干个属性组成新的关系称为投影(是指对一个表进行纵向切割).投影是从列的角度进行运算,相当于对关系进行垂直分解。经过投影运算可以得到一个新的关系,其关系模式所包含的属性个数往往比原关系少,或者属性的排列顺序不同。3)连接::连接是关系的横向结合.连接运算将两个关系模式拼成一个更宽的关系模式,生成的新关系中包含满足条件的元组.如果需要连接两个以上的表,应当进行两两连接.4)自然连接:在连接运算中,按照字段值对应相等为条件进行的连接操作称为等值连接,而自然连接是指去掉重复属性值的等值连接.二.数据库设计基础:1.数据库设计的步骤:(1)设计原则:为了合理组织数据,关系数据库的设计应遵从以下几个基本设计原则:1)关系数据库的设计应遵从概念单一化“一事一地”的原则,“一事一地”是指一个表描述一个实体或实体间的一种联系。2)避免表之间出现重复字段,是指除了保证表中有反映与其他表之间的联系的外部关键字之外,尽量避免在表之间出现重复字段。3)表中的字段必须是原始数据和基本数据元素。4)用外部关键字来保证有关联的表之间的联系。(2)设计步骤:利用Access开发数据库应用系统,设计步骤如下:1)需求分析:确定建立数据库的目的,有助于确定数据库保存哪些信息。2)确定需要的表:着手将需求划分各个独立的实体,每个实体都可以设计为数据库中的一个表。3)确定所需字段:确定在每个表中要保存哪些字段。通过这些字段的显示或计算应该能够得到所有需求信息。4)确定联系:对每个表进行分析,确定一个表中的数据和其他表中的数据有何联系。5)设计求精:对设计进一步分析,查找其中的错误;创建表,在表中加入几个示例数据记录,考察能否从表中得到想要得到的结果;需要时调整设计。2.数据库设计过程:其中数据库应用系统中的核心问题是数据库设计。6(1)需求分析:用户需求主要包括3个方面:1)信息需求;2)处理需求;3)安全性和完整性需求。(2)确定需要的表:定义数据库中的表是数据库设计过程中技巧性最强的一步。定义过程大致是对收集到的数据进行抽象;分析数据库的要求;得到数据库所需要的表。(3)确定所需字段:确定字段时需要注意的问题:1)第个字段直接和表的实体相关;2)以最小的逻辑单位存储信息;3)表中的字段必须是原始数据;4)确定主关键字字段。(4)确定联系:设计数据库的目的实质上是设计出满足实际应用需求的实际关系模型。确定联第的目的是使表的结构合理。不仅存储了所需要的实体信息,并且反映出实例之间客观存在的关联。(5)设计求精:数据库设计在每一个具体阶段的后期都要经过用户的确认,检查可能存在的缺陷和需要改进的地方。重点检查的几个方面包括:1)是否忘掉了字段?2)是否包含了同样的字段?3)是否为每个表都选了合适的关键字?4)是否存在保持大量空白的字段或表中重复输入同样的记