Pola pemodelan untuk penyimpanan dokumen, kunci-nilai, kolom lebar, graf, dan vektor — kapan menyematkan (embed), mereferensikan, denormalisasi, atau mengelompokkan waktu.
Penyimpanan NoSQL menukar skema tetap dan join dengan skala horizontal. Setiap keluarga memodelkan relasi dengan caranya sendiri, sehingga pola akses — bukan bentuk normal — yang menentukan struktur.
Tabel referensi · 28 entri
Pemodelan Data NoSQLExplained
28 of 28 rows
Dokumen
Sub-dokumen bersarang hidup di dalam satu dokumen induk, bukan di tabel terpisah.
Relasi satu-ke-sedikit yang dibaca bersama. Pesanan beserta item barisnya. Pengguna dengan tiga alamat.
Simpan id asing, bukan datanya. Selesaikan dengan pembacaan kedua atau $lookup.
Sub-entitas yang besar, dibagikan, atau diperbarui mandiri. Tautan banyak-ke-banyak antar-koleksi.
Induk menyematkan array anak yang pendek; seluruh set muat dan dimuat sebagai satu dokumen.
Segelintir nomor telepon atau preferensi pada profil. Satu pembacaan mengembalikan induk dan anak.
Anak hidup di koleksinya sendiri; setiap anak membawa id induk, atau induk menyimpan array id yang dibatasi.
Set yang terlalu besar atau terlalu mandiri untuk disematkan. Kueri anak berdasarkan id induk.
Anak menyimpan id induk; induk tidak pernah mendaftar anak karena setnya tak terbatas.
Peristiwa, log, atau suara yang terikat pada host atau pengguna. Saring anak berdasarkan id induk lalu paginasi.
Dokumen dari tipe entitas berbeda berbagi satu koleksi, dibedakan oleh field tipe.
Komentar atau notifikasi yang menempel pada banyak jenis induk, semuanya dikueri dengan satu cara.
Beberapa entitas ekstrem dipisahkan dari bentuk bersama agar ukuran atau trafiknya tidak mendistorsi sisanya.
Akun selebritas yang daftar pengikut atau penghitungnya akan melampaui dokumen normal.
Setiap revisi adalah dokumen baru dengan id yang sama dan nomor versi yang meningkat; kueri memilih yang terbaru.
Jejak audit dan riwayat suntingan tempat revisi lama tetap bisa dikueri.
Nilai turunan dihitung saat penulisan dan disimpan di samping data yang diringkasnya.
Total, rating, dan top-N yang tanpa ini akan menjalankan agregasi pada setiap pembacaan.
Kunci-nilai & kolom lebar
Istilah desain DynamoDB: ciutkan banyak tipe entitas ke satu tabel memakai partition dan sort key yang kelebihan beban (overloaded).
Ambil item heterogen dalam satu kueri tanpa join.
Satu atribut kunci melayani banyak tipe entitas, ditandai prefiks seperti USER# atau ORDER#.
Desain single-table. Klusterkan item terkait di bawah satu partisi dan ambil dalam satu kueri.