关系型数据库的实体映射关系

(整期优先)网络出版时间:2018-12-22
/ 2

关系型数据库的实体映射关系

吴海峰

嘉兴一中浙江嘉兴314000

摘要:随着互联网行业的飞速发展,数据量正以指数级爆炸式的方式增长着,因此如何有效地存储和管理数据变得十分重要,数据库技术由此需求应运而生。本文从数据库领域数据的基本概念出发,详细介绍了关系型数据库与非关系型数据库的区别,并重点分析了关系型数据库中的三种实体映射关系:一对一、一对多和多对一,以及常用的SQL语句的使用方法,最后对全文进行了总结。

关键词:关系型数据库;实体映射关系;SQL语句

1.数据的概念

数据一般指的就是具有一定意义的数字,但在当今互联网时代,数据的含义范围已经变的十分广泛,因为数据可以有不同的形式,而不仅仅局限于数字,如一幅图像、一段语音,一段视频,甚至描述天气状况的“阴,晴,雨,雪”等都可以称为数据,只是这些数据必须经过一定的加工处理,转变为计算机可识别的数据形式,才能够被充分地利用,得到对人们有价值的信息。随着计算机技术的发展,人们无时无刻不在接触和利用网络,同时人们也在产生相应的数据,如人们一天之内的通勤出行轨迹、人们的消费记录以及人们使用手机与外界进行联系的记录等等,可以说我们生活在一个被数据包围的时代,我们在使用对自己有利数据的同时也在不断地产生着数据,因此如何对大量且繁杂的数据进行有效的存储和管理,就成了需要解决的重点问题。

2.关系型数据库与非关系型数据库

目前来说,主要用数据库来进行数据的存储和管理。数据库主要分为关系型数据库和非关系型数据库[1]。关系型数据库即数据仓库存储的数据之间是有一定关系的,数据之间通过一些关系模型来进行关联,而具体就表现为以二维表格的形式存储数据,每张表格代表一类实体,表格中的字段描述了实体的特征,如学生实体相应表格中的字段有学号、年龄、性别、成绩等,表格之间通过是实体之间的关系连接起来,使得我们能够从一张表开始查询到与其连接的其它表的信息,因此关系型数据库能够从整体上反映出数据表之间的连接关系,适合存储数据之间关系较为复杂的数据,但它在海量数据中进行查询以及读取操作时会十分耗费时间,效率很低。非关系型数据库与关系型数据库不同,它没有关系表的概念,而是以键值对的形式存储数据,其中数据的结构不是固定的,不像关系表中每行记录必须有同样的属性值,人们可以根据需要添加自己的属性值,这也使得非关系型数据库在查找时十分快速,因为它不用关联二维表获取数据,而是直接根据数据的属性定义到相应位置,因此非关系型数据库适合在海量数据中进行查询,能够快速地得到结果,但由于它不能反映数据之间的关系,因此不适合存储关系复杂的数据。本文涉及的均为与关系型数据库相关的内容。

3.实体映射关系

上文中提到,关系型数据库是利用关系表来表示实体的属性以及实体之间的联系的,关系表和我们通常提到的表有很大的不同,如关系表的每一行数据都代表相应一个实体的属性信息,而每一列都表示实体的属性分类,且每一列只能有唯一的名称,同一列中的值必须都是同一个类型,不能既出现数值型又出现字符型的情况,表中的每个值也必须是单一值,如列名为学生体重,若其中一个值“63kg”,则会出现错误,这是因为63和“kg”会被当成两个不同的值。而实体之间的联系方式就被称为实体映射关系,这也是数据库中十分核心的部分,一般来说实体映射关系被分为三种,分别是一对一,一对多和多对一,就接下来将详细介绍它们[2]。

3.1一对一的关联

两张关系表之间为一对一的映射关系,即指这两张关系表所代表的实体之间是一一对应的。如学生实体与学生身份证实体之间就是一对一的映射关系,学生实体中的属性可能有学号、性别、年龄等,而学生身份证实体中的属性可能有身份证编号、身份证所属地区、身份证长度等,但一个学生只与身份证中的唯一一条记录对应,而一个身份证也只与学生关系表中的唯一一条记录对应,这是因为每个学生只有一个身份证,而一个身份证也只能分配给一个学生,因此二者之间是一对一的映射关系,该映射关系在数据库中的表示见图1。

图1一对一实体映射示例

2.2一对多的关联

一对多的实体映射关系与一对一映射关系不同的是:两张关系表所表示的实体中,其中一个实体类可以多个对应另一个实体类,而后者只能唯一地对应前者[3]。这种一对多地实体映射关系也很常见,比如上文提到地学生实体和班级实体,班级实体的属性值有班级编号,班级学生人数,班级老师人数等,学生关系表中的一条记录即对应一个具体的学生,一个学生只会属于一个班级,而不可能同时属于多个班级,反过来班级关系表中的一条记录即代表一个实际的班级,一个班级中却可以拥有多个学生,因此学生与班级关系表是一对多的关系。该映射关系在数据库中的表示见图2。

图2一对多实体映射示例

2.3多对多的关联

多对多的实体映射关系则是与前面二者不同的又一常见的映射关系。具体含义为:两张关系表所表示的实体中,其中一个实体关系表可以对应另一个实体关系表中的多个记录,二者反过来也同样成立。再次以学生为例,学生和课程之间就是典型的多对多的实体映射关系,课程实体包含的属性有课程代码,课程时间,学生人数等,学生关系表中的一条记录即对应一个具体的学生,一个学生则对应课程关系表中的多个记录,即一个学生可以参与多门课程,同样的课程关系表中的一条记录对应一门具体的课程,一门课程也对应学生关系表中的多个记录,也就是一门课程可以被多个学生参加。该映射关系在数据库中的表示见图3。

图3多对多实体映射示例

3.数据库的经典SQL语句

知道如何在数据库中建立是实体之间的映射关系之后,更重要的是能够自由灵活地去使用和管理数据,这就必须涉及到一些SQL语句地使用。SQL语言是针对于数据库中数据进行操作地语言,准确使用SQL语句,我们才能让数据库更好地为我们服务。本文重点介绍四重经典且常用的SQL语句,分别为查询语句、插入语句、删除语句和更新语句。

(1)SELECTdataFROMtableWHEREcondition。该语句为查询语句,data指定要查询的数据,table指定了在哪个关系表中查询,conditon界定了查询的条件[4]。如找出语文成绩大于90的学生的学号,则查询语句为:SELECT学生学号FROM学生表WHERE语文成绩>90。

(2)INSERTINTOtable(field1,field2)VALUES(value1,value2)。该语句为插入语句,table(field1,field2)指定了要插入数据的位置,(value1,value2)指定了要插入的值,如在学生表的学号列,插入学号为1234的插入语句为:INSERTINTO学生表(学号)VALUES(1234)。

(3)DELETEFROMtableWHEREcondition。该语句为删除语句,即删除符合指定条件的table中的数据,如删除语文成绩小于60的所有学生的记录,删除语句为:DELETEFROM学生表WHERE语文成绩<60。

(4)UPDATEtableSETfield=valueWHEREcondition。该语句为更新语句,可以更新关系表中某个已经存在的数据,table指定了要更新的表,field=value指定了要更新的属性值,condition为要满足的条件,如将所有语文成绩大于90的学生的成绩水平都更改为A,则更新语句为:UPDATE学生表SET成绩水平=AWHERE语文成绩>90。

4.结语

目前数据库可以说被运用在各行各业,如证券行业、银行、交通规划、市场调研等等,所有产生数据和处理数据的地方都需要数据库,而当今社会已经没有企业和单位能够脱离数据运营,因此熟练应用数据库十分的重要。

参考文献

[1]王珊,陈红.数据库系统原理教程[M].清华大学出版社,1998.

[2]莫佳,汪利文.实体类到关系模式的映射方法[J].山东理工大学学报(自然科学版),2008,22(2):23-25.

[3]覃远霞.基于关系数据库的对象/关系映射研究[J].科技风,2008(5):54-54.

[4]肖辉辉,段艳明.关系数据库SQL语句的设计优化研究[J].软件导刊,2010,09(12):177-179.