第六章 数据库技术基础 本章要点 数据库系统概述 数据库系统概述 关系数据库 关系数据库 数据库设计 数据库设计
数据库系统概述 数据管理技术的发展分三个阶段: 人工管理阶段 文件系统管理阶段 数据库系统管理阶段 数据管理技术的发展
数据库、数据库管理系统和数据库系统 长期 组织共享大量 数据库 (Database, 简称 DB) 是长期储存在计算机内、 有组织的、可共享的大量数据集合。 数据库系统概述 一、数据库 二、数据库管理系统 数据库管理系统 (DataBase Management System , DBMS) 位于应用程序和操作系统之 间,是为建立、使用和维护数据库而配置的 一层数据管理软件,负责对数据库中的数据 进行统一的管理和控制。
目前常用的数据库 Oracle Larry Ellison 和另两个编程人员在 1977 创办,目前 Oracle 关 系数据库产品的市场占有率名列前茅。 SQL Server 1989 年,微软发布了 SQL Server 1.0 版。 mySQL mySQL 是一个小型关系型数据库管理系统,目前 MySQL 被广 泛地应用在 Internet 上的中小型网站中。由于其体积小、速度 快、总体拥有成本低,尤其是开放源码这一特点,许多中小型 网站为了降低网站总体拥有成本而选择了 MySQL 作为网站数 据库。 Sybase 公司成立于 1984 年,公司名称 “Sybase” 取自 “system” 和 “database” 相结合的含义。 数据库系统概述
Acess 数据库 由微软发布的关联式数据库管理系统。数据库管理系统 一些不熟练的程序员和非程序员的 “ 进阶用户 ” 能使用它 来开发简单的应用软件 Access 的可扩放性并不高
数据库系统 (Data Base System , DBS) 是指带有数据 库的计算机系统。 包括数据库、数据 库管理系统、应用 程序、数据库管理 员以及用户等部分 数据库、数据库管理系统和数据库系统 数据库系统概述 三、数据库系统 用户 1 用户 2 …… 用户 n 数据库系统示意图 数据库管 理系统 数据库 应用程序 数据库管理员数据库管理员
数据库、数据库管理系统和数据库系统 数据的整体结构化。 目前数据库以二维 表的形式存在 数据的共享性高,冗余度 低。 数据的独立性高。 数据的统一管理和控制。 数据库系统概述 四、数据库系统的特点 学号姓名性别班级 蔡汶庭 女机械 宋艳美 女机械 苗圆圆 女机械 曹永玲 女机械 王丹波 女机械 邓玮玮 女机械 081
模型是现实世界特征的模拟和抽象。 数据模型应满足三方面要求: 能比较真实地模拟现实世界; 容易为人所理解; 便于在计算机上实现。 根据数据模型的应用目的不同,数据模型分为两类 概念模型,也称信息模型,它是按用户的观点来对数 据进行描述 逻辑数据模型,它是按计算机系统的观点对数据进行 描述 数据模型 数据库系统概述
数据结构:所研究的对象类型的集合。 数据操作:对相应数据结构允许执行的操作的集合 数据的完整性约束:一组完整性规则的集合。完整性规则 是给定的数据模型中数据及其联系所具有的 制约和依存规则,以保证数据的正确、有效 和相容。 数据模型 数据库系统概述 一、数据模型的组成要素
实体:客观存在并可相互区别的事物称为实体 (Entity) 。 实体可以是具体的人、事、物,也可以是抽象 的概念或联系。例如,一个职员、一名学生、 一个车间、学生选课、车间领料等都是实体。 属性:实体的特性称为实体的属性 (Attribute) 。一个实 体可以由若干个属性来刻画。例如,学生可以 由学号、姓名、专业、班级等属性刻画。 数据模型 数据库系统概述 二、概念模型(实体 - 联系数据模型)
联系:在现实世界中,事物内部以及事物之间是有联系的, 这些联系在信息世界中反映为实体集内部的联系 和实体集之间的联系。 二、实体 - 联系数据模型 数据模型 数据库系统概述
两个实体集之间的联系分为三类: 一对一联系 (1 : 1) 如果对于实体集 A 中的每一个实体,实体 集 B 中至多有一个实体与之联系,反之亦 然,则称实体集 A 与 B 具有一对一联系,记 为 1 : 1 。 例如:班级实体和班长实体,一个班级有 一个班长,一个班长只能是一个班级的班 长 二、实体 - 联系数据模型 数据模型 数据库系统概述
一对多联系 (1 : n) 如 果对于实体集 A 中的每一个实体,实体集 B 中有 n 个实体 (n≥0) 与之联系,反之,对于 实体 B 中的每一个实体,实体集 A 中至多只 有一个实体与之联系,则称实体集 A 与 B 具 有一对多联系,记为 1 : n 。 班级实体和学生实体:一个班级有多个学生,而一 个学生只能属于一个班级 二、实体 - 联系数据模型 两个实体集之间的联系分为三类: 数据模型 数据库系统概述
多对多联系 (m : n) 如果对于实体集 A 中的每一个实体,实体集 B 中有 n 个实体 (n≥0) 与之联系,反之,对于实体集 B 中的每 一个实体,实体集 A 中也有 m 个实体 (m≥0) 与之联系, 则称实体集 A 与 B 具有多对多联系,记为 m : n 。 学生实体和教师实体:一个学生可以有多个老师教 授,一个老师可以教多名学生 二、实体 - 联系数据模型 两个实体集之间的联系分为三类: 数据模型 数据库系统概述
E-R 图的表示: 实体型:用矩形表示,矩形框内写明实体名。 属性:用椭圆形表示,椭圆形内写明属性名, 并用无向边将其与相应的实体连接起来。 联系:用菱形表示,菱形框内写明联系名, 并用无向边分别与有关实体或联系连接起来, 同时在无向边旁标上联系的类型。 数据模型 数据库系统概述 二、实体 - 联系数据模型
例:在学生选课子系统中涉及到的实体以及 实体的属性为: 学生实体:学号、姓名、性别 课程实体:编号、名称、性质、学分 有关的语义如下: 每个学生可以选修多门课程; 每门课程可以被多个学生选修; 每个学生选修的每门课程都有一个成绩。 可见学生实体和课程实体之间是多对多的联 系,而且联系也有属性,其属性为成绩。 二、实体 - 联系数据模型 E-R 图 数据模型 数据库系统概述
n m 学生 学生选课子系统 E-R 图 课程 选修 学号 姓名性别 编号名称性质 学分 成绩 二、实体 - 联系数据模型 E-R 图 数据模型 数据库系统概述
关系数据库 基本术语如下: 关系 (Relation) :一个关系对应一张二维 表。 元组 (Tuple) :表中的一行即为一个元组。 属性 (Atturibute) :表中的一列即为一个 属性,每一列的第一行是属性名,其余 行是属性值。 候选码:表中的某个属性或属性组合, 它可以唯一的标识一个元组 主码:在多个候选码中选择一个作为主 码 关系模型的基本概念 一、关系数据结构 学号姓名性别 蔡汶庭 女 宋艳美 女 苗圆圆 女 曹永玲 女 王丹波 女 邓玮玮 女
关系数据库 关系应满足如下性质: 关系必须是规范化的,即要求关系必须满足一定的 规范条件,其中最基本的一条就是,关系的每一列 不可再分。 关系中必须有主码,使得元组唯一。如学生关系中, 学号属性是主码,课程关系中,编号是主码,选修 关系中,学号和编号一起是主码。 关系模型的基本概念 一、关系数据结构
元组的个数是有 限的且元组的顺 序可以任意交换。 属性名是唯一的 且属性列的顺序 可以任意交换。 姓名学号性别 苗圆圆 女 曹永玲 女 蔡汶庭 女 宋艳美 女
实体完整性规则 主码的属性值不能为空值。因为如果出现空值, 那么主码就无法保证元组的唯一性。 参照完整性规则 关系之间的联系是靠公共属性实现的 如果这个公共属性是一个关系 R1 的主码,那么在 另一个与它有联系的关系 R2 中就称为外码。 二、关系完整性规则 关系数据库 关系模型的基本概念
学号姓名性别 蔡汶庭女 宋艳美女 苗圆圆女 曹永玲女 学号课程成绩 大学计算机基础 程序设计 大学计算机基础 大学英语 75 学生表 选课表 选课表中的学号是外码 参照完整性规则:外码的取值只有两种可能,要么是空 值,要么等于 R1 中某个元组的主码值。
用户定义完整性 反映某一具体应用所涉及的数据必须满足的语义要 求。 二、关系完整性规则 关系数据库 关系模型的基本概念
关系操作的对象是关系,结果也是关系。 查询:就是在一个关系或多个关系中查找满足条件的列 或行,得到一个新的关系。 插入:在指定的关系中插入一个或多个元组。 删除:将指定关系中的一个或多个满足条件的元组删除。 修改:针对指定关系中满足条件的一个或多个元组修改 其数据项的值。 三、关系操作 关系数据库 关系模型的基本概念
数据库设计 应能真实、充分地反映现实世界, 是现实世界中具体应用的一个真实 模型 易于向关系等各种数据逻辑模型转 换。 概念结构设计
E-R图向关系模型的转换 转换原则: ⒈ 一个实体型转换为一个关系模式。 关系的属性 关系的属性:实体型的属性 关系的码 关系的码:实体型的码 例如:学生实体可以转换为如下关系模式: 学生(学号,姓名,性别) 课程(课程编号,课程名称,性质,学分) n m 学生 学生选课子系统 E-R 图 课程 选修 学号 姓名性别 编号名称性质 学分 成绩 数据库设计 逻辑结构设计
⒉ 一个 m:n 联系转换为一个关系模式。 关系的属性 关系的属性:与该联系相连的各实体的码以及联系 本身的属性 关系的码 关系的码:各实体码的组合 例, “ 选修 ” 联系是一个 m:n 联系,可以将它转换为如下 关系模式,其中学号与课程号为关系的组合码: 选修(学号,课程号,成绩) E-R 图向关系模型的转换 数据库设计 逻辑结构设计 n m 学生 课程 选修 成绩
选修表 学号课程号成绩 课程表 课程号课程名称课程性质 1 大学计算机基础必修 2 程序设计语言必修 学号姓名性别 蔡汶庭女 宋艳美女 学生表
⒊ 一个 1:n 联系可以转换为一个独立的关系模式,也可以 与 n 端对应的关系模式合并。 1) 转换为一个独立的关系模式 关系的属性 关系的属性:与该联系相连的各实体的码 以及联系本身的属性 关系的码 关系的码: n 端实体的码 E-R 图向关系模型的转换 数据库设计 逻辑结构设计
例如: “ 组成 ” 联系为 1:n 联系。 将其转换为关系模式的两种方法: 1) 使其成为一个独立的关系模式: 组成(学号,班号) 2) 将其学生关系模式合并: 学生(学号,姓名,性别,班号) E-R 图向关系模型的转换 n 1 学生 班级 组成 学号 姓名性别 班号名称 人数 数据库设计 逻辑结构设计
2) 与 n 端对应的关系模式合并 合并后关系的属性 合并后关系的属性:在 n 端关系中加入 1 端关系的码和联系本身的属性 合并后关系的码 合并后关系的码:不变 可以减少系统中的关系个数,一般情况下更倾向于采 用这种方法 E-R 图向关系模型的转换 数据库设计 逻辑结构设计
⒋ 一个 1:1 联系可以转换为一个独立的关系模式,也可以 与任意一端对应的关系模式合并。 1) 转换为一个独立的关系模式 关系的属性 关系的属性:与该联系相连的各实体的码 以及联系本身的属性 关系的候选码 关系的候选码:每个实体的码均是该关系 的候选码 E-R 图向关系模型的转换 数据库设计 逻辑结构设计
2) 与某一端对应的关系模式合并 合并后关系的属性 合并后关系的属性:加入对应关系的 码和联系本身的属性 合并后关系的码 合并后关系的码:不变 E-R 图向关系模型的转换 数据库设计 逻辑结构设计
例如:班主任和班级的 “ 管理 ” 联系为 1:1 联系,可以有三种转换方 法: ( 1 )转换为一个独立的关系模式: 管理(职工号,班号)或管理(班号,职工号) ( 2 ) “ 管理 ” 联系与班级关系模式合并,则只需在班级关系中加 入教师关系的码,即职工号: 班级(班号,学生人数,职工号) ( 3 ) “ 管理 ” 联系与教师关系模式合并,则只需在教师关系中加 入班级关系的码,即班级号: 教师(职工号,姓名,性别,职称,班号) E-R 图向关系模型的转换 数据库设计 逻辑结构设计
小结 数据库、数据库管理系统、数据库系统的概念及 数据库系统的特点 数据库的三级模式两级映射 实体 - 联系模型的基本概念和 E-R 图的画法 关系数据库的基本概念及性质,关系的完整性规 则 数据库的逻辑结构设计
作业题 习题 6: 6-1 6-2