数据库系统基础教程(3) 教材第二、三、四章结合

更新时间:2023-07-25 14:56:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

U

第三章 关系数据模型 主要解决问题:– 关系数据模型是什么? – 如何将E/R模型转变为关系数据模型? – 如何使关系模型满足一定规范形式(范式)?

U

3.1 关系模型的基础 关系(relation):

– 由若干列和行组成的一个二维表,称为一个关系, 即一个表table。 – 表示数据结构和数据集合的一种简单方式。 –一个关系有一个名称。Movies

title Star Wars Wayne’s World Mighty Ducks …

year 1977 1992 1991 …

length 124 95 104 …

filmType color color color …

U

3.1.1 属性(attribute) 属性:– 一个关系中某一列的名称,描述一列数据的 含义。如Movies中的length。 – 一个属性有一个名称。 –一个关系中的多个属性不能重名。

U

3.1.2 模式(schema) 关系模式(relational schema):– 一个关系的名称及其一组属性的集合,称为一 个“关系模式”。 – 表示为:关系名(属性1, 属性2, …, 属性n) 例如:movies (title, year, length, fileType) – 一个数据库包含一个或多个关系模式。 –一组关系模式的集合,称为一个“关系数据库 模式”,或“数据库模式”。

一个关系模式中的各属性排列有次序吗?– 没有。 –但方便起见,一个关系设有一个“缺省次序”。

U

3.1.3 元组(tuple) 元组:– 一个关系中除了属性标题之外的一行数据。 – 一个关系中可能没有元组。 –一个元组(行)在每个属性(列)上有一个交叉,即 一个分量(component)。

元组的表示:– 按照关系模式,用逗号分割每个分量。 – 例:(Star Wars, 1977, 124, color ) –注意:不表示属性名称,按照关系模式中属性 的次序表示各分量的值。

U

3.1.3 元组(tuple) 元组和对象之间的对应关系:– 一个关系可粗略对应一个类。 – 一个元组可粗略对应一个对象。 –一个元组的一个分量对应一个对象在某属性上 的一个值。

元组和对象之间的区别:– 对象自身具有标识(OID);无需人为定义键。 –一个关系中的元组在关系中不能出现多次;而 类中的一组对象的属性值可以相同。

U

3.1.4 域(domain) 域:–关系模型要求每个元组的每个分量有原子性。 – 一 个 域 是 一 种 基 本 数 据 类 型 , 如 integer, char(n)/string, date, time等,或常量。 – 一个关系中每个属性都属于某个域,即一种基 本数据类型。

原子性atomic :– 没有内部结构,不能再分解的基本数据类型。 –原子性往往相对而言,与软件需求相关。

U

3.1.5 关系的等价表示 一个关系有多种等价表示:– 改变关系中属性的排列次序,即改变列次序,不改 变关系的含义。注意,各分量对应各列。 –改变关系中元组的排列次序,即改变行次序,不改

变关系的含义。title Star Wars Mighty Ducks Wayne’s World year 1977 1991 1992 length 124 104 95 filmType color color color

U

3.1.6 关系的实例 关系的模式与元组之间的关系:– 关系模式相对静态;而关系中的元组是动态的。 –元组的增、删、改必须按关系模式进行。

实例(instance):– 关系中的元组的集合即为该关系的一个实例。 –关系的实例所时间变化,“当前实例”指的是在 当前时刻,某关系中的元组。

U

3.2 从E/R图到关系设计 如何把E/R模型转换为关系设计? 内容:– 实体集到关系的转换 –E/R联系到关系的转换 – 弱实体集的处理

U

3.2.1 实体集到关系的转换 非弱实体集转换为关系设计 :–建立相同名称的关系,且具有相同属性。titlelength {20-240}

yearMovies filmTypeOwns Starsin

nam e<=10

address Stars nam e Studios address

Movies (title, year, length, filmType)

Stars (name, address)Studios (name, address)

U

3.2.2 E/R联系到关系的转换 多元联系转换为关系设计:–先转换为二元联系,再按下面方法转换。

二元联系转换为关系设计(根据多重性来处理):

–E1到E2的多对多联系R:R表示为一个关系,其属性是E1和 E2的键属性,加上自身属性。 –E1 到 E2 的多对 1 联系 R : R 可表示为一个关系,但不是必须。 –E1到E2的1对1联系R:R可表示为一个关系,但通常不表示 为关系。而采用以下两种方式: l 在E1关系中增加E2关系的键,E2作为被参照关系。 l 在E2关系中增加E1关系的键,E1作为被参照关系。 1对1联系可能被合并为一个关系。

U

3.2.2 E/R联系到关系的转换Stars-in (title, year, starName) 两边的键属性,加上自身属性 属性可以改名,使之更清晰。title Star Wars Star Wars Star Wars Mighty Ducks Wayne’s World Wayne’s World year 1977 1977 1977 1991 1992 1992 starName Carrie Fisher Mark Hamill Harrison Ford Emilio CAevey Dana Carvey Mike Meyers

U

3.2.2 E/R联系到关系的转换Owns (title, year, studioName)title Star Wars Mighty Ducks Wayne’s World year 1977 1991 1992 studioName Fox Disney Paramount

多对1的关系往往可以合并到多的一方: Movies (title, year, length, filmType, studioName)title year length filmType studioName

Star Wars Mighty Ducks Wayne’s World

1977 1991 1992

124 104 95

color color color

Fox Disney Paramount

U

3.2.3 处理弱实体集 弱实体集转换为关系设计 :ER

F

– 弱实体集E表示为一个关系,包含自身属性和 F关系的键属性。 –关系R不能表示为一个关系。

U

3.2.3 处理弱实体集

numberCrewsUnit-of

nam e

address Studios

Studios (name, address) Crews (studioName, number) 联系Unit-of不能成为一个关系

U

3.2.3 处理弱实体集year title Signdate Salary Star-of name

Movies

Movie-of

ContractsStudio-of

Starsaddr

Studi

osnameaddr

Contracts (starName, studioName, title, year, salary, signdate)

U

name Department

as header

empid Salesman

idno name gender

name custid Customer prov

cityphone

deptid

works for runs for

phone

sales for orderno signdate

unit

Salesorder

unit-of lineno

Salesitem

salescost quantity

containstype spec price Product prodid factory desc

销售业务数据库

转换为关系模式

U

3.3 子类结构到关系的转换 E/R方式 把实体看做单个类的对象 使用空值NULL合并子类关系。

U

3.4 函数依赖 用形式化方法研究一个关系中各属性之 间的语义关系。 内容:–函数依赖的定义 –关系的键 –超键 –从E/R图中发掘键

U

3.4.1 函数依赖的定义 函数依赖的定义:– 若关系R的任意两个元组在属性A1、A2、…、 An 上一致 ( 即有相同分量值 ) ,则这两个元组 在属性B上也一致,则称属性A1A2…An函数决 定B,或称属性B函数依赖于A1A2…An。A B

记为:A1A2…An → B

t u若 t 和 u 在 A 上一致 , 则在B上也一致

本文来源:https://www.bwwdw.com/article/qbqm.html

Top