第8章 数据库技术基础 数据库可以直观地理解为存放数据的仓库,只 不过这个仓库是在计算机的大容量存储器上。 数据库技术研究的问题就是如何科学地组织、 存储和管理数据、如何高效地获取和处理数据。 数据库系统就是指带有数据库并利用数据库技 术进行数据管理的计算机系统。
教学目的 教学重点 要求学生了解数据库的基本概念、数据库中使用的各种数据模型;了解关系模型及关系数据库;掌握Access的基本操作和应用。
教学难点 关系模型的基本概念, Access中查询的创建。 关键词 数据库;数据模型;关系数据库; Access2010
第8章 数据库技术基础 本章主要介绍数据库的基本概念、关系数据库理论以及Access数据库管理系统软件的使用。 8.1 数据管理技术 8.1 数据管理技术 8.2 数据库管理系统 8.3 关系数据库 8.4 Access数据库及其应用
8.1 数据管理技术 8.1.1 数据管理技术的发展 1.人工管理阶段 2.文件系统阶段 3.数据库系统阶段 4.数据管理新技术 8.1.2 数据库系统 数据库系统是指带有数据库并利用数据库技术进行数据管理的计算机系统
8.1 数据管理技术 数据库是为实现一定的目的,按一定的组织方式存储在计算机中的相关数据的集合。 数据库可以直观地理解为存放数据的仓库,只不过这个仓库是在计算机的大容量存储器上。 数据库技术所研究的问题就是如何科学地组织和存储数据、如何高效地获取和处理数据。
长沙的天气预报对长沙地区的人来说就是信息, 但对其它地方不关心长沙天气的人来说就是数据 数据和信息 数据是人们用于描述客观事物的物理符号; 信息是数据中所包含的意义。 信息是经过加工的数据,是对决策者有用的数据。 数据是客观存在的,但信息有一定的主观性。 长沙:明天阵雨,10º~14º 长沙的天气预报对长沙地区的人来说就是信息, 但对其它地方不关心长沙天气的人来说就是数据
信息是经过加工的数据,是对决策者有用的数据。 数据: 未加工的资料 信息: 加工后的结果 试卷难易度分析报告 学生考试成绩 对成绩进行分班统计 数据处理:对各种形式的数据进行收集、存储、 加工和传播的一系列活动的总和
8.1.1 数据管理技术的发展 计算机对数据的管理是指对数据的组织、分类、编码、存储、检索和维护的过程。随着计算机硬件、软件技术和计算机应用范围的发展,计算机数据管理的方式也在不断地改进,而互联网的广泛应用,更促进了新的信息管理技术不断涌现。 人工管理阶段 文件系统阶段 数据库系统阶段 数据管理新技术
各个数据管理阶段中应用程序和数据之间的对应关系 1、人工管理阶段 应用程序1 应用程序2 应用程序n 数据1 数据2 数据n . . 程序中要用到的数据直接写在程序代码里 各个数据管理阶段中应用程序和数据之间的对应关系
2、文件系统阶段 文件 系统 应用程序是数据依赖的。即数据的物理表示方式和有关的存取技术都是在应用程序中要考虑和体现的 应用程序1 应用程序2 应用程序n 物理文件1 物理文件2 物理文件n 文件 系统 . . 应用程序是数据依赖的。即数据的物理表示方式和有关的存取技术都是在应用程序中要考虑和体现的 各个数据管理阶段中应用程序和数据之间的对应关系
各个数据管理阶段中应用程序和数据之间的对应关系 3、数据库系统阶段 1.将相互关联的数据集成在一起 2.统一管理,着眼全局,较少的数据冗余 3.程序与数据相互独立 4.数据可以共享并能保证数据的一致性 应用程序1 应用程序2 应用程序n 数据库 数据库 管理系统 + OS . 各个数据管理阶段中应用程序和数据之间的对应关系
数据库系统阶段的特点 数据不再只针对某一特定应用,而是面向全组织,具有整体的结构性,共享性高,冗余度小,具有一定的程序与数据间的独立性,并且实现了对数据进行统一的控制。 数据管理在数据库系统阶段,经历了层次数据库和网状数据库阶段,发展至20世纪70年代,出现了关系数据库系统,并逐渐占据了数据库领域的主导地位。
4、数据管理新技术 (1)Web数据库技术 (2)数据仓库技术 (3)并行数据库 (4)数据挖掘 Web数据库管理系统是指基于Web模式的DBMS的信息服务,以浏览器/服务器(B/S)模式为平台,将客户端融入统一的Web浏览器,为Internet用户提供使用简便、内容丰富的服务。 数据仓库是面向主题的、集成的、与时间相关的、不可修改的数据集合。典型的数据仓库系统如:经营分析系统,决策支持系统等 并行数据库系统是在集群并行计算环境的基础上建立的数据库系统,通过多个处理节点并行执行数据库任务,提高整个数据库系统的性能和可用性。 数据挖掘是一种新的信息处理技术,是一门涉及广泛的交叉性新兴科学,主要特点是对数据库中的大量数据进行抽取、转换、分析和其他模型化处理,并从中提取辅助决策的关键性数据。
8.1.2 数据库系统(DBS) 数据库系统(DataBase System)是指在计算机系统中引入数据库后的系统构成,是由数据库、数据库管理系统、应用程序、数据库管理员和用户等构成的人-机系统。
数据库系统的组成 DB DBA DBMS 相互有关联关系的数据的集合 管理数据库的系统软件 Computer System 完成某一功能的应用程序1 应用程序2 应用程序n DBAP 1 DBAP 2 DBAP n Computer System
8.2 数据库管理系统 数据库管理系统(DataBase Management System,DBMS)是一种系统软件,负责数据库中的数据组织、操纵、维护、控制、保护和数据服务等,是数据库系统的核心。
DBMS的工作模式 接受应用程序的数据请求和处理请求 将用户的数据请求(高级指令)转换成复杂的机器代码(低层指令) 实现对数据库的操作 从对数据库的操作中接受查询结果 对查询结果进行处理(格式转换) 将处理结果返回给用户
8.2.1 主要功能 3.数据库的运行管理 提供数据控制语言(DCL) 4.数据库的维护功能 1.数据定义功能 数据库数据批量装载 保证数据的安全性、完整性、 多用户对数据的并发使用 发生故障后的系统恢复 4.数据库的维护功能 数据库数据批量装载 数据库转储 介质故障恢复 数据库的重组织 性能监视等 (均由各个实用程序完成) 8.2.1 主要功能 1.数据定义功能 提供数据定义语言(DDL) 定义数据库中的数据对象 2.数据操纵功能 提供数据操纵语言(DML) 操纵数据实现对数据库的基本操 作(检索)和更新(插入、删除和修改)
DBMS面向用户的功能示意图 User DBMS (DBMS依据各种定义对数据库进行管理和使用) (2) User 通过DML语言操纵数据进出数据库 (3) User 通过DCL语言定义数据安全性 (1) User 通过DDL语言定义数据格式 用户定义的数据安全性完整性 谁能访问数据 更新数据有什么要求 … … … … 班级 课程 教师 学期 学号 姓名 成绩 数据格式 (型) 981101 数据库 李四 06秋 01 张三 100 981101 数据库 李四 06秋 02 毛玉 90 981101 数据库 李四 06秋 03 文礼 80 981101 计算机 王五 06秋 01 张三 89 981101 计算机 王五 06秋 02 毛玉 98 981101 计算机 王五 06秋 03 文礼 72 981102 数据库 钱六 05秋 01 肖梅 30 981102 数据库 钱六 05秋 02 龚平 90 981102 数据库 钱六 05秋 03 吴迪 78 数据 (值) User DBMS (DBMS依据各种定义对数据库进行管理和使用) 检查用户合法性 检查数据合法性 按用户要求进行 操作
数据库不仅描述数据本身,而且还描述数据之间的联系 包括数据的完整性检查、安全性检查和并发控制 8.2.2 数据库系统的基本特点 数据库不仅描述数据本身,而且还描述数据之间的联系 数据的结构化 数据的高共享性与低冗余性 数据的独立性 数据的统一管理与控制 数据库系统从整个系统的角度描述数据,使得同一组记录可以被多个应用程序共享使用,从而降低冗余 指数据和应用程序之间彼此独立,不存在相互依赖的关系 包括数据的完整性检查、安全性检查和并发控制
8.3 关系数据库 在数据库技术中,用数据模型的概念描述数据库的结构与语义,对现实社会进行抽象和表示。常用的数据模型有4种:层次模型、网状模型、关系模型和面向对象模型,而目前使用最为广泛的是关系模型。 8.3.1 关系数据结构 8.3.2 关系操作 8.3.3 关系的完整性约束 8.3.4 关系模型与关系数据库
8.3.1 关系数据结构 关系模型的数据结构单一,是一种二维表格结构。以关系模型建立的数据库就是关系数据库 学生信息表 学号 姓名 性别 出生年月 200942070401 吴迪 男 02-28-80 200942070402 张杨 06-09-81 200942070403 李子凡 女 11-19-82 200942070404 舒舍予 05-01-80 200942070405 高大全 11-06-80
字段 表结构 记录 表:实体集。即同一类实体。 记录(行):一个具体的实体。 字段(列):实体的属性 表的结构(表头):实体型。 学号 姓名 关 系 数 据 库 字段 学号 姓名 性别 出生年月 200942070401 吴迪 男 02-28-80 200942070402 张杨 06-09-81 200942070403 李子凡 女 11-19-82 200942070404 舒舍予 05-01-80 200942070405 高大全 11-06-80 表结构 记录
1、 关系术语 关系(Relation) 元组(Tuple) 属性(Attribute) 域(Domain) 关键字(Key) 外部关键字 关系模式 关系名(属性名1 ,属性名2 ,…,属性名n ) 例如: 学生信息(学号,姓名,性别,出生年月)
2、关系的特点 关系必须规范化,最基本的要求每个属性必须是不可分割的数据单元 属性名必须唯一,即一个关系中不能出现相同的属性名。 关系中不允许有完全相同的元组,即冗余。 在一个关系中元组和属性的顺序都是无关紧要的。
主要用于数据库的设计阶段 主要用于DBMS的实现阶段 概念层模型 数据模型 层次模型 组织层数据模型 网状模型 关系模型
关系操作模型与关系数据库 关系模型(Relational Model) 关系数据库(Relational Database,RDB) 用表格结构表示实体以及实体之间联系的模型。它的数据结构是二维表,即由行和列组成,这个表就叫作关系。 关系数据库(Relational Database,RDB) 以关系模型建立的数据库。
8.3.2 关系操作 在关系数据库中查询用户所需数据时,需要对关系进行一定的关系运算。 关系运算主要分为两类:传统的集合运算和专门的关系运算。
关系代数的运算符 专门的关系运算 传统的集合运算: 将关系看成元组的集合,其运算是从关系的“水平”方向即行的角度来进行的 并运算 差运算 交运算 专门的关系运算 运算不仅涉及行而且涉及列 选择 投影 连接 除
举例:传统的关系运算 并(Union) 交(Intersection) A B C a1 a2 b1 b2 c1 c2 b3 (a) 关系R (b) 关系S 举例:传统的关系运算 并(Union) 关系R和关系S的并记做R∪S,由属于R或属于S的元组(记录)组成,结果仍为n目(列)关系。 交(Intersection) 关系R和关系S的交记做R∩S,由属于R且属于S的元组(记录)组成,结果仍为n目(列)关系 差(Difference) 关系R和关系S的差记做R-S,由属于R而不属于S的元组(记录)组成,结果仍为n目(列)关系 A B C a1 a2 b1 b2 b3 c1 c2 (c) R∪S A B C a1 b1 c1 (d) R - S A B C a1 a2 b2 c2 c1 (e) R∩S
举例:专门的关系运算 学生选课数据库 从S中选择所有女生 S与SC的连接运算 姓名 李燕 吴迪 贝宁 赵冰 班级 99881 04651 学号 姓名 性别 年龄 班级 学号 课程号 等级 S1 S2 S3 S4 李燕 吴迪 贝宁 赵冰 女 男 20 19 21 18 99881 04651 04263 02471 S1 S2 S3 S4 C1 C3 C2 A B C (a) 学生关系S 姓名 李燕 吴迪 贝宁 赵冰 班级 99881 04651 04263 02471 投影: 选取S中的所有姓名和班级 学号 S1 S4 姓名 性别 女 年龄 20 18 班级 99881 02471 李燕 赵冰 从S中选择所有女生 学号 S1 S2 S3 S4 姓名 性别 女 男 年龄 20 19 21 18 班级 99881 04651 04263 02471 李燕 吴迪 贝宁 赵冰 课程号 等级 A B C C1 C3 C2 S与SC的连接运算 课程号 课程名 系别 C1 C2 C3 电路基础 数据结构 概率统计 物理 计算机 数学 (c) 学生选课关系SC (b) 课程关系C
8.3.3 关系的完整性约束 实体完整性 参照完整性 用户定义完整性 关系完整性是为保证数据库中数据的正确性和相容性,对关系模型提出的某种约束条件或规则。 1、记录关键字的字段不能为空 2、关键字字段值唯一 实体完整性 参照完整性 用户定义完整性 不引用不存在的实体 根据应用环境的要求和实际的需要,对某一具体应用所涉及的数据提出约束性条件。
8.3.4 关系模型与关系数据库 关系数据库系统是支持关系数据模型的数据库系统。 设有Access关系数据库“学生管理.accdb”中有3张数据表如图所示,下面通过实际例子,说明关系模型是如何描述表、描述表之间的联系。
表间关系 关键字 记录 字段 表
表间的关系(联系) 数据库可以由多个表组成,表与表之间可以用不同方式相互关联。表间的联系就是定义两个表相互联系的方式。 一对一联系(1:1) 一对多联系(1:n) 多对多联系(m:n)
如果对于实体集A中的每一个实体,实体集B中至多有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系。记为1:1 (1:1) 一对一联系 B A 如果对于实体集A中的每一个实体,实体集B中至多有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系。记为1:1 例如:班级与班长之间的联系即为1:1 一个班级只有一个班长 一个班长只在一个班中任职
如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系 记为1:n 一个班级中有若干名学生, 每个学生只在一个班级中学习
如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体B具有多对多联系。记为m:n 例如: 课程与学生之间的联系为m:n 一门课程同时有若干个学生选修 一个学生可以同时选修多门课程
若约定一个学生可以选修多门课,一门课也可以被多个学生选修,那么“学生”表和“课程”表之间的联系是多对多的联系。通过“选课”表把多对多的关系分解为两个一对多关系,“选课”表在这里起一种纽带的作用,所以也称作“纽带表”。
8.4 Access数据库及其应用 作为Microsoft Office套件之一的Access是一种运行于Windows平台上的关系数据库管理系统,它直观、易用且功能强大,是目前最受欢迎的PC数据库软件。
8.4.1 Access概述 1.Access的主要特点 2.Access的启动 除数据访问页以外,Access的其它数据库对象都存储在同一个以.accdb为扩展名的数据库文件中 2.Access的启动 和Office软件包的其它软件的使用类似,可以双击桌面上的Access的快捷图标直接启动Access;也可以从“开始”按钮逐步完成Access的启动
3.Access首界面(Backstage视图) 5个主选项卡 文件选项卡 Backstage 视图 文件选项卡中默认新建选项
Backstage 视图大多包含一些与使用数据库文件本身相关的命令。当首次打开 Access 2010 时,将显示 Backstage 视图。如果已打开数据库,通过单击“文件”选项卡即可访问 Backstage 视图。 在视图的左边是“文件”选项卡,而“新建”选项是默认选择。在视图的右边,是与“文件”选项卡中的当前(命令)选项相关的内容。 如默认“新建”选项时,视图的右边就列出了新建数据库的几种可选方式:空数据库、模板……,并为新建数据库建议了保存路径和名称。 在“文件”选项卡中列出了最近使用过的数据库名称,单击便可打开该数据库,本例选择 “图书管理.accdb”,打开数据库工作窗口。
3.数据库工作窗口 功能区:是用户界面的一部分。其中的命令按逻辑组的形式组织,逻辑组集中在选项卡下。每个选项卡都与一种类型的活动(如设计表结构或浏览数据表)相关。为了使屏幕更为整洁,某些选项卡只在需要时才显示。 导航窗格:数据库对象显示在导航窗格中。不再提供早期版本的“数据库”窗口。
功能区: 此时包含5个主选项卡 Backstage 视图 导航窗格:文件选项卡显示在导航窗格中。
8.4.2 创建Access数据库 建立数据库的两种途径: 数据库向导 自行创建空数据库
数据库中数据的组织关系 数据的组织层次 表的特点 表的结构 字段、记录、值、主关键字 表之间的关系 数据库 表1 表2 表n 记录1 记录2 字段1 字段2 字段n •••
数据库的设计 确定新建数据库所要完成的目的 确定新建数据库所需要的表 确定各个表中所需要的字段 定义有唯一值的主关键字字段 确定表之间的关系 优化设计
8.4.3 在Access数据库中创建表 分两步: 创建表结构 向表中输入数据 在表“设计”视图中,可以从头开始创建整个表,或添加、删除、或自定义已有表中的字段。 举例
数据表设计视图样例
字段类型 文本 不超过255个字符 备注 不超过64000个字符 数字 不能存储字母 日期/时间(8B) 可设置为不同形式 文本 不超过255个字符 备注 不超过64000个字符 数字 不能存储字母 日期/时间(8B) 可设置为不同形式 货币(8B) 带4位小数 是/否(1B) 只有两种选择 OLE对象 可存储图片、声音等,最大1G
建立数据表之间的关联 共同的字段关联了两个表,这样 Microsoft Access 就可以将来自两个表中的数据组合在一起,以便进行查看、编辑或打印。
建立表之间关联的步骤: 在数据库工作窗口中,在功能区选择“数据库工具”选项卡 在“关系”分组中单击“关系”按钮,打开“关系”视图及其“设计”选项卡 在功能区“设计”选项卡的“关系”分组中单击“显示表”按钮打开“显示表”对话框 在“显示表”对话框里将相应表添加到“关系”视图 关闭“显示表”对话框 在“关系”视图中连接相关字段以创建关系 关闭“关系”视图
8.4.4 在Access中维护与操作表 1、 维护表 (1)维护表结构 (2)维护表内容 (3)美化表外观 插入新的字段 修改字段名称和字段属性 删除字段 设置/取消主键 (2)维护表内容 向表中添加记录 删除表中记录 修改数据 (3)美化表外观
2.在数据表中查找/替换数据 通过“记录定位器”或“搜索框”查找记录 通过“查找和替换”对话框查找/替换 记录定位器 搜索框
8.4.5 创建查询对象 查询对象 创建查询对象 查询对象是用来对表中数据进行加工并输出信息的数据库对象 在设计视图中创建查询 8.4.5 创建查询对象 查询对象 查询对象是用来对表中数据进行加工并输出信息的数据库对象 创建查询对象 在设计视图中创建查询 使用向导创建查询 ----- 查询 表n 表1 表2 表3 数据库
用设计器创建查询对象 在功能区中选择“创建”选项卡 单击“创建”选项卡“查询”分组中的“查询 设计”按钮,同时打开查询“设计”视图和 “显示表”对话框 在“显示表”列表框中选择相应的表或查询作 为数据源 选择用于查询的字段 设定选择记录的准则 保存查询对象
8.4.6 Excel与Access的数据交换 导入Excel表中的数据 启动Access,打开数据库工作窗口 在功能区中选择“外部数据”选项卡 在“导入并链接”分组中单击【Excel】按钮,打 开“获取外部数据 - Excel表格”对话框, 选择数据源与导入目标 5. 指定导入文件,依次完成向导操作内容
复习思考 请在网上查询有关“关系型数据库”的设计原则。 请从网上查询设计学籍管理数据库的最佳方案,并写出来。
自测题 一、 选择题 1. 下述关于数据库系统的叙述中正确的是( )。 A. 数据库系统减少了数据冗余 B. 数据库系统避免了一切冗余 1. 下述关于数据库系统的叙述中正确的是( )。 A. 数据库系统减少了数据冗余 B. 数据库系统避免了一切冗余 C. 数据库系统中数据的一致性是指数据类型一致 D. 数据库系统比文件系统能管理更多的数据 2. 三级模式间存在二级映射,它们是( )。 A. 概念模式与子模式间,概念模式与内模式间 B. 子模式与内模式间,外模式与内模式间 C. 子模式与外模式间,概念模式与内模式间 D. 概念模式与内模式间,外模式与内模式间
3. 关系数据库管理系统能实现的专门关系运算包括( )。 A. 排序、索引、统计 B. 选择、投影、连接 C. 关联、更新、排序 D. 显示、打印、制表 4. 用树形结构来表示实体之间联系的模型是( )。 A. 关系模型 B. 层次模型 C. 网状模型 D. 数据模型 5. 在关系数据库中,用来表示实体之间联系的是( )。 树结构 B. 网结构 C. 线性表 D. 二维表 6. 数据库设计包括两个方面的设计内容,它们是( )。 A. 概念设计和逻辑设计 B. 模式设计和内模式设计 C. 内模式设计和物理设计 D. 结构特性设计和行为特性设计 7. 将E-R图转换到关系模式时,实体和联系都可以表示为( )。 属性 B. 关系 C. 键 D. 域
A. 子模式、模式和概念模式 B. 外模式、子模式和存储模式 C. 模式、概念模式和物理模式 D. 外模式、概念模式和内模式 8. 下列4个选项中,可以直接用于表示概念模型的是( )。 A. 实体联系(E-R)模型 B. 关系模型 C. 层次模型 D. 网状模型 9. 数据库的三级结构分别被定义为( )。 A. 子模式、模式和概念模式 B. 外模式、子模式和存储模式 C. 模式、概念模式和物理模式 D. 外模式、概念模式和内模式 10. 下列4个选项中,说法不正确的是( )。 A. 数据库减少了数据冗余 B. 数据库中的数据可以共享 C. 数据库避免了一切数据的重复 D. 数据库具有较高的数据独立性 11. 公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从职员到部门的联系类型是( )。 A. 多对多 B. 一对一 C. 多对一 D. 一对多
12. 在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是( )。 A.数据库系统 B. 文件系统 C. 人工管理 D. 数据项管理 13. 从关系中挑选出指定的属性组成新关系的运算称为( )。 A.选取运算 B. 投影运算 C. 连接运算 D. 交运算 14. 数据库系统的核心是( )。 A.数据库 B. 数据库管理系统 C. 数据模型 D. 软件工具 15. 把E-R模型转换成关系模型的过程,属于数据库的( )。 A.需求分析 B. 概念设计 C. 逻辑设计 D. 物理设计 16. 关系表中的每一横行称为一个( )。 A.元组 B. 字段 C. 属性 D. 码 17. 数据库系统的体系结构是( )。 A. 二级模式结构和一级映射 B. 三级模式结构和一级映射 C. 三级模式结构和二级映射 D. 三级模式结构和三级映射
18. 数据库中存储的是( )。 A. 数据 B. 数据模型 C. 数据之间的联系 D. 数据以及数据之间的联系 19. 反映现实世界中的实体及实体间联系的信息模型是( )。 A. 关系模型 B. 层次模型 C. 网状模型 D. E-R模型
二、 填空题 1. 数据独立性分为逻辑独立性与物理独立性,当数据的存储结构改变时,其逻辑结构可以不变,因此基于逻辑结构的应用程序不必修改,这称为( ) 。 2. 数据库系统中实现各种数据管理功能的核心软件称为( )。 3. 关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、( )和自定义完整性。 4. 在关系模型中,把数据看成一个二维表,每个二维表称为一个()。 5. 在关系代数运算中,从关系中取出满足条件的元组的运算称为( )。 6. 实现概念模型最常用的表示方法是( )。 7. 关系数据库的逻辑模型设计阶段的任务是将总体E-R模型转换成( )。
本讲结束