数据库系统概论课后习题选做

参考课本:《数据库系统概论》王珊 萨师煊 高等教育出版社

第一章

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

(1)数据:描述事物的符号记录称为数据

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

(3)数据库管理系统:数据库管理系统是位于用户与操作系统之间的一层数据管理软件。数据库管理系统和操作系统一样是计算机的基础软件,也是一个大型复杂的软件系统。主要功能包括有数据定义功能,数据组织、储存和管理,数据操纵功能,数据库的事务管理和运行管理,数据库的建立和维护功能,和其他功能包括数据库管理系统与网络中其他软件系统的通信功能等等。

(4)数据库系统:据库系统是由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员组成的储存、管理、处理和维护数据的系统。

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

数据库系统的主要特点有:
(1)数据结构化。
(2)数据的共享性高,冗余度低,易扩充。
(3)数据独立性高。
(4)数据由 DBMS 统一管理和控制。

7.什么是概念模型?试述概念模型的作用。

(1)概念模型,也称信息模型,是按用户的观点来对数据和信息建模,主要用于数据库设计。
(2)概念模型实际上是现实世界到机器世界的一个中间层次。概念模型用于信息世界的建模,是现实世界到信息世界的一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户进行交流的语言


8.定义并解释概念模型中以下术语:实体,实体型,实体集,实体之间的联系。

1.实体:客观存在并可以相互区分的事物叫实体。
2.实体型实体型:具有相同属性的实体具有相同的特征和性质,用实体名及其属性名集合来抽象和刻画同类实体称为实体型。
3.实体集:同型实体的集合称为实体集。
4.实体之间的联系:通常是指不同实体型的实体集之间的联系,实体之间的联系有一对一,一对多和多对多等多种类型。一般用实体——联系图(E-R图)来表示实体之间的联系。


13.试述关系模型的概念,定义并解释以下术语:关系,属性,域,元组,码,分量,关系模式

关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。在⽤户观
点下,关系模型中数据的逻辑结构是⼀张⼆维表,它由⾏和列组成。
(1)关系:⼀个关系对应通常说的⼀张表
(2)属性:表中的⼀列
(3)域:是⼀组具有相同类型的值的集合
(4)元组:表中的⼀⾏
(5)码:也称码键,表中的某个属性组,它可以唯⼀确定⼀个元组
(6)分量:元组中的⼀个属性值
(7)关系模式:对关系的描述,⼀般表示为关系名(属性1,属性2,…,属性n)
 

16.模式,外模式,内模式,数据定义语言,数据操纵语言

定义并解释以下术语:模式,外模式,内模式,数据定义语言,数据操纵语言。

模式、外模式、内模式,亦称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。

1.模式:描述的是数据的全局逻辑结构。
2.外模式:涉及的是数据的局部逻辑结构,通常是模式的子集。
3.内模式:  亦称存储模式,是数据在数据库系统内部的表示,即对数据的物理结构和存
储方式的描述。 
4.数据定义语言:  用来定义数据库模式、外模式、内模式的语言。 
5.数据操纵语言:  用来对数据库中的数据进行查询、插入、删除和修改的语句。

 

17.什么叫数据与程序的物理独立性?什么叫数据与程序交换的逻辑独立性?为什么数据库系统具有数据与程序的独立性?

当数据库的存储结构改变了(例如选用了另一种存储结构),由数据库管理员对模式/内
模式映象作相应改变,可以使模式保持不变,从而应用程序也不必改变。保证了程序与数据
的物理独立性,简称数据的物理独立性。
当需要改变模式时(例如增加新的关系、新的属性、改变属性的数据类型、改变数据间
的联系等),由数据库管理员对各个外模式/模式的映象作相应改变,而使外模式保持不变,
从而不必修改或重写应用程序改。而应用程序是依据数据的外模式编写的,保证了数据与程
序的逻辑独立性。简称数据的逻辑独立性。
特定的应用程序是在外模式描述的数据结构上编制的,它依赖于特定的外模式,与数据
库的模式和存储结构独立。不同的应用程序有时可以共用同一个外模式。数据库的二级映象
保证了数据库外模式的稳定性,从而从底层保证了应用程序的稳定性,除非应用需求本身发
生变化,否则应用程序一般不需要修改。
 

第二章

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

  1. 关系数据结构
  2. 关系操作
  3. 关系完整性约束

3.理解并定义下列术语,说明他们的联系和区别:

(1)域,主码,笛卡尔积,关系,元组,属性

(2)主码,候选码,外码

(3)关系模式,关系,关系数据库 

(1)域: 一组具有相同数据类型的值的集合。

(2)笛卡尔积: 域上的一种集合运算,给定一组域D1,D2,…,Dn,允许其中某些域是相同的。则D1,D2,…,Dn的笛卡尔积为:D1×D2×…×Dn = {(d1,d2,…,dn)|di属于Di,i=1,2,…,n}是所有域所有取值的一个组合。

(3)关系: D1×D2×…×Dn的 子集 叫作在域D1,D2,…,Dn上的

(4)元组: 笛卡尔积中每一个元素(d1,d2,…,dn)叫作一个n元组或简称元组。
如笛卡尔积概念中A x B 里都是二元组,如(a,1)。

(5)属性: 关系对应一个二维表,表的列对应一个域,由于域可以相同,所以对每列起名字,则称为属性,n目关系则有n个属性。

联系和区别: 笛卡尔积是在域上进行运算的,元组是笛卡尔积中的元素,关系是笛卡尔积的子集,属性是关系对应二维表的列。

主码 and 候选码
若关系中某一属性的值能唯一标识一个元组,而其子集不能,则称该元组为候选码。关系中若有多个候选码,选定一个为主码。

外码:外码是由参照完整性引出的,参照完整性规则就是定义外码与主码之间的引用规则。(就是另一个表的主码)

关系和关系模式的联系与区别:
联系:关系模式是对关系的描述,关系是关系模式在某一时刻的状态或内容。关系模式和关系往往笼统称为关系,举例子就是:关系模式是表的表头,关系是表里面的数据

区别:关系模式是静态的、稳定的,而关系时动态的、随时间不断变化的。
关系数据库:在一个给定的应用领域中,所有关系的集合构成一个关系数据库

4.举例说明关系模式和和关系的区别

关系模式就是相当于学生表里的第一栏表头:学号,姓名,年龄之类的,而关系就是每一个栏的数据,比如说学号是202131105026076,姓名是吴彦祖等等。因此说关系模式是不变的,而关系是可以增删改的,故关系模式是静态的,关系是动态的。

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

完整性规则:参照完整性,实体完整性,用户定义完整性。

该属性不是主属性的时候可以取空值

6.题目太长,在课本P70

(1)求供应工程J1零件的供应商号码SNO;

  (2) 求供应工程J1零件P1的供应商号码

(3)求供应工程J1零件为红色的供应商号码SNO;

(4)求没有使用天津供应商生产的红色零件的工程号JNO

(5)求至少用了供应商S1所供应的全部零件的工程号JNO

7efa4b60f79b418383f0cfa556aa609b.jpeg

 

7.试述等值连接和自然连接的区别和联系。

1. 等值连接中不要求属性值完全相同,而自然连接要求两个关系中进行比较的必须是相同的属性组(属性名可以不同),即要求必须有相同的值域

2. 等值连接不将重复属性去掉,而自然连接去掉重复属性,也可以说,自然连接是去掉重复列的等值连接

 

 

 

第三章

3.有两个关系S(A,B,C,D)和T(C,D,E,F),写出与下列查询等价的SQL表达式:

(公式好难打,参见课本P130)

(1)

select A
from S
where A=10

(2)

select A,B
from S

(3)

select *
from S inner join T on S.C=T.C and S.D=T.D

(4)

select *
from S inner join on S.C=T.C

(5)

select *
from S inner join T on S.C=T.C
where S.A<S.E

(6)

SELECT *
FROM S,T
WHERE S.C=T.C AND S.D=T.D

 

 

5.针对习题4中的4个表试用SQL完成以下各项操作:

(1)找出所有供应商的姓名和所在城市

selct sname,city
from s

(2)找出所有零件的名称,颜色,重量

select pname,color,weight
from p

(3)找出使用供应商S1所供应零件的工程号码

select jno
from spj
where sno=s1

(4)找出工程项目J2使用的各种零件的名称及其数量

select p.pname,spj.qty
from p inner join spj on p.pno=spj.pno inner join j on spj.jno=j.jno
where j.jno=j2

(5)找出上海厂商供应的所有零件号码;

select p.pno
from p inner join spj on p.pno=spj.pno inner join s on s.sno=spj.sno
where s.city like '上海'

(6)找出使用上海产的零件的工程名称

select jname
from spj inner join s on spj.sno=s.sno inner join j on spj.jno=j.jno
where s.city ="上海"

(7)找出没有使用天津产的零件的工程号码

select j.jno
from spj inner join s on s.sno=spj.sno
where s.city not like "天津"

(8)把全部红色零件给换成蓝色

update p
set color="蓝"
where color="红"

(9)由s5供给j4的零件p6改为由s3供应,请作必要的修改;

update spj
set sno="s3"
where sno="s5" and jno="j4" and pno="p6"

  (10)从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录

delete 
from s
where sno="s2"
delete
from spj
where sno="s2"

(11)请将(S2,J6,P4,200)插入供应情况表

insert into spj value (S2,J6,P4,200)

9.请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。针对该视图完成以下查询:

CREATE VIEW dh
AS 
SELECT SNO,PNO,QTY
FROM SPJ inner join J on spj.jno=j.jno
where JNAME='三建'

(1)找出三件工程项目所使用的各种零件代码及其数量;

SELECT PNO,QTY
FROM dh

(2)找出供应S1的供应情况。

SELECT *
FROM dh
WHERE SNO='S1'

 

第四章

1.什么是数据库的安全性?

数据库安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或破坏。

6.对下列两个关系模式:

学生(学号,姓名,年龄,性别,家庭住址,班级号)

班级(班级号,班级名,班主任,班长)

使用GRANT语句完成下列授权功能:

(1)授权用户U1对两个表的所有权限,并可给其他用户授权。

grant all privileges
on student
to U1
with grant option

grant all privileges
on class
to U1
with grant option

(2)授权用户U2对学生表具有查看权限,对家庭住址具有更新权限

grant select,update(address)
on student
to U2

(3)将对班级表查看权限授予所有用户。

grant select
on class
to public

(4)将对学生表的查询、更新权限授予角色R1

grant select,update
on student 
to R1

(5)将角色R1授予用户U1,并且U1可继续授权给其他角色

grant R1
to U1
WITH GRANT OPTION

第五章

1.什么是数据库完整性?

数据库的完整性是指数据的正确性和相容性。数据的正确性是指数据是符合现实世界语义、反映当前实际状况的;数据的相容性是指数据库同一对象再不同关系表中的数据是符合逻辑的。

4.关系数据库管理系统的完整性控制机制应该具有哪三个方面的功能?

a. 定义功能;
b. 检查功能;
c. 违约处理功能。

6.假设有下面两个关系模式:

职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码;

部门(部门号,名称,经理名,电话),其中部门号为主码。

用SQL语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义:

(1)定义每个模式的主码;(2)定义参照完整性;(3)定义职工年龄不超过60岁

 
create table Dept
(
    Dno char(11) primary key,
    Dname char(20),
    Dman char(10),
    Maphone char(11)
);
 
create table Staff 
(
    Empno char(11) primary key,
    Empname char(10),
    Empage smallint(2),
    constraint C1 check(Empage <= 60),
    Post char(20),
    Wages char(20),
    Dno char(11),
    foreien key(Dno) reference Dept(Dno)
);

 

 

 

 

 


 


 

 

 


 

 

 

 

 

 

 

 

 

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值