(声明:禁止转载)
【简答题】
1.请简要回答数据库设计的几个步骤。
- 需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行和维护
2.简述数据字典是什么,包含那些内容?
- 数据字典:是关于数据库中数据的描述,即元数据而不是数据的本身。
- 数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程几部分。数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。
3. 数据库系统如何保证数据和程序的物理和逻辑独立性?
- 数据库的三级模式中提供了两层映像: 外模式/模式,内模式/模式映像 ,分别为数据库系统实现数据和程序之间的独立性提供了保证。 1、逻辑独立性:用外模式/模式的映像 保证了数据的 逻辑独立性 ,将由概念模式变化所带来的影响与外模式隔离开来。 即一个模式可以有任意多个外模式,对于每一个外模式,数据库系统都有一个外模式/模式映像。 当模式改变时,由数据库管理员对各个外模式/模式的映像做相应改变,可以实外模式保持不变。 应用程序从而保持不变,因此保证了数据的逻辑独立性。 2、物理独立性:用模式/内模式映像 保证了数据的 物理独立性 ,将由内模式变化所带来的影响与概念模式隔离开来。
4. 简要介绍满足1NF-BCNF范式要求的关系模式特点?
- 1NF不能表中有表,即数据项不能再分
- 2NF消除非主属性对码的部分函数依赖
- 3NF消除非主属性对码的传递函数依赖
- BCNF消除主属性对码的部分和传递函数依赖
5.数据库编程,游标实现的步骤?
- 定义游标:DECLARE。
- 打开游标:OPEN。
- 提取游标:FETCH。
- 关闭游标:CLOSE。
- 释放游标:DEALLOCATE。
- 6.事务的ACID特性是什么?
原子性,一致性,隔离性,持久性。
【应用题1参考】
【应用题2参考】
--1
SELECT SNAME, AGE
FROM S
WHERE AGE BETWEEN 18 AND 19;
--2
SELECT S#, SNAME, SEX
FROM S
WHERE DEPARTMENT = '计算机系'; -- 假设DEPARTMENT是S表的一个属性
--3
SELECT COUNT(*)
FROM S;
--4
SELECT S.S#, S.SNAME, SC.GRADE
FROM S
JOIN SC ON S.S# = SC.S#;
--5
SELECT S.SNAME, C.CNAME, SC.GRADE
FROM SC
JOIN S ON SC.S# = S.S#
JOIN C ON SC.C# = C.C#;
--6
SELECT S.S#
FROM S
GROUP BY S.S#
HAVING COUNT(*) > 3;
--7
CREATE PROCEDURE GetStudentGrades(IN student_id INT,OUT max_grade sc.grade%type,OUT min_grade sc.grade%type)
as
BEGIN
SELECT MAX(GRADE) AS MaxGrade, MIN(GRADE) AS MinGrade
FROM SC
WHERE S# = student_id;
max_grade:=MaxGrade;
min_grade:=MinGrade;
END;
--8
CREATE PROCEDURE PrintAverageGrade()
as
AverageGrade SC.GRADE%type;
BEGIN
SELECT AVG(GRADE)
into AverageGrade
FROM SC;
dbms_output.put_line(AverageGrade||',');
END;
--9
CREATE TRIGGER AfterInsertStudent
AFTER INSERT ON S
FOR EACH STATEMENT
row_count INT;
BEGIN
SELECT COUNT(*) INTO row_count
FROM S;
dbms_output.put_line(row_count||',');
END;
//细节修改后