1、第5章数据库技术及Access桌面系统,本章主要内容,数据库技术基础 数据库模型与设计 创建Access数据库 创建Access数据库表 Access数据查询 Access窗体功能 Access数据报表,5.1 数据库技术基础,数据技术的发展 数据库系统 常见的数据库管理系统,信息与数据,信息是指现实世界事物的存在方式或运动状态的反映。具体地说,信息是一种已经被加工为特定形式的数据,这种数据形式对接收者来说是有意义的,而且对当前和将来的决策具有明显的或实际的价值。在信息社会中,信息是一种资源,其重要性可以与物质和能量相提并论,是企业赖以生存和发展所必须的。,数据是将现实世界中的各种信息记录下的
2、、可以识别的符号,是信息的载体,信息的具体表示形式。数据可用多种不同的形式来表示一种同样的信息,信息不随它的数据形式不同而改变。数据的表现形式多种多样,不仅有我们熟知的数字和文字,还可以有图形、图像、声音等形式。,信息与数据的联系 数据是信息的符号表示,或称载体; 信息是数据的内涵,是数据的语义解释; 数据是符号化的信息; 信息是语义化的数据。例,一幅图像数据彩色位图点阵信息微软产品,数据处理,数据处理是指对数据进行一系列收集、加工、储存、合并、分类、计算、检索、传输等操作过程。在当今的信息社会,我们所说的信息处理实际上就是利用计算机进行数据处理的过程。该过程包括:数据的采集、整理、编码和输入
3、,有效地把数据组织到计算机中,由计算机系统对数据进行一系的加工、储存、合并、分类、计算、检索、传输、输出等操作过程。所以信息处理也称为数据处理。,数据处理的四个阶段,人工处理阶段(50年代中期以前) 背景: 计算机主要用于科学计算。 外存只有磁带、卡片、纸带等,没有磁盘等直接存取设备。 没有操作系统,没有数据管理软件。 特点: 数据不保存 应用程序管理数据 数据面向程序,数据不能共享 数据不具有独立性,管理形式:数据和程序是一一对应的,即一组数据只能用于一个程序。,文件系统阶段(50年代后期-60年代中期) 背景: 计算机不但用于科学计算,还用于管理。 外存有了磁盘、磁鼓等直接存取设备。 有了
4、专门管理数据的软件,一般称为文件系统,包括在操作系统中。 特点: 数据以文件形式长期保存。按名访问,按纪录存取; 文件形式多样化 (索引文件、链接文件、直接存取文件、倒排文件等); 一个数据文件对应一个或几个用户程序,还是面向应用的,具有一定的共享性; 通过文件系统提供存取方法,支持对文件的基本操作(增、删、改、查等),用户程序不必考虑物理细节。数据的存取基本上以记录为单位; 数据与程序有一定的独立性,因为数据的逻辑结构与存储结构由文件系统进行转换,数据在存储上的改变不一定反映在程序上。,管理形式:通过文件系统,程序和数据文件之间可以组合,即一个程序可以使用多个数据文件,多个程序也可以共享同一
5、个数据文件。,文件系统的缺点: 数据冗余 数据不一致性 数据独立性差 并发访问异常,数据库系统阶段(60年代后期-70年代中期),背景: 计算机管理的数据量大,关系复杂,共享性要求强。 外存有了大容量磁盘,有了光盘。 软件价格上升,硬件价格下降,编制和维护软件及应用程序成本相对增加,其中维护的成本更高。数据库观点:数据不是依赖于处理过程的附属品,而是现实世界中独立存在的对象。,管理形式 :数据库管理系统(DBMS)操纵数据库中的数据,对数据库进行统一控制,高级数据库阶段( 70年代中期以来),20世纪70年代中期以来,随着计算机技术和应用的不断发展,数据处理的规模也迅速扩大,在常规数据库系统技
6、术应用的基础上,又出现了一些新的数据处理方式高级数据库技术。主要有:分布式数据库、面向对象数据库、数据仓库及智能型知识数据库等。,数据库系统,数据库系统组成,数据库系统 DBS(DataBase System)通常由五部分组成:数据库 DB(DataBase) 硬件 Hardware 软件 Software 数据库管理系统 DBMS(DataBase Management System ) 数据库管理员 DBA(DataBase Administrator),数据库系统组成示意图:,数据库系统结构,数据库系统结构是一个多极结构,一方面能方便地存储数据,同时又能高效安全地组织数据。现有的数据库系
7、统都采用三级模式和二级映射结构。 三级模式: 外模式(Sub-Schema) 又称子模式:用户的数据视图。是数据的局部逻辑结构,模式的子集。 模式(Schema):所有用户的公共数据视图。是数据库中全体数据的全局逻辑结构和特性的描述。 内模式(Storage Schema) 又称存储模式:又称存储模式。数据的物理结构及存储方式。 二级影射: 外模式/模式映射:定义某一个外模式和模式之间的对应关系。 模式/内模式映射:定义数据逻辑结构与存储结构之间的对应关系。,数据库系统结构示意图:,常见的数据库管理系统,FoxBASE Foxpro Access SQL Server Oracle,5.2 数
8、据模型,数据描述 数据模型,数据描述,将现实世界中存在的客观事物属性及其相互间的联系进行概念化和抽象处理,然后以数据的形式存储到计算机。这是一个逐级转变的过程,是从现实到概念再到数据的过程。,三个世界现实世界:客观事物及其联系。信息世界:对现实世界进行记录、归纳和整理,组织成格式化信息。机器世界:格式化信息经过编码和加工,成为计算机能够识别和处理 的数据。两个模型概念模型:是按用户的观点对信息进行格式化处理(建模),是现实 世界到信息世界的抽象,与计算机无关。数据模型:面向计算机,将格式化的信息转换为计算机能够识别和处 理的数据,是信息世界到机器世界的抽象。,两个模型之间的映射关系,概念模型的
9、一些术语实体:客观存在并相互区别的事物。如:具体的人、事、物;抽象的学生、选课等。实体集:性质相同的同类实体的集合。如:所有的学生、所有的课程。实体型:用实体名及其属性名集合来抽象描述同类实体。如:学生(学号,姓名,年龄,性别,)。属性:实体所具有的某一特性。分为:属性的型,如学生的学号、姓名;属性的值,如 2005001、张三。关键字:能够唯一区分不同实体的属性或属性组。联系:实体内部属性之间的联系,不同实体之间的联系。一对一联系(1:1)一对多联系(1:n)多对多联系(m:n),概念模型的描述方法 - E-R图E-R图,又称E-R模型(Entity-Relationship Model),
10、可以非常直 观地表达出实体及实体之间存在的有机联系,是建立概念模型、描述概念世界的有力工具。 E-R图的三要素:实体型 用矩形框表示。属性 用椭圆框表示。联系 用菱形框表示(联系往往也能派生出属性)。,数据模型,E-R模型致力于概念建模,能很好地模拟现实世界的情况。但要实现E-R模型数据信息在计算机中的数据表示,还须经过E-R模型到数据模型的若干转变过程。 数据模型是将E-R图表示的概念世界的信息在数据世界中数据化的结果。它由数据结构、数据操作、和完整性约束三部分所定义。,三种传统数据模型层次数据模型 网状数据模型 关系数据模型与层次模型、网状模型相比,关系数据模型以集合论和数理逻辑作为理论基
11、础,能描述多对多联系,存取效率较高,结构简单,操作灵活,方便学习和使用。但关系模型难以描述非结构化数据。,关系数据模型,关系二维表如表所示,一个关系的逻辑结构是行列组成的一张二维表。其中每一列称为一个字段,如“学号”、“姓名”等;每一行称为一条记录,如学号为“20050505”的这一行数据。注意,关系二维表为内部不可再分的表。,关系术语关系:一个关系就是一张二维表,每个关系有一个关系名。如“学生”关系。 元组:关系中的一行是一个元组,对应表中一条记录。 属性:表中列称为属性,每个属性对应表中的一个字段。如“学号” 等。 元数:又称目数。一个关系中的所含属性的个数。 关键字: 又称码或主键。一个
12、关系中能唯一标识每个元组的属性集合。如学生关系中的“学号”属性。 关系模式:对关系中所含属性的集合命名。记为R (A1,A2,An )。如:学生关系模式:学生(学号,姓名,性别,年龄,)。 关系数据库:关系模式及其各关系当前值的集合。,关系运算关系数据库记录信息查询时,根据应用的需要,会进行一定的关系运算。关系数据模型是以关系数学理论为基础,其运算的操作对象和操作结果也均为关系二维表。关系的基本运算有两种:传统集合运算 有并、交和差等运算。专门关系运算 有选择、投影和连接等运算。,需要指出的是,概念模型数据转换为关系模型数据而得到的关系二维表还应当进行必要的优化处理和规范化分析。只有这样,才能
13、提高关系的质量,为构造一个高效的数据库应用系统打下基础。,5.3 创建数据库,Access的界面 创建数据库,AccessXP界面,AccessXP的特点 存储文件单一 (.mdb文件) 操作简便、设计过程自动化 兼容多种格式数据 具有较好的集成开发功能 具有Web网页发布功能 可以构建C/S模式服务AccessXP的系统结构Access是通过其内部的各种数据库对象来组织和管理数据。Access数据库由数据库对象和组组成。其中的对象又分为7类,分别是:表、查询、窗体、报表、数据访问页、宏及模块。,AccessXP的数据库窗口及对象关系示意图,AccessXP的数据库设计流程,创建数据库,创建数
14、据库AccessXP数据库的创建都 是在“任务窗格”窗口进行选 项操作的。 创建空的数据库 使用模板创建数据库 数据库的基本操作 打开数据库 关闭数据库,5.4 数据库表,创建表 修改表的设计 表的操作,表创建,表的创建过程 设计表结构定义字段及其属性、定义主键和定义表间关系等操作。 输入相关的记录数据 表的创建方法 使用设计器 通过数据表视图输入数据 使用“向导”功能 Access的数据类型 Access常用的的数据类型主要有九种。,使用表设计器创建 规划表结构(如”学生”表),设计器窗口,设计步骤 输入表的字段名称、数据类型和说明; 设置主键; 设置字段其它属性; 命名保存表结构设计。表对
15、象保存后会以 图标列表显示。一些主要属性简单说明:字段大小 规定文本字符数或数字的类型和大小。小数位数 规定数字或货币数据的小数位数。格式 指定数据的显示格式。输入法模式 指定文本输入时的输入法状态。输入掩码 指定数据的输入格式。设置为“password”,可以获得密码效果。标题 规定数据表视图或窗体中的字段标题显示。默认值 添加新记录时,自动输入的值。有效性规则 用于设计输入的条件表达式。有效性文本 指定输入数据违反上述有效性规则时的提示信息文本。必填字段 指定该字段是否必须输入。允许空字符串 规定文本数据数否可以输入空字符串。索引 指定字段是否索引及索引方式。字段索引有利于加快数据检索。,
16、通过数据表视图直接输入数据创建,系统会根据入数据的特点自动确定表中字段的数据类型。否则,缺省均为文本型,长度为255。,使用“向导”功能创建,除了介绍的三种表结构的创建方法以外,Access中还提供了“导入表”与“链接表”这两种功能。使用这两种功能,可以实现外部数据的导入或链接。 表结构(空表)创建完之后,就要向表中输入记录数据。,修改表的设计,复制、删除和重命名表对象 在AccessXP的数据库窗口进行表对象的复制、删除和重命名操作。 修改字段名、字段类型及字段属性 一般要在表设计器中进行修改字段名、字段类型及字段属性的操作。 插入、删除和移动字段 可以在其设计视图(表设计器)或数据表视图两
17、个环境下进行字段的插入、删除和移动操作。,表的操作,记录数据的追加、修改和删除 数据表的外观更改 调整行高和列宽 冷冻和解冻列 隐藏列 数据的查找、排序与筛选 数据查找 数据排序 数据筛选,5.5 数据查询,查询设计 选择查询 参数查询 操作查询,查询设计,查询是指能根据用户的不同需要返回或操作用户数据,并且以对象形式存储在数据库中的命令。本质上是SQL命令。通过查询可以方便地组织用户数据,为窗体、报表等其它对象提供数据源或操作源。 查询分类Access的查询,根据其功能可以分为: 选择查询 参数查询 交叉表查询 操作查询 SQL查询 其设计均可以通过查询向导或查询的设计视图(设计器)来进行。
18、,查询设计视图(设计器),选择查询,根据指定的准则,从一个表(查询)或多个表(查询)中获取数据并显示结果。此外,还可以使用选择查询进行记录分组,以完成计数、求和等一些统计运算。 选择查询分类单表无条件 单表有条件 复表无条件 复表有条件 选择查询设计步骤 打开查询设计器 ,选择一个表(查询)或多个表(查询)并添加到设计器显示区 ; 按照需要,在设计器设计区“字段”行位置添加查询字段名称; 按照需要,在设计器设计区“排序”行和“显示”行位置进行设置; 按照需要,在设计器设计区“准则”行及以下位置进行准则条件设计; 命名保存查询。选择查询对象保存后会以 图标列表显示。,在设计复表查询时,添加到设计
19、器显示区的表或查询之间必须要建立联接关系,否则会产生大量的无用组合记录。联接形式有三种: 等值联接 左联接 右联接 构造准则条件 可以直接键盘输入或在“表达式生成器”对话框中进行构造。 普通运算符 加(+) 减(-) 乘(*) 除(/) 等于(=) 不等于() 大于() 大于等于(=) 小于) 小于等于(=) 与(And) 或(Or) 非(Not) 特殊运算符 Between A And B In(A,B,C,.) Like A 查询中可以指定多个准则条件同一准则行输入的准则,相互间是“与(And)”的关系;不同准则行输入的准则,相互间是“或(Or)”的关系。,统计计算 水平方向的计算字段计算
20、字段是在设计器设计区的“字段”行设计计算表达式,从而构成计算字段。其设计格式为“标题名: 表达式”。 竖直方向的总计查询 总计查询设计是在设计器设计区增加名为“总计”的行来选择选项进行。“总计”行选项内容有: Group By 指定为分组字段。Where 指定分组前的字段数据筛选条件。Expression 创建包含合计函数的计算字段。Sum 分组求和。Avg 分组求平均值。Count 分组计数。,参数查询 参数查询就是准则条件式里含有参数的查询。设计时,要求将作为参数的变量名用一对方括号()括起。参数查询打开时,都会弹出“输入参数值”对话框,要求提供参数的确切值。而一旦参数值给定确认后,该参数
21、查询就会依据准则条件进行记录选择。,实际应用中是不会以这种形式提供参数值的,而是将参数定义为对窗体上某个控件值的引用。这样,当窗体上该控件输入值后,就可以传送到对应的引用参数内,从而实现参数查询的有效记录数据返回。,操作查询,操作查询用于对已有的数据表实施追加记录、修改记录、删除记录三类操作或创建一个新表操作。 追加查询 单一新纪录追加 源表纪录追加追加查询对象保存后会以 图标列表显示。 更新查询 常量更新 字段变量更新更新查询对象保存后会以 图标列表显示。 删除查询 删除查询对象保存后会以 图标列表显示。,操作查询设计时,需要将选择查询设计器改变为追加查询设计器、更新查询设计器或删除查询设计
22、器,见上图示。实际应用中还会遇到条件追加、条件更新和条件删除的要求。这时,只需在对应的“条件”行里构造准则表达式即可。 查询对象的调用一般安排在窗体及控件的事件处理中,主要以宏调用或VBA代码调用两种形式实现操作查询的运行。,5.6 窗体功能,使用自动窗体 使用向导创建窗体 在设计视图中创建窗体,窗体是用户与Access应用程序之间的接口。在窗体上可以通过添加并设置控件,来完成数据的输入、修改或删除等操作。同时,在窗体的模块代码区进行VBA编程,可以实现一些程序控制。 窗体类型 纵栏式 每次只纵向排列显示表或查询的一条记录。 表格式 一行显示一条记录,每次可以显示表或查询的多条记录。 组合式
23、含有子窗体和数据表窗体的窗体。 图表式 将记录数据以图表形式显示。 数据透视表 可以进行计算的交互式表显示窗体。 窗体功能 无数据显示窗体 窗体界面不显示表或查询记录数据,只安排一些固定信息显示及控件操作。如面板类窗体(主画面)及对话框类窗体属于这种无数据显示窗体。,有数据显示窗体 窗体界面会显示表或查询的记录数据。如进行记录数据追加、修改和删除的数据维护窗体属于有数据显示窗体。 对于有数据显示窗体设计,则必须进行窗体的数据源的设定。具体来讲,是要完成两次“挂接”操作。,不同字段类型数据,应当选择合适的绑定控件去“挂接”和显示。,窗体创建 使用自动窗体 使用向导创建窗体 在设计视图中创建窗体,
24、使用自动窗体创建,操作步骤 选择数据源 ; 选择“自动窗体”功能 。,使用向导功能创建,操作步骤 打开“窗体向导”对话框 ; 按照提示要完成窗体布局确定(即选择创建窗体类型)、外观样式选择及窗体标题确定并命名保存窗体对象。,使用设计视图创建,设计视图 窗体页眉用于显示一些标题信息。 主体用于显示记录数据等主要信息。 窗体页脚用于显示落脚信息或布置操作按钮。设计时,是在设计视图网格区域添加各种控件,完成窗体界面的数据显示和操作功能。,工具箱,工具箱中常用控件标签 用于显示固定文字信息。如字段标题等。 文本框 用于输入、编辑和显示文本。 选项组 用于对选项按钮分组,实现单选效果。 切换按钮 具有弹
25、起和按下两种状态的命令按钮。 单选钮 具有选中或不选中两种状态。一般成组使用,一次选一个。 复选框 具有选中或不选中两种状态。一般成组使用,可多选或不选。 组合框 显示一个文本框和一个下拉列表。 列表框 显示一个可滚动的数据列表。 命令按钮 用来执行命令。 图像 用于显示固定图像信息。 未绑定对象框 用于安排一些非绑定的OLE对象。 绑定对象框 用于安排绑定到的OLE对象类型字段数据。如照片等 分页符 用于设计分页窗体。 选项卡 用于创建多页控件。 子窗体/子报表 用于添加“子窗体”。 直线 用于绘制直线。 矩形 用于绘制矩形。 其他控件 用于使用其它ActiveX控件。,控件分类 绑定控件
26、可以在窗体上显示字段数据的一类控件 文本框 常作为“文本”、“数字”、“货币”、“日期”及“备注”类型字 段数据的显示。复选框 常作为“是/否”类型字段数据的显示。绑定对象框 常作为“OLE对象”类型字段数据的显示。 非绑定控件 在窗体上不显示字段数据的一类控件 标签 用于显示固定文字信息。图像 用于显示固定图像信息。非绑定对象框 用于显示非绑定的OLE对象信息。,属性窗口 格式 用于外观属性设置 数据 用于绑定控件的数据属性设置 事件 用于控件操作属性(事件)设置 其他 用于其他属性设置,设计视图创建窗体主要步骤 创建一个空白窗体 添加控件 设置数据源 设置窗体及控件属性 命名保存 设计好的
27、窗体可以命名保存。保存后窗体对象会以 图标列表显示。,计算控件设计 有数据显示窗体设计中,绑定控件的第二次“挂接”操作是设置控件的“控件来源”属性。一般情况下,是直接从选项字段列表中选择显示字段来设定。但也可以设定控件的“控件来源”属性为一个等号“=”开头的计算表达式,这就构成计算控件。如可以利用计算字段(“=Year(Date()-年龄”)实现由“年龄”字段值来计算并显示其出生年。,复杂窗体设计 子窗体 分页窗体 选项卡窗体,窗体修改 控件大小、位置及对齐方式调整 大小调整 位置调整 对齐方式调整 设计命令按钮 命令按钮的“单击”事件属性设置: 设置为已经创建好的宏对象 设置为 VBA代码
28、补充窗体设计添加“直线”控件和“矩形”控件以丰富窗体内容、美化窗体设计。,5.7 数据报表,使用自动报表 使用报表向导 在设计视图中创建报表 打印报表,报表用于格式数据的打印输出。同时,在报表中还可以进行多极汇总、添加图片和图表等操作。窗体可以输入、输出数据并可以进行交互操作,而报表只用于输出数据,没有交互功能。 需要指出的是,报表对象创建之前,应在Windows系统里设置好一台打印机(虚拟打印机亦可)。否则,将无法正常进行报表创建工作。 报表类型 纵栏式 每次只纵向排列显示表或查询的一条记录。 表格式 一行显示一条记录,每次可以显示表或查询的多条记录。 组合式 含有子报表的报表。 图表式 将
29、记录数据以图表形式显示。 标签式 以标签形式显示。 报表功能 无数据显示报表 报表不显示表或查询记录数据,只安排一些固定信息显示。这种类型报表不常用。,有数据显示报表 报表会显示表或查询的记录数据。如进行记录数据追加、修改和删除的数据维护窗体属于有数据显示窗体。 对于有数据显示报表设计,则必须进行报表的数据源的设定。与窗体设计相同,也要完成两次“挂接”操作。,不同字段类型数据,应当选择合适的绑定控件去“挂接”和显示。,报表创建 使用自动报表 使用向导创建报表 在设计视图中创建报表,使用自动报表创建,操作步骤 选择数据源 ; 选择“自动报表”功能 。,使用向导功能创建,操作步骤 打开“报表向导”
30、对话框 ; 按照提示要完成报表布局确定(即选择创建报表类型)、外观样式选择及报表标题确定并命名保存报表对象。,使用设计视图创建,设计视图 报表页眉只显示在第一页顶部。 页面页眉显示在每一页顶部。 主体用于显示记录数据等主要信息。 页面页脚显示在每一页底部。 窗体页脚只显示在最后一页纪录数据结束位置。设计时,是在设计视图网格区域添加各种控件,完成报表的数据显示功能。,工具箱中常用控件工具箱的控件及分类参见窗体一节内容。 属性窗口,工具箱和属性窗口,设计视图创建报表主要步骤 创建一个空白报表 添加控件 设置数据源 设置报表及控件属性 分组操作 命名保存 设计好的报表可以命名保存。保存后报表对象会以
31、 图标列表显示。,计算控件设计 与窗体设计一样,报表设计中也可以设计计算控件,而且应用广泛。如报表的分组汇总或总的汇总输出、页码的输出等。 设计汇总计算 使用统计函数Sum(求和)、Avg(求平均值)和 Count(计数)。 设计页码输出 使用Page和Pages来帮助设计。,含子报表的报表设计 使用“子窗体/子报表”控件,可以实现关联表信息在一个报表设计画面上的输出,报表修改 控件大小、位置及对齐方式调整 大小调整 位置调整 对齐方式调整 补充报表设计添加“直线”控件和“矩形”控件以丰富报表内容、设计表格线。,打印报表设计好的报表可以预览显示页面的版面内容,快速查看报表的页面布局。,预览打印
32、通过“打印预览”功能可以快速检查报表的页面布局。 打印报表 通过“打印对话框”设置并实施打印。,本章小结,本章基于Access系统简要介绍了数据库原理及一般应用方法。其中,数据库原理部分介绍了数据库的一般原理,内容包括数据库技术基础和数据模型;应用部分则介绍了AccessXP系统开发数据库应用的技术,内容包括Access数据库、表、查询、窗体及报表等对象的设计,同时也对这些对象的不同设计方法进行了分析和总结。当然,受本书篇幅所限,有些内容,如原理部分的关系代数、关系数据库设计理论及SQL语言,应用部分的宏对象、模块对象及数据访问页等,都只是简单提及到、而未做更详细的介绍。本章最后,提供了一些习题供练习使用。,