×

具有基于判别的连接和符号笛卡尔积的通用多集编程。 (英语) Zbl 1232.68028号

摘要:本文介绍了GMP,这是一个用于多集合的通用SQL风格编程的库。它以多种方式概括了SQL的查询核心:多集可以包含任意一阶数据类型的元素,包括引用(指针)、递归数据类型和嵌套多集;它包含一种表达性的嵌入式领域专用语言,用于指定用户定义的等价和排序关系,扩展内置的相等和不等谓词;它允许在多集合上映射任意函数,而不仅仅是投影;它支持在选择中使用用户定义的谓词;它允许用户定义聚合函数。
最重要的是,它避免了在基于流的多集直接实现中发生的通过笛卡尔积的渐进低效嵌套迭代的许多情况。它通过使用两种新技术来实现这一点:多集合的符号(项)表示,特别是笛卡尔积,以促进动态符号计算,它将代数简化步骤与传统数据处理分散开来;以及基于区分的连接,这是一种基于等价鉴别器计算等连接的通用技术,是基于散列和排序的连接的替代方法。
Haskell中GMP的完整源代码基于通用自上而下的区分(不包括在内),用于实验。我们提供了一些示例,其性能表明,即使没有必要的算法和数据结构工程,GMP也是SQL的现实替代品,甚至对于SQL可表达查询也是如此。

MSC公司:

68甲19 其他编程范式(面向对象、顺序、并发、自动等)
第68页,共15页 数据库理论
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] Atkinson,M.P.,Buneman,O.P.:数据库编程语言中的类型和持久性。ACM计算。Surv公司。19(2), 105–170 (1987). http://doi.acm.org/10.1145/62070.45066 ·数字对象标识代码:10.1145/62070.45066
[2] Backhouse,R.:对Bird-Meertens形式主义的探索。In:STOP建构算法暑期学校(1989)
[3] Bentley,J.:编程珍珠:小语言。Commun公司。ACM 29(8),711-721(1986)。http://doi.acm.org/10.1145/6424.315691 ·数字对象标识代码:10.1145/6424.315691
[4] Breazu-Tannen,V.,Buneman,P.,Naqvi,S.:作为查询语言的结构递归。In:DBPL3:第三届数据库编程语言国际研讨会论文集:批量类型与;持久数据,第9-19页。Morgan Kaufmann,旧金山(1992)
[5] Buneman,P.,Nikhil,R.,Frankel,R.:数据库实用函数编程系统。摘自:《FPCA’81:1981年函数式编程语言和计算机体系结构会议记录》,第195-202页。ACM,纽约(1981年)。http://doi.acm.org/10.1145/800223.806779
[6] Buneman,P.,Frankel,R.E.,Nikhil,R.:数据库查询语言的实现技术。ACM事务处理。数据库系统。7(2),164–186(1982)。http://doi.acm.org/10.1145/319702.319711 ·数字对象标识代码:10.1145/319702.319711
[7] Buneman,P.,Naqvi,S.,Tannen,V.,Wong,L.:使用复杂对象和集合类型进行编程的原则。收录于:ICDT'92:第四届数据库理论国际会议论文集。爱思唯尔,阿姆斯特丹,第3-48页(1995年)。doi:10.1016/0304-3975(95)00024-Q·Zbl 0874.68092号
[8] Chamberlin,D.:SQL。收录:数据库系统百科全书,第1版。施普林格,柏林(2009)
[9] Chaudhuri,S.:关系系统中查询优化的概述。摘自:PODS,第34-43页。纽约ACM出版社(1998年)
[10] Cheney,J.、Hinze,R.:第一类幻影类型。CUCIS TR2003-1901。康奈尔大学(2003)
[11] Cooper,E.,Lindley,S.,Wadler,P.,Yallop,J.:链接:没有层次的网络编程。摘自:第五届组件和对象形式方法国际会议记录,第266-296页。柏林施普林格出版社(2006)
[12] Dean,J.,Ghemawat,S.:MapReduce:大型集群上的简化数据处理。收录于:OSDI,第137-150页(2004年)
[13] Deshpande,A.,Ives,Z.,Raman,V:自适应查询处理。已找到。趋势数据库1(1),1-140(2007)。数字对象标识代码:10.1561/1900000001·Zbl 1198.68127号 ·数字对象标识代码:10.1561/1900000001
[14] O.Eini:实现LINQ提供程序的痛苦。Commun公司。ACM 54(8),55–61(2011)。http://doi.acm.org/10.1145/1978542.1978556 ·doi:10.1145/1978542.1978556
[15] 芬兰,S.:MySQL的世界数据库。MySQL.com(2010)提供了示例数据库。http://downloads.mysql.com/docs/world.sql.zip,世界数据库中使用的样本数据是芬兰版权统计局,http://www.stat.fi/worldinfigures网站
[16] GHC团队:格拉斯哥-哈斯克尔编译器(2011)。http://www.haskell.org/ghc/
[17] Goyal,D.,Paige,R.:威拉德关系演算子集线性时间片段的形式化重建和加速。摘自:IFIP TC 2 WG 2.1算法语言和微积分国际研讨会论文集,第382-414页。查普曼&霍尔,伦敦(1997)
[18] Graefe,G.:大型数据库的查询评估技术。ACM计算。Surv公司。25(2), 73–169 (1993). http://doi.acm.org/10.1145/152610152611 ·数字对象标识代码:10.1145/152610.152611
[19] Grust,T.、Sakr,S.、Teubner,J.:SQL主机上的XQuery。见:《第三十届超大数据库国际会议记录》,第30卷,第263页。VLDB捐赠(2004年)
[20] Grust,T.,Mayr,M.,Rittinger,J.,Schreiber,T.:Ferry:数据库支持的程序执行。收录于:联合国圣安东尼梅尔、S.B.兹多尼克、D.科斯曼、N.塔特布尔(编辑)SIGMOD会议,第1063-1066页。ACM,纽约(2009)
[21] Grust,T.、Rittinger,J.、Schreiber,T.:雪崩安全LINQ编译。程序。荷兰VLDB。3, 162–172 (2010). http://dl.acm.org/citation.cfm?id=1920841.1920866
[22] Henglein,F.:一般判别:在线性时间中对非共享数据进行排序和分区。摘自:Hook,J.,Thiemann,P.(eds.)ICFP'08:第13届ACM SIGPLAN函数式编程国际会议记录,第91-102页。ACM,纽约(2008)。http://doi.acm.org/10.1145/1411204.141220 ·Zbl 1323.68247号
[23] Henglein,F.:线性时间中排序和划分的通用自上而下判别法。哥本哈根大学(DIKU)计算机科学系技术代表提交给《函数编程杂志》(JFP)(2010)·Zbl 1311.68046号
[24] Henglein,F.:使用基于区分的联接和惰性积优化关系代数操作。摘自:Proc ACM SIGPLAN 2010部分评估和程序操作研讨会,第73-82页。ACM,纽约(2010年)。http://doi.acm.org/10.1145/1706356.1706372,也是DIKU TOPPS D报告编号611
[25] Henglein,F.,Larsen,K.F.:语言集成查询的通用多集编程。In:程序。第六届通用编程研讨会(2010年)·Zbl 1232.68028号
[26] Hudak,P.,Fasel,J.H.:哈斯克尔98版的简介。http://www.haskell.org/tutorial,在线教程(1999)
[27] Jain,N.、Mishra,S.、Srinivasan,A.、Gehrke,J.、Widom,J.,Balakrishnan,H.、Jo etintemel,U.、Cherniack,M.、Tibbetts,R.、Zdonik,S.:走向流式sql标准。程序。荷兰VLDB。1(2), 1379–1390 (2008)
[28] Leijen,D.,Meijer,E.:特定领域的嵌入式编译器。收录于:美国加州伯克利USENIX协会第二届领域特定语言会议记录,德克萨斯州奥斯汀,第109-122页(1999)
[29] Lindley,S.、Wadler,P.、Yallop,J.、Cooper,E.:链接:网络理论与实践的联系(2009)。http://groups.inf.ed.ac.uk/链接/
[30] Meijer,E.,Beckman,B.,Bierman,G.:LINQ:协调中的对象、关系和XML。NET Framework.In:过程。SIGMOD(2006)
[31] Ohori,A.:数据库中的顺序和类型。在:Bancilhon,F.,Buneman,P.(编辑)《数据库编程语言的进展》,前沿系列,第97–116页。Addison-Wesley,ACM出版社,雷丁,纽约(1990),第6章
[32] Ohori,A.,Buneman,P.:数据库编程语言中的类型推断。In:程序。1988年ACM LISP和函数编程会议,第174-183页。纽约ACM出版社(1988)
[33] 奥沙利文,B.:标准包(2010年)。可从以下位置获得http://hackage.haskell.org/package/critority
[34] Peyton Jones,S.:哈斯克尔98语言。J.功能。程序。13(1), 1–146 (2003) ·Zbl 1067.68041号
[35] Peyton Jones,S.,Wadler,P.:综合理解。In:程序。2007哈斯克尔研讨会,德国弗赖堡(2007年)
[36] Ramakrishnan,R.,Gehrke,J.:数据库管理系统,第3版。McGraw-Hill,纽约(2003)·Zbl 1058.68050号
[37] Selinger,P.G.、Astrahan,M.M.、Chamberlin,D.D.、Lorie,R.A.、Price,T.G.:关系数据库管理系统中的访问路径选择。摘自:1979年ACM SIGMOD国际数据管理会议记录。SIGMOD’79,第23-34页。ACM,纽约(1979年)。http://doi.acm.org/10.1145/582095.582099
[38] Skillicorn,D.:建筑相关并行计算,在英国伯顿庄园IFIP WG2.1会议上提出(1990)
[39] Steele,G.:组织并行执行的功能代码;或者,foldl和foldr被认为是轻微有害的。In:程序。ICFP 2009(2009),受邀演讲
[40] Stonebraker,M.、Abadi,D.J.、Batkin,A.、Chen,X.、Cherniack,M.和Ferreira,M.,Lau,E.,Lin,A.,Madden,S.,O'Neil,E.,O'尼尔,P.,Rasin,A.和Tran,N.,Zdonik,S.:C-Store:面向专栏的DBMS。In:Proc。挪威特隆赫姆第31届VLDB会议(2005年)
[41] Tannen,V.,Buneman,P.,Wong,L.:自然嵌入查询语言。收录于:ICDT'92:第四届数据库理论国际会议论文集,第140-154页。施普林格,伦敦(1992)
[42] Trinder,P.,Wadler,P.:列出理解和关系演算。摘自:《1988年格拉斯哥函数编程研讨会论文集》,苏格兰罗塞塞,第115-123页(1988)
[43] Trinder,P.,Wadler,P.:改进列表理解数据库查询。包含:TENCON’89。第四届IEEE地区10国际会议,印度孟买,第186-192页。IEEE,纽约(1989)。doi:10.1109/TENCON.1989.176921
[44] Wadler,P.:理解单子。数学。结构。计算。科学。2, 461–493 (1992) ·Zbl 0798.68040号 ·doi:10.1017/S0960129500001560
[45] Willard,D.E.:范围查询理论在关系数据库连接和选择操作中的应用。J.计算。系统。科学。52(1), 157–169 (1996). doi:10.1006/jcss.1996.0012·Zbl 0846.68030号 ·文件编号:10.1006/jcss.1996.0012
[46] Willard,D.E.:高效处理许多关系演算查询的算法。J.计算。系统。科学。65(2), 295–331 (2002). doi:10.1006/jcss.2002.1848·Zbl 1059.68026号 ·文件编号:10.1006/jcss.2002.1848
[47] Wong,L.:查询嵌套集合。宾夕法尼亚大学博士论文(1994年)
[48] Wong,L.:Kleisli,一个功能查询系统。J.功能。程序。10(1):19–56 (2000) ·doi:10.1017/S0956796899003585
[49] Xi、H.、Chen、C.、Chen和G.:保护递归数据类型构造函数。摘自:第30届ACM SIGPLAN-SIGACT编程语言原理研讨会论文集,第224-235页。ACM,纽约(2003)·Zbl 1321.68161号
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。