- 完整版(卫星):zzq668878
一:名词解释总结
- 完整版(卫星):zzq668878
-
数据:是数据库中存储的基本对象,是描述事物的符号记录
-
数据库:是永久存储在计算机内的,有组织的、可共享的大量数据的集合
-
数据库管理系统:是位于用户与操作系统之间的一层数据管理软件,和操作系统一样都是计算机的基础软件
-
数据库系统:是在计算机中引入数据库后的系统构成。包括DB,DBMS,APP,DBA
-
数据模型:计算机是不可能直接处理现实世界中的具体事物的,所以人们必须事先把具体事物转化为计算机能够处理的数据。因此数据模型是对现实世界数据特征的抽象,也即数据模型是用来描述数据、组织数据和对数据进行操作的
-
概念模型(信息模型):是按用户的观点来对数据和信息建模,用于数据库设计
-
逻辑模型:是按计算机系统的观点对数据建模,主要用于数据库管理系统的实现
-
物理模型:对数据最底层的抽象,它描述数据在系统内部的表示方法和存取方法,或在磁盘或磁带上的存储方式和存取方法,是面向计算机系统的
-
实体 :客观存在并可以相互区别的事物。实体可以是具体的人、事、物,也可以是抽象的概念或联系
-
属性:实体所具有的某一特性。一个实体可以由若干属性刻画
-
码 :唯一标识实体的属性
-
实体型: 用实体名及其属性集合来抽象和刻画同类实体
-
实体集: 同一类型实体的集合
-
联系 :实体内部的联系通常是指组成实体的各属性之间的联系,实体之间的联系通常是指不同实体集之间的联系
-
关系 :一个关系对应一张表
-
元组 :表中一行或者是一条记录叫做一个元组
-
属性 :表中一列叫做一个属性,给每一个属性起一个名称叫做属性名
-
码 :用于唯一确定一个元组
-
域 :属性的取值范围
-
…
-
完整版(卫星):zzq668878
二:简答题总结
- 完整版(卫星):zzq668878
(1)非常重要
1.数据库系统的特点
【答案】
- 数据库系统具有一个很大的特点,那就是整体结构化。数据的结构用数据模型描述,无序程序定义和解释
- 数据库系统中数据的共享度高,冗余度低,易扩充
- 数据库系统数据独立性高(物理独立性和逻辑独立性),也即程序和数据之间相互独立,互不影响
- 数据由DBMS统一管理和控制,他可以提供安全性、完整性、并发等诸多服务
2.数据库管理系统的主要功能
【答案】
- 数据定义功能(提供数据定义语言DDL)
- 数据组织、存储和管理功能
- 数据操纵功能(提供数据操纵语言DML)
- 数据库的事务管理和运行管理
- 数据库的建立和维护功能
3.什么是概念模型?
【答案】
- 定义:是按照用户的观点对数据和信息建模,用于数据库设计
- 作用:概念模型实际上是现实世界到机器世界的一个中间层次。概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言
4.试述数据模型的概念、和三个要素
【答案】
- 概念:计算机是不可能直接处理现实世界中的具体事物的,所以人们必须事先把具体事物转化为计算机能够处理的数据。因此数据模型是对现实世界数据特征的抽象,也即数据模型是用来描述数据、组织数据和对数据进行操作的
- 三个要素:数据结构,数据操纵和数据完整性约束
5.试述数据库系统的三级模式结构,并说明这种结构的优点是什么(★★★★★)
【答案】
6.试述关系模型的完整性规则(★★★★★)
【答案】
并、差、笛卡尔积、投影和选择是基本运算。其余运算(交、连接、除)均可由基本运算导出
…
(2)可以了解
1.试述文件系统与数据库系统的区别和联系
【答案】
区别:
- 文件系统面向某一应用程序,共享性差,冗余度大,数据独立性差,记录内有结构,整体无结构,由应用程序自己控制
- 数据库系统面向现实世界,共享性高,冗余度小,具有较高的物理独立性和一定的逻辑独立性,整体结构化,用数据模型描述,由数据库管理系统提供数据的安全性、完整性、并发控制和恢复能力
联系:
- 文件系统与数据库系统都是计算机系统中管理数据的软件
- DBMS是在操作系统的基础上实现的,数据库中数据的组织和存储是通过操作系统中的文件系统来实现的
2.简述关系数据语言的特点和分类
【答案】
这些关系数据语言的共同特点是:语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用
3.
【答案】
①:层次模型
②:网状模型
…
三:应用题总结
- 完整版(卫星):zzq668878
主要有以下九种题型
- 考察关系代数表达式
- 考察SQL语言
- 查询树机及其优化
- E-R模型转关系模型
- 有关范式
- 关于数据库恢复
- 闭包
- 求解候选码
- 有关锁的问题
下方语句仅供参考,几乎涵盖了考试所有考察的SQL语句
//创建基本表
CREATE TABLE SC
(
Sno CAHR(9) PRIMARY KEY,
Cno CHAR(9) PRIMARY KEY,
Sage SMALLINT NOT NULL,
//PRIAMRY KEY(Sno,Cno)
FOREIGN KEY(Sno) REFERENCES Student(Sno),
FOREIGN KEY(Cno) REFERENCES Course(Cno)
);
//修改基本表
ALTER TABLE Student ADD Sname CHAR(9) NOT NULL
ALTER TABLE Student ADD COLUMN Sage CHAR;
ALTER TABLE Student ADD UNIQUE(Cno,Cname)
ALTER TABLE Student DROP COLUMN Sname CASCADE
//删除基本表
DROP TABLE Student CASCADE
//建立索引
CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Cno DESC);
//修改索引
ALTER INDEX SCno RENAME TO SCSno;
//查询单表
SELECT Sname,2022-Sage FROM Student;//属性列可以参与运算
SELECT Sname ‘姓名’,Sage '年龄' FROM Student;//起别名
SELECT DISTINCT Sno FROM SC;//消除重复行
SELECT Sno,Grade FROM SC WHERE Grade > 85;//满足某条件
SELECT Sname,Sdept WHERE Sdept IN('MA','CS');
SELECT Sname FROM Student WHERE Sname='刘%';
SELECT * FROM Student WHERE Sdept='CS'AND Sage < 20;//多重条件
SELECT Sno,Grade FROM SC WHERE Cno='3' ORDER BY GRADE DESC//ORDER BY 子句
SELECT AVG(Grade) FROM SC WHERE Cno='2';//聚集函数
SELECT Sno,MAX(Grade) FROM SC WHERE Cno='2';
SELECT Sno,AVG(Grade) avg FROM SC GROUP BY Sno avg >=80;//GROUP BY子句
//连接查询
SELECT Student.*,SC.* FROM Student,SC WHERE Student.Sno=SC.Sno;//自然连接
SELECT Student.Sno,Sname FROM Student,SC where Student.Sno=SC.Sno AND Cno='2' AND Grade > 80;
SELECT ONE.Cno,THREE.Cpno,FROM Course ONE,Course TWO,Course THREE WHERE ONE.Cpno=TWO.Cno AND TWO.Cpon=THREE.Cno;//自身连接
SELECT Sno,SC.Cno,Grade,Course.Cno,Cname,Cpno,Ccredit FROM SC INNER JOIN Course ON (SC,Cno=Course.Cno);//INNER JOIN,LEFT JOIN,RIGHT JOIN,FULL JOIN
//嵌套查询
SELECT Student.Sno,Sname,Sdept FROM Student WHERE Sdept IN (SELECT Sdept FROM Studetn WHERE Snmae="刘晨");//IN谓词查询
SELECT Sno,Cno FROM SC x WHERE Grade >=(SELECT AVG(Grade) FROM SC WHERE x.Sno=Sno)//带有比较运算符的查询
SELECT Sname,Sage FROM Student WHERE Sage < ANY(Select Sage from student WHERE Sdept='CS') AND Sdept!='CS';//带有ANY(SOME)或ALL谓词的子查询
//插入数据
INSERT INTO Student(Sno,Sname,Ssex,Sdept,Sage) VALUES('201215128','陈冬','男',IS,18);//插入元组
INSERT INTO Student('201215126','张世民','男','18','CS';);
INSERT INTO Dept_age(Sdept,Age) SELECT Sdept,AVG(Sage) FROM Student GROUP BY Sdept;//插入子查询结果
//修改数据
UPDATE Student SET Sage=22 WHERE sNO='2012151002';//修改某一个元组的值
UPDATE Student SET Sage=Sage+1;//修改多个元组的值
UPDATE SC SET Grade=0 WHERE Sno IN(SELECT Sno FROM Student WHERE Sdept='CS');//带子查询的修改语句
//删除数据
DELETE FROM Student WHERE Sno='201215128';
DELETE FROM SC;
DELETE FROM SC WHERE Sno IN(SELECT Sno FROM Student WHERE Sdept='CS');
//创建视图视图
CREATE VIEW IS_student AS SELECT Sno,Sname FROM Student WHERE Sdept='IS';\
CREATE VIEW Stu_Grade_Avg(Sno,Savg) AS SELECT Sno,AVG(Grade) FROM SC GROUP BY Sno;
//修改视图
UPDATE IS_student Set Sname='刘晨' WHERE Sno='201215125' WITH CHECK OPTION;
//授权授予
GRANT SELECT ON TABLE Student TO U1;
GRANT ALL PRIVILEGES ON TABLE Student,Course TO U2,U3;
GRANT SELECT ON TBALE SC TO PUBLIC;
GRANT UPDATE(Sno),SELECT ON TBALE Student TO U4;
GRANT INSERT ON TBALE SC TO U5 WITH GRANT OPTION;//允许再授权
//权限回收
REVOKE UPDATE(Sno) ON TABLE Student FROM U4;
REVOKE SELECT ON TABLE SC FROM PUBLIC;
REVOKE INSERT ON TABLE SC FROM U5 CASCADE;//级联收回
//角色及其授权、回收
CREATE ROLE R1;//创建一个角色R1
GRANT SELECT,UPDATE ON TABLE Student TO R1;//让角色拥有某种权限
GRANT R1 TO U1,U2,U3;//将角色R1拥有的权限赋给用户
REVOKE R1 FROM U1;//通过角色收回权限
//完整性约束命名子句
CREATE TABLE Student//创建
(
Sno NUMERIC(6) CONSTRAINT C1 CHECK(Sno BETWEEN 1 AND 100),
Sname CHAR(20) CONSTRAINT C2 NOT NULL,
Ssex CHAR(2) CONSTRAINT C3 CHECK(Ssex IN ('男','女')),
Spro CHAR(10)
CONSTRAINT C4 PRIMARY KEY(Sno),
CONSTRAINT C5 FOREIGN KEY(Spro) REFERENCES P(Spro)
);
ALTER TABLE Student DROP CONSTRAINT C1;//删除
ALTER TABLE Student ADD CONSTRAINT C1 CHECK(Sno BETWEEN 1 AND 10);//修改
//断言
CREATE ASSERTION ASS CHECK
(
60 >=
ALL
(
SELECT count(*)
FROM SC
GROUP BY Cno
)
);
//参照完整性中当删除或修改被参照表时参照表所作的动作
CREATE TABLE SC
(
Sno CHAR(9)
Sno CHAR(4)
Grade SMALLINT,//是外码也是主码,故不能取空值,实体完整性
PRIMARY KEY(Sno,Cno),
FOREIGN KEY(Sno) REFERENCES Student(Sno)
ON DELETE CASCADE //删除Student表的元组时,级联删除本表相应元组
ON UPDATE CASCADE, //更新Student表中的Sno时,级联更新本表相应元组
FOREIGN KEY(Cno) REFERENCES Course(Cno)
ON DELETE NO ACTION //删除Course表的元组造成不一致时,拒绝执行
ON UPDATE CASCADE //更新Course表中的Cno时,级联更新本表相应元组
);