คำว่า "การฉายภาพ" หมายถึงอะไรในแบบสอบถาม SQL (หรือดูคำจำกัดความ)


15

ในเอกสารของ Oracle The Query Optimizerภายใต้View Mergingฉันพบข้อมูลต่อไปนี้

การเพิ่มประสิทธิภาพการรวมมุมมองนำไปใช้กับมุมมองที่มีเฉพาะการเลือกการคาดการณ์และการรวม นั่นคือมุมมองที่ผสานได้ไม่มีตัวดำเนินการตั้งค่าฟังก์ชันการรวม DISTINCT GROUP BY เชื่อมต่อ BY และอื่น ๆ (เน้นที่เหมือง)

แต่ฉันสามารถคาดเดาได้ว่าการฉายภาพตามความเป็นจริงหมายถึงอะไร

คำตอบ:


17

ในพีชคณิตเชิงสัมพันธ์การฉายภาพหมายถึงการรวบรวมชุดย่อยของคอลัมน์เพื่อใช้ในการดำเนินงานเช่นการฉายภาพคือรายการของคอลัมน์ที่เลือก

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

ในมุมมองการฉายภาพจะเท่ากับรายการของคอลัมน์ที่เลือกในคิวรีที่อ้างอิงมุมมอง


13

โปรเจคชั่นอ้างถึงเซตย่อยของชุดของคอลัมน์ทั้งหมดที่พบในตารางที่คุณต้องการส่งคืน มันสามารถช่วงได้ทุกที่ตั้งแต่ 0 ** จนถึงชุดสมบูรณ์

มีสอง "ชุด" ในตารางที่สอดคล้องกับสองมิติของตาราง ตารางแต่ละคนมีชุดของคอลัมน์เช่นเดียวกับชุดของแถว ค่าแต่ละค่าในตารางสามารถพบได้ที่จุดตัดเฉพาะของชุด * สองชุดนี้ ** อย่างไรก็ตามไม่พบค่าของคุณโดยการ "ไปที่" ที่อยู่เช่นT60เช่นเดียวกับที่คุณทำกับ Excel

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

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

ลองคิดดูราวกับว่านักศึกษาวิทยาลัยทำกระเป๋าเป้สะพายหลังของเขาหาย สมมติว่าชายคนหนึ่งหายไป เขาโทรหาคนที่หายไปและหญิงสาวที่มาร่วมงานพูดว่า "ใช่แล้วเรามีกระเป๋าเป้สะพายหลังสองโหลคุณช่วยอธิบายได้ไหม?" คุณพูดว่า "ดีมันเป็นสีฟ้า?" ซึ่งเธอตอบว่า "คุณกำลังขอให้ฉันหรือบอกฉัน" แล้วก็พูดว่า "ฉันมีสีน้ำเงินแปดอันเธอจะต้องทำดีกว่านั้น คุณพูดว่า "มาดูกันอืมอ๋อใช่แล้วมันมีหนังสือเลข 1010 ของฉันอยู่ข้างใน" "ดีตอนนี้คุณลดเหลือสี่คน" จากนั้นคุณจำได้ว่าคุณควรจะได้พบกับแฟนสาวของคุณลูซี่ในเวลา 15 นาทีและนั่นทำให้เกิดความทรงจำอีกครั้ง - ในเวลาที่คุณเบื่อในวิชาคณิตศาสตร์ 1010 และเขียนว่า - ในอักษรตัวเล็ก ๆ ที่ด้านล่างของกระเป๋าเป้สะพายหลัง " รักลูซี่ "Ricky "

การฉายภาพอาจเปรียบได้กับการพูดในสิ่งที่คุณทำไป - กระเป๋าเป้สะพายหลัง การเลือกอาจเปรียบได้กับการอธิบายคุณสมบัติของมัน: มันเป็นสีฟ้ามีหนังสือคณิตศาสตร์ 1,010 อยู่ด้านในและมี "I love Lucy" ที่อยู่ด้านล่าง

คุณทำสิ่งเดียวกันกับ SQL ก่อนอื่นคุณต้องการดูข้อมูลประเภทใด ประการที่สองเกณฑ์ที่จะอธิบายว่าคุณต้องการเห็นสิ่งใด เหล่านี้เรียกว่าภาคหรืองบจริง พวกเขาเป็นจริงสำหรับสมาชิกหนึ่งคนหรือมากกว่าในชุด หากไม่เป็นเช่นนั้นจะไม่ส่งคืนค่าใด ๆ

* การใช้งาน SQL ของผู้ขายบางรายนั้นหมายถึงการทำลายกฎเหล่านี้เช่น Nested Tables ใน Oracle อย่างไรก็ตามตารางสองมิติมาตรฐานยังคงเป็นรูปแบบที่เหนือกว่า

** CJ Date เขียนบทความที่น่าสนใจมาก ๆ ชื่อว่า "A Table With No Columns" ฉันพบว่ามันคุ้มค่าที่จะอ่านเพราะฉันทำบทความ "งานเขียน" ของเขามากมาย ฉันขอแนะนำพวกเขา!

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