คำถามติดแท็ก relational-algebra

3
เคียวรีย่อยเพิ่มพลังการแสดงออกให้กับเคียวรี SQL หรือไม่?
SQL ต้องการเคียวรีย่อยหรือไม่? ลองนึกภาพการนำภาษาคิวรีที่มีโครงสร้างมาใช้อย่างพอเพียงสำหรับฐานข้อมูลที่เกี่ยวข้อง เนื่องจากโครงสร้างของSELECTคำสั่งcanonical SQL นั้นค่อนข้างสำคัญสำหรับเรื่องนี้ฉันจึงไม่สนใจโดยตรงกับพีชคณิตเชิงสัมพันธ์ แต่คุณสามารถใส่กรอบนี้ในเทอมเหล่านั้นโดยกำหนดข้อ จำกัด ที่เหมาะสมในรูปแบบของนิพจน์ SQL แบบSELECTแบบสอบถามโดยทั่วไปประกอบด้วยการฉาย (คนSELECTส่วน) จำนวนบางส่วนของJOINการดำเนินงาน (คนJOINส่วน) จำนวนของSELECTION การดำเนินงาน (ใน SQL ที่WHEREคำสั่ง) และจากนั้นตั้งฉลาดการดำเนินงาน ( UNION, EXCEPT, INTERSECTฯลฯ ) ตามมาด้วยอีกSELECTแบบสอบถามSQL ตารางที่เข้าร่วมสามารถเป็นผลลัพธ์ของนิพจน์ที่คำนวณได้ กล่าวอีกนัยหนึ่งเราสามารถมีคำสั่งเช่น: SELECT t1.name, t2.address FROM table1 AS t1 JOIN (SELECT id, address FROM table2 AS t3 WHERE t3.id = t1.id) AS t2 WHERE …

2
เหตุใด C ประเภทโมฆะจึงไม่คล้ายกับประเภทที่ว่าง / ด้านล่าง
Wikipedia ตลอดจนแหล่งข้อมูลอื่น ๆ ที่ฉันได้พบรายการvoidประเภทC เป็นหน่วยประเภทซึ่งตรงข้ามกับประเภทที่ว่างเปล่า ฉันพบว่ามันสับสนเพราะฉันคิดว่าvoidเหมาะกับนิยามของประเภทที่ว่าง / ล่าง ไม่มีค่านิยมใด ๆ อยู่voidเท่าที่ฉันจะบอกได้ ฟังก์ชั่นที่มีประเภทคืนค่าเป็นโมฆะระบุว่าฟังก์ชั่นจะไม่ส่งคืนสิ่งใดดังนั้นจึงสามารถทำงานได้เพียงผลข้างเคียงเท่านั้น ตัวชี้ชนิดvoid*เป็นชนิดย่อยของชนิดตัวชี้อื่นทั้งหมด นอกจากนี้การแปลงไปยังและจากvoid*ใน C นั้นเป็นนัย ผมไม่แน่ใจว่าถ้าจุดสุดท้ายมีบุญใด ๆ ที่เป็นข้อโต้แย้งสำหรับvoidการเป็นประเภทที่ว่างเปล่าเป็นมากหรือน้อยเป็นกรณีพิเศษที่มีความสัมพันธ์ไม่มากที่จะvoid*void ในทางกลับกันvoidตัวมันเองไม่ใช่ประเภทย่อยของประเภทอื่นทั้งหมดซึ่งเท่าที่ฉันสามารถบอกได้ว่าเป็นข้อกำหนดสำหรับประเภทที่จะเป็นประเภทด้านล่าง
28 type-theory  c  logic  modal-logic  coq  equality  coinduction  artificial-intelligence  computer-architecture  compilers  asymptotics  formal-languages  asymptotics  landau-notation  asymptotics  turing-machines  optimization  decision-problem  rice-theorem  algorithms  arithmetic  floating-point  automata  finite-automata  data-structures  search-trees  balanced-search-trees  complexity-theory  asymptotics  amortized-analysis  complexity-theory  graphs  np-complete  reductions  np-hard  algorithms  string-metrics  computability  artificial-intelligence  halting-problem  turing-machines  computation-models  graph-theory  terminology  complexity-theory  decision-problem  polynomial-time  algorithms  algorithm-analysis  optimization  runtime-analysis  loops  turing-machines  computation-models  recurrence-relation  master-theorem  complexity-theory  asymptotics  parallel-computing  landau-notation  terminology  optimization  decision-problem  complexity-theory  polynomial-time  counting  coding-theory  permutations  encoding-scheme  error-correcting-codes  machine-learning  natural-language-processing  algorithms  graphs  social-networks  network-analysis  relational-algebra  constraint-satisfaction  polymorphisms  algorithms  graphs  trees 

6
การสร้างชุดค่าผสมจากชุดคู่โดยไม่มีการทำซ้ำองค์ประกอบ
ฉันมีชุดของคู่ แต่ละคู่เป็นรูปแบบ (x, y) เช่นว่า x, y [0,n)เป็นจำนวนเต็มจากช่วง ดังนั้นถ้า n คือ 4 ดังนั้นฉันมีคู่ต่อไปนี้: (0,1) (0,2) (0,3) (1,2) (1,3) (2,3) ฉันมีคู่แล้ว ตอนนี้ฉันต้องสร้างชุดค่าผสมโดยใช้n/2คู่ที่ไม่มีจำนวนเต็มซ้ำ (กล่าวอีกอย่างหนึ่งว่าจำนวนเต็มแต่ละค่าปรากฏอย่างน้อยหนึ่งครั้งในชุดค่าผสมสุดท้าย) ต่อไปนี้เป็นตัวอย่างของชุดค่าผสมที่ถูกต้องและไม่ถูกต้องเพื่อความเข้าใจที่ดีขึ้น 1. (0,1)(1,2) [Invalid as 3 does not occur anywhere] 2. (0,2)(1,3) [Correct] 3. (1,3)(0,2) [Same as 2] มีคนแนะนำฉันถึงวิธีในการสร้างชุดค่าผสมที่เป็นไปได้ทั้งหมดเมื่อฉันมีคู่

2
การดำเนินการ 'ความแตกต่าง' เพิ่มความหมายให้กับภาษาคิวรีที่มี 'เข้าร่วม' อยู่แล้วหรือไม่?
ตัวดำเนินการที่ตั้งค่าความแตกต่าง (เช่นEXCEPTในตัวแปร SQL บางตัว) เป็นหนึ่งในตัวดำเนินการพื้นฐานจำนวนมากของพีชคณิตเชิงสัมพันธ์ อย่างไรก็ตามมีฐานข้อมูลบางอย่างที่ไม่สนับสนุนตัวดำเนินการความแตกต่างโดยตรง แต่การสนับสนุนLEFT JOIN(ชนิดของการรวมภายนอก) และในทางปฏิบัติสามารถใช้แทนการตั้งค่าความแตกต่างเพื่อให้ได้ผลเช่นเดียวกัน สิ่งนี้หมายความว่าพลังการแสดงออกของภาษาแบบสอบถามเหมือนกันแม้ว่าจะไม่มีตัวดำเนินการความแตกต่างที่กำหนดไว้ตราบใดที่LEFT JOINยังคงมีการใช้งานตัวดำเนินการอยู่ เราจะพิสูจน์ความจริงข้อนี้ได้อย่างไร?

1
มีทฤษฎีมอร์ฟ (isomorphism) ระหว่างหมวดหมู่ย่อยกับพีชคณิตเชิงสัมพันธ์หรือไม่?
มันมาจากมุมมองข้อมูลขนาดใหญ่ โดยทั่วไปเฟรมเวิร์กจำนวนมาก (เช่น Apache Spark) "ชดเชย" ขาดการดำเนินการเชิงสัมพันธ์ด้วยการจัดหาอินเทอร์เฟซเหมือน Functor / Monad และมีการเคลื่อนไหวที่คล้ายกันต่อการแปลง cat-to-SQL (Slick in Scala) ตัวอย่างเช่นเราต้องการการเข้าร่วมที่เป็นธรรมชาติ (สมมติว่าไม่มีการซ้ำซ้อนกับดัชนี) สำหรับการคูณเวกเตอร์องค์ประกอบที่ชาญฉลาดจากมุมมอง SQL ซึ่งอาจถือได้ว่าเป็นzip + map(multiply) (Spark's MLib แต่มีอยู่แล้วElementwiseProduct)ในแอปพลิเคชันของทฤษฎีหมวดหมู่ เพียงแค่พูด (ตัวอย่างต่อไปนี้อยู่ใน Scala): subcase อ้างอิงของเข้าร่วมอาจจะคิดว่าเป็น functor applicative (คอลเลกชันเรียงมากกว่า) ซึ่งในทางกลับกันมันจะช่วยให้เราzip: ->List(1,2,3).ap(List(2,4,8).map(a => (b: Int) => a * b)) (List(1,2,3) zip List(2,4,8)).map(x => x._1 * x._2)ยิ่งไปกว่านั้นเราสามารถชักจูงให้ผู้อื่นเข้าร่วมโดยสมมติว่ามีgroupByการดำเนินการล่วงหน้า การเข้าร่วมและการเลือกอื่น …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.