数据库复习高质量精简版南开大学教材.docx
《数据库复习高质量精简版南开大学教材.docx》由会员分享,可在线阅读,更多相关《数据库复习高质量精简版南开大学教材.docx(30页珍藏版)》请在冰豆网上搜索。
![数据库复习高质量精简版南开大学教材.docx](https://file1.bdocx.com/fileroot1/2023-1/14/611338bd-6a4c-4f65-b72b-71f0e12271d0/611338bd-6a4c-4f65-b72b-71f0e12271d01.gif)
数据库复习高质量精简版南开大学教材
第1章数据库系统基础知识
1.1数据库概述
1.1.1数据、信息和数据库
1.数据
数据(Data)在一般意义上被认为是对客观事物特征所进行的一种抽象化、符号化表示。
例如,另外,数据可以有不同的形式。
例如,出生日期可以表示为“1988.6.28”、“{06/28/88}”等形式。
需要明确的是我们这里所指数据的概念,比以往在科学计算领域中涉及的数据已大大地拓宽了。
这里的数据不仅包括数字、字母、汉字及其他特殊字符组成的文本形式的数据,而且还包括图形、图像、声音等多媒体数据。
总之,凡是能够被计算机处理的对象都称为数据。
2.信息
信息(Information)通常被认为是有一定含义的、经过加工处理的、对决策有价值的数据。
通常情况下,数据与信息之间的关系可以表示为:
信息=数据+处理
其中,处理是指将数据转换成为信息的过程,包括数据的收集、存储、加工、排序、检索等一系列活动。
数据处理的目的是从大量的现有数据中,提取对人们有用的信息,作为决策的依据。
可见,信息与数据是密切相关的,我们可以总结为:
●数据是信息的载体,它表示了信息;
●信息是数据的内涵,即数据的语义解释。
信息是有价值的,其价值取决于它的准确性、及时性、完整性和可靠性。
为了提高信息的价值,就必须用科学的方法来管理信息,这种方法就是数据库技术。
3.数据库
数据库(DataBase,简称DB)是指存储在计算机存储设备上、结构化的相关数据的集合。
请注意,这些数据是以二进制形式存储在磁盘、光盘等存储介质上的。
那么,它们是如何存储的呢?
,为了便于检索和使用数据,数据库中的大量数据也必须按照一定的规则(即数据模型)来存放,这就是所说的“结构化”。
此外,存储在数据库中的数据彼此之间是有一定联系的,而不是毫不相干的。
可见,数据库不仅包括描述事物的数据,而且还要详细准确反映事物之间的联系。
1.1.2数据管理技术的发展
随着计算机硬件和软件技术的不断发展,计算机数据管理技术也随之不断的更新,其发展历程大致经历了人工管理、文件系统和数据库系统三个发展阶段。
1.人工管理阶段
20世纪50年代中期以前,计算机主要用于科学计算,这个时期还没有专门用于管理数据的软件,数据与计算或处理它们的程序放在一起。
也就是说,信息处理主要是面向科学计算,数据不需要长期保存。
当人们需要使用计算机处理某一课题时,就临时将有关数据输入内存。
待计算机处理完毕后直接输出处理结果,并释放相应内存空间,这是其特点一。
特点二,数据处理过程中,信息系统处理的数据需要在编写的程序中加以描述及定义。
即程序中不仅要编写对数据处理的具体要求,还要花费大量篇幅对使用数据的结构、存取方法和输入输出方式等进行详细叙述。
因此,此时编写应用程序不仅要书写操作指令,还要书写大量的数据说明性信息。
这样一来,不仅使编写应用程序十分繁琐,而且一旦信息系统中使用的数据,其类型、格式、数量或输入输出方式等改变了,程序也必须作相应的修改。
这种现象我们称之为数据与程序不具有独立性,这一特点的另一个后果直接导致了应用程序不具有普遍性和通用性。
特点三,数据是面向应用的,不具有共享性。
也就是说,每个应用程序中都只能使用自己定义的数据,即便是某些程序使用相同的数据,也必须在各自的应用程序中重新定义。
因此,各程序之间存在着大量的重复数据,称之为数据冗余。
总而言之,在人工管理阶段,数据处理的特点归纳为:
数据不保存、不能共享、冗余度极大;数据与程序捆绑在一起,数据不具有独立性。
这些特征可以通过下面的图示和应用实例加以说明。
图1-1应用程序与数据之间的关系
【例1-1】人2.文件系统阶段
20世纪50年代后期至60年代,计算机开始大量地用于数据处理工作。
在软件方面,出现了高级语言和操作系统。
操作系统中的文件系统是专门管理存放在外存中文件的软件。
此时,程序和数据可以分别存储为程序文件和数据文件,因而程序与数据有了一定的独立性。
常用的高级语言FORTRAN、BASIC、C等都支持使用数据文件。
这个阶段称为文件系统阶段。
这一阶段最主要的特点是,计算机不仅用于科学计算,也开始应用到数据管理领域,并且,计算机的应用迅速转向信息管理。
此时管理的数据以文件形式长期保存在外存的数据文件中,并通过对数据文件的存取实现对信息的查询、修改、插入和删除等常见的数据操作。
虽然这个时期出现了操作系统,而且操作系统中的文件系统有专门负责管理数据的软件,并且可以提供有关数据的存取、查询以及维护功能,但是,数据文件仍然是面向应用的,文件之间缺乏联系,共享性差。
换句话说,虽然应用程序中不用再编写大量的数据结构、存储方式等相关内容的说明,只要确定使用的是哪一个具体文件即可。
但即使不同的应用程序需要使用相同的数据,这些数据也必须存放在各自的专用文件中,不能共享数据文件。
这种处理方式可以用下面的图来描述:
图1-2应用程序与数据文件之间的关系
文件系统阶段的数据管理方式可以用图1-5概括总结。
其特点归纳为:
数据长期保存到文件中;程序与数据分离,数据程序有一定的独立性;实现了以文件为单位的数据共享、数据文件1、数据文件2、……、数据文件n中还会含有一定数量的重复数据。
另外,也可以与后面的图1-2(数据库系统中应用程序与数据间的关系)进行对比,就会发现两者之间存在很大差距。
由此可见,文件系统阶段对数据的管理虽然有了长足的进步,但是一些根本性问题并没有得到解决。
例如,数据冗余度大,同一数据项在多个文件中重复出现;缺乏数据独立性,数据文件只是为了满足专门需要而设计的,只能供某一特定应用程序使用,数据和程序相互依赖;数据无集中管理,各个文件没有统一管理机制,无法相互联系,其安全性与完整性得不到保证。
诸如此类的问题造成了文件系统管理的低效率、高成本,这就促使人们研究新的数据管理技术。
图1-3传统数据管理方式
3.数据库系统阶段
从20世纪60年代后期开始,随着信息量的迅速增长,需要计算机管理的数据量也在急剧增长,文件系统采用的一次存取一个记录的访问方式,以及不同文件之间缺乏相互联系的存储方式,越来越不能适应管理大量数据的需要。
同时,人们对数据共享的需求日益增强。
计算机技术的迅猛发展,特别是大容量磁盘开始使用,在这种社会需求和技术成熟的条件下,数据库技术应运而生,使得数据管理技术进入崭新的数据库系统阶段。
其管理方式如下所示:
图1-4应用程序与数据库之间的关系
数据库系统克服了文件系统的种种弊端,它能够有效地储存和管理大量的数据,使数据得到充分共享,数据冗余大大减少,数据与应用程序彼此独立,并提供数据的安全性和完整性统一机制。
数据的安全性是指防止数据被窃取和失密,数据的完整性是指数据的正确性和一致性。
用户可以以命令方式或程序方式对数据库进行操作,方便而高效。
数据库系统的优越性使其得到迅速发展和广泛应用。
从大型机到微型机,从UNIX到Windows,推出了许多成熟的数据库管理软件,如ORACLE、SYBASE、VisualFoxPro和Access等等。
当今,数据库系统已经成为计算机数据管理的主流方式,而由文件系统支持的数据文件,仅在数据量较小的场合下使用。
数据库系统阶段数据处理的特点归纳为:
数据冗余度得到合理的控制;数据共享性高;数据具有很高的独立性;数据经过结构化处理,具有完备的数据控制功能等。
更详细的内容参见1.2.2。
计算机网络技术的迅速发展为数据库提供了更好的运行环境,使数据库系统从集中式发展到分布式。
所谓“集中”和“分布”是对数据存放地点而言的。
分布式数据库把数据分散存储在网络的多个结点上,各个结点上的计算机可以利用网络通信功能访问其他结点上的数据库资源。
值得一提的是,近年来,智能数据库的研究取得了可喜的进展。
传统数据库存储的数据都是已知的事实,智能数据库除了存储已知的事实外,还能存储用于逻辑推理的规则,故又称为“基于规则的数据库”(rule-baseddatabase)。
演绎数据库、专家数据库和知识库系统等都属于智能数据库的范畴。
1.2数据库系统的组成及特点
1.2.1数据库系统的组成
通常把引进了数据库技术的计算机系统称为数据库系统(DataBaseSystem,简称DBS)。
数据库系统主要由数据库、数据库管理系统、相应的计算机软硬件、数据库管理员及其他人员几部分组成。
1.计算机硬件系统
需要有容量足够大的内存和外存,用来运行操作系统、数据库管理系统核心模块和应用程序,以及存储数据库。
2.数据库集合
数据库系统中的数据库集合(DataBase,简称DB)是存储在计算机外存上的若各个设计合理、满足应用需求的数据库。
3.数据库管理系统(DataBaseManagementSystem,简称DBMS)
这是运行在操作系统之上的系统软件,是数据库系统的核心。
它不仅可以帮助用户创建、维护和使用数据库,而且数据库系统中的各种功能和特性都是由DBMS提供的。
流行的DBMS有Sybase、Oracel、Informix、VisualFoxPro、Access等。
前面使用的SELECT查询语句就是在Access环境中实现的。
4.相关的软件系统
包括操作系统、编译系统、应用开发工具软件和计算机网络软件等。
较大型的数据库系统,通常是建立在多用户系统或网络环境中的。
5.数据库管理员及其他人员
在大型数据库系统中,需要有专人负责数据库系统的建立、维护和管理工作,承担该任务的人员称为数据库管理员。
其他人员包括系统分析和设计人员、应用程序员以及用户。
用户又可分为两类:
专业用户和最终用户。
专业用户侧重于设计数据库、开发应用系统程序,为最终用户提供友好的用户界面。
最终用户侧重于对数据库的使用。
1.2.2数据库系统的特点
数据库技术是在文件系统的基础上发展起来的技术。
数据库系统克服了文件系统的缺陷,它不仅可以实现对数据的集中统一管理,而且还可以使数据的存储和维护不受任何用户的影响,为用户提供了对数据更高级、更有效的管理手段。
数据库系统的主要特点是:
数据结构化、数据共享、数据独立性和统一的数据控制功能。
1.数据冗余度小、数据共享性高
数据共享是指数据库中的数据可以被多个用户、多种应用访问,这是数据库系统最重要的特点。
由于数据库中的数据被集中管理、统一组织、定义和存储,可以避免不必要的冗余,因而也避免了数据的不一致性。
与此同时,这种处理模式便于数据的灵活应用,可以取整体数据的各种合理子集用于不同的应用系统。
2.具有较高的数据独立性
在数据库系统中,数据与应用程序之间的相互依赖大大减小,数据的修改对程序不会产生大的影响或没有影响,数据具有较高的独立性。
这一特点通过对图1.3和图1.5的对比,很清晰地表示出来。
从图1.5中可以看出,无论应用程序要对数据(数据保存在数据库DB中)进行何种操作,都是通过DBMS(数据库管理系统)来完成的。
也就是说,由于DBMS提供了数据定义功能,以及数据管理功能,程序中所需要的数据定义、查询、删除、插入、修改等操作,都是由DBMS完成的,应用程序中不用再包含这方面的内容。
因此,当数据的结构(无论是物理结构即存储方式,还是逻辑界结构即数据项之间的关系)发生变化时,应用程序都是不变的。
这样一来,数据和程序相互之间的依赖性很低、独立性很高,这种特性就是我们所说的数据独立性高。
数据独立性高给应用程序的开发、维护、扩充带来极大的方便,从而大大减轻了程序设计的负担。
3.数据结构化
数据库中的数据是有结构的,这种是由什么表现出来的是由数据库管理系统所支持的数据模型表现出来的。
数据库系统不仅可以表示事物内部各数据项之间的联系,而且可以表示事物与事物之间的联系。
这一特点决定了利用数据库实现数据管理的设计方法,即系统设计时应该先准确地规划出数据库中数据的结构(数据模型),然后再设计具体的处理功能程序。
数据模型的相关内容后面会更详细介绍。
1.4基本数据模型
1.4.1基本数据模型
在一个数据库系统中,为了反映事物本身及事物之间的各种联系,数据库中的数据必须具有一定的结构,这种结构用数据模型来表示。
任何一个数据库管理系统都是基于某种数据模型的。
基本的数据模型有3种:
层次模型、网状模型和关系模型。
1.层次模型
利用树型结构表示实体及其之间联系的模型称为层次模型。
图1-6就是一个层次模型的实例,它体现出实体之间一对多的联系。
。
2.网状模型
利用网状结构表示实体及实体之间联系的模型称为网状模型。
该模型体现多对多的联系,具有很大的灵活性
图1-5层次结构数据模型
图1-6网状结构数据模型
在层次模型和网状模型中,它的主要数据结构是树结构和图结构。
这些概念对于没有受过计算机训练的人来说,理解起来要困难一些。
即使对用户进行专门培训,他们也很难掌握和运用这两种结构,所以这些模型的软件开发、生产率一直是偏低的。
基于上述原因,才促使人们开始探讨更加易于使用和操控的新数据模型。
人们发现,在现实生活中,表达数据之间关联性的最常用、最直观的方法莫过于制成各种各样的表格,而且这种表格人们不需要专门训练就能看懂。
关系模型就是在这样的背景下提出来的。
3.关系模型(最好)
用二维表结构表示实体以及实体之间联系的模型称为关系模型。
关系模型把各种联系都统一描述成一些二维表,即由若干行和若干列组成的表格。
每一个这样的二维表格就称为一个关系。
例如,我们前面使用过的5个表格,每一个都对应一个关系。
对我们来说,无论是浏览还是设计一张二维表格都没有什么困难,可见,关系模型很容易被用户所接受。
此外,关系模型有严格的理论基础(关系数学理论),因此,基于关系模型的关系型数据库管理系统成为当今最为流行的数据库管理系统。
经过几十年的发展,基于不同数据模型的数据库系统经历了第一代层次模型和网状模型、第二代关系模型,正在走向面向对象的数据模型等非传统数据模型的第三个阶段。
习题1
一、选择题
1.一个或多个相关联的关系的集合称为(D)。
A)数据库B)数据库系统
C)数据库管理系统D)数据结构
2.数据库系统是由硬件系统、数据库、数据库管理系统、软件系统、(A)、用户等构成的人-机系统。
A)数据库管理员B)程序员
C)高级程序员D)软件开发商
3.(C)不是数据库系统的特点。
A)较高的数据独立性B)最低的数据冗余度
C)数据多样性D)较好的数据完整性
4.数据库管理系统常见的数据模型有3种,它们是(B)。
A)网状、关系和语义B)层次、关系和网状
C)环状、层次和关系D)关系、面向对象和数据
5.数据库DB、数据库系统DBS和数据库管理系统DBMS之间的关系是(B)。
A)DBMS包括DB和DBSB)DBS包括DB和DBMS
C)DB包括DBS和DBMSD)并列关系
6.数据库系统对数据进行管理的核心是(B)。
A)DBB)DBMSC)OSD)DBS
7.数据库系统的核心是(A)。
A)数据模型B)数据库管理员
C)数据库D)数据库管理系统
8.下列关于数据库系统的叙述中,正确的是(D)。
A)数据库系统只是比文件系统管理的数据更多
B)数据库系统中数据的完整性是指数据类型完整
C)数据库系统避免了一切数据冗余
D)数据库系统减少了数据冗余
9.DBMS的功能包括数据定义、数据操纵、数据库运行控制和()。
A)数据字典B)数据处理C)数据联接D)数据投影
10.负责数据库中查询操作的数据库语言是()。
A)数据定义语言B)数据管理语言
C)数据操纵语言D)数据控制语言
11.数据库系统与文件系统的主要区别是(A)。
A)文件系统不能解决数据冗余和数据独立性问题,而数据库系统可解决这些问题
B)文件系统只能管理少量数据,而数据库系统则能管理大量数据
C)文件系统只能管理程序文件,而数据库系统则能管理各种类型的文件
D)文件系统简单,而数据库系统复杂
12.按照数据模型分类,Access数据库属于(D)。
A)层次型B)网状型C)关系型D)对象—关系型
二、填空题
1.把数据分散存储在网络的多个结点上,各个结点上的计算机可以利用网络通信功能访问其他结点上的数据库资源,这种数据库属于___分布式_____数据库。
2.数据库中的数据是有结构的,这种结构是由数据库管理系统所支持的____数据模型____表现出来的。
3.数据库系统的核心是____数据模型____。
4.微机上使用的数据库管理系统基本上都是关系型数据库管理系统,它们提供的数据库语言具有“一体化”的特点,即集⑴、⑵和数据控制语言于一体。
5.数据库管理系统的数据模型主要有层次模型、网状模型和关系模型。
6.数据库管理系统的主要功能是⑴、⑵及控制和管理功能。
第2章数据库设计
2.2概念结构设计
为了将现实世界中具体的事物特性抽象、组织成为数据库应用系统能够识别的数据模型,首先要将事物的特性信息结构化,最终设计出描述现实世界的概念模型。
归纳后的这种信息结构并不依赖计算机系统,是事物特性理念上的一种数据规范表示。
为了在概念结构设计过程中最终产生概念模型,人们常使用的工具或称方法是E-R方法,即描述概念模型的工具是实体-联系模型(也称为E-R模型、E-R方法)。
2.2.1实体–联系模型
实体-联系模型(EntityRelationshipModel)简称为E-R模型,涉及到的基本概念有:
1.实体(Entity)
实体是指客观存在、可相互区分的事物。
实体可以是一个具体的对象如人、事、物。
例如:
一个职工、一个学生、一辆汽车等具体事物都是实体。
实体也可以是抽象的概念或行动,如一个部门、一门课、一个班级、老师与系的工作关系(即某位老师在某系工作)等概念实体;学生的一次选课、部门的一次订货、一场比赛等也都是实体。
2.属性(Attribute)
每个实体都具有一组描述自己特征的的数据项,每一个数据项都代表了实体一个特性,我们把实体所具有的某一特性称为属性。
例如:
3.实体集(EntitySet)
性质相同的实体组成的集合称为实体集。
例如全体学生就是一个学生实体集,全部开设的课程可以构成课程实体集,……。
具体示例如表2-2、表2-3。
显然表2-1、表2-2和表2-3分别表示了三个不同的实体集。
我们也不难发现每个实体集都有自己特定的结构和特性。
需要说明的是,实体集并不是孤立存在的,实体集之间有着各种各样的联系,习
4.实体型(EntityType)
简单地讲实体型是实体集的另一种表示。
具体来说就是用实体的名称和实体的属性名称来表示同类型的实体,这一表示形式称为实体型。
具体的表示形式为:
实体名(属性名1,属性名2,…,属性名n)
在数据库系统中实体型重点表示实体的属性特性即实体的结构特性,实体集重点表示具体的对象值。
它们都是用来表示具体实体的。
5.域(Field)
每一个属性都有一个值域,即属性的取值范围称为该属性的域。
例如,学号的域为6位整数,姓名的域为字符串集合,性别的域为(男,女)两个汉字等等。
6.码(Code)
如果一个属性或若干属性(属性组)的值能唯一地识别实体集中每个实体,就称该属性(或属性组)为实体集的码,也称为键。
这里还是要提醒大家,一个实体集的码有可能由该实体中的若干属性组成。
7.联系(Relation)
。
一句话,实体间的联系就是实体集与实体集之间的联系,这种联系共有以下三种:
一对一、一对多和多对多。
表2-4成绩
1.一对一联系(1:
1)
2.一对多联系(1:
n)
3.多对多联系(m:
n)
2.3关系模型
前面我们讲过规范化的数据库设计分为:
用户需求分析、概念结构设计、逻辑结构设计、物理结构设计等阶段。
概念结构设计的最终目标是产生概念模型,为逻辑结构设计打下良好的基础。
逻辑结构的设计过程包括:
⑴将概念模型转换为关系模型
⑵将得到的关系模型转为具体数据库管理系统(DBMS)支持的数据模型;
⑶对所得到的数据模型进行规范化及结构优化处理。
由此我们可以看出在,讨论逻辑结构设计的详细过程之前,有必要先来介绍关系模型以及关系型数据库的相关概念。
目前,关系数据库理论日趋成熟,并在微机数据库系统中得到普遍应用。
2.3.1基本概念
所谓的关系模型就是用二维表形式来表示实体集中的数据,简称为关系(Relation)。
二维表也是我们日常处理、分析、统计数据时常用的手段或工具。
在数据库设计中一个二维表对应一个关系。
例如前面给出的表2-1:
1.元组
二维表中的每一行称为一个元组。
它对应具体的实体。
元组是构成关系的基本要素,即一个关系是有(什么构成的)?
若干相同结构的元组组成。
2.属性
二维表中每一列称为一个属性。
若干属性的集合构成关系中的元组。
例如在上表中,学号、姓名、性别、出生日期等都是属性名(即二维表的栏目行)。
属性名是变量,它们有不同的类型和宽度,如姓名、性别等存放文字,习惯上类属性的数据类型便定义为文字型;而年龄、成绩、工资等用于算数运算的属性其数据类型习惯上定义为数值型。
对于数值型属性,还有小数位数等特殊要求的描述。
属性名、数据类型、数据宽度和小数位数等称为属性的定义。
一条元组中各属性的具体内容称为属性值……。
这些相关的内容请参阅本教材的创建数据库章节。
3.值域
即属性的取值范围。
例如,在表2-4(成绩关系)中,“成绩”属性的域为0~100。
在表2-1(学生关系)中,“性别”属性的域是“男”和“女”。
合理的定义属性的值域,可以提高数据表操作的效率。
4.关键字(主码)
这里的关键字对应概念设计中码的定义:
在一个关系中有这样一个或几个字段,它(们)的值可以唯一地标识一条记录,这样的字段或字段组称之为关键字(Key),也称为主关键字或主码(PrimaryKey)。
例如,在学生关系中,学号就是主关键字。
除了主关键字或主码以外,还可以有以下几种关键字:
⑴候选关键字或候选码:
当一个关系中有多个属性都能唯一表示一个元组时,选其中的一个为主码,其它属性就可以作为候选码(CandidateKey)。
⑵外部关键字或外码:
某个属性或一组属性,不是当前关系的主码,而是另一个关系的主码,那么,这样的属性在当前关系中称为外码(ForeignKey)。
外部关键字在各个数据表即关系之间架起了一座桥梁,使数据库中的表相互制约、相互依赖,形成一个整体。
5.关系模式
关系模式是对关系的一种抽象表示形式(类似实体型),其格式为:
关系名(属性名1,属性名2,…,属性名n)
2.3.2关系的特点
在关系模型中,每一个关系模式都必须满足一定的要求,即关系必须规范化。
规范化后的关系应具有以下特点:
⑴每一个属性均不可再分,即表中不能再包含表。
例如,手工制表时经常会绘制复合表,如表2-8所示的职工工资表:
表2-5职工工资表
职工号
姓名
应发部分
扣除部分
实发金额
工资
津贴
奖金
水电费
公积金
121
王芳
800
300
200
80
60
1160
122
李健民
900
400
200
90
100
1310
123
张大海
1000
500
400
10