首页 百科知识 关系模型的基本操作与查询方法

关系模型的基本操作与查询方法

时间:2022-06-20 百科知识 版权反馈
【摘要】:2.3.1 关系模型的基本操作与查询方法关系模型的三种基本操作通过前面的学习,我们已经知道,在关系数据库中是用“小表”来存储数据的。在关系数据库中,主要有七种操作来实现查询:选择、投影、连接、和、并、差、积。SQL是用来从DBMS中获取数据的国际标准方法,被大多数商用关系型数据库管理系统所支持。SQL语言之所以能成为一种关系数据库中的主流语言,与其自身的特点是密不可分的。

2.3.1 关系模型的基本操作与查询方法

关系模型的三种基本操作

通过前面的学习,我们已经知道,在关系数据库中是用“小表”来存储数据的。数据存储于小表之后,进行查询时,经常需要从数据库提取数据,并对表中的数据进行一定的筛选和整理。在关系数据库中,主要有七种操作来实现查询:选择、投影、连接、和、并、差、积。其中,选择、投影和连接是关系模型的三种最基本的操作。例如在图2-9中,为了回答“从北京机床厂购进了哪些零部件”的问题,就用到了这三种基本操作。

选择(Select):选择是指根据指定的条件从一张表中选出符合条件的记录的操作,该操作的结果是一张虚拟的子表。例如,在图2-9中,我们在供应商表中,根据“生产厂家=机床配件厂并且城市=北京”的条件,选取出表中的第1行记录,即“S2,机床配件厂,北京”就是选择操作。可见,选择操作是对行的选取操作。

投影(Project):投影也称为射影,是指根据指定的字段将原表的数据取出,然后去掉其中重复行之后所构成的虚拟子表。简单地讲,投影操作是对列的操作。例如,对图2-9的供应商表的“代号”字段进行投影,就会得到一张只有一个列的子表,“S2(第一行)、S4(第二行)”。可见,投影操作是对列的操作。

连接(Join):在实际的数据库中,数据都是保存在一张张小表上面的。连接是指将两个表(或多个表)通过公共字段连接起来的操作。例如,在图2-9中,根据“供应商表的代号=零件供应表的代号,并且,零件供应表的编号=零件表的编号”的条件,就可以把三个小表连接起来,形成图2-8所示的一张新的大表,这就是连接操作。可见,进行连接操作时,要求各个表之间有公共字段。

将这些基本操作根据不同的条件和顺序组合起来,就可以产生各种复杂的操作,满足各种查询要求。这些基本操作的结果仍然表现为“表”的形式,在数据库中,有两个和表有关的基本概念:基本表和视图。基本表是数据库中实际存储数据的表。而视图(View)是从基本表或其他视图中导出的表,它本身不独立存储在数据库中。换言之,数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。所以,视图实际上是一张虚表,进行查询的过程就是建立视图的过程。

查询的方法

在实际应用中,关系数据库的几种操作基本上都借助于DBMS来完成。如今,多数的DBMS都提供了按例查询(query by example,QBE)的功能,它是查询储存在关系型数据库中数据的一种可视化方法,特别容易使用。可以通过单击屏幕上的表以及填写模板来提出问题和查看数据。图2-11展示了微软的Access的一个QBE界面。使用QBE方法,首先需要选出包含想要看的数据表,表选中后,再选择想要在结果中显示的列。此外,还可以使用QBE界面去规定对数据的总计、对结果排序和设置查询条件等。

图2-11 Access中的按例查询示例

除了QBE之外,更常用的方法是使用SQL(结构化查询语言)进行查询。SQL是用来从DBMS中获取数据的国际标准方法,被大多数商用关系型数据库管理系统所支持。

SQL是Structured Query Language的缩写,中文全称是“结构化查询语言”。顾名思义,SQL语言的主要功能之一就是数据查询。另外,利用SQL语言还可以添加、删除、更新数据,创建、修改表格的结构等。也就是说,SQL不但具有2.1.3节中提到的数据操纵语言的功能,还具备数据定义语言的功能。

SQL语言之所以能成为一种关系数据库中的主流语言,与其自身的特点是密不可分的。首先,SQL是高级的非过程化编程语言,它一次处理一个记录,并对数据提供自动导航。其次,SQL是统一的语言。对数据库的操作是多种多样的,以前的数据库管理系统为各种操作都提供单独的语言,而SQL将全部任务统一在一种语言中,可应用于所有的数据库活动模型。第三,SQL是所有关系数据库的公共语言。由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个DBMS转到另一个。所有用SQL编写的程序都是可以移植的。第四,SQL工作效率高。SQL允许用户在高层的数据结构上工作,可操作记录集,所有SQL语句接受集合作为输入,返回集合作为输出。最后,SQL语法十分简单,接近英语口语,简单易学。

下面,我们详细介绍SQL的常用的功能。

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

我要反馈