数据库基础与应用(题与答案整理好)中南大学远程教育平台

更新时间:2023-11-07 17:15:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《数据库基础与应用》

学习中心: 专 业: 学 号: 姓 名:

第1章 数据库概述

一、选择题

1.( A )是位于用户与操作系统之间的一层数据管理软件。数据库在建立、使用和维护时由其统一管理、统一控制。

A.DBMS B.DB C.DBS D.DBA 2.( C )是长期存储在计算机内有序的、可共享的数据集合。 A.DATA B.INFORMATION C.DB D.DBS

3.文字、图形、图像、声音、学生的档案记录、货物的运输情况等,这些都是( A )。 A.DATA B.INFORMATION C.DB D.其他

4.数据库应用系统是由数据库、数据库管理系统(及其开发工具)、应用系统、( D )和用户构成。

A.DBMS B.DB C.DBS D.DBA

5.目前( A )数据库系统已逐渐淘汰了网状数据库和层次数据库,成为当今最为流行的商用数据库系统。

A.关系 B.面向对象 C.分布 6.( A )是刻画一个数据模型性质最重要的方面。因此在数据库系统中,人们通常按( )的类型来命名数据模型。

A.数据结构 B.数据操纵 C.完整性约束

二、填空题

1.数据库就是长期储存在计算机内 _有序的、可共享的 数据集合。 2.数据库管理系统是位于用户与操作系统之间的一层数据管理软件。数据库在__建立_____、_使用______和_维护______时由数据库管理系统统一管理、统一控制。

3.数据库应用系统是由_数据库______、_数据库管理系统(及其开发工具)______、____应用系统___、__DBA_____和___用户____构成。

4.数据库技术经历了_手工______、_文件______和__数据库_____三个发展阶段。 5.数据模型通常都是由_数据结构______、__数据操作_____和__完整性与约束性条件_____三个要素组成。

6.目前最常用的数据模型有__关系_____、_网状______和__层次_____。20世纪80年代以来,_关系数据模型______逐渐占主导地位。

三、判断题

对1.数据是对客观事物的属性的描述与记载,学生的档案记录、货物的运输情况等都是数据。

对2.数据库中的数据可为各种用户共享。 错3.使用文件系统管理数据要比数据库方便。 错4.数据模型是机器世界的模拟。

四、简答题

1.简述计算机数据管理技术发展的三个阶段。 一、人工管理

这一阶段(20世纪50年代中期 以前),计算机主要用于科学计算。外部存储器只有磁带、卡片和纸带等还没有磁盘等直接存取存储设备。软件只有汇编语言,尚无数据管理方面的软件。数据处理方式基本是批处理。这个阶段有如下几个特点:

计算机系统不提供对用户数据的管理功能。用户编制程序时,必须全面考虑好相关的数据,包括数据的定义、存储结构以及存取方法等。程序和数据是一个不可分割的整体。数据脱离了程序就无任何存在的价值,数据无独立性。

数据不能共享。不同的程序均有各自的数据,这些数据对不同的程序通常是不相同的,不可共享;即使不同的程序使用了相同的一组数据,这些数据也不能共享,程序中仍然需要各自加人这组数据,谁也不能省略。基于这种数据的不可共享性,必然导致程序与程序之间存在大量的重复数据,浪费了存储空间。

不单独保存数据。基于数据与程序是一个整体,数据只为本程序所使用,数据只有与相应的程序一起保存才有价值,否则就毫无用处。所以,所有程序的数据均不单独保存。

二、文件系统

在这一阶段(20世纪50年代后期至60年代中期)计算机不仅用于科学计算,还利用在信息管理方面。随着数据量的增加,数据的存储、检索和维护问题成为紧迫的需要,数据结构和数据管理技术迅速发展起来。此时,外部存储器已有磁盘、磁鼓等直接存取的存储设备。软件领域出现了操作系统和高级软件。操作系统中的文件系统是专门管理外存的数据管理软件,文件是操作系统管理的重要资源之一。数据处理方式有批处理,也有联机实时处理。这个阶段有如下几个特点:

数据以“文件”形式可长期保存在外部存储器的磁盘上。由于计算机的应用转向信息管理,因此对文件要进行大量的查询、修改和插人等操作。

数据的逻辑结构与物理结构有了区别,但比较简单。程序与数据之间具有“设备独立性”,即程序只需用文件名就可与数据打交道,不必关心数据的物理位置。由操作系统的文件系统提供存取方法(读/写)。

文件组织已多样化。有索引文件、链接文件和直接存取文件等。但文件之间相互独立、缺乏联系。数据之间的联系要通过程序去构造。

数据不再属于某个特定的程序,可以重复使用,即数据面向应用。但是文件结构的设计仍然是基于特定的用途,程序基于特定的物理结构和存取方法,因此程序与数据结构之间的依赖关系并未根本改变。

对数据的操作以记录为单位。这是由于文件中只存储数据,不存储文件记录的结构描述信息。文件的建立、存取、查询、插人、删除、修改等所有操作,都要用程序来实现。 随着数据管理规模的扩大,数据量急剧增加,文件系统显露出一些缺陷:

数据冗余。由于文件之间缺乏联系,造成每个应用程序都有对应的文件,有可能同样的数据在多个文件中重复存储。

不一致性。这往往是由数据冗余造成的,在进行更新操作时,稍不谨慎,就可能使同样的数据在不同的文件中不一样。

数据联系弱。这是由于文件之间相互独立,缺乏联系造成的。 文件系统阶段是数据管理技术发展中的一个重要阶段。在这一阶段中,得到充分发展的数据结构和算法丰富了计算机科学,为数据管理技术的进一步发展打下了基础,现在仍是计算机软件科学的重要基础。 三、数据库管理系统 这一阶段(60年代后期),数据管理技术进入数据库系统阶段。数据库系统克服了文件系统的缺陷,提供了对数据更高级、更有效的管理。这个阶段的程序和数据的联系通过数据库管理系统来实现(DBMS)。

概括起来,数据库系统阶段的数据管理具有以下特点: 采用数据模型表示复杂的数据结构。数据模型不仅描述数据本身的特征,还要描述数据之间的联系,这种联系通过存取路径实现。通过所有存取路径表示自然的数据联系是数据库与传统文件的根本区别。这样,数据不再面向特定的某个或多个应用,而是面向整个应用系统。数据冗余明显减少,实现了数据共享。 有较高的数据独立性。数据的逻辑结构与物理结构之间的差别可以很大。用户以简单的逻辑结构操作数据而无需考虑数据的物理结构。数据库的结构分成用户的局部逻辑结构、数据库的整体逻辑结构和物理结构三级。用户(应用程序或终端用户)的数据和外存中的数据之间转换由数据库管理系统实现。

数据库系统为用户提供了方便的用户接口。用户可以使用查询语言或终端命令操作数据库,也可以用程序方式(如用C一类高级语言和数据库语言联合编制的程序)操作数据库。 数据库系统提供了数据控制功能。例如,1。数据库的并发控制:对程序的并发操作加以控制,防止数据库被破坏,杜绝提供给用户不正确的数据;2。数据库的恢复:在数据库被破坏或数据不可靠时,系统有能力把数据库恢复到最近某个正确状态;3。数据完整性:保证数据库中数据始终是正确的;4。数据安全性:保证数据的安全,防止数据的丢失、破坏。

增加了系统的灵活性。对数据的操作不一定以记录为单位,可以以数据项为单位。

2.常用的三种数据模型的数据结构各有什么特点?

1)层次模型

层次模型是数据库系统中最早出现的数据模型,层次数据库系统采用层次模型作为数据的组织方式。层次模型是用树形结构来表示各类实体以及实体间的联系的数据模型。例题:

2)网状模型

把满足以下两个条件的基本层次联系集合称为网状模型: (1)允许一个以上的结点无双亲。 (2)一个结点可以有多于一个的双亲。

例: 1) 网状模型的两个结点之间有多种联系

2) 学生/课程/选课的网状数据库模式: 人 种植 树 养育 父母 赡养 砍伐

子女

3)关系数据模型

关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。关系模型中实体及实体间的联系都是用关系来表示的。如下表所示。

学生登记表 学 号 95004 95006 95008 姓 名 王小明 黄大鹏 张文斌 年 令 19 20 18 性 别 女 男 女 系 名 社会学 商品学 法律学 年 级 95 95 95 … … … … … …

3.分别给出一个层次、网状和关系模型的实例。 答案:参见习题2。

4.学校有若干个系,每个系有若干班级和教研室,每个教研室有若干教师,每个教师只教一门课,每门课可由多个教师教;每个班有若干学生,每个学生选修若干课程,每门课程可由若干学生选修。用E-R图画出该学校的概念模型。 答案

5.从数据库管理系统的角度看,数据库系统的三级模式结构是什么?

数据库系统的三级模式结构指数据库系统是由外模式、模式和内模式三级抽象模式构成的。处于最低层的又叫物理模式,其次是逻辑模式,然后最高层的子模式。通常的数据库模式支持一个物理模式、一个逻辑模式和多个子模式。这三级抽象模式在数据库系统中都存储在数据库系统的数据字典中。 1).模式

模式又叫逻辑模式,是数据库中全体数据的公共数据视图。可以通过数据库管理系统提供的数据定义语言DDL来定义数据库的模式,在定义时必须指出模式各方面的内容,包括数据模式的逻辑结构,各个字段的类型以及模式的种种约束条件等。 2).内模式

内模式又叫数据库的物理模式,也叫存储模式,数据库系统用内模式表示数据的物理存储方式。

3).外模式

外模式又叫数据库的子模式,也叫用户模式。它是数据库各个用户能看到的数据视图,由于数据库用户的身份权限等的不同,所以每一个用户的外模式可能不一样。因此数据库系统也允许多个外模式同时存在。它是数据库用户能看到的局部的数据描述。

6 从用户角度看,数据库系统都有哪些体系结构

答:从最终用户角度来看,数据库系统分为单用户结构、主从式结构、分布式结构和客户/服务器结构。

1.单用户数据库系统

单用户数据库系统是一种早期的最简单的数据库系统。在这种系统中,整个数据库系统(包括应用程序、DBMS、数据)都装在一台计算机上,由一个用户独占,不同机器之间不能共享数据。

2.主从式结构

主从式结构是指一个主机带多个终端的多用户结构。在这种结构中,数据库系统(包括应用程序、DBMS、数据)都集中存放在主机上,所有处理任务都由主机来完成,各个用户通过主机的终端并发地存取数据库,共享数据资源。 3.分布式结构

分布式结构是指数据库中的数据在逻辑上是一个整体,但物理地分布在计算机网络的不同节点上。网络中的每个节点都可以独立处理本地数据库中的数据,执行局部应用;同时也可以同时存取和处理多个异地数据库中的数据,执行全局应用。 4.客户/服务器结构

主从式数据库系统中的主机和分布式数据库系统中的每个节点机是一个通用计算机,既执行DBMS功能又执行应用程序。随着工作站功能的增强和广泛使用,人们开始把DBMS功能和应用分开,网络中某个(些)节点上的计算机专门用于执行DBMS功能,称为数据库服务器,简称服务器;其他节点上的计算机安装DBMS的外围应用开发工具,支持用户的应用,称为客户机,这就是客户/服务器结构的数据库系统。

在客户/服务器结构中,客户端的用户请求被传送到数据库服务器,数据库服务器进行处理后,只将结果返回给用户(而不是整个数据),从而显著减少了网络上的数据传输量,提高了系统的性能、吞吐量和负载能力;另一方面,客户/服务器结构的数据库往往更加开放。客户与服务器一般都能在多种不同的硬件和软件平台上运行,可以使用不同厂商的数据库应用开发工具,应用程序具有更强的可移植性,同时也可以减少软件维护开销。

7.数据独立性包括哪两个方面,含义分别是什么?

答:数据库系统在这三级模式之间提供了两层映像:外模式/模式映像和模式/内模式映像。正是这两层映像保证了数据库系统的数据能够具有较高的逻辑独立性和物理独立性。 模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。对应于同一个模式可以有任意多个外模式。对于每一个外模式,数据库系统都有一个外模式/模式映像,它定义了该外模式与模式之间的对应关系。当模式改变时(例如,增加新的数据类型、新的数据项、新的关系等),由数据库管理员对各个外模式/模式的映像作相应改变,可以使外模式保持不变,从而应用程序不必修改,保证了数据的逻辑独立性。

数据库中只有一个模式,也只有一个内模式,所以模式/内模式映像是惟一的,它定义了数据全局逻辑结构与存储结构之间的对应关系。当数据库的存储结构改变时(例如,采用了更先进的存储结构),由数据库管理员对模式/内模式映像作相应改变,可以使模式保持不变,从而保证了数据的物理独立性。

8.数据库管理系统有哪些主要功能?

答:由于不同DBMS要求的硬件资源、软件环境是不同的,因此其功能与性能也存在差异,但一般说来,DBMS的功能主要包括以下6个方面。 1.数据定义

数据定义包括定义构成数据库结构的外模式、模式和内模式,定义各个外模式与模式之间的映射,定义模式与内模式之间的映射,定义有关的约束条件(例如,为保证数据库中数据具有正确语义而定义的完整性规则,为保证数据库安全而定义的用户口令和存取权限等)。 2.数据操纵

数据操纵包括对数据库数据的检索、插入、修改和删除等基本操作。 3.数据库运行管理

对数据库的运行进行管理是DBMS运行时的核心部分,包括对数据库进行并发控制、安全性

检查、完整性约束条件的检查和执行、数据库的内部维护(如索引、数据字典的自动维护)等。所有访问数据库的操作都要在这些控制程序的统一管理下进行,以保证数据的安全性、完整性、一致性以及多用户对数据库的并发使用。 4.数据组织、存储和管理

数据库中需要存放多种数据,如数据字典、用户数据、存取路径等,DBMS负责分门别类地组织、存储和管理这些数据,确定以何种文件结构和存取方式物理地组织这些数据,如何实现数据之间的联系,以便提高存储空间利用率以及提高随机查找、顺序查找、增、删、改等操作的时间效率。

5.数据库的建立和维护

建立数据库包括数据库初始数据的输入与数据转换等。维护数据库包括数据库的转储与恢复、数据库的重组织与重构造、性能的监视与分析等。 6.数据通信接口

DBMS需要提供与其他软件系统进行通信的功能。例如,提供与其他DBMS或文件系统的接口,从而能够将数据转换为另一个DBMS或文件系统能够接受的格式,或者接收其他DBMS或文件系统的数据。

9.数据库管理系统通常由哪几部分组成?

答:DBMS通常由以下4部分组成。 1.数据定义语言及其翻译处理程序 DBMS一般都提供数据定义语言(Data Definition Language,简称DDL)供用户定义数据库的外模式、模式、内模式、各级模式间的映射、有关的约束条件等。用DDL定义的外模式、模式和内模式分别称为源外模式、源模式和源内模式,各种模式翻译程序负责将它们翻译成相应的内部表示,即生成目标外模式、目标模式和目标内模式。 2.数据操纵语言及其编译(或解释)程序 DBMS提供了数据操纵语言(Data Manipulation Language,简称DML)实现对数据库的检索、插入、修改、删除等基本操作。DML分为宿主型DML和自主型DML两类。宿主型DML本身不能独立使用,必须嵌入主语言中,例如嵌入C、COBOL、FORTRAN等高级语言中。自主型DML又称为自含型DML,它们是交互式命令语言,语法简单,可以独立使用。 3.数据库运行控制程序

DBMS提供了一些负责数据库运行过程中的控制与管理的系统运行控制程序,包括系统初启程序、文件读写与维护程序、存取路径管理程序、缓冲区管理程序、安全性控制程序、完整性检查程序、并发控制程序、事务管理程序、运行日志管理程序等,它们在数据库运行过程中监视着对数据库的所有操作,控制管理数据库资源,处理多用户的并发操作等。 4.实用程序

DBMS通常还提供一些实用程序,包括数据初始装入程序、数据转储程序、数据库恢复程序、性能监测程序、数据库再组织程序、数据转换程序、通信程序等。数据库用户可以利用这些实用程序完成数据库的建立与维护,以及数据格式的转换与通信。

第2章 关系数据库

一、填空题

1.关系数据模型中,实体及实体间的联系都用_ 表______来表示。在数据库的物理组织中,它以__文件_____形式存储。

2.常用的关系操作有两类:传统的集合操作,如并、交、差和__广义笛卡尔积_____。专门的关系操作,如__选择_____、投影、连接等。前者从行的角度来进行,后者不仅涉及关系的行,而且涉及关系的__列_____。

二、判断题

对1.美国IBM公司的研究员E.F.Codd于1970年首次提出了数据库系统的关系模型。 错2.等值连接是自然连接的一种特殊情况。 对3.关系代数和关系演算在功能上是等价的。

三、操作题

有如下的四个关系: S(供应商): SNO (供应商号) S1 S2 S3 S4 S5

P(零件):

SNAME (供应商姓名) 精益 万胜 东方 丰泰窿 康健 CITY (供应商所在城市) 天津 北京 北京 上海 南京 PNO (零件号) P1 P2 P3 P4 P5 J(项目):

PNAME (零件名称) 螺母 螺栓 螺丝刀 螺丝刀 凸轮 COLOR (零件颜色) 红 绿 蓝 红 蓝 WEIGHT (零件重量) 12 17 14 14 40 JNO (项目号) J1 J2 J3 J4 J5 J6

JNAME (项目名称) 三建 一汽 弹簧厂 造船厂 机车厂 无线电厂 CITY (项目所在城市) 北京 长春 天津 天津 唐山 常州

SPJ(供应情况):

SNO (供应商号) S1 S1 S1 S1 S2 S2 S2 S2 S2 S2 S3 S3 S4 S5 S5 PNO (零件号) P1 P1 P1 P2 P3 P3 P3 P3 P5 P5 P1 P3 P5 P6 P6 JNO (项目号) J1 J3 J4 J2 J1 J2 J4 J5 J1 J2 J1 J1 J1 J2 J4 QTY (供应数量) 200 100 700 100 400 200 500 400 400 100 200 200 100 200 500 试用关系代数完成下列操作:

1.求供应商供应的商品的零件号。

1?PNO(SPJ)

2.求供应商S5供应的商品的零件号。

2?PNO(?SNO?'S1'(SPJ))

3.求供应工程Jl零件的供应商号。

3?SNO(?JNO?'J1'(SPJ))

4.求供应工程J1零件P1的供应商号。

4?SNO(?JNO?'J1'??PNO?'P1'(SPJ))

5.求供应工程Jl红色零件的供应商号。

5?SNO(?JNO?'J1'(SPJ)???ccolor?'J1'(P))

四、简答题

1.关系模型的完整性规则有哪几类?在关系模型的参照完整性规则中,外部码属性的值是否可以为空?什么情况下才可以为空?

1 实体完整性

实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。

例如,在学生关系S(S#, SN, SS, SA, SD)中,S#属性为主码,则S#不能取空值。 实体完整性规则规定基本关系的所有主属性都不能取空值,而不仅是主码整体不能取空值。例如,学生选课关系SC(S#, C#,G)中,(S#,C#)为主码,则S#和C#两属性都不能取空值。

2 参照完整性:

若属性(或属性组)F是关系R的外码,它与关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值为取空值(F的每个属性值均为空值),或者等于S中某个元组的主码值。

对于例子中选修关系中每个元组的学号属性只能取下面两类值: (1)空值,表示尚未有学生选课。

(2)非空值,这时该值必须是学生关系中某个学生的学号,表示某个未知的学生不能选课。 同样,选修关系中每个元组的课程号属性只能取下面两类值: (1)空值,表示尚未开课。

(2)非空值,这时该值必须是课程关系中的某个课程号,表示不能选未开设的课。 3 用户定义的完整性

实体完整性和参照完整性适用于任何关系数据库系统。除此之外,不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。例如,学生关系的年龄在15~30之间,选修关系的成绩必须在0~100之间等。

2.关系系统可以分为哪几类?各类关系系统的定义是什么?

关系系统的定义

一个系统可以定义为关系系统,当且仅当它支持如下条件时才可以:

(1)关系数据结构,也就是说,从用户观点看,数据库是由表构成的,并且系统中只有表这种结构。

(2)选择、投影和(自然)连接运算。对这些运算不要求用户定义任何物理存取路径。 关系模型中并非每一部分都是同等重要的,所以我们并不苛求一个实际的关系系统必须完全支持关系模型。

不支持关系数据结构的系统显然不能称为关系系统。

仅支持关系数据结构,但没有选择、投影和连接运算功能的系统,用户使用起来仍不方便,这种系统仍不能算作关系系统。

支持选择、投影和连接运算,但要求定义物理存取路径,这样就降低或丧失了数据的物理独立性,这种系统也不能算作真正的关系系统。

选择、投影、连接运算是最有用的运算,能解决绝大部分实际问题,所以要求关系系统只要支持这三种最主要的运算即可,并不要求它必须提供关系代数的全部运算功能。 关系系统的分类

按照E.F.Codd的思想,依据关系系统支持关系模型的程度不同,可以把关系系统分为四类,如图2-1所示。

关系系统分类图

图中的圆表示关系数据模型。每个圆分为三部分,分别表示模型的三个组成部分:S表示数据结构(Structure),I表示完整性约束(Integrity),M表示数据操纵(Manipulation)。图中的阴影部分表示各类系统支持模型的程度。 1.表式系统

这类系统仅支持关系数据结构(即表),不支持集合级的操作。表式系统实际上不能算关系系统。倒排表列(Inverted list)系统属于这一类。 2.(最小)关系系统

这类关系是上面定义的关系系统,它支持关系数据结构和选择、投影、连接三种关系操作。许多微机关系系统如FoxBASE,FoxPro等属于这一类。 3.关系完备的系统

这类类系统支持关系数据结构和所有的关系代数操作(功能上与关系代数等价)。目前许多大中型关系系统,如DB2、ORACLE等属于这一类。 4.全关系系统

这类系统支持关系模型的所有特征,特别是数据结构中域的概念、实体完整性和参照完整性。虽然DB2、ORACLE等系统已经接近这个目标,但到目前为止尚没有一个系统是全关系系统。

第3章 关系数据库规划和设计

1. 数据依赖对关系模式有什么影响?

答:数据依赖包括函数依赖与多值依赖。

所谓函数依赖是指在关系R中,X、Y为R的两个属性或属性组,如果对于R的任一关系r都存在:对于X的每一个具体值,Y 都只有一个具体值与之对应,则称属性Y函数依赖于属性X。或者说,属性X函数决定属性Y,记作X→Y。其中X叫决定因素,Y叫被决定因素。当Y是X的子集时,称为平凡函数依赖。 数据依赖对于关系模式来说就是针对一个具体问题,应该如何构造一个适合于它的数据库模式,即应该构造几个关系模式,每个关系由哪些属性组成,各属性之间的依赖关系及其对关系模式性能的影响等。

2.R中,U={SNO,SDEPT,MNAME,CNAME,GRADE}

其中,SNO,学号;SDEPT,所在系;MNAME,系主任名;CNAME,课程名;GRADE,分数。 (1)写出U上的极小函数依赖。 (2)把该关系规范化为3NF。 答:(1)SNO→SDEPT

SDEPT→MANE

f?? GRADE (SNO,CNAME)?(2)ND(SNO,SDEPT)

DM(SDEPT,MNAME)

SCG(SNO,CNAME,GRADE) 3.简述SQL的功能。

结构化查询语言SQL(Structured Query Language)是一种介于关系代数与关系演算之间的语言,其功能包括查询、操纵、定义和控制四个方面,是一个通用的、功能极强的关系数据库语言。目前已成为关系数据库的标准语言。

SQL语言的版本包括:SQL-89,SQL-92,SQL99。 基本概念

SQL语言之所以能够为用户和业界所接受,成为国际标准,是因为它是一个综合的、通用的、功能极强同时又简洁易学的语言。SQL语言集数据查询(data query)、数据操纵(data manipulation)、数据定义(data definition)和数据控制(data control)功能于一体,充分体现了关系数据语言的特点和优点。其主要特点包括:一体化、高度非过程化、简洁、能以多种方式使用、面向集合的操作方式

1.一体化

SQL语言集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体,语言风格统一,可以独立完成数据库生命周期中的全部活动,包括定义关系模式、录入数据以建立数据库、查询、更新、维护、数据库重构、数据库安全性控制等一系列操作要求,这就为数据库应用系统开发提供了良好的环境,例如用户在数据库投入运行后,还可根据需要随时地逐步地修改模式,并不影响数据库的运行,从而使系统具有良好的可扩充性。

2.高度非过程化

非关系数据模型的数据操纵语言是面向过程的语言,用其完成某项请求,必须指定存取路径。而用SQL语言进行数据操作,用户只需提出“做什么”,而不必指明“怎么做”,因此用户无需了解存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成。这不但大大减轻了用户负担,而且有利于提高数据独立性。

3.简洁

SQL语言功能极强,但由于设计巧妙,语言十分简洁,完成数据定义、数据操纵、数据控制的核心功能只用了9个动词:CREATE、DROP、SELECT、INSERT、UPDATE、DELETE、GRANT、REVOKE,如表3-1所示。而且SQL语言语法简单,接近英语口语,因此容易学习,容易使用。

4.能以多种方式使用

SQL语言既是自含式语言,又是嵌入式语言。 作为自含式语言,它能够独立地用于联机交互的使用方式,用户可以在终端键盘上直接键入SQL命令对数据库进行操作。作为嵌入式语言,SQL语句能够嵌入到高级语言(例如C、PB)程序中,供程序员设计程序时使用。而在两种不同的使用方式下,SQL语言的语法结构基本上是一致的。这种以统一的语法结构提供两种不同的使用方式的作法,为用户提供了极大的灵活性与方便性。

5.面向集合的操作方式(补充)

SQL语言采用集合操作方式,不仅查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。

非关系数据模型采用的是面向记录的操作方式,任何一个操作其对象都是一条记录。例如查询所有平均成绩在80分以上的学生姓名,用户必须说明完成该请求的具体处理过程,即如何用循环结构按照某条路径一条一条地把满足条件的学生记录读出来。 SQL语言功能概述 SQL的功能分成四部分:数据定义、数据控制、数据操纵、数据查询 SQL语言的动词 SQL功能 数据查询 数据定义 数据操纵 数据控制 动 词 SELECT CREATE,DROP,ALTER INSERT,UPDATE,DELETE GRANT,REVOKE

4.视图有什么优点?

答:视图能够简化用户的操作、视图使用户能以多种角度看待同一数据、视图对重构数据库提供了一定程度的逻辑独立性、视图能够对机密数据提供安全保护。

5.什么是数据库的安全性?数据库安全性控制的常用方法有哪些? 答:数据库的安全性是指保护数据库防止不合法的使用,以免数据的泄漏、非法更改和破坏。 可以从以下方面设置数据库的安全措施:环境级、职员级、OS级、网络级和数据库系统级。

6.什么是数据库的完整性?它与安全性有什么区别?

答:数据库的完整性的全名叫做:关系数据库的参照完整性(Referential Integrity),一般是用在表示多个表之间关系时用的,而且经常使用。比如说,现在有两个表: Student(StudentNumber, StudentName) 和 Teacher(TeacherNumber, TeacherName, StudentNumber) 其中Teacher表中的studentNumber是外键,并且Student表中的StudentNumber是主键,因此肯定会有如下的参照完整性:Teacher表中的studentNumber的值必须在Student表中的StudentNumber已经存在。

完整性和安全性是两个不同的概念。前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出造成的无效操作和错误结果,而后者是防止数据库被恶意的破坏和非法的存取。当然,完整性和安全性是密切相关的。特别是从系统实现的方法来看,某一种机制常常既可以用于安全保护亦可用于完整性保证。

7.并发操作可能会产生哪几类数据不一致?

答:数据库的并发操作会带来三类问题: (1)丢失更新问题; (2)不一致分析问题 (3)“脏数据”的读出。

解决的办法通常是采用“封锁”技术。

8.什么是数据库的恢复?恢复的实现技术有哪些?

答:数据库的恢复是指当数据库系统发生故障时,通过一些技术, 使数据库从被破坏、不正确的状态恢复到最近一个正确的状态。

恢复的基本原则就是冗余,即数据的重复存储。恢复的常用方法有: (1)定期对整个数据库进行复制或转储; (2)建立日志文件; (3)恢复。用REDO或UNDO处理。

9.试述数据库的设计步骤。

答:分为5个阶段:简记为:规划、需求分析、概念设计、逻辑设计和物理设计五个阶段。)。

第4章 SQL Server 2000概述

1.服务管理器是用来__启动_____、__停止_____和_ 暂停_____SQL Server 服务的。这些服务在Windows NT/2000下也可以通过控制面板的服务项来启动或停止。

2.什么是客户机?客户机网络连接工具(SQL Server Client Network Utility)的作用是什么?

2答:当一台计算机连接其他计算机上的SQL Server 服务器时,这台计算机就被称为客户机,客户机网络连接工具的作用就是设定本机访问位于其他计算机上的SQL Server 服务器时所使用的网络库及其对应参数。

3.服务器网络连接工具的作用是什么?

答:与客户机网络连接工具相反,服务器网络连接工具用于配置服务器上各SQL Server实例支持的网络库及其对应参数。

4.在“开始”菜单的Microsoft SQL Server程序中选择Enterprise Manager即可启动__企业____管理器。

5.在查询窗口中用户可以输入SQL语句,并按___F5____键,或单击工具栏上的运行按钮,将其送到服务器执行,执行的结果将显示在输出窗口中。用户可以打开一个含有SQL语句的文件来执行,执行的结果同样显示在输出窗口中。

第5章 数据库和表的创建

一、填空题

1.SQL Server提供的系统数据类型有:_二进制数据______、___字符数据____、Unicode数据、_日期和时间数据______、__数字数据_____和货币数据,也可以使用用户定义的数据类型。

2.文本和图像数据在SQL Server中是用text 、ntext、和image数据类型来表示的,由于它们的数据量一般较大,所以经常被存储在专门的页中,在数据行的相应位置处只记录指向这些数据实际存储位置的_指针______。SQL Server 2000中,使用___TEXT IN ROW____可用于指定表中文本和图像数据是否在__ 行_____中存储。

3.可以使用系统存储过程__ SP_HELP _____或企业管理器来查看表的定义,后面加上要查看的__表名____作为参数。

二、操作题

1.创建教师数据库teacher。 2.在teacher内创建:

教师基本情况表(jbqk),包括教师编号(teacher_no)、教师姓名(teacher_name)、教师所在部门编号(department_no)、教师职称(teacher_grade)。 教师部门信息表(bmxx),包括部门编号(department_no)、部门名称(department_name)、部门描述(department_ms)。

教师上课情况表(skqk),包括教师编号(teacher_no)、所上课程(course_kc)、是否专业课(course_zy)、课时数(course_ks)、班数(classe_number)、总人数(total_number)。 设计要求:

(1)每个表至少输入10条记录。要求记录要符合现实意义。 (2)向各表中插入一条记录,再删除各表中的第5条记录。 1.创建教师数据库teacher。 2.在teacher内创建: 教师基本情况表(jbqk),包括教师编号(teacher_no)、教师姓名(teacher_name)、教师所在部门编号(department_no)、教师职称(teacher_grade)。 教师部门信息表(bmxx),包括部门编号(department_no)、部门名称(department_name)、部门描述(department_ms)。 教师上课情况表(skqk),包括教师编号(teacher_no)、所上课程(course_kc)、是否专业课(course_zy)、课时数(course_ks)、班数(classe_number)、总人数(total_number)。 设计要求:

(1)每个表至少输入10条记录。要求记录要符合现实意义。 (2)向各表中插入一条记录,再删除各表中的第5条记录。

答:创建教师数据库teacher可以通过SQL server 2000企业管理器创建,此处略 2 use teacher

CREATE TABLE jbqk (

teacher_no char (8) NOT NULL, teacher_name char (20) NOT NULL, department_no char (16) NOT NULL, teacher_grade char (16) NOT NULL ) GO

CREATE TABLE bmxx (

department_no char (16) NOT NULL, department_name char (20) NOT NULL, department_ms char (216) ) GO

CREATE TABLE skqk (

teacher_no char (8) NOT NULL, course_kc char (20) NOT NULL, course_zy char (2) , course_ks integer ,

classe_number integer , total_number integer ) GO

插入数据与删除数据简单(此处略)

第6章 数据查询

1.查询pubs数据库的authors表中的作者的姓(au_lname)、名(au_fname)和电话号码(phone)。

答:select au_lname,au_fname from authors;

2. 使用TOP关键字,从Northwind数据库的customers表中搜索返回前20%的数据。 use northwind go

select top 20 percent * from customers

3.查询Northwind数据库的Orders表中的数据,并将其中的货物重量feight增加50%。 use northwind go

select * from orders go

update orders set feight=feight+feight*0.50 go 4.使用WHERE 子句从Northwind 数据库的Products表中检索出所有单位价格(UnitPrice)超过50美元的货物名称(Product Name )、货物代号(ProductID)以及每单位重量(QuantityPerUnit)。 use northwind go

select Product_Name, ProductID, QuantityPerUnit from Products where UnitPrice>50 go

5.在Northwind 数据库的Employees表中搜索出职务(Title)为销售代表(Sales Representative),称呼(TitleOfCourtesy)为小姐(MS)的所有职员的名(FirstName)、姓(LastName)和生日(BirhthDate)。

use northwind go

select FirstName, LastName, BirhthDate from Employees where Title=? Sales Representative? and TitleOfCourtesy=?MS?; go

6.查询在Northwind数据库的Employees表中以字母A作Firstname第一个字母的雇员的Firstname和Lastname。

use northwind go

select FirstName, LastName from Employees where Firstname like ?A%?; go

7.查询Northwind数据库Employees表中所有雇员的Firstname和Lastname,并按生日BirthDate从小到大进行排列。 use northwind go

select FirstName, LastName from Employees order by birthday desc; go

8.在Northwind数据库的Products表中查询出每个供应商(Suppliers)所提供的每一种平均价格(Unitprice)超过15美元的产品,并按供应商的ID分类。

use northwind go

select ProductsID from Products group by ProductsID having avg(Unitprice)>15; go

第7章 存储过程和触发器

1.在pubs数据库中创建一个名为proc_test1的存储过程,执行的功能是从authors和titles表里查询出作者的信息以及该作者所写的所有书的信息。 答:

CREATE PROCEDURE proc_test1 @bjbh VARCHAR(8) AS

select* from titles where title_id=(selec title_id from titleauthor where au_id=(select au_id from authorswhere fname=@bjbh)) GO

2.建立一个存储过程级联来修改pubs数据库的authors、titleauthor两张表,当用户修改authors表中的au_id后,修改titleauthors表中对应的数据。 drop trigger updtaeauthors go

create trigger updtaeauthors on authors for update as

declare @id1 char(20) declare @id2 char(20) begin

select @id1=au_id from deleted select @id2=au_id from inserted

update titleauthor set au_id=@id2 where au_id=@id1 end go

第8章 管理SQL Server的安全性

1.安全是指保护数据库不被破坏、偷窃和__非法使用_____。

2.SQL Server 2000的安全性分为两类:__数据库_____安全性和__应用程序_____安全性。 3.SQL Server 2000中权限的管理划分为两个级别上实现,一个是服务级的__连接权_____,另一个是数据库级的___访问权____。

4.简述SQL Server 2000的登录验证模式。 答:Windows身份验证模式和混合身份验证模式(windows身份验证和SQL Server身份验证)。 5.登录SQL Server 2000可以使用哪两类登录账号?

答:一类是登录服务器的登录帐号(Login Name),另外一类是使用数据库的用户帐号(User Name).登录。

6.假设在Windows NT 或dbdomain中存在SqlUser用户组,使用T-SQL语句将其添加为SQL Server 2000的账号dbdomain\\SqlUser。

答:exec sp_grantdbaccess 'dbdomain\\SqlUser'

7.用T-SQL添加、删除登录账号分别使用什么语句?

答:例如:在当前数据库中为 Windows NT'账户 Corporate\\GeorgeW 添加用户,并取名为Georgie。

exec sp_grantdbaccess 'Corporate\\GeorgeW', 'Georgie'

T-SQL语句删除数据库用户需要使用存储过程sp_revokedbaccess。 语法格式为:sp_revokedbaccess [ @name_in_db = ] '数据库用户名' 例:从当前数据库中删除账户 Corporate\\GeorgeW。 exec sp_revokedbaccess 'Corporate\\GeorgeW'

8.什么是服务器角色,数据管理员能否创建和删除服务器角色?

答:SQL SERVER中的角色是指在数据库或服务器中具有相同权限的一组用户。Public角色是一个特殊的数据库角色,又称为公共的数据库角色,每个数据库都有Public角色,数

据库的所有用户都自动成为Public角色的成员。Public角色的作用主要是可以简化向所有用户授权的操作,如果需要向所有用户授予某种权限,则可向Public角色授权即可。 SQL SERVER 2000有固定服务器角色、固定的数据库角色和自定义的数据库角色三类。 SA是SQL SERVER 管理员的管理账户,这两个账户都是固定服务器角色Sysadmin(系统管理员)的成员,拥有最高的管理权限,可以执行整个服务器范围内的所有操作。

dbo 是每个数据库的默认用户,它是固定的数据库角色Db_ower的成员,具有在数据库范围内执行一切操作的权限,且不能被删除。

9.简述数据库用户的作用及其与服务器登录账号的关系。

10.写出T-SQL语句,将服务器登录账号dbdomain\\SqlUser添加为Market数据库的用户SqlUser。

11.写出T-SQL语句,在Market数据库中创建角色SqlRole,并将SqlUser添加为其成员。 答:use Market

exec sp_addrole 'SqlRole'

exec sp_addrolemember 'SqlRole', 'SqlUse' 12.简述SQL Server 2000中的三种权限。 答:(1)处理数据和执行过程(称为对象权限)。 (2)创建数据库或数据库中的项目(称为语句权限)。 (3)利用授予预定义角色的权限(称为暗示性权限)。 13.一个用户或角色的权限有哪些存在形式? 答:授权;拒绝;剥夺

14.授予、拒绝和剥夺权限分别使用什么T-SQL语句? 答:GRANT;DENY;REVOKE

15.写出T-SQL语句,将SqlUser用户授予在Market数据库中创建视图的权限,并拒绝其修改、删除、插入Orders表的权限。 答:User market

Grant create view to sqluser Goo

Deny insert,delete,update on orders to sqluser Go

16.简述应用程序角色的作用。 答:设计了这种安全机制可以指定一个数据库或者其中某些对象只能用某些特别的应用程序来访问,而不能允许用户用任何工具来进行操作,更有利于保证数据完整性和一致性。

第9章 设计数据的完整性

1.什么是规则?它与CHECK约束的区别在哪里?

答:规则是保证域完整性的主要手段。是对输入到列中的数据所实施的完整性约束条件,它指定可以插入一个列的可接受值,保证数据要么在指定的范围内,要么符合特定的模式,要么是指定的列表中的项。功能和CHECK约束一样。

但规则是作为独立的对象定义一次,可在多个对象上使用,而CHECK不是独立的对象,它

在创建表或修改表时定义到指定的一列上。

2.创建、修改、删除规则分别使用什么 T-SQL 语句? 答:create rule;alter rule;drop rule

3.编写T-SQL 语句,定义规则 EmailAddress_Rule,限制字符中必须包含@字符。 答:

Create rule emailaddress_rule As

@value like ?%@%?

4.定义好的规则使用什么方法对列或用户自定义数据类型起作用?

答:规则创建好后,需要将其捆绑到列上或者用户自定义数据类型上,捆绑规则使用sp_bindrule。

5.如何解除规则的捆绑? 答:使用sp_unbindrule

6.什么是默认值? 答:略

7.为表中数据提供默认值有几种方法? 答:二种:一种是使用create table 时指定 一种是使用create default

8.创建、修改、删除默认值分别使用什么语句? 答:create default;alter default;drop default

第10章 备份与恢复

1._备份________就是制作数据库结构、对象和数据的拷贝,以便在数据库遭到破坏的时候能够修复数据库。数据库恢复就是指将___数据库备份__________加载到系统中。

2.SQL Server提供四种备份和恢复的方式:__ 全库_________备份、____日志_______备份、___差异________备份和文件或文件组备份。

3.备份设备包括__磁盘________、___磁带________和命名管道。

4.使用数据库维护计划向导可以安排好对服务器中每一个数据库的备份时间表,这样可以使备份完全____自动_______执行,很少或根本不需要操作员的干预。 5.什么是数据库的备份和恢复?

数据库备份是指将当前的数据库系统、数据文件或日志文件复制到一个专门的备份服务器、活动磁盘或者其他能长期存储数据的介质上,作为副本。数据库备份记录了在进行备份这一操作时数据库中所有数据的状态。一旦数据库因意外而遭损坏,这些备份文件可用来恢复数据库。

恢复是与备份相对应的数据库管理工作,数据库备份后,一旦数据库发生故障,就可以将数据库备份加载到系统,使数据库恢复到备份时的状态。系统进行数据库恢复的过程中,自动执行安全性检查,然后根据数据库备份自动创建数据库结构,并且恢复数据库中的数据。

数据库备份的方式和特点如下表所示: 备份类型 模型 简 单 完 全 必需 数据库 数据库差异 可选 事务日志 不允许 必需 必需 文件或文件差异 不允许 可选 可选 必需(或文件备份) 可选 大容量日志记录 必需(或文件备份) 可选

6.SQL Server 2000提供哪几种数据库备份和恢复的方式?

答:完全数据库备份: 完全数据库备份是对所有数据库操作和事务日志中的事务进行备份

差异备份:是对最近一次数据库备份以来发生的数据变化进行备份 事务日志备份:是对数据库发生的事务进行备份 数据库文件和文件组备份

7.什么是备份设备,SQL Server 2000可以使用哪几种备份设备?

答:在进行备份以前必须创建或指定备份设备,备份设备是用来存储数据库、事务日志或文件和文件组备份的存储介质,可以是硬盘、磁带或管道。

8.某企业的数据库每周日晚12点进行一次全库备份,每天晚12点进行一次差异备份,每小时进行一次日志备份,数据库在2000/12/23 3:30崩溃,应如何将其恢复使数据损失最小。

第11章 SQL Server服务器的管理

1.启动SQL Server服务器三种方法:__自动启动______、___用SQL server manager启动_______、___命令行方式启动__________。

2.用什么命令行语句可以启动和停止 SQL Server 2000 服务器?

2sqlservr.exe; shutdown

第12章 应用举例--科技档案管理系统

利用Visual Basic/SQL Server设计一个人事档案管理系统,基本功能包括: (1)人员基本信息的添加、删除、修改、查询。 (2)人员职称信息的添加、删除、修改、查询。 (3)人员学历信息的添加、删除、修改、查询。 (4)以上各类信息的统计、报表。

本文来源:https://www.bwwdw.com/article/jj62.html

Top