Peringkat basis data untuk pemrograman. Sekilas tentang sistem manajemen basis data. Sistem manajemen basis data relasional

25.11.2020 Kartu memori

Beberapa akan berpendapat bahwa TI masa depan terkait erat dengan penggunaan besar database. Dunia telah menciptakan bahasa baru, algoritme baru, hanya untuk menyederhanakan dan mempercepat penggunaan arus informasi yang sangat besar. Bahkan pendekatan relasional yang akrab bagi banyak pengguna modern perlahan tapi pasti menjadi sesuatu dari masa lalu. Mengapa dan apa yang akan terjadi selanjutnya? Namun, mari kita bicarakan semuanya secara berurutan.

Dari dulu hingga sekarang

Tidak masuk akal untuk menutupi sejarah basis data, berpegang teguh pada kesamaan apa pun, sehingga momen kemunculan basis data tidak akan menjadi zaman kuno, tetapi tahun 60-an abad ke-20. Saat itulah komputer menjadi alat yang efektif untuk perusahaan komersial, dan organisasi COBASYL (Conference on DAta SYstems Language), yang menciptakan bahasa COBOL pada tahun 1959 dan kemudian memberinya kemampuan manajemen basis data, membantu mereka mengelola arus informasi yang meningkat secara dramatis.

Pada akhir tahun 60-an, model data jaringan pertama muncul, konsep DBMS muncul, dan pada tahun 1974 IBM mulai mengerjakan bahasa untuk System R. Inilah bagaimana SEQUEL (Bahasa QUEry Bahasa Inggris Terstruktur) lahir. Namun, kemudian, ketika diketahui bahwa nama seperti itu digunakan oleh pabrikan pesawat Inggris, diputuskan untuk sedikit menguranginya menjadi SQL biasa.

Dengan meningkatnya ketersediaan komputer, berorientasi pengguna biasa DB (Paradox, RBASE 5000, RIM, dBase III), API (ODBC, Excel, Access) dan alat pengembangan (VB, Pengembang Oracle, PowerBuilder). Tentu saja, tren juga telah merangkul Internet, saat ini interaksi yang efektif dengan database merupakan persyaratan tak terucapkan untuk sumber daya apa pun dengan informasi yang kurang lebih dinamis.

Sejauh menyangkut perusahaan, pasar telah menjadi trinitas kekuatan, dengan hampir semua kekuatan basis data dibagi antara IBM, Microsoft, dan Oracle.

Sekarang dan masa depan

Sampai awal milenium baru, TI didominasi oleh pendekatan relasional ke database, tetapi kebutuhan untuk meningkatkan kinerja pasti mengarah pada pengembangan gagasan NoSQL (tidak hanya SQL). Jika Anda hampir tidak dapat membayangkan apa itu dan apa perbedaannya, maka dengan mengklik tautan Anda akan menerima jawaban lengkap untuk semua pertanyaan Anda.

Sederhananya, pendekatan relasional menggambarkan data dalam format tabel, yaitu, semua informasi terkait erat oleh hubungan dan struktur (ingat Excel dengan kolom dan baris, di mana masing-masing objek baru ditulis dengan pola yang sama). Ini pasti mengarah pada batasan kinerja dan penskalaan, tetapi dari sudut pandang pembuatan dan manajemen, ini sederhana dan nyaman.

Pendekatan NoSQL menghindari masalah ini karena kurangnya tautan informasi yang ketat. Tapi di sini muncul masalah lain - organisasi akses. Ini diselesaikan dengan 4 cara utama: menggunakan orientasi dokumen, catatan yang dapat diperluas (matriks jarang), kunci akses, dan teori grafik. Secara alami, pendekatan NoSQL membutuhkan lebih banyak pengetahuan dan keterampilan dari pengembang, tetapi hasilnya jauh lebih efektif. Itulah mengapa diyakini bahwa SQL sudah turun dalam sejarah, dan NoSQL adalah masa depan semua database.

Namun, prediksi ini bertumpu pada fakta bahwa menggunakan pendekatan relasional untuk database kecil jauh lebih efisien. Oleh karena itu, daripada perselisihan yang tidak masuk akal, mari kita bicara tentang hal-hal yang lebih praktis, yaitu langsung tentang database paling populer.

Peringkat

  1. Peramal;
  2. MySQL;
  3. Microsoft SQL server;
  4. PostgreSQL;
  5. MongoDB;
  6. Kasandra;
  7. Akses microsoft;
  8. Redi;
  9. SQLite.

Secara total, 7 dari 10 perwakilan peringkat adalah basis data relasional, serta satu contoh basis data berorientasi dokumen (MongoDB), dengan nilai terdistribusi (Cassandra) dan menggunakan pendekatan nilai kunci (Redis). Jadi, hari ini dominasi database relasional tidak dapat disangkal, tetapi apa yang akan terjadi besok?

Untuk menjawab pertanyaan ini, mari kita beralih ke bagian tren pada sumber yang sama. Jika kita mengambil cap waktu lebih dari 2 atau 4 tahun, maka pendekatan teori graf menunjukkan pertumbuhan terbesar. Pada saat yang sama, selama setahun terakhir, basis data berdasarkan data waktu telah menunjukkan pertumbuhan popularitas maksimum. Itu relatif pendekatan baru, ini juga dianggap sebagai NoSQL, keuntungannya adalah membuat struktur berdasarkan tanggal atau rentang waktu. Saat ini, perwakilan paling populer dari database Time Series adalah InfluxDB.

Basis data apa yang Anda gunakan? Dan apa database NoSQL yang paling menjanjikan menurut Anda?

Database adalah repositori model logis dari semua jenis data. Setiap database non-schemaless mengikuti model yang mendefinisikan struktur pemrosesan data tertentu. DBMS adalah aplikasi (atau perpustakaan) yang mengelola database dari berbagai bentuk, ukuran, dan jenis.

Untuk pemahaman yang lebih baik tentang DBMS, periksa file .

Sistem manajemen basis data relasional

Sistem relasional menerapkan model data relasional yang mendefinisikan semua informasi yang disimpan sebagai satu set catatan dan atribut terkait dalam sebuah tabel.

DBMS jenis ini menggunakan struktur (tabel) untuk menyimpan dan bekerja dengan data. Setiap kolom (atribut) berisi jenis informasinya sendiri. Setiap catatan dalam database yang memiliki kunci unik diteruskan ke baris dalam tabel, dan atributnya ditampilkan di kolom tabel.

Hubungan dan tipe data

Hubungan dapat didefinisikan sebagai set matematika yang berisi set atribut yang mewakili informasi yang disimpan.

Setiap elemen yang membentuk record harus memenuhi tipe data tertentu (bilangan bulat, tanggal, dll.). Berbagai penggunaan RDBMS jenis yang berbeda data yang tidak selalu dapat dipertukarkan.

Pembatasan semacam ini umum terjadi dalam database relasional. Bahkan, mereka membentuk inti dari hubungan.

RDBMS Populer

Pada artikel ini, kita akan berbicara tentang 3 RDBMS paling populer:

  • SQLite: RDBMS tertanam yang sangat kuat.
  • MySQL: RDBMS yang paling populer dan umum digunakan.
  • PostgreSQL: RDBMS paling canggih dan fleksibel.

SQLite

SQLite adalah perpustakaan luar biasa yang dibangun ke dalam aplikasi yang menggunakannya. Menjadi database file, ini menyediakan seperangkat alat yang sangat baik untuk pemrosesan yang lebih mudah (dibandingkan dengan database sisi server) dari segala jenis data.

Ketika aplikasi menggunakan SQLite, mereka dikomunikasikan melalui panggilan fungsional dan langsung ke file yang berisi data (misalnya, database). data SQL ite) daripada semacam antarmuka, yang meningkatkan kecepatan dan kinerja operasi.

Tipe data yang didukung

  • BATAL: nilai NULL.
  • BILANGAN BULAT: bilangan bulat bertanda yang disimpan dalam 1, 2, 3, 4, 6, atau 8 byte.
  • NYATA: bilangan floating point yang disimpan dalam format IEEE 8-byte.
  • TEKS: string teks dengan pengkodean UTF-8, UTF-16BE, atau UTF-16LE.
  • gumpal: tipe data yang disimpan persis seperti yang diterima.

Catatan: untuk lebih Informasi rinci memeriksa dokumentasi.

Keuntungan

  • Mengajukan: seluruh database disimpan dalam satu file, sehingga mudah untuk dipindahkan.
  • Standar: SQLite menggunakan SQL; beberapa fungsi dihilangkan (RIGHT OUTER JOIN atau UNTUK SETIAP PERNYATAAN), namun, ada beberapa yang baru.
  • Bagus untuk pengembangan dan bahkan pengujian: selama fase pengembangan, sebagian besar membutuhkan solusi yang terukur. SQLite, dengan kumpulan fiturnya yang kaya, dapat menyediakan lebih dari cukup fungsionalitas sementara cukup sederhana untuk bekerja dengan satu file dan pustaka C terkait.

Kekurangan

  • Kurangnya kontrol pengguna: database tingkat lanjut memberi pengguna kemampuan untuk mengelola hubungan tabel menurut hak istimewa, tetapi SQLite tidak memiliki fitur itu.
  • Ketidakmungkinan pengaturan tambahan: sekali lagi, SQLite tidak dapat dibuat lebih berperforma dengan mengubah pengaturan - begitulah desainnya.

Kapan Menggunakan SQLite

  • Aplikasi Tertanam: semua aplikasi portabel yang tidak dapat diskalakan - misalnya, aplikasi pengguna tunggal lokal, aplikasi seluler atau permainan.
  • Sistem Akses Disk: dalam kebanyakan kasus, aplikasi yang sering melakukan operasi baca/tulis disk langsung dapat dimigrasikan ke SQLite untuk meningkatkan kinerja.
  • Pengujian: sempurna untuk sebagian besar aplikasi, yang sebagian fungsinya adalah menguji logika bisnis.

Kapan tidak menggunakan SQLite

  • Aplikasi Multi-Pengguna: Jika Anda sedang mengerjakan sebuah aplikasi yang akan diakses oleh beberapa orang secara bersamaan, lebih baik memilih RDBMS yang berfitur lengkap seperti MySQL.
  • Aplikasi yang menulis data dalam jumlah besar: salah satu keterbatasan SQLite adalah operasi tulis. RDBMS ini memungkinkan hanya satu operasi tulis yang akan dieksekusi pada satu waktu.

MySQL

MySQL adalah yang paling populer dari semua database server besar. Sangat mudah untuk memahaminya, dan Anda dapat menemukan banyak informasi tentangnya di internet. Meskipun MySQL tidak berusaha untuk sepenuhnya mengimplementasikan standar SQL, ia menawarkan berbagai fungsionalitas. Aplikasi berkomunikasi dengan database melalui proses daemon.

Tipe data yang didukung

  • kecil: bilangan bulat yang sangat kecil.
  • KECIL: keseluruhan kecil.
  • SEDANG: bilangan bulat berukuran sedang.
  • INT atau INTEGER: bilangan bulat dengan ukuran normal.
  • BIGINT: keseluruhan besar.
  • MENGAMBANG: nomor floating-point bertanda presisi tunggal.
  • GANDA, PRESISI GANDA, NYATA: nomor floating-point presisi ganda yang ditandatangani.
  • DESIMAL, NUMERIK: nomor floating point yang ditandatangani.
  • TANGGAL: tanggal.
  • TANGGAL WAKTU: kombinasi tanggal dan waktu.
  • KETENTUAN WAKTU: stempel waktu.
  • WAKTU: waktu.
  • TAHUN: tahun dalam format YY atau YYYY.
  • ARANG: string ukuran tetap empuk di sebelah kanan dengan spasi dengan panjang maksimum.
  • VARCHAR: string panjang variabel.
  • TINYBLOB, TINYTEXT: Kolom BLOB atau TEXT dengan panjang maksimal 255 (2^8 – 1) karakter.
  • BLOB, TEKS: Kolom BLOB atau TEXT dengan panjang maksimal 65535 (2^16 – 1) karakter.
  • MEDIUMBLOB, MEDIUMTEXT: Kolom BLOB atau TEXT dengan panjang maksimum 16777215 (2^24 – 1) karakter.
  • LONGBLOB, TEKS PANJANG: Kolom BLOB atau TEXT dengan panjang maksimum 4294967295 (2^32 – 1) karakter.
  • ENUM: pencacahan.
  • MENGATUR: set.

Keuntungan

  • Kesederhanaan: MySQL mudah dipasang. Ada banyak alat pihak ketiga, termasuk alat visual, yang memudahkan untuk memulai dengan database.
  • Banyak fitur: MySQL mendukung sebagian besar fungsionalitas SQL.
  • Keamanan: MySQL memiliki banyak fitur keamanan bawaan.
  • Kekuatan dan skalabilitas: MySQL dapat menangani data dalam jumlah yang sangat besar, dan sangat cocok untuk aplikasi yang dapat diskalakan.
  • Kecepatan: mengabaikan beberapa standar memungkinkan MySQL untuk bekerja lebih efisien, memotong di beberapa tempat di sudut.

Kekurangan

  • Batasan yang diketahui: Menurut definisi, MySQL tidak dapat melakukan segalanya, dan ia hadir dengan keterbatasan fungsionalitas tertentu.
  • Masalah keandalan: beberapa operasi diimplementasikan kurang andal daripada di RDBMS lainnya.
  • Stagnasi dalam pembangunan: Meskipun MySQL adalah produk open-source, pengerjaannya sangat lambat. Namun, ada beberapa database yang sepenuhnya berbasis MySQL (misalnya, MariaDB). Omong-omong, Anda dapat mempelajari lebih lanjut tentang hubungan antara MariaDB dan MySQL dari kami dengan pencipta kedua RDBMS - James Bottomley.

Kapan Menggunakan MySQL

  • Operasi terdistribusi: ketika Anda membutuhkan lebih banyak fungsionalitas daripada yang dapat disediakan SQLite, Anda harus menggunakan MySQL.
  • Keamanan Tinggi: Fitur keamanan MySQL memberikan perlindungan yang kuat untuk akses dan penggunaan data.
  • Situs web dan Aplikasi: sebagian besar sumber daya web dapat bekerja dengan baik dengan MySQL, meskipun ada keterbatasan. Alat ini sangat fleksibel dan mudah digunakan, yang hanya bermanfaat dalam jangka panjang.
  • Solusi khusus: jika Anda sedang mengerjakan produk yang sangat spesifik, MySQL akan menyesuaikan dengan kebutuhan Anda dengan berbagai pengaturan dan mode operasi.

Kapan tidak menggunakan MySQL

  • Kompatibilitas SQL: karena MySQL tidak berusaha untuk sepenuhnya mengimplementasikan standar SQL, MySQL tidak sepenuhnya kompatibel dengan SQL. Karena itu, masalah dapat muncul saat berintegrasi dengan RDBMS lainnya.
  • Daya saing: meskipun MySQL melakukan pekerjaan yang baik dengan operasi baca, operasi baca-tulis bersamaan dapat menyebabkan masalah.
  • Kekurangan fitur: Tergantung pada pilihan mesin MySQL, beberapa fitur mungkin hilang.

PostgreSQL

PostgreSQL adalah RDBMS paling canggih, yang berfokus terutama pada kepatuhan dan ekstensibilitas standar penuh. PostgreSQL, atau Postgres, berupaya untuk sepenuhnya mematuhi standar ANSI/ISO SQL.

PostgreSQL berbeda dari RDBMS lain karena memiliki fungsionalitas berorientasi objek, termasuk dukungan penuh untuk konsep ACID (Atomicity, Consistency, Isolation, Durability).

Berbasis pada teknologi yang kuat, Postgres hebat dalam menangani banyak pekerjaan secara bersamaan. Dukungan konkurensi diimplementasikan menggunakan MVCC (Kontrol Konkurensi Multiversi), yang juga menyediakan kompatibilitas ACID.

Meskipun RDBMS ini tidak sepopuler MySQL, ada banyak alat dan pustaka pihak ketiga untuk mempermudah bekerja dengan PostgreSQL.

Tipe data yang didukung

  • besar: bertanda bilangan bulat 8-byte.
  • serial besar: bilangan bulat 8-bit yang bertambah secara otomatis.
  • sedikit[(n)]: string bit dengan panjang tetap.
  • sedikit bervariasi [(n)]: string bit dengan panjang variabel.
  • boolean: nilai boolean.
  • kotak: persegi panjang datar.
  • byte: data biner.
  • karakter bervariasi [(n)]: string karakter dengan panjang tetap.
  • karakter[(n)]:
  • asam: Alamat jaringan IPv4 atau IPv6.
  • lingkaran: lingkaran di pesawat.
  • tanggal: tanggal kalender.
  • presisi ganda: nomor floating point presisi ganda.
  • tidak ada: Alamat host IPv4 atau IPv6.
  • bilangan bulat: bertanda bilangan bulat 4-byte.
  • interval [(p)]: Titik.
  • garis: garis lurus tak terbatas pada bidang.
  • lsg: segmen di pesawat.
  • macaddr: Alamat MAC.
  • uang: nilai moneter.
  • jalur: lintasan geometris pada bidang.
  • titik: titik geometris pada bidang.
  • poligon: poligon di pesawat.
  • nyata: nomor floating point presisi tunggal.
  • kecil: bertanda bilangan bulat 2-byte.
  • serial: integer 4-bit secara otomatis bertambah.
  • teks: string karakter panjang variabel.
  • waktu [(p)] : waktu hari (tidak ada zona waktu).
  • waktu [(p)] dengan zona waktu: waktu hari (dengan zona waktu).
  • stempel waktu [(p)] : tanggal dan waktu (tidak ada zona waktu).
  • stempel waktu [(p)] dengan zona waktu: tanggal dan waktu (dengan zona waktu).
  • tsquery: permintaan pencarian teks.
  • vektor: dokumen pencarian teks.
  • txid_snapshot: snapshot ID transaksi pengguna.
  • air: pengenal unik.
  • xml: data XML.

Keuntungan

  • Kompatibilitas SQL Penuh.
  • Masyarakat: PostgreSQL didukung oleh komunitas berpengalaman 24/7.
  • Dukungan pihak ketiga: meskipun fiturnya sangat canggih, PostgreSQL digunakan di banyak alat terkait RDBMS.
  • Perluasan: PostgreSQL dapat diperpanjang secara terprogram dengan prosedur tersimpan.
  • Berorientasi pada objek: PostgreSQL tidak hanya relasional, tetapi juga DBMS berorientasi objek.

Kekurangan

  • Pertunjukan: PADA operasi sederhana Bacaan PostgreSQL mungkin lebih rendah dari para pesaingnya.
  • Kepopuleran: karena kerumitannya, alat ini tidak terlalu populer.
  • Tuan rumah: karena faktor-faktor di atas, sulit untuk menemukan penyedia yang cocok.

Kapan Menggunakan PostgreSQL

  • Integritas data: jika prioritasnya adalah keandalan dan integritas data, PostgreSQL adalah pilihan terbaik.
  • Prosedur yang rumit: jika database Anda perlu melakukan prosedur yang rumit, Anda harus memilih PostgreSQL karena ekstensibilitasnya.
  • Integrasi: jika di masa depan Anda harus memindahkan seluruh database ke solusi lain, masalah paling sedikit akan muncul dengan PostgreSQL.

Kapan tidak menggunakan PostgreSQL

  • Kecepatan: jika yang Anda inginkan hanyalah membaca cepat, jangan gunakan PostgreSQL.
  • Situasi sederhana: jika Anda tidak membutuhkan peningkatan keandalan, dukungan ACID, dan semuanya, menggunakan PostgreSQL seperti menembakkan meriam ke lalat.

Saat ini, ada sejumlah besar DBMS berbagai produsen, sedangkan DBMS yang paling umum bersifat universal, yaitu dapat digunakan dalam berbagai bidang studi dan untuk memecahkan berbagai masalah. Sistem berbeda dalam kinerja, kebutuhan sumber daya, biaya pemeliharaan.

DBMS industri yang paling umum masih merupakan sistem dari perusahaan Amerika Oracle, produsen DBMS industri komersial pertama. Sistem ini sangat handal, mencari setelan untuk tugas yang harus diselesaikan, manajemen yang fleksibel RAM, kinerja tinggi, multi-platform - mis. kemampuan untuk bekerja di bawah kendali komputer dari berbagai arsitektur, serta berbagai sistem operasi. Seiring dengan versi multi-pengguna dari Oracle DBMS, ada versi "ringan" - Personal Oracle atau Oracle Lite. Versi ini biasanya digunakan di AIS kecil dengan rentang pengguna terbatas (biasanya, tidak lebih dari 5 - 10 orang).

DBMS industri Microsoft disebut SQL Server, memiliki kemampuan yang tidak kalah dengan DBMS Oracle. Namun, kelemahannya adalah hanya dapat berfungsi di bawah sistem operasi Microsoft itu sendiri, yang membuatnya tidak mungkin untuk digunakan di server yang menjalankan sistem operasi populer seperti Unix, Linux, Solaris, dan lainnya. DBMS populer lainnya dari Microsoft adalah MS Access, yang disertakan dalam paket perangkat lunak. Microsoft Office. DBMS ini adalah pengguna tunggal dan dimaksudkan untuk memelihara database kecil.

DBMS yang populer dan cukup umum juga merupakan DBMS IBM, Sybase, Informix, PostgreSQL (" Pasca-Gres-Q-El", "postgres"), Interbase dan beberapa lainnya. Secara terpisah, perlu disebutkan DBMS yang didistribusikan secara bebas, banyak di antaranya cocok untuk memecahkan masalah yang agak rumit. Meskipun tidak sepenuhnya memiliki fungsionalitas yang melekat pada DBMS komersial, mereka, pada saat yang sama, memiliki keuntungan yang signifikan - biaya nol. Sebagai aturan, DBMS tersebut dikelola oleh tim pengembangan independen dan didistribusikan sebagai kode sumber untuk modul program. Yang paling populer dari DBMS ini di negara kita adalah MySQL dan yang disebut "klon" dari DBMS Interbase komersial - FireBird dan Yaffil.

Pilihan DBMS harus mempertimbangkan kebutuhan pelanggan, kemungkinan ekspansi lebih lanjut sistem Informasi, faktor biaya akuisisi dan parameter lainnya.

Konsep database telah menjadi begitu kokoh dalam kehidupan kita sehingga telah diterima begitu saja dan tidak pantas mendapat perhatian khusus. Tentang startup IT, algoritme , serangan hacker, mata uang kripto, (Ya, apa yang bisa saya katakan, dan tentang awan juga) di media khusus, lebih banyak artikel telah ditulis daripada tentang "biasa", tetapi basis data yang penting dan perlu serta sistem manajemennya. Di sinilah kami, berulang kali melakukan penelitian mini kami di berbagai bidang dunia TI, tetapi tidak pernah membahas topik ini. Nah, kami segera mengoreksi dan berbagi berita menarik dan statistik baru dengan Anda.

Dan di antara DBMS ada favorit

Sistem manajemen basis data (DBMS) adalah alat perangkat lunak (biasanya antarmuka antara pengguna akhir/aplikasi dan basis data itu sendiri) yang membuatnya lebih mudah dan nyaman untuk bekerja dengan informasi. Misalnya membuat, memperbarui, mencari, menghapus, dan memulihkan data dalam database, serta menentukan hubungan antar komponennya (tabel).

Biasanya, DBMS mencakup tiga komponen utama: data itu sendiri, mesin database, dan skema yang mendefinisikan struktur logis dari data. Ketiga komponen inilah yang membantu memastikan manajemen yang aman danperlindungan basis data,integritas informasi yang disimpan di dalamnya dan prosedur administrasi terpadu - manajemen perubahan, konfigurasi dan kontrol kinerja, cadangan, pemulihan bencana dll.

Tentu saja, ada sangat banyak sistem manajemen basis data itu sendiri, tetapi hampir tidak ada selusin yang pernah didengar semua orang. Untuk menentukan mana dari DBMS yang ada yang masuk ke dalam daftar yang paling populer, DB-Engine menyusun semacam peringkat favorit. Untuk melakukan ini, para ahli menganalisis sejumlah faktor: jumlah penyebutan sistem di situs web (digunakan Mesin pencari Google, Yandex dan Bing), minat umum pengguna di Google Trends, disebutkan dalam diskusi di situs khusus Stack Overflow dan DBA Stack Exchange, situs agregator pekerjaan Indeed dan Simply Hired, dalam profil profesional spesialis di Linkedin dan Upwork, dan, akhirnya, jumlah tweet yang relevan. Namun, kami mencatat bahwa jumlah total instalasi DBMS tidak dipertimbangkan, jadi bagian atas ini ternyata menarik, tetapi masih relatif. Menurut DB-Engine, tiga sistem manajemen yang paling populer adalah: Oracle, MySQL, Microsoft SQL Server.

Menariknya, di antara programmer, keterampilan bekerja dengan DBMS seperti MySQL, MongoDB, dan PostgreSQL ternyata paling diminati, dan pengembang umumnya menempatkan Oracle di tempat terakhir, karena hanya 12% responden yang mencatat sistem ini (sumber: Stack Exchange (Stack Overflow Talent)).

Jadi, menurut hasil dua penelitian, kami melihat bahwa sejauh ini pengguna paling tertarik dengan sistem MySQL. Mungkin tidak sedikit di sini adalah fakta bahwa ini adalah produk open source. Omong-omong, karena alasan inilah jumlah kerentanan terbesar diperbaiki di MySQL pada tahun 2016 - 133. Dan fakta ini sama sekali tidak berarti bahwa sistem itu sendiri tidak terlindungi dengan baik, melainkan menunjukkan bahwa kinerjanya diperiksa oleh jumlah spesialis yang lebih besar, yang meningkatkan peluang untuk mengidentifikasi "titik lemah" dalam keamanan informasi.

Ancaman keamanan umum

Patut dicatat bahwa jumlah tambalan yang memungkinkan untuk secara tidak langsung menentukan derajatperlindungan informasi dalam sistem manajemen basis datadan mengidentifikasi kerentanan yang paling umum. Dengan demikian, sebuah studi oleh Trustwave menunjukkan bahwa pada tahun 2016 pengguna DBMS paling sering menemukan kategori ancaman dunia maya seperti:

  • Eskalasi hak istimewa yang tidak sah.Kerentanan ini memungkinkan individu yang tidak berwenang untuk menggunakan hak administratif untuk mengakses tabel dan konfigurasi database.
  • Buffer meluap.Hal ini menyebabkan server crash, yang merusakperlindungan basis data perangkat keras,dan juga menyebabkan penolakan layanan dan dapat mengakibatkan eksekusi kode berbahaya orang lain.
  • Izin dikonfigurasi secara default.Akuntansi catatan admin, dibiarkan dengan kata sandi default dapat memberikan ruang lingkup tambahan untuk kegiatan penipuan oleh penjahat dunia maya.

Ini adalah hasil studi terbaru. Kami sangat berharap bahwa di masa depan sistem manajemen basis data akan menjadi lebih aman, dan nama-nama baru akan muncul di puncak popularitas DBMS. Kami berjanji untuk mengikuti berita dan membuat Anda tetap up to date dengan tren terbaru.

Database relasional telah digunakan dalam pemrograman untuk waktu yang lama. Pada suatu waktu, mereka mendapatkan popularitas karena kesederhanaan dan kenyamanan model data relasional.

Artikel ini menganalisis perbedaan antara sistem manajemen basis data relasional (DBMS) yang paling populer: SQLite, MySQL, dan PostgreSQL.

Sistem manajemen basis data

Basis data adalah repositori model logis dari berbagai informasi (data) dari semua jenis. Setiap database SQL didasarkan pada model yang menyediakan struktur untuk data yang disimpannya. Sistem manajemen basis data adalah aplikasi (atau pustaka) yang mengelola basis data dengan berbagai bentuk, ukuran, dan jenis.

Sistem manajemen basis data relasional

DBMS relasional menggunakan model relasional untuk bekerja dengan data. Model ini menyimpan informasi apa pun dalam tabel sebagai catatan terkait dengan atribut.

Jenis DBMS ini membutuhkan struktur tabel. Kolom (atribut) dari tabel semacam itu berisi jenis yang berbeda data. Setiap entri database dianggap sebagai baris dalam tabel, atribut yang disajikan dalam bentuk kolom.

Hubungan dan tipe data

Hubungan dapat dilihat sebagai himpunan matematika yang berisi sejumlah atribut, yang bersama-sama mewakili database dan informasi yang tersimpan di dalamnya.

Saat menambahkan catatan ke tabel, Anda perlu mendistribusikan semua komponennya (atribut) menurut tipe data. DBMS relasional yang berbeda menggunakan tipe data yang berbeda, dan mereka tidak selalu dapat dipertukarkan.

Pembatasan seperti itu (seperti, misalnya, dengan tipe data) adalah tipikal untuk DBMS relasional, karena, pada kenyataannya, hubungan antar data dibangun berdasarkan batasan.

Catatan: Basis data NoSQL tidak memiliki batasan ketat seperti itu karena mereka tidak membangun hubungan antar data seperti itu. Untuk mempelajari lebih lanjut tentang NoSQL, baca.

Database relasional populer

Pada artikel ini, kita akan melihat tiga database open source yang paling penting dan populer.

  • SQLite: Sistem manajemen basis data bawaan yang kuat.
  • MySQL: Basis data yang paling populer dan banyak digunakan.
  • PostgreSQL: Sistem database objek yang canggih, open source, dan kompatibel dengan SQL.

Catatan: Aplikasi open source hampir selalu memberikan hak kepada pengguna untuk bebas menggunakan dan memodifikasi kode. Dengan mencabangkan kode, Anda dapat membuat aplikasi yang sama sekali baru. Salah satu cabang dari MySQL, misalnya, adalah MariaDB.

SQLite

SQLite adalah perpustakaan yang kuat yang dapat disematkan ke dalam aplikasi. Basis data lengkap berdasarkan file SQLite menawarkan berbagai alat untuk memproses semua jenis data dan menerapkan batasan yang jauh lebih sedikit daripada basis data relasional lainnya.

Aplikasi yang menggunakan SQLite tidak berkomunikasi menggunakan antarmuka (port, soket), tetapi mengirim permintaan langsung ke file yang menyimpan data (misalnya, database SQLite). Ini membuat aplikasi SQLite sangat cepat dan berkinerja.

Tipe Data SQLite

  • NULL: nilai kosong.
  • INTEGER: nilai integer (bergantung pada ukurannya, nilai disimpan dalam 1, 2, 3, 4, 6 atau 8 byte).
  • REAL: bilangan floating point, disimpan sebagai IEEE 8-byte.
  • TEKS: string teks, disimpan dalam bentuk terenkripsi (UTF-8, UTF-16BE, atau UTF-16LE).
  • BLOB: data biner, disimpan saat dimasukkan.

Manfaat SQLite

  • Konstruksi berbasis file sederhana: seluruh database hanya terdiri dari satu file, yang meningkatkan portabilitasnya.
  • Standar: Meskipun sederhana, sistem SQLite didasarkan pada SQL. Beberapa fungsi telah dihilangkan (RIGHT OUTER JOIN atau UNTUK SETIAP PERNYATAAN), tetapi yang lain telah ditambahkan sebagai gantinya.
  • SQLite sangat bagus untuk pengembangan atau pengujian. Langkah-langkah ini hampir selalu membutuhkan solusi sederhana namun terukur.

Kekurangan SQLite

  • Tidak ada manajemen pengguna. DBMS yang lebih kompleks mendukung manajemen pengguna (hubungan mereka, hak istimewa, dll.). DBMS SQLite sederhana tidak menyediakan fungsi seperti itu.
  • Tidak dapat meningkatkan kinerja. Pustaka SQLite mudah diatur dan digunakan. Namun, ini dirancang sedemikian rupa sehingga tidak memungkinkan kinerja tambahan diperoleh dengan fine-tuning. Artinya, secara teknis tidak mungkin membuat SQLite lebih produktif.

Kapan waktu terbaik untuk menggunakan SQLite

  • Aplikasi tertanam sederhana yang memerlukan portabilitas, seperti aplikasi lokal pengguna tunggal, aplikasi seluler, game.
  • Penggantian disk. Biasanya, aplikasi yang perlu membaca atau menulis file ke disk dapat menggunakan SQLite untuk mendapatkan lebih banyak fungsionalitas.
  • Pengujian.

Kapan lebih baik tidak menggunakan SQLite?

  • aplikasi multi-pengguna. Jika aplikasi dibangun sedemikian rupa sehingga sejumlah besar klien secara bersamaan menggunakan satu database, maka lebih baik menerapkan DBMS relasional yang berfungsi penuh (misalnya, MySQL) dalam aplikasi semacam itu.
  • Aplikasi yang menulis data dalam jumlah besar. Operasi tulis adalah salah satu keterbatasan SQLite. DBMS ini hanya mengizinkan satu operasi tulis pada satu waktu, sehingga membatasi throughput.

MySQL

MySQL adalah DBMS yang paling populer. Ini multifungsi buka aplikasi, yang mendukung pekerjaan sejumlah besar situs. MySQL cukup mudah digunakan dan dapat menyimpan data dalam jumlah besar.

Catatan: Mengingat popularitas MySQL, sejumlah besar aplikasi pihak ketiga, alat dan perpustakaan.

MySQL tidak menerapkan standar SQL penuh. Meskipun demikian, MySQL menawarkan banyak Kegunaan untuk pengguna: server database yang berdiri sendiri, interaksi dengan aplikasi dan situs, dll.

Tipe Data MySQL

  • TINYINT: Sebuah bilangan bulat dalam kisaran -128 hingga 127 (1 byte).
  • SMALLINT: bilangan bulat dari -32768 hingga 32767 (2 byte).
  • MEDIUMINT: angka dari -8388608 hingga 8388608 (3 byte).
  • INT atau INTEGER: Angka dalam kisaran -2147683648 hingga 2147683648 (4 byte).
  • BIGINT: angka dari -2 63 hingga 2 63 -1 (8 byte).
  • FLOAT: bilangan floating point (4 byte).
  • DOUBLE, DOUBLE PRECISION, REAL: nomor floating point presisi ganda.
  • DECIMAL, NUMERIC: nilai presisi yang lebih tinggi.
  • TANGGAL: tanggal.
  • DATETIME: tanggal dan waktu.
  • TIMESTAMP: stempel waktu.
  • WAKTU: waktu dalam format jj:mm:dd.
  • TAHUN: tahun (disimpan sebagai 4 digit secara default, tetapi 2 dapat dikonfigurasi).
  • CHAR: string panjang tetap.
  • VARCHAR: string variabel.
  • TINYBLOB, TINYTEXT: Jenis TEXT memungkinkan Anda untuk menyimpan teks, dan BLOB - gambar, suara, dokumen elektronik dll. Panjang maksimum adalah 225 karakter.
  • BLOB, TEXT: teks dalam jumlah besar, maksimum 65535 karakter.
  • MEDIUMBLOB, MEDIUMTEXT: Sama seperti di atas, tetapi maksimal 16777215 karakter.
  • LONGBLOB, LONGTEXT: Sama seperti di atas, tetapi maksimal 4294967295 karakter.
  • ENUM: hanya menerima salah satu nilai dari himpunan yang diberikan.
  • SET: menerima salah satu atau semua elemen dari nilai himpunan yang diberikan.

Manfaat MySQL

  • Kemudahan penggunaan: MySQL sangat mudah untuk diinstal dan dikonfigurasi. Alat pihak ketiga, termasuk visualisator (antarmuka), membuat bekerja dengan data menjadi lebih mudah.
  • Fungsionalitas: MySQL mendukung sejumlah besar fungsionalitas SQL.
  • Keamanan: MySQL menyediakan banyak fitur canggih bawaan untuk keamanan data.
  • Skalabilitas dan kinerja: MySQL dapat menangani data dalam jumlah besar.

Kekurangan MySQL

  • Keterbatasan: Struktur MySQL memberlakukan beberapa batasan yang akan mencegah aplikasi tingkat lanjut berjalan.
  • Kerentanan: Cara MySQL menangani data membuatnya sedikit kurang aman dibandingkan database lain.
  • Perkembangan lambat: Meskipun MySQL adalah produk open source, perkembangannya sangat lambat. Namun, perlu dicatat di sini bahwa beberapa database lengkap didasarkan pada MySQL (misalnya, MariaDB).

Kapan menggunakan MySQL

  • Operasi Terdistribusi: Server Basis Data Mandiri data MySQL mendukung banyak operasi dan menyediakan beberapa fungsi tambahan.
  • Keamanan Data Tinggi: MySQL menawarkan keamanan data yang tinggi.
  • Situs Web dan Aplikasi Web: Terlepas dari keterbatasannya, MySQL dapat menjalankan hampir semua situs web dan aplikasi web. Alat yang fleksibel dan terukur ini mudah digunakan.
  • Solusi Kustom: MySQL dapat disesuaikan untuk memenuhi persyaratan yang tepat dari situs atau aplikasi.

Kapan tidak menggunakan MySQL

  • Konflik SQL: Karena MySQL tidak sepenuhnya menerapkan standar SQL, maka tidak sepenuhnya kompatibel dengan SQL. Karena MySQL tidak selalu bisa terintegrasi dengan DBMS lain.
  • Dukungan konkurensi yang lemah: Meskipun MySQL melakukan pembacaan dengan baik, pembacaan dan penulisan secara bersamaan dapat menyebabkan masalah.
  • Kurangnya beberapa fitur (misalnya, pencarian teks lengkap).

PostgreSQL

PostgreSQL adalah DBMS yang canggih, open source, berorientasi objek. PostgreSQL mengimplementasikan standar ANSI/ISO SQL.

Tidak seperti DBMS lainnya, PostgreSQL mendukung fitur database relasional dan berorientasi objek yang sangat penting: transaksi ACID (Atomicity, Consistency, Isolation, Durability) yang andal, dll.

Berdasarkan teknologi yang kuat, DBMS PostgreSQL dapat memproses sejumlah besar tugas secara bersamaan. Konsistensi dipertahankan tanpa memblokir pembacaan berkat MVCC.

Meskipun DBMS PostgreSQL tidak sepopuler MySQL, sejumlah besar alat dan pustaka tambahan telah dikembangkan untuk itu, yang menyederhanakan bekerja dengan data dan meningkatkan kinerja DBMS.

Tipe data PostgreSQL

  • bigint: Sebuah bilangan bulat delapan byte yang ditandatangani.
  • bigserial: Sebuah bilangan bulat auto-increment 8-byte.
  • bit [(n)]: String bit dengan panjang tetap.
  • bit bervariasi [(n)]: Panjang variabel bit string.
  • boolean: nilai Boolean (benar/salah).
  • kotak: segi empat pada bidang.
  • byte: data biner.
  • karakter bervariasi [(n)]: panjang variabel string karakter.
  • karakter [(n)]: string karakter dengan panjang tetap
  • cidr: alamat jaringan IPv4 atau IPv6.
  • lingkaran: lingkaran di pesawat.
  • tanggal: tanggal (tahun, bulan, hari).
  • presisi ganda: angka floating point presisi ganda (8 byte).
  • inet: alamat host IPv4 atau IPv6.
  • integer: Sebuah integer empat byte yang ditandatangani.
  • interval [(p)]: interval waktu.
  • garis: garis tak terhingga pada bidang.
  • lseg: ruas garis pada bidang.
  • macaddr: alamat MAC (Kontrol Akses Media).
  • uang: mata uang.
  • numerik [(p, s)]: Nilai numerik yang tepat dengan presisi yang dipilih.
  • jalur: jalur geometris pada bidang.
  • titik: titik geometris pada bidang.
  • poligon: jalur geometris tertutup pada bidang (poligon)
  • real: angka floating point presisi tunggal (4 byte).
  • smallint: bilangan bulat dua byte yang ditandatangani.
  • serial: integer kenaikan otomatis 4-byte.
  • teks: String karakter panjang variabel.
  • waktu [(p)] : waktu hari (tidak ada zona waktu).
  • waktu [(p)] dengan zona waktu: waktu hari dan zona waktu.
  • timestamp [(p)] : timestamp (tanggal dan waktu) tanpa zona waktu.
  • timestamp [(p)] dengan zona waktu: timestamp dengan zona waktu.
  • tsquery: permintaan pencarian teks.
  • tsvector: dokumen pencarian teks.
  • txid_snapshot: Cuplikan ID transaksi tingkat pengguna.
  • uuid: pengenal unik universal.
  • xml: data XML.

Manfaat PostgreSQL

  • Sistem manajemen database PostgreSQL terbuka, kompatibel dengan SQL, dan gratis.
  • Komunitas PostgreSQL yang aktif akan membantu Anda menemukan solusi untuk masalah apa pun yang terkait dengan DBMS, kapan pun.
  • Dukungan untuk alat pihak ketiga: Selain fitur canggih bawaan, PostgreSQL mendukung banyak alat pihak ketiga terbuka untuk desain, manajemen data, dan banyak lagi.
  • Skalabilitas dan ekstensibilitas.
  • Orientasi objek.

Kekurangan PostgreSQL

  • Performa: Performa PostgreSQL lebih lambat dari MySQL dalam beberapa situasi.
  • Popularitas rendah.
  • Karena kekurangan di atas, tidak semua penyedia hosting mendukung PostgreSQL.

Kapan menggunakan PostgreSQL

  • Jika aplikasi membutuhkan integritas data.
  • Untuk melakukan tugas pengguna yang kompleks.
  • Jika di masa depan aplikasi membutuhkan database berbayar yang lebih andal, PostgreSQL akan menjadi transisi yang lebih mudah.
  • Untuk mendukung aplikasi dengan struktur kompleks, PostgreSQL menawarkan serangkaian fungsi khusus.

Kapan lebih baik tidak menggunakan PostgreSQL

  • Jika aplikasi membutuhkan operasi baca cepat.
  • Jika aplikasi tidak memerlukan integritas data absolut, ACID, atau struktur kompleks, PostgreSQL bisa menjadi terlalu kompleks.
  • Replikasi data lebih rumit daripada di MySQL, oleh karena itu lebih baik tidak menggunakan PostgreSQL dalam cluster.
Tag: