数据库复习资料.docx
- 文档编号:24790849
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:17
- 大小:111.93KB
数据库复习资料.docx
《数据库复习资料.docx》由会员分享,可在线阅读,更多相关《数据库复习资料.docx(17页珍藏版)》请在冰豆网上搜索。
数据库复习资料
1、数据库的基本概念
概念模型
数据模型分成两个不同的层次
(1)概念模型也称信息模型,它是按用户的观点来对数据和信息建模。
(2)数据模型主要包括网状模型、层次模型、关系模型等,它是按计算机系统的观点对数据建模。
概念模型的用途
概念模型用于信息世界的建模是现实世界到机器世界的一个中间层次
是数据库设计的有力工具数据库设计人员和用户之间进行交流的语言
对概念模型的基本要求
较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识简单、清晰、易于用户理解。
概念模型是现实世界到机器世界的一个中间层次。
相关概念:
实体、实体型、实体集、联系、码、属性等
实体(Entity)
客观存在并可相互区别的事物称为实体。
可以是具体的人、事、物或抽象的概念。
实体型(EntityType)
用实体名及其属性名集合来抽象和刻画同类实体称为实体型
实体集(EntitySet)
同型实体的集合称为实体集
联系(Relationship)
现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系
实体型间联系
两个实体型一对一联系(1:
1)
三个实体型一对多联系(1:
n)
一个实体型多对多联系(m:
n)
码(Key)唯一标识实体的属性集称为码。
属性(Attribute)
实体所具有的某一特性称为属性。
一个实体可以由若干个属性来刻画。
表示方法:
E-R图
数据模型:
网状模型:
网状模型是一个网络层次模型实际是网状模型的一个特例
网状模型的条件允许一个以上的结点无父结点
一个结点可以有多于一个的父结点
优点
能够更为直接地描述现实世界,如一个结点可以有多个双亲具有良好的性能,存取效率较高
缺点
结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握;DDL、DML语言复杂,用户不容易使用
关系模型:
优点
1、建立在严格的数学概念的基础上
2、概念单一。
数据结构简单、清晰,用户易懂易用。
实体和各类联系都用关系来表示。
对数据的检索结果也是关系。
3、关系模型的存取路径对用户透明。
具有更高的数据独立性,更好的安全保密性。
简化了程序员的工作和数据库开发建立的工作
缺点
1、存取路径对用户透明导致查询效率往往不如非关系数据模型。
2、为提高性能,必须对用户的查询请求进行优化增加了开发数据库管理系统的难度
对象模型
相关概念:
关系、码(主码、外码、候选码)、属性、域、元组等
关系(Relation)一个关系对应通常说的一张表。
主码(Key)
表中的某个属性组,它可以唯一确定一个元组。
也可以称为主键或主关键字。
如果一个关系中存在多个可以作为主码,则称这些码为候选码。
主码是从候选码中选取出来的。
A同时在2张表里,但它不是第一张表的主码而是另一张表的主码,因此,A就是第一张表的外码。
属性(Attribute)表中的一列即为一个属性,给每一个属性起一个名称即属性名(列名)。
域(Domain)属性的取值范围。
元组(Tuple)表中的一行即为一个元组。
它相当于一个记录值。
表示方法:
课程(课程号,课程名,学分)
选修(学号,课程号,成绩)
3、现实世界中客观存在并能相互区别的事物称为(A)
A.实体
B.实体集
C.字段
D.记录
4、现实世界中事物的特性在信息世界中称为(C)
A.实体
B.实体集
C.属性
D.码
5、采用二维表格结构表达实体类型及实体间联系的数据模型是(D)
A.层次模型
B.网状模型
C.实体模型
D.关系模型
6、数据库系统达到数据独立性是因为采用了(D)
A.层次模型
B.网状模型
C.关系模型
D.三级模式
7、在数据库系统中,用(D)描述全部数据的整体逻辑结构。
A.外模式
B.存储模式
C.内模式
D.模式
8、物理独立性是指(C)
A.模式改变,外模式和应用程序不变
B.内模式改变,模式和外模式不变
C.内模式改变,模式不变
D.模式改变,内模式不变
9、数据库(DB)、DBMS、DBS之间的关系是(B)
A.DB包括DBMS和DBS
B.DBS包括DBMS和DB
C.DBMS包括DB和DBS
D.DBS与DBMS和DB无关
关系数据库的理论基础
关系运算
传统的集合运算(并、交、差、广义笛卡儿集等)
专门的关系运算(选择、投影、连接)
并运算:
所有至少出现在两个关系中之一的元组集合
差运算:
所有出现在一个关系而不在另一关系中的元组集合
交运算:
所有同时出现在两个关系中的元组集合
广义笛卡尔积运算:
选择:
在关系中选择满足条件的元组
例,δ性别=“女”(S)
投影:
选择某些属性列
例,П学号、课程号(S)
连接
从两个关系的笛卡儿积中选取属性间满足一定条件的元组,表示为RS,F是条件表达式
广义的笛卡儿积运算,例,RS
参照完整性:
参照完整性规则:
若属性F是关系R的外码,它与关系S的主码K相对应,则对于R中每个元组在F上的值为取空值(F的每个属性均为空值),或者等于S中某个元组的主码值
例子:
课程(课程号,课程名,学分)
选修(学号,课程号,成绩)
实体完整性:
实体完整性规则:
若属性A是基本关系R的主码,则属性A不能取空值
例子:
学生(学号,姓名,性别,年龄),学号不能为空
用户定义的完整性:
用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求
范式
函数依赖的种类和表现(能举例说明)
函数依赖可能带来的问题
掌握如何消除各种函数依赖(要求达到3NF)
关系数据库标准语言SQL(P29)
查询Select(重点)(P41)
单表查询、连接查询、嵌套查询
重点
SELECT[ALL|DISTINCT]<目标列表达式>[,<目标列表达式>]…
FROM<表名或视图名>[,<表名或视图名>]…
[WHERE<条件表达式>]
[GROUPBY<列名1>[HAVING<条件表达式>]]
[ORDERBY<列名2>[ASC|DESC]];
插入、删除、修改数据(掌握)
Insertdeleteupdata
权限的管理(了解)
Grantrevokedeny
SQLServer管理和操作
创建数据库
相关数据库文件及其作用
创建表
字段类型的选择、主码、外码
创建约束
主键、外键、唯一性、默认值、检查、空值
创建关系图
修改数据(添加、删除、修改)
数据库安全管理
理解四层安全机制
客户机操作系统的安全性SQLServer登录的安全性
数据库使用的安全性数据库对象使用的安全性
登录模式
系统身份验证、SQLServer身份验证、混合模式
系统管理员:
sa
角色系统角色、数据库角色
登录账号、数据库账号
权限的授予、收回和拒绝
角色与权限之间的联系
数据库保护备份和恢复事务及事务的特性
索引索引的作用
创建索引的限制
索引的分类
如何定义不同类型的索引
视图
视图的作用和本质视图如何定义
1、单项选择题(30分)
2、简答题(20分)
3、综合应用题(40分)
4、解答题(10分)
1、查询成绩在70~80分之间的学生的学号、课程号和成绩
selectsno,cno,gradefromSC
wheregradebetween70and80
2、查询计算机系年龄在18~20之间且性别为‘男’的学生的姓名和年龄
selectsname,sagefromstudent
wheresagebetween18and20andSdepartment='计算机系'andSex='男'
3、查询计算机系的学生的姓名和年龄。
selectsname,sagefromstudent
whereSdepartment='计算机系'
4、查询没有选课的同学的学号
selectsnofromstudent
wheresnonotin(selectsnofromsc)
5、查询选修了‘c02’的学生的学号与课程号,以及课程的性质
selectsno,cno,xklbfromsc
wherecno='c02'
6、查询计算机系,课程成绩高于80分的同学的学号,姓名,选修课程的课程号,成绩
selectstudent.sno,sname,cno,grade
fromstudent,sc
wherestudent.sno=sc.snoandSdepartment='计算机系'andgrade>80
7、查询信息系,平均成绩高于70分的同学的学号,平均成绩
select*
fromstudent,(
selectsno,avg(grade)grade
fromsc
groupbysno
havingavg(grade)>70)a
wherea.sno=student.snoandSdepartment='信息系'
8、查询平均成绩高于80分的课程名
selectcno,avg(grade)fromsc
groupbycno
havingavg(grade)>80
9、查询总成绩超过180分的学生,要求列出学生的姓名,总成绩,并按照总成绩的高低进行降序排序
selectsno,sum(grade)
fromsc
groupbysno
havingsum(grade)>170
orderbydesc
10、查询与李勇选修同一门课程的学生的学号、姓名、课程号
selectsno,cnofromsc
wherecnoin(
selectcnofromstudent,sc
wherestudent.sno=sc.snoandsname='李勇')
11、查询没有选修数据库基础这门课程同学的姓名,年龄
selectsname,sagefromstudent
wheresnonotin(
selectsnofromcourse,sc
whereo=oandCname='数据库基础')
12、查询信息系,选修vb课程的学生人数
selectcount(*)'人数'fromstudent
whereSdepartment='信息系'andsnoin(
selectsnofromcourse,sc
whereo=oandCname='vb')
题1设有SPJ数据库,包括供应商表S,零件表P,工程项目表J,供应情况表SPJ:
S(SNO,SNAME,STATUS,CITY)
P(PNO,PNAME,COLOR,WEIGHT)
J(JNO,JNAME,CITY)
SPJ(SNO,PNO,JNO,QTY)
编写以下SQL语句:
1、创建表S;
createtableS(
snochar(3),
snamechar(10),
statuschar
(2),
citychar(10))
2、求供应工程J1的供应商号码SNO;
SELECTSNOFROMSPJWHEREJNO=‘J1’;
3、求供应工程J1零件P1的供应商号码SNO;
SELECTSNOFROMSPJ
WHEREJNO=‘J1’ANDPNO=‘P1’
4、找出所有供应商的姓名和所在城市;
SELECTSNAME,CITYFROMS
5、找出所有零件的名称、颜色、重量
SELECTPNAME,COLOR,WEIGHTFROMP
6、找出使用供应商S1所供应零件的工程号
SELECTJNOFROMSPJWHERESNO=‘S1’
7、找出工程项目J2使用的各种零件的名称及数量
SELECTPNAME,QTYFROMP,SPJ
WHEREP.PNO=SPJ.PNOANDSPJ.JNO=‘J2’
8、求供应工程J1零件为红色的供应商号码SNO;
SELECTSNOFROMSPJ
WHEREJNO=‘J1’ANDPNOIN(SELECTPNOFROMPWHERECOLOR=‘红’);
或
SELECTSNOFROMSPJ,P
WHEREJNO=‘J1’ANDSPJ.PNO=P.PNOANDP.COLOR=‘红’;
9、上海厂商供应的所有零件号
SELECTDISTINCTPNOFROMSPJ
WHERESNOIN(SELECTSNOFROMSWHERECITY=‘上海’)
10、找出使用上海产的零件的工程名称
SELECTJNAMEFROMJ,SPJ,S
WHEREJ.JNO=SPJ.JNOANDSPJ.SNO=S.SNOANDS.CITY=‘上海’
11、找出没有使用天津产的零件的工程号
SELECTJNOFROMJ
WHEREJNONOTIN
(SELECTJNOFROMSPJ,SWHERESPJ.SNO=S.SNOANDS.CITY=‘天津’)
或:
SELECTJNOFROMJ
WHERENOTEXISTS
(SELECT*FROMSPJ,SWHERESPJ.JNO=J.JNOANDSPJ.SNO=S.SNOANDS.CITY=‘天津’)
12、把全部红色零件的颜色改成蓝色
UPDATEPSETCOLOR=‘蓝’
WHERECOLOR=‘红’
13、由S5供给J4的零件P6改成由S3供给
UPDATESPJSETSNO=‘S3’
WHERESNO=‘S5’ANDJNO=‘J4’ANDPNO=‘P6’
14、从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录
DELETEFROMSPJWHERESNO=‘S2’
DELETEFROMSWHERESNO=‘S2’
15、将(S2,J6,P4,200)插入供应情况表
INSERTINTOSPJ(SNO,JNO,PNO,QTY)
VALUES(‘S2’,’J6’,’P4’,200)
或
INSERTINTOSPJ
VALUES(‘S2’,’J6’,’P4’,200);
16、为三建工程项目建立一个供应情况视图,包括SNO,PNO,QTY(三建为工程名)
CREATEVIEWV_SPJAS
SELECTSNO,PNO,QTYFROMSPJ
WHEREJNO=(SELECTJNOFROMJWHEREJNAME=‘三建’)
题2为管理岗位业务培训信息,建立3个表:
S(S#,SN,SD,SA)S#,SN,SD,SA分别代表学号、学员姓名、所属单位、学员年龄
C(C#,CN)C#,CN分别代表课程编号、课程名称
SC(S#,C#,G)S#,C#,G分别代表学号、所选修的课程编号、学习成绩
编写以下SQL语句:
1、使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名
SELECTSN,SDFROMS
WHERE[S#]IN(SELECT[S#]FROMC,SCWHEREC.[C#]=SC.[C#]ANDCN=N'税收基础')
2、使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位
SELECTS.SN,S.SD
FROMS
WHERE[S#]IN(SELECT[S#]FROMSCWHERE[C#]='C2')
3、使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位
SELECTSN,SD
FROMS
WHERE[S#]NOTIN(SELECT[S#]FROMSCWHERE[C#]='C5‘)
4、查询选修了课程的学员人数
SELECT学员人数=COUNT(DISTINCT[S#])FROMSC
5、查询选修课程超过5门的学员学号和所属单位
SELECTSN,SDFROMS
WHERE[S#]IN(
SELECT[S#]FROMSC
GROUPBY[S#]
HAVINGCOUNT(DISTINCT[C#])>5)
题3已知关系模式:
S(SNO,SNAME)学生关系。
SNO为学号,SNAME为姓名
C(CNO,CNAME,CTEACHER)课程关系。
CNO为课程号,CNAME为课程名,CTEACHER为任课教师
SC(SNO,CNO,SCGRADE)选课关系。
SCGRADE为成绩
编写以下SQL语句:
1、找出没有选修过“李明”老师讲授课程的所有学生姓名
SELECTSNAMEFROMS
WHERENOTEXISTS(
SELECT*FROMSC,C
WHERESC.CNO=C.CNOANDCNAME='李明‘ANDSC.SNO=S.SNO)
2、列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩
SELECTS.SNO,S.SNAME,AVG_SCGRADE
FROMS,(SELECTSNO,AVG(SC.SCGRADE)AVG_SCGRADE
FROMSC
WHERESCGRADE<60
GROUPBYSNO
HAVINGCOUNT(DISTINCTCNO)>=2
)A
WHERES.SNO=A.SNO
3、列出既学过课程“1”,又学过课程“2”的所有学生姓名(1,2假设为课程号)
SELECTSNO,SNAME
FROMS
WHERESNOIN
(SELECTSNO
FROMSC
WHERECNO=‘2’ANDSNOIN(
SELECTSNOFROMSCWHERECNO=‘1’)
)
4、列出课程“1”成绩比课程“2”同学该门课成绩高的所有学生的学号(1,2假设为课程号)
SELECTSC1.SNO
FROMSCSC1,SCSC2
WHERESC1.SNO=SC2.SNO
ANDSC1.CNO='1'ANDSC2.CNO='2'
ANDSC1.SCGRADE>SC2.SCGRADE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 复习资料