Struktur basis data adalah cara data diorganisasi agar pemrosesan data menjadi lebih
efisien. Struktur ini kemudian diimplementasikan melalui sistem manajemen basis data.
Sistem manajemen basis data adalah suatu aplikasi piranti linak yang menyimpan struktur
basis data.
Struktuk Basis Data Hierarkis
Sistem manajemen basis data IDS mengikuti duatu srtuktur basis data hierarkis.
Struktur hierarkis ini dibentuk oleh kelompok-kelompok data, subkelompok, dan beberapa
subkelompok lagi.
Srtuktur Basis Data Jaringan
Srtuktur basis data jaringan dikembangkan untuk memungkinkan penarikan record-
record tertentu. Ia memungkinkan suatu record tertentu menunjuk pada semua record lainnya
di dalam basis data.
Struktur Basis Data Relasional
Struktur hierarkis dan jaringan mengandalkan pada relasi fisik (physical
relationship) di dalam bentuk alamat-alamat penyimpanan, relasi dalam struktur basis data
relasional adalah implisit. Relasi implisit (implicit relationship) dapat secara tidak langsung
berasal dari data.
Relasional Aljabar
Untuk menetapkan bentuk dan batasan-batasan database, sebuah model data harus
memasukkan sekumpulan operasi-operasi untuk mengontrol data. Sekumpulan model
operasi-operasi relasional standar merupakan aljabar relasional. Operasi-operasi ini
membolehkan user untuk menentukan dasar pencarian permintaan. Hasil dari sebuah
pencarian adalah relasi yang baru, di mana mungkin saja dibentuk dari satu atau lebih
relasi. Oleh sebab itu, operasi-operasi aljabar menghasilkan relasi-relasi baru yang
dapat menjadi lebih berguna dengan menggunakan operasi-operasi aljabar yang sama.
Urutan dari operasi-operasi aljabar relasional membentuk sebuah ekspresi relasi aljabar
yang hasilnya juga berupa sebuah relasi.
• Keamanan (Security)
Agar data yang bersifat rahasia atau proses yang vital tidak jatuh ke orang / pengguna
yang tidak berhak, yakni dengan penggunaan account (username dan password) serta
menerapkan pembedaan hak akses setiap pengguna terhadap data yang bisa dibaca
atau proses yang bisa dilakukan.
Query
Query adalah pertanyaan atau permintaan informasi tertentu dari sebuah basisdata
yang ditulis dalam format tertentu. Terdapat tiga metode utama untuk membuat
query:
1. dengan memilih parameter yang telah disediakan pada menu. Metode ini paling
mudah digunakan namun paling tidak fleksibel karena pengguna hanya dapat
menggunakan pilihan parameter yang terbatas.
2. Query by example (QBE) adalah metode query yang disediakan sistem dalam
bentuk record kosong dan pengguna dapat menentukan field dan nilai tertentu yang
akan digunakan dalam query.
3. Bahasa query (query language) adalah bahasa khusus yang digunakan untuk
melakukan query pada sebuah basisdata. Metode ini paling rumit tetapi paling
fleksibel.
Record (baris) : Sekumpulan data yang saling berkaitan tentang sebuah subjek
tertentu, misalnya data seorang siswa akan disimpan dalam record yang terdiri dari
beberapa kolom / field.
Optimisasi Query adalah suatu proses untuk menganalisa query untuk menentukan sumber-
sumber apa saja yang digunakan oleh query tersebut dan apakah penggunaan dari sumber
tersebut dapat dikurangi tanpa merubah output. Atau bisa juga dikatakan bahwa optimisasi
query adalah sebuah prosedur untuk meningkatkan strategi evaluasi dari suatu query untuk
membuat evaluasi tersebut menjadi lebih efektif. Optimisasi query mencakup beberapa
teknik seperti transformasi query ke dalam bentuk logika yang sama, memilih jalan akses
yang optimal dan mengoptimumkan penyimpanan data.
Optimisasi query merupakan bagian dasar dari sebuah sistem database dan juga
merupakan suatu proses untuk menghasilkan rencana akses yang efisien dari sebuah query
di dalam sebuah database. Secara tidak langsung, sebuah rencana akses merupakan
sebuah strategi yang nantinya akan dijalankan untuk sebuah query, untuk mendapatkan
kembali operasi-operasi yang apabila dijalankan akan menghasilkan database record query.
Ada tiga aspek dasar yang ditetapkan dan mempengaruhi optimisasi query, yaitu : search
space, cost model dan search strategy.
Search space adalah sekumpulan rencana-rencana akses yang sama secara logika yang
dapat digunakan untuk mengevaluasi sebuah query. Semua rencana-rencana dalam search
space query mengembalikan hasil yang sama biarpun beberapa rencana lebih efisien
dibandingkan dengan rencana yang lainnya.
Cost model menandakan sebuah harga untuk tiap rencana dalam search space. Harga dari
rencana tersebut adalah sebuah perkiraan dari sumber-sumber yang digunakan pada saat
rencana dijalankan, dimana harga yang lebih rendah, merupakan yang terbaik dari rencana-
rencana yang ada.
Search strategy adalah sebuah perincian dari rencana-rencana mana dalam search space
yang akan diperiksa. Apabila search space-nya kecil, maka strategi yang dapat diteruskan
adalah menghitung dan mengevaluasi setiap rencana. Meskipun kebanyakan search space
bahkan untuk query-query yang sederhana adalah sangat besar, akan tetapi query optimizer
selalu memerlukan aturan heuristik untuk mengontrol nomer dari rencana-rencana yang
akan diperiksa
SQL
SCANNER
PARSER
QUERY OPTIMIZER
INTERPRETER
QUERY PROCESSOR
Hasil Query
Query Parser – Melakukan verifikasi terhadap validitas dari statemen SQL, kemudian
menterjemahkan Query kedalam struktur internal menggunakan kalkulus relasional.
Query Optimizer – Mencari ekspresi terbaik dari beberapa ekspresi aljabar yang berbeda.
Kriteria yang digunakan adalah "Murahnya Biaya"
Code Generator/Interpreter – Menterjemahkan Query Plan yang dihasilkan oleh Query
Optimizer menjadi Query Code untuk kemudian dikirimkan ke Query Processor
Query Processor – Mengeksekusi Query Code yang didapat dari Code Generator.
1. DBMS melakukan parsing terhadap string dari query SQL dan menerjemahkannya
menjadi ekspresi aljabar relasional yang dapat menuntun kedalam algoritma sederhana
yang tidak efisien.
2. Setelah itu, bagian query optimizer mengkonversi ekspresi aljabar relasional ini menjadi
ekspresi lain yang ekvivalen nemun lebih efisien untuk dieksekusi.
4. Karena ekspresi aljabar mempunyai semantik matematika yang presisi maka sistem
dapat memferifikasi ekvivalensi ekspresi yang dioptimasi yang dihasilkan dari manipulasi
ekpresi asal. Semantiks ini juga memungkinkan pembandingan rencana – rencana evaluasi
query yang berbeda.
Kalkulus relasional
Berikut ini contoh kalkulus relasional tupel yang diterapkan pada SQL:
SELECT Dosen.nid,Dosen.nama_d,Dosen.gajipokok
FROM Dosen
WHERE
Dosen.jkelamin=’Pria’ AND Dosen.gajipokok>1000000
Kalkulus relasional domain menggunakan variable – variable pada nilai - nilai domain
atribut, bukan nilai – nilai untuk sebuah tupel. Ekspresi pada kalkulus relasional domain
berbentuk:
{ < X1, X2, …, Xn > | P (X1, X2, …, Xn)}
Dimana : X1, X2, …,Xn menyatakan variable – variable domain. P menyatakan rumus –
rumus yang disusun dari atom – atom sebagaimana pada kalkulus relasional tupel.
• < X1, X2, …, Xn > ∈ r, dimana r adalah relasi dengan n atribut dan X1, X2, …, Xn adalah
variable – variable domain atau konstanta – konstanta domain.
• x Θ y, dimana x dan y adalah variable domain, Θ adalah operasi pembandingan (<,
<=,=,>=, ≠). Variable x dan y harus merupakan domain – domain yang dapat dibandingkan
dengan Θ.
• x Θ c, dimana x dalah variable domain. Θ adalah operator pembandingan (<, <=,=, >=,
≠) dan c adalah konstanta.
Contoh :
Cari nip,nama_d,gajipokok daridosen, dimana jenis kelaminnya adalah Pria dan
gaji pokoknya lebih besar 1200000
{ nip | ∃ nam_d | ∃ gajipokok
(Dosen(nid,nama_d,gajipokok) AND jkelamin=’Pria’ AND gajipokok >
1200000) }