首页 理论教育 数据库和实体类型不匹配

数据库和实体类型不匹配

时间:2022-11-03 理论教育 版权反馈
【摘要】:数据库管理系统:数据库管理系统是指帮助用户建立、使用和管理数据库的软件系统。数据库管理系统通常包括下列几个基本组成部分。一般由计算机硬件系统、数据库管理系统、数据库和用户组成。统一的管理和控制:数据库通过数据库管理系统软件包统一管理数据,包括数据定义、增删、检索以及更新操作等。数据库管理系统所支持的数据模型主要有:层次模型、网状模型、关系模型和面向对象模型4种。

第三节 数据库技术

一、数据管理的发展

数据处理是指对各种形式的数据进行收集、组织、存储、加工和传播的一系列活动的总和。而数据处理的中心问题是数据管理,数据管理是指对数据的分析、组织、编码、存储、检索和维护。随着计算机技术的发展,数据管理也经历了不同的发展阶段。

1.人工管理阶段(20世纪50年代以前)

当时,没有能直接用于存取的存储设备和操作系统软件,更没有专门用于数据管理的软件,数据处理方式只有批处理,所以数据不保存,一组数据对应一个程序。

2.文件管理阶段(20世纪50年代后期至60年代中期)

计算机硬件方面有了磁盘、磁鼓等直接存取的存取设备;软件方面有了操作系统和专门的管理数据软件;数据处理方式有文件批处理和联机实时处理。因此,数据可以以文件的形式在外存储设备上长期保存,以记录为单位进行存取,且文件也有索引文件、链接文件、直接存取文件等多种类型。此时数据处理的主要缺点是数据冗余度大、数据和程序缺乏独立性。

3.数据库系统阶段(20世纪60年代后期开始)

因为计算机应用管理的规模越来越大,需要处理的数据剧增,并且也有了大容量存储器的物质基础,所以出现了数据库技术。数据库系统的特点是实现了数据共享,减少了数据冗余;具有较高的数据独立性;统一的数据控制功能;有特定的数据模型。

4.分布式数据库系统阶段(20世纪80年代以后)

分布式数据库系统是一个逻辑上统一、地域上分布的数据集合,是计算机网络环境中各个节点局部数据库的逻辑集合,同时受分布式数据库管理系统的控制和管理。它是数据库技术和计算机网络技术相结合的产物。其具有局部自主、可靠性高、可用性强及灵活性好等优点。

二、数据库概念

1.数据库术语

(1)数据库(date base,简称DB):数据库是指以一定的方式将相关数据组织在一起并存储在外存储器上形成的、能为多用户共享的、与应用程序彼此独立的一组相关的数据集合。数据库不是根据某个用户的需要,而是按照信息的自然联系来构造数据;它能以最佳的方式、最少的冗余,为多个用户或多个应用服务。

(2)数据库管理系统(date base management system,简称DBMS):数据库管理系统是指帮助用户建立、使用和管理数据库的软件系统。数据库管理系统通常包括下列几个基本组成部分。

●数据描述语言(date description language,简称DDL):用来描述数据库、表结构,供用户建立数据库及表结构。

●数据操纵语言(date manipulation language,简称DML):供用户对数据表进行数据查询、检索、统计和数据增加、删除、修改等操作。

●数据库运行控制功能:数据库运行控制功能包括并发控制、数据安全控制和数据完整性控制等功能。

●数据字典(date dictionary,简称DD):用来存放对数据库结构的描述。

(3)数据库系统(date base system,简称DBS):数据库系统是指以计算机系统为基础,以数据库方式管理大量共享数据的系统。一般由计算机硬件系统、数据库管理系统、数据库和用户组成。

(4)数据库应用系统(date base application system,简称DBAS):数据库应用系统是指在数据库管理系统支持下建立的计算机应用系统。

2.数据库系统的特点

(1)数据的一体化、结构化:数据文件内部具有完整的数据结构,并且同一数据库中各数据文件之间也存在相互联系。

(2)数据共享性:共享是数据库系统的目的,它包括:

●不同的应用可以使用同一数据库。

●可以允许不同的应用在同一时刻存取同一数据。

●不仅当前存在的应用可以使用这个数据库,对于未来出现的新应用同样也应当能够使用同一数据库等。

(3)较少的数据冗余:冗余就是指数据重复,数据库的建立要尽可能避免数据的重复存储,以减少数据冗余。

(4)数据的独立性:在数据库系统中,通过模式描述来建立数据库,这样的数据和程序具有相对的独立性。

(5)统一的管理和控制:数据库通过数据库管理系统软件包统一管理数据,包括数据定义、增删、检索以及更新操作等。由于多用户共享数据,因此数据库还具有统一控制数据的安全性、完整性和保密性,具有对数据应用更加有效的功能。

3.数据库管理系统的三级结构和两个独立性

数据库具有三级结构(三级模式),即用户的局部数据逻辑结构、数据库的整体数据逻辑结构和数据库的物理结构。

数据库的两个独立性是指数据的物理独立性和数据的逻辑独立性。其中,数据的物理独立性是指当数据的存储结构改变时,由系统提供数据的物理结构与逻辑结构之间的映像或转换功能,保持数据的逻辑结构不变,从而不需要改变应用程序;数据的逻辑独立性是指由系统提供数据的总体逻辑结构和面向某个具体应用的局部逻辑结构之间的映像或转换功能,当数据总体逻辑结构改变时,通过映像保持局部逻辑结构不变,从而也不需要修改应用程序。

三、数据模型概念

1.模型的概念

对现实世界事物的特征的模拟和抽象就是这个事物的模型。

2.概念模型概念

模型是指概念层次的数据模型,是按用户的观点对现实世界建立模型。

(1)基本术语:

●实体(entity):实体是指客观存在的,并可以相互区别的事物。它可以是具体的事物,如张老师;也可能是抽象的概念,如课程

●属性(attribute):属性是指实体具有的每一个特性,如学生的学号、姓名、出生日期等。

●关键字(key):关键字是指能唯一标识实体的属性或属性的组合,如学生的学号。

●域(domain):域是指属性的取值范围,如学生的性别属性的域为“男”和“女”。

●实体集(entity set):同一类实体的集合,如全体学生的集合。

●实体型(entity type):用实体名及描述它的各属性名来刻画出全部同质实

体的共同特征和性质,即被称之为实体型,如学生(学号,姓名,性别,出生日期)。

●联系(relationship):联系是指实体集之间的对应关系,它反映了现实世界事物之间的相互关联。联系既包括实体内部各属性之间的联系,如学校中班级很多,但每个学生只能属于一个班级;也包括实体之间的联系,如一位教师能教多名学生,一名学生听多位教师教的课。

(2)实体之间的联系:

●一对一联系(one-to-one relationships)设A,B为两个实体集,若A中的每一个实体至多和B中的一个实体有联系;反之,B中的每一个实体至多和A中的一个实体有联系,则称A对B或B对A是一对一联系(1∶1)。例如:班长与班级之间就是1∶1联系。

●一对多联系(many-to-one relationships)设A,B为两个实体集,若A中的每一个实体可以和B中的几个实体有联系;反之,B中的每一个实体至多和A中的一个实体有联系,则称A对B是一对多联系(1∶n)。例如,班级与学生之间就是1∶n联系。

●多对多联系(many-to-many relationships):设A,B为两个实体集,若A中的每一个实体可以和B中的几个实体有联系;反之,B中的每一个实体也可以和A中的几个实体有联系,则称A对B或B对A是多对多联系(m∶n)。例如,学生与教师之间就是m∶n联系。

(3)实体内部的联系:实体内部的属性之间也有3种联系,即1∶1,1∶n,m∶n。例如,在学生实体中,学号与身份证号的联系是1∶1,班级与学生的联系是1∶n,班级和籍贯的联系是m∶n。

3.数据模型

数据模型由模型结构、数据操作和完整性规则3个部分组成。其中,模型结构是对系统静态特性的描述,它将确定数据库的逻辑结构,是数据模型最基本的部分;数据操作是对系统动态特性的描述,主要包括检索和更新两大类操作;完整性规则是对数据库有效状态的约束。数据库管理系统所支持的数据模型主要有:层次模型、网状模型、关系模型和面向对象模型4种。

(1)层次模型:层次模型是指用树型结构表示实体及其之间的联系,树中每一个节点代表一个记录类型,树状结构表示实体型之间的联系。在一个层次模型中的限制条件是:有且仅有一个节点,无父节点,此节点为树的根;其他节点有且仅有一个父节点。使用层次模型表示为1∶n联系非常方便、直接,但它不能直接表示为m∶n联系,必须设法转换成几个1∶n联系才行。

(2)网状模型:网状模型是指用网状结构表示实体及其之间联系的模型,网中每一个节点代表一个记录类型,联系用链接指针来实现。网状模型取消了层次模型的限制,即允许节点有多于一个的父节点;可以有一个以上的节点无父节点。网状模型的系统缺乏灵活性,扩充麻烦。

(3)关系模型:关系模型是指用规则的二维表格的形式来表示实体及其之间联系的数据模型。它可以很方便地表示m∶n联系。

(4)面向对象模型:是将面向对象程序设计方法与数据库技术相结合而产生的。面向对象模型中的最基本概念是对象object(现实世界中实体的模型化,把状态(state)和行为(behavior)封装在一起)和类class(对象类型及对象类型的操作方法)。该模型中包括描述对象状态的属性集和类的方法及类层次,具有丰富的表达能力。但这种模型比较复杂,系统实现比较困难。

四、关系模型和关系数据库

1.关系模型

(1)关系模型的术语:

●关系(relation):就是一个二维表格,每个关系有一个关系名,在计算机中一个关系可存储为一个文件。

●属性(attribute):一个二维表中的一列,每个属性都有属性名。

●元组:二维表中的一行,对应存储文件中的一个记录值。

●候选关键字(candidate key):能唯一地标识一个元组的属性或属性的组合。

●主关键字(prime key):候选关键字之一。

●外关键字(foreign key):一个关系中的属性或属性组合不是该关系的候选关键字;但它是另一个关系的候选关键字,则其为该关系的外关键字。

●主属性(primary attribute):包含于任意候选关键字之中的属性。

●非主属性(non-key attribute):不包含于任意候选关键字之中的属性。

●关系模式:对关系的描述,格式为:关系名(属性1,属性2,…,属性n)。一个关系模式对应一个关系文件的结构。

(2)关系模型的约束条件:所有的关系模型都必须满足如下的约束条件。

●表中的每一项都是不可再分的。

●表中每一列数据有相同的类型。

●表中每行、每列的顺序是任意的。

●表中不允许有完全相同的两行。

2.关系运算关系

关系运算关系的基本运算有两类:一类是传统的集合运算(并、交、差等),另一类是专门的关系运算(选择、投影、连接等)。当然,这些运算可以根据需要进行组合。

(1)传统的集合运算:

●并(union):设有两个关系R和S,它们具有相同的属性。R和S的并是由属于R或属于S的元组组成的集合。

●交(intersection):设有两个关系R和S,它们具有相同的属性。R和S的交是由既属于R又属于S的元组组成的集合。

●差(difference):设有两个关系R和S,它们具有相同的属性。R和S的差是由属于R但不属于S的元组组成的集合。

(2)专门的关系运算:

●选择运算(select)。选择运算是指从关系中找出满足给定条件的元组的运算,运算的结果形成了一个新的关系,它是原关系的一个子集。选择运算的一般表示形式:

SELECT关系名WHERE条件,其中,条件是逻辑表达式,满足条件,即能使逻辑表达式为真。

●投影运算(protect)。投影运算是指从关系中挑选若干属性组成新的关系的运算,运算结果也是一个关系,此时,属性组是原来属性组的子集。投影运算的一般表示形式:

PROJECT关系名(属性1,属性2,…)。

●连接运算(join)。连接运算是指将两个关系的属性名拼接成一个关系模式,生成的新关系中包含满足连接条件的元组。连接运算的一般形式:

JOIN关系1AND关系2WHERE条件,其中,条件是逻辑表达式,且在表达式中必须出现不同关系的公共属性名,或具有相同语义、可比的属性。

五、数据库的新发展

随着信息时代的到来,数据库技术得到了迅猛发展,目前主要的发展方向有:分布式数据库、逻辑、知识、智能数据库、专家数据库、多媒体数据库、面向对象的数据库、XML数据库和并行数据库等。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈