(一)数据库的发展历史分哪几个阶段?各有什么特点。
答:从数据管理的角度看,数据库技术到目前共经历了人工管理阶段、文件系统阶段和数据库系统阶段。
人工管理阶段数据管理特点:数据不保存,没有对数据进行管理的软件系统,没有文件的概念,数据不具有独立性。
文件系统阶段数据管理特点:数据可以长期保存,由文件系统管理数据,文件的形式已经多样化,数据具有一定的独立性。
数据库系统阶段数据管理特点:采用复杂的结构化的数据模型,较高的数据独立性,最低的冗余度,数据控制功能。
(二)简述数据库设计过程的各个阶段上的设计描述。
答:数据库设计的过程(六个阶段)
1.需求分析阶段
准确了解与分析用户需求(包括数据与处理)
是整个设计过程的基础,是最困难、最耗费时间的一步
2.概念结构设计阶段
是整个数据库设计的关键
通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型
3.逻辑结构设计阶段
将概念结构转换为某个DBMS所支持的数据模型
对其进行优化
4.数据库物理设计阶段
为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)
5.数据库实施阶段
运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果
建立数据库,编制与调试应用程序,组织数据入库,并进行试运行
6.数据库运行和维护阶段
数据库应用系统经过试运行后即可投入正式运行。
在数据库系统运行过程中必须不断地对其进行评价、调整与修改
设计特点:
在设计过程中把数据库的设计和对数据库中数据处理的设计紧密结合起来将这两个方面的需求分析、抽象、设计、实现在各个阶段同时进行,相互参照,相互补充,以完善两方面的设计
(三)学校有若干个系,每个系有若干班级和教研室,每个教研室有若干教员,
其中有的教授和副教授每人各带若干研究生。每个班有若干学生,每个学生
选修若干课程,每门课程可由若干学生选修。用E-R图画出该学校的概念模型。
答:
(四)今要建立关于系、学生、班级、学会诸信息的一个关系数据库。一个系有若
干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一个宿舍区。每个学生可参加若干学会,每个学会有若干学生。
描述学生的属性有:学号、姓名、出生年月、系名、班号、宿舍区。
描述班级的属性有:班号、专业名、系名、人数、入校年份。
描述系的属性有:系号、系名、系办公室地点、人数。
描述学会的属性有:学会名、成立年份、地点、人数。学生参加某学会有一个入会年份
请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况,讨论函数依赖是完全函数依赖,还是部分函数依赖。指出各种关系的候选码和外部码。
答:关系模式:
学生(学号,姓名,出生年月,班号)
班级(班号,专业名,入校年份,人数)
专业(专业名,系号)
系(系名,系号,系办公室地点,人数,学生宿舍区)
学会(学会名,成立年份,地点,人数)
学生学会(学号,学会名,入会年份)
模式的极小函数依赖集:
学生{学号→姓名,学号→出生年月,学号→班号},不存在传递依赖和部分依赖,班号为外码;
班级{班号→专业名,班号→入校年份,班号→人数},不存在传递依赖和部分依赖,专业名为外码;
专业{专业名→系号},不存在传递依赖和部分依赖,系号为外码;
简述数据库系统的特点系{系号→系名,系号→系办公室地点,系号→人数,系号→学生宿舍区},不存在传递依赖和部分依赖;
学会{学会名→成立年份,学会名→地点,学会名→人数},不存在传递依赖和部分依赖;
学生学会{(学号,学会名)→入会年份},不存在传递依赖和部分依赖。
(五)现有关系数据库如下:
学生(学号,姓名,性别,专业、奖学金)
课程(课程号,名称,学分)
学习(学号,课程号,分数)
请用关系代数表达式实现下列1—4小题,用SQL语言实现下列5—8小题。
1.检索“国际贸易”专业中获得奖学金的学生信息,包括学号、姓名、课程名和分数;
答:Π学号,姓名,课程名,分数(σ奖学金>0∧专业=国际贸易(学生∞学习∞课程))
2.检索学生成绩得过满分(100分)的课程的课程号、名称和学分;
答:Π课程号,名称,学分(σ分数=100(学习∞课程))
3.检索没有获得奖学金、同时至少有一门课程成绩在95分以上的学生信息,包括学号、姓名和专业;
答:Π学号,姓名,专业(σ奖学金<=0∧分数>95(学生∞学习))
4.检索没有任何一门课程成绩在80分以下的学生的信息,包括学号、姓名和专业;
答:Π学号,姓名,专业(学生)—Π学号,姓名,专业(σ分数<80(学生∞学习))
5.检索没有获得奖学金、同时至少有一门课程成绩在95分以上的学生信息,包括学号、姓名和专业;
答:SELECT 学生.学号,姓名,专业
FROM 学生,学习
WHERE 学生.学号=学习.学号 AND 学习.课程号=课程.课程号 AND 奖学金
<=0 AND 分数>95
6.检索没有任何一门课程成绩在80分以下的所有学生的信息,包括学号、姓名和专业
答:SELECT 学号,姓名,专业
FROM 学生
WHERE 学号 NOT IN
(
SELECT 学号
FROM 学习
WHERE 分数<80)
7.对成绩得过满分(100分)的学生,如果没有获得奖学金的,将其奖学金设为1000元;
答:UPDATE 学生
SET 奖学金=1000
WHERE 奖学金<=0 AND 学号 IN
(SELECT 学号
FROM 学习
WHERE 分数=100)
8.定义学生成绩得过满分(100分)的课程视图AAA,包括课程号、名称和学分;
答:CREATE VIEW AAA(课程号,名称,学分)AS SELECT 课程号,名称,学分 FROM 课程
WHERE 课程号 IN
(SELECT 课程号
FROM 学习
WHERE 分数=100)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论