Anda di halaman 1dari 7

Struktur Basis Data

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

Relational Algebra (aljabar relasional) merupakan kumpulan operasi terhadap relasi


dimana setiap operasi menggunakan satu atau lebih relasi untuk menghasilkan satu
relasi yang baru dan termasuk kategori prosedural dan juga menyediakan seperangkat
operator untuk memanipulasi data.

Terdapat lima operasi dasar dalam aljabar relasional, yaitu:


1. Selection ( σ )
2. Projection ( π )
3. Cartesian – product ( X, juga disebut sebagai cross product )
4. Union ( ∪ )
5. Set – difference ( - )
6. Rename ( ρ )
Semua operasi tersebut menghasilkan relasi baru. Bahasa disebut aljabar relasional
karena bahasa berdasar sejumlah operator yang beroperasi pada relasi – relasi (tabel –
tabel). Masing –masing operator beroperasi pada satu relasi atau lebih atau
menghasilkan relasi – relasi lain sebagai hasil.

Operasi-operasi Dasar Aljabar Relasional

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.

Operasi-operasi relasi aljabar umumnya dibagi ke dalam dua kelompok. Kelompok


pertama, termasuk sekumpulan operasi-operasi dari sekumpulan teori matematika yang
dapat dipakai karena tiap-tiap relasi ditetapkan menjadi sekumpulan tuple-tuple.
Sekumpulan operasi-operasi tersebut termasuk UNION, INTERSECTION, SET
DIFFERENCE dan CARTESIAN PRODUCT.
Kelompok yang kedua terdiri dari operasi-operasi yang khusus dibuat untuk database-
database relasional. Yang termasuk dalam kelompok yang kedua adalah SELECT,
PROJECT dan JOIN.

• 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.

Relasi Query Optimisasi

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

Diagram Alir QUERY

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.

Langkah – langkah dalam DBMS untuk pengolahan query adalah:

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.

3. Berdasarkan ekpresi aljabar relasional yang telah dioptimasi, query optimizer


mempesiapkan rencana eksekusi query (query execution plan) yang kemudian
ditransformasikan menjadi kode yang dapat dieksekusi pembangkit kode di DBMS.

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

Pemakai mendiskripsikan informasi yang dikehendaki tanpa memberikan prosedur


(deret operasi) spesifik untuk memperoleh informasi. Pada model relasional, bahasa
formal non prosedural adalah bahasa kalkulus (predikat( relasional yaitu diekspresikan
dengan menspesifikasikan predikat terhadap tuple atau domain yang harus dipenuhi.
Kalkulus relasional dibagi menjadi 2 (dua) yaitu:

1. Kalkulus relasional tupel (tuple relational calculus)

Kalkulus relasional tupel mendiskripsikan informasi tanpa perlu memberikan prosedur /


cara spesifik untuk memperoleh informasi tersebut. Konsep dasar kalkulus relasional
tupel adalah konsep variable tupel. Variable ini merepresentasikan tupel – tupel pada
relasi dan digunakan untuk mengekstrak data dari relasi. Komponen - komponen lain
rumus kalkulus tupel adalah kualifikasi data dengan membatasi nilai – nilai dari atribut
atribut yang dispesifikasikan.
Query pada kalkulus relasional tupel dapat diekspresikan dengan:
{ t | P(t) }
yaitu himpunan semua tupel t sehingga predikat P bernilai True untuk t, notasi t[A] untuk
menunjukkan nilai tuple t pada atribut A. dan menggunakan tr untuk menunjukkan
nilai tupel t di relasi r. predikat P adalah berupa rumus, beberapa variable tupel dapat
muncul di rumus. Variable tupel dikatakan variable bebas kecuali dikuantifikasi atau 

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

Pada query diatas sebenarnya menyatakan dua hal yaitu:


1. Kita berkehandak mengekstrak tupel – tupel pada relasi Dosen yang mempunyai
atribut jkelamin adalah ‘Pria’ dan memiliki atribut gajipokok adalah lebih besar dari
1000000.
2. Dari tupel-tupel ini, kita berkehendak menampilkan atribut tertentu yaitu
nid,nama_d,gajipokok. Dengan demikian atribut
Dosen.nid,Dosen.nama_d,Dosen.gajipokok adalah variable – variable tupel

2. Kalkulus relasional domain (domain relational calculus)

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.

Atom pada kalkulus relasional domain adalah salah satu dari:

• < 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) }

Anda mungkin juga menyukai