Pangkalan data berorientasi dokumen
Hubungan dengan pangkalan data lain > Hubungan dengan pangkalan data relasional

Dalam pangkalan data relasional, data pertama-tama dikategorikan ke dalam sejumlah jenis data yang telah ditetapkan sebelumnya, dan tabel dibuat untuk menampung entri individual, atau rekaman, dari setiap tipe. Setiap tabel memiliki sejumlah bagian bidang, yang menentukan jenis data yang akan disimpan dalam setiap rekaman, sehingga semua rekaman dalam tabel memiliki struktur yang seragam. Pengurus pangkalan data menetapkan hubungan antara tabel dan memilih bidang tertentu yang diperkirakan akan sering digunakan dalam pencarian, lalu membuat indeks pada bidang tersebut guna meningkatkan efisiensi kueri.
Konsep utama dalam rancangan pangkalan data relasional adalah bahwa data yang mungkin berulang umumnya ditempatkan dalam tabelnya sendiri. Jika rekaman dalam tabel-tabel tersebut memiliki keterkaitan, maka sebuah kolom dipilih sebagai kunci asing untuk menghubungkan data di antara tabel yang memiliki hubungan. Pendekatan ini dikenal sebagai normalisasi pangkalan data.
Sebagai contoh, sebuah aplikasi buku alamat umumnya perlu menyimpan nama kontak, gambar pilihan, satu atau lebih nomor telepon, satu atau lebih alamat surat-menyurat, serta satu atau lebih alamat surel. Dalam pangkalan data relasional yang kanonik, tabel akan dibuat untuk masing-masing jenis data ini dengan bidang yang telah ditentukan sebelumnya. Misalnya, tabel CONTACT dapat mencakup kolom FIRST_NAME, LAST_NAME, dan IMAGE, sementara tabel PHONE_NUMBER dapat memiliki kolom COUNTRY_CODE, AREA_CODE, PHONE_NUMBER, dan TYPE (misalnya, rumah, kantor, dll.).
Tabel PHONE_NUMBER juga memiliki kolom kunci asing, yaitu CONTACT_ID, yang menyimpan ID unik yang diberikan kepada kontak saat pertama kali dibuat. Untuk mereka ulang data kontak secara lengkap, mesin pangkalan data menggunakan kunci asing untuk mencari butir terkait di antara tabel-tabel tersebut dan menyusun kembali informasi asli kontak.
Sebaliknya, dalam pangkalan data berorientasi dokumen, mungkin tidak ada struktur internal yang secara langsung sesuai dengan konsep tabel, dan bidang serta hubungan antardata yang umumnya tidak ditentukan sebelumnya. Sebagai gantinya, semua data yang terkait dengan suatu objek disimpan dalam satu dokumen dan dimasukkan ke dalam basis data sebagai satu entri.
Dalam contoh buku alamat, dokumen akan berisi nama kontak, gambar, serta seluruh informasi kontak dalam satu rekaman. Entri ini diakses menggunakan kunci unik, yang memungkinkan basis data mengambil dan mengembalikan dokumen tersebut ke aplikasi. Tidak diperlukan pengolahan tambahan untuk mengambil data terkait, karena seluruh informasi dikembalikan dalam satu objek sekaligus.
Perbedaan utama antara model berorientasi dokumen dan model relasional adalah bahwa dalam basis data dokumen, format data tidak ditentukan sebelumnya. Dalam banyak kasus, dokumen apa pun dapat disimpan dalam pangkalan data tanpa batasan format tertentu, dan struktur dokumen tersebut dapat berubah kapan pun. Jika, misalnya, seseorang ingin menambahkan COUNTRY_FLAG ke dalam data CONTACT, field ini dapat langsung ditambahkan ke dokumen baru saat dimasukkan ke dalam pangkalan data, tanpa mempengaruhi pangkalan data itu sendiri atau dokumen yang sudah ada sebelumnya.
Untuk mempermudah pengambilan informasi, sistem berpangkalkan dokumen umumnya memungkinkan pengurus memberikan petunjuk kepada pangkalan data untuk mencari jenis informasi tertentu, yang bekerja serupa dengan indeks dalam pangkalan data relasional. Sebagian besar sistem juga menyediakan kemampuan untuk menambahkan metadata tambahan di luar isi dokumen itu sendiri. Misalnya, entri dapat diberi tag sebagai bagian dari buku alamat, sehingga memungkinkan pengembang mengambil semua data terkait, seperti "seluruh entri dalam buku alamat". Pendekatan ini menawarkan fungsi yang mirip dengan tabel dalam pangkalan data relasional, tetapi memisahkan konsep kategori data dari penerapan fisiknya dalam bentuk tabel.
Dalam model relasional yang ternormalisasi secara klasik, objek dalam basis data diwakili sebagai baris data terpisah tanpa struktur bawaan, selain yang diberikan saat data diambil. Pendekatan ini dapat menimbulkan masalah ketika mencoba menerjemahkan objek dalam pemrograman ke dalam baris pangkalan data dan sebaliknya, yang dikenal dengan istilah object-relational impedance mismatch.
Sebaliknya, penyimpan dokumen lebih selaras—atau dalam beberapa kasus, langsung sesuai—dengan cara objek dalam pemrograman diwakili dalam penyimpanan. Oleh karena itu, sistem ini sering dipasarkan dengan istilah NoSQL.