Mengapa postgresql lebih baik daripada mongodb?

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

Apakah PostgreSQL lebih cepat dari MongoDB?

Kinerja MongoDB. Berbagai tolok ukur telah menunjukkan bahwa PostgreSQL mengungguli MongoDB untuk beban kerja pergudangan data dan analisis data. Namun dalam membandingkan operasi JSON antara PostgreSQL dan MongoDB, terdapat benchmark yang menunjukkan keunggulan untuk kedua database tersebut

Mengapa PostgreSQL lebih baik?

PostgreSQL adalah sistem manajemen basis data objek-relasional sumber terbuka. Ini sepenuhnya sesuai dengan SQL dan dibuat agar kaya fitur . Itu juga dapat diperpanjang, membuatnya berguna bagi siapa saja yang membutuhkan alat perusahaan. Itu secara khusus dirancang untuk efisiensi dan dapat diintegrasikan ke dalam hampir semua perangkat lunak.

Bagaimana PostgreSQL berbeda dari MongoDB?

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.