พีชคณิตเชิงสัมพันธ์

ระบบฐานข้อมูลเชิงสัมพันธ์คาดว่าจะมีภาษาแบบสอบถามที่สามารถช่วยผู้ใช้ในการสืบค้นอินสแตนซ์ฐานข้อมูล ภาษาแบบสอบถามมีสองประเภท ได้แก่ พีชคณิตเชิงสัมพันธ์และแคลคูลัสเชิงสัมพันธ์

พีชคณิตเชิงสัมพันธ์

พีชคณิตเชิงสัมพันธ์เป็นภาษาแบบสอบถามขั้นตอนซึ่งใช้อินสแตนซ์ของความสัมพันธ์เป็นอินพุตและให้อินสแตนซ์ของความสัมพันธ์เป็นเอาต์พุต ใช้ตัวดำเนินการเพื่อดำเนินการสืบค้น ตัวดำเนินการสามารถเป็นได้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