Cara pengumpulan berbeda dengan skema

Saya sangat baru mengenal kosmosdb (documentdb), saat membaca dokumentasi saya terus membaca satu hal berulang kali bahwa documentdb bebas skema tetapi saya merasa seperti koleksi analog dengan skema dan keduanya adalah pandangan logis.

Wikipedia mendefinisikan skema sebagai 'Istilah "skema" mengacu pada organisasi data sebagai cetak biru dari bagaimana database dibangun'. Saya yakin koleksinya juga sama, yaitu pengorganisasian dokumen, prosedur yang disimpan, pemicu, dan UDF.

Jadi pertanyaan saya adalah, apa perbedaan skema dengan koleksi?


person lambodar    schedule 29.05.2017    source sumber
comment
Koleksi tidak menerapkan jenis dokumen tertentu seperti skema. Jadi satu kumpulan dokumen bisa berupa dokumen dengan data pengguna atau dokumen dengan data log atau apa pun. Koleksi hanyalah sekumpulan dokumen yang mungkin tidak berhubungan. Koleksi itu seperti database, database dapat memiliki beberapa tabel (mungkin tidak berhubungan). Tetapi database itu sendiri tidak menjelaskan/menerapkan data apa yang disimpan.   -  person Peter Bons    schedule 29.05.2017
comment
terima kasih @PeterBons kedengarannya logis!   -  person lambodar    schedule 29.05.2017


Jawaban (2)


Koleksi sebenarnya tidak ada hubungannya dengan skema. Mereka hanyalah sebuah konstruksi organisasi untuk dokumen. Dengan Cosmos DB, mereka berfungsi sebagai:

  • batas transaksi. Dalam sebuah koleksi, Anda dapat melakukan beberapa kueri/pembaruan dalam suatu transaksi, menggunakan prosedur tersimpan. Pembaruan ini dibatasi pada satu koleksi (lebih khusus lagi, pada satu partisi dalam satu koleksi).
  • batas penagihan/kinerja. Cosmos DB memungkinkan Anda menentukan jumlah Unit Permintaan (RU)/detik untuk dialokasikan ke koleksi. Setiap koleksi dapat memiliki pengaturan RU yang berbeda. Setiap koleksi memiliki biaya minimum (karena jumlah minimum RU yang harus dialokasikan), terlepas dari berapa banyak penyimpanan yang Anda konsumsi.
  • batas kode sisi server. Prosedur tersimpan, pemicu, dll. diunggah ke koleksi tertentu.

Apakah Anda memilih untuk membuat satu koleksi per tipe objek, atau menyimpan beberapa tipe objek dalam satu koleksi, sepenuhnya terserah Anda. Dan tidak terkait dengan bentuk data Anda.

person David Makogon    schedule 29.05.2017

Skema database relasional sedikit berbeda dengan skema database dokumen. Secara sederhana, database relasional lebih ketat dibandingkan skema dokumen. Dengan kata lain, catatan dalam tabel RDBMS harus benar-benar mematuhi skema, sedangkan kita memiliki sejumlah fleksibilitas saat menyimpan dokumen ke dalam kumpulan Dokumen.

Secara konvensional, koleksi adalah sekumpulan dokumen yang mengikuti skema yang sama. Namun DB dokumen tidak menghentikan seseorang untuk menyimpan dokumen dengan skema berbeda dalam satu koleksi. Ini adalah fleksibilitas yang diberikannya kepada pengguna.

Mari kita ambil contoh. Mari kita asumsikan kita menyimpan beberapa informasi pelanggan. Dalam DB relasional, kita mungkin memiliki beberapa struktur seperti itu

Customer ID INT
Name        VARCHAR(50)
Phone       VARCHAR(15)
Email       VARCHAR(255)

Bergantung pada pelanggan yang memiliki email atau nomor telepon, nilai tersebut akan dicatat sebagai nilai yang sesuai atau nilai nol.

ID, Name, Phone, Email
1, John, 83453452, -
2, Victor, -, -
3, Smith, 34535345, smith@jjjj

Namun dalam database dokumen, beberapa kolom perlu muncul dalam koleksi, jika tidak memiliki nilai apa pun.

[
{
  id: "123",
  name: "John",
  phone:"2572525",
},
{
  id: "456",
  name: "Stephen",
},
{
  id: "789",
  name: "King",
  phone:"2572525",
  email:"king@asfaf"
}
]

Namun selalu disarankan untuk tetap menggunakan skema di db dokumen meskipun skema tersebut memberikan fleksibilitas untuk menyimpan dokumen tanpa skema ke koleksi untuk tujuan pemeliharaan.

person Ravi Chandra    schedule 29.05.2017
comment
Terima kasih atas jawabannya @Ravi, saya menghargai usaha Anda. Intinya, lupakan relasi db, saya telah bekerja di Cassandra dan berbasis skema, dan yang Anda tunjuk tentang nilai nol, itu hanya pilihan di nosql dan tidak ada hubungannya dengan koleksi atau skema adalah apa yang saya pahami - person lambodar; 29.05.2017
comment
Secara konvensional, koleksi adalah sekumpulan dokumen yang mengikuti skema yang sama. Namun DB dokumen tidak menghentikan seseorang untuk menyimpan dokumen dengan skema berbeda dalam satu koleksi. Ini adalah fleksibilitas yang diberikannya kepada pengguna. - person Ravi Chandra; 29.05.2017
comment
Saya tidak setuju bahwa suatu koleksi secara konvensional berisi dokumen dengan skema yang sama. Tidak ada konvensi seperti itu. Mungkin orang-orang telah diajarkan untuk melakukan hal ini (misalnya satu koleksi per jenis objek), namun tidak ada aturan untuk ini, atau konvensi. - person David Makogon; 29.05.2017
comment
Setuju dengan @David. Anda dapat menyimpan semua jenis dokumen dalam satu koleksi dan menggunakan pola Tipe/Repositori dengan menerapkan atribut dasar type dalam dokumen. Berikut adalah pertanyaan & jawaban terkait mengenai skenario ini. - person Matias Quaranta; 29.05.2017