关系数据库是当前数据库管理与应用的基础,而SQL语言是一种关系型数据库语言,用于定义、查询、修改和控制关系型数据库中的对象,多数数据库管理系统厂商支持关系数据库与SQL语言标准。
以关系数据库为例,SQL语言是一种非过程化的面向集合的语言,它虽然用起来非常简单,但由于是解释实现,效率不如人意。因此许多应用仍然是由高级程序设计语言(如C)来实现的,但是高级程序设计语言是过程化的,而且是面向单个数据的,这使得SQL与它之间存在着不匹配,我们把它叫做“阻抗失配”。不论你是用嵌入式SQL,还是CLI,都需要化很多工夫去完成两种语言之间的相互转化。但是关系数据库在数据库系统方面发展地非常完善,有强大的管理功能和可操纵性。下面来看一下关系型数据库与SQL的区别在哪里?
关系型数据库与SQL的区别
结构化查询语言(StructuredQueryLanguage)
首先,SQL是一种语言而不是一个数据库。
1.SQL的定义
结构化查询语言(StructuredQueryLanguage)简称SQL(发音:/ˈeskjuːˈel/"S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。
1986年10月,美国国家标准协会对SQL进行规范后,以此作为关系式数据库管理系统的标准语言(ANSIX3.135-1986),1987年得到国际标准组织的支持下成为国际标准。不过各种通行的数据库系统在其实践过程中都对SQL规范作了某些编改和扩充。所以,实际上不同数据库系统之间的SQL不能完全相互通用。
2.SQL的组成
SQL一般由3部分组成,即:DML,DDL,DCL.
(1)DML,数据操纵语言,用来检索、修改、增加或者删除数据库中的数据。
(2)DDL,数据定义语言,创建或者修改数据库本身。例如ALTER修改数据库中表的设计。
(3)DCL,数据控制语言,用于维护数据库的安全性。
3.SQL应用
结构化查询语言SQL(STRUCTUREDQUERYLANGUAGE)是最重要的关系数据库操作语言,并且它的影响已经超出数据库领域,得到其他领域的重视和采用,如人工智能领域的数据检索,第四代软件开发工具中嵌入SQL的语言等。
4.SQL支持标准
SQL是1986年10月由美国国家标准局(ANSI)通过的数据库语言美国标准,接着,国际标准化组织(ISO)颁布了SQL正式国际标准。1989年4月,ISO提出了具有完整性特征的SQL89标准,1992年11月又公布了SQL92标准,在此标准中,把数据库分为三个级别:基本集、标准集和完全集。
5.SQL语句结构
结构化查询语言包含6个部分:
①数据查询语言(DQL:DataQueryLanguage):
其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDERBY,GROUPBY和HAVING。这些DQL保留字常与其他类型的SQL语句一起使用。
②数据操作语言(DML:DataManipulationLanguage):
其语句包括动词INSERT,UPDATE和DELETE。它们分别用于添加,修改和删除表中的行。也称为动作查询语言。
③事务处理语言(TPL):
它的语句能确保被DML语句影响的表的所有行及时得以更新。TPL语句包括BEGINTRANSACTION,COMMIT和ROLLBACK。
④数据控制语言(DCL):
它的语句通过GRANT或REVOKE获得许可,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。
⑤数据定义语言(DDL):
其语句包括动词CREATE和DROP。在数据库中创建新表或删除表(CREATTABLE或DROPTABLE);为表加入索引等。DDL包括许多与人数据库目录中获得数据有关的保留字。它也是动作查询的一部分。
⑥指针控制语言(CCL):
它的语句,像DECLARECURSOR,FETCHINTO和UPDATEWHERECURRENT用于对一个或多个表单独行的操作。
关系型数据库
关系数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。关系模型是由埃德加·科德于1970年首先提出的,并配合“科德十二定律”。现如今虽然对此模型有一些批评意见,但它还是数据存储的传统标准。标准数据查询语言SQL就是一种基于关系数据库的语言,这种语言执行对关系数据库中数据的检索和操作。关系模型由关系数据结构、关系操作集合、关系完整性约束三部分组成。
1.主键与外键
主键有用并很必要,有两个原因:
(1)主键能唯一标识表中一个单独的行。它确保了唯一性。
(2)可以很容易的将一个表和另一个表进行关联。
外键的内容放在后面,这里只要知道定义外键是要确保这一列有一个有效的值。
主键和外键的作用主要是为数据库的表添加结构,他们确保数据库中的表都是可以访问的,表之间有正确的关联。
2.数据类型
数据类型定义了一个列所能包含数据的类型的一种方法。它也是表中每一列的一个重要属性。
一般有3个重要的数据类型:数字型,字符型,日期时间型。
数字型包括:位,整数,浮点数,实数。不同的数据库在数据类型的表示有些许差异。
3.空值
表中单独列的另一个重要属性就是是否允许出现空值,空值不是空格或者空白。空值用‘NULL’表示。它是一个特殊类型的值。数据库的主键不能包含空值,且必须是唯一值。
十二准则
全关系系统应该完全支持关系模型的所有特征。关系模型的奠基人埃德加·科德具体地给出了全关系系统应遵循的基本准则。
(1)一个关系型的关系数据库管理系统必须能完全通过它的关系能力来管理数据库。
(2)信息准则关系数据库管理系统的所有信息都应该在逻辑一级上用表中的值这一种方法显式的表示。
(3)保证访问准则依靠表名、主码和列名的组合,保证能以逻辑方式访问关系数据库中的每个数据项。
(4)空值的系统化处理全关系的关系数据库管理系统支持空值的概念,并用系统化的方法处理空值。
(5)基于关系模型的动态的联机数据字典数据库的描述在逻辑级上和普通数据采用同样的表述方式。
(6)统一的数据子语言一个关系数据库管理系统可以具有几种语言和多种终端访问方式,但必须有一种语言,它的语句可以表示为严格语法规定的字符串,并能全面的支持各种规则。
(7)视图更新准则所有理论上可更新的视图也应该允许由系统更新。
(8)高级的插入、修改和删除操作系统应该对各种操作进行查询优化。
(9)数据的物理独立性无论数据库的数据在存储表示或访问方法上作任何变化,应用程序和终端活动都保持逻辑上的不变性。
(10)数据逻辑独立性当对基本关系进行理论上信息不受损害的任何改变时,应用程序和终端活动都保持逻辑上的不变性。
(11)数据完整的独立性关系数据库的完整性约束条件必须是用数据库语言定义并存储在数据字典中的。
(12)分布独立性关系数据库管理系统在引入分布数据或数据重新分布时保持逻辑不变。
无破坏准则如果一个关系数据库管理系统具有一个低级语言,那么这个低级语言不能违背或绕过完整性准则。
小编结语:
更多内容尽在课课家教育!
¥199.00
¥199.00
¥29.90
¥798.00
¥48.00¥180.00
¥48.00¥180.00