第5章 数据库基础 5.1 数据库系统概述 5.2 数据模型 5.3 关系模型 5.4 关系数据库 5.5 常见的关系数据库管理系统简介
5.1 数据库系统概述 (1)数据管理技术的发展 (2)数据库系统的组成 (3)数据库系统的特点 (4)数据库系统的体系结构 5.1 数据库系统概述 (1)数据管理技术的发展 (2)数据库系统的组成 (3)数据库系统的特点 (4)数据库系统的体系结构 (5)数据库系统的应用 (6)数据库技术的发展
(1)数据管理技术的发展 数据管理主要面向非数值数据的处理问题,这类数据的特点是数据量大,数据处理的内容主要是数据的分类、组织、编码、存储、检索和维护等。 随着计算机技术的不断发展,数据管理一共经历了下面三个阶段。
应用程序1 数据集1 应用程序2 数据集2 应用程序n 数据集n ① 人工管理阶段 50年代中期以前 应用程序1 数据集1 应用程序2 数据集2 应用程序n 数据集n … 人工管理阶段:每个程序都有属于自己的一组数据,各程序之间的数据不能互相调用,处理同一批数据的几个程序中要重复存储这些数据;
应用程序1 数据文件1 应用程序2 数据文件2 应用程序n 数据文件n ② 文件系统阶段 50年代后期至60年代中期 应用程序1 数据文件1 应用程序2 数据文件2 应用程序n 数据文件n … 文件 管理 文件系统阶段:数据以文件为单位存储在外存储器上,由操作系统同一管理,程序与数据分离,不同程序可以共享一组数据,实现了数据以文件为单位的共享;
③ 数据库系统阶段 60年代后期以来 应用程序1 应用程序2 … 数据结构化 数据的共享性高、冗余度低、易于扩充 数据独立性高 ③ 数据库系统阶段 60年代后期以来 应用程序1 应用程序2 … 数据库 管理系统 DBMS 数据结构化 数据的共享性高、冗余度低、易于扩充 数据独立性高 数据由DBMS统一管理和控制
(2)数据库系统(DBS)的组成 ① 数据库(DB) ② 硬件支持系统 ③ 软件支持系统 ④ 应用系统 ⑤有关人员 数据库是以一定的数据模型进行组织,长期存放在外存储器(如硬盘)上的一组可共享的相关数据集合。 ② 硬件支持系统 ③ 软件支持系统 数据库管理系统(DBMS),操作系统,应用系统开发工具等。 ④ 应用系统 以数据库为基础开发的各种应用程序。 ⑤有关人员 管理、开发、使用数据库系统的人员。主要有:数据库管理员(DBA)、系统分析员、数据库设计人员、应用程序员、用户等。
数据库管理系统(DBMS) 数据库管理系统( DBMS)是管理和控制数据库的系统软件。 DBMS是数据库系统的核心软件。 功能:数据定义 数据操纵 数据库管理和控制功能
DBMS(数据库管理系统) 不同的DBMS其功能、规模、价格是不同的。 目前常见的DBMS: Oracle、SQL Server、Sybase、DB2、 Access、Visual Foxpro等。
(3)数据库系统的特点 ① 数据结构化 ② 数据共享性高,冗余度低 ③ 程序和数据具有比较高的独立性 ④ 为用户提供了良好的接口 ⑤ 统一和管理控制数据 ⑥ 系统灵活,易于扩充
(4)数据库系统的体系结构 从DBMS角度来看,数据库的体系结构是数据库的一个总框架,它是一种三级模式和二级映象结构。这是数据库内部的系统结构。 从数据库最终用户角度来看,数据库结构可分为单机结构、集中式结构、C/S结构、B/S结构等,这是数据库外部的体系结构。
三级模式 外模式 (概念)模式 内模式 二级映像 外模式/模式映像 模式/内模式映像
外模式(External Schema) 又称子模式或用户模式。是用户与数据库的接口,也是应用程序可见的数据描述。外模式是概念模式的一部分(子集)。外模式通常不唯一。
概念模式(Conceptual Schema) 又称模式,是数据库设计者综合所有用户数据,按照统一的观点构成的全局逻辑结构。数据库系统只有一个概念模式。
内模式(Internal Schema) 又称物理模式或存储模式。用来记录数据库在存储介质上的安排与存储方式。数据库系统只有一个内模式。 000110001111101010110110000000000000000000000111110000 001010010010100100101010010100110001010010101010100101 010010101010010101010010100001000000000000000000000000 000000000000000000000000000000011111111111111111111111 001100011111010101101100000000000000000000001111100001
二级映像 外模式/模式映像: 用户数据库和概念数据库之间的对应关系。 模式/内模式映像: 概念数据库和物理数据库之间的对应关系。
应用程序1 应用程序2 外模式B 外模式A 内模式 概念模式 应用程序3 应用程序4 应用程序5 数据库 数据库管 理系统 OS 模式/内模式映像 OS 数据库管 理系统 应用程序3 应用程序4 应用程序5 外模式/模式映像A 外模式/模式映像B 数据库
(5)数据库系统的应用 1.银行业务系统 2.超市销售系统 3.学校教学管理系统 4.图书管理系统 ……
(6)数据库技术的发展 数据模型的发展 层次模型 网状模型 关系模型 面向对象模型
(6)数据库技术的发展 发展趋势:多学科与数据库技术结合 分布式数据库 面向对象数据库 并行数据库 工程数据库 空间数据库 多媒体数据库 主动数据库 模糊数据库 ……
5.2 数据模型 (1)数据模型的概念 概念模型 数据模型 数据模型:现实世界数据特征的抽象。 现实世界 信息世界 计算机世界 5.2 数据模型 (1)数据模型的概念 概念模型 数据模型 客观事物及其联系 现实世界 抽象 信息世界 计算机世界 数据模型:现实世界数据特征的抽象。
(2)概念模型 概念模型是从现实世界到计算机世界的一个中间层次,是数据库设计的重要工具。 特点:使用简单的概念,清晰的表达方式来直观表达应用对象及语义的关联,便于用户理解。且使所描述的问题和具体的计算机无关。 概念模型的表示方法: E-R模型(Entity-Relationship data model),即实体—联系数据模型。
几个概念: ①实体:客观存在并可相互区别的个体。 ②属性:实体所具有的某一个特征。 ③码:唯一标识实体的属性或属性集。 ④域:属性所有可能取值的集合。 ⑤实体型:具有相同属性的实体必然具有共同的特征和性质,通常用实体名和属性名集合来抽象和刻画同类实体。 ⑥实体集:同型实体的集合。 ⑦联系:现实世界中事物之间的联系抽象到信息世界反映为实体之间的各种联系。
1 ⑦ 联系 1:1联系(one-to-one) 如果对于实体集A中的每一个实体,B中至多有一个实体与之有联系,反之亦然,则称A、B有 ⑦ 联系 A B 联 系 名 1 二元联系: 只有两个实体集参与的联系 1:1联系(one-to-one) 如果对于实体集A中的每一个实体,B中至多有一个实体与之有联系,反之亦然,则称A、B有 1:1联系。 如:班级与班长 校长与学校
A B 联 系 名 1 m 1:m 联系(one-to-many) 设有两个实体集A、B,若A中每个实体与B中任意个实体(包括零个)相联系,而B中每个实体至多和A中一个实体有联系,则称A和B是1:m联系。 如:班级与学生 系部与教师
m n m:n 联系(many-to-many) B 联 系 名 m n m:n 联系(many-to-many) 若两个实体集A、B中的每一个实体都和另一个实体集中任意个实体(包括零个)有联系,则称A、B是m:n联系。 如:教师与学生 学生与课程
E-R 图 E-R 图表示方法 实体:用矩形表示 实体名 属性:用椭圆形表示 属性名 联系名 联系:用菱形表示 连线:实体与属性间、联系与属性间、 联系与实体间 。连线上要标注联系类型。
举例:学生选课 现实世界: 客观事物:学生选择课程 信息世界(使用E-R模型): 抽象出概念模型: 实体 学生,属性 学号、姓名… 实体 学生,属性 学号、姓名… 实体 课程,属性 课程号、课程名… 上述两个实体的联系:选课
E-R 图: 学生 课程 下面的任务:继续抽象,得到数据模型 学号 姓名 出生年月 系别 性别 选课 m n 成绩 课程号 课程名 学时 开课时间
(3)数据模型的分类 常用关系型数据库 DBMS四种数据模型 Foxpro 层次模型 Access 网状模型 SQL Server SYBASE ORACLE等 DBMS四种数据模型 层次模型 网状模型 关系模型★ 面向对象模型
5.3 关系模型 5.3.1 关系模型的数据结构 1. 关系模型的逻辑结构 用二维表结构表示实体集之间的联系的数据模型 把数据组织成二维表的形式,这种表格称为关系 表中存放两类数据: 实体本身的数据 实体间的联系
学生(学号,姓名,性别,出生日期,系别,年级) 02 数学 82-06-20 男 周光明 01020104 01 建筑 81-11-08 女 王 丽 01020103 信息 81-07-10 张 强 01020102 计算机 82-10-16 李 明 01020101 年级 系别 出生日期 性别 姓名 学号 关系:二维表 元组:行;记录 属性:列;字段 关键字:唯一确定元组 主键:主关键字 域:属性的取值范围 分量:元组中一个属性值 关系模式:对关系的描述。 学生(学号,姓名,性别,出生日期,系别,年级)
2.关系的性质 (1)同一属性的数据具有同质性。 (2)属性值必须是不可分的数据项。 (3)同一关系的属性具有不能重复性。 (4)关系中任意两个元组不能相同。 (5)关系中元组的顺序可以任意交换。 (6)关系中列的顺序可以任意交换。
3.关系模型的存储结构 在支持关系模型的数据库物理结构中,关系以文件形式存储。 二维表与操作系统中的文件对应。 有的DBMS一个表对应一个文件; 有的DBMS多个表对应一个文件。
5.3.2 关系操作 关系操作包括: 查询操作:按照某种条件获取某张表中行、列的内容,或者通过表之间的联系获取多张表相应行、列的内容。 (不修改) 更新操作:插入、删除、修改表中的数据。 (修改)
5.3.2 关系操作 关系操作的表示: 关系代数的运算可分成两类: 传统的集合运算 专门的关系运算 关系代数 : 代数 关系演算 :谓词 关系代数 : 代数 关系演算 :谓词 具有关系代数和关系演算双重特点的语言 关系代数的运算可分成两类: 传统的集合运算 专门的关系运算
传统的集合运算 ① 并: R S 如果关系R和关系S,它们具有相同的模式结构,则称R和S是“并相容”的。 相同的列(字段) R∪S 注意: A B C a1 b1 c1 b2 c2 a2 R A B C a1 b2 c2 b3 a2 c1 S ① 并: 如果关系R和关系S,它们具有相同的模式结构,则称R和S是“并相容”的。 相同的列(字段) A B C a1 b1 c1 b2 c2 a2 b3 R∪S 注意: 并运算的结果必须消除重复的元组。 ①并:两个关系的并运算是将两个关系中的所有元组构成一个新的关系。并运算要求两个关系具有相同的模式结构。 如果关系R和关系S,它们具有相同的模式结构,则称R和S是“并相容”的。
②差:设关系R和S并相容,其差操作结果生成一个新的关系,该关系由属于R但不属于S的元组组成。 A B C a1 b1 c1 b2 c2 a2 R A B C a1 b2 c2 b3 a2 c1 S A B C a1 b1 c1 R - S ②差:设关系R和S并相容,其差操作结果生成一个新的关系,该关系由属于R但不属于S的元组组成。 A B C a1 b2 c2 a2 c1 R ∩ S ③交:设关系R和S并相容,其交操作结果关系中的元组由既属于R又属于S的元组组成。
④广义笛卡尔积: 结论: R S R x S 想一想: R x S的行数?列数? A B C a1 b1 c1 b2 c2 a2 A B C R.A R.B R.C S.A S.B S.C a1 b1 c1 b2 c2 b3 a2 R x S 设关系R和S分别具有p和q个属性,R和S的广义笛卡尔积是一个具有(p+q)个属性的元组集合,每一个元组的前p个属性来自R的一个元组,后q个属性来自S的一个元组。广义笛卡尔积记为 R x S。 想一想: R x S的行数?列数?
选择运算是从关系中选择满足条件的元组组成一个新关系,是从行的角度进行的水平操作。 专门的关系运算 ①选择: 选择运算是从关系中选择满足条件的元组组成一个新关系,是从行的角度进行的水平操作。 02 数学 82-06-20 男 周光明 01020104 01 建筑 81-11-08 女 王 丽 01020103 信息 81-07-10 张 强 01020102 计算机 82-10-16 李 明 01020101 年级 系别 出生日期 性别 姓名 学号 例:如果选择条件是系别为“数学”,结果是什么?
②投影: 投影运算是从关系的属性中选择属性列,由这些属性列组成一个新关系。纵向操作。 例:如果 “学号”和“姓名”列做投影,结果是什么? 02 数学 82-06-20 男 周光明 01020104 01 建筑 81-11-08 女 王 丽 01020103 信息 81-07-10 张 强 01020102 计算机 82-10-16 李 明 01020101 年级 系别 出生日期 性别 姓名 学号 例:如果 “学号”和“姓名”列做投影,结果是什么?
③连接: 将不同的两个关系连接成为一个新关系。 是从两个关系的广义笛卡尔积中选取属性值满足一定条件的元组。 R × S 共有20行,5列 A B C a1 b1 5 b2 6 a2 b3 8 b4 12 R B E b1 3 b2 7 b3 10 2 b5 S 例:连接条件为 R.C < S.E R.A R.B R.C S.B S.E a1 b1 5 b2 7 b3 10 6 a2 8 连接运算中最为常用的连接:等值连接、自然连接。
等值连接 连接结果: 例:等值连接R和S,连接条件为R.B=S.B A B C a1 b1 5 b2 6 a2 b3 8 b4 12 R B E b1 3 b2 7 b3 10 2 b5 S 连接运算符为“=”的连接为等值连接。它是从两个关系的广义笛卡尔积中选取属性值相等的那些元组。 连接结果: R.A R.B R.C S.B S.E a1 b1 5 3 b2 6 7 a2 b3 8 10 2
自然连接 一种特殊的等值连接,要求两个关系中进行比较的必须是相同的属性组,并且在结果中把重复的属性去掉。 等值连接,条件 R.B=S.B A B C a1 b1 5 b2 6 a2 b3 8 b4 12 R B E b1 3 b2 7 b3 10 2 b5 S 自然连接 一种特殊的等值连接,要求两个关系中进行比较的必须是相同的属性组,并且在结果中把重复的属性去掉。 R.A R.B R.C S.B S.E a1 b1 5 3 b2 6 7 a2 b3 8 10 2 等值连接,条件 R.B=S.B A B C E a1 b1 5 3 b2 6 7 a2 b3 8 10 2 相应的自然连接
5.3.3 关系完整性约束 实体完整性:关系的主码不能取空值 参照完整性 用户定义的完整性
举例:学生选课 学生 课程 下面就把这个E-R图转换为关系模型! 学号 姓名 出生年月 系别 性别 成绩 选课 m n 课程号 课程名 学时 开课时间 举例:学生选课 下面就把这个E-R图转换为关系模型!
5.3.4 由E-R图向关系模型的转换 转换方法: 将E-R图转换为关系模型,实际上就是将实体、实体的属性和实体间的联系转换为关系模型。 一个实体转换为一个关系,实体的属性就是关系的属性,实体的码就是关系的码。 实体间的联系遵循一定的转换规则。
实体间的联系的几种转换规则: ① 一个1:1的联系可以转换为一个独立的关系,也可以与任意一端对应的关系合并。 ②一个1:n联系可以转换为一个独立的关系,也可以与n端对应的关系合并。 ③一个m:n联系转换为一个关系。 ④三个或三个以上实体间的一个多元联系可以转换为一个关系。
例:将学生选课E-R图转换为关系模型。 学生 课程 分析: 两个实体 (学生和课程) 一个联系 (选课) 学号 姓名 出生年月 系别 性别 成绩 选课 m n 学生 课程 课程号 课程名 学时 开课时间 分析: 两个实体 (学生和课程) 一个联系 (选课)
学生实体 学生关系 学号 姓名 出生年月 系别 性别 学生 学生关系实例(S)
课程实体 课程关系 课程 课程号 课程名 学时 开课时间
选课联系 选课关系 成绩 选课 m n 学生 课程
5.4 关系数据库 (1)关系数据库的特点 模型简单 数据独立性高 有坚实的理论基础
(2)关系数据库的设计 基本步骤: 需求分析 概念结构设计 逻辑结构设计 物理结构设计 数据库实施 数据库运行和维护
(3)关系数据库标准语言SQL简介 例:select * from stu where xh=0101 ① SQL的发展及其特点 关系数据库的标准语言; 一种高度非过程语言。 使用的两种方式: 自主语言:独立使用 嵌入式语言:嵌入其他高级语言中
② SQL的主要功能 数据定义功能 数据操纵功能 数据控制功能
5.5 常见的关系数据库系统简介 Access Oracle SQL Server DB2 MySQL Sybase Visual FoxPro
1. Access Access是Microsoft公司推出的Office系列办公软件中的组件之一,是目前流行的桌面数据库管理系统。主要适用于中小型应用系统。 主要特点: (1)存储方式单一 (2)操作简便、使用方便 (3)兼容多种数据库格式 (4)嵌入VBA编程语言 (5)具有 Web 网页发布功能 (6)可应用于客户/服务器方式
2. Oracle Oracle数据库管理系统是由Oracle公司推出的关系型数据库管理系统。它是当前世界上应用最广泛、功能最强大、可用性最高的数据库管理系统,适用于大型数据库应用系统。 主要特点: (1)具有完整的数据管理功能 (2)提供分布式数据库能力 (3)可兼容性 (4)可移植性 (5)可连接性 (6)提供功能齐全的数据库开发工具
3 . SQL Server SQL Server 是Microsoft 公司推出的大型关系数据库管理系统,适用于中、大型数据库应用系统。 主要特点: (1) 基于客户机/服务器体系结构 (2)支持分布式数据库结构 (3) SQL Server 与 Windows 集成 (4) SQL Server 与 Microsoft BackOffice 服务器类集成 (5)多线程体系结构
4 . DB2 DB2是IBM公司推出的一种关系型数据库系统。适用于大型数据库应用系统。 主要特点: 能够处理各类复杂企业日常信息,这些信息包括多媒体信息、网页内容和电子邮件。 支持标准的SQL语言,能与异种数据库相连。 具有速度快、可靠性好的优点。 能在所有主流平台上运行,适用于海量数据处理。 DB2在企业级的应用广泛。
MySQL是一种流行的开源关系数据库管理系统。它具有良好的连通性、速度和安全性,适合于访问Internet上的数据库。 主要特点: (1)MySQL是一种开放源码软件。 (2)MySQL服务器具有快速、可靠和易于使用的特点。 (3)MySQL服务器工作在客户/服务器或嵌入式系统中。 (4)有大量的MySQL软件可以使用。
6. Sybase Sybase是美国Sybase公司推出的一种关系型数据库系统,是由Sybase SQL Server发展和演化而来。 具有完备的密钥保护等技术,拥有高可靠性和低运行风险。 Sybase同时还支持服务器的高可用性,即两个服务器互为备份,从而保证数据库的持续可用性。
7.Visual FoxPro Visual FoxPro是一种小型关系数据库管理系统。它是一种可视化的数据库管理系统,也是面向对象的应用程序编程工具。使用简单,易于掌握。