1、数据库复习资料doc数据库复习资料 心之所向,所向披靡 1、通常,一个数据库的数据模型由数据结构、数据操作和数据的约束条件三部分组成。其中,数据结构和 数据的约束条件为数据的静态特性。 2、数据模型实际上是模型化数据和信息的工具。根据模型应用的不同目的,可以将模型分为两大类:概念 层数据模型(概念模型)-从数据的语义视角来抽取模型,是按用户的观点来对数据和信息进行建模。组 织层数据模型(逻辑模型)-从数据的组织层次来描述数据。 3、数据模型中的组织层数据模型从数据的组织方式来描述数据,目前主要包括四种组织层数据模型:层次 模型、网状模型、关系模型和对象-关系模型。 4、实体之间的联系可分为三种
2、:一对一关系,一对多关系和多对多关系 5、关系模型的操作对象是集合,也就是关系。 6、关系数据模型的数据操作主要包括四种:查询、插入、删除和修改数据。 7、关系模型的数据完整性约束包括:实体完整性、参照完整性和用户定义的完整性。 8 、数据库系统的三级模式结构分别为:外模式 (External Schema) ,模式 (Schema) 和内模式 (Internal Schema)。 9、SQL SERVER 中提供的整数数据类型有:BIGINT,INT,SMALLINT,TINYINT 和 BIT 10、要在 SQL SERVER 表中存储一个小数数据,具体要求如下:小数位保留三位,整数位最大
3、有 10 位,应 该选用的数据类型为 DECIMAL(13,3)或 NUMERIC(13,3)。 11、要在要在 SQL SERVER 表中存储个人爱好资料,该资料可以不填,最多可填 200 汉字,应该选用的数据 类型为 VARCHAR(400)来定义。 12、统一字符编码字符串类型每个字符占两个字节。 13、一个汉字节两个字节。 名词解释 1、什么是数据库,作用是什么? 答:1、存放数据的一个有组织,有结构的系统。2、一个软件系统。 1、数据存储 2、数据查询 3、数据管理 4、数据共享 5、数据挖掘 6、数据安全 2、什么是数据库系统,作用是什么? 答:本质上是一个用计算机存储数据的系统,
4、一般由数据库、数据库管理系统(及相关实用工具) 、应用 程序、数据库管理员组成。 主要作用除保存数据外,还提供对数据进行各种管理和处理:安全管理、数据共享、数据查询。 3、什么是数据库管理系统,作用是什么? 答:是一个专门用于实现对数据进行管理和维护的系统软件。 主要作用包括:数据库的建立与维护;数据定义;数据组织、存储和管理;数据操作;事务的管理和运行。 4、数据独立性 答:指应用程序不会因数据的物理表示方式和访问技术的改变而改变,即应用程序不依赖于任何特定的物 理表示方式和访问技术,包含两个方面:逻辑独立性和物理独立性 5、关系模型、关系和关系模式。 答:用关系(表格数据)表示实体和实体之
5、间联系的模型称为关系数据模型-1-关系 :关系就是二维表。并满足如下性质:关系表中的每一列都是不可再分的基本属性;表中的行、列次 序并不重要。 关系模式:二维表的结构称为关系模式,即,关系模式是二维表的表框架或表头结构。 6、元组、属性、主码、域 答:元组:表中的每一行称作是一个元组,它相当于一个记录值。 属性:表中的每一列是一个属性值的集合,列可以命名,称为属性名。 主码:表中用于惟一地确定一个元组的一个属性或最小的属性组。 域:属性的取值范围。 7、实体完整性、参照完整性和用户定义完整性 答:实体完整性是保证关系中的每个元组都是可识别的和惟一的。 而且表中不允许存在如下的记录:无主 码值的
6、记录和主码值相同的记录。 参照完整性用于描述实体之间的联系。参照完整性一般是指多个实体(表)之间的关联关系。 一般用外码实现。外码:取作本表(子表)属性之一的外表(父表,主表)主码。主码值先在 主表中生成,后在子表中引用。 用户定义完整性也称为域完整性或语义完整性。按应用语义,属性数据有:类型与长度限制: 方便计算机操作。取值范围限制:防止属性值与应用语义矛盾 8、数据模式 答:在数据模型中有关数据结构及其相互间关系的描述称为数据模式(Data schema)。 9、信息技术 答:信息技术(Information Technology 简称 IT)是指在信息科学的基本原理和方法的指导下扩展人类
7、信 息功能的技术。一般说,信息技术是以电子计算机和现代通信为主要手段实现信息的获取,加工,传递和 利用等功能的技术总和。 10、信息技术的四大基本技术是哪些? 答:传感技术、通信技术、计算机技术和控制技术是信息技术的四大基本技术,其主要支柱是通讯 (Communication)技术、计算机(Computer)技术和控制(Control)技术,即“3C”技术。 11、数据、信息与知识 答:数据是使用约定俗成的关键词,对客观事物的数量、属性、位置及其相互关系进行抽象表示,以适合 在这个领域中用人工或自然的方式进行保存、传递和处理。 信息是具有时效性的有一定含义的,有逻辑的、经 过加工处理的、对决策
8、有价值的数据流。 知识就是沉淀并与已有人类知识库进行结构化的有价值信息。 12、数据库技术 答:数据库是数据管理的最新技术,主要研究内容是如何对数据进行科学的管理,以提供可共享、安全、 可靠的数据。数据库技术一般包含数据管理和数据处理两部分。 13、视图及其作用 答: 视图由基本表构成的虚表(满足用户需求的表结构) 。 它的主要作用包括:简化数据查询语句,使用户能从多角度看待同一数据,提高了数据的安全性,提供了 一定程度的逻辑独立性。 SQL 命令执行结果题 在 SQL SERVER 查询分析器中执行如下 SQL 操作:-2-以上命令正确执行完成后, 请写出如下 SQL 语句的执行结果。 (如
9、果没有找到相应记录, 则写没有找到记录) 数据库设计题(共 20 分) 假设有如下数据管理要求, 请你根据上述要求,按下步骤完成一个数据库的设计。要求满足第三范式。 1、 画出系统 E-R 图2、 画出系统数据库的逻辑图 (如下图所示样式)班级 PK 班级编号 班级名称 PK 学生 学号 姓名 性别 年龄 班级编号 PK 教员 工号 姓名 年龄 教龄 职称编号 PK 职称 职称编号 职称FK1FK1选课 PK FK1 FK2 ID 学号 课程号 FK1 PK课程 课程号 名称 课时 学分 工号通知 PK ID 标题 内容3、写出各关系在 SQL SERVER 中的物理结构定义。 (结构如下表所
10、示) 表 1 student 表(学生表) 序号 1 2 字体名称 SNO SNAME 数据类型 INT VARCHAR(50) 约束 PRIMARY KEY NOT NULL 说明 学号 学生姓名操作题。按下要求,完成相应的 SQL 语句。 (共 20 分) /*综合实验二*/ /* 1新建一个数据库名为 SAMPLE,选择其,在“新建查询”窗口中,用 CREATE TABLE 语句创建如下表。 (1) STUDENT (SNO VARCHAR(3) NOT NULL, SNAME VARCHAR(4) NOT NULL, SSEX VARCHAR(2) NOT NULL, SBIRTHDA
11、Y DATETIME, CLASS VARCHAR(5) */-3-create database sample use sample create table student (SNO VARCHAR(3) primary key, SNAME VARCHAR(4) NOT NULL, SSEX VARCHAR(2) NOT NULL, SBIRTHDAY DATETIME, CLASS VARCHAR(5) /* (2) COURSE (CNO VARCHAR(5) NOT NULL, CNAME VARCHAR(10) NOT NULL, TNO VARCHAR(10) NOT NULL
12、) */ create table course (CNO VARCHAR(5) primary key, CNAME VARCHAR(10) NOT NULL, TNO VARCHAR(10) NOT NULL) /* (3) SCORE (SNO VARCHAR(3) NOT NULL, CNO VARCHAR(5) NOT NULL, DEGREE NUMERIC(10, 1) NOT NULL) */ create table score (SNO VARCHAR(3) NOT NULL, CNO VARCHAR(5) NOT NULL, DEGREE NUMERIC(10, 1) N
13、OT NULL, primary key(sno,cno) /* (4) TEACHER (TNO VARCHAR(3) NOT NULL, TNAME VARCHAR(4) NOT NULL, TSEX VARCHAR(2) NOT NULL, TBIRTHDAY DATETIME NOT NULL, PROF VARCHAR(6), DEPART VARCHAR(10) NOT NULL) */ create table teacher (NO VARCHAR(3) primary key, TNAME VARCHAR(4) NOT NULL, TSEX VARCHAR(2) NOT NU
14、LL,-4-TBIRTHDAY DATETIME NOT NULL, PROF VARCHAR(6), DEPART VARCHAR(10) NOT NULL) /* 2用 INSERT 语句,添加如下数据。 (1)在 STUDENT 表中插入如下数据: (108 ,'曾华' ,'男' ,1977-09-01,95033); (105 ,'匡明' ,'男' ,1975-10-02,95031); (107 ,'王丽' ,'女' ,1976-01-23,95033); (101 ,'李军
15、9; ,'男' ,1976-02-20,95033); (109 ,'王芳' ,'女' ,1975-02-10,95031); (103 ,'陆君' ,'男' ,1974-06-03,95031); */ insert into student values (108 ,'曾华' ,'男' ,'1977/09/01',95033) insert into student values (105 ,'匡明' ,'男' ,'1975
16、/10/02',95031) insert into student values (107 ,'王丽' ,'女' ,'1976/01/23',95033) insert into student values (101 ,'李军' ,'男' ,'1976/02/20',95033) insert into student values (109 ,'王芳' ,'女' ,'1975/02/10',95031) insert into stude
17、nt values (103 ,'陆君' ,'男' ,'1974/06/03',95031) /* (2)在 COURSE 表添加如下数据: ('3-105' ,'计算机导论',825) ('3-245' ,'操作系统' ,804); ('6-166' ,'数据电路' ,856); ('9-888' ,'高等数学' ,100); ( 3-109 , 数据库技术及应用 ,825) ; */ insert into cour
18、se values ('3-105' ,'计算机导论','825') insert into course values ('3-245' ,'操作系统' ,'804') insert into course values ('6-166' ,'数据电路' ,'856') insert into course values ('9-888' ,'高等数学' ,'100') alter table cour
19、se alter column cname varchar(40) insert into course values ('3-109','数据库技术及应用','825')-5-/* (3)在表 SCORE 中添加如下数据: (103,'3-245',86); (105,'3-245',75); (109,'3-245',68); (103,'3-105',92); (105,'3-105',88); (109,'3-105',76); (101,
20、39;3-105',64); (107,'3-105',91); (108,'3-105',78); (101,'6-166',85); (107,'6-106',79); (108,'6-166',81); */ insert into score values (103,'3-245',86) insert into score values (105,'3-245',75) insert into score values (109,'3-245',68
21、) insert into score values (103,'3-105',92) insert into score values (105,'3-105',88) insert into score values (109,'3-105',76) insert into score values (101,'3-105',64) insert into score values (107,'3-105',91) insert into score values (108,'3-105',78
22、) insert into score values (101,'6-166',85) insert into score values (107,'6-106',79) insert into score values (108,'6-166',81) /* (4)在表 TEACHER 中添加如下数据: (804,'李诚','男','1958-12-02','副教授','计算机系'); (856,'张旭','男','1969-
23、03-12','讲师','电子工程系'); (825,'王萍','女','1972-05-05','助教','计算机系'); (831,'刘冰','女','1977-08-14','助教','电子工程系');-6-*/ insert into teacher values (804,'李诚','男','1958-12-02','副教授'
24、;,'计算机系') insert into teacher values (856,'张旭','男','1969-03-12','讲师','电子工程系') insert into teacher values (825,'王萍','女','1972-05-05','助教','计算机系') insert into teacher values (831,'刘冰','女','1977-
25、08-14','助教','电子工程系') /* 3完成下列 SQL 操作。 1) 查询 Student 表中的所有记录的 Sname、Ssex 和 Class 列。 */ select sname,ssex,class from student /* 2) 查询教师所有的单位即不重复的 Depart 列。 */ select distinct depart from teacher /* 3) 查询 Student 表的所有记录。 */ select * from student /* 4) 查询 Score 表中成绩在 60 到 80 之间的所有记录。
26、 */ select * from score where degree between 60 and 80 /* 5) 查询 Score 表中成绩为 85,86 或 88 的记录。 */ select * from score where degree in(85,86,88) /* 6) 查询 Student 表中“95031”班或性别为“女”的同学记录。 */ select * from student where class='95031' or ssex='女' /* 7) 以 Class 降序查询 Student 表的所有记录。 */ select
27、* from student order by class desc /* 8) 以 Cno 升序、Degree 降序查询 Score 表的所有记录。 */ select * from score order by cno,degree desc /*-7-9) 查询“95031”班的学生人数。 */ select count(*) from student where class='95031' /* 10) 查询 Score 表中的最高分的学生学号和课程号。 */ select sno,cno from score where degree in(select max(de
28、gree) from score)SELECT A.SNO,B.CNO FROM SCORE A, SCORE B WHERE B.DEGREE IN(SELECT MAX(DEGREE) FROM SCORE GROUP BY CNO) AND A.SNO=B.SNO AND A.CNO=B.CNO /* 11) 查询3-105号课程的平均分。 */ select avg(degree) from score where cno='3-105' /* 12) 查询 Score 表中至少有 5 名学生选修的并以 3 开头的课程的平均分数。 */ select cno,avg(d
29、egree) from score group by cno having count(*)>4 and cno like '3%' /* 13) 查询最低分大于 70,最高分小于 90 的 Sno 列。 */ select sno from score group by sno having min(degree)>70 and max(degree)<90 /* 14) 查询所有学生的 Sname、Cno 和 Degree 列。 */ select sname,cno,degree from student s,score sc where s.sno=s
30、c.sno /* 15) 查询所有学生的 Sno、Cname 和 Degree 列。 */ select sno,cname,degree from score sc,course c where o=o /* 16) 查询所有学生的 Sname、Cname 和 Degree 列。 */ select sname,cname,degree from student s,score sc,course c where s.sno=sc.sno and o=o /* 17) 查询“95033”班所选课程的平均分。 */ select avg(degree) from score where sno
31、 in (select sno from student where class='95033') /* 18) 假设使用如下命令建立了一个 grade 表: create table grade(low number(3,0),upp number(3),rank char(1); insert into grade values(90,100,A); insert into grade values(80,89,B);-8-insert into grade values(70,79,C); insert into grade values(60,69,D); insert
32、 into grade values(0,59,E); commit; 现查询所有同学的 Sno、Cno 和 rank 列。 */ create table grade(low numeric(3,0),upp numeric(3,0),rank char(1) insert into grade values(90,100,'A') insert into grade values(80,89,'B') insert into grade values(70,79,'C') insert into grade values(60,69,'D') insert into grade values(0,59,'E') commit; select sno,cno,rank from score,grade where degree between low and upp /* 19) 查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录。 */ select s.sno,sname,ssex,sbirthday,class from student s,score sc where s.sno=sc.sno and sc.sno in (select sno from scor
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1