第7章 数据库基础 本章主要内容 7.1 数据库的概念 7.2 数据模型 7.3 关系数据库 7.4 Access简介 7.5 数据表的建立和使用 7.6 查询 数据库的概念
7.1 数据库的概念 数据:存储在介质上的能够识别的物理符号,由数字、字母、图形、图像、声音等组成。 7.1 数据库的概念 数据:存储在介质上的能够识别的物理符号,由数字、字母、图形、图像、声音等组成。 数据处理:对不同类型的数据进行收集、整理、组织、存储、加工、传输、检索的各个过程。 数据处理方式的发展
7.1.1 数据处理方式的发展 1.手工管理阶段 特点: (1) 数据不保存----不能实现数据共享。 (2) 数据与程序不可分割。 7.1.1 数据处理方式的发展 1.手工管理阶段 特点: (1) 数据不保存----不能实现数据共享。 (2) 数据与程序不可分割。 (3)各程序的数据彼此独立----数据冗余。 适应场合: 数据量较小。 文件系统阶段
7.1.1 数据处理方式的发展 2. 文件系统阶段 (1) 程序和数据分开, 有一定的独立性。 7.1.1 数据处理方式的发展 2. 文件系统阶段 (1) 程序和数据分开, 有一定的独立性。 (2)数据以文件形式保存,由操作系统按名存取。 (3) 实现一定程度的数据共享。 (4) 数据文件之间缺乏联系。 数据库阶段
7.1.1 数据处理方式的发展 3. 数据库阶段 (1) 数据和程序之间彼此独立,实现共享 (2) 数据以数据库形式保存,最大限度减少冗余。 7.1.1 数据处理方式的发展 3. 数据库阶段 (1) 数据和程序之间彼此独立,实现共享 (2) 数据以数据库形式保存,最大限度减少冗余。 (3) 专门的数据库管理软件-------DBMS。 应用程序1 …… DBMS 应用程序2 数据库 应用程序3 其他数据库
7.1.1 数据处理方式的发展 (1)分布式数据库系统 (2)面向对象的数据库 数据库技术和计算机网络技术相结合产生: 7.1.1 数据处理方式的发展 (1)分布式数据库系统 数据库技术和计算机网络技术相结合产生: 1)物理上独立,数据分布在网络的不同计算机 2)逻辑上属于一个整体。 (2)面向对象的数据库 将程序设计语言中对象的概念引用到数据库中: 1)数据和操作方法作为对象统一管理; 2)可以处理更为复杂的对象; 数据库的概念
7.1.2 数据库中的常见概念 1.数据库(DB) 指按特定的组织形式将数据保存在存储介质上 特点:(1)在数据库中,不仅包含数据本身,也包含数据之间的联系; (2)数据通过一定的数据模型进行组织,保证有最小的冗余度,有层次、网状和关系模型; (3)各个应用程序共享数据; (4)对数据的各种操作,如定义、操纵等都由DBMS统一进行。 数据库的概念
7.1.2 数据库中的常见概念 2.数据库管理系统(DBMS) 对数据库进行管理的软件,功能: 7.1.2 数据库中的常见概念 2.数据库管理系统(DBMS) 对数据库进行管理的软件,功能: (1)定义: 定义数据库的结构、数据完整性和其它的约束条件; (2)操纵: 实现数据插入、修改、删除和查询; (3)控制: 实现数安全控制、完整性控制以及多用户环境下的并发控制; (4)维护: 提供对数据的装载、转储和恢复,数据库的性能分析和监测; (5)数据字典,存放数据库各级结构的描述。 数据库的概念
7.1.2 数据库中的常见概念 3.应用程序 4.数据库管理员(DBA) 5.数据库系统(DBS) 利用DBMS开发的应用软件。 7.1.2 数据库中的常见概念 3.应用程序 利用DBMS开发的应用软件。 4.数据库管理员(DBA) 负责管理数据库资源;确定用户需求,设计、实现数据库;并负责维护和管理数据库。 5.数据库系统(DBS) 完整的数据库系统由硬件、数据库、数据库管理系统、操作系统、应用程序、数据库管理员等部分组成。 数据库的概念
7.1.2 数据库中的常见概念 图6-4 数据库系统的组成 数据库体系结构
7.1.3 数据库系统的体系结构 1.三级模式 (1) 模式(逻辑模式或概念模式) 7.1.3 数据库系统的体系结构 1.三级模式 (1) 模式(逻辑模式或概念模式) 是对数据库中的全部数据的逻辑结构和特征的描述,不涉及数据的物理存储。 (2) 外模式(用户模式或子模式) 该模式面向用户,是数据库用户看到的局部数据结构和特征的描述,是数据的局部逻辑结构。 (3) 内模式(存储模式) 描述数据的物理结构、在存储介质上的存储方法和存取策略。 数据库体系结构
7.1.3 数据库系统的体系结构 2.二级映射 用于三级模式之间的转换。 (1)外模式/模式映射 7.1.3 数据库系统的体系结构 2.二级映射 用于三级模式之间的转换。 (1)外模式/模式映射 定义外模式和概念模式之间的对应性,这一映射使得概念模式的改变不影响外模式和应用程序,从而达到了数据的逻辑独立性。 数据库体系结构
映射技术实现了数据的两级独立性,简化了用户对数据库的操作,也有利于实现数据的安全性和保密性。 (2)模式/内模式映射 定义概念模式和内模式之间的对应性,当存储结构改变即修改内模式时,只要相应改变模式/内模式映象,而模式尽量保存不变,从而达到了数据的物理独立性。 映射技术实现了数据的两级独立性,简化了用户对数据库的操作,也有利于实现数据的安全性和保密性。 体系结构示意图
7.1.3 数据库系统的体系结构 数据模型
7.2 数据模型 从客观存在的事物到最后在计算机内的数据表示,经历了两个不同的抽象过程,对应的三层数据模型,即概念数据模型、结构数据模型和物理数据模型。 7.2.1 概念数据模型 概念数据模型用来建立信息世界的数据模型,强调语义表达,描述信息结构,是对现实世界的第一层抽象。 实体
1.实体 1) 实体:客观存在并且可以相互区别的事物 可以是具体的事物,如一个学生,一本书 也可以是抽象的事物,如一次考试 2) 实体的属性:用于描述实体的特性,如学生用学号、姓名、性别、年龄等属性描述 3) 一个实体是若干个属性值的集合,如一个特定的学生用学号、姓名、性别等属性值描述 4) 实体集:具有相同属性的实体的集合,如若干个学生实体的集合构成学生实体集 实体集间的联系
2.实体集之间的联系 (1)一对一联系 两个实体集之间实体的对应关系称为联系 如果实体集E1中的每一个实体至多和实体集E2中的一个实体有联系,反之亦然,则称E1和E2是一对一的联系,表示为1:1。 例如: 实体集校长和 实体集学校之间的 联系是一对一。 实体集间的联系
2.实体集之间的联系 (2)一对多联系 如果实体集E1中的每个实体与实体集E2中的任意个实体有联系,而实体集E2中的每一个实体至多和实体集E1中的一个实体有联系,则称E1和E2之间是一对多的联系,表示为1:n,E1称为一方,E2为多方。 例如,实体集学校和实 体集学生之间是一对多 的联系,一方是实体集 学校,多方是实体集学生 实体集间的联系
2.实体集之间的联系 (3)多对多联系 如果实体集E1中的每个实体与实体集E2中的任意个实体有联系,反之,实体集E2中的每个实体与实体集E1中的任意个实体有联系,则称E1和E2之间是多对多的联系,表示为m:n。 例如,实体集学生和实 体集课程之间是多对多 的关系 E-R图
3.E-R图 E-R图: 用图形方式表示实体集之间的联系。 组成: 1)矩形:表示实体集,实体名称写在框内; 2)椭圆:表示实体集或联系的属性,框内标明属性的名称; 3)菱形:表示实体间的关系,框内注明联系名称; 4)连线:连接实体和各个属性、实体和联系,并注明联系种类,即1:1、1:n或n:m。 E-R图实例
E-R图实例:学生实体集和课程实体集之间的关系 逻辑数据模型
7.2.2 逻辑数据模型 1.层次模型 逻辑数据模型是指在数据库系统中表示实体类型和实体之间关系的模型。 结点:各个实体在数据模型中被称为结点 1.层次模型 1) 用树形表示数据之间的多级层次结构。 2) 结构特点:(1) 只有一个最高结点即根结点 (2) 其余结点有而且仅有一个父结点 (3) 上下层结点之间表示一对多的联系 3) 应用: 行政组织机构、家族辈份关系等。 示意图
逻辑数据模型
7.2.2 逻辑数据模型 2.网状模型 3.关系模型 1) 用图表示数据之间的关系 2) 允许结点有多于一个的父结点 3) 可以有一个以上的结点没有父结点。 4) 特点: 表示结点之间多对多的联系。 3.关系模型 1) 用二维表格来表示实体及实体之间的联系 2) 实际应用中,每一个二维表代表了一个关系。 3) 特点:结构简单,容易实现 物理数据模型
7.2.3 物理数据模型 物理数据模型反映了数据在存储介质上的存储结构 物理数据模型不仅与具体的DBMS有关,也和操作系统及硬件有关。 关系数据库
7.3 关系数据库 7.3.1 关系模型的组成----二维表格 常用术语
关系模型中的常用术语 1.元组 2.属性 3.属性名 在二维表中,从第二行起的每一行称为一个元组,在文件中对应一条具体记录。 二维表中,每一列称为一个属性,在文件中对应一个字段。 3.属性名 二维表第一行显示的每一列的名称,在文件中对应字段名,例如“姓名”,“性别”等。 常用术语
关系模型中的常用术语 4.属性值 行和列的交叉位置表示某个属性的值。 5.域 表示各个属性的取值范围。 常用术语
关系模型中的常用术语 6.表结构 7.关系模式 表中的第一行,表示组成该表的各个字段名称,各字段取值的类型、宽度等。 是对关系结构的描述,表示格式: 关系名(属性1,属性2,属性3,…,属性n) 例: student(学号,姓名,性别,年龄) 候选键
关系模型中的常用术语 8.候选键 关系中用来惟一标识一个元组的属性或属性组。 例1: 关系student中的属性“学号”可以作为候选键,当“姓名”没有重名时,也可以作为候选键 例2: 确定如下关系score的候选键: 学号 课号 成绩 99001 C01 90 99001 C02 89 99002 C02 70 该关系中的候选键是属性组(学号,课号) 主键和外键
关系模型中的常用术语 9.主键 从候选键中指定一个用来标识元组。 10.外部关键字 表中的一个字段不是本表的主关键字或候选关键字,而是另外一个表的主关键字或候选关键字,该字段称为外部关键字,简称外键。 例题: 在关系score中,候选键是属性组(学号,课号),“学号”不是score的主键,而是关系student的主键,因此,“学号”称为外键。 主表和从表
关系模型中的常用术语 11.主表和从表 主表: 以外键作为主键的表 从表: 外键所在的表 主表和从表通过外键相关联 关系模型的特点
7.3.2 关系模型的特点 1)每一列不可再分; 2)同一关系中属性(字段)不允许重名 3)关系中不允许有完全相同的元组 7.3.2 关系模型的特点 1)每一列不可再分; 2)同一关系中属性(字段)不允许重名 3)关系中不允许有完全相同的元组 4)关系中交换任意两行的位置不影响数据的实际含义; 5)关系中交换任意两列的位置不影响数据的实际含义。 关系的基本运算
7.3.3 关系的基本运算 1.选择 例题:从关系score1中选择数学大于90的元组组成关系S1。 7.3.3 关系的基本运算 1.选择 从指定的关系中选择满足给定条件的元组组成新的关系。 例题:从关系score1中选择数学大于90的元组组成关系S1。 投影运算
7.3.3 关系的基本运算 例题:从关系score1中选择“学号”、“姓名”、“数学”组成新的关系S2。 2.投影 7.3.3 关系的基本运算 2.投影 从指定关系的属性集合中选取若干个属性组成新的关系。 例题:从关系score1中选择“学号”、“姓名”、“数学”组成新的关系S2。 联接运算
7.3.3 关系的基本运算 3.联接 两个关系中的元组按指定条件组合新的关系 例题:将score1和score2按相同学号合并 设计关系模型
7.3.4 根据概念数据模型设计关 系模型 1. 实体集 2. 联系 设计原则 1) 一对一 7.3.4 根据概念数据模型设计关 系模型 设计原则 1. 实体集 每个实体集转换为一个关系模式,实体集的属性就是关系的属性(字段名)。 2. 联系 1) 一对一 将其中一个实体集的键及联系本身的属性加入到另一个实体集中。 设计实例
2) 一对多 3) 多对多 将一方实体集的键及联系本身的属性加入到多方实体集中。 将联系本身转换为一个关系模式,与该联系相连的各实体集的主键及联系本身的属性作为该关系模式的属性。 设计实例
例题:由E-R图设计关系模型 1) 两个实体集 学生(学号,姓名,性别,年龄) 课程(课程代码, 课程名称, 任课教师) 2) 联系 选修(学号,课程代码,成绩) ↑ ↑ ↑ 两个实体集的主键 自身属性 Access的特点
7.4 Access 简介 7.4.1 Access的特点 1. 具有Office系列的共同功能; 2. 桌面型的数据库管理系统; 3. 与其它数据库系统共享数据; 4. 提供程序设计语言VBA,用于开发应用程序。 Access启动
7.4.2 Access的启动 1.“开始”--->“程序”--->Microsoft Access 3.单击“确定” 4.输入数据库名 5.单击“创建” 数据库组成
7.4.3 数据库组成 Access数据库: 1)Access的文档文件,扩展名为MDB 2)由数据表、查询、窗体、报表、宏和模块等对象组成。 3)所有对象都保存在的同一个数据库文件中。 数据库组成
7.4.3 数据库组成 1.表 1)以二维表格保存基本信息,数据库的核心 2)为其它对象提供数据 7.4.3 数据库组成 1.表 1)以二维表格保存基本信息,数据库的核心 2)为其它对象提供数据 3)对具有复杂结构的数据,分别使用多张数据表,这些表之间可以通过相关字段建立关联。 数据库组成
7.4.3 数据库组成 2.查询 1)从一个或多个表中查找某些特定的记录 2)查询的运行结果以二维表的形式显示 3)在数据库中只记录了查询的方式即规则 4)可作为窗体、报表等其它组件的数据源 数据库组成
7.4.3 数据库组成 3.窗体 1) 向用户提供交互界面,更方便地进行数据的输入、输出 7.4.3 数据库组成 3.窗体 1) 向用户提供交互界面,更方便地进行数据的输入、输出 2) 窗体的数据源,可以是一个或多个数据表,也可以是查询。 数据库组成
7.4.3 数据库组成 4.报表 5.页 1)将数据按指定的格式进行显示或打印 2)数据源可以是一张或多张数据表、查询 3)建立报表时还可以进行计算,如求和、平均等 5.页 通过Web页将数据存储到指定的文件夹,或将其复制到Web服务器上,以便在网上发布信息。 数据库组成
7.4.3 数据库组成 6. 宏 7.模块 宏是由具有宏名的一系列命令组成,用来简化一些需要重复的操作。 建好的宏,可以单独使用,或与窗体配合使用。 7.模块 用Access提供的VBA语言编写的程序,模块通常与窗体、报表结合起来完成完整的应用功能。 数据表结构
7.5 数据表的建立和使用 数据表由表结构和记录两部分组成。 7.5.1 数据表结构 1.字段名 2.数据类型 如文本型、数字型等 7.5.1 数据表结构 1.字段名 2.数据类型 如文本型、数字型等 3.字段属性 (1)字段大小 (2)格式 (3)小数位数 (4)标题 (5)有效性规则 4.主关键字 建立数据表
7.5.2 建立数据表 1.在数据表视图下建立数据表 例题:在数据表视图下建立“成绩”表 2.用设计视图建立数据表 7.5.2 建立数据表 1.在数据表视图下建立数据表 例题:在数据表视图下建立“成绩”表 2.用设计视图建立数据表 例题:在设计视图视图下建立“学生”表 1) 设计表结构 2)定义主关键字段 3)命名表及保存 4) 输入记录 编辑数据表
7.5.3 编辑数据表 1.修改表结构 2.编辑记录 在设计视图或数据表视图下进行 (1)改字段名、类型、属性 (2)插入字段 (3)删除字段 2.编辑记录 在数据表视图下进行 (1) 输入新记录 (2) 修改原有记录 (3) 删除记录。 建立表间关系
7.5.4 建立表间关系 目的:实现数据库的参照完整性。 例题:在“学生”和“成绩”表间建立关系,“学生”表为主表,“成绩”表为从表: 1.“工具”---->“关系” 2.选择表或查询 3.设置完整性 4. 建立联系后,再打开“学生”表,观察显示的结果 编辑关系对话框
7.5.4 建立表间关系 使用数据表
7.5.5 数据表的使用 1.记录排序 (1)排序 (2)恢复排序前的记录顺序 在数据表视图下进行 按某个字段值的升序或降序重新排列记录 7.5.5 数据表的使用 在数据表视图下进行 1.记录排序 按某个字段值的升序或降序重新排列记录 (1)排序 选择排序关键字。 单击工具栏上的“升序”或“降序”按钮 (2)恢复排序前的记录顺序 “记录”---->“取消筛选/排序” 筛选
7.5.5 数据表的使用 2. 筛选记录 筛选记录是指在屏幕上仅仅显示满足条件的记录 常用的有按选定内容筛选或内容排除筛选。 查询
7.6 查询 7.6.1 查询的类型 1.设计视图查询 2.简单查询向导 3.交叉表查询 在一个或多个基本表中,按照指定的条件进行查找,并指定显示的字段。 2.简单查询向导 按系统的提示设计查询的结果。 3.交叉表查询 用交叉方式的数据表格显示信息。 查询类型
7.6.1 查询的类型 4.重复项查询 5.不匹配查询 建立查询: 显示查询结果: 在数据表中查找具有相同字段值的重复记录。 在数据表中查找与指定条件不匹配的记录。 建立查询: 在设计视图或SQL窗口下 显示查询结果: 单击工具栏上的“执行”按钮! 设计视图窗口
7.6.2 设计视图窗口的组成 1)字段:查询结果中使用的字段。 2)表:该字段所在的表或查询。 3)排序:指定是否按此字 段排序 4)显示:确定该字段是否 在结果中显示。 5)准则:指定对该字段的 查询条件 6)或:指定其它查询条件 SQL窗口
7.6.3 在SQL窗口建立查询 在SQL视图中直接输入SQL命令也可以建立查询。 实体完整性
课堂训练 7.1 实体完整性 例题:“学生”表已将“学号”定义为主键 结论: 实体完整性对表中主键的要求: 观察以下操作是否允许: 课堂训练 7.1 实体完整性 例题:“学生”表已将“学号”定义为主键 观察以下操作是否允许: 1) 输入学号为空的记录; 2) 输入新记录,学号与表中已有记录学号相同 结论: 实体完整性对表中主键的要求: 1)不允许有空值 2)不允许出现两条记录的主键值相同 用户定义的完整性
课堂训练 7.2 用户定义的完整性 用户定义的完整性是针对具体数据设置约束条件 例题: 对“学生”表设置约束条件 课堂训练 7.2 用户定义的完整性 用户定义的完整性是针对具体数据设置约束条件 例题: 对“学生”表设置约束条件 1) “年龄”字段的值设置在16至23之间 2)“性别”字段的有效性规则设置为: '男' or '女'。 参照完整性
课堂训练 7.3 参照完整性 参照完整性是两个相关联表之间的操作约束 例题:对已建立关联的“学生”表和“成绩”表进行完整性操作,已知: 课堂训练 7.3 参照完整性 参照完整性是两个相关联表之间的操作约束 例题:对已建立关联的“学生”表和“成绩”表进行完整性操作,已知: 1) 主表: 学生 主键:学号 2) 从表: 成绩 外键:学号 3) 已进行的设置: 级联更新相关字段 级联删除相关记录 参照完整性
课堂训练 7.3 参照完整性 观察以下操作的结果: (1)向“成绩”表输入一条新的记录,其中学号在“学生”表中是不存在的,该操作能否进行? 课堂训练 7.3 参照完整性 观察以下操作的结果: (1)向“成绩”表输入一条新的记录,其中学号在“学生”表中是不存在的,该操作能否进行? (2)将“学生”表的第三条记录的“学号”字段值改为“990007”,观察“成绩”表的变化; (3)将“学生”表中“学号”字段值为“990004”的记录删除,观察“成绩”表的变化 由两个表建立查询
课堂训练 7.3 参照完整性 结论: 1) 从表中不能引用主表中不存在的实体 课堂训练 7.3 参照完整性 结论: 1) 从表中不能引用主表中不存在的实体 2) 主表学号改变时,从表中的学号自动改变------“级联更新相关字段”。 3) 主表中删除记录时,从表中与主表学号相同的记录同步删除 -------“级联删除相关字段”
课堂训练 7.4 用两个表的数据建立查询 例题: 建立查询,要求: 1) 数据源来自“学生”表和“成绩”表 课堂训练 7.4 用两个表的数据建立查询 例题: 建立查询,要求: 1) 数据源来自“学生”表和“成绩”表 2) 结果中包含四个字段,分别是“学号”,“姓名”,“课程”和“成绩” 3) 只显示成绩不低于90的记录。 分类汇总
课堂训练 7.5 用查询对数据进行分类汇总 例题:用学生表创建查询,分别计算男生和女生的平均年龄 在设计视图窗口设置如下的准则: 课堂训练 7.5 用查询对数据进行分类汇总 例题:用学生表创建查询,分别计算男生和女生的平均年龄 在设计视图窗口设置如下的准则: 1)单击工具栏上的“汇总”按钮; 2)在“性别”对应的总计行中,选择 “Group By” ,表示按“性别”分组; 3)在“年龄”对应的总计行中选择“Avg” 表示计算平均值 准则和结果
设 计 视 图 查询结果 本章结束