#7-Database Server

Database server adalah sistem yang berfungsi untuk menyimpan, mengelola, dan menyediakan data untuk berbagai keperluan, baik dalam skala kecil maupun besar. Lebih lanjut, sistem ini memainkan peran kunci dalam banyak aplikasi, membantu perusahaan maupun organisasi untuk mengakses serta mengelola informasi secara efisien.

Fungsinya tidak hanya sekadar menyimpan data, tetapi juga memfasilitasi pengambilan data, pembaruan, hingga penghapusan data sesuai kebutuhan aplikasi atau pengguna. Perangkat ini menjadi tulang punggung berbagai sistem, mulai dari aplikasi perbankan hingga platform media sosial.

Sebagai pusat pengelolaan data, database server membantu pengguna untuk mengakses informasi secara simultan tanpa mengurangi efisiensi atau keamanan. Dengan memanfaatkan teknologi canggih, seperti sistem relational database atau NoSQL, server ini mampu mengelola data dalam jumlah besar dengan cepat dan andal. Artikel ini akan membahas lebih dalam mengenai database server mulai dari fungsi, cara kerja, jenis hingga contohnya. 

Apa itu Database Server?
Database server adalah perangkat keras atau perangkat lunak yang dirancang khusus untuk menjalankan layanan basis data. Server ini memungkinkan banyak pengguna atau aplikasi untuk mengakses, menyimpan, dan memanipulasi data. Biasanya digunakan oleh perusahaan yang membutuhkan manajemen data dalam jumlah besar dengan tingkat keamanan dan kecepatan yang tinggi.

Secara sederhana, database server bisa diibaratkan sebagai perpustakaan digital di mana semua informasi disimpan dalam bentuk terorganisir. Server ini merespons permintaan pengguna, seperti pencarian atau pengambilan data, tanpa mempengaruhi data asli yang tersimpan.

Jenis database server yang umum digunakan diantaranya, Relational Database Server, NoSQL Database Server, dan Object-oriented Database Server. Setiap jenis tersebut memiliki karakteristik dan kegunaan yang berbeda, tergantung pada kebutuhan spesifik aplikasi atau organisasi.

Fungsi Database Server
Database server memiliki beberapa fungsi utama yang mendukung berbagai keperluan operasional:

  • Menyimpan dan Mengelola Data Secara Terpusat
    Semua data disimpan di satu lokasi terpusat sehingga memudahkan pengelolaan dan pengaksesannya. Dengan sistem ini, organisasi dapat memastikan bahwa data yang digunakan konsisten dan terkini di seluruh departemen atau aplikasi.
  • Menjamin Keamanan dan Privasi Data
    Database server dilengkapi dengan mekanisme keamanan seperti otentikasi, enkripsi, dan kontrol akses. Hal ini memastikan bahwa hanya pengguna yang memiliki otorisasi yang dapat mengakses atau mengubah data tertentu.
  • Mengelola Akses Multi-User
    Server ini mampu melayani permintaan dari banyak pengguna secara bersamaan tanpa mengurangi kecepatan atau konsistensi data. Dengan fitur seperti transaksi ACID (Atomicity, Consistency, Isolation, Durability), integritas data tetap terjamin bahkan dalam kondisi akses yang kompleks.
  • Memudahkan Pemulihan Data
    Dengan fitur backup otomatis dan kemampuan pemulihan bencana (disaster recovery), database server membantu organisasi meminimalkan risiko kehilangan data.
  • Mempermudah Integrasi dengan Sistem Lain
    Database server sering kali dirancang agar kompatibel dengan berbagai jenis aplikasi dan platform. Hal ini memungkinkan integrasi yang mudah antara sistem yang berbeda, seperti ERP, CRM, atau aplikasi e-commerce.
    Dengan cara kerja yang terstruktur dan fungsi yang beragam, database server menjadi tulang punggung utama dalam pengelolaan data modern. Penggunaannya yang efisien tidak hanya meningkatkan produktivitas tetapi juga mendukung keamanan dan kelangsungan operasional perusahaan.

Jenis-Jenis Database Server
Terdapat berbagai jenis database server yang dapat digunakan sesuai kebutuhan aplikasi:

  • Relational Database Server
    Relational Database Server menggunakan model relasional untuk menyimpan data dalam bentuk tabel. Sistem ini cocok untuk data yang terstruktur dan memerlukan konsistensi tinggi. Bahasa SQL umumnya digunakan untuk mengelola data pada server ini. Contoh populer adalah MySQL, PostgreSQL, dan Microsoft SQL Server.
  • NoSQL Database Server
    NoSQL Database Server dirancang untuk menangani data yang tidak terstruktur, seperti dokumen, pasangan kunci-nilai, atau data grafis. Server ini ideal untuk aplikasi yang membutuhkan skalabilitas tinggi dan fleksibilitas dalam menyimpan data, seperti MongoDB dan Cassandra.
  • Object-oriented Database Server
    Jenis ini menyimpan data sebagai objek yang dapat diakses langsung oleh aplikasi berbasis pemrograman berorientasi objek. Server ini cocok untuk aplikasi yang membutuhkan manipulasi data yang kompleks, seperti CAD (Computer-Aided Design) atau multimedia.

Cara Kerja Database Server
Cara kerja database server melibatkan beberapa langkah yang dirancang untuk memastikan pengelolaan data yang efisien:

  • Menerima Permintaan dari Klien
    Klien pada aplikasi atau sistem akan mengirimkan permintaan ke database server melalui protokol tertentu, seperti SQL (Structured Query Language). Permintaan ini bisa berupa pencarian data, penyimpanan data baru, atau pembaruan data.
  • Memproses Permintaan
    Server memproses permintaan tersebut dengan mencari data yang diminta di dalam sistem penyimpanannya. Proses ini dilakukan menggunakan algoritma pencarian yang efisien dan, dalam banyak kasus, memanfaatkan fitur indeks untuk mempercepat pencarian.
  • Mengelola Akses Multi-pengguna
    Jika ada banyak pengguna yang mengakses server secara bersamaan, database server menggunakan mekanisme seperti transaksi dan locking untuk memastikan integritas data tetap terjaga. Hal ini menghindari konflik yang dapat terjadi saat dua pengguna mencoba mengubah data yang sama secara bersamaan.
  • Mengirimkan Hasil ke Klien
    Setelah memproses permintaan, server mengirimkan hasilnya kembali ke klien dalam bentuk data yang dapat dibaca dan digunakan. Waktu respons sangat bergantung pada kompleksitas permintaan, ukuran data, dan kapasitas server.

Contoh Penggunaan Database Server
Beberapa contoh implementasi database server dalam kehidupan sehari-hari adalah sebagai berikut:

  • E-commerce
    Di platform e-commerce, database server digunakan untuk menyimpan data penting, seperti informasi produk (nama, deskripsi, harga, dan stok), data pengguna (nama, alamat, dan preferensi belanja), serta riwayat transaksi.
    Database ini membantu mengelola data keranjang belanja, riwayat pembelian, dan pengiriman, sehingga proses transaksi dapat berjalan dengan lancar dan cepat.
  • Perbankan
    Pada sektor perbankan, database server menyimpan data sensitif seperti informasi nasabah (nama, nomor rekening, alamat), serta riwayat transaksi (setoran, penarikan, transfer).
    Keamanan data sangat diperhatikan, dengan perlindungan melalui enkripsi dan otorisasi akses yang ketat. Database ini juga mendukung transaksi secara real-time, memungkinkan bank memberikan layanan yang cepat dan aman kepada nasabah.
  • Media Sosial
    Di media sosial, database server menyimpan berbagai data pengguna, termasuk profil, postingan, komentar, dan interaksi lainnya. Data ini perlu dikelola dengan baik agar dapat diakses dengan cepat.
    Database juga mendukung fitur pencarian dan pengorganisasian konten, seperti feed berita yang disesuaikan dengan minat pengguna. Ini membantu platform media sosial memberikan pengalaman pengguna yang baik meskipun dengan banyaknya data dan pengguna aktif.

 

Instalasi Database Server

Berikut adalah panduan cara menginstal Database Server (MariaDB) dengan LAMP stack serta phpMyAdmin di Debian 13 (Trixie) menggunakan perintah apt.
Sebelum memulai, silahkan buka terminal, login menggunakan user root lalu perbarui indeks paket sistem ke versi yang terbaru:

Langkah 1: Update System Repository

root@ns100:/# apt update && apt upgrade -y
Hit:1 https://repo.smkn1klaten.sch.id/debian trixie InRelease
Hit:2 https://repo.smkn1klaten.sch.id/debian-security trixie-security InRelease
41 packages can be upgraded. Run 'apt list --upgradable' to see them.
Upgrading:
  base-files     e2fsprogs        libblkid1      libfdisk1      libsqlite3-0       logsave                  perl-modules-5.40
  bash           eject            libcap2        liblastlog2-2  libss2             mount                    tzdata
  bsdextrautils  fdisk            libcap2-bin    libmount1      libssl3t64         openssl                  util-linux
  bsdutils       gzip             libcom-err2    libpcre2-8-0   libuuid1           openssl-provider-legacy  util-linux-extra
  busybox        libaudit-common  libexpat1      libperl5.40    linux-image-amd64  perl                     util-linux-locales
  dhcpcd-base    libaudit1        libext2fs2t64  libsmartcols1  login              perl-base

Installing dependencies:
  linux-image-6.12.107+deb13-amd64

Suggested packages:
  firmware-linux-free  linux-doc-6.12  debian-kernel-handbook

Summary:
  Upgrading: 41, Installing: 1, Removing: 0, Not Upgrading: 0
  Download size: 133 MB
  Space needed: 168 MB / 17.3 GB available

Get:1 https://repo.smkn1klaten.sch.id/debian trixie/main amd64 base-files amd64 13.8+deb13u7 [88.3 kB]
Get:2 https://repo.smkn1klaten.sch.id/debian trixie/main amd64 bash amd64 5.2.37-2+b10 [1,501 kB]
Get:3 https://repo.smkn1klaten.sch.id/debian trixie/main amd64 bsdutils amd64 1:2.41.5-0+deb13u1 [110 kB]
Get:4 https://repo.smkn1klaten.sch.id/debian trixie/main amd64 gzip amd64 1.13-1+deb13u1 [139 kB]
Get:5 https://repo.smkn1klaten.sch.id/debian trixie/main amd64 libperl5.40 amd64 5.40.1-6+deb13u1 [4,326 kB]
...
Processing triggers for initramfs-tools (0.148.4) ...
update-initramfs: Generating /boot/initrd.img-6.12.107+deb13-amd64
Processing triggers for libc-bin (2.41-12+deb13u4) ...
Processing triggers for man-db (2.13.1-1) ...
Processing triggers for debianutils (5.23.2) ...
root@ns100:/#

 

Langkah 2: Instal Apache Web Server

root@ns100:~# apt install apache2 -y
apache2 is already the newest version (2.4.68-1~deb13u1).
Summary:
  Upgrading: 0, Installing: 0, Removing: 0, Not Upgrading: 0

Jika munucl pesan seperti diatas, artinya aplikasi apache2 sudah ter-install (Sudah terinstall di tutorial #6 Web Server), lanjut ke langkah selanjutnya

 

Langkah 3: Instal dan Amankan MariaDB (Database Server)

Debian menggunakan MariaDB sebagai sistem manajemen basis data bawaan pengganti MySQL. Instal server dan klien basis data dengan perintah:

root@ns100:~# apt install mariadb-server mariadb-client -y
Installing:
  mariadb-client  mariadb-server

Installing dependencies:
  galera-4                 libhtml-template-perl       mariadb-client-core
  gawk                     libhttp-date-perl           mariadb-common
  libaio1t64               libhttp-message-perl        mariadb-plugin-provider-bzip2
  libcgi-fast-perl         libio-compress-brotli-perl  mariadb-plugin-provider-lz4
  libcgi-pm-perl           libio-html-perl             mariadb-plugin-provider-lzma
  libclone-perl            liblwp-mediatypes-perl      mariadb-plugin-provider-lzo
  libconfig-inifiles-perl  liblzo2-2                   mariadb-plugin-provider-snappy
  libdbd-mariadb-perl      libmariadb3                 mariadb-server-core
  libdbi-perl              libnuma1                    mysql-common
  libencode-locale-perl    libpcre2-posix3             psmisc
  libfcgi-bin              libsigsegv2                 pv
  libfcgi-perl             libsnappy1v5                rsync
  libfcgi0t64              libterm-readkey-perl        socat
  libhtml-parser-perl      libtimedate-perl
  libhtml-tagset-perl      liburi-perl

Suggested packages:
  gawk-doc            libsql-statement-perl    libbusiness-isbn-perl  libwww-perl   netcat-openbsd
  libmldbm-perl       libdata-dump-perl        libmime-base32-perl    mailx         doc-base
  libnet-daemon-perl  libipc-sharedcache-perl  libregexp-ipv6-perl    mariadb-test  python3-braceexpand

Summary:
  Upgrading: 0, Installing: 45, Removing: 0, Not Upgrading: 0
  Download size: 21.2 MB
  Space needed: 204 MB / 17.0 GB available

Get:1 http://10.10.129.20/debian trixie/main amd64 galera-4 amd64 26.4.23-0+deb13u1 [916 kB]
Get:2 http://10.10.129.20/debian trixie/main amd64 libsigsegv2 amd64 2.14-1+b2 [34.4 kB]
Get:3 http://10.10.129.20/debian trixie/main amd64 gawk amd64 1:5.2.1-2+b1 [674 kB]
Get:4 http://10.10.129.20/debian trixie/main amd64 mysql-common all 5.8+1.1.1 [6,784 B]
Get:5 http://10.10.129.20/debian trixie/main amd64 mariadb-common all 1:11.8.6-0+deb13u1 [29.5 kB]
Get:6 http://10.10.129.20/debian trixie/main amd64 libdbi-perl amd64 1.652-2~deb13u1 [867 kB]
Get:7 http://10.10.129.20/debian trixie/main amd64 libconfig-inifiles-perl all 3.000003-3+deb13u1 [45.0 kB]
...
Setting up mariadb-server (1:11.8.6-0+deb13u1) ...
Created symlink '/etc/systemd/system/multi-user.target.wants/mariadb.service' → '/usr/lib/systemd/system/mariadb.service'.
Setting up libcgi-fast-perl (1:2.17-1) ...
Processing triggers for man-db (2.13.1-1) ...
Processing triggers for libc-bin (2.41-12+deb13u4) ...
root@ns100:~#

Setelah selesai, jalankan skrip keamanan bawaan untuk mengatur password root, menghapus user anonim, dan memblokir akses root melalui remote

root@ns100:~# mariadb-secure-installation

Ikuti petunjuk di layar komputer Anda. Sangat disarankan untuk menjawab Y (Yes / Ya) pada semua pilihan yang ada.

NOTE: MariaDB is secure by default in Debian. Running this script is
      useless at best, and misleading at worst. This script will be
      removed in a future MariaDB release in Debian. Please read
      /usr/share/doc/mariadb-server/README.Debian.gz for details.

Enter root user password or leave blank: [Tekan Enter]

Enter current password for root (enter for none): [Tekan Enter]
OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] n
 ... skipping.

You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] y
New password: root12345
Re-enter new password: root12345
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
SQL executed without errors!
The operation might have been successful, or it might have not done anything.

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
SQL executed without errors!
The operation might have been successful, or it might have not done anything.

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
SQL executed without errors!
The operation might have been successful, or it might have not done anything.
 - Removing privileges on test database...
SQL executed without errors!
The operation might have been successful, or it might have not done anything.

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!
root@ns100:~#

 

Langkah 4: Instal PHP dan Ekstensi yang Diperlukan

Debian 13 menyediakan versi PHP 8.4 secara bawaan. Instal PHP beserta ekstensi dasar yang dibutuhkan oleh Apache dan phpMyAdmin:

root@ns100:~# apt install php libapache2-mod-php php-mysql php-mbstring php-xml php-curl php-zip -y
Installing:
  libapache2-mod-php  php  php-curl  php-mbstring  php-mysql  php-xml  php-zip

Installing dependencies:
  libapache2-mod-php8.4  libsodium23  php-common  php8.4-common    php8.4-mysql     php8.4-xml
  libargon2-1            libxslt1.1   php8.4      php8.4-curl      php8.4-opcache   php8.4-zip
  libonig5               libzip5      php8.4-cli  php8.4-mbstring  php8.4-readline

Suggested packages:
  php-pear

Summary:
  Upgrading: 0, Installing: 24, Removing: 0, Not Upgrading: 0
  Download size: 6,904 kB
  Space needed: 30.5 MB / 16.7 GB available

Get:1 http://10.10.129.20/debian trixie/main amd64 php-common all 2:96 [13.3 kB]
Get:2 http://10.10.129.20/debian trixie/main amd64 php8.4-common amd64 8.4.24-1~deb13u1 [776 kB]
Get:3 http://10.10.129.20/debian trixie/main amd64 php8.4-opcache amd64 8.4.24-1~deb13u1 [470 kB]
Get:4 http://10.10.129.20/debian trixie/main amd64 php8.4-readline amd64 8.4.24-1~deb13u1 [12.7 kB]
Setting up php8.4 (8.4.24-1~deb13u1) ...
Setting up php (2:8.4+96) ...
Processing triggers for man-db (2.13.1-1) ...
Processing triggers for libc-bin (2.41-12+deb13u4) ...
Processing triggers for php8.4-cli (8.4.24-1~deb13u1) ...
Processing triggers for libapache2-mod-php8.4 (8.4.24-1~deb13u1) ...
root@ns100:~#

 

Langkah 5: Instal phpMyAdmin menggunakan APT

root@ns100:~# apt install phpmyadmin -y
Installing:
  phpmyadmin

Installing dependencies:
  dbconfig-common          libjs-jquery-metadata      php-nikic-fast-route
  dbconfig-mysql           libjs-jquery-mousewheel    php-phpmyadmin-motranslator
  fontconfig-config        libjs-jquery-tablesorter   php-phpmyadmin-shapefile
  fonts-dejavu-core        libjs-jquery-timepicker    php-phpmyadmin-sql-parser
  fonts-dejavu-mono        libjs-jquery-ui            php-psr-cache
  icc-profiles-free        libjs-sphinxdoc            php-psr-container
  javascript-common        libjs-underscore           php-psr-http-factory
  libabsl20240722          liblerc4                   php-psr-http-message
  libaom3                  libmcrypt4                 php-psr-log
  libavif16                librav1e0.7                php-slim-psr7
  libdav1d7                libsharpyuv0               php-symfony-cache
  libde265-0               libsvtav1enc2              php-symfony-cache-contracts
  libdeflate0              libtiff6                   php-symfony-config
  libfontconfig1           libwebp7                   php-symfony-dependency-injection
  libgav1-1                libx265-215                php-symfony-deprecation-contracts
  libgd3                   libxpm4                    php-symfony-expression-language
  libheif-plugin-aomenc    libyuv0                    php-symfony-filesystem
  libheif-plugin-dav1d     node-popper2               php-symfony-service-contracts
  libheif-plugin-libde265  php-bcmath                 php-symfony-var-exporter
  libheif-plugin-x265      php-bz2                    php-tcpdf
  libheif1                 php-composer-ca-bundle     php-twig
  libimagequant0           php-fig-http-message-util  php-twig-i18n-extension
  libjbig0                 php-gd                     php-webmozart-assert
  libjpeg62-turbo          php-getallheaders          php8.4-bcmath
  libjs-bootstrap5         php-google-recaptcha       php8.4-bz2
  libjs-codemirror         php-mariadb-mysql-kbs      php8.4-gd
  libjs-jquery             php-mcrypt                 php8.4-mcrypt

Suggested packages:
  libgd-tools               libheif-plugin-rav1e   mcrypt        php-gd2
  libheif-plugin-ffmpegdec  libheif-plugin-svtenc  php-apcu      php-pragmarx-google2fa-qrcode
  libheif-plugin-jpegdec    bootstrap-icons        php-dbase     php-bacon-qr-code
  libheif-plugin-jpegenc    libjs-bootstrap5-doc   php-imagick   php-code-lts-u2f-php-server
  libheif-plugin-j2kdec     libjs-requirejs        php-twig-doc
  libheif-plugin-j2kenc     libjs-jquery-ui-docs   php-recode
  libheif-plugin-kvazaar    libmcrypt-dev          www-browser

Summary:
  Upgrading: 0, Installing: 82, Removing: 0, Not Upgrading: 0
  Download size: 29.3 MB
  Space needed: 142 MB / 16.6 GB available

Get:1 http://10.10.129.20/debian trixie/main amd64 libmcrypt4 amd64 2.5.8-8 [72.2 kB]
Get:2 http://10.10.129.20/debian trixie/main amd64 php8.4-mcrypt amd64 3:1.0.7-5 [16.6 kB]
Get:3 http://10.10.129.20/debian trixie/main amd64 php-mcrypt all 3:1.0.7-5 [3,776 B]
...

Selama proses instalasi berjalan, manajer paket akan menampilkan beberapa layar konfigurasi interaktif:

Web server selection (Pilihan server web): Tekan tombol spasi untuk menandai pilihan [*] apache2, lalu tekan tombol Tab dan pilih Enter.

Configure database for phpmyadmin with dbconfig-common? Pilih Yes.

phpMyAdmin application password: Masukkan kata sandi baru khusus untuk penggunaan internal database phpMyAdmin, atau kosongkan saja untuk membuat kata sandi acak otomatis.

 

Langkah 6: Konfigurasi Akhir & Pengujian

Muat ulang (restart) server web Apache untuk menerapkan semua modul PHP dan konfigurasi otomatis dari phpMyAdmin

root@ns100:~# /etc/init.d/apache2 restart
Restarting apache2 (via systemctl): apache2.service.
root@ns100:~#

Solusi Masalah Login Root MariaDB

Secara bawaan, instalasi MariaDB versi modern menggunakan plugin keamanan unix_socket untuk akun root. Fitur keamanan ini menyebabkan Anda tidak bisa login ke phpMyAdmin secara langsung menggunakan pengguna root dan kata sandi root sistem.

Untuk mengatasinya, Anda harus membuat pengguna administratif baru khusus untuk mengelola database di phpMyAdmin:

root@ns100:~# mariadb -u root -p
Enter password: root12345
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 76
Server version: 11.8.6-MariaDB-0+deb13u1 from Debian -- Please help get to 10k stars at https://github.com/MariaDB/Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> CREATE USER 'adminuser'@'localhost' IDENTIFIED BY 'strong_password';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'adminuser'@'localhost' WITH GRANT OPTION;
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> EXIT;
Bye
root@ns100:~#

Sekarang, Anda sudah bisa menggunakan nama pengguna adminuser dan kata sandi yang telah dibuat tersebut untuk masuk (login) ke halaman web phpMyAdmin.

Sumber : https://partner.biznetgio.com/apa-itu-database-server-fungsi-cara-kerja-jenis-dan-contohnya/