(3)统计总销售额;
SELECT SUM(S_amount ) AS Amount
(4)列出每天的销售报表,包括书名、数量和合计金额(每一种书的销售总额);
SELECT S_date, Title, SUM(S_quantity ) AS Quantity , SUM(S_amount ) AS Amount FROM Book, Sales
WHERE Sales.ISBN=Book.ISBN GROUP BY S_data, Title
(5)分析畅销书,即列出本期(从当前日期起,向前30天)销售数量大于100的书名、数量。
SELECT Title SUM(S_quantity) AS Quantity FROM Book, Sales
WHERE Sales.ISBN=Book.ISBN AND (S_date BETWEEN GETDATE( )-30 AND GETDATE( )) GROUP BY Title HAVING SUM(S_quantity)>100 ORDER BY SUM(S_quantity) DESC
四、简答题。
1.简述SQL支持的三级逻辑结构。
SQL语言支持关系数据库三级模式结构,如图3.1所示。其中外模式对应于视图(View)和部分基本表(Base Table),模式对应于基本表,内模式对应于存储文件。
SQL 视图1 视图2 外模式 基本表1 基本表2 基本表3 基本表4 模式 存储文件1 存储文件2 内模式
图3.1数据库三级模式结构
2.SQL有什么特点?
(1)SQL类似英语的自然语言,简洁实用。 (2)SQL是一种非过程语言。 (3)SQL是一种面向集合的语言。
(4)SQL即是一种自含式语言,又是嵌入式语言;可独立使用,也可嵌入宿主语言中。 (5)SQL具有数据查询、数据定义、数据操作和数据控制四种功能。
3.解释:基本表、视图、索引、系统权限、对象权限、角色,并说明视图、索引、角色的作用。
基本表:一个关系对应一个基本表。基本表是独立存在的表,不是由其它的表导出的表。一个或多个基本表对应一
个存储文件。
视图:视图是从一个或几个基本表导出的表,是一个虚拟的表。在用户看来,视图是通过不同路径去看一个实际表,
就像一个窗口一样,我们可以通过其去看我们想看的高楼的不同部分。
索引:索引是数据库随即检索的常用手段,它实际上就是记录的关键字与其相应地址的对应表。可加快查询速度;
保证行的唯一性。
系统权限:是指数据库用户能够对数据库系统进行某种特定的操作的权利。如创建一个表(CREATE TABLE) 对象权限:是指数据库用户在指定的数据库对象上进行某种特定的操作的权利。如查询(SELECT)、添加(INSERT)、
修改(UPDATE)和删除(DELETE)等操作。
角色:角色是多种权限的集合,可以把角色授予用户或其他角色。
4.在对数据库进行操作的进程中,设置视图机制有什么优点?它与数据表间有什么区别?
1)在关系数据库系统中,视图为用户提供了多种看待数据库数据的方法与途径,是关系数据库系统中的一种重要对象。其优点有:(1)视图能够简化用户的操作;(2)视图使用户能以多种角度看待同一数据;(3)增加了数据的安全性;(4)视图对重构数据库提供了一定程度的逻辑独立性。
2)视图在概念上与基本表等同,一经定义,就可以和基本表一样被查询、被删除,我们也可以在一个视图上再定义新的视图,但对视图的更新(插入、删除、修改)操作相对于数据表来说,则有一定的限制。即有些视图逻辑上是肯定不能修改的。
(1)用SQL的DDL语言创建S表,S#为主键,SN不能为空。
(2)创建计算机系学生的视图,该视图的属性列由学号、姓名、课程号和任课教师号组成。
(3)检索计算机系年龄在20岁以上的学生学号。 (4)检索姓王的教师所讲课程的课程号及课程名称。 (5)检索张三同学所学课程的成绩,列出SN、C#、GR。
(6)检索选修总收入超过1000元的教师所讲课程的学生姓名、课程号和成绩。 (7)检索没有选修C1课程且选修课程数为两门的学生的姓名和平均成绩,并按平均成绩降序排列。
(8)检索选修和张三同学所选修课程中任意一门相同的学生姓名,课程名。 (9)S1同学选修了C3,将此信息插入SC表中。 (10)删除S表中没有选 修任何课程的学生记录。
答: (1)用SQL的DDL语言创建S表,S#为主键,SN不能为空。
CREATE TABLE S
( S# CHAR(6) CONSTRAINT S_Prim PRIMARY KEY, SN CHAR(8) CONSTRAINT SN_CONT NOY NULL, AGE INT,
DEPT VARCHAR(20))
(2)创建计算机系学生的视图,该视图的属性列由学号、姓名、课程号和任课教师号组成。
CREATE VIEW S_SC_T (S#,SN,C#,T#)
AS SELECT S.S#, SN, SC.C#, T# FROM S, SC, T
WHERE S.S#=SC.S# AND SC.C#=T.C#
(3)检索计算机系年龄在20岁以上的学生学号。
ΠS#(σ(DEPT=‘计算机’ AND AGE ≥20)(S) SELECT S# FROM S
WHERE DEPT=‘计算机’ AND AGE ≥20
(4)检索姓王的教师所讲课程的课程号及课程名称。
ΠC#,CN(σ(TN=‘王%’)(T*C) SELECT T.C# C#, CN FROM T,C
WHERE T.C#=C.C# AND TN LIKE ‘王%’
(5)检索张三同学所学课程的成绩,列出SN、C#、GR。
ΠSN,C#,GR(σ(SN=‘张三’)(S*SC) SELECT SN,C#,GR FROM S,SC
WHERE SN=‘张三’ AND S.S#=SC.S#
(6)检索选修总收入超过1000元的教师所讲课程的学生姓名、课程号和成绩。
ΠSN,C#,GR(ΠC#(σ(SAL+COMM)>1000(T))*S*SC) SELECT SN,SC.C# C#,GR FROM S,SC,T
WHERE (SAL+COMM)>1000
AND S.S#=SC.S# AND SC.C#=T.C#
(7)检索没有选修C1课程且选修课程数为两门的学生的姓名和平均成绩,并按平均成绩降序排列。
SELECT * INTO S_Temp FROM S
WHERE ‘C1’ NOT IN (SELECT C# FROM SC WHERE S#=S.S#) SELECT SN, AVG(GR) AS AVG
FROM S_Temp JOIN SC ON S_Temp.S#=SC.S# GROUP BY S_Temp.S# HAVING COUNT(*)=2 ORDER BY AVG(GR) DESC
(8)检索选修和张三同学所选修课程中任意一门相同的学生姓名,课程名。
ΠSN,CN (S*SC(ΠC#,CN(σSN=‘张三’(S) *SC*C)) SELECT SN, CN FROM S,SC,C
WHERE S.S# = SC.S# AND SC.C# = C.C# AND SC.C# IN (SELECT C#
FROM S,SC
WHERE S.S# = SC.S# AND SN=‘张三’)
(9)S1同学选修了C3,将此信息插入SC表中。
INSERT INTO SC (S#,C#) VALUES (‘S1’, ‘C3’)
(10)删除S表中没有选 修任何课程的学生记录。
DELETE FROM S
WHERE S# NOT IN (SELECT DISTINCT S# FROM SC)
第四章 三.简答题
1.解释下列术语:函数依赖、平凡函数依赖、非平凡函数依赖、部分函数依赖、完全函数依赖、传递函数依赖、范式。
函数依赖:是关系模式中属性之间的一种逻辑依赖关系。 平凡函数依赖:当属性集Y是属性集X的子集(即Y
X)时。则必然存在着函数依赖X→Y,这种类型的函数依
赖称为平凡的函数依赖。
非平凡函数依赖:如Y不是X的子集,则称X→Y为非平凡的函数依赖。
部分函数依赖:设有关系模式R(U),U是属性全集,X和Y是U的子集,如果X→Y,并且对于X的某一个真子集X’,
有X’ →Y,则称Y对X完全函数依赖,记做Xp→Y。
完全函数依赖:设有关系模式R(U),U是属性全集,X和Y是U的子集,如果X→Y,并且对于X的任何一个真子
集X’,都没有X’ →Y,则称Y对X完全函数依赖,记做Xf→Y。
传递函数依赖:P144 范式:(NF)是模式分解的标准。
2.给出2NF,3NF,BCNF的形式化定义,并说明它们之间的区别和联系。 1NF:第一范式是最基本的规范形式,即关系中每个属性都是不可再分的简单项。
2NF:如果关系模式R∈1NF,且每个非主属性都完全依赖于R的主关系键,则称R属于第二范式,简称2NF,记做R
∈2NF。
BCNF:如果关系模式R∈1NF,且所有函数依赖X→Y(Y≮X)(≮不属于),决定因素x都包含了R一个候选键,则称
R属于BC范式,记作R∈BCNF。
第六章三.1一个图书管理系统中有如下信息: 图书:书号、书名、数量、位置 借书人:借书证号、姓名、单位
出版社:出版社名、邮编、地址、电话、E-mail
其中约定:任何人可以借多种书,任何一种书可以被多人借,借书和还书时,要登记相应的借书日期和还书日期;一个出版社可以出版多种书籍,同一本书仅为一个出版社出版,出版社名有唯一性。完成设计: (1) 设计该系统的E-R图; (2) 将E-R图转换为关系模式;
(3) 指出转换后的每个关系模式的关系键。
三
借书证号 借书人 姓名 m 单位 电话 E-mail
1 (1)
(2)关系模式:
借书人(借书证号,姓名,单位) 图书(书号,书名,数量,位置)
出版社(出版社名,邮编,地址,电话,E-mail) 借阅(借书证号,书号,借书日期,还书日期) (3)带下划线的属性(组)为关系键
四.简答题:
1.数据库设计分为哪几个阶段?每个阶段的主要工作是什么? 1)需求分析,是基础,要收集数据库用户的信息内容和处理要求,加以规格化和分析。 2)概念结构设计阶段,把用户的信息要求统一到一个整体逻辑结构中。
3)逻辑结构设计阶段,将上一步所得到的概念模型转换为某个DBMS所支持的数据模型,并对其优化。 4)物理结构设计阶段,是为逻辑数据模型建立一个完整的能实现的数据库结构,包括存储结构和存储方法。 5)数据库实施阶段,根据物理结构设计的结果把原始数据装入数据库,建立一个具体的数据库并编写和调试相
应的应用程序。
6)数据库运行和维护阶段,收集和记录实际系统运行的数据。