(A)是对数据库中全部数据的逻辑结构和特征的描述。
A.模式 B.外模式 C.内模式 D.视图
(B)是对数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述
A.模式 B.外模式 C.内模式 D.概念模式
数据库中的记录是按照B+树存储还是按hash方法存储,这一特征在数据库的(C)中定义。
A.模式 B.外模式 C.内模式 D.子模式
概念模型的表示方法有很多种,其中最著名的是(B)。
A.关系模型 B. E-R模型 C.层次模型 D.网状模型
数据库的概念模型(D)
A. 独立于计算机硬件,依赖于 DBMS
B. 依赖于计算机硬件,独立于 DBMS
C. 依赖于计算机硬件和 DBMS
D. 独立于计算机硬件和 DBMS
下列关系代数操作中复杂度最高的是(C)。
A.投影 B.连接 C.选择 D. 交
若关系R和S的元组个数分别为m和n,则R∪S的元组个数为(B)。
A.m+n B.小于或等于m+n C.大于m D.大于n
已知关系R1和R2进行关系运算后得到S,则S是(B)
A. 一行记录 B. 一个关系 C. 一个确定值 D. 一个数组
若关系R和S的元组个数分别为m和n,则R-S的元组个数是(D)。
A. m-n B.小于m C.小于n D.小于等于m
下列关系代数操作中最费时的是(B)。
A.投影 B.笛卡尔积 C.选择 D.交
在信息系统的设计中,普遍采用的是基于(B)的系统设计方法。
A. BCNF B.3NF C.2NF D.4NF
在函数依赖范畴内,(C)是关系模式能够达到的最高规范化程度。
A.3NF B.4NF C.BCNF D.5NF
下列说法中错误的是(C)
A. 模式分解是关系规范化的基本方法
B. 实际应用中,数据库设计一般应达到3NF
C. 若一个关系模式符合2NF,则它必然也符合3NF
D. 实际应用中常常为了提高查询效率而允许数据库中存在一定的数据冗余
关系数据库中由数据冗余导致的异常不包括(D)。
A.插入异常 B.删除异常
C.修改异常 D.查询异常
设关系模式R(XYZ),已知存在函数依赖X->Y和Y->Z,则可作为R的候选键的是(A)。
A. X B. Y C. Z D.已知条件无法判断候选键
(A)是数据库系统的核心,是位于用户和操作系统之间的一层数据管理软件。
A.DBMS B.DBS C.DBA D.DDL
数据库管理系统的英文缩写是(A)。
A.DBMS B.DBA C.DBS D.MIS
下列不是关系数据库产品的是(D)。
A.SQL Server B.Oracle C.DB2 D.IMS
DBS指的是(B )。
A. 数据库 B. 数据库系统 C. 数据库管理员 D. 数据库管理系统
DBA指的是( C )。
A. 数据库 B. 数据库系统 C. 数据库管理员 D. 数据库用户
SQL Server系统中所有的系统级信息均存放在(A)数据库中。
A. master B. model C. tempdb D. msdb
下列不属于SQL Server系统数据库的是( B )。
A. master B. northwind C. tempdb D. msdb
SQL Server数据库的主数据文件后缀是( B )。
A. ldf B. mdf C. ndf D. swf
SQL Server数据库日志文件的后缀是( A )。
A. ldf B. ndf C. mdf D. swf
SQL Server系统数据库中,( D )用于记录报警,任务调度,操作员的操作等信息。
A .master B. model C. tempdb D. msd
关于索引,下列说法错误的是(C)。
A. 索引可以加快数据的检索速度
B. 建立索引会牺牲一定的系统性能
C. 在一张表上可以建立多个聚集索引
D. 在一张表上可以建立多个非聚集索引
关于视图,下列说法错误的是(B)。
A.视图是虚拟表
B.数据可以存放在视图中
C.在视图上做查询与在基本表上做查询方法是相同的
D.视图可以建立在多个基本表的基础之上
下面哪种情况下适合建立索引(C)。
A. 经常进行插入操作的表 B. 行数较小的表
C. 更新少而数据量大的表 D. 表中存在大量重复值的列
关于存储过程与触发器,下列说法正确的是(B)。
A. 存储过程是存储在客户端的SQL程序 B. 触发器是一种特殊的存储过程
C. 触发器可通过其名字被用户直接调用 D .存储过程是一种特殊的触发器
关于视图,下列说法正确的是(A)
A. 建立视图语句的关键部分是查询语句
B. 若导出某视图的数据库表被删除了,该视图不受任何影响
C. 视图一旦建立,就不能被删除
D. 当某一视图被删除后,导出该视图的数据库表将会受到影响
数据库应用程序开发中,需求分析阶段的主要目的是(A)。
A.回答“做什么”的问题 B.回答“怎么做”的问题
C.建立逻辑数据模型 D.建立最佳物理存储结构
在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是(B)
A. 可行性分析 B.需求分析
C. 概念设计 D.物理设计
实体与实体的联系,反映在数据上是(C)之间的联系
A. 文件 B. 集合 C. 记录 D. 结构
( A )是在业务流程分析的基础上,描述实际数据流动和处理过程的图形表示法。
A. DFD B. UML C. ER D. FLOWCHART
在数据库设计的需求分析阶段,( B )是数据库系统中各类数据详细描述的集合,提供了对各类数据描述的集中管理。
A. DFD B. 数据字典 C. 实体联系图 D.数据集
关于主键约束,下列说法正确的是(A)。
A.主键值不为空,也不允许出现重复 B.主键值不为空,但允许出现重复
C.主键值允许空,但不允许出现重复 D.主键值允许空,也允许出现重复
关于参照完整性,下列说法中错误的是(A)。
A.外键属性取值不能为空 B.关系中不允许引用不存在的实体
C.可以通过定义外键实现 D.外键属性取值允许为空
在关系数据库中,"关系中不允许出现相同的元组"的约束可以通过定义(B)实现的
A.超键 B. 主键 C. 外键 D. check约束
在实际应用中,常常需要在表中定义非空约束。数据库中的空值表示什么(C )。
A.0 B.默认值 C.不确定 D.空格
下列不属于SQL Server数据库中的约束的是( D )。
A. 主键约束 B. 外键约束
C. 唯一约束 D. 空值约束
事务必须满足的四个原则是(A),一致性,隔离性,持久性。
A. 原子性 B. 完整性 C. 安全性 D.正确性
事务并发执行时,每个事务不必关心其他事务,如同在单用户环境下执行一样,这个性质称为事务的(D)
A. 持久性 B. 一致性 C. 独立性 D. 隔离性
一个事务中所有对DB的操作是一个不可分割的整体,这个性质称为(D)。
A.完整性 B.一致性 C.隔离性 D.原子性
当多个事务同时读取或修改相同的数据库资源时,( A )是进行并发控制的主要方法。
A. 锁 B. 互斥 C. 隔离 D. 游标
( A )是构成单一逻辑工作单元的操作集合,这些操作或者全部执行,或者全部不执行。
A. 事务 B. 存储过程 C. 数据库对象 D. 触发器
SQL中,下列涉及空值的操作,不正确的是(A)。
A. AGE=NULL
B. AGE IS NOT NULL
C. AGE IS NULL
D. NOT(AGE IS NULL)
在 SQL 语句中,与 X BETWEEN 20 AND 30 等价的表达式是(D)
A. X>=20 AND X<30
B. X>20 AND X<30
C. X>20 AND X<=30
D. X>=20 AND X<=30
关于SQL,下列说法正确的是(D)。
A. 是过程化语言 B. 是机器语言
C. 是面向对象语言 D. 是非过程化语言
当SELECT语句返回的结果是一个集合时,可以借助(B)对其中的单行记录进行处理。
A. 锁 B. 游标 C.索引 D .存储过程
在SELECT语句中,能够实现对查询结果排序的操作是(B)
A. COUNT B. ORDER BY C. GROUP BY D. INDEX
1、一个运动会管理系统数据库中有如下信息:
运动员(运动员编号,姓名,性别)
比赛(比赛编号,名称,时间)
裁判员(裁判员编号,姓名)
其中约定:一个运动员可参加多场比赛,一场比赛可有多个运动员参加,运动员参加比赛产生成绩;一场比赛有一个裁判员,一个裁判员可主持多场比赛。
根据以上情况,完成下述设计:
(1)设计系统的E-R图
(2)将E-R图转换为关系模式,并指定其中的主键和外键
2、一个仓库管理数据库中有如下信息:
仓库:仓库号,地址,电话
零件:零件号,零件名称,规格,单价
管理员:工号,姓名,性别
其中约定:一种零件可存放在多个仓库中,一个仓库可存放多种零件,零件存放在仓库中有库存量。一个仓库有多名管理员,一个管理员仅可以管理一个仓库。根据以上情况,完成下述设计:
(1) 设计系统的E-R图
(2) 将E-R图转换为关系模式,并指定其中的主键和外键
3、某商业集团的销售管理系统数据库中有如下信息:
商店:商店编号,商店名,地址
商品:商品编号,商品名,规格,单价
职工:工号,姓名,性别,业绩
其中约定:一个商店可销售多种商品,一种商品可在多个商店销售,每个商店对所销售的每一种商品按月进行销量统计;一个商店有多名职工,一个职工仅在一个商店任职,商店聘用职工有月薪。根据以上情况,完成下述设计:
(1) 设计系统的E-R图
(2) 将E-R图转换为关系模式,并指定其中的主键和外键
4、一个图书馆管理系统中有如下信息:
图书:书号,书名,数量,位置
借书人:借书证号,姓名,单位
出版社:出版社名,地址,电话,Email
其中约定:任何人都可以借多种书,任何一种书可以被多个人借,借书和还书时要登记借阅时间;一个出版社可以出版多种书籍,同一本书仅由一个出版社出版,出版社名具有唯一性。根据以上情况,完成下述设计:
(1)设计系统的E-R图
一个教学管理系统中有如下信息:
学生:学号,姓名,性别,年龄
课程:课程号,课程名,学分
班级:班级名,班主任
教师:工号,姓名
其中约定:一个学生属于一个班级,一个班级包括多名学生;一个学生可选修多门课程,一门课程可由多个学生选修,学生选修的每门课程均有相应的成绩;一个教师可教授多门课程,一门课程仅由一个教师教授。根据以上情况,完成下述设计:
(1) 设计系统的E-R图
1.已知商品销售数据库中包括三张表:
员工信息表employee(eid,ename,age,sex,tel),存放员工的工号、姓名、年龄、性别以及电话信息; (年龄字段为整型、其余均为字符型)
商品信息表goods(gid,gname,type,price),存放商品的商品编号,商品名称,类别以及价格;(价格字段为money型,其余均为字符型)
销售信息表eg(eid,gid,quantity,saledate),存放员工工号、商品编号,销售数量和销售时间信息;(销售时间字段为datetime类型,其余均为字符型)
(1)利用SQL查询年龄在40到50岁之间(含40,50)的员工信息,按年龄由小到大排序;
select *
from employee
where age between 40 and 50
order by age asc
(2)利用SQL查询2017年10月1日的销售记录,包括员工工号,姓名,商品编号,商品名;
select employee.eid, ename, goods.gid,gname
from employee,goods,eg
where employee.eid=eg.eid and goods.gid=eg.gid and saledate=‘2017-10-1’
(3)利用SQL查询所有姓李的员工的工号,姓名以及电话;
select eid, ename,tel
from employee
where ename like ‘李%’
(4)利用SQL创建存储过程,统计各类别商品的平均价格;
create procedure myproc
as
select type,avg(price)
from goods
group by type
(5)利用SQL查询员工李华销售出的商品的总数量;
select sum(quantity)
from employee,eg
where employee.eid=eg.eid and ename=‘李华’
(6)利用SQL查询在2017年10月1日销售业绩为0的员工的工号和姓名;
select eid, ename
from employee
where eid not in ( select eid
from eg
where saledate=‘2017-10-1’)
(7)利用关系代数表达式查询所有工号为1001的员工所销售商品的名称以及销售时间。
2、已知图书管理数据库中包括三张表:
学生信息表student(sid,sname,age,sex,major),存储学生的学号、姓名、年龄、性别以及专业名称;(年龄字段为整型,其余字段均为字符型)
图书信息表book(bid,bname,author,press,price,ISBN),存储图书的编号、书名、作者、出版社、价格和ISBN号;(价格字段为整型,其余字段均为字符型)
图书借阅记录表sb(sid,bid,borrowdate),存储学号、图书编号、借阅日期;(学号与图书编号为字符型,借阅日期为日期型)
(1) 利用SQL查询年龄在20到25岁(含20,25)之间的学生信息
select *
from student
where age between 20 and 25
(2) 利用SQL查询清华大学出版社出版的书籍的图书编号,图书名和价格,按价格由低到高排序
select bid,bname,price
from book
where press=‘清华大学出版社’
order by price
(3) 利用SQL查询所有姓李的学生的姓名、年龄、性别和专业
select sname,age,sex,major
from student
where sname like ‘李%’
(4) 利用SQL查询借阅过数据结构书籍的学生的姓名和借阅时间
select sname,borrowdate
from student,book,sb
where student.sid=sb.sid and book.bid=sb.bid and bname=‘数据结构’
(5) 利用SQL创建一个存储过程,统计各专业的学生人数(存储过程名称自定义)
create procedure myprocedure
as
select major, count(sid)
from student
group by major
(6) 利用SQL查询年龄大于平均年龄的学生的信息
select *
from student
where age>( select avg(age)
from student)
(7) 利用关系代数表达式查询年龄大于等于30岁的学生借阅的图书书名
3、已知教学管理数据库中包括三张表:
教师信息表teacher(tid,tname,age,sex,title),存储教师的工号、姓名、年龄、性别以及职称信息; (年龄字段为整型、其余均为字符型)
课程信息表course(cid,cname),存储课程的课程号和课程名称;(字段均为字符型)
授课信息表tc(tid,cid),存储教师工号、课程号 (字段均为字符型)
(1) 利用SQL查询年龄在30到40岁之间(含30,40)的教师信息,按年龄由小到大排序
select *
from teacher
where age between 30 and 40
order by age asc
(2) 利用SQL查询所有姓张的教师的姓名、年龄和性别
select tname,age,sex
from teacher
where tname like ‘张%’
(3) 利用SQL查询讲授“数据库”课程的教师的工号
select tid
from course, tc
where course.cid=tc.cid and cname=‘数据库’
(4) 利用SQL创建存储过程,统计各个专业技术职称的教师人数
create procedure myprocedure
as
select title,count(tid)
from teacher
group by title
(5) 利用SQL查询教师李华的授课数量
select count(cid)
from teacher,tc
where teacher.tid=tc.tid and tname=‘李华’
(6) 利用SQL查询年龄小于所有教师平均年龄的男性教师的工号与职称
select tid,title
from teacher
where sex=‘男’ and age<( select avg(age)
from teacher)
(7) 利用关系代数表达式查询所有职称为教授的教师讲授课程的课程名称
4、已知网上图书销售系统数据库中包括三张表:
客户信息表customer(cid,cname,email,tel,address),存放客户账号、姓名、电子邮箱、电话以及地址; (所有字段均为字符型)
图书信息表book(bid,bname,author,press,price,ISBN),存放图书编号、书名、作者、出版社、价格和ISBN号; (价格字段为整型,其他字段均为字符型)
图书购买记录表cb(cid,bid,shoppingdate,quantity),存放客户账号、图书编号、购买日期、数量。 (购买日期为日期型,数量为整型,其他字段均为字符型)
(1)利用SQL查询价格在50元到100元(含50、100元)之间的图书的书名、作者与价格;
select bname,author,price
from book
where price between 50 and 100
(2)利用SQL查询购买了编号为b001的图书的客户的账号和购买日期,按购买日期由先到后排序;
select cid,shoppingdate
from cb
where bid=‘b001’
order by shoppingdate asc
(3)利用SQL查询所有地址中含有“杨浦”关键字的客户的姓名、电话和地址;
select cname,tel,address
from customer
where address like ‘%杨浦%’
(4)利用SQL查询一次购买了超过50本《数据库应用技术》图书的客户的姓名;
select cname
from customer,book,cb
where customer.cid=cb.cid and book.bid=cb.bid
and bname=‘数据库应用技术’ and quantity>50
(5)利用SQL创建一个视图,统计各出版社出版的图书的平均价格(视图名称自行定义);create view myview
as
select press, avg(price) as avgprice
from book
group by press
(6)利用SQL查询没有购买过图书的客户的姓名和电话;
select cname,tel
from customer
where cid not in ( select cid
from cb)
(7)利用关系代数表达式查询购买了《数据库应用技术》的客户姓名
5、已知教学管理数据库中包括三张表:
学生信息表student(sid,sname,age,sex,major),存放学生的学号,姓名,年龄,性别以及专业信息;(年龄字段为整型,其余字段均为字符型)
课程信息表 course(cid,cname),存放课程的课程号和课程名;(所有字段均为字符型)
选课信息表 sc(sid,cid,score),存放学号、课程号以及成绩;(成绩字段为整型,其余字段均为字符型)
(1)利用SQL查询年龄在20到30岁(含20与30)之间的女学生信息
select *
from student
where sex=‘女’ and age between 20 and 30
(2) 利用SQL查询选修了课程号为c001课程的学生的学号和成绩,按成绩由高到低排序select sid,score
from sc
where cid=‘c001’
order by score desc
(3) 利用SQL查询所有姓名中含有华字的学生的姓名,年龄和性别
select sname, age, sex
from student
where sname like ‘%华%’
(4) 利用SQL创建视图,统计各门课程考试成绩的最高分
create view myview
as
select cid, max(score) as maxscore
from sc
group by cid
(5) 利用SQL查询李华同学选修的所有课程的课程名以及成绩
select cname, score
from student, course, sc
where student.sid=sc.sid and course.cid=sc.cid and sname=‘李华’
(6) 利用SQL查询没有被选修的课程的课程名
select cname
from course
where cid not in ( select cid
from sc)
(7) 利用关系代数表达式查询机械电子专业学生选修的课程名
1、试列举数据库系统的主要组成部分。
答: 数据库,数据库管理系统,数据库应用系统,数据库管理员,数据库开发工具和用户。
2、试论述存储过程的概念。
答: 存储过程是SQL语句和可选流程控制语句的预编译集合,可接受输入参数,输出参数,返回单个或多个结果集以及返回值,可由应用程序调用执行。
存储过程的优点是:允许模块化程序设计;允许更快速地执行;减少网络流量;可作为安全机制使用。
3、根据关系规范化理论,一个设计不好的关系模式存在哪些问题?关系规范化的一般方法是什么?可结合实例进行阐述。
答: 一个设计不好的关系模式会导致较大的数据冗余,而数据冗余又会导致更新异常,插入异常和删除异常,造成数据的不一致。关系规范化的一般方法是模式分解,即将一个设计不够好的关系模式分解为一组规范化级别更高的关系模式。在实际应用中,通常需要规范化到3NF。结合实例部分可自由发挥。
4、试论述数据库管理系统的功能。
答: 数据库管理系统是数据库系统的核心,它是建立在操作系统的基础上,位于用户与操作系统之间的一层数据管理软件。它为用户或应用程序提供访问数据库的方法,同时它还承担着数据库的维护工作,保证数据库的安全性和完整性。
5、试结合实例阐述关系模型的参照完整性规则。
答: 参照完整性规则是:若属性F是基本关系R的外键,它与基本关系S的主键相对应,则R中每个元组在属性F上的取值或者为空,或者等于S中某个元组的主键值。参照完整性的实质是不能引用不存在的实体。
结合实例阐述部分可由学生自由发挥,视答题情况给分。例如,教师(工号,姓名)和课程(课程号,课程名,工号),其中课程表中的工号引用了教师表中的工号,其各个记录中工号部分的取值或者为空,或者等于教师表中某个教师的工号。
6、试论述索引的概念。
答: 索引是对数据库表在能够一个或多个列的值进行排序的结构,其主要目的是加快数据的查询速度和减少系统的响应时间。
索引的优点包括:加快数据的检索速度;创建唯一性索引可保证表中每一行数据的唯一性;加速表和表之间的连接等。但是创建索引和维护索引会消耗时间,另外,每个索引都会占用一定的物理空间,因此索引在带来诸多优势的同时也让系统付出了一定的代价。
7、什么是关系?试列举不少于三种关系数据库产品。
答: 在关系数据模型中,现实世界的实体以及实体间的各种联系均用关系来表示。在用户看来,关系是一种规范化了的二维表格,是一个属性数目相同的元组的集合。
常见的关系数据库产品包括SQL Server,Oracle,DB2,Access等。
8、什么是数据库备份?SQL Server提供了哪些备份方式?
答: 数据库备份就是在某种介质上创建完整数据库(或其中一部分)的副本,并将所有数据项都复制到备份集,以便在数据库遭到破坏时能够恢复数据库。
SQL Server的备份方式包括:完全数据库备份,差异数据库备份,事务日志备份,数据库文件或文件组备份。
9、试论述视图的概念。
答: 视图是从一个或多个基本表中使用select语句导出的虚拟表,视图也可以定义在其他视图的基础上。
视图的优点主要包括:简化用户的数据查询和处理;保证数据的逻辑独立性;重新定制数据,使得数据便于共享;数据保密等。
10、试论述数据库的逻辑数据独立性和物理数据独立性。
答: 数据库的三级模式二级映像结构保证了逻辑独立性和物理独立性。
当模式改变时,由DBA对各个外模式/模式映像作相应改变,可以使外模式保持不变,因此依据数据的外模式编写的应用程序不必修改,保证了数据与程序的逻辑独立性。
当数据库的存储结构发生改变时,由DBA对模式/内模式映像作相应改变,可使模式保持不变,因而应用程序也不需要修改,保证了数据与程序的物理独立性。
11、设有关系模式R(工号,姓名,性别,部门号,部门名,部门负责人),若规定:一个职工属于一个部门,一个部门有多名职工,一个部门仅有一个负责人,每个负责人仅能负责一个部门,
(1)R最高符合第几范式,说明理由;
(2)若R不是3NF,将其分解为3NF,并指定其中的主键和外键。
答:(1)R最高符合2NF。由于R的主键是单一属性工号,因此必然是2NF。又由于工号->部门号,且部门号->部门名,因此工号->部门名是一个传递函数依赖,则R不符合3NF。(阐述理由部分可由学生自由发挥)
(2)
R1(工号,姓名,性别,部门号),其中工号为主键,部门号为外键
R2(部门号,部门名,部门负责人),其中部门号为主键
12、设有关系模式R(学号,姓名,性别,图书号,图书名,出版社,借阅时间),若规定,一个学生可以借阅多本图书,一本图书一次仅能借给一个学生,
(1)R最高符合第几范式,说明理由;
(2)若R不是3NF,将其分解为3NF,并指定其中的主键和外键。
答: (1)R最高符合1NF。由于R的主键是(学号,图书号,借阅时间)。由于(学号,图书号,借阅时间)->姓名,并且学号->姓名,因此R中存在主键到非主属性的部分函数依赖,所以R不符合2NF。(阐述理由部分可由学生自由发挥)
(2) R1(学号,姓名,性别),其中学号为主键
R2(图书号,图书名,出版社),其中图书号为主键
R3(学号,图书号,借阅时间),其中(学号,图书号,借阅时间)为联合主键,且存在两个外键:学号,图书号
13、设有关系模式R(运动员编号,姓名,性别,项目号,项目名,比赛成绩),若规定:一个运动员可参加多个比赛项目,一个项目可由多名运动员参加,
(1)R最高符合第几范式,说明理由;
(2)若R不是3NF,将其分解为3NF,并指定其中的主键和外键。
答: (1)R最高符合1NF。由于R的主键是(运动员编号,项目号)。由于(运动员编号,项目号)->姓名,并且运动员编号->姓名,因此R中存在主键到非主属性的部分函数依赖,所以R不符合2NF。(阐述理由部分可由学生自由发挥)
(2)
R1(运动员编号,姓名,性别),其中运动员编号为主键
R2(项目号,项目名),其中项目号为主键
R3(运动员编号,项目号,比赛成绩),其中(运动员编号,项目号)为联合主键,且存在两个外键:运动员编号,项目号
14、设有关系模式R(学号,姓名,性别,系号,系名,系主任),若规定:一个学生属于一个系,一个系有多个学生,一个系有一个系主任,一个人仅能担任一个系的系主任,
(1)R最高符合第几范式,说明理由
(2)若R不是3NF,将其分解为3NF,并指定其中的主键和外键。
答: (1)R最高符合2NF。由于R的主键是单一属性学号,因此必然是2NF。又由于学号->系号,且系号->系名,因此学号->系名是一个传递函数依赖,则R不符合3NF。(阐述理由部分可由学生自由发挥)
(2)
R1(学号,姓名,性别,系号),其中学号为主键,系号为外键
R2(系号,系名,系主任),其中系号为主键
15、设有关系模式R(学号,姓名,性别,课程号,课程名,成绩),若规定:一个学生可以选选多门课程,一门课程可由多个学生选修,
(1)R最高符合第几范式,说明理由;
(2)若R不是3NF,将其分解为3NF,并指定其中的主键和外键。
答: (1)R最高符合1NF。由于R的主键是(学号,课程号)。由于(学号,课程号)->姓名,并且学号->姓名,因此R中存在主键到非主属性的部分函数依赖,所以R不符合2NF。(阐述理由部分可由学生自由发挥)
(2)R1(学号,姓名,性别),其中学号为主键
R2(课程号,课程名),其中课程号为主键
R3(学号,课程号,成绩),其中(学号,课程号)为联合主键,且存在两个外键:学号和课程号