- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
试述E-R图转换成关系模型的转换原则。(4分)
2.等值联接、自然联接二者之间有什么区别? (3分)
3.简述从1NF到4NF的规范化过程?(4分)
4.试举例说明一条完整性规则的数学表示方法。(5分)
2.答:数据冗余大、插入异常、删除异常、修改麻烦。解决办法:模式分解。
3.什么是事务?它有哪些属性?
答:事务是用户定义的一个操作序列,这些操作要么全做要么全不做,事务是一个不可分割的工作单位。事务具有四个特性:原子性、一致性、隔离性和持续性。这个四个特性也简称为ACID特性。
4.答:PRIMARY KEY(主码) FOREIGN KEY(外码) DEFAULT (缺省) CHECK(检查) UNIQUE(唯一值)
六、程序设计题(共15分,第1小题5分,第2小题10分)
1.设有关系模式为:
学生(学号,姓名,性别,年龄,所在系)
课程(课程号,课程名,先行课)
选课(学号,课程号,成绩)
请用关系代数完成下列操作:
求选修了课程号为“5”课程的学生学号和姓名。
求没有选修课程号为“5”课程的学生学号。
求既选修了课程号为“5”,又选修“6“号课程的学生学号。
求选修了全部课程的学生学号和姓名。
求选修了学号为“95001”学生所学过的所有课程的学生学号和姓名。
2.以下给出三个基本表。
Student(学生表)的字段按顺序为学号、姓名、性别、年龄、所属院系;
Course(课程表)的字段按顺序为课程编号、课程名、先行课程、课程学分;
SC(选课表)的字段按顺序为学号、课程号、成绩。
试用SQL语句表示下列操作。
(1)写出创建学生表Student的SQL命令,各字段的类型及长度应根据实际情况确定。其中学号属性不能为空,并且其值是唯一的,并在Sno列上建立一个聚簇索引。
(2)检索信息系(IS)和计算机科学系(CS)的学生的姓名和性别。
(3)检索各个课程号及相应的选课人数。
(4)检索每个学生及其选修的课程名和成绩。
(5)检索男生的平均年龄。
2.(1).写出创建学生表Student的SQL命令,各字段的类型及长度应根据实际情况确定。其中学号属性不能为空,并且其值是唯一的,并在Sno列上建立一个聚簇索引。
CREATE TABLE Student
(Sno CHAR(5) NOT NULL UNIQUE,
Sname CHAR(20),
Ssex CHAR(1),
Sage INT,
Sdept CHAR(15));
CREATE CLUSTED INDEX Stusname ON Student(Sname);
(2).检索信息系(IS)和计算机科学系(CS)的学生的姓名和性别。
SELECT Sname, Ssex
FROM Student
WHERE Sdept IN (IS,CS)
(3).检索各个课程号及相应的选课人数。
SELECT Cno, COUNT(Sno)
FROM SC
GROUP BY Cno;
(4).检索每个学生及其选修的课程名和成绩。
SELECT Student.Sno, Sname, Course.Cname, SC.Grade
FROM Student, SC, Course
WHERE Student.Sno=SC.Sno and SC.Cno=Course.Cno;
(5)检索男生的平均年龄。
select 性别,avg(年龄)
from student
where 性别=‘男’
group by 性别
或select avg(年龄)
from 基本情况
group by 性别 having 性别=男
以下程序显示26个小写英文字母,完成该程序。
DECLARE@count int
SET____@COUNT=0_____
WHILE @count26
BEGIN
PRINT CHAR(ASCII(‘a’)+_____+@COUNT_______ )
SET @count=@count+1
END
以下程序用游标gd_cur查找studentsdb数据库的grade表,统计并显示表中记录总数,最后删除游标gd_cur,完成程序。
DECLARE@sid char(8),@cid varchar(10),@scr numeric(5,2)
DECLARE@ count int
SET @ count=0
DECLARE gd_cur_____cursor________
FOR SELECT学号,课程编号,分数FROM grade
OPEN gd_cur
FETCH FROM gd_curINTO@sid,@cid,@scr
WHILE______@@fetch_status
文档评论(0)