Organisasi File
Semester Ganjil 2014
Fak. Teknik Jurusan Teknik Informatika
U i
i
P
d
Universitas Pasundan
Caca E Supriana S Si MT
Caca E. Supriana, S.Si.,MT.
P
d h l
Pendahuluan
DBMS harus menyimpan data di tempat tertentu, yaitu :
M i t
‐ Memori utama
y Mahal ‐ dibandingkan dengan penyimpanan sekunder dan tersier
y Cepat ‐ dalam operasi memori yang cepat
y Volatile ‐ tidak mungkin untuk menyimpan data dari satu run ke yangg y p y g berikutnya
y Digunakan untuk menyimpan data saat tertentu ‐ Secondary storage ( hard disk )
y Lebih murah ‐ dibandingkan dengan memori utamaLebih murah dibandingkan dengan memori utama
y lambat ‐ dibandingkan dengan memori utama , lebih cepat dibandingkan dengan tape y Persistent ‐ data dari satu run dapat disimpan ke disk untuk digunakan dalam jangka berikutnya jangka berikutnya y Digunakan untuk menyimpan database ‐ Penyimpanan Tersier ( tape) y Termurah l l b k d b y Paling lambat ‐ akses data berurutan y Digunakan untuk data arsip
• Ini berarti bahwa data harus
‐ Membaca dari hard disk ke dalam memori ( RAM ) Dit li d i i k h d di k
‐ Ditulis dari memori ke hard disk
• Karena operasi I / O disk maka kinerja query menjadi lambat, tergantung pada bagaimana data disimpan a bat, te ga tu g pada baga a a data d s pa pada hard disk • Komponen terendah dari DBMS melakukan kegiatan j i manajemen penyimpanan • Komponen DBMS lain tidak perlu tahu bagaimana kegiatan tingkat rendah dilakukang g
y Sebuah disk diatur menjadi beberapa blok atau halaman (page) S b h h l d l h i k di k y Sebuah halaman adalah unit pertukaran antara disk dan memori utama y Sebuah kumpulan halaman dikenal sebagai file y Sebuah kumpulan halaman dikenal sebagai file y DBMS menyimpan data dalam satu atau lebih file pada hard disk pada hard disk
y Tabel database terdiri dari satu atau lebih tupel ( baris )
y Setiap tuple memiliki satu atau lebih atribut
S l bih l d i b l di li k d l h l
y Satu atau lebih tuple dari tabel ditulis ke dalam halaman pada hard disk y Tupel yang lebih besar mungkin membutuhkan lebih dari Tupel yang lebih besar mungkin membutuhkan lebih dari satu halaman ! y Tuple pada disk dikenal sebagai record y Catatan dipisahkan dengan pembatas record y Atribut pada hard disk dikenal sebagai field Fi ld di i hk l h b l y Fields dipisahkan oleh pembatas lapangan
Organisasi File
Susunan fisik data dalam file ke dalam record dan halaman (page) pada disk. Organisasi file menentukan metode akses untuk : metode akses untuk : y Menyimpan dan mengambil catatan dari file. y Oleh karena itu organisasifile identik dengan y Oleh karena itu , organisasifile identik dengan ‘metode akses ‘.Organisasi File
•
Unordered atau Heap files
O d
d
i l fil
•
Ordered atau sequential files
•
Hash files
•
Hash files
Pemilihan Organisasi File
Pemilihan organisasi file berkaitan dengan operasi berikutg g p y Scan : mengambil semua record dalam file. Halaman dalam sebuah file diambil dari disk ke buffer pool. y Pencarian dengan seleksi yang setara : mengambil semua record yang memenuhi syarat pencarian y Pencarian dengan seleksi tertentu : mengambil record y Pencarian dengan seleksi tertentu : mengambil record yang memenuhi syarat pencarian tertentu y Insert : menyisipkan record tertentu ke dalam file. Halaman dalam file tempat record disisipkan diidentifikasi, halaman di ambil dari disk, dimodifikasi dengan memasukan record baru dan ditulis kembali ke dengan memasukan record baru dan ditulis kembali ke disk. y Delete : menghapus record tertentu. 8Heap Files
y Heap files adalah daftar dari record yang tidak terurut (unordered). y Record disimpan dalam urutan yang sama di mana mereka dibuat (create) dibuat (create).y Insert : cepat ‐ karena catatan masuk ditulis pada akhir halaman
terakhir dari file.
y Cari ( search atau memperbarui ) : lambat ‐ karena pencarian
y Cari ( search atau memperbarui ) : lambat ‐ karena pencarian linear dilakukan pada halaman. y Hapus (delete) : lambat ‐ karena catatan yang akan. dihapus terlebih dahulu harus dicari. y Menghapus catatan menciptakan sebuah lubang (hole) di halaman. y Pemampatan file secara berkala yang dibutuhkan untuk d k k b l b mendapatkan kembali ruang terbuang.
Sequential Files
Sebuah file sekuensial berisi record yang diatur oleh urutan di mana record tersebut masuk.
R k di k d il i il i d i l bih Rekaman diurutkan pada nilai‐nilai dari satu atau lebih field yaitu : y Ordering field field di mana catatan diurutkan y Ordering field ‐ field di mana catatan diurutkan. y Ordering key ‐ kunci file ketika digunakan untuk merekam serta menyortir. merekam serta menyortir.
S
i l Fil
Sequential Files
y Cari ( atau memperbarui ) : cepat ‐ karena pencarian biner p p p dilakukan pada pengurutan record yaitu pengindeksan. y Hapus : cepat ‐ karena mencari record cepat, memampatkan File secara periodik diperlukan. memampatkan File secara periodik diperlukan. y Insert : kurang baik ‐ karena jika kita memasukkan rekord baru di posisi yang benar kita perlu menggeser semua catatan berikutnya dalam file catatan berikutnya dalam file. y Atau sebuah ‘overflow file' dibuat yang berisi semua catatan baru sebagai tumpukan. y Secara periodik berkas overflow bergabung dengan file utama. y Jika berkas overflow dibuat pencarian dan operasi Jika berkas overflow dibuat pencarian dan operasi menghapus untuk record dalam overflow file meluap harus linier !Hash File
y Hash File umumnya digunakan sebagai metode verifikasi ukuran file. Proses ini disebut check‐sum verifikasi. verifikasi. y Ketika sebuah file yang dikirim melalui jaringan, file tersebut harus dipecah menjadi potongan‐potongan k il d di k b li l h ikecil dan dipasang kembali setelah mencapai tujuannya.
y Dalam situasi ini jumlah hash merupakan ukuran data Dalam situasi ini jumlah hash merupakan ukuran data dalam file. Hash kemudian dapat digunakan sebagai alat untuk memvalidasi seluruh file yang berhasil
ditransmisikan melalui jaringan ditransmisikan melalui jaringan.
Hash File
Sebuah array dari bucket y sebuah rekord , dimana r a adalah fungsi hash , h(r) menghitung indeks bucket di mana terdapat record r h k l bih fi ld d l d di b y h menggunakan satu atau lebih fields dalam record yang disebut bidang hash y Hash key ‐ kunci file bila digunakan oleh fungsi hash C t h f i h h Contoh fungsi hash : y Asumsikan bahwa nama terakhir staf digunakan sebagai bidang hash y Asumsikan juga bahwa ukuran file hash adalah 26 bucket y Asumsikan juga bahwa ukuran file hash adalah 26 bucket ‐ setiap kotak sesuai dengan masing‐masing huruf dari alfabet y Kemudian fungsi hash dapat didefinisikan dengan menghitung alamat bucket ( index ) berdasarkan huruf pertama dalam nama ( ) p terakhir.y Insert : cepat ‐ karena fungsi hash menghitung indeks dari bucket yang dimiliki record, jika bucket yang penuh maka akan mencari bucket lain yang kosong penuh maka akan mencari bucket lain yang kosong y Pencarian : cepat ‐ karena fungsi hash menghitung indeks bucket y Kinerja dapat menurunkan jika record tidak ditemukan dalam bucket yang disarankan oleh fungsi hash hash y Hapus : cepat ‐ sekali lagi untuk alasan yang sama fungsi hashing mampu menemukan record dengan t cepat
Indexing
y Bisakah kita melakukan hal lain untuk meningkatkan kinerja query selain memilih organisasi file yang baik ? Ya jawabannya terletak pada pengindeksan Ya , jawabannya terletak pada pengindeksan y Indeks ‐ struktur data yang memungkinkan DBMS untuk mencari catatan tertentu dalam file lebih cepat untuk mencari catatan tertentu dalam file lebih cepat y Sangat mirip dengan indeks di akhir buku untuk mencari berbagai topik yang dibahas dalam bukug p y gJenis Indexing
y Indeks Primer ‐ satu indeks utama per file
y Indeks Clustering ‐ satu Indeks pengelompokan per
fil fil d i hk d fi ld k i file ‐ file data memerintahkan pada field non ‐ kunci dan file indeks dibangun di atas bahwa bidang non – key
key
y Indeks Sekunder ‐ banyak indeks sekunder per file
9Sparse Index ‐ hanya memiliki beberapa nilai kunci Sparse Index hanya memiliki beberapa nilai kunci pencarian dalam file
9Dense Index ‐ memiliki indeks yang sesuai dengan setiap nilai kunci pencarian dalam file
Primary Indexes
y File data berurutan memerintahkan pada field kuncie data be u uta e e ta a pada e d u c
y Berkas menyimpan semua indeks ( dense ) atau ( sparse ) nilai dari field kunci dan nomor halaman dari data file di mana catatan yang sesuai disimpan B002 1 Branch Branch B002 record 1 B003 1 B004 2 Branch
BranchNo Street City Postcode
B002 56 Clover Dr London NW10 6EU B003 163 Main St Glasgow G11 9QX Branch B003 record Branch B004 record Branch B005 record B h B007 d 1 2 B005 2 B007 3 B004 32 Manse Rd Bristol BS99 1NZ B005 22 Deer Rd London SW1 4EH B007 16 Argyll St Aberdeen AB2 3SU
Branch B007 record 3
Indexed Sequential Access Method
y ISAM ‐ metode akses sekuensial Indexed didasarkan pada indeks utama M d k d f l i b l di M SQL y Metode akses default atau tipe tabel di MySQL , MyISAM merupakan perpanjangan dari ISAM y Menyisipkan dan menghapus operasi akan y Menyisipkan dan menghapus operasi akan mengganggu penyortiran y Anda perlu overflow file yang secara periodik perlu Anda perlu overflow file yang secara periodik perlu digabung dengan file utamaIndeks sekunder
y Sebuah file indeks yang menggunakan bidang non primer I d k i k k ki j y Indeks yang meningkatkan kinerja query yang menggunakan atribut selain primary key y Dapat menggunakan indeks yang terpisah untuk y Dapat menggunakan indeks yang terpisah untuk setiap atribut yang ingin digunakan dalam clause query WHERE yang dipilih q y y g p y Terdapat overhead untuk mempertahankan sejumlah besar indeks iniMembuat indeks dalam SQL
y Dapat membuat indeks untuk setiap tabel yang Anda buat dalam SQL C h y Contoh y CREATE INDEX branchNoIndex on branch(branchNo); y CREATE INDEX numberCityIndex on y CREATE INDEX numberCityIndex on branch(branchNo,city); y DROP INDEX branchNoIndex;;y Organisasi file atau metode akses menentukan kinerja operasi pencarian , menyisipkan dan menghapus. M d k d l h k i y Metode akses adalah sarana utama untuk mencapai peningkatan kinerja y Struktur Indeks membantu untuk meningkatkan y Struktur Indeks membantu untuk meningkatkan kinerja lebih lanjut
Search Key
y Search key adalah atribut atau set atribut yang digunakan untuk mencari record dalam file DENSE INDEX DENSE INDEX SPARSE INDEXB ‐Tree
y B –Tree adalah struktur yang sangat populer untuk ee ada a st u tu ya g sa gat popu e u tu
mengatur dan mempertahankan indeks besar . B –Tree dipelajari pada awal tahun 1970 oleh Bayer , McCreight d C , dan Comer . y B ‐tree adalah generalisasi dari pohon biner di mana dua atau lebih cabang dapat diambil dari setiap node dua atau lebih cabang dapat diambil dari setiap node . B –Tree yang disebut pohon seimbang karena jalan akses ke catatan yang berbeda dengan panjang yang sama . y B –Tree memiliki kemampuan untuk secara cepat i j l h b d B T b d i mencari sejumlah besar data. B –Tree beradaptasi dengan baik untuk penyisipan dan penghapusan .
P
i B T
Properti B ‐Tree
Sebuah B – Tree memiliki sifat sebagai berikut :g y Setiap jalur dari simpul akar ke simpul daun memiliki panjang yang sama , h, juga disebut ketinggian B ‐ tree (yaitu , h adalah jumlah node dari akar ke daun , inklusif). (yaitu , h adalah jumlah node dari akar ke daun , inklusif). Urutan B‐Tree adalah k. y Setiap node , kecuali akar dan daun , memiliki setidaknya k + 1 anak node dan tidak lebih dari 2k + 1 anak node + 1 anak node dan tidak lebih dari 2k + 1 anak node . y Simpul akar dapat memiliki sedikitnya dua node anak , tapi tidak lebih dari 2k + 1 anak node . y Setiap node , kecuali akar , setidaknya memiliki k kunci dan tidak lebih dari kunci 2k . y Akar mungkin mempunyai sedikitnya satu kunci. Secara Akar mungkin mempunyai sedikitnya satu kunci. Secara umum, setiap node dengan kunci j nonleaf (cabang ) harus memiliki j + 1 anak node .y B –Tree melahirkan beberapa varian , termasuk B + dikembangkan oleh Prof. Donald Knuth . Sebuah indeks menyediakan akses cepat ke data ketika data indeks menyediakan akses cepat ke data ketika data dapat dicari dengan nilai yang merupakan kunci indeks .
B+ Tree
Dalam kasus B + Tree, hanya node di bagian bawah titik pohon catatan , dan semua node lain menunjuk ke node lain . Node yang menunjuk ke catatan disebut node daun :y g j
y Jika node kosong , maka data ditambahkan di sebelah kiri.
Jik d iliki i k ki i bil k i
y Jika node memiliki satu entri , maka kiri mengambil kunci dengan nilai terkecil dan kanan mengambil yang terbesar . y Dalam contoh ini , 30 adalah nilai kecil karena itu mengambil posisi kiri dan 60 adalah nilai yang lebih tinggi maka dibutuhkan posisi kanan. maka dibutuhkan posisi kanan.