Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Hubungan antara katalog, skema, pengguna, dan database instance

Di Oracle:

  • contoh server ==database ==katalog ==semua data dikelola oleh mesin eksekusi yang sama
  • skema ==namespace dalam database, identik dengan akun pengguna
  • pengguna ==pemilik skema ==akun bernama, identik dengan skema, yang dapat terhubung ke database, yang memiliki skema dan menggunakan objek yang mungkin ada dalam skema lain
  • untuk mengidentifikasi objek apa pun dalam menjalankan server, Anda memerlukan (nama skema + nama objek)

Dalam PostgreSQL:

  • contoh server ==kluster db ==semua data dikelola oleh mesin eksekusi yang sama
  • database ==katalog ==database tunggal dalam cluster db, diisolasi dari database lain dalam cluster db yang sama
  • skema ==namespace dalam database
  • pengguna ==akun bernama, yang dapat terhubung ke database, memiliki dan menggunakan objek di setiap database yang diizinkan secara terpisah
  • untuk mengidentifikasi objek apa pun dalam menjalankan server, Anda memerlukan (nama database + nama skema + nama objek)

Di MySQL:

  • instance server ==tidak diidentifikasi dengan katalog, hanya sekumpulan database
  • database ==skema ==katalog ==ruang nama di dalam server.
  • pengguna ==akun bernama, yang dapat terhubung ke server dan menggunakan (tetapi tidak dapat memiliki - tidak ada konsep kepemilikan) objek dalam satu atau lebih database
  • untuk mengidentifikasi objek apa pun dalam menjalankan server, Anda memerlukan (nama database + nama objek)

Di Microsoft SQL Server:

  • contoh server ==kumpulan database terkelola
  • database ==namespace qualifier dalam server, jarang disebut sebagai katalog
  • skema ==pemilik ==namespace dalam database, terikat dengan peran database, secara default hanya dbo digunakan
  • pengguna ==akun bernama, yang dapat terhubung ke server dan menggunakan (tetapi tidak dapat memiliki - skema berfungsi sebagai pemilik) objek dalam satu atau beberapa basis data
  • untuk mengidentifikasi objek apa pun dalam menjalankan server, Anda memerlukan (nama database + pemilik + nama objek)

Jadi menurut saya jawaban atas pertanyaan Anda adalah:

  1. Itu tergantung pada implementasi, apakah nama katalog diperlukan untuk mengidentifikasi objek. Arti "katalog", "skema" dan "basis data" bervariasi dari satu implementasi ke implementasi lainnya.

  2. Ya, katalog adalah abstraksi dari penyimpanan data. Saya pikir itu juga harus didefinisikan sebagai namespace terisolasi mandiri, tetapi tidak semua mesin SQL melakukannya.

  3. Basis Data dan skema didefinisikan dengan cukup baik oleh semua vendor. Katalog terkadang identik dengan "database" (setidaknya di Oracle dan Postgres), terkadang identik dengan "skema", dan terkadang identik dengan keduanya. Istilah katalog juga sering berarti kumpulan metadata (alias tabel sistem).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mengatasi Akses Ditolak Untuk Pengguna 'root'@'localhost' (menggunakan Kata Sandi:Ya) Saat Menghubungkan Database MySQL

  2. Periksa tumpang tindih rentang tanggal di MySQL

  3. Belajar MySQL / MariaDB untuk Pemula – Bagian 1

  4. Panduan Merancang Database Untuk Keranjang Belanja Online Di MySQL

  5. Bagaimana cara menggunakan hashing kata sandi dengan PDO untuk membuat kode saya lebih aman?