PostgreSQL adalah database SQL RDBMS [sistem manajemen basis data relasional] tradisional, seperti Oracle dan MySQL. PostgreSQL gratis
MongoDB adalah database tanpa skema, noSQL, JSON. MongoDB memiliki versi gratis, tetapi mereka juga memiliki versi host dan berbayar perusahaan. Bahkan versi gratisnya menyertakan pemantauan cloud gratis yang dihosting di situs mereka untuk instalasi lokal Anda
[Artikel ini adalah bagian dari Panduan MongoDB kami. Gunakan menu sebelah kanan untuk menavigasi. ]
PostgreSQL
Berikut adalah dasar-dasar PostgreSQL
RDBMS tradisional
RDBMS tradisional [sistem manajemen basis data relasional], seperti PostgreSQL, memiliki skema skrip dan memerlukan kunci utama. Anda tidak dapat menambahkan data ke dalamnya kecuali kolom data sudah ada
Shell PostgreSQL
Shell PostgreSQL sedikit berbeda dari Oracle atau MySQL. Anda masuk ke dalamnya seperti ini
sudo su - postgres postgres@paris2:~$ psql psql [9.5.21] Type "help" for help. postgres=#
Kemudian Anda menggunakan garis miring [\] untuk menjalankan perintah yang bukan perintah SQL
Buat tabel
Inilah cara Anda membuat tabel dan skema di PostgreSQL
create table expenses [ TransactionDate date, PostDate date, Description text, Category text, Type text, Amount float8 ];_
Terhubung ke database
\c expenses You are now connected to database "expenses" as user "postgres".
Daftar tabel
\dt List of relations Schema | Name | Type | Owner --------+-------------------------+-------+---------- public | chase | table | postgres
Jalankan kueri
Kueri di bawah melakukan agregasi
select category, sum[amount] from chase group by category; category | sum -----------------------+------- | 19389 Education | -216 Health & Wellness | -3154 Personal | -1582 Automotive | -33 Shopping | -4479 Travel | -7026 Fees & Adjustments | -316 Entertainment | -274 Gas | -139 Home | -1409 Food & Drink | -1926 Bills & Utilities | -3114 Professional Services | -114 Groceries | -1720 [15 rows]_
Tambahkan data
INSERT INTO expenses[ transactiondate , postdate, description, category , type ,amount ] VALUES ['10-July-2020', '10-July-2020', 'coffee shop', 'restaurants', 4.50];
MongoDB
Berikut adalah dasar-dasar MongoDB
Basis data JSON
Tidak seperti PostgreSQL dan RDMBS lainnya, database JSON, seperti MongoDB, tidak memiliki skema sehingga Anda dapat memasukkan apa saja ke dalamnya. Bandingkan dengan database SQL di mana Anda harus menentukan strukturnya sebelum Anda memasukkan data
JSON terlihat seperti ini
data: { attribute: value }_
Atau array JSON seperti ini
data: [{ attribute1: value1 }, { attribute1: value2, anotherAttribute: value3 }]
Shell MongoDB
Untuk membuka shell MongoDB, Anda tinggal mengetikkan mongo
mongo MongoDB shell version v3.6.17 connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb Implicit session: session { "id" : UUID["fd8960a6-d6fd-44f7-a6c5-5257438934e3"] }_
Buat basis data
use sales switched to db sales_
Buat koleksi
Koleksi adalah kumpulan tabel terkait
create table expenses [ TransactionDate date, PostDate date, Description text, Category text, Type text, Amount float8 ];_0
Tambahkan catatan
create table expenses [ TransactionDate date, PostDate date, Description text, Category text, Type text, Amount float8 ];_1
Pertanyaan
create table expenses [ TransactionDate date, PostDate date, Description text, Category text, Type text, Amount float8 ];_2
Menggunakan JavaScript di shell MongoDB
Salah satu fitur yang sangat kuat dengan shell MongoDB adalah mendukung JavaScript. Ini berarti Anda dapat menentukan fungsi dan menyimpan kueri sebagai variabel
Misalnya, berikut adalah cara Anda mendefinisikan Connecticut dengan menggambar persegi di sekelilingnya pada peta. Pernyataan ini menggunakan fitur kueri geografis GeoJSON dari MongoDB untuk melakukannya
create table expenses [ TransactionDate date, PostDate date, Description text, Category text, Type text, Amount float8 ];_3
Menggabungkan tabel
Pada tahun 1970-an, ketika IBM menerbitkan makalah yang menjelaskan bahasa SQL dan database yang kemudian dikembangkan oleh Larry Ellison menjadi Oracle, ruang disk dan memori menjadi mahal. Jadi, praktik yang diadopsi menjadi tidak mengulang data, karena itu menghabiskan ruang dan memori yang mahal. Praktek itu disebut normalisasi database
Saat ini, penyimpanan dan memori tentu saja murah. desainer database noSQL tidak melakukan normalisasi. Itu agak menyederhanakan karena mereka tidak memerlukan kunci asing dan semua elemen desain lain yang membuat hubungan antar tabel. Tapi itu juga menciptakan serangkaian masalahnya sendiri. [Misalnya, database SQL masih lebih cocok daripada database noSQL untuk sistem transaksional seperti akuntansi karena lebih mudah mempertahankan apa yang disebut integritas referensial—tetapi itu adalah topik lain. ]
Ketika data disimpan dalam dua tabel dan Anda ingin menyatukannya untuk sementara waktu dalam struktur hanya-baca seperti untuk membuat laporan, Anda menjalankan apa yang disebut gabungan. Hal ini membuat irisan dua himpunan
Ia bekerja seperti ini
create table expenses [ TransactionDate date, PostDate date, Description text, Category text, Type text, Amount float8 ];_4
Sisi negatifnya adalah ini membutuhkan banyak daya komputasi, memori, dan penyimpanan untuk dijalankan pada database terdistribusi besar
MongoDB memiliki indeks tetapi tidak bergabung
MongoDB tidak mendorong atau benar-benar mengizinkan bergabung. Alih-alih, Anda akan meletakkan dokumen [catatan] terkait di dalam satu sama lain sehingga semuanya ada di satu tempat. Ini agak canggung untuk sesuatu seperti sistem penjualan karena Anda akan memiliki sesuatu seperti ini
create table expenses [ TransactionDate date, PostDate date, Description text, Category text, Type text, Amount float8 ];_5
Itu canggung untuk dipertahankan dalam sistem transaksional tetapi akan bekerja dengan baik untuk jenis sistem lainnya
Namun, meskipun MongoDB tidak mendukung penggabungan, MongoDB mengizinkan indeks, yang merupakan fitur penting dari penggabungan. Ini mempercepat kueri
Sumber daya tambahan
Jadi itu adalah perbandingan dua database secara berdampingan. Untuk mempelajari lebih lanjut tentang topik ini, jelajahi BMC Big Data & Machine Learning Blog dan sumber daya ini