Saya menyadari setidaknya dua pendekatan teoretis yang berbeda untuk memahami basis data relasional: aljabar / kalkulus relasional Codd, dan teori kategori.
Apakah ada hubungan antara kedua pendekatan ini? Apakah mereka dalam beberapa hal setara? Apakah ada pekerjaan pendahuluan yang menjelaskan bagaimana kedua kerangka kerja ini menjelaskan basis data relasional?
Latar belakang: Beberapa waktu yang lalu saya membaca Teori Kategori untuk Ilmuwan David Spivak yang menghabiskan cukup banyak waktu membahas bagaimana teori kategori dapat diterapkan untuk memahami teori database relasional. Namun, memiliki sedikit pengalaman pribadi tentang apa itu database relasional atau mengapa mereka berguna, pada saat itu saya tidak sepenuhnya menghargai kedalaman wawasan yang ditemukan dalam buku ini.
Namun, baru-baru ini saya telah belajar tentang query SQL dan dua paket R untuk manipulasi data: dplyr dan data.table . SQL ternyata dapat mengekspresikan banyak ide aljabar / kalkulus / model relasional Codd, tetapi tidak semua . Selain itu, penulis dplyr, Hadley Wickham, telah menyatakan secara eksplisit bahwa filosofinya yang mendasari paket didasarkan pada karya Codd pada aljabar relasional, dan perintah-perintah dasar data.tabel peta cukup baik untuk perintah dalam SQL dan dplyr.
Saya juga tahu bahwa teori kategori memengaruhi banyak programmer menggunakan bahasa pemrograman fungsional seperti Haskell. Namun, saya tidak benar-benar menyadari adanya penggunaan pemrograman fungsional untuk manipulasi data atau ilmu data, selain paket purrr Hadley Wickham untuk R, fakta bahwa Apache Spark ditulis dalam Scala , dan teknologi yang terkait dengan MapReduce .
Semua jenis ini menunjukkan kepada saya bahwa harus ada semacam hubungan antara teori kategori dan aljabar / kalkulus relasional Codd, tetapi saya belum pernah mendengar ada orang yang membuat koneksi semacam itu secara eksplisit atau menjelaskan bagaimana hal itu mendasari keputusan desain dalam manipulasi data populer dan teknologi basis data relasional. Jadi saya juga curiga saya bisa sepenuhnya salah.
EDIT: Rupanya David Spivak telah bekerja pada " bahasa query functorial (FQL) ". Ini kedengarannya seperti aplikasi dari koneksi teoretis, asalkan ada.
Catatan: Saya tidak yakin apakah "struktur-relasional" adalah tag yang tepat untuk diskusi tentang basis data relasional atau aljabar / kalkulus relasional. Artikel Wikipedia ini menunjukkan mereka mungkin terhubung, tetapi pada akhirnya saya tidak tahu apa arti frasa "struktur relasional". Jangan ragu untuk memberi tag ulang.