Penyimpanan
Penyimpanan basis data adalah wadah perwujudan fisik dari sebuah basis data. Ini terdiri dari tingkat internal (fisik) dalam arsitektur database. Penyimpanan ini juga berisi semua informasi yang dibutuhkan (misalnya, metadata, “data tentang data”, dan struktur data internal) untuk merekonstruksi tingkat konseptual dan tingkat eksternal dari tingkat internal bila diperlukan. Basis data sebagai objek digital mengandung tiga lapisan informasi yang harus disimpan: data, struktur, dan semantik. Penyimpanan yang tepat dari ketiga lapisan tersebut diperlukan untuk pelestarian dan umur panjang basis data di masa depan. Menempatkan data ke dalam penyimpanan permanen pada umumnya merupakan tanggung jawab mesin basis data alias “mesin penyimpanan”. Meskipun biasanya diakses oleh DBMS melalui sistem operasi yang mendasarinya (dan sering menggunakan sistem file sistem operasi sebagai perantara untuk tata letak penyimpanan), properti penyimpanan dan pengaturan konfigurasi sangat penting untuk pengoperasian DBMS yang efisien, dan dengan demikian dipelihara dengan cermat oleh administrator basis data. DBMS, ketika beroperasi, selalu memiliki basis data yang berada di beberapa jenis penyimpanan (misalnya, memori dan penyimpanan eksternal). Data basis data dan informasi tambahan yang dibutuhkan, mungkin dalam jumlah yang sangat besar, dikodekan ke dalam bit. Data biasanya berada di penyimpanan dalam struktur yang terlihat sangat berbeda dari cara data terlihat pada tingkat konseptual dan eksternal, tetapi dengan cara yang berusaha untuk mengoptimalkan (sebaik mungkin) rekonstruksi tingkat-tingkat ini ketika dibutuhkan oleh pengguna dan program, serta untuk menghitung jenis informasi tambahan yang dibutuhkan dari data (misalnya, ketika melakukan kueri basis data).
Beberapa DBMS mendukung untuk menentukan pengkodean karakter yang digunakan untuk menyimpan data, sehingga beberapa pengkodean dapat digunakan dalam database yang sama.
Berbagai struktur penyimpanan basis data tingkat rendah digunakan oleh mesin penyimpanan untuk menserialisasi model data sehingga dapat ditulis ke media pilihan. Teknik seperti pengindeksan dapat digunakan untuk meningkatkan kinerja. Penyimpanan konvensional berorientasi pada baris, tetapi ada juga database yang berorientasi pada kolom dan korelasi.
Tampilan yang diwujudkan
Sering kali redundansi penyimpanan digunakan untuk meningkatkan kinerja. Contoh yang umum adalah menyimpan materialized view, yang terdiri dari tampilan eksternal yang sering dibutuhkan atau hasil kueri. Menyimpan tampilan seperti itu menghemat biaya komputasi yang mahal setiap kali dibutuhkan. Kelemahan dari materialized views adalah biaya overhead yang dikeluarkan ketika memperbaruinya agar tetap tersinkronisasi dengan data basis data asli yang telah diperbaharui, dan biaya redundansi penyimpanan.
Replikasi
Kadang-kadang database menggunakan redundansi penyimpanan dengan replikasi objek database (dengan satu atau lebih salinan) untuk meningkatkan ketersediaan data (baik untuk meningkatkan kinerja beberapa akses pengguna akhir secara simultan ke objek database yang sama, dan untuk memberikan ketahanan dalam kasus kegagalan parsial database terdistribusi). Pembaruan objek yang direplikasi perlu disinkronkan di seluruh salinan objek. Dalam banyak kasus, seluruh basis data direplikasi.
Virtualisasi
Dengan virtualisasi data, data yang digunakan tetap berada di lokasi aslinya dan akses waktu nyata dibuat untuk memungkinkan analisis di berbagai sumber. Hal ini dapat membantu menyelesaikan beberapa kesulitan teknis seperti masalah kompatibilitas saat menggabungkan data dari berbagai platform, menurunkan risiko kesalahan yang disebabkan oleh data yang salah, dan menjamin bahwa data terbaru digunakan. Selain itu, menghindari pembuatan database baru yang berisi informasi pribadi dapat mempermudah kepatuhan terhadap peraturan privasi. Namun, dengan virtualisasi data, koneksi ke semua sumber data yang diperlukan harus beroperasi karena tidak ada salinan data lokal, yang merupakan salah satu kelemahan utama dari pendekatan ini.
Keamanan
Keamanan basis data berhubungan dengan berbagai aspek dalam melindungi konten basis data, pemilik, dan penggunanya. Mulai dari perlindungan dari penggunaan database yang tidak sah yang disengaja hingga akses database yang tidak disengaja oleh entitas yang tidak berwenang (misalnya, seseorang atau program komputer).
Kontrol akses database berhubungan dengan pengendalian siapa (seseorang atau program komputer tertentu) yang diizinkan untuk mengakses informasi apa yang ada di dalam database. Informasi dapat terdiri dari objek database tertentu (misalnya, jenis record, record tertentu, struktur data), perhitungan tertentu atas objek tertentu (misalnya, jenis kueri, atau kueri tertentu), atau menggunakan jalur akses tertentu ke objek tersebut (misalnya, menggunakan indeks tertentu atau struktur data lain untuk mengakses informasi). Kontrol akses database diatur oleh personil khusus yang berwenang (oleh pemilik database) yang menggunakan antarmuka DBMS yang dilindungi keamanan khusus.
Hal ini dapat dikelola secara langsung secara individual, atau dengan penugasan individu dan hak istimewa untuk kelompok, atau (dalam model yang paling rumit) melalui penugasan individu dan kelompok untuk peran yang kemudian diberikan hak. Keamanan data mencegah pengguna yang tidak berhak untuk melihat atau memperbarui database. Dengan menggunakan kata sandi, pengguna diizinkan mengakses seluruh basis data atau bagian dari basis data yang disebut “subskema”. Sebagai contoh, database karyawan dapat berisi semua data tentang seorang karyawan, tetapi satu kelompok pengguna mungkin diizinkan untuk melihat hanya data penggajian, sementara yang lain diizinkan mengakses hanya riwayat kerja dan data medis. Jika DBMS menyediakan cara untuk memasukkan dan memperbarui database secara interaktif, serta menginterogasinya, kemampuan ini memungkinkan untuk mengelola database pribadi.
Keamanan data secara umum berhubungan dengan melindungi potongan data tertentu, baik secara fisik (misalnya, dari korupsi, atau penghancuran, atau penghapusan; misalnya, lihat keamanan fisik), atau interpretasi data tersebut, atau bagian dari data tersebut menjadi informasi yang berarti (misalnya, dengan melihat rangkaian bit yang menyusunnya, menyimpulkan nomor kartu kredit tertentu yang valid; misalnya, lihat enkripsi data).
Perubahan dan akses pencatatan mencatat siapa yang mengakses atribut yang mana, apa yang diubah, dan kapan diubah. Layanan pencatatan memungkinkan audit basis data forensik di kemudian hari dengan menyimpan catatan kejadian dan perubahan akses. Kadang-kadang kode tingkat aplikasi digunakan untuk mencatat perubahan daripada membiarkannya di database. Pemantauan dapat diatur untuk mencoba mendeteksi pelanggaran keamanan. Oleh karena itu, organisasi harus memperhatikan keamanan database dengan serius karena banyaknya manfaat yang diberikan. Organisasi akan terlindungi dari pelanggaran keamanan dan aktivitas peretasan seperti intrusi firewall, penyebaran virus, dan perangkat lunak tebusan. Hal ini membantu dalam melindungi informasi penting perusahaan, yang tidak dapat dibagikan dengan pihak luar dengan alasan apa pun.
Transaksi dan konkurensi
Transaksi basis data dapat digunakan untuk memperkenalkan beberapa tingkat toleransi kesalahan dan integritas data setelah pemulihan dari kerusakan. Transaksi basis data adalah sebuah unit kerja, biasanya merangkum sejumlah operasi pada basis data (misalnya, membaca objek basis data, menulis, mendapatkan atau melepaskan kunci, dll.), Sebuah abstraksi yang didukung dalam basis data dan juga sistem lainnya. Setiap transaksi memiliki batasan yang jelas dalam hal eksekusi program/kode mana yang termasuk dalam transaksi tersebut (ditentukan oleh pemrogram transaksi melalui perintah transaksi khusus).
Akronim ACID menggambarkan beberapa sifat ideal dari sebuah transaksi database: atomisitas, konsistensi, isolasi, dan daya tahan.
Migrasi
Database yang dibuat dengan satu DBMS tidak dapat dipindah ke DBMS lain (misalnya, DBMS lain tidak dapat menjalankannya). Namun, dalam beberapa situasi, diinginkan untuk memigrasi database dari satu DBMS ke DBMS lainnya. Alasan utamanya adalah ekonomis (DBMS yang berbeda mungkin memiliki total biaya kepemilikan atau TCO yang berbeda), fungsional, dan operasional (DBMS yang berbeda mungkin memiliki kemampuan yang berbeda). Migrasi melibatkan transformasi database dari satu jenis DBMS ke jenis DBMS lainnya. Transformasi harus mempertahankan (jika memungkinkan) aplikasi terkait database (yaitu, semua program aplikasi terkait) secara utuh. Dengan demikian, tingkat konseptual dan arsitektur eksternal database harus dipertahankan dalam transformasi. Mungkin diinginkan juga beberapa aspek dari tingkat internal arsitektur dipertahankan. Migrasi database yang kompleks atau besar dapat menjadi proyek yang rumit dan mahal (satu kali) dengan sendirinya, yang harus diperhitungkan dalam keputusan untuk melakukan migrasi. Hal ini terlepas dari fakta bahwa ada alat yang dapat membantu migrasi antara DBMS tertentu. Biasanya, vendor DBMS menyediakan alat untuk membantu mengimpor database dari DBMS populer lainnya.
Membangun, memelihara, dan menyetel
Setelah mendesain basis data untuk sebuah aplikasi, tahap selanjutnya adalah membangun basis data. Biasanya, DBMS tujuan umum yang sesuai dapat dipilih untuk digunakan untuk tujuan ini. DBMS menyediakan antarmuka pengguna yang dibutuhkan untuk digunakan oleh administrator database untuk mendefinisikan struktur data aplikasi yang dibutuhkan dalam model data masing-masing DBMS. Antarmuka pengguna lainnya digunakan untuk memilih parameter DBMS yang dibutuhkan (seperti terkait keamanan, parameter alokasi penyimpanan, dll.).
Ketika database sudah siap (semua struktur data dan komponen lain yang dibutuhkan sudah ditentukan), biasanya database diisi dengan data aplikasi awal (inisialisasi database, yang biasanya merupakan proyek yang berbeda; dalam banyak kasus menggunakan antarmuka DBMS khusus yang mendukung penyisipan massal) sebelum membuatnya beroperasi. Dalam beberapa kasus, database menjadi operasional saat kosong dari data aplikasi, dan data diakumulasikan selama pengoperasiannya.
Setelah database dibuat, diinisialisasi, dan diisi, database perlu dipelihara. Berbagai parameter database mungkin perlu diubah dan database mungkin perlu disetel (tuning) untuk kinerja yang lebih baik; struktur data aplikasi dapat diubah atau ditambahkan, program aplikasi baru yang terkait dapat ditulis untuk menambah fungsionalitas aplikasi, dll.
Pencadangan dan pemulihan
Kadang-kadang diinginkan untuk mengembalikan basis data ke keadaan sebelumnya (karena berbagai alasan, misalnya, kasus ketika basis data ditemukan rusak karena kesalahan perangkat lunak, atau jika telah diperbarui dengan data yang salah). Untuk mencapai hal ini, operasi pencadangan dilakukan sesekali atau terus menerus, di mana setiap status database yang diinginkan (yaitu, nilai data dan penyematannya dalam struktur data database) disimpan dalam file pencadangan khusus (banyak teknik yang tersedia untuk melakukan hal ini secara efektif). Ketika diputuskan oleh administrator basis data untuk mengembalikan basis data ke kondisi ini (misalnya, dengan menentukan kondisi ini pada titik waktu yang diinginkan saat basis data dalam kondisi ini), file-file ini digunakan untuk mengembalikan kondisi tersebut.
Analisis statis
Teknik analisis statis untuk verifikasi perangkat lunak dapat diterapkan juga dalam skenario bahasa kueri. Secara khusus, kerangka kerja interpretasi *Abstrak telah diperluas ke bidang bahasa kueri untuk basis data relasional sebagai cara untuk mendukung teknik pendekatan yang baik. Semantik bahasa kueri dapat disetel sesuai dengan abstraksi yang sesuai dengan domain konkret data. Abstraksi sistem basis data relasional memiliki banyak aplikasi yang menarik, khususnya, untuk tujuan keamanan, seperti kontrol akses berbutir halus, penandaan air, dll.
Fitur-fitur lain
Fitur-fitur DBMS lainnya mungkin termasuk:
- Log basis data - Ini membantu dalam menyimpan riwayat fungsi yang dijalankan.
- Komponen grafik untuk menghasilkan grafik dan bagan, terutama dalam sistem gudang data.
- Pengoptimal kueri - Melakukan pengoptimalan kueri pada setiap kueri untuk memilih rencana kueri yang efisien (urutan parsial (pohon) operasi) yang akan dieksekusi untuk menghitung hasil kueri. Mungkin spesifik untuk mesin penyimpanan tertentu.
- Alat atau kait untuk desain basis data, pemrograman aplikasi, pemeliharaan program aplikasi, analisis dan pemantauan kinerja basis data, pemantauan konfigurasi basis data, konfigurasi perangkat keras DBMS (DBMS dan basis data terkait dapat menjangkau komputer, jaringan, dan unit penyimpanan) dan pemetaan basis data terkait (terutama untuk DBMS terdistribusi), alokasi penyimpanan dan pemantauan tata letak basis data, migrasi penyimpanan, dll.
- Semakin banyak permintaan untuk sebuah sistem tunggal yang menggabungkan semua fungsi inti ini ke dalam kerangka kerja pembuatan, pengujian, dan penyebaran yang sama untuk manajemen basis data dan kontrol sumber. Meminjam dari perkembangan lain dalam industri perangkat lunak, beberapa memasarkan penawaran tersebut sebagai “DevOps untuk basis data.”
Desain dan pemodelan
Tugas pertama seorang perancang basis data adalah menghasilkan model data konseptual yang mencerminkan struktur informasi yang akan disimpan dalam basis data. Pendekatan yang umum dilakukan adalah dengan mengembangkan model hubungan entitas, sering kali dengan bantuan alat bantu gambar. Pendekatan lain yang populer adalah Unified Modeling Language. Model data yang sukses akan secara akurat mencerminkan keadaan dunia eksternal yang mungkin dimodelkan: misalnya, jika orang dapat memiliki lebih dari satu nomor telepon, maka informasi ini akan dapat ditangkap. Merancang model data konseptual yang baik membutuhkan pemahaman yang baik tentang domain aplikasi; biasanya melibatkan pengajuan pertanyaan mendalam tentang hal-hal yang menarik bagi organisasi, seperti “dapatkah seorang pelanggan juga menjadi pemasok?”, atau “jika suatu produk dijual dengan dua bentuk kemasan yang berbeda, apakah itu adalah produk yang sama atau produk yang berbeda?”, atau “jika sebuah pesawat terbang dari New York ke Dubai melalui Frankfurt, apakah itu satu penerbangan atau dua penerbangan (atau bahkan tiga)?”. Jawaban dari pertanyaan-pertanyaan ini menetapkan definisi dari terminologi yang digunakan untuk entitas (pelanggan, produk, penerbangan, segmen penerbangan) dan hubungan serta atributnya.
Menghasilkan model data konseptual terkadang melibatkan masukan dari proses bisnis, atau analisis alur kerja dalam organisasi. Hal ini dapat membantu menetapkan informasi apa yang dibutuhkan dalam database, dan apa yang dapat ditinggalkan. Sebagai contoh, hal ini dapat membantu ketika memutuskan apakah database perlu menyimpan data historis maupun data saat ini.
Setelah menghasilkan model data konseptual yang disukai pengguna, tahap selanjutnya adalah menerjemahkannya ke dalam skema yang mengimplementasikan struktur data yang relevan di dalam database. Proses ini sering disebut desain basis data logis, dan outputnya adalah model data logis yang dinyatakan dalam bentuk skema. Sedangkan model data konseptual (secara teori setidaknya) tidak bergantung pada pilihan teknologi database, model data logis akan diekspresikan dalam bentuk model database tertentu yang didukung oleh DBMS yang dipilih. (Istilah model data dan model basis data sering digunakan secara bergantian, tetapi dalam artikel ini kami menggunakan model data untuk desain basis data tertentu, dan model basis data untuk notasi pemodelan yang digunakan untuk mengekspresikan desain tersebut).
Model basis data yang paling populer untuk basis data tujuan umum adalah model relasional, atau lebih tepatnya, model relasional yang diwakili oleh bahasa SQL. Proses pembuatan desain basis data logis dengan menggunakan model ini menggunakan pendekatan metodis yang dikenal sebagai normalisasi. Tujuan dari normalisasi adalah untuk memastikan bahwa setiap “fakta” dasar hanya dicatat di satu tempat, sehingga penyisipan, pembaruan, dan penghapusan secara otomatis menjaga konsistensi.
Tahap akhir dari desain database adalah membuat keputusan yang mempengaruhi kinerja, skalabilitas, pemulihan, keamanan, dan sejenisnya, yang bergantung pada DBMS tertentu. Ini sering disebut desain database fisik, dan hasilnya adalah model data fisik. Tujuan utama selama tahap ini adalah independensi data, yang berarti bahwa keputusan yang dibuat untuk tujuan optimasi kinerja harus tidak terlihat oleh pengguna akhir dan aplikasi. Ada dua jenis independensi data: Kemandirian data fisik dan kemandirian data logis. Desain fisik didorong terutama oleh persyaratan kinerja, dan membutuhkan pengetahuan yang baik tentang beban kerja yang diharapkan dan pola akses, dan pemahaman yang mendalam tentang fitur yang ditawarkan oleh DBMS yang dipilih.
Aspek lain dari desain database fisik adalah keamanan. Hal ini melibatkan pendefinisian kontrol akses ke objek database serta pendefinisian tingkat keamanan dan metode untuk data itu sendiri.
Model
Model basis data adalah jenis model data yang menentukan struktur logis basis data dan pada dasarnya menentukan bagaimana data dapat disimpan, diatur, dan dimanipulasi. Contoh model database yang paling populer adalah model relasional (atau pendekatan SQL untuk relasional), yang menggunakan format berbasis tabel.
Model data logis yang umum untuk database meliputi:
- Basis data navigasi
- Model basis data hirarkis
- Model jaringan
- Basis data grafik
- Model relasional
- Model hubungan entitas
- Model hubungan entitas yang disempurnakan
- Model objek
- Model dokumen
- Model entitas-atribut-nilai
- Skema bintang
Basis data relasional objek menggabungkan dua struktur yang terkait.
Model data fisik meliputi:
- Indeks terbalik
- File datar
Model lainnya meliputi:
- Model multidimensi
- Model larik
- Model multivalue
Model khusus dioptimalkan untuk jenis data tertentu:
- Basis data XML
- Model semantik
- Penyimpanan konten
- Penyimpanan acara
- Model deret waktu
- Pandangan eksternal, konseptual, dan internal
- Pandangan tradisional terhadap data
Sistem manajemen basis data menyediakan tiga tampilan data basis data:
- Tingkat eksternal mendefinisikan bagaimana setiap kelompok pengguna akhir melihat organisasi data dalam database. Sebuah database tunggal dapat memiliki sejumlah tampilan di tingkat eksternal.
- Tingkat konseptual (atau tingkat logis) menyatukan berbagai pandangan eksternal ke dalam pandangan global yang kompatibel. Ini menyediakan sintesis dari semua pandangan eksternal. Hal ini berada di luar cakupan berbagai pengguna akhir basis data, dan lebih menarik bagi pengembang aplikasi basis data dan administrator basis data.
- Tingkat internal (atau tingkat fisik) adalah organisasi internal data di dalam DBMS. Ini berkaitan dengan biaya, kinerja, skalabilitas, dan masalah operasional lainnya. Ini berkaitan dengan tata letak penyimpanan data, menggunakan struktur penyimpanan seperti indeks untuk meningkatkan kinerja. Kadang-kadang menyimpan data dari pandangan individu (pandangan yang terwujud), dihitung dari data umum, jika pembenaran kinerja ada untuk redundansi tersebut. Ini menyeimbangkan semua persyaratan kinerja pandangan eksternal, yang mungkin bertentangan, dalam upaya untuk mengoptimalkan kinerja keseluruhan di semua aktivitas.
Meskipun biasanya hanya ada satu tampilan konseptual dan internal dari data, mungkin ada sejumlah tampilan eksternal yang berbeda. Hal ini memungkinkan pengguna untuk melihat informasi database dengan cara yang lebih berhubungan dengan bisnis daripada dari sudut pandang teknis dan pemrosesan. Sebagai contoh, departemen keuangan dari sebuah perusahaan membutuhkan rincian pembayaran dari semua karyawan sebagai bagian dari pengeluaran perusahaan, tetapi tidak membutuhkan rincian tentang karyawan yang merupakan kepentingan departemen sumber daya manusia. Dengan demikian, departemen yang berbeda membutuhkan pandangan yang berbeda dari database perusahaan.
Arsitektur database tiga tingkat berhubungan dengan konsep independensi data yang merupakan salah satu kekuatan pendorong utama model relasional. Idenya adalah bahwa perubahan yang dibuat pada tingkat tertentu tidak mempengaruhi pandangan pada tingkat yang lebih tinggi. Sebagai contoh, perubahan pada tingkat internal tidak mempengaruhi program aplikasi yang ditulis menggunakan antarmuka tingkat konseptual, yang mengurangi dampak membuat perubahan fisik untuk meningkatkan kinerja.
Tampilan konseptual menyediakan tingkat ketidakterarahan antara internal dan eksternal. Di satu sisi, ia menyediakan pandangan umum tentang basis data, tidak tergantung pada struktur tampilan eksternal yang berbeda, dan di sisi lain, ia mengabstraksikan detail tentang bagaimana data disimpan atau dikelola (tingkat internal). Pada prinsipnya setiap level, dan bahkan setiap tampilan eksternal, dapat disajikan oleh model data yang berbeda. Pada prakteknya, biasanya DBMS menggunakan model data yang sama untuk level eksternal dan konseptual (misalnya, model relasional). Tingkat internal, yang tersembunyi di dalam DBMS dan tergantung pada implementasinya, membutuhkan tingkat detail yang berbeda dan menggunakan jenis tipe struktur data sendiri.
Penelitian
Teknologi basis data telah menjadi topik penelitian yang aktif sejak tahun 1960-an, baik di dunia akademis maupun di kelompok penelitian dan pengembangan perusahaan (misalnya IBM Research). Aktivitas penelitian meliputi teori dan pengembangan prototipe. Topik penelitian yang terkenal meliputi model, konsep transaksi atomik, teknik kontrol konkurensi terkait, bahasa kueri dan metode pengoptimalan kueri, RAID, dan banyak lagi.
Area penelitian basis data memiliki beberapa jurnal akademis khusus (misalnya, ACM Transactions on Database Systems-TODS, Data and Knowledge Engineering-DKE) dan konferensi tahunan (misalnya, ACM SIGMOD, ACM PODS, VLDB, IEEE ICDE).
Disadur dari: https://en.wikipedia.org/