第四章 关系型数据库规范设计

更新时间:2023-06-05 11:29:01 阅读量: 实用文档 文档下载

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

Data Base System

第四章

关系型数据库规范设计

本章主要内容4.1 4.2 4.3 4.4 关系模式的设计问题 函数依赖 关系模式的分解特性 关系模式的范式

Data Base System

S#

SNAME

SDEPT

C# CNAME

TIME

GRADE

S#、SNAME、SDEPT、 C#、CNAME、TIME、 S#、C#、GRADE

SQL

用户

SQL数据库的体系结构

CNAME_SNAME_GRADE (C#,S#,GRADE) View V1

View V2

外模式 模式

Base Table Base Table Base Table B1 B2 C(C#、CNAME、TIME) B3S (S#、SNAME、SDEPT)

SC(S#、C#、GRADE)

Base Table B4

……Stored File S1 Stored File S1 内模式

Stored File S1

Stored File S1

SQL语言支持的关系数据库的三级模式结构

4.1关系模式的设计问题对于一个现实问题,它有一个属性集U,其中每个 属性Ai对应一个值域DOM(Ai),它由属性集U 和U上成立的数据完整性约束集组成。关系r是 关系模式R(U)的当前值,是一个元组的集合。 这里的关系模式和关系一般称为泛关系模式和泛 R(S#、SNAME、SDEPT、C#、CNAME、TIME、 S#、C#、GRADE) 关系。但是对于许多现实问题,往往R(U)不是恰当的形式,必须 用一个关系模式的集合p={R1,R2,……Rk}来代替R(U), 这里的p称为数据库模式。对数据库模式的每一个关系模 式赋予一个当前值,就得到一个数据库实例(数据库)。 S (S#、SNAME、SDEPT) C(C#、CNAME、TIME) SC(S#、C#、GRADE)

Data Base System

4.1关系模式的设计问题

什么是好的数据库设计 体现客观世界的信息

无过度的冗余

Data Base System

无插入异常

无更新复杂 无删除异常

4.1关系模式的设计问题TNAME ADDRESS C# CNAME

Data Base System

t1 t1 t1 t2 t2 t3

a1 a1 a1 a2 a2 a3

c1 c2 c3 c4 c5 c6

n1 n2 n3 n4 n2 n4

关系模式R(TNAME,ADDRESS,C#,CNAME)

TNAME

ADDRESS

C#

CNAME

4.1关系模式的设计问题

t1t1 t1 t2

a1a1 a1 a2 a2 a3

c1c2 c3 c4 c5 c6

n1n2 n3 n4 n2 n4

对数据库操作时,会出现以下问题

t2 t3

1、数据冗余:(数据重复存储:浪费存储空间,数据库维护困难) 如一名教师教多门课程,他的地址要重复多次 2、更新异常:如果一个教师教了三门课程,则如果他的地址变 了,三个元组的地址信息都要变。若有一个没变,就会造成 地址不唯一,产生错误信息。 3、插入异常:主键为空的记录不能存在于数据库,导致不能进行 插入操作 如教师没有分配教学任务,就不能插入数据库。 4. 删除异常:删除操作后,会引起一些信息的丢失。 如一个原有教学任务的教师教师现在没有教学任务,要把这 个教师的所有元组都删去。这样就把这个教师的姓名和地址 也从数据库中删去了,不合理。

4.1关系模式的设计问题解决之道:分解! 分解!! 再分解!!!TNAME t1 t1 t1 t2 t2 t3 C# c1 c2 c3 c4 c5 c6 CNAME n1 n2 n3 n4 n2 n4

TNAME

ADDRESS

t1t

2 t3

a1a2 a3

分解为两个模式: R1(TNAME,ADDRESS) R2(TNAME,C#,CNAME)

4.1关系模式的设计问题Sno Sname Sage ssex sdept cno cname

怎么分解最佳?

考虑为学生的选课信息而设计一个关系模式。credit grade

95001 95001 95001 95002 95002

张三 张三 张三 李四 李四

25 25 25 23 23

M M M F F

CS CS CS MA MA

C01 C02 C03 C01 C03

数据库 网络技术 英语 数据库 英语

3 3 4 3 4

95 80 76 80 80

过度冗余——数据重复 更新异常——更新代价大、可能导致数据不一致

删除异常——部分信息的删除可能导致信息的丢失插入异常——必须有完整信息

4.2 函数依赖 (FD, Function Dependence)

y=f(x)Data Base System

y=3x

4.2.1 函数依赖定义 设有关系模式R(A1,A2,...An)或简记为R(U),

Data Base System

X,Y是U的子集,r是R的任一具体关系, 如 果对r的任意两个元组t1,t2,由t1[X]=t2[X]导致 t1[Y]=t2[Y],则称X函数决定Y,或Y函数依赖 于X, 记为X→Y。X→Y为模式R的一个函数 依赖。

如S# Sname, (S#,C#) Grade

该定义理解如下:有一张设计好的二维表, X,Y是表的某些列(可以是一列,也可以是多 列),若在表中的第t1行,和第t2行上的X值相 等, 那么必有t1行和t2行上的Y值也相等,这 就是说Y函数依赖于X。 比如,有如下二维表

在表中,凡成绩相同的,对应的“成绩

Data Base System

等级”也必是相同的,因此,“成绩等 级”函数依赖于"成绩"。 但是反过来则 不成立。 Notice: (1)在这张表中,任何一行的关系均应符 合函数依赖的条件,如果有一行不符合 函数依赖的条件,则函数依赖对于这个 关系就不成立。 (2)函数依赖是否成立是不可证明的,只 能通过属性的含义来判断.

表例学号 姓名 成绩 成绩等级

00001 00002

李里 丁力李小红 马琳 王佳怡 胡林 ......

77 9185 85 66 70 ......

C AB B D C ......

Data Base System

00003 00004 00005 00006 ...

举例:

Data Base System

职工号(A) 基本工资(B) 051 390 052 420 053 390 A B A C B A C A

奖金(C) 50 50 80

4.2.2 函数依赖-几点说明1. 函数依赖是语义范畴的概念.它反映了一 种语义完整性约束,只能根据语义来确定 一个函数依赖.例如,“姓名”-“年龄” 这个函数依赖只有在没有同名人的条件下 成立,否则,此函数依赖不成立。 2. 函数依赖是指关系R模式的所有关系元组 均应满足的约束条件,而不是关系模式中 的某个或某些元组满足的约束条件。

Data Base System

4.2.2 函数依赖-几点说明3. 函数依赖与属性间的联系类型有关 (1)若属性X和Y之间有“一对一”的联系, 则X Y,Y X,X Y.(如不存在同名的学号和姓名) (2)若属性X和Y之间有“多对一”的联系, 则X Y,但Y X. (3)若属性X和Y之间有“多对多”的联系, 则X与Y之

间不存在任何函数依赖. 当确定函数依赖关系时,可从属性间的联系入手

Data Base System

函数依赖 (FD, Function Dependence)

Data Base System

y=f(x) y=3x 2 y=x2=x2 y

X=1 y=3; X=2 y=6; X=1 y=1;

y=3 x=1; y=6 x=2; y=1 x=1or x=-1;

X=-2 y=4;

问:X、Y是谁函数依赖谁?是X函数依赖Y?还是Y函数依赖X? 答:Y函数依赖X(X函数决定Y) x=1 y=1or y=-1; y=1 x=1or x=-1;

问:X、Y是谁函数依赖谁?是X函数依赖Y?还是Y函数依赖X?

答:没有任何函数依赖关系

4.2.2 函数依赖-几点说明 4. 如果X → Y,并且Y不是X的子集,则称X → Y是 非平凡的函数依赖;如果Y是X的子集,则称X→Y是平凡的函数依赖; 我们讨论的是非平凡的函数依赖.例如:(S#,SN) SN是平凡的函数依赖

Data Base System

5. 函数依赖的存在,决定了自然连接的特性 设关系模式R(X,Y,Z),X,Y,Z为不相交的属性集 合,若X→Y,X → Z, 则有R(X,Y,Z)=R(X,Y) R(X,Z) 即用它们的自然连接可复员原关系模式

举例:关系模式S(S#,SN,C#,G,CN,TN,TA)主键:(S#,C#)

函数依赖:S# SN(每个学生只能有一个姓名)

Data Base System

C# CN(每个课程号只能对应一门课程)TN TA(每个教师只能有一个年龄) (S#,C#) G(每个学生学习一门课程只 能有一个成绩)

4.2.2 函数依赖A 1 3 3 7 9 B 4 5 4 3 1 C 2 6 6 8 0

Data Base System

说明关系是否满足下列函数依赖: A B A C AB C C A AC B

不满足A B,因为(3,5,6)和(3,4,6), t1(A)=t2(A)=3,但是t1(B)=5而t2(A)=4A C AB C C A

4.2.3 键 定义

Data Base System

–超键:设X为关系R的属性或属性组,U为R的元 组若X U,则称X为R的超键。 –候选键:设X为R的超键,若X中不含多余属性, 则称X为R的候选键。 –主键:若关系R有多个候选键,则可以从中选 定一个作为R的主键。 –主属性:包含在任何一个候选键中的属性,称 作主属性,不包含在任何键中的属性称为非主 属性。 –全键:关系模式的键由整个属性组构成。 如(S#,C#,T#)

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

Top