Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

Aljabar Relasional

Saat bekerja dengan model relasional, kita memiliki 2 kelompok operasi yang dapat kita gunakan.

Yang pertama disebut aljabar relasional , dan ini adalah bahasa prosedural .

Inilah yang menjadi dasar SQL, dan karena itu sangat penting untuk dipelajari - karena SQL adalah standar de-facto untuk bekerja dengan database relasional.

Yang kedua disebut kalkulus relasional dan bukannya prosedural, ini adalah bahasa deklaratif . Ini adalah perbedaan mendasar dalam cara kami berinteraksi dengan database, karena Anda tidak memberi tahu perangkat lunak database apa yang harus dilakukan , Anda tinggal memberi tahu apa yang Anda inginkan , dan biarkan ia menyelesaikan detail cara melakukannya.

Ini adalah perbedaan umum di antara bahasa pemrograman. Di frontend modern, kami mengatakan interaksi dengan DOM di React bersifat deklaratif. Menggunakan vanilla JavaScript untuk memodifikasi DOM adalah prosedural.

Bahasa seperti Datalog, QBE dan QUEL memiliki kalkulus relasional sebagai dasarnya. Saya tidak akan membicarakan hal ini karena menurut saya ini adalah cara yang lebih khusus untuk melakukan sesuatu dibandingkan dengan pendekatan yang lebih praktis yang diikuti oleh SQL, tetapi Anda dapat melihatnya jika Anda mau.

Dengan pengantar ini, mari kita lanjutkan dengan aljabar relasional .

Kami memiliki 2 jenis operasi:

  • operasi utama
  • bergabung dengan operasi

Operasi utama dalam aljabar relasional

Operasi utama adalah:

  • serikat untuk mendapatkan data dari dua tabel, menghasilkan jumlah tupel, selama kedua tabel memiliki kolom dan tipe atribut (domain) yang sama.
  • perbedaan untuk mendapatkan data yang terdapat pada tabel pertama tetapi tidak pada tabel kedua, menghasilkan perbedaan tupel, selama kedua tabel memiliki kolom dan tipe atribut (domain) yang sama.
  • produk kartesius untuk memasukkan data dari dua tabel ke dalam dan menghasilkan satu tabel tunggal yang menggabungkan datanya, berdasarkan nilai atribut.
  • pilih hanya mengekstrak beberapa tupel (baris) yang terdapat dalam tabel berdasarkan kriteria tertentu.
  • proyek untuk menghasilkan tabel baru yang hanya berisi satu atau lebih atribut (kolom) dari tabel yang ada
  • ganti nama digunakan untuk mengganti nama atribut, digunakan untuk mencegah konflik ketika beberapa tabel memiliki nama yang sama untuk data yang berbeda

Menggabungkan operasi dalam aljabar relasional

Bergabung mungkin adalah operasi paling kuat yang dapat Anda lakukan dengan aljabar relasional. Mereka dibangun di atas operasi utama, dan memungkinkan Anda untuk mengkorelasikan data yang terdapat dalam relasi (tabel) yang berbeda.

Catatan:Saya akan segera berbicara tentang bergabung dalam praktik di DBMS, ini sebagian besar teori.

Kami memiliki 2 versi gabungan utama:gabung alami dan theta bergabung . Semua versi lain diekstraksi dari 2.

Gabung Alami

Gabung alami menghubungkan dua relasi (tabel), dan membuat tabel baru berdasarkan nilai atribut yang sama.

Kita membutuhkan dua relasi dengan nama atribut yang sama (kolom), pertama. Kemudian jika nilai pada atribut dalam relasi A tidak cocok dengan atribut dalam relasi B, baris tersebut bukan bagian dari hasil, maka akan diabaikan.

Contoh:

Relasi A

ID Karyawan Nama
1 Tandai
2 Tony
3 Rik

Relasi B

Nama Manajer ID Karyawan
Todd 1
Albert 2

Kita bisa melakukan natural join untuk mendapatkan nama bos untuk setiap karyawan:

ID Karyawan Nama Nama Manajer
1 Tandai Todd
2 Tony Albert

Karena relasi memiliki nama atribut ID Karyawan yang sama, relasi tersebut hanya muncul sekali dalam hasil, bukan 2 kali.

Karyawan #3 yang ada dalam relasi A, Rick, tidak termasuk dalam tabel ini, karena tidak ada entri yang sesuai dalam relasi B.

Gabung Theta

Theta-join memungkinkan untuk melakukan join berdasarkan kriteria apa pun untuk membandingkan dua kolom dalam dua relasi yang berbeda, bukan hanya kesetaraan seperti yang dilakukan natural join.

Ini melakukan produk kartesius dari dua tabel, dan memfilter hasilnya berdasarkan pilihan yang ingin kita buat.

Equi-gabung

Equi-join adalah theta join, dimana pemilihannya didasarkan pada persamaan antara nilai atribut pada dua tabel yang berbeda.

Bedanya dengan natural join adalah kita bisa memilih nama atribut (kolom) mana yang ingin kita bandingkan.

Kami akan berbicara lebih banyak tentang bergabung nanti saat SQL diperkenalkan, sehingga kami dapat menggunakannya dalam praktik.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menghubungkan Aplikasi 64-bit ke Clarion TopSpeed

  2. Tingkatkan Performa UDF dengan NULL ON NULL INPUT

  3. Salesforce SOQL dari Apache OpenOffice

  4. 7 Hal Utama yang Perlu Diingat Tentang Globalisasi Model Data

  5. Apa itu SQL?