พีชคณิตเชิงสัมพันธ์
ระบบฐานข้อมูลเชิงสัมพันธ์คาดว่าจะมีภาษาแบบสอบถามที่สามารถช่วยผู้ใช้ในการสืบค้นอินสแตนซ์ฐานข้อมูล ภาษาแบบสอบถามมีสองประเภท ได้แก่ พีชคณิตเชิงสัมพันธ์และแคลคูลัสเชิงสัมพันธ์
พีชคณิตเชิงสัมพันธ์
พีชคณิตเชิงสัมพันธ์เป็นภาษาแบบสอบถามขั้นตอนซึ่งใช้อินสแตนซ์ของความสัมพันธ์เป็นอินพุตและให้อินสแตนซ์ของความสัมพันธ์เป็นเอาต์พุต ใช้ตัวดำเนินการเพื่อดำเนินการสืบค้น ตัวดำเนินการสามารถเป็นได้unary หรือ binary. พวกเขายอมรับความสัมพันธ์เป็นอินพุตและความสัมพันธ์ผลตอบแทนเป็นผลลัพธ์ พีชคณิตเชิงสัมพันธ์จะดำเนินการแบบวนซ้ำบนความสัมพันธ์และผลลัพธ์ระดับกลางถือเป็นความสัมพันธ์ด้วย
การดำเนินการพื้นฐานของพีชคณิตเชิงสัมพันธ์มีดังนี้ -
- Select
- Project
- Union
- ตั้งค่าที่แตกต่างกัน
- ผลิตภัณฑ์คาร์ทีเซียน
- Rename
เราจะพูดถึงการดำเนินการทั้งหมดนี้ในส่วนต่อไปนี้
เลือกการทำงาน (σ)
เลือกสิ่งที่เป็นไปตามเพรดิเคตที่กำหนดจากความสัมพันธ์
Notation- σ พี (r)
ที่ไหน σ หมายถึงเพรดิเคตการเลือกและ rหมายถึงความสัมพันธ์ pคือสูตรลอจิกบุพบทซึ่งอาจใช้ตัวเชื่อมต่อเช่นand, or, และ not. คำศัพท์เหล่านี้อาจใช้ตัวดำเนินการเชิงสัมพันธ์เช่น - =, ≠, ≥, <,>, ≤
For example -
σsubject = "database"(Books)
Output - เลือก tuples จากหนังสือที่หัวเรื่องคือ 'ฐานข้อมูล'
σsubject = "database" and price = "450"(Books)
Output - เลือก tuples จากหนังสือที่หัวเรื่องคือ 'ฐานข้อมูล' และ 'price' คือ 450
σsubject = "database" and price = "450" or year > "2010"(Books)
Output - เลือก tuples จากหนังสือที่หัวเรื่องคือ 'ฐานข้อมูล' และ 'ราคา' คือ 450 หรือหนังสือที่ตีพิมพ์หลังปี 2010
การดำเนินโครงการ (∏)
มันโครงการคอลัมน์ที่ตรงตามเพรดิเคตที่กำหนด
สัญกรณ์ - ∏ A 1 , A 2 , A n (r)
โดยที่ A 1 , A 2 , A nคือชื่อแอตทริบิวต์ของความสัมพันธ์r.
แถวที่ซ้ำกันจะถูกกำจัดโดยอัตโนมัติเนื่องจากความสัมพันธ์เป็นชุด
For example -
∏subject, author (Books)
เลือกและโครงการคอลัมน์ที่มีชื่อเป็นหัวเรื่องและผู้แต่งจากหนังสือความสัมพันธ์
การดำเนินการของสหภาพ (∪)
ทำการรวมไบนารีระหว่างสองความสัมพันธ์ที่กำหนดและถูกกำหนดให้เป็น -
r ∪ s = { t | t ∈ r or t ∈ s}
Notation - r U s
ที่ไหน r และ s เป็นทั้งความสัมพันธ์ฐานข้อมูลหรือชุดผลลัพธ์ความสัมพันธ์ (ความสัมพันธ์ชั่วคราว)
เพื่อให้การดำเนินการของสหภาพมีผลบังคับใช้ต้องมีเงื่อนไขต่อไปนี้ -
- rและ s ต้องมีแอตทริบิวต์จำนวนเท่ากัน
- โดเมนแอตทริบิวต์ต้องเข้ากันได้
- สิ่งที่ซ้ำกันจะถูกกำจัดโดยอัตโนมัติ
∏ author (Books) ∪ ∏ author (Articles)
Output - ฉายชื่อผู้แต่งที่เขียนหนังสือหรือบทความหรือทั้งสองอย่าง
ตั้งค่าความแตกต่าง (-)
ผลลัพธ์ของการดำเนินการตั้งค่าความแตกต่างคือทูเปิลซึ่งมีอยู่ในความสัมพันธ์เดียว แต่ไม่อยู่ในความสัมพันธ์ที่สอง
Notation - r - s
ค้นหาสิ่งที่มีอยู่ทั้งหมดที่มีอยู่ r แต่ไม่เข้า s.
∏ author (Books) − ∏ author (Articles)
Output - ระบุชื่อผู้แต่งที่เขียนหนังสือ แต่ไม่ใช่บทความ
ผลิตภัณฑ์คาร์ทีเซียน (Χ)
รวมข้อมูลของสองความสัมพันธ์ที่แตกต่างกันเป็นหนึ่งเดียว
Notation - rΧs
ที่ไหน r และ s เป็นความสัมพันธ์และผลลัพธ์ของพวกเขาจะถูกกำหนดเป็น -
r Χ s = {qt | q ∈ r และ t ∈ s}
σauthor = 'tutorialspoint'(Books Χ Articles)
Output - ให้ความสัมพันธ์ซึ่งแสดงหนังสือและบทความทั้งหมดที่เขียนโดย tutorialspoint
เปลี่ยนชื่อการดำเนินการ (ρ)
ผลลัพธ์ของพีชคณิตเชิงสัมพันธ์ยังมีความสัมพันธ์ แต่ไม่มีชื่อใด ๆ การดำเนินการเปลี่ยนชื่อช่วยให้เราสามารถเปลี่ยนชื่อความสัมพันธ์ของเอาต์พุตได้ การดำเนินการ 'เปลี่ยนชื่อ' แสดงด้วยอักษรกรีกตัวเล็กrho ρ .
Notation- ρ x (E)
ที่ผลลัพธ์ของการแสดงออก E ถูกบันทึกด้วยชื่อของ x.
การดำเนินการเพิ่มเติมคือ -
- กำหนดจุดตัด
- Assignment
- เข้าร่วมตามธรรมชาติ
แคลคูลัสเชิงสัมพันธ์
ตรงกันข้ามกับพีชคณิตเชิงสัมพันธ์แคลคูลัสเชิงสัมพันธ์เป็นภาษาแบบสอบถามที่ไม่ใช่ขั้นตอนกล่าวคือบอกว่าต้องทำอะไร แต่ไม่เคยอธิบายวิธีการทำ
แคลคูลัสเชิงสัมพันธ์มีอยู่สองรูปแบบ -
แคลคูลัสเชิงสัมพันธ์ทูเพิล (TRC)
การกรองช่วงตัวแปรเหนือสิ่งทอ
Notation- {T | เงื่อนไข}
ส่งคืนสิ่งทอทั้งหมด T ที่เป็นไปตามเงื่อนไข
For example -
{ T.name | Author(T) AND T.article = 'database' }
Output - ส่งคืนสิ่งที่มี 'ชื่อ' จากผู้เขียนที่เขียนบทความเกี่ยวกับ 'ฐานข้อมูล'
TRC สามารถหาปริมาณได้ เราสามารถใช้ Existential (∃) และ Universal Quantifiers (∀)
For example -
{ R| ∃T ∈ Authors(T.article='database' AND R.name=T.name)}
Output - ข้อความค้นหาข้างต้นจะให้ผลลัพธ์เช่นเดียวกับคำค้นหาก่อนหน้านี้
แคลคูลัสเชิงสัมพันธ์ของโดเมน (DRC)
ใน DRC ตัวแปรการกรองจะใช้โดเมนของแอตทริบิวต์แทนค่าทูเพิลทั้งหมด (ดังที่ทำใน TRC ที่กล่าวถึงข้างต้น)
Notation -
{ก1 , 2 , 3 , ... , n | P (ก1เป็น2เป็น3 ... เป็นn )}
โดยที่ a1, a2 คือแอตทริบิวต์และ P ย่อมาจากสูตรที่สร้างขึ้นโดยคุณลักษณะภายใน
For example -
{< article, page, subject > | ∈ TutorialsPoint ∧ subject = 'database'}
Output - ให้บทความหน้าและหัวเรื่องจากความสัมพันธ์ TutorialsPoint โดยที่หัวเรื่องเป็นฐานข้อมูล
เช่นเดียวกับ TRC DRC สามารถเขียนโดยใช้ตัวระบุอัตถิภาวนิยมและสากล DRC ยังเกี่ยวข้องกับตัวดำเนินการเชิงสัมพันธ์
พลังการแสดงออกของแคลคูลัส Tuple Relation และ Domain Relation Calculus เทียบเท่ากับ Relational Algebra