Sudahkah Anda Mengenal Basis Data atau Biasa Disebut Database

Sudahkah Anda Mengenal Basis Data atau Biasa Disebut Database



Basis data (bahasa Inggris: database), atau sering pula dieja basisdata, adalah kumpulan informasi yang disimpan di dalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut. Perangkat lunak yang digunakan untuk mengelola dan memanggil kueri (query) basis data disebut sistem manajemen basis data (database management system, DBMS). Sistem basis data dipelajari dalam ilmu informasi.


Konsep dasar dari basis data adalah kumpulan dari catatan-catatan, atau potongan dari pengetahuan. Sebuah basis data memiliki penjelasan terstruktur dari jenis fakta yang tersimpan di dalamnya: penjelasan ini disebut skema. Skema menggambarkan obyek yang diwakili suatu basis data, dan hubungan di antara obyek tersebut. Ada banyak cara untuk mengorganisasi skema, atau memodelkan struktur basis data: ini dikenal sebagai model basis data atau model data. Model yang umum digunakan sekarang adalah model relasional, yang menurut istilah layman mewakili semua informasi dalam bentuk tabel-tabel yang saling berhubungan dimana setiap tabel terdiri dari baris dan kolom (definisi yang sebenarnya menggunakan terminologi matematika). Dalam model ini, hubungan antar tabel diwakili denga menggunakan nilai yang sama antar tabel. Model yang lain seperti model hierarkis dan model jaringan menggunakan cara yang lebih eksplisit untuk mewakili hubungan antar tabel.

Istilah basis data mengacu pada koleksi dari data-data yang saling berhubungan, dan perangkat lunaknya seharusnya mengacu sebagai sistem manajemen basis data (database management system/DBMS). Jika konteksnya sudah jelas, banyak administrator dan programer menggunakan istilah basis data untuk kedua arti tersebut.

Sebuah database terdiri dari koleksi data yang terorganisir untuk satu kebutuhan atau lebih. Salah satu cara untuk mengelompokkan database melibatkan jenis konten, misalnya: bibliografi, teks lengkap, numerik, gambar. Metode klasifikasi lain mulai dari memeriksa model database atau arsitektur database. Software mengatur data dalam database sesuai model database. Pada tahun 2010 model relasional paling sering muncul. Model-model lain seperti model hierarkis dan model jaringan menggunakan representasi hubungan lebih eksplisit.



Arsitektur

Sejumlah arsitektur database telah ada. Banyak database menggunakan kombinasi strategi.

Database terdiri dari perangkat lunak berbasis "wadah" yang terstruktur untuk mengumpulkan dan menyimpan informasi sehingga pengguna dapat mengambil, menambah, mengupdate atau menghapus informasi tersebut dengan cara otomatis. Database program dirancang bagi pengguna sehingga mereka dapat menambah atau menghapus informasi yang dibutuhkan. Struktur database adalah berupa tabel, terdiri dari baris dan kolom informasi.

Online Transaction Processing sistem (OLTP) sering menggunakan arsitektur menyimpan data "berorientasi baris"atau "berorientasi objek", sedangkan gudang-data dan aplikasi yang berfokus pada pengambilan lain seperti Google 's Bigtable, atau sistem bibliographic database (katalog perpustakaan) dapat menggunakan arsitektur DBMS berorientasi kolom.

Berorientasi Dokumen, XML, knowledgebases, serta database frame dan penyimpanan-RDF (juga dikenal sebagai penyimpanan triple), juga dapat menggunakan kombinasi dari arsitektur ini dalam pelaksanaannya.

Tidak semua database memiliki atau memerlukan skema database ("database berskema lebih sedikit").

Selama bertahun-tahun sistem database umum telah mendominasi industri database. Ini menawarkan berbagai fungsi, dapat dipakai orang banyak, jika sebagian besar situasi  bukan  dalam pengolahan data modern. Ini telah ditingkatkan dengan extensible datatypes (perintis di proyek PostgreSQL) untuk memungkinkan pengembangan suatu rentang yang sangat luas dari aplikasi.

Ada juga jenis lain dari database yang tidak dapat diklasifikasikan sebagai database relasional. Yang paling penting adalah sistem manajemen database objek, yang menyimpan bahasa objek asli tanpa menggunakan bahasa data definisi terpisah dan tanpa menerjemahkannya ke dalam skema penyimpanan terpisah. Tidak seperti sistem relasional, database objek ini menyimpan hubungan antara tipe data yang kompleks sebagai bagian dari model penyimpanan mereka dengan cara yang tidak memerlukan perhitungan runtime data yang berhubungan dengan penggunaan algoritma eksekusi aljabar relasional.





Sistem Manajemen Database


Sebuah sistem manajemen database (Database Management System / DBMS) terdiri atas perangkat lunak yang mengatur penyimpanan data. Sebuah DBMS mengendalikan pembuatan, pemeliharaan, dan penggunaan struktur penyimpanan basis data organisasi sosial dan pengguna mereka. Hal ini memungkinkan organisasi untuk memegang kendali pengembangan database organisasi yang luas di tangan Database Administrator (DBA) dan spesialis lainnya. Dalam sistem yang besar, sebuah DBMS memungkinkan pengguna dan perangkat lunak lain untuk menyimpan dan mengambil data dengan cara yang terstruktur.


Sistem manajemen database biasanya dikategorikan menurut model database yang mereka dukung, seperti jaringan, relasional atau model obyek. Model ini cenderung untuk menentukan bahasa query yang tersedia untuk mengakses database. Satu bahasa query umum yang digunakan untuk database relasional adalah SQL, meskipun sintaks dan fungsi  SQL dapat berbeda dari satu DBMS ke DBMS yang lain. Sebuah bahasa query yang umum untuk database obyek adalah OQL, meskipun tidak semua vendor dari database objek mengimplementasikannya, sebagian dari mereka menerapkan metode ini. Sebagian Besar internal DBMS adalah model data yang independen, dan berkaitan dengan mengelola faktor-faktor seperti kinerja, konkurensi, integritas, dan pemulihan dari kegagalan perangkat keras. Di daerah ini terdapat perbedaan besar antar produk.


Sebuah sistem manajemen database relasional (relational database management system  / RDBMS) menerapkan fitur dari model relasional. Dalam konteks ini, "Informasi Prinsip"  Date  menyatakan: "kandungan informasi seluruh database diwakili dalam satu dan hanya satu cara. Yaitu eksplisit sebagai nilai kolom dalam posisi (atribut) dan baris hubungan (tupel). Oleh karena itu, tidak ada petunjuk eksplisit antara tabel yang terkait. " Hal ini bertentangan dengan sistem manajemen basis data objek (object database management system  / ODBMS), yang tidak menyimpan pointer eksplisit antar jenis yang terkait.


Perhatian harus digunakan bila menggunakan informasi berikut dalam konteks historis. Sebagai contoh, Pick adalah legacy (multivalued) RDBMS, yang tidak menggunakan model SQL dan karena itu tidak menggunakan komponen-komponen yang diasumsikan oleh arsitektur SQL modern.



Komponen DBMS 
Menurut buku teks Wikibooks konten terbuka, "Design of Main Memory Database System/Overview of DBMS", DBMS tahun 2009 yang menerapkan model relasional. Lainnya lebih sedikit menggunakan sistem DBMS, seperti DBMS objek, umumnya beroperasi di daerah khusus pengelolaan data-aplikasi di mana kinerja dan skalabilitas memperoleh prioritas lebih tinggi daripada fleksibilitas kemampuan ad hoc query yang disediakan melalui algoritma ekxekusi aljabar relasional pada DBMS relasional .


Komponen RDBMS 
- Interface driver - Seorang pengguna atau program aplikasi yang memulai  baik  modifikasi skema ataupun modifikasi konten. Driver ini dibangun di atas SQL. Mereka menyediakan metode untuk menyiapkan statements, jalankan statements, memperoleh hasil, dll. Contohnya mencakup DDL, DCL, DML, ODBC, dan JDBC . Beberapa vendor menyediakan antarmuka memiliki bahasa tertentu. Misalnya MySQL dan Firebird menyediakan driver untuk PHP, Python, dll.



- Mesin SQL (SQL engine) - Komponen ini menginterpretasikan dan mengeksekusi SQL query. Ini terdiri dari tiga komponen utama (compiler, optimizer, dan mesin eksekusi). 
- Mesin Transaksi - Transaksi merupakan urutan operasi membaca atau menulis elemen database, yang dikelompokkan bersama-sama.

- Mesin Relational - Objek relasional seperti Tabel, Index, dan Referential integrity constraints diimplementasikan dalam komponen ini.
- Mesin Penyimpanan - Komponen ini menyimpan dan mengambil catatan data. Ini juga menyediakan mekanisme untuk menyimpan metadata dan kontrol informasi seperti membatalkan log, Redo log, kunci tabel, dll


Komponen ODBMS
- Driver Bahasa - Seorang pengguna atau program aplikasi yang memulai baik modifikasi skema atau modifikasi konten melalui bahasa pemrograman yang dipilih. Driver kemudian menyediakan mekanisme untuk mengelola beberapa siklus objek pada aplikasi ruang memori dengan penyimpanan persisten dengan mendasarinya. Contohnya termasuk C + +, Java, .NET, dan Ruby.

- Mesin Query - Komponen ini menginterpretasikan dan mengeksekusi perintah permintaan spesifik dalam bahasa dalam bentuk OQL, LINQ, JDOQL, JPAQL, atau lainnya. Mesin pencarian memberi balikan koleksi bahasa khusus objek yang memenuhi permintaan predikat dinyatakan sebagai operator logis misalnya >, <, >=, <=, AND, OR, NOT, GroupBY, dll

- Mesin Transaksi - Transaksi merupakan urutan operasi membaca atau menulis elemen database, yang dikelompokkan bersama-sama. Mesin transaksi berkaitan dengan hal-hal seperti isolasi data dan konsistensi dalam cache driver dan volume data dengan berkoordinasi dengan mesin penyimpanan.

- Mesin Penyimpanan - komponen penyimpanan ini dan mengambil objek dalam sebuah model  kompleks yang berubah-ubah. Ini juga menyediakan mekanisme untuk mengatur dan menyimpan metadata dan kontrol informasi seperti membatalkan log, Redo log, kunci grafik,


Tugas utama paket DBMS 
- Pengembangan Database: digunakan untuk mendefinisikan dan mengatur isi, hubungan, dan struktur data yang diperlukan untuk membangun database.

- Interogasi Database: dapat mengakses data dalam database untuk pencarian informasi dan pembuatan laporan. Pengguna dapat selektif mengambil dan menampilkan informasi dan menghasilkan laporan dan dokumen tercetak.

- Pemeliharaan Database: digunakan untuk menambah, menghapus, memperbarui, membenarkan, dan melindungi data dalam database.

- Pengembangan Aplikasi: digunakan untuk mengembangkan prototipe dari layar entri data, query, form, laporan, tabel, dan label untuk aplikasi prototipe. Atau menggunakan 4GL (4th Generation Language) atau Generasi Bahasa ke-4 atau generator aplikasi untuk mengembangkan kode program.


Jenis

Database operasional
Database ini menyimpan data rinci yang diperlukan untuk mendukung operasi dari seluruh organisasi. Mereka juga disebut database daerah subjek (subject-area databases / SADB), transaksi database, dan database produksi. Sebagai contoh:
- database pelanggan
- database pribadi
- database persediaan
- database akuntansi

Database analitikal 
Database Analitik (alias OLAP- On Line Analytical Processing) database yang statis, read-only yang menyimpan arsip, data historis yang digunakan untuk analisis. Sebagai contoh, perusahaan mungkin menyimpan catatan penjualan selama sepuluh tahun terakhir dalam database analitik dan menggunakan database untuk menganalisis strategi pemasaran dalam hubungan dengan demografis.

Di web, Anda akan sering melihat database analitik dalam bentuk katalog persediaan seperti yang ditunjukkan sebelumnya dari Amazon.com. Sebuah katalog database persediaan analitis deskriptif biasanya menyimpan informasi tentang semua produk yang tersedia dalam persediaan.

Halaman Web dihasilkan secara dinamis oleh query daftar produk yang tersedia di persediaan terhadap beberapa parameter pencarian. Halaman dinamis yang dihasilkan akan menampilkan informasi tentang masing-masing item (seperti judul, penulis, ISBN) yang disimpan dalam database.

Data warehouse
Sebuah data warehouse (gudang data) menyimpan data dari tahun sekarang dan sebelumnya - data yang diambil dari berbagai database operasional organisasi. Hal ini menjadi sumber utama data yang telah disaring, diedit, distandarisasi dan diintegrasi sehingga dapat digunakan oleh para manajer dan pengguna profesional lainnya di seluruh organisasi. Warehouse data ditandai dengan lambatnya untuk memasukkan ke dalam tapi cepat untuk mengambilnya. Perkembangan terkini dalam pergudangan data menyebabkan penggunaan Shared nothing architecture untuk memfasilitasi skala ekstrim.




Database terdistribusi
Ini adalah database kerja kelompok lokal dan departemen di kantor regional, kantor cabang, pabrik dan lokasi kerja lainnya. Database ini dapat mencakup segmen dari kedua database operasional umum dan pengguna umum, serta data yang dihasilkan dan digunakan hanya di sebuah situs pengguna sendiri.

Database end-user
Database ini terdiri dari berbagai data file yang dikembangkan oleh pengguna akhir di workstation mereka. Contoh dari ini adalah koleksi dokumen dalam spreadsheet, pengolah kata dan bahkan download file.

Database eksternal 
Database ini menyediakan akses ke eksternal, data online milik pribadi - tersedia dengan biaya bagi pengguna-akhir dan organisasi dari jasa komersial. Akses ke banyak informasi dari database eksternal tersedia dengan biaya dari layanan online komersial dan dengan atau tanpa biaya dari banyak sumber di Internet.

Database hipermedia di web 
Ini adalah sebuah set halaman multimedia yang saling berhubungan di situs-web. Mereka terdiri dari halaman homepage dan halaman hyperlink lain multimedia atau media campuran seperti teks, grafis, gambar foto, klip video, audio dll

Database navigasi 
Dalam database navigasi, query menemukan objek terutama dengan mengikuti referensi dari objek lain. Antarmuka navigasi tradisional adalah prosedural, meskipun salah satu dapat mencirikan beberapa sistem modern seperti XPath sebagai navigasi dan deklaratif secara simultan.

Database In-memory 
Di memori database terutama mengandalkan pada memori utama untuk penyimpanan data komputer. Hal ini bertentangan dengan sistem manajemen database yang menggunakan mekanisme penyimpanan berbasis disk. database memori utama lebih cepat dari disk yang dioptimalkan database dimana algoritma optimasi internal lebih sederhana dan lebih sedikit mengeksekusi instruksi CPU. Mengakses data dalam memori memberikan kinerja lebih cepat dan lebih mudah diprediksi dari disk. Dalam aplikasi di mana waktu respon sangat penting, seperti peralatan jaringan telekomunikasi yang mengoperasikan sistem darurat, database memori utama yang sering digunakan.

Databases berorientasi dokumen
Databases berorientasi dokumen adalah program komputer yang dirancang untuk aplikasi berbasis dokumen. Sistem ini dapat diimplementasikan sebagai lapisan di atas sebuah database relasional atau objek database. Berbeda dengan database relasional, Databases berbasis dokumen tidak menyimpan data dalam tabel dengan bidang berukuran seragam untuk setiap record. Sebaliknya, mereka menyimpan setiap catatan sebagai dokumen yang memiliki karakteristik tertentu. Setiap beberapa field yang panjang dapat ditambahkan ke dokumen. Fields juga dapat berisi beberapa lembar data.

Database waktu nyata
Sebuah database waktu nyata (Real-time database) adalah sistem pengolahan dirancang untuk menangani beban kerja yang statenya dapat berubah terus-menerus. Ini berbeda dari database tradisional yang mengandung data yang terus-menerus, sebagian besar tidak terpengaruh oleh waktu. Misalnya, perubahan pasar saham dengan cepat dan dinamis. Proses real-time berarti bahwa transaksi diproses cukup cepat untuk mendapatkan hasil dan bertindak segera. Real-time database berguna untuk akuntansi, perbankan, hukum, catatan medis, multi-media, proses kontrol, sistem reservasi, dan analisis data ilmiah. Seperti peningkatan daya komputer dan dapat menyimpan lebih banyak data, database real-time terintegrasi ke dalam masyarakat dan bekerja di banyak aplikasi.

Database relasional
Standar komputasi bisnis di tahun 2009, database relasional adalah database yang paling umum digunakan saat ini. Menggunakan tabel untuk struktur informasi sehingga dapat mudah dibaca dan mudah dicari.


Model

Model database post-relasional
Produk-produk menawarkan model data yang lebih umum dibandingkan dengan model relasional yang kadang-kadang diklasifikasikan sebagai pasca-relasional. Model data dalam produk tersebut mencakup hubungan namun tidak dibatasi oleh Prinsip Informasi, yang mensyaratkan keterwakilan dari semua informasi dengan nilai-nilai data dalam kaitannya dengan hal itu

Beberapa ekstensi tersebut untuk model relasional benar-benar mengintegrasikan konsep-konsep dari teknologi penanggalan model relasional. Misalnya, mereka mengijinkan representasi dari grafik diarahkan dengan pohon-pohon di node.

Beberapa produk menerapkan model tersebut dengan memperluas sistem database relasional dengan fitur-fitur non-relasional. Namun, yang lainnya telah tiba di banyak tempat yang sama dengan menambahkan fitur relasional untuk sistem pra-relasional. Anehnya, hal ini memungkinkan produk-produk historis yang pra-relasional, seperti PICK and MUMPS, untuk mengajukan klaim yang masuk akal untuk pasca-relasional dalam arsitekturnya saat ini.

Model database objek
Dalam beberapa tahun terakhir, paradigma berorientasi objek telah diterapkan di berbagai bidang seperti database teknik dan spasial, telekomunikasi dan di dalam berbagai domain ilmiah. Para konglomerasi pemrograman database berorientasi objek dan teknologi mengarah ke model pemrograman baru yang dikenal sebagai database objek. Database ini berusaha untuk membawa dunia database dan dunia pemrograman aplikasi lebih dekat dan bersama-sama, khususnya dengan memastikan bahwa database menggunakan tipe sistem yang sama dengan program aplikasi. Ini bertujuan untuk menghindari biaya overhead (kadang-kadang disebut sebagai impedansi mismatch) untuk mengubah informasi antara perwakilannya dalam database (misalnya sebagai baris dalam tabel) dan perwakilannya dalam program aplikasi (biasanya sebagai objek). Pada saat yang sama, obyek database berusaha untuk memperkenalkan ide-ide kunci dari pemrograman objek, seperti enkapsulasi dan polimorfisme, ke dalam dunia database.

Berbagai cara-cara tersebut telah dicoba untuk menyimpan objek dalam database. Beberapa produk telah mendekati masalah dari sisi-program aplikasi, dengan membuat objek yang dimanipulasi oleh program terus-menerus. Hal ini juga biasanya memerlukan penambahan beberapa jenis bahasa query, karena bahasa pemrograman konvensional tidak menyediakan fungsionalitas tingkat bahasa untuk menemukan objek berdasarkan pada isi informasi mereka. Lainnya telah menyerang masalah dari ujung database, dengan mendefinisikan sebuah model data berorientasi objek untuk database, dan mendefinisikan database bahasa pemrograman yang memungkinkan kemampuan pemrograman penuh seperti halnya fasilitas permintaan tradisional.



Struktur Penyimpanan



Database dapat menyimpan tabel relasional / indeks dalam memori atau hard disk dalam salah satu bentuk:





- ordered/unordered flat files
- ISAM
- heaps
- hash buckets
- B+ trees

Setiap bentuk itu memiliki berbagai keuntungan dan kerugian. Tetapi yang paling sering dipakai adalah B+ trees dan ISAM.

Database obyek menggunakan jajaran mekanisme penyimpanan. Beberapa menggunakan file-file memori virtual yang dipetakan untuk membuat bahasa native (C++, Java, dll) obyek persisten. Hal ini sangat efisien namun dapat membuat akses multi-bahasa yang lebih sulit. Lainnya memecah objek ke dalam komponen tetap dan panjang yang bervariasi yang kemudian dikelompokkan erat di blok berukuran tetap pada disk dan dipasang kembali ke format yang sesuai baik untuk klien ataupun dalam ruang alamat  klien. Teknik lain yang populer melibatkan menyimpan benda-benda di tupel (seperti sebuah database relasional) yang server databasenya kemudian me-reassembles untuk klien.

Pilihan desain penting Lainnya  berhubungan dengan clustering data menurut kategori (seperti pengelompokan data berdasarkan bulan, atau lokasi), menciptakan perhitungan view yang dikenal sebagai materialized views, partisi data sesuiai dengan jangkauan atau hash. Memori manajemen dan topologi penyimpanan dapat menjadi pilihan desain yang penting bagi desainer database juga. Sama seperti normalisasi digunakan untuk mengurangi kebutuhan penyimpanan dan meningkatkan diperpanjang dari database, sebaliknya denormalization sering digunakan untuk mengurangi kompleksitas penggabungan dan mengurangi waktu eksekusi untuk query.


Pengindeksan

Semua database ini dapat mengambil keuntungan dari pengindeksan untuk meningkatkan kecepatan mereka. Teknologi ini telah maju pesat sejak penggunaan di awal tahun 1960-an dan 1970-an. Jenis indeks yang paling umum menggunakan daftar yang diurutkan dari isi beberapa kolom tabel tertentu, dengan pointer ke baris yang berhubungan dengan nilai. Sebuah indeks memungkinkan sekumpulan baris tabel mencocokkan beberapa kriteria untuk mempercepat mencari keberadaan. Biasanya, indeks juga disimpan dalam berbagai bentuk struktur data yang disebutkan di atas (seperti B-tree, hash, dan linked list). Biasanya, seorang desainer database memilih teknik-teknik khusus untuk meningkatkan efisiensi dalam kasus tertentu dari jenis indeks yang dibutuhkan.

Kebanyakan DBMS relasional dan beberapa DBMS objek memiliki keuntungan bahwa indeks dapat diciptakan atau dihapus tanpa mengubah aplikasi yang ada yang mereka manfaatkan, Database memilih berbagai strategi didasarkan pada yang mana diperkirakan akan berjalan paling cepat. Dengan kata lain, indeks bertindak transparan ke aplikasi atau end-user query database, sedangkan mereka mempengaruhi kinerja, setiap perintah SQL akan berjalan dengan atau tanpa indeks untuk menghitung hasil dari pernyataan SQL. RDBMS akan menghasilkan rencana query tentang bagaimana untuk menjalankan query: terkadang sering dihasilkan dengan menganalisis runtime dari algoritma yang berbeda dan memilih proses tercepat. Beberapa algoritma kunci yang berhubungan dengan gabungan adalah nested loop join, sort-merge join and hash join. Yang mana sebuah RDBMS memilih tergantung pada apakah indeksnya ada, apa jenisnya dan kardinalitasnya.

Sebuah indeks mempercepat akses ke data, tetapi memiliki kelemahan juga. Pertama, setiap indeks meningkatkan jumlah penyimpanan yang digunakan pada hard drive yang juga diperlukan untuk file database, dan kedua, indeks harus diperbarui setiap kali data yang berubah, dan membutuhkan waktu. (Jadi indeks menghemat waktu dalam membaca data, tetapi membutuhkan waktu dalam memasukkan dan mengubah data. Dengan demikian tergantung pada penggunaan data yang harus diletakkan apakah indeks secara keseluruhan plus atau minus dalam upaya untuk efisiensi.)

Sebuah kasus khusus dari indeks yaitu indeks utama yang berdasarkan primary key: indeks utama harus memastikan bahwa referensi unik untuk direkam. Sering kali, untuk tujuan yang satu ini hanya menggunakan indeks nomor berjalan(nomor ID). indeks Primer memainkan peran penting dalam database relasional, dan mereka dapat mempercepat akses ke data.



Transaksi dan konkurensi

Untuk tambahan model data mereka, database yang paling praktis ("database transaksional") berusaha untuk melakukan transaksi database . Idealnya, program database harus mengikuti peraturan ACID, dirangkum di sini:

- Atomicity : Semua tugas dalam suatu transaksi harus terjadi, atau tak satu pun dari mereka. Transaksi ini harus diselesaikan, atau yang lain itu harus dibatalkan (rolling back).

- Consistency (Konsistensi): Setiap transaksi harus menjaga batasan integritas - menyatakan aturan konsistensi - dari database. Tidak bisa meninggalkan data dalam keadaan kontradiktif.

- Isolation (Pemisahan): Dua transaksi simultan tidak dapat mencampuri satu sama lain. Hasil intermediate dalam transaksi harus tetap terlihat dengan transaksi lainnya.

- Durability (Daya Tahan): Transaksi yang telah diselesaikan tidak dapat dibatalkan atau hasil mereka dibuang. Mereka harus bertahan melalui (misalnya) merestart DBMS setelah crash.

Dalam prakteknya, banyak DBMS memungkinkan relaksasi selektif sebagian besar peraturan-peraturan tersebut - untuk performa yang lebih baik.

Kendali konkurensi memastikan bahwa transaksi mengeksekusi secara aman dan mengikuti aturan ACID. DBMS harus dapat memastikan bahwa mereka serializable, jadwal recoverable digenerate, dan tidak adanya tindakan transaksi yang dilakukan akan hilang saat transaksi dibatalkan.


Replikasi


Replikasi database sering berkaitan erat dengan transaksi. Jika database dapat mencatat tindakan individu, satunya dapat membuat salinan data secara real time. DBA dapat menggunakan duplikat untuk meningkatkan kinerja dan / atau ketersediaan seluruh sistem database.

Konsep replikasi umum meliputi:

- Replika master/slave: Seluruh permintaan menulis yang dilakukan pada master dan kemudian direplikasi ke slave
- Quorum: Hasil permintaan membaca dan menulis yang dihitung dengan query replika "mayoritas".
- Multimaster: Dua atau lebih replika yang sinkron satu sama lain melalui identifier transaksi.

Replikasi paralel sinkron database memungkinkan replikasi transaksi pada beberapa server secara bersamaan, yang menyediakan metode untuk cadangan dan keamanan serta ketersediaan data. Ini biasanya disebut sebagai "database clustering".


Keamanan

Keamanan database menunjukkan sistem, proses, dan prosedur yang melindungi database dari kegiatan yang tidak disengaja. Menegakkan keamanan adalah salah satu tugas utama dari DBA.

DBMS biasanya menegakkan keamanan melalui kontrol akses, pemeriksaan (auditing), dan enkripsi :
- kontrol akses memastikan dan membatasi siapa saja yang dapat terhubung dan apa yang bisa mereka lakukan untuk database.
- Auditing mencatat tindakan atau perubahan apa yang telah dilakukan, kapan dan oleh siapa.
- Enkripsi: banyak database komersial termasuk mekanisme enkripsi built-in untuk meng-encode data ke dalam tabel native dan untuk men-decipher informasi "on the fly" saat permintaan masuk. DBA juga dapat mengamankan dan mengenkripsi koneksi jika diperlukan menggunakan DSA, MD5, SSL atau legacy encryption standards.

Di Britania Raya (UK), undang-undang melindungi masyarakat dari pengungkapan yang tidak sah terhadap informasi pribadi yang dipegang pada database yang berada di Kantor Komisaris Informasi. Organisasi berbasis di Britania Raya dan memegang data pribadi dalam format elektronik (misalnya database) harus mendaftar dengan Komisaris Data.


Locking (penguncian)

Database menangani beberapa operasi bersamaan dengan penguncian. Ini adalah bagaimana konkurensi dan beberapa bentuk dasar integritas dikelola dalam sistem database. kunci tersebut dapat diterapkan pada row level, atau pada level lain seperti page (satu blok data dasar), extent (beberapa array page) atau bahkan seluruh tabel. Hal ini membantu menjaga integritas data dengan memastikan bahwa hanya satu proses pada suatu waktu dapat memodifikasi data yang sama.

Dalam file filesystem atau folder dasar, hanya satu kunci pada suatu waktu yang dapat diatur, membatasi penggunaan untuk satu proses saja. Database, di sisi lain, dapat mengatur dan menahan kunci lebih dari satu pada saat yang sama pada berbagai tingkat struktur data fisik. Skema pengunci mesin database menentukan bagaimana menetapkan dan mempertahankan kunci berdasarkan SQL atau transaksi yang diajukan oleh pengguna. Secara umum, setiap aktivitas pada database harus melibatkan beberapa atau penguncian ekstensif.

Pada tahun 2009 kebanyakan sistem DBMS menggunakan kunci shared dan eksklusif. Kunci eksklusif berarti bahwa tidak ada kunci lain dapat memperoleh  objek data saat ini selama kunci eksklusif berlangsung. DBMS biasanya menetapkan kunci eksklusif ketika database perlu mengubah data, selama operasi UPDATE atau DELETE.

Kunci shared dapat mengambil kepemilikan satu dari yang lain dari struktur data saat ini. Kunci shared biasanya digunakan ketika database membaca data (selama operasi SELECT). Jumlah, sifat kunci dan waktu kunci memegang blok data dapat memiliki dampak besar pada kinerja database. Penguncian buruk dapat mengakibatkan kinerja respon menjadi bencana (biasanya merupakan hasil dari permintaan SQL yang jelek, atau database struktur fisik yang tidak memadai)

Tingkat isolasi dari server data memaksa perilaku penguncian default. Mengubah tingkat isolasi akan mempengaruhi bagaimana kunci shared atau eksklusif harus di-set pada data untuk seluruh sistem database. Default isolasi umumnya 1, dimana data tidak dapat dibaca ketika sedang diubah, melarang kembalinya "ghost data" kepada pengguna akhir.

Pada titik intensif tertentu atau penguncian eksklusif yang tidak tepat dapat menyebabkan situasi "deadlock" antara dua kunci, dimana tidak ada kunci yang bisa dilepas karena mereka mencoba untuk saling mendapatkan sumber daya satu sama lain. Database harus memiliki mekanisme fail-safe yang secara otomatis akan "mengorbankan" salah satu kunci, sehingga melepaskan sumber daya. Proses atau transaksi yang terlibat dalam "deadlock" bisa diputar kembali.

Database juga dapat dikunci karena alasan lain, seperti pembatasan akses untuk tingkat pengguna tertentu. Beberapa DBA juga mengunci basis data untuk pemeliharaan rutin, yang mencegah perubahan yang dilakukan selama pemeliharaan. Namun, banyak database modern yang tidak mengunci basis data selama pemeliharaan rutin. misalnya "Pemeliharaan Database rutin" untuk PostgreSQL.


Aplikasi

Fungsi database dalam berbagai aplikasi, mencakup hampir seluruh jenis perangkat lunak komputer. Database telah menjadi metode pilihan penyimpanan untuk aplikasi multiuser yang besar, di mana koordinasi antara banyak pengguna diperlukan. Bahkan pengguna individu menemukannya cocok, dan banyak program surat elektronik dan organisator pribadi yang didasarkan pada teknologi database standar. Driver software database tersedia untuk mayoritas platform database sehingga software aplikasi dapat menggunakan API umum untuk mengambil informasi yang disimpan dalam database. API database yang sering digunakan termasuk JDBC dan ODBC .


Database dalam media baru

Dalam media baru, database mengumpulkan item yang mana pengguna dapat melaksanakan berbagai operasi seperti melihat, navigasi, membuat, dan mencari. Walaupun ada berbagai jenis item dalam database, masing-masing item memiliki makna yang sama. Tidak seperti sebuah narasi atau film, koleksinya terkomputerisasi dan karena itu mungkin menawarkan pengalaman unik dengan pandangan masing-masing. Bentuk data ini dapat menampilkan presentasi yang unik tentang seperti apa dunia ini. Database dapat dilihat sebagai bentuk simbolis dari umur komputer.


Perangkat lunak basis data


Perangkat lunak basis data yang banyak digunakan dalam pemrograman dan merupakan perangkat basis data aras tinggi (high level):
- Microsoft SQL Server
- Oracle
- Sybase
- Interbase
- XBase
- Firebird
- MySQL
- PostgreSQL
- Microsoft Access
- dBase III
- Paradox
- FoxPro
- Visual FoxPro
- Arago
- Force
- Recital
- dbFast
- dbXL
- Quicksilver
- Clipper
- FlagShip
- Harbour
- Visual dBase
- Lotus Smart Suite Approach

Selain perangkat lunak di atas, terdapat juga perangkat lunak pemrograman basis data aras rendah (low level), diantaranya:
- Btrieve
- Tsunami Record Manager








____________________________________________
Referensi:

- MySQL Cluster
- Oracle Real Application Cluster (RAC) 
- Kantor Komisaris Informasi - ICO
- "Informasi tentang Shared Locks"


Bacaan lebih lanjut:

- Ling Liu and Tamer M. Özsu (Eds.) (2009). "Encyclopedia of Database Systems, 4100 p. 60 illus. ISBN 978-0-387-49616-0. Table of Content available at http://refworks.springer.com/mrw/index.php?id=1217
- Beynon-Davies, P. (2004). Database Systems. 3rd Edition. Palgrave, Houndmills, Basingstoke.
- Connolly, Thomas and Carolyn Begg. Database Systems. New York: Harlow, 2002.
- Date, C. J. An Introduction to Database Systems, Eighth Edition, Addison Wesley, 2003.
- Galindo, J.; Urrutia, A.; Piattini, M. Fuzzy Databases: Modeling, Design and Implementation (FSQL guide). Idea Group Publishing Hershey, USA, 2006.
- Galindo, J., Ed. Handbook on Fuzzy Information Processing in Databases. Hershey, PA: Information Science Reference (an imprint of Idea Group Inc.), 2008.
- Gray, J. and Reuter, A. Transaction Processing: Concepts and Techniques, 1st edition, Morgan Kaufmann Publishers, 1992.
- Kroenke, David M. Database Processing: Fundamentals, Design, and Implementation (1997), Prentice-Hall, Inc., pages 130-144.
- Kroenke, David M. and David J. Auer. Database Concepts. 3rd ed. New York: Prentice, 2007.
- Lightstone, S.; T. Teorey and T. Nadeau, Physical Database Design: the database professional's guide to exploiting indexes, views, storage, and more, Morgan Kaufmann Press, 2007. ISBN 0-12-369389-6.
- O'Brien, James. "Management Information Systems". New York 1999
- Shih, J. "Why Synchronous Parallel Transaction Replication is Hard, But Inevitable?", white paper, 2007.
- Teorey, T.; Lightstone, S. and Nadeau, T. Database Modeling & Design: Logical Design, 4th edition, Morgan Kaufmann Press, 2005. ISBN 0-12-685352-5
- Tukey, John W. Exploratory Data Analysis. Reading, MA: Addison Wesley, 1977.
- Manovich, Lev.Database as a Symbolic Form, Cambridge: MIT press, 2001.

Komentar