Download presentation
Presentation is loading. Please wait.
1
数据库原理及应用 《数据库原理及应用》课程组 2007.3 荆楚理工学院
2
第一部分 数据库系统概述 一、内容提要 二、例题解析 1.数据库系统发展简史 2.数据结构 3.数据模型 4.VFP索引技术简介
第一部分 数据库系统概述 第一部分 数据库系统概述 一、内容提要 1.数据库系统发展简史 2.数据结构 3.数据模型 4.VFP索引技术简介 二、例题解析 2007.3 荆楚理工学院
3
一、内容提要 1. 数据库系统发展简史 (1) 数据管理技术的发展经历了3个阶段
第一部分 数据库系统概述 一、内容提要 1. 数据库系统发展简史 (1) 数据管理技术的发展经历了3个阶段 人工管理阶段 这一阶段的特点是:数据不保存在计算机内,不能长期保存;没有专用的软件对数据进行管理,数据与程序不具有独立性;有程序的概念,而没有文件的概念,数据的组织方式必须由程序员自行设计与安排。 2007.3 荆楚理工学院
4
倒排文件系统阶段 这一阶段的特点是:可对每个字段都提供单独的索引;信息检索方便;存储相当昂贵;占有更多的存储空间。
第一部分 数据库系统概述 一、内容提要 1. 数据库系统发展简史 (1) 数据管理技术的发展经历了3个阶段 文件系统阶段 这一阶段的特点是:数据可以“文件”的形式长期保存在外部存储器的磁盘上;程序与数据之间有了一定的独立性;数据的存取以记录为单位,并出现了多种文件组织,如索引文件、链接文件和随机文件等;数据冗余度大;数据具有不一致性;数据不能集中管理。 倒排文件系统阶段 这一阶段的特点是:可对每个字段都提供单独的索引;信息检索方便;存储相当昂贵;占有更多的存储空间。 2007.3 荆楚理工学院
5
一、内容提要 1. 数据库系统发展简史 (1) 数据管理技术的发展经历了3个阶段
第一部分 数据库系统概述 一、内容提要 1. 数据库系统发展简史 (1) 数据管理技术的发展经历了3个阶段 数据库系统阶段 数据库技术产生于20世纪60年代末,其标志事件是:IMS系统、DBTG报告和E.P.Codd的文章。这一阶段的特点是:实现数据共享,减少数据冗余;采用特定的数据模型;具有较高的数据独立性;有统一的数据控制功能(数据库的并发控制,数据库的恢复,数据完整性和数据安全性)。 2007.3 荆楚理工学院
6
第一部分 数据库系统概述 1. 数据库系统发展简史 (2) 数据库技术的发展 分布式数据库技术 它主要有3个特点:数据库的数据在物理上分布在各个场地,但逻辑上是一个整体;每个场地既可以执行局部应用(访问本地DB),也可以执行全局应用(访问异地DB);各地的计算机由数据通信网络相连接。 2007.3 荆楚理工学院
7
第一部分 数据库系统概述 1. 数据库系统发展简史 (2) 数据库技术的发展 面向对象数据库技术 它主要有2个特点:能完整地描述现实世界的数据结构,能表达数据间嵌套、递归的联系;具有封装性(把数据与操作定义在一起)和继承性(继承数据结构和操作),提高了软件的可重用性。 2007.3 荆楚理工学院
8
当前,数据库技术仍在不断发展,并出现了许多新的分支。如演绎数据库,主动数据库,基于逻辑的数据库,时态数据库,模糊数据库等。
第一部分 数据库系统概述 1. 数据库系统发展简史 (2) 数据库技术的发展 当前,数据库技术仍在不断发展,并出现了许多新的分支。如演绎数据库,主动数据库,基于逻辑的数据库,时态数据库,模糊数据库等。 2007.3 荆楚理工学院
9
数据:存储在一种媒体上能够被识别的物理符号,诸如数字、字符、图形、声音、图像等。
第一部分 数据库系统概述 1. 数据库系统发展简史 (3) 基本概念: 数据:存储在一种媒体上能够被识别的物理符号,诸如数字、字符、图形、声音、图像等。 2007.3 荆楚理工学院
10
数据处理:指对信息进行收集、整理、存储、加工及传播等一系列活动的总和。
第一部分 数据库系统概述 1. 数据库系统发展简史 (3) 基本概念: 数据处理:指对信息进行收集、整理、存储、加工及传播等一系列活动的总和。 2007.3 荆楚理工学院
11
数据管理:计算机对数据的管理是指对数据的组织、分类、编码、存储、检索和维护提供操作手段。数据处理的中心问题是数据管理。
1. 数据库系统发展简史 (3) 基本概念: 数据管理:计算机对数据的管理是指对数据的组织、分类、编码、存储、检索和维护提供操作手段。数据处理的中心问题是数据管理。 2007.3 荆楚理工学院
12
数据库(Database,简记为DB):它是长期存储在计算机内、有组织的、统一管理的相关数据的集合。
1. 数据库系统发展简史 (3) 基本概念: 数据库(Database,简记为DB):它是长期存储在计算机内、有组织的、统一管理的相关数据的集合。 2007.3 荆楚理工学院
13
1. 数据库系统发展简史 (3) 基本概念: 数据库管理系统(Database Management System,简记为DBMS):它是位于用户与操作系统(OS)之间的一层数据管理软件。 2007.3 荆楚理工学院
14
数据库技术:它是研究数据库的结构、存储、设计、管理和使用的一门软件学科。
第一部分 数据库系统概述 1. 数据库系统发展简史 (3) 基本概念: 数据库技术:它是研究数据库的结构、存储、设计、管理和使用的一门软件学科。 2007.3 荆楚理工学院
15
第一部分 数据库系统概述 1. 数据库系统发展简史 (3) 基本概念: 数据库系统(Database System,简记为DBS):它是由实现有组织地、动态地存储大量关联数据、方便多用户访问的计算机硬件、软件和数据资源组成的系统,即它是采用数据库技术的计算机系统。 2007.3 荆楚理工学院
16
外模型 即用户使用的数据视图,是一种局部的逻辑数据视图,表示用户所理解的实体、实体属性和实体关系。
第一部分 数据库系统概述 2. 数据结构 (1) 数据模式 外模型 即用户使用的数据视图,是一种局部的逻辑数据视图,表示用户所理解的实体、实体属性和实体关系。 概念模型 即全局的逻辑数据视图,是数据库管理员所看到的实体、实体属性和实体之间的联系。 内模型 即数据的物理存储模型。 整个数据库系统分为三层:外层、概念层和内层。 2007.3 荆楚理工学院
17
用数据描述语言精确地定义数据模型的全部语句称为模式。对应上述模型有 3 个相应的模式。
第一部分 数据库系统概述 2. 数据结构 (1) 数据模式 用数据描述语言精确地定义数据模型的全部语句称为模式。对应上述模型有 3 个相应的模式。 外模式 即定义外模型的模式,又称子模式,用子模式定义语言来定义。 概念模式 即定义概念模型的模式,简称为模式,用模式定义语言来定义。 内模式 即定义内模型的模式,又称物理模式,用设备介质语言来定义。 2007.3 荆楚理工学院
18
第一部分 数据库系统概述 2. 数据结构 (2) 数据库语言 数据描述语言(DDL) 它用来定义和描述数据库的各级数据结构,它们之间的对应关系,以及怎样去保证数据库中数据的正确性、相容性与安全性。一个数据库的结构描述包含子模式、模式、物理模式三个层次,因此,数据描述语言也要提供三种,即子模式DDL(定义局部的逻辑数据结构)、模式DDL(定义全局的逻辑数据结构)、物理模式DDL(定义物理数据结构)。 2007.3 荆楚理工学院
19
第一部分 数据库系统概述 2. 数据结构 (2) 数据库语言 数据操纵语言(DML) 它是用户和程序访问数据库系统的接口、操作数据库中数据的工具,是一般用户对其数据库中的数据进行存储、检索、修改和删除等操作的语言。 2007.3 荆楚理工学院
20
IMS层次数据库结构:以链表结构组织数据,在IMS中以实体集组成树型结构。
第一部分 数据库系统概述 2. 数据结构 (3) 数据结构 IMS层次数据库结构:以链表结构组织数据,在IMS中以实体集组成树型结构。 关系数据库结构:采用线性表形式组织数据。每一个表称为一个关系;表的每一行称为一条记录,代表一个实体;表的每一列称为字段或数据项,代表实体的一个属性。 网状数据库结构:不同实体集的数据分别存放在不同的存储区域内。对应一个实体的数据称为记录,其数据结构称为记录型。面向应用的每一个实体集与实体集的联系整体称为“系”,其数据结构称为系型。 2007.3 荆楚理工学院
21
现实世界由组织机构本身、组织的各种组成对象以及组织所处的环境组成。现实世界管理对象称为“实体”(Entity)。 3. 数据模型
第一部分 数据库系统概述 现实世界由组织机构本身、组织的各种组成对象以及组织所处的环境组成。现实世界管理对象称为“实体”(Entity)。 3. 数据模型 (1) 数据处理的三个世界 信息世界是现实世界中客观事物在人们头脑中的反映,是对客观事物及其联系的一种抽象描述,一般采用E-R方法表示。 在信息世界基础上进一步抽象、转换成数据后才能进入数据世界。 2007.3 荆楚理工学院
22
联系 实体集间的对应关系称为联系。实体之间的联系有3种类型:一对一联系、一对多联系、多对多联系。
第一部分 数据库系统概述 3. 数据模型 (1) 数据处理的三个世界 信息世界的常用术语如下: 联系 实体集间的对应关系称为联系。实体之间的联系有3种类型:一对一联系、一对多联系、多对多联系。 关键字 能惟一标识实体的属性或属性集,称为实体标识符,也称为主码或关键字。 属性 描述实体的特性。每个实体都具有一定的属性,属性有名称和实例值两个方面。按属性的作用可以将属性分为标识属性和描述属性两类。在Visual FoxPro中它对应着“字段”。 实体 客观存在并且可以相互区别的事物。实体可以是客观存在的事物,如公司、产品、计算机、城市、顾客、病人等;也可以是一个无形的事件或抽象的概念,如银行户头、飞机航线、机器故障、规章制度等。在Visual FoxPro中它对应着“记录”。同类型的实体的集合称为实体集。在Visual FoxPro中它对应于一个表。 2007.3 荆楚理工学院
23
文件 是一个具有符号名的一组同类记录的集合。文件包含记录的结构和记录的值。
第一部分 数据库系统概述 3. 数据模型 (1) 数据处理的三个世界 数据世界的常用术语如下: 文件 是一个具有符号名的一组同类记录的集合。文件包含记录的结构和记录的值。 记录 是数据项的有序集,即一个记录是由若干个数据项或字段组成的,用它描述实体。 数据项 又称字段(Field),是数据库中可以命名的最小逻辑数据单位。用它描述属性的数据。 2007.3 荆楚理工学院
24
第一部分 数据库系统概述 3. 数据模型 (2) 数据模型的定义与分类 2007.3 荆楚理工学院
25
第一部分 数据库系统概述 3. 数据模型 (3) 实体-联系模型 实体-联系模型,即用E-R图来描述一个系统中的数据及其之间关系。在E-R图中,用长方形表示实体集,在长方形框内写上实体名。用菱形表示实体间的联系,菱形框内写上联系名。用无向边把菱形和有关实体连接,在无向边旁标上联系的类型,如1或M或N。用椭圆形表示实体或联系的属性。 2007.3 荆楚理工学院
26
用二维表格数据(即集合论中的关系)来表示实体和实体间联系的模型叫关系数据模型(Relational Model)。它以关系理论为基础。
第一部分 数据库系统概述 3. 数据模型 (4) 关系数据模型 用二维表格数据(即集合论中的关系)来表示实体和实体间联系的模型叫关系数据模型(Relational Model)。它以关系理论为基础。 关系数据模型用二维表表示实体集。二维表的每列描述实体的一个属性,每列的标识称为属性名,在关系数据库中称为数据项或字段。表的每一行称为一个元组,在关系数据库中称为记录。元组的集合构成表,称为关系。表的表示法为:关系名(属性1,属性2,…,属性n)。 2007.3 荆楚理工学院
27
它以矩形代表实体集,实体之间用箭头线表示联系。箭头线为两头带箭头的连线,箭头分单箭头与双箭头,单箭头代表“一”,双箭头代表“多”。
第一部分 数据库系统概述 3. 数据模型 (5) 网状数据模型 它以矩形代表实体集,实体之间用箭头线表示联系。箭头线为两头带箭头的连线,箭头分单箭头与双箭头,单箭头代表“一”,双箭头代表“多”。 2007.3 荆楚理工学院
28
用“树”型结构表示实体集之间的关系。它以实体集为节点,父节点与子节点之间数据联系均为一对多联系。
第一部分 数据库系统概述 3. 数据模型 (6) 层次数据模型 用“树”型结构表示实体集之间的关系。它以实体集为节点,父节点与子节点之间数据联系均为一对多联系。 2007.3 荆楚理工学院
29
面向对象模型中的基本概念是“对象”和“类”。
第一部分 数据库系统概述 3. 数据模型 (7) 面向对象模型 面向对象模型中的基本概念是“对象”和“类”。 对象 对象是现实世界中实体的模型化。每个对象都有一个惟一的标识符,把状态和行为封装在一起。其中,对象的状态是该对象属性值的集合,对象的行为是在对象状态上操作的方法集。 类 将属性集和方法集相同的所有对象组合在一起,就构成了一个“类”。类可以有嵌套结构。一个类可以从层次的直接或间接祖先那里继承所有的属性和方法。用这个方法就实现了软件的可重用性。 2007.3 荆楚理工学院
30
VFP中索引有主索引、候选索引、惟一索引、普通索引4种类型。
第一部分 数据库系统概述 4. VFP索引技术简介 在VFP中有两类索引文件:独立索引文件(.IDX文件)和复合结构索引文件(.CDX文件)。使用独立索引文件前要先打开索引文件。如在打开索引的情况下,对原表进行录入、修改、删除等操作,则索引文件均会自动更新。如在对数据维护之前未打开索引文件,则在数据维护完成后必须重建索引或更新索引。 VFP中索引有主索引、候选索引、惟一索引、普通索引4种类型。 2007.3 荆楚理工学院
31
1. 下面 ① 与 ② 中关于数据库系统的叙述是正确的。 ① A) 数据库系统减少了数据冗余 B) 数据库系统避免了一切冗余
第一部分 数据库系统概述 二、例题解析 1. 下面 ① 与 ② 中关于数据库系统的叙述是正确的。 ① A) 数据库系统减少了数据冗余 B) 数据库系统避免了一切冗余 C) 数据库系统中数据的一致性是指数据类型的一致性 D) 数据库系统比文件系统能管理更多的数据 ② A) 数据库中只存在数据项之间的联系 B) 数据库中数据项之间和记录之间都存在联系 C) 数据库的数据项之间无联系,记录之间存在联系 D) 数据库的数据项之间和记录之间都不存在联系 2007.3 荆楚理工学院
32
第一部分 数据库系统概述 【解析】设计数据库时,以面向全局的观点组织数据库中数据,而不仅仅只考虑某一部门的局部应用。实现数据共享、减少数据冗余是数据库系统的本质特点之一,但为了提高查询效率,有时也可以有意识地保留适当的冗余。 数据库不仅描述事物的数据本身,而且还描述相关事物之间的联系,描述一个事物的各个属性(字段) 之间必然存在的联系。同一个数据库内的记录具有相同的结构,一个数据库的记录与另一个数据的记录之间也存在联系,这种联系可能是一对一、一对多或多对多的关系。因此,数据库系统不仅表示记录内部数据之间的联系,而且也表示数据库所描述的不同记录之间的联系。 答案:① A ② B 2007.3 荆楚理工学院
33
A) 人工处理阶段的主要特点是数据和程序一一对应 B) 文件系统阶段开始使用专门处理数据的软件 C) 数据库系统阶段是数据管理的第三阶段
第一部分 数据库系统概述 2. 关于数据处理的正确叙述是 。 A) 人工处理阶段的主要特点是数据和程序一一对应 B) 文件系统阶段开始使用专门处理数据的软件 C) 数据库系统阶段是数据管理的第三阶段 D) A,B,C都正确 2007.3 荆楚理工学院
34
第一部分 数据库系统概述 【解析】数据处理是指对数据进行存储、组织、加工、维护、计算、检索和传输。利用计算机进行数据处理经历了3个阶段:人工处理阶段、文件系统阶段、数据库系统阶段。人工处理阶段使用程序设计语言编写处理程序,其数据和应用程序是一一对应的,数据附属于处理它的程序;文件系统阶段使用专门处理数据的软件,把数据从程序中分离出来,形成独立的数据文件和程序文件,但一个数据文件仍只对应于一个或几个程序,数据缺乏独立性;数据库系统是在文件系统基础上发展起来的,其基本思想是对所有数据实行统一、集中、独立的管理,以实现数据的共享,保证数据的完整性和安全性。 答案:D 2007.3 荆楚理工学院
35
B) 不因系统数据存储结构和整体数据逻辑结构的变化而影响应用程序
第一部分 数据库系统概述 3. 数据库系统的数据独立性是指 。 A) 不因数据的变化而影响应用程序 B) 不因系统数据存储结构和整体数据逻辑结构的变化而影响应用程序 C) 不因数据存储策略的变化而影响存储结构 D) 不因某些数据存储结构的变化而影响其他数据的存储结构 2007.3 荆楚理工学院
36
第一部分 数据库系统概述 【解析】数据库系统的数据独立性包括物理独立性和逻辑独立性。所谓数据的物理独立性是指当数据存储结构发生变化时,保持数据的逻辑结构不变,从而不需要修改应用程序。所谓逻辑独立性是指全局逻辑结构改变时,保持数据的局部逻辑结构不变,但应用程序是根据局部逻辑结构编写的,因而应用程序不必改变。 答案:B 2007.3 荆楚理工学院
37
A) 前后顺序不能任意颠倒,一定要按照输入的顺序排列 B) 前后顺序可以任意颠倒,不影响库中的数据关系
第一部分 数据库系统概述 4. 一个关系数据库文件中的各条记录 。 A) 前后顺序不能任意颠倒,一定要按照输入的顺序排列 B) 前后顺序可以任意颠倒,不影响库中的数据关系 C) 前后顺序可以任意颠倒,但排列顺序不同,其统计处理的结果就可能不同 D) 前后顺序不能任意颠倒,一定要按照关键字段值的顺序排列 2007.3 荆楚理工学院
38
第一部分 数据库系统概述 【解析】关系数据库中记录的实际排列顺序是由输入顺序决定的,但在数据处理过程中可以重新排序或索引。因此,关系数据库文件中的记录顺序无关紧要,记录前后顺序的改变并不影响数据库中的数据关系。 答案:B 2007.3 荆楚理工学院
39
一、内容提要 1. 基本概念 2. 关系代数 3. 关 系 演 算 4. 函 数 依 赖 5. 关系模式的范式 二、例题解析
第二部分关系数据库 一、内容提要 1. 基本概念 2. 关系代数 3. 关 系 演 算 4. 函 数 依 赖 5. 关系模式的范式 二、例题解析 2007.3 荆楚理工学院
40
主关键字(或主码) 构成某一个候选关键字的属性集中的一个属性。
第二部分关系数据库 一、内容提要 1. 基本概念 (1) 与 关系数据模型 有关的概念 候选关键字 能惟一标识元组的属性(组)。候选关键字的性质为:在一个关系中,候选关键字可以有多个;任何两个候选关键字值都是不相同的;关键字可能由一个属性构成,也可能由多个属性构成;在任何关系中至少有一个关键字。 主关键字(或主码) 构成某一个候选关键字的属性集中的一个属性。 关系模式 关系模式是对关系的描述,它包括模式名、组成该关系的属性名、值域名和模式的主关键字或主码。格式为: 关系名(属性名1,属性名2,…,属性名n) 域 属性的取值范围,即不同元组对同一个属性的值所限定的范围。 多个属性构成的关系是这些属性所属域的笛卡儿积的子集。只有其真子集才有意义。 元组 表中的行称为元组。一行为一个元组,对应存储文件中的一个记录值。 属性 表中的列称为属性,每一列有一个属性名。属性值相当于记录中的数据项或字段值。 关系 按集合理论,关系是一个元素为k(k≥1)的元组集合,即这个关系中有若干个元组,每个元组有k个属性值。直观地理解,一个关系就是一张二维表,每个表里有一个关系名。 严格地说,关系是一种规范化了的二维表格,具有如下性质: ① 每一列中的分量来自于同一个域,是同一类型的数据; ② 列的顺序的改变不改变关系; ③ 元组次序可以任意交换而不改变关系;④ 每一分量必须是不可再分的数据项,即具有原子性。 2007.3 荆楚理工学院
41
关系模型的完整性规则是对数据的约束。关系模型提供了 3 类完整性规则:
第二部分关系数据库 1. 基本概念 (2) 关系模型的完整性规则 关系模型的完整性规则是对数据的约束。关系模型提供了 3 类完整性规则: 用户定义的完整性规则 这是针对某一具体数据的约束条件,由应用环境决定。 参照完整性规则 如果属性集K是关系模式R1的主码,也是关系模式R2的外码,那么在R2的关系中,K的取值只允许有两种可能,或者为空值,或者等于R1关系中某个主码值。 实体完整性规则 关系中元组的主码值不能为空值。 其中,实体完整性规则和参照完整性规则是关系模型必须满足的完整性约束条件,称为关系完整性规则。 关系模型由3个组成部分:数据结构,数据操作,完整性规则。 2007.3 荆楚理工学院
42
关系代数是以集合代数为基础发展起来的,有5个基本运算,包括:并(∪)、差(-)、广义笛卡儿积(×)、投影(П)、选择(σ)。
第二部分关系数据库 2. 关系代数 (1) 关系代数的基本运算 关系代数是以集合代数为基础发展起来的,有5个基本运算,包括:并(∪)、差(-)、广义笛卡儿积(×)、投影(П)、选择(σ)。 2007.3 荆楚理工学院
43
由5个基本运算可以组合成:交(∩)、连接( )和除法(÷),是进行关系数据库数据维护、查询、统计等操作的基础。
第二部分关系数据库 2. 关系代数 (2) 关系代数的组合操作 由5个基本运算可以组合成:交(∩)、连接( )和除法(÷),是进行关系数据库数据维护、查询、统计等操作的基础。 3. 关系演算 4. 函数依赖 2007.3 荆楚理工学院
44
插入操作异常 指要录入的数据因缺少关键字或关键字数据不完整而不能被录入的现象。
第二部分关系数据库 5. 关系模式的范式 数据冗余 数据多次重复存放。 冗余使表格文件规模增加了数倍,使检索速度降低。在录入和修改数据时需同时修改多处相关数据,工作量大且易出错。这与实际系统的要求相违背,这样的结构无法使用,必须修订。这种现象被称为操作异常。操作异常包括插入操作异常和删除操作异常两类。 插入操作异常 指要录入的数据因缺少关键字或关键字数据不完整而不能被录入的现象。 删除操作异常 是指不应当被删除的数据因部分主属性被删除而被删除的现象。 2007.3 荆楚理工学院
45
【解析】数据库系统一般由数据库、数据库管理系统(DBMS)、应用系统、数据库管理员和用户构成。DBMS是数据库系统的基础和核心。
第二部分关系数据库 二、例题解析 1. 数据库系统的核心是_____。 A)编译系统 B)数据库 C)操作系统 D)数据库管理系统 【解析】数据库系统一般由数据库、数据库管理系统(DBMS)、应用系统、数据库管理员和用户构成。DBMS是数据库系统的基础和核心。 答案:D 2007.3 荆楚理工学院
46
2. 数据库是在计算机系统中按照一定的数据模型组织、存储和应用的_____ 。 A)文件的集合 B)数据的集合 C)命令的集合
第二部分关系数据库 2. 数据库是在计算机系统中按照一定的数据模型组织、存储和应用的_____ 。 A)文件的集合 B)数据的集合 C)命令的集合 D)程序的集合 【解析】根据数据库的定义可知,数据库是长期储存在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度,较高的数据独立性和易扩展性,并可为各种用户所共享。 答案:B 2007.3 荆楚理工学院
47
3. 数据库具有最小冗余度、较高的程序与数据独立性,易于扩充和_____的特点。 A)程序结构化 B)程序标准化 C)数据模块化
第二部分关系数据库 3. 数据库具有最小冗余度、较高的程序与数据独立性,易于扩充和_____的特点。 A)程序结构化 B)程序标准化 C)数据模块化 D)数据结构化 【解析】根据数据库的特点可知,数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度,较高的数据独立性和易扩展性,并可为各种用户所共享。 答案:D 2007.3 荆楚理工学院
48
4. 允许使用者对数据库中的抽象数据提出请求(包括查询和修改),支持数据库各种操作的软件系统称为_____。 A)命令系统 B)数据库系统
第二部分关系数据库 4. 允许使用者对数据库中的抽象数据提出请求(包括查询和修改),支持数据库各种操作的软件系统称为_____。 A)命令系统 B)数据库系统 C)操作系统 D)数据库管理系统 【解析】数据库管理系统是位于用户与操作系统之间的一层数据管理软件。它具有数据定义功能(用户可以通过DDL方便地对数据库中的数据对象进行定义);数据操纵功能(用户可以使用DML操纵数据,实现对数据库的基本操作,如查询,插入等);数据库的运行管理(数据库在建立、运用和维护时由DBMS统一管理、统一控制,以保证数据的安全性、完整性);数据库的建立和维护功能。 答案:D 2007.3 荆楚理工学院
49
5. 数据库管理系统能实现对数据库中数据的查询、插入、修改和删除,这类功能称为_____。 A)数据定义功能 B)数据管理功能
第二部分关系数据库 5. 数据库管理系统能实现对数据库中数据的查询、插入、修改和删除,这类功能称为_____。 A)数据定义功能 B)数据管理功能 C)数据操纵功能 D)数据控制功能 【解析】数据库管理系统具有数据定义功能(即用户可以通过DDL方便地对数据库中的数据对象进行定义);数据操纵功能(即用户可以使用DML操纵数据,实现对数据库的基本操作,如查询、插入、删除和修改等操作);数据库的运行管理(即数据库在建立、运用和维护时,由DBMS统一管理、统一控制、以保证数据的安全性、完整性);数据库的建立和维护功能(包括数据库初始数据的输入、转换功能、数据库的转储、恢复功能,数据库的重组织功能和性能监视、分析功能等)。 答案:C 2007.3 荆楚理工学院
50
6. 在数据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特性的是_____。 A)外模式 B)内模式 C)存储模式 D)模式
第二部分关系数据库 6. 在数据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特性的是_____。 A)外模式 B)内模式 C)存储模式 D)模式 【解析】数据库的三级模式结构指数据库系统由外模式、模式和内模式 3 级构成。 外模式,也称子模式或用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。 模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。 内模式也称存储模式,它是数据物理结构和存储方式的描述。 答案:D 2007.3 荆楚理工学院
51
A)应用程序 B)逻辑结构和物理结构之间的映像 C)存储结构 D)局部逻辑结构到总体逻辑结构的映像
第二部分关系数据库 7. 在数据库系统中,当总体逻辑结构改变时,通过改变_____,使局部逻辑结构不变,从而使建立在局部逻辑结构之上的应用程序也保持不变,称之为数据和程序的逻辑独立性。 A)应用程序 B)逻辑结构和物理结构之间的映像 C)存储结构 D)局部逻辑结构到总体逻辑结构的映像 【解析】模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。当模式改变时,由数据库管理员对外模式/模式映像作相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序也不必改变。保证了数据与程序的逻辑独立性,即数据的逻辑独立性。 答案:D 2007.3 荆楚理工学院
52
8. E-R图是表示概念模型的有效工具之一,E-R图中使用菱形框表示_____。 A)联系 B)实体 C)实体的属性 D)联系的属性
第二部分关系数据库 8. E-R图是表示概念模型的有效工具之一,E-R图中使用菱形框表示_____。 A)联系 B)实体 C)实体的属性 D)联系的属性 【解析】在E-R图中,实体:用矩形表示;属性:用椭圆形表示;联系:用菱形表示。 答案:A 2007.3 荆楚理工学院
53
9. 当局部E-R图合并成全局E-R图时,可能出现冲突,下面所列举的冲突中_____不属于上述冲突。 A)属性冲突 B)语法冲突
第二部分关系数据库 9. 当局部E-R图合并成全局E-R图时,可能出现冲突,下面所列举的冲突中_____不属于上述冲突。 A)属性冲突 B)语法冲突 C)结构冲突 D)命名冲突 【解析】局部E-R图之间的冲突主要有3类:属性冲突、命名冲突和结构冲突。属性冲突包括属性域冲突和属性取值单位冲突。命名冲突包括同名异义和异名同义冲突。结构冲突包括同一对象在不同应用中具有不同的抽象,同一实体在不同局部E-R图中所包含的属性个数和属性排列次序不完全相同。 答案:B 2007.3 荆楚理工学院
54
10. 若D1={al,a2,a3},D2={bl,b2,b3},则D1×D2集合中共有元组_____个。 A)6 B)8 C)9 D)12
第二部分关系数据库 10. 若D1={al,a2,a3},D2={bl,b2,b3},则D1×D2集合中共有元组_____个。 A)6 B)8 C)9 D)12 【解析】在关系代数中,乘号×表示广义笛卡儿积。两个分别为n目和m目的关系R和S的广义笛卡儿积是—个(n+m)列的元组的集合。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡儿积有k1×k2个元组。本题中Dl有3个元组,D2有3个元组,故D1×D2集合中有3×3=9个元组。 答案:C 2007.3 荆楚理工学院
55
11.在关系代数中,自然连接的运算符号为_____。 A) B)× C)∏ D)σ
第二部分关系数据库 11.在关系代数中,自然连接的运算符号为_____。 A) B)× C)∏ D)σ 【解析】在关系代数中, 表示连接;×表示广义笛卡儿积;∏表示投影;σ表示选择。 答案:A 2007.3 荆楚理工学院
56
12.在关系运算中,查找满足一定条件的元组的运算称之为_____。 A)复制 B)选择 C)投影 D)连接
第二部分关系数据库 12.在关系运算中,查找满足一定条件的元组的运算称之为_____。 A)复制 B)选择 C)投影 D)连接 【解析】在关系数据库中,选择是在关系R中选择满足给定条件的诸元组。投影指从R中选择出若干属性列组成新的关系。连接指从两个关系的笛卡儿积中选取属性间满足一定条件的元组。 答案:B 2007.3 荆楚理工学院
57
第二部分关系数据库 13. 有两个基本关系:学生(学号,姓名,系号),系(系号,系名,系主任),学生表的主码为学号,系表的主码为系号,因而系号是学生表的______。 A)主码 B)外码 C)域 D)映像 【解析】外码定义为:设F是基本关系R的一个属性(组),但不是关系R的码,如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码。在这里,学生关系的“系号”属性与系关系中的主码“系号”相对应,因此系号是学生表的外码。 答案:B 2007.3 荆楚理工学院
58
一、内容提要 二、例题解析 1. SQL的数据定义 2. SQL的数据查询 3. SQL的数据操纵 4. SQL的数据控制
2007.3 荆楚理工学院
59
CREATE DATABASE <数据库名>;
第三部分结构化查询语言SQL 一、内容提要 1. SQL的数据定义 (1) 基本表的创建、修改和删除 ★ SQL建立数据库结构的命令是: CREATE DATABASE <数据库名>; 2007.3 荆楚理工学院
60
★ 建立数据库后,就可在数据库中定义表的结构。其命令为: CREATE TABLE 表名(列名1 类型 [NOT NULL];
第三部分结构化查询语言SQL 一、内容提要 1. SQL的数据定义 (1) 基本表的创建、修改和删除 ★ 建立数据库后,就可在数据库中定义表的结构。其命令为: CREATE TABLE 表名(列名1 类型 [NOT NULL]; [,列名2 类型][NOT NULL]…) [其他参数] 2007.3 荆楚理工学院
61
ALTER TABLE <表名> ADD (<新列名><新列类型>)
第三部分结构化查询语言SQL 一、内容提要 1. SQL的数据定义 (1) 基本表的创建、修改和删除 ★ 修改表结构语句 添加新列 ALTER TABLE <表名> ADD (<新列名><新列类型>) 2007.3 荆楚理工学院
62
ALTER TABLE <表名> RENAME COLUMN (<原列名> TO <新列名>)
第三部分结构化查询语言SQL 一、内容提要 1. SQL的数据定义 (1) 基本表的创建、修改和删除 ★ 修改表结构语句 更改列名 ALTER TABLE <表名> RENAME COLUMN (<原列名> TO <新列名>) 2007.3 荆楚理工学院
63
修改字段类型、字段或数值型字段宽度和数值型字段小数点后位数
第三部分结构化查询语言SQL 一、内容提要 1. SQL的数据定义 (1) 基本表的创建、修改和删除 ★ 修改表结构语句 修改字段类型、字段或数值型字段宽度和数值型字段小数点后位数 ALTER TABLE <表名> ALTER COLUMN (<列名><类型> [(宽度)[,小数位]]) 2007.3 荆楚理工学院
64
ALTER TABLE <表名> DROP COLUMN (<列名>)
第三部分结构化查询语言SQL 一、内容提要 1. SQL的数据定义 (1) 基本表的创建、修改和删除 ★ 修改表结构语句 从表中删去一列 ALTER TABLE <表名> DROP COLUMN (<列名>) 2007.3 荆楚理工学院
65
DROP TABLE <表名>;
第三部分结构化查询语言SQL 一、内容提要 1. SQL的数据定义 (1) 基本表的创建、修改和删除 ★ 删除表结构的语句 DROP TABLE <表名>; 2007.3 荆楚理工学院
66
CREATE [UNIQUE] INDEX <索引名> ON 表名 (列名 [次序][,列名 [次序]]…)[其他参数]
第三部分结构化查询语言SQL 1. SQL的数据定义 (2) 索引的创建和删除 ★ 建立索引语句 CREATE [UNIQUE] INDEX <索引名> ON 表名 (列名 [次序][,列名 [次序]]…)[其他参数] ★ 删除索引的语句 DROP INDEX <索引名> 2007.3 荆楚理工学院
67
SELECT [DISTINCT]目标列; FROM 表名(或视图);
第三部分结构化查询语言SQL 2. SQL的数据查询 SQL语言数据库查询语句的格式是: SELECT [DISTINCT]目标列; FROM 表名(或视图); [WHERE 条件表达式][GROUP BY 列名1]; [HAVING 内部函数表达式]; [ORDER BY 列名2[ASC/DESC]] 2007.3 荆楚理工学院
68
第三部分结构化查询语言SQL 这条语句的意思是:从基本表(或视图)中,根据WHERE子句中的条件表达式找出满足条件的记录,按所指定的目标列选出记录中的分量,形成结果表。如果有GROUP子句,则按“列名1”并根据HAVING给定的内部函数以表达式分组,统计各组中数据,每组产生一个元组,再按目标列选出分量,形成结果表。如果有ORDER子句,则应对结果表按“列名2”排序,再显示。 2007.3 荆楚理工学院
69
INSERT INTO <表名> [(字段名[,字段名]…)];
第三部分结构化查询语言SQL 3. SQL的数据操纵 (1) 数据插入 INSERT INTO <表名> [(字段名[,字段名]…)]; VALUES (表达式[,表达式]…) (2) 数据删除 DELETE FROM <表名> WHERE <条件表达式> (3) 数据修改 UPDATE 表名 SET字段=表达式[,字段=表达式]…[WHERE 条件表达式] 2007.3 荆楚理工学院
70
使用SQL的授权语句,可实现对数据库使用的控制。其语句格式为:
GRANT权力[,权力]…[ON 对象类型 对象名] TO 用户[,用户]…[WITH GRANT OPTION][IDENTIFIED BY 口令] 2007.3 荆楚理工学院
71
二、例题解析 假设有如下基本表: 学生信息表 Student(SNO, SName, Sex, Birthday, Class)
第三部分结构化查询语言SQL 二、例题解析 假设有如下基本表: 学生信息表 Student(SNO, SName, Sex, Birthday, Class) 课程信息表 Course(CNO, Cname, TNO) 教师信息表 TEACHER(TNO, Tname, SEX, Birthday, PROF, DEPART) 成绩表 SCORE(SNO, CNO, DEGREE) 其中,Birthday为日期型,DEGREE为数值型,其他为字符串类型。 2007.3 荆楚理工学院
72
【解析】本例使用创建表结构的命令CREATE和修改表结构命令ALTER。创建Student表的语句为:
第三部分结构化查询语言SQL 1. 先创建一个名称为Student的学生信息表,包括SNO, SName, Birthday三个字段;再在Student表中添加两个新字段SEX、Class。 【解析】本例使用创建表结构的命令CREATE和修改表结构命令ALTER。创建Student表的语句为: Create table Student(sno c(4),sname; c(8),Birthday D) 注:一条SQL语句应书写在一行之中,若需要换行,则应在行尾加“;”。 修改Student表结构的语句为: ALTER table Student add column sex c(2) ALTER table Student add column class c(4) 2007.3 荆楚理工学院
73
2. 列出学生表中所有记录的SName、Sex和Class。
第三部分结构化查询语言SQL 2. 列出学生表中所有记录的SName、Sex和Class。 【解析】这是投影运算,它至少应包括两个子句,基本形式为: select 目标列 from 表名 其中,目标列是要查询的列名,可以是一个或多个。当为多个列时,中间要用“,”分隔。FROM子句中的表名指明从哪个表中提取数据。本例的SQL语句可写为: SELECT SName,Sex,Class FROM Student 2007.3 荆楚理工学院
74
【解析】这也是投影运算。这里要求教师的单位不能重复,因此,要用“DISTINCT”来说明。SQL语句为:
3. 列出教师所有的单位。 【解析】这也是投影运算。这里要求教师的单位不能重复,因此,要用“DISTINCT”来说明。SQL语句为: SELECT DISTINCT DEPART FROM TEACHER 2007.3 荆楚理工学院
75
4. 显示学生表的所有记录,并用中文显示列名。
第三部分结构化查询语言SQL 4. 显示学生表的所有记录,并用中文显示列名。 【解析】当显示查询结果时,选择的列通常是以原表中的列名作为标题的,为了改变查询结果中的显示的标题,可在列名后使用“AS 列名”。SQL语句为: SELECT SNO AS ‘学号’,SName AS ‘姓名’,SEX AS; ‘性别’,birthday AS ‘出生日期’,class AS ‘班号’ 2007.3 荆楚理工学院
76
5. 显示SCORE表中成绩在60分到80分之间的所有记录。
第三部分结构化查询语言SQL 5. 显示SCORE表中成绩在60分到80分之间的所有记录。 【解析】这是选择运算,就是指定查询条件,只从表中选取满足查询条件的记录显示,其基本格式为: SELECT 列名 FROM 表名 WHERE 条件 本例需要用BETWEEN指明区间。SQL语句为: SELECT * FROM SCORE WHERE degree BETWEEN; 60 and 80 2007.3 荆楚理工学院
77
6. 求1982年以前出生或性别为“女”的学生姓名、性别、出生日期。
第三部分结构化查询语言SQL 6. 求1982年以前出生或性别为“女”的学生姓名、性别、出生日期。 【解析】本例要用函数YEAR()从Birthday中取年份。SQL语句为: SELECT SName,Sex,Birthday FROM Student; WHERE sex=’女’ or Year(Birthday)<1982 2007.3 荆楚理工学院
78
7. 列出所有学生的姓名、选修课程的课程名和成绩。
第三部分结构化查询语言SQL 7. 列出所有学生的姓名、选修课程的课程名和成绩。 【解析】这是连接运算,在数据查询中,当涉及到两个或多个表时,要指定连接列,在WHERE子句中给出连接条件,在FROM子句中指定要连接的表,其基本格式为: SELECT 列名1,列名2,… FROM 表1,表2,… WHERE 连接条件 本例涉及Student、Course和SCORE三个表。SQL语句为: SELECT Student.Sname,Course.cname,; SCORE.degree FROM Student,Course,SCORE; Where Student.SNO=SCORE.SNO and; SCORE.CNO=Course.CNO 2007.3 荆楚理工学院
79
SELECT Sname FROM SNO WHERE SNO IN;
第三部分结构化查询语言SQL 8. 列出选修了“高等数学”的学生姓名。 【解析】这是子查询,即一个查询是另一个查询的条件。每个子查询在上一级查询处理之前求解,即由里向外查。先由子查询得到一组值的集合,再向外查询。SQL语句为: SELECT Sname FROM SNO WHERE SNO IN; (SELECT SNO FROM SCORE WHERE CNO IN; (SELECT CNO FROM Course WHERE Cname=’高等数学’)) 2007.3 荆楚理工学院
80
9. 列出选修了课程号为“1001”且成绩高于课程号为“5103”的学生的CNO,SNO和DEGREE。
第三部分结构化查询语言SQL 9. 列出选修了课程号为“1001”且成绩高于课程号为“5103”的学生的CNO,SNO和DEGREE。 【解析】如果查询结果返回多个值,则要使用ANY、ALL、IN和NOT IN等命令,它们与查询条件一起构造返回一组值的子查询。SQL语句为: SELECT CNO,SNO, DEGREE FROM ScOre; WHERE cNO=’1001’ and degree>all; (SELECT degree FROM SCORE WHERE CNO=’5103’) 2007.3 荆楚理工学院
81
10. 根据Student表生成一个新表——班级统计表,包括所有5班的学生记录,并要求增加两列:年龄、备注。
第三部分结构化查询语言SQL 10. 根据Student表生成一个新表——班级统计表,包括所有5班的学生记录,并要求增加两列:年龄、备注。 【解析】在一个表中增加新字段,可使用ALTER命令或SELECT命令。年龄由当前年号减去出生日期得到。备注中如无内容,则字符类型要用“” “ AS 列名”的格式,其中的空格数应等于想要设置字段宽度。如果是整型,则要用“0000 AS列名”的格式,其中“0”的个数应等于该字段欲存最大数据十进制数字个数。其SQL语句为: SELECT *,Year(Date())-Year(Birthday) AS; 年龄, “ “ AS 备注 FROM Student WHERE LIKE; “5.%” INTO DBF 班级统计表 2007.3 荆楚理工学院
Similar presentations