×

使用空值对SQL进行形式化。 (英语) Zbl 1511.68339号

概述:SQL是世界上最流行的声明语言,是数十亿美元数据库行业的基础。尽管SQL已经标准化了,但完整的标准是基于模棱两可的自然语言,而不是形式化的规范。商业SQL实现以不同的方式解释标准,因此,给定相同的输入数据,相同的查询可能会根据运行它的SQL系统产生不同的结果。即使对于特定的系统,SQL所有广泛使用的功能的机械检查形式化仍然是一个公开的问题。由于缺乏理解良好的正式语义,因此很难验证数据库实现的可靠性。虽然SQL片段的正式语义是在过去设计的,但它们通常不支持set和bag操作、横向连接、嵌套子查询,以及最重要的空值。空值以类似于其他编程语言中的空指针或副作用的深刻方式使SQL的语义复杂化。由于某些SQL查询在没有空值的情况下是等价的,但在应用于包含不完整数据的表时会产生不同的结果,因此忽略空值的语义能够证明查询等价性在实际数据库中是不可靠的。支持上述所有特性的SQL的正式语义是最近才提出的。在本文中,我们报告了在Coq证明助手中编写的SQL语义机械化,包括集合/包操作、横向连接、嵌套子查询和空值,并描述了关键元理论属性的验证。此外,我们能够使用相同的框架形式化平面关系演算的语义(使用空值),并显示其正常形式到SQL的认证转换。

MSC公司:

68V20型 数学形式化与定理证明
第68页,共15页 数据库理论
PDF格式BibTeX公司 XML格式引用

参考文献:

[1] Auerbach,J.S.、Hirzel,M.、Mandel,L.、Shinnar,A.、Siméon,J.:使用Coq(经验报告)制作查询编译器原型。程序。ACM计划。语言1(ICFP),9:1-9:15(2017)。数字对象标识代码:10.1145/3110253
[2] Benzaken,V.,Contejean,E.:现实SQL查询的Coq机械化形式语义:形式上协调SQL和bag关系代数。收录于:A.Mahboubi,M.O.Myreen(编辑)《第八届ACM SIGPLAN认证程序和证明国际会议论文集》,CPP 2019,葡萄牙卡斯凯斯,2019年1月14日至15日,第249-261页。ACM(2019)。数字对象标识代码:10.1145/3293880.3294107
[3] Benzaken,V.,Contejean,E.,Dumbrava,S.:关系数据模型的Coq形式化。摘自:《程序设计语言与系统——第23届欧洲程序设计研讨会》,ESOP 2014,作为欧洲软件理论与实践联合会议的一部分,ETAPS 2014,格勒诺布尔,法国,2014年4月5日至13日,会议记录,第189-208页(2014)。doi:10.1007/978-3-642-54833-8_11·Zbl 1405.68103号
[4] Buneman,P。;利布金,L。;苏秋(D.Suciu)。;Tannen,V。;Wong,L.,理解语法,SIGMOD Rec.,23,1,87-96(1994)·数字对象标识代码:10.1145/181550.181564
[5] Buneman,P.,Naqvi,S.,Tannen,V.,Wong,L.:使用复杂对象和集合类型进行编程的原则。西奥。计算。科学。149(1) (1995). doi:10.1016/0304-3975(95)00024-Q·兹比尔0874.68092
[6] Chu,S.,Weitz,K.,Cheung,A.,Suciu,D.:HoTTSQL:用单价SQL语义证明查询重写。收录于:PLDI,第510-524页。ACM(2017)。数字对象标识代码:10.1145/3062341.3062348
[7] Codd,EF,扩展数据库关系模型以获取更多含义,ACM Trans。数据库系统。,4, 4, 397-434 (1979) ·doi:10.1145/32107.320109
[8] Cooper,E.,Lindley,S.,Wadler,P.,Yallop,J.:链接:没有层次的网络编程。收录:FMCO(2007)。doi:10.1007/978-3-540-74792-5_12
[9] Franconi,E.,Tessaris,S.:关于SQL空值的逻辑。摘自:第六届阿尔贝托·门德尔松数据管理基础国际研讨会论文集,巴西乌罗普雷托,2012年6月27日至30日,第114-128页(2012年)。http://ceur-ws.org/Vol-866/paper8.pdf
[10] Ganski,R.A.,Wong,H.K.T.:重新审视嵌套SQL查询的优化。参见:SIGMOD,第23-33页。ACM,美国纽约州纽约市(1987年)。数字对象标识代码:10.1145/38713.38723
[11] Grant,J.,SQL中的Null值,SIGMOD Rec.,37,3,23-25(2008)·doi:10.1145/1462571.1462575
[12] Green,T.J.,Karvounarakis,G.,Tannen,V.:起源半环。摘自:PODS,第31-40页。ACM(2007)。数字对象标识代码:10.1145/1265530.1265535
[13] Guagliardo,Paolo;Leonid Libkin,《SQL查询的正式语义、验证和应用程序》,Proc。荷兰VLDB。,11, 1, 27-39 (2017) ·doi:10.14778/351113.3151116
[14] Kim,W.,《关于优化类SQL嵌套查询》,ACM Trans。数据库系统。,7, 3, 443-469 (1982) ·Zbl 0488.68064号 ·doi:10.1145/319732.319745
[15] Leroy,X.:编译器后端的正式认证,或者:使用校对助手对编译器进行编程。摘自:第33届ACM编程语言原理研讨会,第42-54页。ACM出版社(2006)。http://xavierleroy.org/publi/compiler-certif.pdf ·Zbl 1369.68124号
[16] Libkin,L.:《不完整数据:出了什么问题以及如何解决》,载于:第33届ACM SIGMOD-SIGACT-SIGART数据库系统原理研讨会论文集,PODS’14,美国犹他州雪鸟,2014年6月22日至27日,第1-13页(2014)。doi:10.145/2594538.2594561。doi:10.1145/2594538.2594561
[17] Libkin,L.:SQL的三值逻辑和某些答案。ACM事务处理。数据库系统。41(1), 1:1-1:28 (2016). 数字对象标识代码:10.1145/2877206·Zbl 1474.68108号
[18] Malecha,J.G.,Morrisett,G.,Shinnar,A.,Wisnesky,R.:走向一个经过验证的关系数据库管理系统。收录于:POPL,第237-248页(2010年)·Zbl 1312.68083号
[19] Ricciotti,W.:将结构绑定为抽象数据类型。2015年4月11日至18日,作为欧洲软件理论与实践联合会议的一部分,2015年ESOP第24届欧洲编程研讨会,ETAPS 2015,英国伦敦。会议记录,第762-786页(2015年)。doi:10.1007/978-3-662-46669-8_31·Zbl 1335.68153号
[20] Ricciotti,W.,Cheney,J.:混合集合和包语义。参见:DBPL,第70-73页(2019年)。doi:10.1145/3315507.333022
[21] Ricciotti,W.,Cheney,J.:强规范化高阶关系查询。在:Z.M.Ariola(编辑)第五届计算和推导形式结构国际会议(FSCD 2020),莱布尼茨国际信息学论文集(LIPIcs),第167卷,第28:1-28:22页。德国Dagstuhl-Leibniz-Zentrum für Informatik学校(2020年)。doi:10.4230/LIPIcs。FSCD.2020.28。https://drops.dagstuhl.de/opus/volltexte/2020/12350 ·Zbl 07596571号
[22] Ricciotti,W.,Cheney,J.:查询提升:异构嵌套集合的语言集成查询。In:编程语言和系统(ESOP 2021)。计算机科学课堂讲稿,第579-606页。施普林格国际出版公司(2021)。doi:10.1007/978-3-030-72019-3-21·Zbl 1473.68067号
[23] Rubinson,C.,《SQL中的空值、三值逻辑和模糊性:批判日期的批判》,SIGMOD Rec.,36,4,13-17(2007)·数字对象标识代码:10.1145/1361348.1361350
[24] 范德梅登,R.:不完全信息的逻辑方法:一项调查。摘自:J.Chomicki,G.Saake(编辑)《数据库和信息系统的逻辑》,第307-356页。Kluwer(1998)·Zbl 0903.68064号
[25] Wong,L.:集合类型上查询语言的范式和保守扩展属性。J.计算。系统。科学。52(3) (1996). doi:10.1006/jcss.1996.0037·兹比尔0861.68024
[26] Wong,L.:Kleisli,一个功能查询系统。J.功能。程序。10(1) (2000). doi:10.1017/S0956796899003585
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。