1、第一次一、请解释下列概念或术语1. DBS答:数据库系统(DateBase System,简称 DBS)是指引进数据库技术后的计算机系统,实现有组织地、动态地存储大量相关数据,提供数据处理和信息资源共享的便利手段。数据库系统由五部分组成:硬件系统、数据库集合、数据库管理系统及相关软件、数据库管理员和用户。2. DBMS答:数据库管理系统(DateBase Management System,简称 DBMS),是管理数据库的软件系统。它的主要功能是建立、使用和维护数据库。二、回答问题(以下问题应简单说明各要点,不宜只罗列各要点。)1. 数据库系统的构成2. 数据库管理系统的功能和特点3. 以关系
2、数据模型为例,说明数据模型三要素包含的内容。4. 与文件管理数据相比,数据库管理系统有哪些优点二、1.数据库系统的构成:(一)硬件平台及数据库:(二)软件:(三)人员:最终用户:应用程序员:系统分析员:数据库管理员(DBA):2(1).数据库管理系统的功能:建立、使用和维护数据库。(2)数据库管理系统的特点:数据库管理系统(DBMS):它是为数据库的建立,使用和维护而配置的软件;其特点有:1 数据结构化.2 数据冗余小易扩充,3 数据独立于程序,4 数据由 DBMS统一管理和控制3. 数据模型的三要素:1.数据结构:数据结构用于描述系统的静态特性。在数据库系统中,通常按照其数据结构的类型来命名
3、数据模型。2.数据操作:数据操作用于描述系统的动态特征。数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。操作有检索、插入、删除、修改。3.数据完整性约束:数据完整性约束是一组完整性规则的集合。4. 答:1数据共享性允许不同用户使用同一个数据库,提高了信息利用率。2数据的一体化和结构化数据文件之间互相关联,单个数据文件又能自成一个表。3数据独立性好数据与程序相互独立,改变数据存储结构,对程序没有影响。4冗余度低且可控制5对数据可进行集中统一的控制。三、实体-联系模型设计(教材第 2章习题 8)设有如下两个关系表示,试指出每个关系模式的主码、外码,并
4、说明外码的引用关系。产品(产品号,产品名称,产品价格,生产日期),其中产品名称有重复。销售(产品号,销售时间,销售数量),假设可同时销售多种产品,但同一产品在同一时间只销售一次。产品(产品号,产品名称,产品价格,生产日期)中的产品号是产品实体的主码。销售(产品号,销售时间,销售数量)中的产品号是销售实体的外码。因为产品名有重复,所以产品号作为主码,来确定唯一产品。销售时在不同的时间可以销售同一产品号的产品,所以产品号在销售中为外码。产品和销售关系为一对多(1:N)。第二次一、 回答问题1 请给出关系模式规范化的步骤答:1)对 1NF关系进行投影,消除原关系中非主属性对码的函数依赖,将 1NF关
5、系转换为若干个 2NF关系。2)对 2NF关系进行投影,消除原关系中非主属性对码的传递函数依赖,从而产生一组 3NF关系。3)对 3NF关系进行投影,消除原关系中主属性对码的部分函数依赖和传递函数依赖(也就是说,使决定属性都成为投影的侯选码),得到一组 BCNF关系。以上三步也可以合并为一步:对原关系进行投影,消除决定属性不是侯选码的任何函数依赖。4)对 BCNF关系进行投影,消除原关系中非平凡且非函数依赖的多值依赖,即可得到一组 4NF关系。5)对 4NF关系进行投影,消除原关系中不是由侯选码所蕴含的连接依赖,即可得到一组 5NF关系。2 什么是视图?视图的作用答:视图是基于数据库基本表的虚
6、表,它本身并不物理的存储数据,它的数据全部来自于基本表。视图作用:简化数据查询语句;使用户能从多角度看待同一数据;提高了数据安全性;提供了一定程度的逻辑独立性。3 数据完整性约束条件的类型答:数据完整性约束可分为六类:静态列级约束、静态元组约束、静态关系约束、动态列级约束、动态元组约束、动态关系约束。4 SQL 语言如何实现数据的完整性SQL要实现数据完整性,1.首先要明白数据的完整性有哪些:域完整性/列完整性,实体完整性/行完整性,参照完整性/引用完整性;2.怎样实现:域完整性:(1)定义列时,使用 check约束;(2)定义规则;实体完整性:(3)利用 primary key;参照完整性:
7、(4) 利用 foreign key references。5. 写出 SQL查询语句的基本结构,并说明结构中各子句表示的含义结构化查询语言包含 6个部分:一:数据查询语言(DQL:Data Query Language):其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字 SELECT是 DQL(也是所有 SQL)用得最多的动词,其他 DQL常用的保留字有WHERE,ORDER BY,GROUP BY 和 HAVING。这些 DQL保留字常与其他类型的 SQL语句一起使用。二:数据操作语言(DML:Data Manipulation Language):其
8、语句包括动词 INSERT,UPDATE 和 DELETE。它们分别用于添加,修改和删除表中的行。也称为动作查询语言。三:事务处理语言(TPL):它的语句能确保被 DML语句影响的表的所有行及时得以更新。TPL语句包括 BEGIN TRANSACTION,COMMIT 和 ROLLBACK。四:数据控制语言(DCL):它的语句通过 GRANT或 REVOKE获得许可,确定单个用户和用户组对数据库对象的访问。某些 RDBMS可用 GRANT或 REVOKE控制对表单个列的访问。五:数据定义语言(DDL):其语句包括动词 CREATE和 DROP。在数据库中创建新表或删除表(CREAT TABLE
9、 或 DROP TABLE);为表加入索引等。DDL包括许多与人数据库目录中获得数据有关的保留字。它也是动作查询的一部分。六:指针控制语言(CCL):它的语句,像 DECLARE CURSOR,FETCH INTO 和 UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。二、SQL 语言创建表(教材第 3章 37页习题 12)写出创建如下三张表的 SQL语句,在定义表的同时定义数据的完整性约束;“图书表“结构如下:书号:统一字符编码定长类型,长度为 6,主码;书名:统一字符编码可变长类型,长度为 30,非空;第一作者:普通编码定长字符类型,长度为 10,非空;出版日期:小日
10、期时间型:价格:定点小数,小数部分 1位,整数部分 3位。“书店表”结构如下:书店编号:统一字符编码定长类型,长度为 6,主码:店名:统一字符编码可变长类型,长度为 30,非空:电话:普通编码定长字符类型,8 位长,每一位的取值均是 09的数字;地址:普通编码可变长字符类型,40 位长;邮政编码:普通编码定长字符类型,6 位长。“图书销售表”结构如下:书号:统一字符编码定长类型,长度为 6,非空;书店编号:统一字符编码定长类型,长度为 6,非空;销售日期:小日期时间型,非空;销售数量:微整型,大于等于 1.主码(书号,书店编号,销售日期);“书号”引用“图书表”的“书号”的外码;“书店编号”为
11、引用“书店表”的“书店编号”的外码。答:CREATE TABLE 图书表(书号 nchar(6) primary key,书名 nvarchar(30) not null,第一作者 char(10) not null,出版日期 smalldatetime,价格 numeric(4,1)CREATE TABLE 书店表(书店编号:nchar(6) primary key,店名:nvarchar(30) not null,电话:char(8) check (电话 like 0-9 0-9 0-9 0-9 0-9 0-9 0-9 0-9 ), 地址 varchar(40),邮政编码 char (6)
12、CREATE TABLE 图书销售表书号:nvarchar(6) not null,书店编号:nchar(6) not null,销售日期:smalldatetime not null,primary key(书号,书店编号,销售日期),foreign key(书号)references 图书表(书号),foreign key (书店编号) references 书店表(书店编号)三、SQL 语言操作数据库表以下习题均利用第 3章(教材第 31页)定义的Student、Course 和 SC表结构来实现:1、查询学生选课表中的全部数据。2、查询计算机系学生的姓名、年龄。3、查询成绩在 70-8
13、0分之间的学生,包括学号、课程号和成绩4、查询计算机系年龄在 18-20之间且性别为“男”的学生,包括姓名和年龄。5、查询“C01”号课程的最高分数。6、查询计算机系学生的最大年龄和最小年龄。7、统计每个系的学生人数。8、统计每门课程的选课人数和考试最高分。9、统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果。10、查询总成绩超过 200分的学生,要求列出学号、总成绩。11、查询选修“C02“号课程的学生的姓名和所在系。12、查询成绩 80分以上的学生姓名、课程号和成绩,并按成绩降序排列结果。13、查询哪些课程没有人选,要求列出课程号和课程名。(参考教材第 52页例 40)14、用
14、子查询实现如下查询:1)查询选修课程”C01“号课程的学生的姓名和所在系。2)查询数学系成绩 80分以上的学生的学号、姓名。3)查询计算机系考试成绩最高的学生的姓名。15、删除修课成绩小于 50分的学生的选课记录。16、将所有选修“C01”号课程的学生的成绩加 10分。17、将计算机系所有选修“计算机文化”课程的学生的成绩加10分。四、SQL 语言操作数据库表(教材第 4章 61页除习题15外的所有习题)1.查询学生选课表中的全部数据。答:select * from stundent2.查询计算机系的学生的姓名、年龄。答:select sname,sage from student where
15、 sdept =计算机系3.查询成绩在 7080 分之间的学生的学号、课程号和成绩。答:select sno,cno,grade from sc on where grade between 70 and 804.查询计算机系年龄在 1820 岁之间且性别为“男”的学生的姓名和年龄。答:select sname,sage from studentWhere sdept = 计算机系and sage between 18 and ssex = 男5.查询“C01”号课程的课程的最高分数。答:select max(grade)from sc where cno =c016.查询计算机系学生的最大年
16、龄和最小年龄。答:select max(sage)as max_age,min(sage) as min_age from studentWhere sdept =计算机系7.统计每个系的学生人数。答:select sdept,count(*)from student group by sdept8.统计每门课程的选课人数和考试最高分。答:select cno,count(*),max(grade)from sc group by cno9.统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果。答:select sno,count(*),sum(grade)from sc group
17、by sno order by conut(*)asc10.查询总成绩超过 200分的学生,要求列出学号、总成绩。答:select sno, sum(grade)from sc group by sno having sum(grade)20011.查询选修“c02”号课程的学生的姓名和所在系。答:select sname,stept from student s join sc on s.sno = sc.snowhere cno = c0212.查询成绩 80分以上的学生的姓名、课程号和成绩,并按成绩的降序排列结果。 答:select sname,cno,grade from studen
18、t s join sc on s.sno = sc.snowhere grade 80 order by grade desc13.查询哪些课程没有人选,要求列出课程号和课程名。答:selent o,cname from course c left join sc on o = oWhere o is null14.用子查询实现如下查询:1)查询选修了 c01号课程的学生的姓名和所在系。答:select sname,sdept from student where sno in(Select sno from sc where cno = c01)2)查询数学系成绩 80分以上的学生的学号、姓
19、名。答:select sno,sname from student where sno in(Select sno from sc where grade 80)And sdept = 数学系3)查询计算机系考试成绩最高的学生的姓名。答:selent sname from student s join sc on s.sno = sc.snowhere sdept =计算机系and grade =(selent max(grade) from sc join student s on o =sc.sno where sdept = 计算机系)15.删除修课成绩小于 50分的学生的选课记录。答:
20、delete from sc where grade 5016.将所有选修“c01”号课程的学生的成绩加 10分。答:update sc set grade = grade + 10 where cno = c0117.将计算机系所有选修“计算机文化学”课程的学生的成绩加10分。答:update sc set grade = grade + 10where sno in(slect sno from student where sdept = 计算机系)and cno in(senlect cno from course where cname = 计算机文化学)第 3次一、 请解释下列概念或
21、术语1 死锁死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。 由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象死锁。2数据备份答:数据备份是容灾的基础,是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程。二、回答问题1 什么是事务?它具有哪些特性?事务是恢复和并发控制的基本单位。事务应该具有
22、 4个属性:原子性、一致性、隔离性、持续性。这四个属性通常称为 ACID特性2 并发操作会带来哪些数据不一致,如何控制?并发环境下,由于程序的封闭性被打破,出现了新的特点: 程序与计算不再一一对应,一个程序副本可以有多个计算 并发程序之间有相互制约关系,直接制约体现为一个程序需要另一个程序的计算结果,间接制约体现为多个程序竞争某一资源,如处理机、缓冲区等。并发程序在执行中是走走停停,断续推进的。并发控制:并发控制指的是当多个用户同时更新行时,用于保护数据库完整性的各种技术。并发机制不正确可能导致脏读、幻读和不可重复读等此类问题。并发控制的目的是保证一个用户的工作不会对另一个用户的工作产生不合理
23、的影响。在某些情况下,这些措施保证了当用户和其他用户一起操作时,所得的结果和她单独操作时的结果是一样的。在另一些情况下,这表示用户的工作按预定的方式受其他用户的影响。3什么是数据库恢复,恢复的实现技术有那些?数据恢复:当存储介质出现损伤或由于人员误操作、操作系统本身故障所造成的数据看不见、无法读取、丢失。工程师通过特殊的手段读取却在正常状态下不可见、不可读、无法读的数据。恢复技术有备份还原等。4. SQL Server 2000的安全认证过程是什么? 答:SQLServer 2000 支持两种认证模式,一是 Windows认证,二是混合模式。1) Windows认证,这是 SQLServer
24、2000的默认身份验证模式。Windows 验证的方式是利用 windows的验证机制,由于进入 windows的用户有些拥有很高的权限,所以通常也能进入 SQLServer 2000 服务器。为避免重复验证,SQLServer 2000 认可 windows的安全机制。只要 windows的账号在 SQLServer 2000中有对应的账号就能顺利地直接进入 SQLServer 2000。2) 混合认证模式,这是将 windows认证和SQLServer 2000认证连接在一起。使用 SQLServer 2000认证时,系统管理员创建一个登陆账号口令,并将它们存储在 SQLServer 20
25、00中,当用户连接上SQLServer 2000时,必须提供 SQLServer 2000登陆账号和口令。用户也可以通过 windows账号进行连接,这正如 windows认证一样。对于登陆时提供了SQLServer 2000账号者,系统将使用 SQLServer 2000身份验证对其进行认证;对于没有提供SQLServer 2000账号或请求 windows身份验证的登陆者,则使用 windows身份验证对其认证。即先查找SQLServer 2000登陆账户,若找不到则去查找windows登陆账户。5. 数据库权限的种类及用户的分类数据库权限的种类:对 DBMS进行维护的权限;对数据库对象和
26、数据进行操作的权限SQL Server权限种类(与数据库用户分类对应):隐含权限(预定义的内置权限);语句权限(DDL 语句权限,创建删除数据库对象);对象权限(DML 语句权限,操作数据库对象)数据库用户的分类:数据库系统管理员(SA,全部权限);数据库对象拥有者(创建数据库对象的用户,对所拥有的对象具有一切权限);普通用户:只具有对数据的编辑查询功能6. 权限的管理包含哪些内容?可以通过哪些途径实现?1授予权限,授予用户或角色具有某种操作权。2收回权限:收回(或称为撤销)曾经授予给用户或角色的权限。3拒绝访问:拒绝某用户或角色具有某种操作权限,即使用户或角色由于继承而获得这种操作权限,也不
27、允许执行相应的操作。途径:可以通过 SSMS工具实现,也可以通过 T-SQL语句实现。7. 什么是角色,使用角色的好处? 角色:在数据库中,为便于对用户极权限的管理,可以将一组具有相同权限的用户组织在一起。1便于进行权限维护,例如,当有人新加入到工作中时,只需将他添加到该工作的角色中,当有人离开时,只需从该角色中删除该用户即可,而不需要在每个工作人员接受或离开工作时都反复地进行权限设置。8. 试述数据库设计的过程,结构设计中各阶段的主要工作及设计结果。、1.需求分析阶段 准确了解与分析用户需求(包括数据与处理) 是整个设计过程的基础,是最困难、最耗费时间的一步2.概念结构设计阶段 是整个数据库
28、设计的关键 通过对用户需求进行综合、归纳与抽象,形成一个独立于具体 DBMS的概念模型 3.逻辑结构设计阶段将概念结构转换为某个 DBMS所支持的数据模型 对其进行优化4.数据库物理设计阶段为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)5.数据库实施阶段运用 DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果 建立数据库,编制与调试应用程序,组织数据入库,并进行试运行6.数据库运行和维护阶段 数据库应用系统经过试运行后即可投入正式运行。 在数据库系统运行过程中必须不断地对其进行评价、调整与修改 设计特点:在设计过程中把数据库的设计和对数据库中数据处理
29、的设计紧密结合起来将这两个方面的需求分析、抽象、设计、实现在各个阶段同时进行,相互参照,相互补充,以完善两方面的设计9. 需求分析的任务、方法和应获得的结果基本任务: 问题识别:双方确定对问题的综合需求,这些需求包括功能需求,性能需求,环境需求,用户界面需求。 分析与综合,导出软件的逻辑模型 编写文档:包括编写“需求规格说明书“,“初步用户使用手册“,“确认测试计划“,“修改完善软件开发计划“10.概念结构设计的任务、策略,E-R 方法设计概念结构的步骤概念结构设计的任务:是产生反映企业组织信息需求的数据库概念结构,即概念层数据模型。策略:1.自底向上。2.自顶向下。3.由里向外。4.混合策略
30、。E-R方法设计概念结构的步骤:1.设计局部 E-R模型。局部 E-R模型的设计内容包括确定局部 E-R模型的范围,定义实体、联系以及它们的属性。2.设计全局 E-R模型。这一部是将所有局部 E-R图,即全局 E-R模型。3.优化全局 E-R模型。11.逻辑结构设计的任务和步骤,E-R 模型向关系模型转换的原则逻辑结构设计阶段的任务是将概念结构设计阶段所得到的概念模型转换为具体 DBMS所能支持的数据模型(即逻辑结构),并对其进行优化。逻辑结构设计一般分为三步进行: 1. 从 E-R图向关系模式转化 数据库的逻辑设计主要是将概念模型转换成一般的关系模式,也就是将 E-R图中的实体、实体的属性和
31、实体之间的联系转化为关系模式。在转化过程中会遇到如下问题: (1)命名问题。命名问题可以采用原名,也可以另行命名,避免重名。 (2)非原子属性问题。非原子属性问题可将其进行纵向和横行展开。 (3)联系转换问题。联系可用关系表示。 2. 数据模型的优化 数据库逻辑设计的结果不是唯一的。为了进一步提高数据库应用系统的性能,还应该适当修改数据模型的结构,提高查询的速度。3. 关系视图设计 关系视图的设计又称为外模式的设计,也叫用户模式设计,是用户可直接访问的数据模式。同一系统中,不同用户可有不同的关系视图。关系视图来自逻辑模式,但在结构和形式上可能不同于逻辑模式,所以它不是逻辑模式的简单子集。 关系
32、视图作用: (1)通过外模式对逻辑模式的屏蔽,为应用程序提供了一定的逻辑独立性。 (2)更好地适应不同用户对数据的不同需求。 (3)为不同用户划定了访问数据的不同范围,有利于数据的保密E-R图向关系模型的转换一般遵循如下原则:1. 一个实体型转换为一个关系模式。实体的属性就是关系的属性。实体的码就是关系的码。例如在我们的例子中,学生实体可以转换为如下关系模式,其中学号为学生关系的码:学生(学号,姓名,出生日期,所在系,年级,平均成绩)同样,性别、宿舍、班级、档案材料、教师、课程、教室、教科书都分别转换为一个关系模式。2. 一个联系转化为一个关系模式,与该联系相连的各实体的码以及联系的属性转化为
33、关系的属性,该关系的码则有三种情况:l 若联系为 1:1,则每个实体的码均是该关系的后选码。l 若联系为 1:n,则关系的码为 n端实体的码。l 若联系为 m:n,则关系的码为诸实体码的组合。 2.1 联系为 1:1一个 1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。l 如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。l 如果与某一端对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。例如在我们的例子中,“管理”联系为 1:1联系,我们可以将其转换为一个
34、独立的关系模式:管理(职工号,班级号)或 管理(职工号,班级号)管理”联系也可以与班级或教师关系模式合并。如果与班级关系模式合并,则只需在班级关系中加入教师关系的码,即职工号:班级:班级号,学生人数,职工号同样,如果与教师关系模式合并,则只需在教师关系中加入班级关系的码,即班级号:教师:职工号,姓名,性别,职称,班级号,是否为优秀班主任2.2 联系为 1:n一个 1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。l 如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为 n端实体的码。l 如果与 n端对应的关系模式合并,
35、则在 n端实体对应模式中加入 1端实体所对应关系模式的码,以及联系本身的属性。而关系的码为 n端实体的码。例如在我们的例子中,“组成”联系为 1:n联系,将其转换为关系模式。一种方法是使其成为一个独立的关系模式:组成(学号,班级号)其中学号为“组成”关系的码。另一种方法是将其学生关系模式合并,这时学生关系模式为:学生(学号,姓名,出生日期,所在系,年级,班级号,平均成绩)后一种方法可以减少系统中的关系个数,一般情况下更倾向于采用这种方法。2.3 联系为 m:n一个 m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性。而关系的码为各实体码的组合。例如在我们
36、的例子中,“选修”联系是一个 m:n联系,可以将它转换为如下关系模式,其中学号与课程号为关系的组合码:选修(学号,课程号,成绩)三个或三个以上实体间的一个多元联系转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性。而关系的码为各实体码的组合。例如在我们的例子中,“讲授”联系是一个三元联系,可以将它转换为如下关系模式,其中课程号、教师号和书号为关系的组合码:讲授(课程号,教师号,书号)3同一实体集的实体间的联系,即自联系,也可按上述1:1、1:n 和 m:n三种情况分别处理。例如,如果教师实体集内部存在领导与被领导的 1:n自联系,我们可以将该联系与教师实体合并
37、,这时主码职工号将多次出现,但作用不同,可用不同的属性名加以区分,比如在合并后的关系模式中,主码仍为职工号,再增设一个“系主任”属性,存放相应系主任的职工号。4具有相同码的关系模式可合并。为了减少系统中的关系个数,如果两个关系模式具有相同的主码,可以考虑将他们合并为一个关系模式。合并方法是将其中一个关系模式的全部属性加入到另一个关系模式中,然后去掉其中的同义属性(可能同名也可能不同名),并适当调整属性的次序。例如我们有一个“拥有”关系模式: 拥有(学号,性别)有一个学生关系模式: 学生(学号,姓名,出生日期,所在系,年级,班级号,平均成绩)这两个关系模式都以学号为码,我们可以将它们合并为一个关
38、系模式,假设合并后的关系模式仍叫学生:学生(学号,姓名,性别,出生日期,所在系,年级,班级号,平均成绩)按照上述 4条原则,学生管理子系统中的 18个实体和联系可以转换为下列关系模型:学生(学号,姓名,性别,出生日期,所在系,年级,班级号,平均成绩,档案号)性别(性别,宿舍楼)宿舍(宿舍编号,地址,性别,人数)班级(班级号,学生人数)教师(职工号,姓名,性别,职称,班级号,是否为优秀班主任)教学(职工号,学号)课程(课程号,课程名,学分,教室号)选修(学号,课程号,成绩)教科书(书号,书名,价钱)教室(教室编号,地址,容量)讲授(课程号,教师号,书号)档案材料(档案号,)该关系模型由 12个关系模式组成。其中学生关系模式包含了“拥有”联系、“组成”联系、“归档”联系所对应的关系模式;教师关系模式包含了“管理”联系所对应的关系模式;宿舍关系模式包含了“住宿”联系所对应的关系模式;课程关系模式包含了“开设”联系所对应的关系模式。