数据库基本原理数据库概述数据模型关系的.ppt_第1页
数据库基本原理数据库概述数据模型关系的.ppt_第2页
数据库基本原理数据库概述数据模型关系的.ppt_第3页
数据库基本原理数据库概述数据模型关系的.ppt_第4页
数据库基本原理数据库概述数据模型关系的.ppt_第5页
已阅读5页,还剩426页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章 数据库基本原理 1.1 数据库概述 1.2 数据模型 1.3关系的完整性 1.4关系模型的规范化,1.1 数据库概述,数据库技术产生于20世纪60年代中期,几十年来得到了迅速发展。 人们对信息和数据的利用和处理已进入自动化、网络化和社会化阶段,如银行储蓄、股票交易、资料查询、气象预报、机票预定等。这些任务既需要大量数据,又要求快速处理并及时得到结果,是传统的人工方法不可能完成的。 飞速发展的计算机技术使上述大规模的数据处理得以实现。,1.1.1 数据库的产生和发展,1.1.1 (续一),数据库 (Database) 这个名词起源于20世纪50年代。 从目前情况看,关系数据库仍然占绝对的主导地位,并将影响着数据库技术的发展。 数据库技术的发展已经历了4个发展阶段:,1.1.1 (续二),1. 人工管理数据的特点 (1)数据不保存; (2)没有专用软件对数据进行管理; (3)数据不共享; (4)数据不具有独立性。 2. 文件系统管理的特点 (1)数据可以长期保存; (2)有专用软件对数据进行管理 ; (3)数据共享性差、冗余度大; (4)数据独立性差。,1.1.1 (续三),3. 数据库系统的特点 (1)数据结构化; (2)数据冗余度小; (3)数据共享性好; (4)数据独立性高; (5)数据有统一管理和控制。,1.1.1 (续四),4. 高级数据库阶段 计算机辅助设计/制造(CAD/CAM)、计算机集成制造(CIM)、地理信息系统(GIS)、办公信息系统(OIS)、计算机辅助超大规模集成电路设计(VLSI CAD)等都需要数据库的支持。 这些系统在数据类型或数据结构或数据存储方面有特殊要求,传统的数据库系统并不能支持。,1.1.2 现实世界、信息世界、数据世界,1. 现实世界 现实世界存在着大量的事物。这些事物可以是具体的,也可以是抽象的。 各个事物都有表征自己的各种特征。 由于考虑问题的不同,同一个事物可能有不同的特征来描述它。 每一个事物的全部特征就反映了该事物本身。每一个事物至少有一个特征。,1.1.2 (续一),2. 信息世界 人们观察各种事物,在大脑中形成抽象概念,这就是信息(Information) 。 信息世界就是现实世界的事物在人脑中的抽象。,1.1.2 (续二),3. 数据世界 数据世界就是信息世界中信息的数据化。 信息和数据是紧密相关的,许多场合将它们看作同义词。 在数据世界里,将现实世界中诸事物凡有规律的特征都用恰当的编码表示是非常必要的。 编码的质量是影响数据库系统的决定性因素。,1.1.3 数据库基本概念,(1) 数据 数据(Data)就是描述信息的符号,是数据库中存储的基本对象。 数据处理(Data Processing)是将原始数据转换成信息的过程。 (2) 数据库 数据库(Database,简称DB)是在计算机系统中按照一定数据模型组织、存储和应用的相互联系的数据集合。,1.1.3 (续一),数据库技术(Database Technique)就是一种对数据进行加工以得到有用信息的计算机软件技术。 (3) 数据库管理系统 数据库管理系统(Database Management System,简称DBMS)是一种计算机软件系统 。 以数据库管理系统为核心的应用系统称为管理信息系统(Management Information System,简称MIS)。,1.1.3 (续二),(4) 数据库系统 数据库系统(Database System,简称DBS)就是以数据库应用为基础的计算机系统。 数据库系统不仅包括必须存储的数据,还包括相应的硬件、软件和各类工作人员。,1.2 数据模型,数据库中的大量数据必须按严格的数据模型来组织。 数据库中的数据是高度结构化的,它不仅反映数据本身,而且反映数据之间的关系。 数据模型就是描述这种关系的数据结构形式。 理想的数据模型应能满足三方面的要求:一是能比较真实地描述现实世界;二是容易被人所理解;三是便于在计算机上实现。 根据模型应用的不同目的。可以将模型划分为两类,它们分属于两个不同的层次。,1.2 数据模型(续),概念模型(Idea Model)是现实世界到信息世界的抽象,又称为信息模型。 数据模型(Data Model)是信息世界到数据世界的抽象。 数据库领域最常见的数据模型有4种:层次模型、网状模型、关系模型和面向对象模型。其中层次模型和网状模型统称为非关系模型。 目前,关系模型是最常用的数据模型。以关系模型为基础建立的数据库管理系统称为关系数据库管理系统(RDBMS)。,1.2.1 数据模型的组成要素,数据模型通常都是由数据结构、数据操作和完整性约束3个要素组成。 1. 数据结构 数据结构是所研究的对象类型(object type)的集合,用于描述系统的静态特征。 2. 数据操作 数据操作是指数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则,用于描述系统的动态特征。,1.2.1 数据模型的组成要素(续),3. 数据约束条件 数据约束条件是一组完整性规则的集合。 完整性规则是给定的数据模型中数据及其联系所具有的制约和存储规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。 数据模型还应该提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。,1.2.2 信息世界的主要概念,1. 实体 实体(Entity)就是现实世界中客观存在并可相互区分的事物。 实体既可以是看得见摸得着的具体的事物,也可以是抽象的概念或联系。例如,某一本书、某一架飞机、某个学生等都是实体。,1.2.2 (续一),2. 属性 实体所具有的某一特征称为属性(Attribute)。 一个实体由若干个(至少一个)属性来描述。 一个实体的所有属性组成实体本身。 例如,学生实体可以由学号、姓名、性别、出生年月日、班级等属性组成。而(0100001、冯东梅、女、1980/12/26、01电子商务1)就是一个学生(实体)的属性值。,1.2.2 (续二),3. 码 唯一标识实体的属性组称为码(Key),通常又称为关键字。 如果实体有多个码,则可以选定其中一个码为主码(Primary Key),通常又称为主关键字。 如果实体只有一个码,它也是主码(主关键字)。,1.2.2 (续三),例如,一个学校里,学生实体的学号是肯定不重复的。所以学号可以作为学生实体的码。如果学生实体中含有身份证号属性,则身份证号也是码,可以在学号和身份证号中选定一个作为主码(主关键字)。 通常情况下只关注实体的主码,所以,在不会引起混淆时,通常说码、主码、关键字或主关键字,含义都相同。 4. 域 属性的允许取值的集合称为该属性的域(Domain)。,1.2.2 (续四),例如,学号的域是7位数字(某校规定),性别的域是男、女,班级的域是该校所有班级的集合。 5. 实体型 用实体名及其所有属性名集合来抽象和描述同类实体称为实体型(Entity type)。 例如,学生(学号、姓名、性别、出生年月日、班级)就是一个实体型。,1.2.2 (续五),6. 实体集 同型实体的集合称为实体集(Entity set)。 例如,某个学校(或某个班级)的全体学生就是一个实体集。 7. 联系 信息世界的不同实体集之间和同一实体集内部都可能存在一定的联系(Relationship)。,1.2.2 (续六),数据世界的概念是和信息世界的概念相对应的: 数据表(Data table)是实体集的数据表示; 记录(Record)是实体的数据表示; 数据项(Item)是属性的数据表示。 记录由若干数据项组成。,1.2.3 实体的联系,信息世界存在的联系有两种:其一是一个实体集内部的联系;其二是不同实体集之间的联系。 1. 实体集内部的联系 实体集内部的联系通常指组成该实体的各属性之间的联系。,1.2.3 实体的联系(续一),在表1-1中,不同实体的学号都不重复,即学号与实体间有一一对应关系。 学号就是学生情况这个实体集的关键字。,1.2.3 实体的联系(续二),在表1-2中,不同实体的学号(或课程号、或成绩)都有可能重复。但是,不同实体的学号加课程号则不可能重复。所以,学号和课程号这两个属性组成的属性组是选课及成绩这个关系的关键字。,1.2.3 实体的联系(续三),2. 实体集之间的联系 对于两个不同的实体集A和B,它们之间的联系通常有以下三种方式:,一对一联系(1:1) 一对多联系(1:n) 多对多联系(m:n),1.2.3 实体的联系(续四),一对一联系是一对多联系的特例,一对多联系又是多对多联系的特例。 多对多联系直接处理起来很困难,通常是将多对多联系转化为两个一对多联系来处理。 概念模型和各种数据模型均不支持多对多联系,只支持一对一联系和一对多联系。,1.2.3 实体的联系(续五),同一实体集内的各实体之间也可以存在一对一、一对多或多对多联系。例如,学生实体集内部存在“领导与被领导”的联系,即某一学生(班长)“领导”多名(全班)学生,而一个学生仅被一个学生(班长)“领导”,这就是一对多联系 。 在复杂问题中,两个以上的实体集之间也往往存在一对一、一对多或多对多联系。,1.2.4 概念模型,对于具体的实际问题,建立正确合理的概念模型是建立数据模型的前提。 一个好的概念模型应该考虑和解决的问题是: (1) 实际问题需要哪些实体集以及各个实体需要哪些属性; (2) 这些实体集内部和实体集之间有怎样的联系; (3) 如果存在多对多联系,如何转化为一对多联系。,1.2.4 概念模型(续一),表示概念模型最常用的是实体联系方法(entity-relationship approach)。该方法用ER图来描述。 在ER图中,实体型、属性和联系的表示方法如下: (1) 实体型:用矩形表示,矩形框内写实体名;,1.2.4 概念模型(续二),(2) 属性:用椭圆表示,并用无向线段与相应的实体连接; (3) 联系:用菱形表示,菱形框内写明联系名,并用无向线段与有关的实体连接。同时在无向线段旁标上联系的类型(1:1,1:n或m:n)。 联系本身也是一种实体型,也可以有属性。如果一个联系有属性,也用无向线段将属性与该联系连接。,1.2.4 概念模型(续三),(a)1:1联系 (b)1:n联系 (c)m:n联系 两个实体之间的三类联系,1.2.4 概念模型(续四),学生实体、课程实体及其属性 将多对多联系转化为一对多联系的一般方法是:增加一个新的实体集,并且这个新的实体集和原来的两个实体集之间都是一对多联系。,1.2.4 概念模型(续五),学生学习成绩管理概念模型,1.2.4 概念模型(续六),这个例子也给出了将多对多联系转化为一对多联系的一般方法,这就是:增加一个新的实体集,并且这个新的实体集和原来的两个实体集之间都是一对多联系。,1.2.5 层次模型,层次模型(Hierarchical Model)用树形结构表示各类实体以及实体间的联系。 从树的观点看,层次模型满足以下两个条件: (1) 有且仅有一个结点无双亲结点,称之为根结点(简称根); (2) 根以外的其他结点有且仅有一个双亲结点。 层次模型只能反映实体之间一对多的关系。,1.2.5 层次模型(续),层次模型示意图,下图所示是一个层次模型的典型。,1.2.6 网状模型,网状模型(Network Model)是比层次模型更具普遍性的一种结构。它去掉了层次模型的两个限制条件,允许有一个以上的结点无双亲结点,允许结点可以有多个双亲结点,此外它还允许两个结点之间有多种联系(称之为复合联系)。,1.2.6 网状模型(续一),网状模型有如下优点: (1)可以直接描述包括多对多在内的更复杂的关系。 (2)具有良好的性能,存取效率较高。 网状模型也有缺点: (1)对计算机的硬件和软件环境要求较高。 (2)数据库的独立性较差。 (3)操作比较复杂。,1.2.6 网状模型(续二),下图表示零部件的采购使用关系,这是一个典型的网状模型。,1.2.6 网状模型(续三),下图表示1.2.4介绍的学生选修关系这个网状模型。,1.2.7 关系模型,关系模型(Relational Model)中数据的逻辑结构是一张二维表,它由行和列组成。 表1-1所示的学生情况就是一个关系模型。 关系模型的主要概念: 关系(relation):关系模型中表示数据的整个一张二维表就是关系。 元组(Tuple):二维表中的每一行即为一个元组,对应概念模型的一个实体。 属性(Attribute):二维表中的每一列即为一个属性,对应概念模型的一个属性。,1.2.7 关系模型(续一),主码(Key):二维表中唯一标识元组的某个属性组称为该关系的主码,对应概念模型的码。 域(Domain):二维表中任一属性的取值范围称为该属性的域,对应概念模型的域。 分量:元组中的每一个属性值称为元组的分量。 关系模式(Relation schema):对关系的描述称为关系模式,通常用关系名及其所有属性名集合来表示,类似概念模型中实体型的表示方法。,1.2.7 关系模型(续二),整个表1-1就是一个关系。 表中的每一行都是一个元组。 学号、姓名、性别等每一列都是属性。 学号是这个关系的码。 男、女、正确的日期集合分别是性别和出生年月日的域。 0100001、冯东梅、女、1980-12-26、北京和1100等都是分量。 而学生(学号,姓名,性别,出生年月日,家庭所在地,家庭人均月收入)是这个关系的关系模式。,1.2.7 关系模型(续三),关系模型既可以反映属性之间一对多的关系,也可以反映属性之间多对多的关系。 关系模型具有以下特点: (1) 数据结构简单,概念清楚; (2) 能够直接反映实体之间一对一、一对多和多对多关系; (3) 通过公共属性就可以建立表与表之间的联系,从而就建立了实体之间的联系; (4) 具有严格的理论基础。,1.2.8 面向对象模型,面向对象模型(Object Oriented Model)是数据库系统中最近出现的一种模型。面向对象模型中最基本的概念是对象(object)和类(class)。 面向对象模型是正在发展中的模型,具有广阔的前途和生命力。,1.3 关系的完整性,关系模型允许定义三类完整性:实体完整性、参照完整性和用户定义的完整性。 实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称为关系的两个不变性,由关系系统自动支持。 这里先列出3个例题,以便后面引用。 例1-1 学生实体和专业实体可以用下面的关系表示(其中主码用红色体字标识): 学生(学号,姓名,性别,专业号,年龄) 专业(专业号,专业名),1.3 关系的完整性(续一),例1-2 学生实体、课程实体、学生与课程之间的选课及成绩实体可以用如下3个关系来表示: 学生(学号,姓名,性别,专业号,年龄) 课程(课程号,课程名,学分) 选课及成绩(学号,课程号,成绩) 例1-3 另一个学生实体的关系是: 学生2(学号,姓名,性别,专业号,年龄,班长学号),1.3.1 实体完整性,一个基本关系通常对应现实世界的一个实体集。例如,学生关系对应学生的集合。 现实世界的实体是可区分的,即它们具有某种唯一性标识。相应地,关系模型中以主码作为唯一性标识。 主码中的属性即主属性不能取空值。所谓空值就是“不知道”或“无意义”的值。如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与现实世界的应用环境相矛盾,因此这个实体一定不是一个完整的实体。,1.3.1 实体完整性(续一),实体完整性(Entity Integrity)规则: 若属性A是基本关系R的主属性,则属性A不能取空值。 在例1-1的学生关系中,学号为主码,则学号不能取空值。 实体完整性规则规定基本关系的所有主属性都不能取空值,而不仅是主码整体不能取空值。在 例1-2的选课及成绩关系中,学号+课程号为主码,则学号和课程号两个属性都不能取空值。,1.3.2 参照完整性,现实世界中的实体之间往往存在某种联系,在关系模型中实体及实体间的联系都是用关系来描述的。这样就自然存在着关系与关系间的引用。 例1-1的两个关系之间存在着属性的引用,即学生关系引用了专业关系的主码“专业号”。显然,学生关系中的专业号值,必须是确实存在的专业的“专业号”,即专业关系中有该专业的记录。这就是说,学生关系中的某个属性的取值需要参照专业关系对应属性的取值。,1.3.2 参照完整性(续一),例1-2的3个关系之间也存在着属性的引用,即选课及成绩关系引用了学生关系的主码“学号”和课程关系的主码“课程号”。 选课及成绩关系中的学号值必须是确实存在的学生的“学号”,即学生关系中有该学生的记录;选课及成绩关系中的课程号值,也必须是确实存在的课程的“课程号”,即课程关系中有该课程的记录。 选课及成绩关系中某些属性的取值需要参照其他关系对应属性的取值。,1.3.2 参照完整性(续二),不仅两个或两个以上的关系间可以存在引用关系,同一关系内部属性间也可能存在引用关系。 在例1-3的关系中,“学号”属性是主码,“班长学号”属性表示该学生所在班级的班长的学号,班长必须是这个班的学生,即“班长学号”必须是确实存在的学生的“学号”。,1.3.2 参照完整性(续三),设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码K相对应,则称F是基本关系R的外码(Foreign key),并称基本关系R为参照关系(Referencing relation),基本关系S为被参照关系(Referenced relation)或目标关系(Target relation)。关系R和S不一定是不同的关系。 目标关系S的主码Ks和参照关系R的外码F必须定义在同一个(或一组)域上。,1.3.2 参照完整性(续四),下图清楚地表达了例1-1、例1-2和例1-3的参照关系 。,1.3.2 参照完整性(续五),参照完整性规则就是定义外码与主码之间的引用规则。 参照完整性(Referential Integrity)规则: 若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为: 或者取空值(F的每个属性值均为空值); 或者等于S中某个元组的主码值。,1.3.2 参照完整性(续六),对于例1-1,学生关系中每个元组的专业号属性只能取下面两类值: 空值,表示尚未给该学生确定所学专业; 非空值,这时该值必须是专业关系中某个元组的专业号值,表示该学生不可能分配到一个不存在的专业中学习。即被参照关系“专业”中一定存在一个元组,它的主码值等于该参照关系“学生”中的外码值。,1.3.2 参照完整性(续七),对于例1-2中的选课及成绩关系,按参照完整性规则,学号和课程号属性也可以取两类值:空值或目标关系中已经存在的值。但由于学号和课程号是选课及成绩关系中的主属性,按照实体完整性规则,它们均不能取空值。所以选课及成绩关系中的学号和课程号属性实际上只能取相应被参照关系中已经存在的主码值。,1.3.2 参照完整性(续八),参照完整性规则中,R与S可以是同一个关系。 例如,对于例1-3,按照参照完整性规则,班长属性值可以取两类值: 空值,表示该学生所在班级尚未选出班长 ; 非空值,这时该值必须是本关系中某个元组的学号值 。,1.3.3 用户定义的完整性,实体完整性和参照性适用于任何关系数据库系统。除此之外,不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。 用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的实际要求,即取值的限制范围。,1.3.3 (续),例如,某个非主属性不能取空值(如:姓名)、某个属性的取值范围限定在0100之间(如:成绩)、某个属性只能取几个特定的值(如:性别)等。关系模型应提供定义和检验这类完整性机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。,1.4 关系模型的规范化,用关系模型描述现实世界直观、明了。但是,要做到用关系模型很好地描述现实世界却不是一件容易的事情。 设计一个好的数据库是一项极其复杂的工作,规范化理论就是设计过程中的一个非常有用的辅助工具。 一般地说,关系模型的范式级别越高,设计的数据结构质量越高。第一范式是关系模型规范化最基本的要求,第二范式的级别比第一范式高,第三范式的级别又比第二范式高。,1.4.1 第一范式,如果关系模式R的每一个关系的属性值都是不可分的原子值,则称R属于第一范式(1NF)。 属于1NF的关系称为规范化关系,不属于1NF的关系称为非规范化关系。 不难验证,表1-1和表1-2所示的实体集都是属于1NF的规范化关系。 但是实际问题中的报表结构有许多是非规范化的。例如,下页表1-3是不规范的。 从规范化的关系模型的数据库是完全能够生成象表1-3这样结构的报表的。,1.4.1 第一范式(续一),实际问题中的报表结构有许多是非规范化的。例如,表1-3是不规范的。 不能依这样的结构设计关系模型,必须将这样的表需要的数据(以及其它数据)进行处理,使之规范化。,从规范化的关系模型的数据库是完全能够生成象表1-3这样结构的报表的。,1.4.1 第一范式(续二),一个关系应满足1NF是最起码的条件。然而,仅满足1NF的关系还可能存在一些问题。,表1-4是满足1NF的一个具体实例,但在操作中可能出现如下的一些问题。 () 插入异常 () 删除异常 () 数据冗余,1.4.2 第二范式,如果关系模式R属于1NF,并且每个非码属性都完全依赖于各个码,则称R属于第二范式(2NF)。如果某个数据库模式中的每个关系模式都是2NF,则这个数据库模式称为2NF的数据库模式。 下页表1-5所示的关系模式R(学号,系名,系办地址,课程号,成绩),主码为学号课程号。 某个学生某门课程的成绩(一个非码属性)是完全依赖于他的学号和该课程的代号(主码)的。也就是说,知道了一个学生的学号和他参加考试的课程号(两者缺一不可),就知道了他这一门课的成绩。,1.4.2 第二范式(续一),1.4.2 第二范式(续二),他所在的系名(另一非码属性)实际上仅完全依赖于他的学号(主码中的一个属性),与课程代号(主码中的另一个属性)无关。也就是说,只要知道了一个学生的学号(并不需要知道课程号),就知道了他所在的系名和系办地址。 这个关系模式不属于2NF(仅属于1NF)。 如果将R分解为两个关系模式R1(学号,系名,系办地址)和R2(学号,课程号,成绩),下页表1-7和表1-6,则R1和R2都属于2NF了。,1.4.2 第二范式(续三),这样分解之后,减少了冗余,节省了存储空间,降低了数据维护的代价。但是,另一方面是增加了查询难度。 这说明,在确定数据模型时,不能简单地说采用第二范式一定比第一范式好,采用第三范式也一定比第二范式好。到底采用哪个范式,要根据具体问题的要求确定。,1.4.3 第三范式,如果关系模式R是2NF,且每个非主属性都完全直接依赖于各个码(即既不部分依赖于码也不传递依赖于码),则称R属于第三范式(3NF)。如果某个数据库模式中的每个关系模式都是3NF,则这个数据库模式称为3NF的数据库模式。 如果一个关系不属于第三范式,那么也可能存在一些问题。 在关系R2中,主码为(学号、课程号),成绩是完全直接依赖于他的学号和该课程的代号(主码)的,故R2属于3NF。,1.4.3 第三范式(续一),在关系R1中,主码为(学号) ,知道了一个学生的学号(主码),就知道了他所在的系名,知道了他所在的系名(非码属性),也就知道了该系办公室的地址。系名是完全直接依赖于他的学号的。但系办公室的地址是通过系名间接(不是直接)依赖与他的学号的,故R1不属于3NF。 正因为关系R1不属于3NF,也存在数据冗余和操作异常现象。例如,有多个学生同属于一个系,这个系的地址就多次重复。 如果将关系R1分解为R11和R12(下页表1-8和表1-9),则R11和R12就都是属于3NF了。,1.4.3 第三范式(续二),一个数据库满足的范式越多,数据的冗余度越小,共享性越高,所占的存储空间越少,并将数据的不一致性减少到最低程度。 但是,高范式的数据库查询起来比较复杂。所以,不应一味追求高范式,对于包含频度很高的查询的数据库,不妨降低些范式。,第2章 Access 数据库基础知识,2.1 Access 数据库概述 2.2 Access 的特点 2.3 Access 2002 的新增功能 2.4 Access 的基本操作 2.5 Access 数据库设计 2.6 Access 数据库的对象 2.7 数据类型与表达式,2.1 Access 数据库概述,Microsoft Access是第一个在Windows环境下开发的一种全新的关系数据库管理系统,是中小型数据库管理的最佳选择。Access 2002和Access 2000不仅是数据库管理系统,而且还是一个功能强大的开发工具。 Access使用标准SQL(Structured Query Language,结构化查询语言)作为它的数据库语言。,2.1 Access 数据库概述 (续),每一个Access数据库,包括它所有的对象都存储在以.mdb为扩展名的数据库文件中。 打开一个数据库就是打开一个数据库文件。就Access而言,可以认为数据库和数据库文件含义相同。 Access数据库不但包括各种对象,还包括对各种对象的操作。,2.2 Access 的特点,1. 一个文件管理整个系 统 2. 真正的关系数据库管 理 3. 典型的开放式数据库管理 4. 完善的帮助功能 5. 利用Excel整理数据 6. 拥有大量的内置函数 7. 提供了许多宏 8. 方便的网络功能,2.3 Access 2002 的新增功能,1. 更友好的系统界面 2. 任务窗格 3. 数据库转换工具 4. 数据透视表视图和数据透视图视图 5. 数据库自动压缩功能 6. 改进了访问功能,2.4 Access 的基本操作,2.4.1 Access 的启动和退出,启动Access和启动Word的方法一样,有3种:(1)双击桌面上的Access图标。 (2)单击任务栏上的“开始”按钮,在弹出的菜单中选“程序”项,在弹出的级联菜单中单击“Microsoft Access”。 (3)双击Access数据库文件(建议尽量不用此法)。 用前两种方法启动Access 2002就打开了 Access主窗口(下页)。该窗口的右侧是任务窗格的“新建文件”模式。,2.4.1 Access 的启动和退出(续一),2.4.1 Access 的启动和退出(续二),用第3种方法启动Access后就立即打开了该数据库文件,并打开该数据库的“数据库”窗口(下图中的内窗口)。,2.4.1 Access 的启动和退出(续三),Access主窗口和“Word”窗口很相似,有标题栏、菜单栏、工具栏、工作区和状态栏。 Access工作界面的工作区内可以显示包括“数据库”窗口在内的各种子窗口。 菜单栏下面是“数据库”工具栏。 “数据库”窗口中工具栏的按钮自左至右分别是:打开、设计、新建、删除、大图标、小图标、列表、详细信息。前4个按钮用来打开、设计、新建或删除数据库的对象,后4个按钮用来选择对象的显示方式。 退出Access和退出Word的方法完全相同。,2.4.2 使用联机帮助,Access2002有四种获取帮助的方法。 一、使用Office助手 打开Office助手气球和助手图标有两种方法: (1)单击工具栏上的“Microsoft Access帮助”按钮; (2)选“帮助”菜单项,在其下拉式菜单中单击“Microsoft Access帮助(H) F1”项。,右图的助手气球中间的对话框让用户输入问题,下部有“选项”和“搜索”两个按钮。,2.4.2 使用联机帮助(续一),在助手气球中输入想问的问题后单击“搜索”按钮(或按Enter键),则助手气球中就出现关于该问题的几个搜索主题和“请看下一页”按钮(下图)。,2.4.2 使用联机帮助(续二),助手图标和助手气球可分别隐藏(关闭)。 单击上页图中的某搜索主题(或前面的指示灯),就打开了显示该主题的“Microsoft Access帮助”窗口,见2.4.2(续五)中图。 单击“选项”按钮就进入了下页图所示的“Office助手”对话框。若选中“选项”选项卡就可以进行有关功能的设置。若选中“助手之家”选项卡则可以选择Office助手形象。,2.4.2 使用联机帮助(续三),2.4.2 使用联机帮助(续四),二、使用Microsoft Access帮助 上页图中的“响应F1键”选项的含义是:若选中该项,按F1就打开2.4.2图所示的助手气球;若取消该选项,按F1就打开下页图所示的“Microsoft Access帮助”窗口;该窗口有“目录”、“应答向导”和“索引”3个选项卡。 如果在窗体或报表的“设计”视图选中具体控件后按F1,则显示这类控件的说明,如2.4.2(续七)图所示。,2.4.2 使用联机帮助(续五),“Microsoft Access帮助”窗口的左窗格显示目录、提问框或关键字(分别对应三个选项卡),右窗格显示与左窗格选中项相应的说明内容。,本页图中左窗格选中的是“关于设计数据库”,右侧就是其说明内容。,2.4.2 使用联机帮助(续六),三、使用“键入需要帮助的问题” 这是Access 2002的新增功能。在Access主窗口的菜单栏右边有“键入需要帮助的问题”框。在这个框中输入主题词就可以得到帮助。如果输入:数据库,然后按Enter键就出现关于数据库的主题列表(右下图)。,这个主题列表中列出了和数据库有关的问题,单击其中的“关于设计数据库”,就打开了上页图所示的“Microsoft Access帮助”窗口。,2.4.2 使用联机帮助(续七),四、使用“这是什么?” 在“帮助”中单击“这是什么?”,鼠标变成箭头和问号组合的形状,然后将鼠标移到需要解释的主题处单击,就会显示关于该主题的说明。下图就是在“数据库”窗口使用“这是什么?”后单击“窗体”显示的该主题的说明。,2.5 Access 数据库设计,表的设计是数据库管理系统最基础、最重要的工作。 表设计的好坏对数据库管理系统的功能有决定性的影响。 数据库中表的设计主要考虑这两个方面:一是整个管理系统的所有表中的数据要共享性高、冗余度小、占用尽可能小的存储空间;二是能方便维护表中的数据和快速地从表中获取数据。,2.5.1 数据库中表的设计方法,2.5 (续一),描述被参照关系和参照关系的表分别称为主表和子表。 主码和外码在Access数据库中称为主键和外键。 本书将仅含主键、不含外键的表称为基础表(包括主要用于编码的代码表),将含外键的表称为基本表,将由基础表和基本表生成的表称为生成表。 基础表和基本表是数据库设计的重要内容,它们的数据可以直接维护。生成表不是数据库直接设计的表,它的数据由查询生成,不应直接维护。,2.5 (续二),Access数据库表的设计方法如下: 1进行系统分析。 2提炼出将要作为数据库中表的字段。确定字段的原则是:表中的字段(即属性,将在2.6.1节介绍)应该是该管理事务所必须的、独立的字段。所谓独立包括两方面含义:(1)该字段是不能再分割的;(2)该字段不依赖于其它的字段。 3根据数据库管理的要求增加必要的字段。尤其是对有限数据集合的字段应该增加编码字段。,2.5 (续三),4设计数据库所必须的表。设计表的基本原则是:(1)凡是有限数据集合应单独设计一个表(基础表);(2)除作为表间联系的主键和外键,不同的表中不能包含重复的字段;(3)表中的字段必须是直接取决于该表描述的实体;(4)定义表的主键;原则上每一个表都应定义主键。 5确定表间关系。只有确定了表间关系才算是完成了表的设计。通常都是在系统分析的基础上对表进行初步设计,以后还需要经过几次循环,反复修改才能得到理想的设计。还要考虑的一个问题是系统的可扩充性。,2.5.2 学生管理数据库表的设计,本书所用的“学生管理”数据库的功能应包括以下几个方面(学期成绩=平时成绩0.3考试成绩0.7 ): ()学生选修课程和考试成绩维护(包括输入、修改和删除)。 ()按学号查询学生选修的课程和考试成绩 ()按课程查询选修的人数。 ()按班级或个人或课程对成绩进行排序、筛选、统计和查询。 ()按班级打印学生考试成绩表。 ()按个人打印成绩通知单。,2.5.2 (续一),其它需求有: ()对学生的基本情况进行查询,包括学生的学号、姓名、性别、出生年月日、身高、所在班级、家庭所在地、家庭人均月收入等。 ()对班级人数进行统计、查询。 ()打印班级学生名单。 根据管理的实际需要还应该补充以下功能:学生、课程和学生选课及成绩等基本信息的输入、修改、删除和查询。,2.5.2 (续二),根据问题的需求,如下字段是必需的:学号、姓名、性别、出生年月日、所在班级、家庭所在地、家庭人均月收入、课程名称、平时成绩和考试成绩等字段。但班级人数、课程选修人数、学期成绩等统计数据不能作为字段。 如果只用一个表把上述所有字段都包括进去在理论上是可以的,但是这样处理会引起许多问题。因为每个学生都可以选修多门课程、每门课程也都可以有多人选修。仅用一个表势必要将每个学生的学号、姓名、性别、出生年月日、所在班级、课程名称等内容多次重复输入,既费时费力、占据大量的存储空间,又可能引起输入数据的不一致。,2.5.2 (续三),根据以上分析,可考虑用两个表:将不涉及选课的个人信息和仅与选课有关的信息分别设计成“学生情况”和“选课及成绩”两个表: 学生情况,含学号、所在班级、姓名、性别、出生年月日、身高、家庭所在地、家庭人均月收入、是否团员等9个字段; 选课及成绩,含学号、姓名、课程名称、平时成绩和考试成绩等5个字段。 这两个表通过学号建立联系。 这个方案存在的问题。,2.5.2 (续四),设计成个表(花括号中是各字段的数据类型和长度(将在2.7.1节介绍),下同)的方案: 班级简况,含班级代号文本,5、班级名称文本,8两个字段。 学生情况,含学号文本,7、班级代号文本,5、姓名文本,6、性别文本,1、出生年月日日期/时间、身高(cm)数字,字节、是否住宿文本,1、家庭所在地文本,4、家庭人均月收入货币、是否团员是/否等9个字段。 课程档案,含课程号文本,4、课程名称文本,16、总学时数字,字节3个字段。,2.5.2 (续五),选课及成绩,含学号文本,7、课程号文本,4、平时成绩数字,字节、考试成绩数字,字节、考试日期日期4个字段。 下图是在Access数据库中对这个表间关系的表达。其中两个表间关系连线两端的“1”和“”表示实施了参照完整性。,2.5.3 教工管理数据库表的设计,本书所用的“教工管理”数据库的功能应包括这几个方面: (1)教师任课情况和教学效果维护(包括输入、修改和删除)。 (2)按教工编号查询教师所任的课程和教学效果。 (3)按课程查询任课教师。 (4)按技术职称或文化程度对教工进行排序、筛选、统计和查询。 (5)按姓名打印教师任课情况表。 (6)按部门打印教工个人情况表。,2.5.3 (续一),其它需求有: ()对教工的基本情况进行查询,包括教工的教工编号、姓名、性别、出生年月日、技术职称、文化程度、月工资、家庭电话等。 (2)对部门人数进行统计、查询。 (3)打印部门教工名单。 根据管理的实际需要还应该补充以下功能:教工、课程和任课情况等基本信息的输入、修改、查询和删除。,2.5.3 (续二),经过和学生管理数据库表的设计类似的分析、设计过程,可以得到包括以下7个表的一种设计方案。 部门简况,含部门代号文本,3、部门名称文本,6、办公地点文本,63个字段。 文化程度编码,含文化程度编码文本,2、文化程度文本,6两个字段。 技术职称编码,含技术职称编码文本,2、技术职称文本,6两个字段。 教学效果编码,含教学效果编码文本,1、教学效果文本,2两个字段。,2.5.3 (续三),教工情况,含教工编号文本,5、部门代号文本,3、姓名文本,6、性别文本,1、出生年月日日期/时间、技术职称编码文本,2、文化程度编码文本,2、婚姻状况文本,2、基本工资货币、奖金货币、家庭电话文本,12等10个字段。 课程档案,含课程号文本,4、课程名称文本,10、总学时数字,字节3个字段。 任课情况,含职工编号文本,7、课程号文本,4、教学效果编码文本,13个字段。,2.5.3 (续四),下图是Access数据库对这些表间关系的表达。,2.5.3 (续五),【说明】 (1)对于同一个实际问题可以有不同的设计方案。但是,必须依据第1章介绍的数据库的基本原理进行分析,按规范化的要求设计表。 (2)对班级名称、部门名称、课程名称,以至于技术职称、文化程度、教学效果等有限数据集合字段进行编码是提高数据的共享性、减小它的冗余度的有效措施。,2. 数据库对象,Access 数据库是数据和对象组成的集合。 Access数据库对象包括表、查询、窗体、报表、页、宏和模块等。 用Access新建或打开一个数据库会同时打开一个数据库窗口(下页图)。 “数据库”窗口显示已打开的数据库包含的所有对象,并提供对这些数据库对象进行操作的方法。 Access“数据库”窗口左侧是“对象”框,右侧是一个列表框。当在对象框选定某对象类型时,右侧列表框显示和左侧选定对象类别相应的创建该类对象的快捷方式和已建好的具体对象。,2. 数据库对象(续),2.6.1 表,表即数据表,是Access数据库中唯一存储数据的对象,当然就是数据库最基本、最重要的对象。 表的每一列表示同种类型的数据,称为一个属性或字段,字段名显示在表的顶端(第一行)。 表的每一行(第一行除外)称为该表的一个记录。,表由多个记录组成。也存在没有记录的空表。,2.6.2 查询,任何一个数据库仅有表是远远不够的。人们往往需要或是在一个表中查找部分字段的内容,或是从多个表中查找某些字段的内容,而且可能带有各种特定的要求。 检索数据就是在适当的范围内、按某些条件、以某种方式在一个或多个表中查找有关记录的指定字段(或字段的函数)。 查询是检索数据(即实现上述查找)的工具,是Access数据库很重要的对象。查询还可以在表中插入、删除和修改数据,也可以生成新表。,2.6.2 查询(续一),在“数据库”窗口打开“学生管理”数据库,单击“对象”框中的“查询”,再双击列表框中的“江苏的学生”(一个查询),系统会弹出如右图所示的结果。,该查询的结果相当于一张表,它包括学号、姓名、家庭所在地3个字段,含有9个记录。但这些内容实际上是存在“学生情况”表中的,执行查询仅是“看到”而已。,2.6.2 查询(续二),因为一般的查询和表一样有字段、记录等概念,更重要的是查询和表有着几乎同样的功能,因而在许多场合把查询和表同等看待。在同一个数据库中查询和表不能同名。本书用数据源(或记录源)泛指表或查询。 查询既可以建立在表上,也可以建立在其它查询上。 查询的功能很强大,也非常灵活,其在数据库中的地位甚至超过表。一个数据库管理系统中查询的功能强弱直接影响该系统的性能。,2.6.3 窗体,窗体是用户与数据库之间进行交互的对象。在一个完善的数据库管理系统中,用户都是通过窗体对数据进行各种操作,而不是直接对表、查询进行操作的。通过窗体还可以控制应用程序的运行过程,因而窗体是Access最灵活的对象。 窗体中的各种按钮、列表框、菜单等称为控件。在窗体中适当安排一些控件可以增强和完善窗体的功能。 大多数窗体都与数据源绑定,这些窗体中的大部分内容来自它的基表。,2.6.3 窗体(续一),在“数据库”窗口打开“学生管理”数据库,单击“对象”框中的“窗体”,再双击列表框中的“向导创建学生情况纵栏式”(一个窗体),系统会出现如下图所示的结果。,2.6.3 窗体(续二),下图是“罗斯文”数据库中的“雇员”窗体。,2.6.4 报表,一个好的数据库系统往往需要以一定的格式将数据打印输出,报表正是实现这种功能的有力工具。 打印输出的报表易于阅读和保存,同时也具有分析、汇总的功能。 报表还可以在包括Internet在内的互连网上发布。 报表只用于输出数据,不能对数据做任何修改,这是和窗体的本质区别。,2.6.4 报表(续一),下图是“学生管理”数据库中的一个报表。,2.6.5 宏,Access对各种数据库对象的操作方法有多种,这些方法在多数情况下是方便有效的。但是,很多时候操纵的对象较多,操作比较复杂。完全靠人工操作效率很低,又容易出错。宏可以将数据库中各种对象连接起来,从而大大提高效率。 宏是指一个或多个操作的集合,其中每个操作实现特定的功能。 宏是组织整个数据库的重要工具之一。,2.6.6 页和模块,页的全称是数据访问页,是链接到某个数据库的Web页。在数据访问页中可以浏览、添加、编辑和操纵存储在数据库中的数据。 有些数据库管理系统的功能需求很多,对数据库的各种操作更加复杂,有些功能用宏无法实现。为此,Access嵌入了功能强大的数据库编程语言Visual Basic for Applications,简称VBA。 模块就是Access利用VBA开发出来的程序段。,2.6.7 各种数据库对象间的关系,概括地说,各种数据库对象的作用是:表用来存储数据,查询用来检索数据,窗体用来查看和维护数据,报表用来打印数据,宏用来提高工作效率。 所有数据库对象通过关系、宏及模块联系起来。表间关系主要应用在查询中。窗体和报表往往以表和查询为基础。宏和模块是Access的强化工具,能进一步扩展数据库的功能,提高数据库管理的自动化程度和效率。,2.6.7 (续一),选择一个具体的数据库对象后单击工具栏上的“属性”按钮,系统就弹出该对象的属性对话框,在该对话框内可以设置该对象的各种属性。 利用“数据库”窗口工具栏靠右边的大图标、小图标等4个按钮可以切换不同的查看方式。 在“数据库”窗口中可以对数据库对象进行删除、复制、重命名等操作。其方法和Word中对文件的删除、复制、重命名等操作基本相同。,2.7 数据类型与表达式,数据类型和表达式都是数据库非常重要的内容。正确使用数据类型是设计好表的前提。 灵活运用表达式可以设计高质量的表和丰富多彩的查询,因而也就能够设计出功能强大的数据库管理系统。,2.7.1 数据类型,Access数据库为字段提供了10种数据类型,它们的用法和所占存储空间大小如下。 1文本型(Text):用于文本或文本与数字的结合,最长为255个字符(字节),默认值是50。在Access中,每一个汉字和所有特殊字符(包括中文标点符号)都算作一个字符。 货币型(Currency):用来存储货币值,占8个字节,在计算中禁止四舍五入。,2.7.1 数据类型(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论