第1章数据库基础知识Word格式.docx
- 文档编号:706015
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:14
- 大小:138.34KB
第1章数据库基础知识Word格式.docx
《第1章数据库基础知识Word格式.docx》由会员分享,可在线阅读,更多相关《第1章数据库基础知识Word格式.docx(14页珍藏版)》请在冰点文库上搜索。
软件状况是,没有操作系统以及管理数据的软件。
人工管理阶段具有的特点是:
数据与程序不具有独立性,一组数据对应一组程序。
数据不能长期保存,程序运行结束后就退出计算机系统,一个程序中的数据无法被其他程序使用,因此程序与程序之间存在大量的重复数据,称为数据冗余。
2.文件系统
20世纪50年代后期到60年代中期,计算机的应用范围逐渐扩大,大量地应用于管理中。
这时,在硬件上出现了磁鼓、磁盘等直接存取数据的存储设备;
在软件方面,在操作系统中已经有了专门的数据管理软件,一般称为文件系统;
处理方式上不仅有了文件批处理,而且能够联机实时处理。
文件系统阶段具有的特点是:
程序和数据有了一定的独立性,程序和数据分开存储,有了程序文件和数据文件的区别。
数据文件可以长期保存在外存储器上被多次存取。
但数据共享性差,数据冗余大。
文件系统存在的问题阻碍了数据处理技术的发展,不能满足日益增长的信息需求,这正是数据库技术产生的原动力,也是数据库系统产生的背景。
3.数据库系统
20世纪60年代后期,计算机性能得到提高,更重要的是出现了大容量磁盘,存储容量大大增加且价格下降。
在处理方式上,联机实时处理要求更多,并开始提出和考虑分布处理。
在这种背景下,以文件系统作为数据管理手段已经不能满足应用的需求,于是为解决多用户、多应用共享数据的需求,使数据为尽可能多的应用提供服务,出现了数据库管理系统。
数据库系统阶段基本实现了数据共享,减少了数据冗余,数据库采用特定的数据模型,数据库具有较高的数据独立性,数据库系统有统一的数据控制和数据管理。
4.分布式数据库系统阶段
分布式数据库系统是在集中式数据库系统的基础上发展起来的,是计算机技术和网络技术结合的产物。
分布式数据库系统适合于单位分散的部门,允许各个部门将其常用的数据存储在本地,实施就地存放本地使用,从而提高响应速度,降低通信费用。
分布式数据库系统与集中式数据库系统相比具有可扩展性,通过增加适当的数据冗余,提高系统的可靠性。
在集中式数据库中,尽量减少冗余度是系统目标之一。
目前使用较多的是基于客户机/服务器(Client/Server,C/S)系统结构,C/S结构将应用程序根据应用情况分布到客户的计算机和服务器上。
Access为创建功能强大的客户机/服务器应用程序提供了专用工具。
客户机/服务器应用程序具有本地(客户)用户界面,但访问的是远程服务器上的数据。
5.面向对象数据库系统
数据库技术与面向对象程序设计技术结合产生了面向对象的数据库系统。
面向对象的数据库吸收了面向对象程序设计方法学的核心概念和基本思想,采用面向对象的观点来描述现实世界实体(对象)的逻辑组织、对象之间的限制和联系等。
它克服了传统数据库的局限性,能够自然地存储复杂的数据对象以及这些对象之间的复杂关系,从而大幅度地提高了数据库管理效率,降低了用户使用的复杂性。
从本质上说,Access仍然是传统的关系型数据库系统,但它在用户界面、程序设计等方面进行了很好地扩充,提供了面向对象程序设计的强大功能。
1.1.2数据库系统
数据库系统(DataBaseSystem,DBS)是指带有数据库并利用数据库技术进行数据管理的计算机系统。
一、有关数据库的概念
1.数据库(DataBase,DB)
数据库是数据库系统的数据源,是长期存储在计算机内的、有组织的、可共享的数据的集合。
实际上数据库就是为了实现一定的目的按某种规则组织起来的数据的集合,在我们的生活中这样的数据库可是随处可见。
2.数据库应用系统(DataBaseApplicationSystem,DBAS)
数据库应用系统是指系统开发人员利用数据库系统资源开发的面向某一类实际应用的软件系统。
例如,学校信息管理系统,财务管理系统、人事管理系统、图书管理系统等,都是以数据库为基础和核心的计算机应用系统。
3.数据库管理系统(DataBaseManagementSystem,DBMS)
数据库管理系统是数据库系统的一个重要组成部分。
它是位于用户与操作系统之间的一层数据管理软件。
数据库管理系统是为数据库的建立、使用和维护而配置的软件。
数据库在建立、运用和维护时由数据库管理系统统一管理、统一控制。
如常见的Access、SQLServer、Oracle等,都是常用的数据库管理系统。
4.数据库系统(DataBaseSystem,DBS)
数据库系统是指在计算机系统中引入数据库后的系统,是实现有组织地、动态地存储大量相关数据,提供数据处理和信息资源共享的便利手段。
一般由数据库、数据库管理系统(及其应用开发工具)、数据库应用系统、数据库管理员、应用程序员和用户组成,如图所示。
图数据库系统
二、数据库系统的特点
数据库系统的层次结构如图所示,其主要特点如下:
1.数据的结构化
数据结构化是数据库与文件系统的根本区别。
在数据库系统中,数据是面向整体的,不但数据内部组织有一定的结构,而且数据之间的联系也按一定的结构描述出来,所以数据整体结构化。
2.数据的高共享性与低冗余性
数据库系统从整体角度看待和描述数据,数据不再面向某个应用而是面向整个系统。
同一组基本记录,就可以被多个应用程序共享使用。
这样可以大大减少数据冗余,节约存储空间,又能够避免数据之间的不相容性和不一致性。
3.数据的独立性
数据独立是指数据与应用程序之间彼此独立,不存在相互依赖的关系。
数据库系统提供了两方面的映像功能,使得程序与数据库中的逻辑结构和物理结构有高度的独立性。
4.数据的统一管理与控制
数据的统一管理与控制包括数据的完整性检查、安全性检查和并发控制3个方面。
数据库管理系统能统一控制数据库的建立、运用和维护,使用户能方便地定义数据和操作数据,并能够保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。
1.1.3数据模型
数据模型是工具,是用来抽象地表示和处理现实世界中的数据和信息的工具。
我们知道,计算机只能处理数据。
数据模型就是从现实世界到数据世界的一个中间层次。
现实世界的事物反映到人的大脑中来,人们把这些事物抽象为一种既不依赖于具体的计算机系统又不为某一DBMS支持的概念模型,然后再把概念模型转换为计算机上某一DBMS支持的数据模型。
图所示是现实世界客观对象的抽象过程。
图数据库系统层次示意图
图现实世界客观对象的抽象过程
一、实体描述
在数据模型中,需要用到以下几个术语。
1.实体(Entity)
客观存在并相互区别的事物称为实体。
实体可以是实际的事物,也可以是抽象的事物。
例如,学生、课程等都是属于实际的事物;
学生选课、教师授课等都是抽象的事物。
2.实体的属性(Attribute)
描述实体的特性称为属性。
例如,学生实体用学号、姓名、性别、年龄、政治面貌、照片等属性来描述。
3.实体集和实体型(EntitySetandEntityType)
属性值的集合表示一个实体,而属性的集合表示一种实体的类型,称为实体型。
同类型的实体的集合,称为实体集。
例如,学生(学号,姓名,性别,年龄,政治面貌,照片)就是一个实体型。
对于学生来说,全体学生就是一个实体集。
在Access中,用“表”来存放同一类实体,即为实体集。
例如,学生表、教师表、成绩表等。
Access的一个“表”包含若干个字段,“表”中的字段就是实体的属性。
字段值的集合组成表中的一条记录,代表一个具体的实体,即每一条记录表示一个实体。
二、实体间的联系及分类
实体之间的对应关系称为联系,它反映现实世界事物之间的相互关联。
两个实体间的联系可以归结为三种类型。
1.一对一联系(one-to-onerelationship)
如果对于实体集A中的每一个实体,实体集B中有且只有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系。
例如,一所学校只有一个校长,一个校长只有在一所学校任职,校长与学校之间的联系就是一对一的联系。
在Access中,一对一联系表现为主表中的每一条记录只与相关表中的一条记录相关联。
2.一对多联系(one-to-manyrelationship)
如果对于实体集A中的每一个实体,实体集B中有多个实体与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多的联系。
例如,一个学院中可以有多名学生,而一个学生只能在一个学院中注册学习,学院和学生之间存在一对多联系。
在Access中,一对多联系表现为主表中的每条记录与相关表中的多条记录相关联。
即表A中的一条记录在表B中可以有多条记录与之对应,但表B中的一条记录最多只能与表A中的一条记录对应。
一对多联系是最普遍的联系,也可以将一对一联系看作是一对多联系的特殊情况。
3.多对多联系(many-to-manyrelationship)
如果对于实体集A中的每一个实体,实体集B中有多个实体与之联系,而对于实体集B中的每一个实体,实体集A中也有多个实体与之联系,则称实体集A与实体集B之间有多对多的联系。
例如,一个学生可以选修多门课程,一门课程可以被多名学生选修。
因此,学生和课程间存在多对多的联系。
在Access中,多对多的联系表现为一个表中的多条记录在相关表中同样可以有多条记录与之对应。
即表A中的一条记录在表B中可以对应多条记录,而表B中的一条记录在表A中也可对应多条记录。
多对多联系是理论上及实际需求时会有这种情况,但在数据库软件中则没有,因此,会将一个多对多联系分解为多个一对多联系。
三、三种数据模型
数据模型是面向数据库全局逻辑结构的描述,主要任务一是指出数据的构造,包括如何表示数据、要研究的是什么实体、包含哪些属性;
二是确定数据间的联系,主要是实体间的联系。
在数据库系统中,常用的数据模型有层次数据模型、网状数据模型和关系数据模型3种。
1.层次数据模型
层次数据模型将现实世界的实体彼此之间抽象成一种自上而下的层次关系,是使用树型结构表示实体与实体间联系的模型。
用图来表示,层次数据模式是一棵倒立的树。
图给出了一个学校的层次数据模型。
图层次数据模型示意图
2.网状数据模型
使用网状结构表示实体及实体间联系的模型称为网状数据模型,如图所示。
图网状数据模型示意图
3.关系数据模型
用二维表结构来表示实体以及实体之间联系的模型称为关系数据模型。
关系数据模型是以关系数学理论为基础的,在关系数据模型中,操作的对象和结果都是二维表,这种二维表就是关系。
关系数据模型与层次数据模型、网状数据模型的本质区别在于数据描述的一致性,模型概念单一。
在关系型数据库中,每一个关系都是一个二维表,无论实体本身还是实体间的联系均用称为“关系”的二维表来表示,使得描述实体的数据本身能够自然地反映它们之间的联系。
而传统的层次和网状模型数据库是使用链接指针来存储和体现联系的。
关系数据库
用关系数据模型建立的数据库就是关系数据库(RelationalDatabase,RDB)。
1.2.1关系数据模型
关系数据模型的用户界面非常简单,一个关系的逻辑结构就是一张二维表。
这种用二维表的形式表示实体和实体间联系的数据模型称为关系数据模型。
一、关系术语
在Access中,一个“表”就是一个关系。
图给出了一张学生表,图给出了一张成绩表,这是两个关系。
这两个表中都有唯一标识一名学生的属性——学号,根据学号通过一定的关系运算可以将两个关系联系起来。
图学生表图成绩表
1.关系(Relation)
一个关系就是一张二维表,每个关系有一个关系名。
在Access中,一个关系存储为一个表,具有一个表名。
对关系的描述称为关系模式,一个关系模式对应一个关系的结构。
其格式为:
关系名(属性名1,属性名2,……,属性名n)
在Access中,表示为表结构:
表名(字段名1,字段名2,……,字段名n)
2.元组(Tuple)
二维表(关系)中的每一行,对应于表中的记录。
例如,学生表和成绩表两个关系各包括多条记录(或多个元组)。
3.属性(Attribute)
二维表中的每一列,对应于表中的字段。
例如,学生表中的学号、姓名、专业等字段名及其相应的数据类型组成表的结构。
4.域(Domain)
属性的取值范围称为域,也称为值域。
例如,性别只能取“男”或“女”。
5.关键字(PrimaryKey)
关键字是属性或属性的集合,关键字的值能够唯一地标识一个元组。
例如,学生表中的学号。
在Access中,主关键字和候选关键字就起唯一标识一个元组的作用。
6.外部关键字(ForeignKey)
如果表中的一个字段不是本表的主关键字,而是另外一个表的主关键字和候选关键字,这个字段(属性)就称为外关键字。
在Access中,将相互之间存在联系的表放在一个数据库中统一管理。
例如,在“教学信息管理”数据库中可以加入教师表、学生表、课程表和成绩表等。
二、关系的特点
在关系模型中对关系有一定的要求,关系必须具有以下特点:
1.关系必须规范化。
关系模型中的每一个关系模式都必须满足一定的要求。
最基本的要求是每个属性必须是不可分割的数据单元,即表中不能再包含表。
2.属性名必须唯一,即一个关系中不能出现相同的属性名。
3.关系中不允许有完全相同的元组(即冗余)。
4.在一个关系中元组和属性的顺序都是无关紧要的。
1.2.2关系运算
对于关系数据库进行查询时,需要找到用户感兴趣的数据,这就需要对关系进行一定的关系运算。
关系的基本运算有两类:
一类是传统的集合运算(并、差、交等),另一类是专门的关系运算(选择、投影、联接),有些查询需要几个基本运算的组合。
一、传统的集合运算
进行并、差、交集合运算的两个关系必须具有相同的关系模式,即元组具有相同结构。
1.并(Union)
两个相同结构关系的并是由属于这两个关系的元组组成的集合。
例如,有两个结构相同的学生关系R1和R2,分别存放两个班的学生,将第二个班的学生记录追加到第一个班的学生记录后面就是两个关系的并集。
2.差(Difference)
设有两个相同的结构R和S,R差S的结构是由属于R但不属于S的元组组成的集合,即差运算的结果是从R中去掉S中也有的元组。
例如,设有选修计算机基础的学生关系R,选修C语言程序设计的学生关系S。
求选修了计算机基础,但没有选修C语言程序设计的学生,就应当进行差运算。
3.交(Intersection)
两个具有相同结构的关系R和S,他们的交是由既属于R又属于S的元组组成的集合。
交运算的结果是R和S中的共同元组。
例如,有选修计算机基础的学生关系R,选修C语言程序设计的学生关系S。
求既选修了计算机基础又选修了C语言程序设计的学生,就应当进行交运算。
二、专门的关系运算
关系数据库管理系统能完成选择、投影和联接3种关系操作。
1.选择(Select)
从关系中找出满足给定条件的元组的操作称为选择。
选择的条件以逻辑表达式给出,使得逻辑表达式的值为真的元组将被选取。
例如,要从教师表中找出职称为“教授”的教师,所进行的查询操作就属于选择运算。
2.投影(Projection)
从关系模式中指定若干属性组成新的关系称为投影。
投影是从列的角度进行的运算,相当于对关系进行垂直分解。
经过投影运算可以得到一个新的关系,其关系模式所包含的属性个数往往比原关系少,或者属性的排列顺序不同。
投影运算提供了垂直调整关系的手段,体现出关系中列的次序无关紧要这一特点。
例如,要从学生关系中查询学生的“姓名”和“年级”,所进行的查询操作就属于投影运算。
3.联接(Join)
联接是关系的横向结合。
联接运算将两个关系模式拼接成一个更宽的关系模式,生成的新关系中包含满足联接条件的元组。
联接过程是通过联接条件来控制的,联接条件中将出现两个表中的公共属性名,或者具有相同的语义、可比的属性。
联接结果是满足条件的所有记录。
选择和投影运算的操作对象只是一个表,相当与对一个二维表进行切割。
联接运算需要两个表作为操作对象。
如果需要联接两个以上的表,应当两两进行联接。
总之,在对关系数据库的查询中,利用关系的投影、选择和联接运算可以方便地分解或构成新的关系。
三、关系的完整性
1.实体完整性(EntityIntegrity)
实体完整性规则要求关系中记录的关键字字段不能为空,不同记录的关键字,字段值也不能相同,否则,关键字就失去了唯一标识记录的作用。
如学生表将学号字段作为主关键字,那么,该列不得有空值,否则无法对应某个具体的学生,这样的表格不完整,对应关系不符合实体完整性规则的约束条件。
2.参照完整性(ReferentialIntegrity)
参照完整性规则要求关系中“不引用不存在的实体”,定义了外键与主键之间的引用规则。
如学生表中的“学号”字段是该表的主键,但在成绩表中是外键,则在成绩表中该字段的值只能取“空”或取学生表中学号的其中值之一。
3.用户定义完整性(DefinitionIntegrity)
实体完整性和参照完整性适用于任何关系型数据库系统,它主要是针对关系的主关键字和外部关键字取值必须有效而做出的约束。
用户定义完整性则是根据应用环境的要求和实际的需要,对某一具体应用所涉及的数据提出约束性条件。
这一约束机制一般不应由应用程序提供,而应由关系模型提供定义并检验。
用户定义完整性主要包括字段有效性约束和记录有效性约束。
如对成绩表中的“成绩”字段的取值范围规定,只能取0~100之间的值。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 基础知识