Struktur dan Penyimpanan Basis Data
Struktur dan Penyimpanan Basis Data
Tempat penyimpanan dan struktur file dimulai dari :
- cache
- main memory
- flash memory
- magnetik disk
- optical disk
- magnetic tapes
Penyimpanan (Storage)
Primary Storage adalah Media tercepat tetapi datanya tidak permanen (volatile). Memory cache dan main memory.
- Secondary Storage adalah Level berikutnya dalam hirarki. Data tersimpan permanen. Kecepatan akses sedang.
- Disebut juga online storage
- Contoh: flash memory, magnetic disk, Solid State Disk.
- Tertiary Storage: Level terendah dalam hirarki. Data tersimpan permanen. Kecepatan akses rendah.
- Disebut juga offline storage
- Contoh: magnetic tape, optical storage (CD, DVD, Blueray)
Ukuran Perfoma Disk
Access time: waktu yang dihitung sejak perintah read atau write dikeluarkan sampai ketika proses transfer data dimulai. Terdiri dari:- Seek time: waktu yang diperlukan untuk memposisikan lengan pembaca cakram ke track yang diinginkan.
- Rata-rata seek time adalah ½ dari seek time terburuk
- Sekitar 4 sampai 10 milidetik pada harddisk pada umumnya
- Rotational latency: waktu yang diperlukan sector yang akan dibaca berada dibawah head.
- Rata-rata latency adalah ½ dari latency terburuk
- 4 – 11 milidetik pada harddisk pada umumnya (5400 sampai 15000 rpm)
- Data-transfer rate: waktu yang dibutuhkan sebuah data dapat diambil dari atau disimpan kedalam disk.
- 25 – 100MB per detik rate maksimal, lebih rendah untuk track-track yang berada di sisi dalam
- Beberapa disk dimungkinkan berada pada disk controller yang sama, sehingga kecepatan pada disk controller tersebut juga penting.
- Contoh: ATA-5: 66MB/detik, SATA: 150 MB/detik, Ultra 320 SCSI: 320 MB/detik, Fiber Channel (FC2Gb: 256 MB/detik
- Mean time to failure (MTTF): rata-rata waktu yang diharapkan sebuah disk dapat bekerja tanpa adanya kegagalan.
- Umumnya 3 sampai 5 tahun
- Kemungkinan adanya kegagalan pada disk baru sangatlah kecil
- MTTF akan menurun seiring bertambahnya umur disk
Akses Tempat Penyimpanan
- Database file dibagi-bagi menjadi beberapa unit penyimpanan dengan ukuran tetap yang disebut dengan Blocks. Block adalah unit pada alokasi tempat penyimpanan dan juga transfer data.
- DBMS berusaha meminimalkan jumlah block yang ditransfer antara disk dan memory. Kita dapat mengurangi jumlah dari disk yang diakses dengan cara menyimpan sebanyak mungkin block didalam main memory.
- Buffer: bagian dari memory utama yang tersedia untuk menyimpan copy dari disk blocks.
- Buffer manager: sebuah subsystem yang bertanggung jawab untuk mengalokasikan ruang buffer didalam memory
Buffer Manager
Program memanggil Buffer Manager ketika mereka membutuhkan sebuah block dari disk. Buffer Manager melakukan hal-hal berikut ini:
- Jika block sudah berada di buffer, kembalikan alamat dari blok di main memory
- Jika block tidak ada dalam buffer
- Alokasikan ruangan di buffer untuk block Jika buffer penuh, hapus block-block yang lama
- Baca blok dari disk dan simpan ke buffer, kemudian kembalikan alamat dari blok yang ada di main memory
Buffer-Replacement Policy
- Sebagian besar Sistem Operasi menggunakan metode Least Recently Used (LRU) strategy untuk mekanisme penggantian data yang disimpan didalam buffer.
- LRU: Jika space di Buffer penuh, maka data yang tidak digunakan paling lama akan dihapus paling dulu.
- Pinned Block: block di memory yang tidak diperbolehkan untuk ditulis kembali ke disk.
- Beberapa metode lain yang bisa digunakan:
- Toss-immediate strategy
- Data di buffer akan langsung dihapus setelah tuple (baris data) terakhir dari block data tersebut selesai diproses.
- Most Recent Used strategy
- System akan me-pin (merubah status block menjadi Pinned Block) block2 yang sedang diproses. Setelah tuple terakhir pada block yang bersangkutan telah diproses, block tersebut akan di-un-pin (dihapus status Pinned Block-nya), dan block ini akan menjadi Most Recently Used block.
- MRU bisa dikatakan sebagai kebalikan dari LRU.
- Buffer manager dapat juga menggunakan informasi statistik yang berkaitan dengan kemungkinan suatu request akan mereferensikan ke suatu relasi tertentu.
- Contoh: sebuah data dictionary akan sering diakses -> block2 dari data dictionary akan selalu disimpan di memory Buffer.
Organisasi File pada Database
- Sebuah database disimpan sebagai kumpulan dari beberapa file. Setiap file terdiri dari record-record yang berurutan. Record adalah kumpulan dari field-field.
- Salah satu pendekatan:
- Asumsikan ukuran record adalah tetap
- Setiap file mempunyai record-record dengan satu tipe yang sama
- Setiap file digunakan oleh satu relasi (tabel) saja
- Pendekatan ini adalah yang paling gampang untuk diimplementasikan
Data Dictionary Storage
Data Dictionary (biasa disebut juga System Catalog) digunakan untuk menyimpan metadata, yaitu data tentang suatu data, seperti:
- Informasi tentang suatu tabel
- Nama Tabel
- Nama dan tipe dari setiap atribut pada tabel
- Nama dan definisi dari View.
- Integrity Constraints
- Informasi tentang User Account.
- Data-data statistik
- Contoh: jumlah baris pada sebuah tabel.
- Informasi tentang Index.
- Informasi tentang pengelolaan file secara fisik
- Bagaimana sebuah tabel disimpan (sequential, hash)
- Lokasi fisik dari tabel.