มีความสัมพันธ์ระหว่างพีชคณิตเชิงสัมพันธ์ / แคลคูลัสและทฤษฎีหมวดหมู่หรือไม่?


17

ฉันตระหนักถึงวิธีการเชิงทฤษฎีอย่างน้อยสองวิธีในการทำความเข้าใจฐานข้อมูลเชิงสัมพันธ์: พีชคณิต / แคลคูลัสเชิงสัมพันธ์และทฤษฎีหมวดหมู่

มีความสัมพันธ์ระหว่างสองแนวทางนี้หรือไม่? พวกเขามีความรู้สึกที่เท่าเทียมกันบ้างไหม? มีงานเบื้องต้นอธิบายว่ากรอบงานทั้งสองอธิบายฐานข้อมูลเชิงสัมพันธ์ได้อย่างไร

ข้อมูลประกอบ: ไม่นานมานี้ฉันอ่านทฤษฎีหมวดหมู่ของ David Spivak สำหรับนักวิทยาศาสตร์ซึ่งใช้เวลาค่อนข้างนานในการอภิปรายว่าจะใช้ทฤษฎีหมวดหมู่เพื่อทำความเข้าใจทฤษฎีฐานข้อมูลเชิงสัมพันธ์ได้อย่างไร อย่างไรก็ตามการมีประสบการณ์ส่วนตัวเล็กน้อยเกี่ยวกับฐานข้อมูลเชิงสัมพันธ์คืออะไรหรือเหตุใดจึงมีประโยชน์ในขณะนั้นฉันไม่ได้ชื่นชมความลึกของข้อมูลเชิงลึกที่พบในหนังสือ

อย่างไรก็ตามเมื่อเร็ว ๆ นี้ผมได้เรียนรู้เกี่ยวกับSQLคำสั่งและสองRแพคเกจสำหรับการจัดการข้อมูล: dplyrและdata.table เห็นได้ชัดว่า SQL สามารถแสดงมากความคิดของของ Codd สัมพันธ์พีชคณิต / แคลคูลัส / รุ่น แต่ไม่ทั้งหมด นอกจากนี้ผู้เขียน dplyr นาย Hadley Wickham ได้กล่าวอย่างชัดเจนว่าปรัชญาของเขาที่มีพื้นฐานมาจากบรรจุภัณฑ์นั้นมาจากการทำงานของ Codd ในพีชคณิตเชิงสัมพันธ์และคำสั่งพื้นฐานของdata.table map ค่อนข้างดีสำหรับคำสั่งใน SQL และ dplyr

ฉันยังรู้ว่าทฤษฎีหมวดหมู่มีอิทธิพลต่อโปรแกรมเมอร์จำนวนมากที่ใช้ภาษาโปรแกรมการทำงานเช่น Haskell แต่ฉันไม่ได้จริงๆตระหนักถึงการมีการใช้งานของโปรแกรมการทำงานสำหรับการจัดการข้อมูลหรือวิทยาศาสตร์ข้อมูลนอกเหนือจากฮัดลีย์วิคแฮมใด ๆpurrrแพคเกจสำหรับ R, ความจริงที่ว่าApache SparkถูกเขียนในScalaและเทคโนโลยีที่เกี่ยวข้องกับการMapReduce

ทั้งหมดนี้แสดงให้ฉันเห็นว่าควรมีความสัมพันธ์ระหว่างทฤษฎีหมวดหมู่กับพีชคณิต / แคลคูลัสเชิงสัมพันธ์ของ Codd แต่ฉันไม่เคยได้ยินใครที่เชื่อมต่ออย่างชัดเจนหรืออธิบายการออกแบบการจัดการข้อมูลที่ได้รับความนิยม และเทคโนโลยีฐานข้อมูลเชิงสัมพันธ์ ดังนั้นฉันจึงสงสัยว่าฉันอาจผิดทั้งหมดด้วย

แก้ไข:เห็นได้ชัดว่าเดวิดสปิแว็กทำงานเกี่ยวกับ " ภาษาสืบค้นแบบ functorial (FQL) " ดูเหมือนว่ามันอาจจะเป็นแอพพลิเคชั่นของการเชื่อมต่อเชิงทฤษฎีหากมีอยู่

หมายเหตุ:ฉันไม่แน่ใจว่า "โครงสร้างเชิงสัมพันธ์" เป็นแท็กที่เหมาะสมสำหรับการอภิปรายฐานข้อมูลเชิงสัมพันธ์หรือเชิงพีชคณิต / แคลคูลัส บทความ Wikipedia นี้แสดงให้เห็นว่าพวกเขาอาจมีการเชื่อมต่อ แต่ท้ายที่สุดฉันไม่รู้ว่าวลี "โครงสร้างเชิงสัมพันธ์" หมายถึงอะไร โปรดติดแท็กใหม่อีกครั้ง


2
คุณเคยเห็นผลงานของ Tannen และ Buneman เช่นA Structure Approach ในการออกแบบภาษา Queryหรือไม่?
reinierpost

@reierierpost ฉันไม่ได้ แต่ฉันจะดู
Chill2Macht

คำตอบ:


12

วิธีการอย่างมีหมวดหมู่ในการค้นหาภาษาเป็นบิตของความสนใจเฉพาะกลุ่ม แต่ฉันคิดว่ามันเป็นช่องที่น่าสนใจมาก!

สองตัวเลขที่สำคัญในบริเวณนี้เป็นปีเตอร์บูเนแมนและTorsten Grust เห็นได้ชัดว่าพวกเขาไม่ได้ทำงานทั้งหมด แต่ถ้าคุณเริ่มต้นด้วยเอกสารของพวกเขาและติดตามกราฟอ้างอิงคุณจะได้รับความคุ้มครองที่ดีพอสมควร

ข้อสังเกตจากส่วนกลางที่พวกเขาทำงานคือเนื่องจากความสัมพันธ์สามารถถูกมองว่าเป็นชุดของ tuples, powerset functor สามารถตีความได้ว่าเป็นการใช้ tuple แบบชนิดของความสัมพันธ์กับ tuple นั้น จากนั้นความจริงที่ว่า powerset functor ก่อตัวเป็น monad หมายความว่าคุณสามารถใช้ความคิดที่ได้แรงบันดาลใจจากไวยากรณ์ comprehension monad ของ Philip Wadlerเพื่อให้แคลคูลัสที่ได้รับแรงบันดาลใจจากการจัดหมวดหมู่สำหรับการสืบค้นด้วยทฤษฎีสมการที่อุดมไปด้วย

อันที่จริงระบบสืบค้นของ Buneman และคณะKleisliได้ชื่อมาจากข้อเท็จจริงที่ว่าพระบางครั้งเรียกว่า "Kleisli triples"

วิทยานิพนธ์ระดับปริญญาเอกของ Grust, ข้อความค้นหาที่เข้าใจได้ทำให้ความคิดเหล่านี้มีรายละเอียดรวมถึงการใช้ morphisms monad กับผู้ดำเนินการรวมแบบจำลอง (เช่นsumและcount) Grust และกลุ่มของเขาได้สร้างระบบFerryซึ่งศึกษาวิธีรวมฐานข้อมูลเข้ากับภาษาโปรแกรม

():P(X)×P(Y)P(X×Y)μ:P(P(X))P(X)

นั่นอาจเป็นกระแสหลักของงานเกี่ยวกับวิธีการจัดหมวดหมู่ของภาษาคิวรี

ความคิดใหม่ (ซึ่งน่าเสียดายที่ไม่ได้อากาศเป็นแรงฉุดมากที่สุดเท่าที่ผมคิดว่ามันสมควร) เป็นผลงานของเดวิดสปิแว็กส์เกี่ยวกับการใช้ชุด simplicial ไปยังฐานข้อมูลรุ่น - ดูsimplicial ฐานข้อมูล นวัตกรรมกลางคือโครงสร้างแบบง่ายอนุญาตให้สร้างแบบจำลองฐานข้อมูลทั้งหมดอย่างชัดเจนรวมถึงความสัมพันธ์ระหว่างตาราง (เช่นระบบของกุญแจต่างประเทศ) และสิ่งนี้ช่วยให้การดำเนินการปรับปรุงความหมายของสคีมา

การเบี่ยงเบนจากภาษาคิวรีมาตรฐานอื่นคือภาษาการเขียนโปรแกรมแบบลอจิคัลที่ จำกัด เช่น Datalog ซึ่งสามารถเข้าใจได้ว่าเป็นพีชคณิตเชิงสัมพันธ์ คะแนนคงที่อนุญาตให้แสดงสิ่งต่าง ๆ เช่นคิวรีแบบปิดเพื่อถ่ายทอดข้อมูลและฐานข้อมูลใหม่เช่นภาษาคิวรีคุณลักษณะของข้อมูลตาม Datalog นักเรียนปริญญาเอกของฉันMichael Arntzeniusและฉันได้ศึกษาความหมายของ Datalog และเกิดอะนาล็อกที่ใช้งานได้ที่เราเรียกว่าDatafunซึ่งมีการตีความอย่างชัดเจนในแง่ของหมวดหมู่ของ posets และ semilattices

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.