数据库考试重点总结

第一章

1 .试述数据、数据库、数据库系统、数据库管理系统的概念。

答:

( l )数据( Data ) :描述事物的符号记录称为数据。数据的种类有数字、文字、图形、图像、声音、正文等。数据与其语义是不可分的。解析在现代计算机系统中数据的概念是广义的。早期的计算机系统主要用于科学计算,处理的数据是整数、实数、浮点数等传统数学中的数据。现代计算机能存储和处理的对象十分广泛,表示这些对象的数据也越来越复杂。数据与其语义是不可分的。 500 这个数字可以表示一件物品的价格是 500 元,也可以表示一个学术会议参加的人数有 500 人,还可以表示一袋奶粉重 500 克。

( 2 )数据库( DataBase ,简称 DB ) :数据库是长期储存在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。

( 3 )数据库系统( DataBas 。 Sytem ,简称 DBS ) :数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。解析数据库系统和数据库是两个概念。数据库系统是一个人一机系统,数据库是数据库系统的一个组成部分。但是在日常工作中人们常常把数据库系统简称为数据库。希望读者能够从人们讲话或文章的上下文中区分“数据库系统”和“数据库”,不要引起混淆。

( 4 )数据库管理系统( DataBase Management sytem ,简称 DBMs ) :数据库管理系统是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。 DBMS 的主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。解析 DBMS 是一个大型的复杂的软件系统,是计算机中的基础软件。目前,专门研制 DBMS 的厂商及其研制的 DBMS 产品很多。著名的有美国 IBM 公司的 DBZ 关系数据库管理系统和 IMS 层次数据库管理系统、美国 Oracle 公司的 orade 关系数据库管理系统、 s 油 ase 公司的 s 油 ase 关系数据库管理系统、美国微软公司的 SQL Serve ,关系数据库管理系统等。

5 .试述数据库系统的特点。

答:

数据库系统的主要特点有:

 ( l )数据结构化数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。解析注意这里的“整体’夕两个字。在数据库系统中,数据不再针对某一个应用,而是面向全组织,具有整体的结构化。不仅数据是结构化的,而且数据的存取单位即一次可以存取数据的大小也很灵活,可以小到某一个数据项(如一个学生的姓名),大到一组记录(成千上万个学生记录)。而在文件系统中,数据的存取单位只有一个:记录,如一个学生的完整记录。

 ( 2 )数据的共享性高,冗余度低,易扩充数据库的数据不再面向某个应用而是面向整个系统,因此可以被多个用户、多个应用以多种不同的语言共享使用。由于数据面向整个系统,是有结构的数据,不仅可以被多个应用共享使用,而且容易增加新的应用,这就使得数据库系统弹性大,易于扩充。解析数据共享可以大大减少数据冗余,节约存储空间,同时还能够避免数据之间的不相容性与不一致性。所谓“数据面向某个应用”是指数据结构是针对某个应用设计的,只被这个应用程序或应用系统使用,可以说数据是某个应用的“私有资源”。所谓“弹性大”是指系统容易扩充也容易收缩,即应用增加或减少时不必修改整个数据库的结构,只需做很少的改动。可以取整体数据的各种子集用于不同的应用系统,当应用需求改变或增加时,只要重新选取不同的子集或加上一部分数据,便可以满足新的需求。

 ( 3 )数据独立性高数据独立性包括数据的物理独立性和数据的逻辑独立性。数据库管理系统的模式结构和二级映像功能保证了数据库中的数据具有很高的物理独立性和逻辑独立性。

( 4 )数据由 DBMS 统一管理和控制数据库的共享是并发的共享,即多个用户可以同时存取数据库中的数据甚至可以同时存取数据库中同一个数据。为此, DBMS 必须提供统一的数据控制功能,包括数据的安全性保护、数据的完整性检查、并发控制和数据库恢复。解析 DBMS 数据控制功能包括四个方面:数据的安全性保护:保护数据以防止不合法的使用造成的数据的泄密和破坏;数据的完整性检查:将数据控制在有效的范围内,或保证数据之间满足一定的关系;并发控制:对多用户的并发操作加以控制和协调,保证并发操作的正确性;数据库恢复:当计算机系统发生硬件故障、软件故障,或者由于操作员的失误以及故意的破坏影响数据库中数据的正确性,甚至造成数据库部分或全部数据的丢失时,能将数据库从错误状态恢复到某一已知的正确状态(亦称为完整状态或一致状态)。下面可以得到“什么是数据库”的一个定义:数据库是长期存储在计算机内有组织的大量的共享的数据集合,它可以供各种用户共享,具有最小冗余度和较高的数据独立性。 DBMS 在数据库建立、运用和维护时对数据库进行统一控制,以保证数据的完整性、安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对系统进行恢复。数据库系统的出现使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段。

6 .数据库管理系统的主要功能有哪些?

答:

( l )数据库定义功能;

( 2 )数据存取功能;

( 3 )数据库运行管理;

( 4 )数据库的建立和维护功能。

7 .试述数据模型的概念、数据模型的作用和数据模型的三个要素。

答:

数据模型是数据库中用来对现实世界进行抽象的工具,是数据库中用于提供信息表示和操作手段的形式构架。一般地讲,数据模型是严格定义的概念的集合。这些概念精确描述了系统的静态特性、动态特性和完整性约束条件。因此数据模型通常由数据结构、数据操作和完整性约束三部分组成。

 ( l )数据结构:是所研究的对象类型的集合,是对系统静态特性的描述。

 ( 2 )数据操作:是指对数据库中各种对象(型)的实例(值)允许进行的操作的集合,包括操作及有关的操作规则,是对系统动态特性的描述。

 ( 3 )数据的约束条件:是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。解析数据模型是数据库系统中最重要的概念之一。必须通过 《 概论 》 的学习真正掌握数据模型的概念和作用。数据模型是数据库系统的基础。任何一个 DBMS 都以某一个数据模型为基础,或者说支持某一个数据模型。数据库系统中,模型有不同的层次。根据模型应用的不同目的,可以将模型分成两类或者说两个层次:一类是概念模型,是按用户的观点来对数据和信息建模,用于信息世界的建模,强调语义表达能力,概念简单清晰;另一类是数据模型,是按计算机系统的观点对数据建模,用于机器世界,人们可以用它定义、操纵数据库中的数据,一般需要有严格的形式化定义和一组严格定义了语法和语义的语言,并有一些规定和限制,便于在机器上实现。

8 .试述概念模型的作用。

答:

概念模型实际上是现实世界到机器世界的一个中间层次。概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言。

(重在理解)9 .定义并解释概念模型中以下术语:实体,实体型,实体集,属性,码,实体联系图( E 一 R 图)

答:

实体:客观存在并可以相互区分的事物叫实体。实体型:具有相同属性的实体具有相同的特征和性质,用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。实体集:同型实体的集合称为实体集。属性:实体所具有的某一特性,一个实体可由若干个属性来刻画。码:惟一标识实体的属性集称为码。实体联系图( E 一 R 图):提供了表示实体型、属性和联系的方法: · 实体型:用矩形表示,矩形框内写明实体名; · 属性:用椭圆形表示,并用无向边将其与相应的实体连接起来; · 联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型( 1 : 1 , 1 : n 或 m : n )。

(重在理解)18 .试述关系模型的概念,定义并解释以下术语: ( l )关系( 2 )属性( 3 )域( 4 )元组 ( 5 )主码( 6 )分量( 7 )关系模式

答:

关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。 ( l )关系:一个关系对应通常说的一张表; ( 2 )属性:表中的一列即为一个属性; ( 3 )域:属性的取值范围; ( 4 )元组:表中的一行即为一个元组; ( 5 )主码:表中的某个属性组,它可以惟一确定一个元组; ( 6 )分量:元组中的一个属性值; ( 7 )关系模式:对关系的描述,一般表示为关系名(属性 1 ,属性 2 , … ,属性 n )

19 .试述关系数据库的特点。

答:

关系数据模型具有下列优点: ( l )关系模型与非关系模型不同,它是建立在严格的数学概念的基础上的。 ( 2 )关系模型的概念单一,无论实体还是实体之间的联系都用关系表示,操作的对象和操作的结果都是关系,所以其数据结构简单、清晰,用户易懂易用。 ( 3 )关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。当然,关系数据模型也有缺点,其中最主要的缺点是,由于存取路径对用户透明,查询效率往往不如非关系数据模型。因此为了提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度。

20 .试述数据库系统三级模式结构,这种结构的优点是什么?

答:

数据库系统的三级模式结构由外模式、模式和内模式组成。(参见书上图 1 . 29 ) 外模式,亦称子模式或用户模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。模式,亦称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。模式描述的是数据的全局逻辑结构。外模式涉及的是数据的局部逻辑结构,通常是模式的子集。内模式,亦称存储模式,是数据在数据库系统内部的表示,即对数据的物理结构和存储方式的描述。数据库系统的三级模式是对数据的三个抽象级别,它把数据的具体组织留给 DBMs 管理,使用户能逻辑抽象地处理数据,而不必关心数据在计算机中的表示和存储。为了能够在内部实现这三个抽象层次的联系和转换,数据库系统在这三级模式之间提供了两层映像:外模式/模式映像和模式/内模式映像。正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。

21 .定义并解释以下术语:模式、外模式、内模式、 DDL 、 DML 模式、外模式、内模式,亦称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。模式描述的是数据的全局逻辑结构。外模式涉及的是数据的局部逻辑结构,通常是模式的子集。内模式,亦称存储模式,是数据在数据库系统内部的表示,即对数据的物理结构和存储方式的描述。 DDL :数据定义语言,用来定义数据库模式、外模式、内模式的语言。 DML :数据操纵语言,用来对数据库中的数据进行查询、插入、删除和修改的语句。

 第二章

1 .试述关系模型的三个组成部分。


答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。

3.题见教材

4 .试述关系模型的完整性规则。在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空?

答:实体完整性规则是指若属性A是基本关系R的主属性,则属性A不能取空值。

若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。即属性F本身不是主属性,则可以取空值,否则不能取空值。

(认真理解,根据要求回答问题)

等值连接是关系运算-连接运算的一种常用的连接方式。是条件连接(或称θ连接)在连接运算符为“=”号时(即θ=0时)的一个特例。

它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组

自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉

等值连接表示为R A=BS,自然连接表示为R S;自然连接是除去重复属性的等值连接。两者之间的区别和联系如下:

1、自然连接一定是等值连接,但等值连接不一定是自然连接。

2、等值连接要求相等的分量,不一定是公共属性;而自然连接要求相等的分量必须是公共属性。

3、等值连接不把重复的属性除去;而自然连接要把重复的属性除去。

关系代数基本运算的类型:并、交、差、笛卡尔积

第三章

在E:\ 目录下建立数据库文件STUDENT,其主文件逻辑文件名为STUDENT_DATA,初始容量25MB,最大容量500MB,允许按20%比例增长;其日志文件逻辑文件名STUDENT_LOG,初始容量18MB,最大容量300MB,允许按15%比例增长。请写出建立此数据库的命令。

create database STUDENT

on

(name =STUDENT_DATA,

 filename='E:\STUDENT_DATA.mdf',

 size=25mb,

 maxsize=500mb,

 filegrowth=20%)

log on

(name =STUDENT_LOG,

 filename='E:\STUDENT_LOG.LDF',

 size=18mb,

 maxsize=300mb,

 filegrowth=15%)

建立基本表

例5:建立一个“学生”表Student

CREAT TABLE Student

(Sno CHAR(9) PRIMARY KEY,

Sname CHAR(20) UNIQUE,

Ssex CHAR(2),

Sage SMALLINT,

Sdept CHAR(20)

);

例6:建立一个“课程”表Course

CREAT TABLE Course

(Cno CHAR(4) PRIMARY KEY,

Cname CHAR(40),

Cpno CHAR(4),

Ccredit SMALLINT,

FOREIGN KEY Cpno REFERENCES Course(Cno)

);

例7:建立学生选课表SC

CREAT TABLE SC

(Sno CHAR(9),

Cno CHAR(4),

Grade SMALLINT,

PRIMARY KEY (Sno,Cno),

FOREIGN KEY Sno REFERENCES Student(Sno),

FOREIGN KEY Cno REFERENCES Course(Cno)

);

按要求写SQL语句

例1:查询全体学生的学号与姓名

SELECT Sno,Sname

FROM Student;

例2:查询全体学生的姓名、学号、所在系

SELECT Sname,Sno,Sdept

FROM Student;

例3:查询全体学生的详细记录

SELECT *

FROM Student;

例6:查询选修了课程的学生学号

SELECT Sno

FROM SC;

例7:查询计算机科学系全体学生的名单

SELECT Sname

FROM Student

WHERE Sdept=’CS’;

例8:查询所有年龄在20岁一下的学生姓名及年龄

SELECT Sname,Sage

FROM Student

WHERE Sage<20;

例9:查询考试成绩有不及格的学生的学号

SELECT DISTINCT Sno

FROM SC

WHERE Grade<60;

例15:查询所有姓刘的学生的姓名、学号和性别

SELECT Sname,Sno,Ssex

FROM Student

WHERE Sname LIKE’刘%’;

例16:查询姓“欧阳”且全名为3个汉字的学生的姓名

SELECT Sname

FROM Student

WHERE Sname LIKE’欧阳_’;

注意:数据库字符集为ASCII时一个汉字需要两个__,当字符集为GBK时只需要一个_。

例17:查询名字中第二个字为“阳”字的学生的姓名和学号

SELECT Sname,Sno

FROM Student

WHERE Sname LIKE’_阳%’;

例18:查询所有不姓刘的学生姓名

SELECT Sname

FROM Student

WHERE Sname NOT LIKE’刘%’;

例26:查询学生总人数

SELECT COUNT(*)

FROM Student

例27:查询选修了课程的学生人数

SELECT COUNT(DISTINCT Sno)

FROM SC;

例28:计算1号课程的学生平均成绩

SELECT AVG(Grade)

FROM SC

WHERE Cno=’1’;

例29:查询选修1号课程的学生最高分数

SELECT MAX(Grade)

FROM SC

WHERE Cno=’1’;

例30:查询学生200215012选修课程的总学分数

SELECT SUM(Ccredit)

FROM SC,Course

WHERE Sno=’200215012’AND SC.Cno=Course.Cno;

例31:求各个课程号及相应的选课人数

SELECT Cno,COUNT(Sno)

FROM SC

GROUP BY Cno;

例32:查询选修了3门以上课程的学生学号

SELECT Sno

FROM SC

GROUP BY Sno

HAVING COUNT(*)>3;

例33:查询每个学生及其选修课程的情况

SELECT Student.*,SC.*

FROM Student,SC

WHERE Student.Sno=SC.Sno;

例37:查询选修2号课程且成绩在90分以上的所有学生

SELECT Student.Sno,Sname

FROM Student,SC

WHERE Student.Sno=SC.Sno AND SC.Cno=’2’AND SC.Grade>90;

例39:查询与“刘晨”在同一个系的学生

SELECT Sno,Sname,Sdept

FROM Student

WHERE Sdept IN

(SELECT Sdept

FROM Student

WHERE Sname=’刘晨’;)

例40:查询选修了课程名为“信息系统”的学生的学号和姓名

SELECT Sno,Sname

FROM Student

WHERE Sno IN

(SELECT Sno

FROM SC

WHERE Cno IN

    (SELECT Cno

    FROM Course

    WHERE Cname=’信息系统’

    )

);

3.5节

例1:讲一个新学生元组(学号:200215128;姓名:陈冬;性别:男;所在系:IS;年龄:18岁)插入到Student表中

INSERT

INTO Student (Sno,Sname,Ssex,Sdept,Sage)

VALUES (‘200215128’,’陈冬’,’男’,’IS’,18);

例2:将学生张成民的信息插入到Student表中

INSERT

INTO Student

VALUES (‘200215126’,’张成民’,’男’,18,’CS’);

例3:插入一条选课记录(’200215128’,’1’)

INSERT

INTO SC(Sno,Cno)

VALUES(‘200215128’,’1’);

例5:将学生200215121的年龄改为22岁

UPDATE Student

SET Sage=22

WHERE Sno=’200215121’;

例6:将所有学生的年龄增加1岁

UPDATE Student

SET Sage=Sage+1;

例8:删除学号为200215128的学生记录

DELETE

FROM Student

WHERE Sno=’200215128’;

例9:删除所有学生选课记录

DELETE

FROM SC;

3.6节

例1:建立信息系学生的试图

CREATE VIEW IS_Student

AS

SELECT Sno,Sname,Sage

FROM Student

WHERE Sdept=’IS’;

2 .试述 sQL 的定义功能。

sQL 的数据定义功能包括定义表、定义视图和定义索引。 SQL 语言使用 cREATE TABLE 语句建立基本表, ALTER TABLE 语句修改基本表定义, DROP TABLE 语句删除基本表;使用 CREATE INDEX 语句建立索引, DROP INDEX 语句删除索引;使用 CREATE VIEW 语句建立视图, DROP VIEW 语句删除视图。

6 .什么是基本表?什么是视图?

两者的区别和联系是什么?基本表是本身独立存在的表,在 sQL 中一个关系就对应一个表。视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图。

7 .试述视图的优点。

( l )视图能够简化用户的操作; ( 2 )视图使用户能以多种角度看待同一数据; ( 3 )视图对重构数据库提供了一定程度的逻辑独立性; ( 4 )视图能够对机密数据提供安全保护。

第六章

第一范式,第二范式和第三范式

是数据库数据间要求的约束条件

第一范式是 数据库最基本的要求,即属性不可分

第二范式 是数据库非主属性对码的部分函数依赖

第三范式 是非主属性对码的传递依赖

举个简单例子吧

一个学生表有学号,姓名,出生年月等属性

假设学号是由两个属性年级号和个人号两个组成,那么这就不是第一范式

假如主键是由学号和姓名联合组成的,出生年月有学号就可以确定,那么这就不是第二范式

假如主键只是学号,出生年月既可以由学号决定又可以由姓名决定,那么这就不是第三范式

关系的规范化

已知有关系模式Student(Sno,Sname,Ssex,Sage,Sdept,Cno,Grade),每个学生选中某门课程后有一个成绩。关系模式中各个属性的含义见下表。

请回答:

(1)该关系模式的主码是什么?该关系模式有哪些数据依赖?

(2)该关系模式属于第几范式?为什么?

(3)将此关系模式分解为高一级范式,并指出分解后各关系模式的主码。

(1)Student的主码是(Sno,Cno),数据依赖是Sno→Sname,Sno→Ssex,Sno→Sage,Sno→Sdept,(Sno,Cno)→Sname,(Sno,Cno)→Ssex,(Sno,Cno)→Sage,(Sno,Cno)→Sdept,(Sno,Cno)→Grade。

(2)因为关系模式Student每个属性都是不可分的数据项,所以Student是1NF(或是1范式)。

又因为Student的主码是(Sno,Cno),而(Sno,Cno)→Sname,Sno→Sname,即非主属性Sname对码(Sno,Cno)存在部分函数依赖,所以Student不是第二范式。

(3)分解为以下两个关系模式:

Student0(Sno,Sname,Ssex,Sage,Sdept),其主码是Sno。由于每个非主属性对码都是完全函数依赖,所以Student0属于2NF。

SC(SnoCno,Grade),其主码是(Sno,Cno)。非主属性Grade对码(Sno,Cno)是完全函数依赖,所以SC属于2NF。

第七章

1.试述数据库设计过程。

答:这里只概要列出数据库设计过程的六个阶段: ( l )需求分析; ( 2 )概念结构设计; ( 3 )逻辑结构设计; ( 4 )数据库物理设计; ( 5 )数据库实施; ( 6 )数据库运行和维护。这是一个完整的实际数据库及其应用系统的设计过程。不仅包括设计数据库本身,还包括数据库的实施、运行和维护。设计一个完善的数据库应用系统往往是上述六个阶段的不断反复。

2 .试述数据库设计过程各个阶段上的设计描述。

答:各阶段的设计要点如下: ( l )需求分析:准确了解与分析用户需求(包括数据与处理)。 ( 2 )概念结构设计:通过对用户需求进行综合、归纳与抽象,形成一个独立于具体 DBMS 的概念模型。 ( 3 )逻辑结构设计:将概念结构转换为某个 DBMS 所支持的数据模型,并对其进行优化。 ( 4 )数据库物理设计:为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。 ( 5 )数据库实施:设计人员运用 DBMS 提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。 ( 6 )数据库运行和维护:在数据库系统运行过程中对其进行评价、调整与修改。

3 .试述数据库设计过程中结构设计部分形成的数据库模式。

答:数据库结构设计的不同阶段形成数据库的各级模式,即: ( l )在概念设计阶段形成独立于机器特点,独立于各个 DBMS 产品的概念模式,在本篇中就是 E 一 R 图; ( 2 )在逻辑设计阶段将 E 一 R 图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式,然后在基本表的基础上再建立必要的视图 ( Vi 娜),形成数据的外模式; ( 3 )在物理设计阶段,根据 DBMS 特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式。

第七章

Er图想关系模型的转换

转换一般遵循如下原则:

1.一个实体型转换为一个关系模式。实体的属性就是关系的属性。实

体的码就是关系的码。

例如在我们的例子中,学生实体可以转换为如下关系模式,其中学号

为学生关系的码:

学生(学号,姓名,出生日期,所在系,年级,平均成绩) 同样,性

别、宿舍、班级、档案材料、教师、课程、教室、教科书都分别转换

为一个关系模式。

2.一个联系转化为一个关系模式,与该联系相连的各实体的码以及联系

的属性转化为关系的属性,该关系的码则有三种情况:

若联系为1:1,则每个实体的码均是该关系的后选码。

若联系为1:n,则关系的码为n端实体的码。

若联系为m:n,则关系的码为诸实体码的组合。

2.1 联系为1:1

一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对

应的关系模式合并。

如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及

联系本身的属性均转换为关系的属性,l 每个实体的码均是

该关系的候选码。

如果与某一端对应的关系模式合并,则需要在该关系模式的属性中加

入另一个关系模式的码和联系本身的属性。

例如在我们的例子中,"管理"联系为1:1联系,我们可以将其转换为

一个独立的关系模式:

管理(职工号,班级号)或 管理(职工号,班级号)

管理"联系也可以与班级或教师关系模式合并。如果与班级关系模式合

并,则只需在班级关系中加入教师关系的码,即职工号:

班级:{班级号,学生人数,职工号}

同样,如果与教师关系模式合并,则只需在教师关系中加入班级关系

的码,即班级号:

教师:{职工号,姓名,性别,职称,班级号,是否为优秀班主任}

2.2 联系为1:n

一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的

关系模式合并。

如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及

联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。

如果与n端对应的关系模式合并,则在n端实体对应模式中加入1端

实体所对应关系模式的码,以及联系本身的属性。而关系的码为n端

实体的码。

例如在我们的例子中,"组成"联系为1:n联系,将其转换为关系模式。

一种方法是使其成为一个独立的关系模式:

组成(学号,班级号)

其中学号为"组成"关系的码。

另一种方法是将其学生关系模式合并,这时学生关系模式为:

学生(学号,姓名,出生日期,所在系,年级,班级号,平均成绩)

后一种方法可以减少系统中的关系个数,一般情况下更倾向于采用这

种方法。

2.3 联系为m:n

一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及

联系本身的属性均转换为关系的属性。而关系的码为各实体码的组合。

例如在我们的例子中,"选修"联系是一个m:n联系,可以将它转换为如

下关系模式,其中学号与课程号为关系的组合码:

选修(学号,课程号,成绩)

三个或三个以上实体间的一个多元联系转换为一个关系模式。与该多

元联系相连的各实体的码以及联系本身的属性均转换为关系的属性。

例如在我们的例子中,"选修"联系是一个m:n联系,可以将它转换为如

下关系模式,其中学号与课程号为关系的组合码:

选修(学号,课程号,成绩)

三个或三个以上实体间的一个多元联系转换为一个关系模式。与该多

元联系相连的各实体的码以及联系本身的属性均转换为关系的属性。

而关系的码为各实体码的组合。

例如在我们的例子中,"讲授"联系是一个三元联系,可以将它转换为

如下

关系模式,其中课程号、教师号和书号为关系的组合码:  

讲授(课程号,教师号,书号)

3.同一实体集的实体间的联系,即自联系,也可按上述1:1、1:n和

m:n三种情况分别处理。

例如,如果教师实体集内部存在领导与被领导的1:n自联系,我们可

以将该联系与教师实体合并,这时主码职工号将多次出现,但作用不

同,可用不同的属性名加以区分,比如在合并后的关系模式中,主码

仍为职工号,再增设一个"系主任"属性,存放相应系主任的职工号。

4.具有相同码的关系模式可合并。

为了减少系统中的关系个数,如果两个关系模式具有相同的主码,可

以考虑将他们合并为一个关系模式。合并方法是将其中一个关系模式

的全部属性加入到另一个关系模式中,然后去掉其中的同义属性(可

能同名也可能不同名),并适当调整属性的次序。

例如我们有一个"拥有"关系模式:拥有(学号,性别)

有一个学生关系模式: 学生(学号,姓名,出生日期,所在系,年级,

班级号,平均成绩)

这两个关系模式都以学号为码,我们可以将它们合并为一个关系模式,

假设合并后的关系模式仍叫学生:

学生(学号,姓名,性别,出生日期,所在系,年级,班级号,平均

成绩)

按照上述4条原则,学生管理子系统中的18个实体和联系可以转换为

下列关系模型:

学生(学号,姓名,性别,出生日期,所在系,年级,班级号,平均

成绩,档案号)

性别(性别,宿舍楼)

宿舍(宿舍编号,地址,性别,人数)

班级(班级号,学生人数)

教师(职工号,姓名,性别,职称,班级号,是否为优秀班主任)

教学(职工号,学号)

课程(课程号,课程名,学分,教室号)

选修(学号,课程号,成绩)

教科书(书号,书名,价钱)

教室(教室编号,地址,容量)

讲授(课程号,教师号,书号)

档案材料(档案号,......)

该关系模型由12个关系模式组成。其中学生关系模式包含了"拥有"联

系、"组成"联系、"归档"联系所对应的关系模式;教师关系模式包含

了"管理"联系所对应的关系模式;宿舍关系模式包含了"住宿"联系所

对应的关系模式;课程关系模式包含了"开设"联系所对应的关系模式。

Student

Course

SC

相关推荐