数据库基础知识_第1页
数据库基础知识_第2页
数据库基础知识_第3页
数据库基础知识_第4页
数据库基础知识_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第1章 数据库基础知识数据库是20世纪60年代后期发展起来的一项重要技术,70年代以来数据库技术得到迅猛发展,已经成为计算机科学与技术的一个重要分支。经过30多年的发展,现已经形成相当规模的理论体系和应用技术,不仅应用于事务处理,并且进一步应用到人工智能、情报检索、计算机辅助设计等各个领域。本章主要介绍数据库的基本概念和基本理论,并结合Microsoft Access讲解与关系数据库相关的基本概念。1.1 数据库系统概述数据库能把大量的数据按照一定的结构存储起来,开辟了数据处理的新纪元。可以直观地理解数据库为一个存放数据的仓库,只不过这个仓库是在计算机的大容量存储器上。数据处理的基本问题是数据

2、的组织、存储、检索、维护和加工利用,这些正是数据库系统所要解决的问题。 计算机数据管理的发展一、数据与数据处理数据是指存储在某一种介质上能够被识别的物理符号。数据的种类很多,不仅包括数字、字母、文字和其他特殊字符组成的文本形式,而且还包括图形、图像、动画、影像、声音等多媒体形式,但是使用最多、最基本的仍然是文字数据。信息是经过加工处理的有用数据。数据只有经过提炼和抽象变成有用的数据后才能成为信息。信息仍以数据的形式表示。数据处理是指将数据加工并转换成信息的过程。数据处理的核心是数据管理。计算机对数据的管理是指如何对数据分类、组织、编码、存储、检索和维护。二、数据管理技术的发展 计算机在数据管理

3、方面经历了由低级到高级的发展过程。计算机数据管理随着计算机软硬件技术的发展,数据管理技术的发展大致经历了人工管理、文件系统和数据库系统、分布式数据库系统和面向对象数据库系统5个阶段。 1. 人工管理20世纪50年代以前,计算机主要用于科学计算。当时的硬件状况是,外存储器只有纸带、卡片、磁带,没有直接存取设备。软件状况是,没有操作系统以及管理数据的软件。人工管理阶段具有的特点是:数据与程序不具有独立性,一组数据对应一组程序。数据不能长期保存,程序运行结束后就退出计算机系统,一个程序中的数据无法被其他程序使用,因此程序与程序之间存在大量的重复数据,称为数据冗余。2. 文件系统20世纪50年代后期到

4、60年代中期,计算机的应用范围逐渐扩大,大量地应用于管理中。这时,在硬件上出现了磁鼓、磁盘等直接存取数据的存储设备;在软件方面,在操作系统中已经有了专门的数据管理软件,一般称为文件系统;处理方式上不仅有了文件批处理,而且能够联机实时处理。文件系统阶段具有的特点是:程序和数据有了一定的独立性,程序和数据分开存储,有了程序文件和数据文件的区别。数据文件可以长期保存在外存储器上被多次存取。但数据共享性差,数据冗余大。文件系统存在的问题阻碍了数据处理技术的发展,不能满足日益增长的信息需求,这正是数据库技术产生的原动力,也是数据库系统产生的背景。3. 数据库系统20世纪60年代后期,计算机性能得到提高,

5、更重要的是出现了大容量磁盘,存储容量大大增加且价格下降。在处理方式上,联机实时处理要求更多,并开始提出和考虑分布处理。在这种背景下,以文件系统作为数据管理手段已经不能满足应用的需求,于是为解决多用户、多应用共享数据的需求,使数据为尽可能多的应用提供服务,出现了数据库管理系统。数据库系统阶段基本实现了数据共享,减少了数据冗余,数据库采用特定的数据模型,数据库具有较高的数据独立性,数据库系统有统一的数据控制和数据管理。4. 分布式数据库系统阶段分布式数据库系统是在集中式数据库系统的基础上发展起来的,是计算机技术和网络技术结合的产物。分布式数据库系统适合于单位分散的部门,允许各个部门将其常用的数据存

6、储在本地,实施就地存放本地使用,从而提高响应速度,降低通信费用。分布式数据库系统与集中式数据库系统相比具有可扩展性,通过增加适当的数据冗余,提高系统的可靠性。在集中式数据库中,尽量减少冗余度是系统目标之一。目前使用较多的是基于客户机/服务器(Client/Server,C/S)系统结构,C/S 结构将应用程序根据应用情况分布到客户的计算机和服务器上。Access为创建功能强大的客户机/服务器应用程序提供了专用工具。客户机/服务器应用程序具有本地(客户)用户界面,但访问的是远程服务器上的数据。5. 面向对象数据库系统数据库技术与面向对象程序设计技术结合产生了面向对象的数据库系统。面向对象的数据库

7、吸收了面向对象程序设计方法学的核心概念和基本思想,采用面向对象的观点来描述现实世界实体(对象)的逻辑组织、对象之间的限制和联系等。它克服了传统数据库的局限性,能够自然地存储复杂的数据对象以及这些对象之间的复杂关系,从而大幅度地提高了数据库管理效率,降低了用户使用的复杂性。从本质上说,Access仍然是传统的关系型数据库系统,但它在用户界面、程序设计等方面进行了很好地扩充,提供了面向对象程序设计的强大功能。 数据库系统数据库系统(DataBase System,DBS)是指带有数据库并利用数据库技术进行数据管理的计算机系统。一、 有关数据库的概念1. 数据库(DataBase,DB)数据库是数据

8、库系统的数据源,是长期存储在计算机内的、有组织的、可共享的数据的集合。实际上数据库就是为了实现一定的目的按某种规则组织起来的数据的集合,在我们的生活中这样的数据库可是随处可见。2. 数据库应用系统(DataBase Application System,DBAS)数据库应用系统是指系统开发人员利用数据库系统资源开发的面向某一类实际应用的软件系统。例如,学校信息管理系统,财务管理系统、人事管理系统、图书管理系统等,都是以数据库为基础和核心的计算机应用系统。3. 数据库管理系统(DataBase Management System,DBMS)数据库管理系统是数据库系统的一个重要组成部分。它是位于用

9、户与操作系统之间的一层数据管理软件。数据库管理系统是为数据库的建立、使用和维护而配置的软件。数据库在建立、运用和维护时由数据库管理系统统一管理、统一控制。如常见的Access、SQL Server、Oracle等,都是常用的数据库管理系统。4. 数据库系统(DataBase System,DBS)数据库系统是指在计算机系统中引入数据库后的系统,是实现有组织地、动态地存储大量相关数据,提供数据处理和信息资源共享的便利手段。一般由数据库、数据库管理系统(及其应用开发工具)、数据库应用系统、数据库管理员、应用程序员和用户组成,如图1.1所示。图1.1 数据库系统二、数据库系统的特点数据库系统的层次结

10、构如图1.2所示,其主要特点如下:1. 数据的结构化数据结构化是数据库与文件系统的根本区别。在数据库系统中,数据是面向整体的,不但数据内部组织有一定的结构,而且数据之间的联系也按一定的结构描述出来,所以数据整体结构化。2. 数据的高共享性与低冗余性数据库系统从整体角度看待和描述数据,数据不再面向某个应用而是面向整个系统。同一组基本记录,就可以被多个应用程序共享使用。这样可以大大减少数据冗余,节约存储空间,又能够避免数据之间的不相容性和不一致性。3. 数据的独立性数据独立是指数据与应用程序之间彼此独立,不存在相互依赖的关系。数据库系统提供了两方面的映像功能,使得程序与数据库中的逻辑结构和物理结构

11、有高度的独立性。4. 数据的统一管理与控制数据的统一管理与控制包括数据的完整性检查、安全性检查和并发控制3个方面。数据库管理系统能统一控制数据库的建立、运用和维护,使用户能方便地定义数据和操作数据,并能够保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。 数据模型数据模型是工具,是用来抽象地表示和处理现实世界中的数据和信息的工具。我们知道,计算机只能处理数据。数据模型就是从现实世界到数据世界的一个中间层次。现实世界的事物反映到人的大脑中来,人们把这些事物抽象为一种既不依赖于具体的计算机系统又不为某一DBMS支持的概念模型,然后再把概念模型转换为计算机上某一DBMS支持的数

12、据模型。图1.3所示是现实世界客观对象的抽象过程。图1.2 数据库系统层次示意图图1.3 现实世界客观对象的抽象过程一、实体描述在数据模型中,需要用到以下几个术语。1. 实体(Entity)客观存在并相互区别的事物称为实体。 实体可以是实际的事物,也可以是抽象的事物。例如,学生、课程等都是属于实际的事物;学生选课、教师授课等都是抽象的事物。2. 实体的属性(Attribute)描述实体的特性称为属性。例如,学生实体用学号、姓名、性别、年龄、政治面貌、照片等属性来描述。3. 实体集和实体型(Entity Set and Entity Type)属性值的集合表示一个实体,而属性的集合表示一种实体的

13、类型,称为实体型。同类型的实体的集合,称为实体集。例如,学生(学号,姓名,性别,年龄,政治面貌,照片)就是一个实体型。对于学生来说,全体学生就是一个实体集。在Access中,用“表”来存放同一类实体,即为实体集。例如,学生表、教师表、成绩表等。Access的一个“表”包含若干个字段,“表”中的字段就是实体的属性。字段值的集合组成表中的一条记录,代表一个具体的实体,即每一条记录表示一个实体。二、实体间的联系及分类实体之间的对应关系称为联系,它反映现实世界事物之间的相互关联。两个实体间的联系可以归结为三种类型。1. 一对一联系(one-to-one relationship)如果对于实体集A中的每

14、一个实体,实体集B中有且只有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系。例如,一所学校只有一个校长,一个校长只有在一所学校任职,校长与学校之间的联系就是一对一的联系。在Access中,一对一联系表现为主表中的每一条记录只与相关表中的一条记录相关联。2. 一对多联系(one-to-many relationship)如果对于实体集A中的每一个实体,实体集B中有多个实体与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多的联系。例如,一个学院中可以有多名学生,而一个学生只能在一个学院中注册学习,学院和学生之间存在一对多

15、联系。在Access中,一对多联系表现为主表中的每条记录与相关表中的多条记录相关联。即表A中的一条记录在表B中可以有多条记录与之对应,但表B中的一条记录最多只能与表A中的一条记录对应。一对多联系是最普遍的联系,也可以将一对一联系看作是一对多联系的特殊情况。3. 多对多联系(many-to-many relationship)如果对于实体集A中的每一个实体,实体集B中有多个实体与之联系,而对于实体集B中的每一个实体,实体集A中也有多个实体与之联系,则称实体集A与实体集B之间有多对多的联系。例如,一个学生可以选修多门课程,一门课程可以被多名学生选修。因此,学生和课程间存在多对多的联系。在Acces

16、s中,多对多的联系表现为一个表中的多条记录在相关表中同样可以有多条记录与之对应。即表A中的一条记录在表B中可以对应多条记录,而表B中的一条记录在表A中也可对应多条记录。多对多联系是理论上及实际需求时会有这种情况,但在数据库软件中则没有,因此,会将一个多对多联系分解为多个一对多联系。三、三种数据模型数据模型是面向数据库全局逻辑结构的描述,主要任务一是指出数据的构造,包括如何表示数据、要研究的是什么实体、包含哪些属性;二是确定数据间的联系,主要是实体间的联系。在数据库系统中,常用的数据模型有层次数据模型、网状数据模型和关系数据模型3种。1. 层次数据模型层次数据模型将现实世界的实体彼此之间抽象成一

17、种自上而下的层次关系,是使用树型结构表示实体与实体间联系的模型。用图来表示,层次数据模式是一棵倒立的树。图1.4给出了一个学校的层次数据模型。图1.4 层次数据模型示意图2. 网状数据模型使用网状结构表示实体及实体间联系的模型称为网状数据模型,如图1.5所示。图1.5 网状数据模型示意图3. 关系数据模型用二维表结构来表示实体以及实体之间联系的模型称为关系数据模型。关系数据模型是以关系数学理论为基础的,在关系数据模型中,操作的对象和结果都是二维表,这种二维表就是关系。关系数据模型与层次数据模型、网状数据模型的本质区别在于数据描述的一致性,模型概念单一。在关系型数据库中,每一个关系都是一个二维表

18、,无论实体本身还是实体间的联系均用称为“关系”的二维表来表示,使得描述实体的数据本身能够自然地反映它们之间的联系。而传统的层次和网状模型数据库是使用链接指针来存储和体现联系的。1.2 关系数据库用关系数据模型建立的数据库就是关系数据库(Relational Database,RDB)。 关系数据模型关系数据模型的用户界面非常简单,一个关系的逻辑结构就是一张二维表。这种用二维表的形式表示实体和实体间联系的数据模型称为关系数据模型。一、关系术语在Access中,一个“表”就是一个关系。图1.6给出了一张学生表,图1.7给出了一张成绩表,这是两个关系。这两个表中都有唯一标识一名学生的属性学号,根据学

19、号通过一定的关系运算可以将两个关系联系起来。 图1.6 学生表 图1.7 成绩表1. 关系(Relation)一个关系就是一张二维表,每个关系有一个关系名。在Access中,一个关系存储为一个表,具有一个表名。对关系的描述称为关系模式,一个关系模式对应一个关系的结构。其格式为: 关系名(属性名1,属性名2,属性名n)在Access中,表示为表结构: 表名(字段名1,字段名2,字段名n)2. 元组(Tuple)二维表(关系)中的每一行,对应于表中的记录。例如,学生表和成绩表两个关系各包括多条记录(或多个元组)。3. 属性(Attribute)二维表中的每一列,对应于表中的字段。例如,学生表中的学

20、号、姓名、专业等字段名及其相应的数据类型组成表的结构。4. 域(Domain)属性的取值范围称为域,也称为值域。例如,性别只能取“男”或“女”。5. 关键字(Primary Key)关键字是属性或属性的集合,关键字的值能够唯一地标识一个元组。例如,学生表中的学号。在Access中,主关键字和候选关键字就起唯一标识一个元组的作用。6. 外部关键字(Foreign Key)如果表中的一个字段不是本表的主关键字,而是另外一个表的主关键字和候选关键字,这个字段(属性)就称为外关键字。在Access中,将相互之间存在联系的表放在一个数据库中统一管理。例如,在“教学信息管理”数据库中可以加入教师表、学生表

21、、课程表和成绩表等。 二、关系的特点 在关系模型中对关系有一定的要求,关系必须具有以下特点:1. 关系必须规范化。关系模型中的每一个关系模式都必须满足一定的要求。最基本的要求是每个属性必须是不可分割的数据单元,即表中不能再包含表。2. 属性名必须唯一,即一个关系中不能出现相同的属性名。3. 关系中不允许有完全相同的元组(即冗余)。4. 在一个关系中元组和属性的顺序都是无关紧要的。 关系运算对于关系数据库进行查询时,需要找到用户感兴趣的数据,这就需要对关系进行一定的关系运算。关系的基本运算有两类:一类是传统的集合运算(并、差、交等),另一类是专门的关系运算(选择、投影、联接),有些查询需要几个基

22、本运算的组合。 一、传统的集合运算进行并、差、交集合运算的两个关系必须具有相同的关系模式,即元组具有相同结构。1. 并(Union)两个相同结构关系的并是由属于这两个关系的元组组成的集合。例如,有两个结构相同的学生关系R1和R2,分别存放两个班的学生,将第二个班的学生记录追加到第一个班的学生记录后面就是两个关系的并集。2. 差(Difference)设有两个相同的结构R和S,R差S的结构是由属于R但不属于S的元组组成的集合,即差运算的结果是从R中去掉S中也有的元组。例如,设有选修计算机基础的学生关系R,选修C语言程序设计的学生关系S。求选修了计算机基础,但没有选修C语言程序设计的学生,就应当进

23、行差运算。3. 交(Intersection)两个具有相同结构的关系R和S,他们的交是由既属于R又属于S的元组组成的集合。交运算的结果是R和S中的共同元组。例如,有选修计算机基础的学生关系R,选修C语言程序设计的学生关系S。求既选修了计算机基础又选修了C语言程序设计的学生,就应当进行交运算。 二、专门的关系运算关系数据库管理系统能完成选择、投影和联接3种关系操作。1. 选择(Select)从关系中找出满足给定条件的元组的操作称为选择。选择的条件以逻辑表达式给出,使得逻辑表达式的值为真的元组将被选取。例如,要从教师表中找出职称为“教授”的教师,所进行的查询操作就属于选择运算。2. 投影(Projection)从关系模式中指定若干属性组成新的关系称为投影。投影是从列的角度进行的运算,相当于对关系进行垂直分解。经过投影运算可以得到一个新的关系,其关系模式所包含的属性个数往往比原关系少,或者属性的排列顺序不同。投影运算提供了垂直调整关系的手段,体现出关系中列的次序无关紧要这一特点。例如,要从学生关系中查询学生的“姓名”和“年级”,所进行的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论