Selasa, 08 Januari 2013

Optimasi Query


Optimasi Query   
 
Mencari urutan optimal dari operasi query.
       Strategi yang terpilih diharapkan dapat meminimalisasi biaya yang harus dikeluarkan dalam pengeksekusian query.
       Biaya eksekusi merupakan kombinasi bobot dari I/O, CPU, dan biaya komunikasi.


  • Search Space

Merupakan sekumpulan alternatif perencanaan eksekusi yang merepresentasikan query. Seluruh alternatif adalah ekuivalen, yaitu memberikan hasil yang sama dengan urutan pengoperasian, pengimplementasian, dan performance yang berbeda.
Representasi dari query tersebut dibentuk dalam suatu operator trees yang dapat dibuat dengan aturan transformasi


  • Cost Model

Cost Model memprediksi biaya yang harus dikeluarkan dari suatu query yang akan dieksekusi. Terdiri dari cost function, statistic database, dan formula.


  • Search Strategy

Search strategy mengeksplorasi search space dan memilih strategi terbaik dari alternatif yang ada menggunakan cost model.
Search Strategy yang dapat digunakan adalah dynamic programming yang bersifat determenistik, di mana menghasilkan solusi terbaik, dan randomized strategies (seperti Iterative Improvement dan Simulated Annealing) yang berkonsentrasi pada pencarian solusi optimal dengan menghindari biaya tinggi dalam optimasi.

Structured Query Language (SQL)

PENGERTIAN
SQL merupakan subbahasa pemrograman yang khusus dipergunakan untuk memanipulasi basis data.
SQL adalah salah satu DBMS (database management system) yang saat ini banyak digunakan untuk operasi basis data dan embedded (ditempelkan) di hampir semua bahasa pemrograman yang mendukung basis data relasional.
Perbedaan penggunaan SQL pada masing-masing bahasa biasanya  pada sintaks2 khusus. Misalnya : INSERT INTO … VALUE. Pada bahasa yang lain INSERT INTO …VALUES…, dll.
Bahasa yang mendukung SQL antara lain : V Basic, C++ Builder,Delphi, ORACLE, MySQL,PostGreeSQL,JAVA,dll.



KATEGORI
SQL memiliki 3 kategori perintah

  • Data Definition Language (DDL), yakni perintah2 yang digunakan untuk mendefinisikan (menciptakan, tambah/mengubah/hapus) sturktur data/tabel
  • Data manipulation language (DML), yakni perintah yang digunakan untuk memanipulasi database (melihat, menenusuri, filtering, summarize, perhitungan, dll)
  • Data Control Language (DCL, digunakan untuk mengedalikan database



Kamis, 29 November 2012

Dependency dan Normalisasi

      Dependency
Functional Dependency atau Ketergantungan Fungsional merupakan relationship atau hubungan, batasan, keterkaitan antara atribut-atribut dalam relasi. Suatu atribute dikatakan functionally dependent pada yang lain jika kita menggunakan harga atribut tersebut untuk menetukan harga atribut. Simbol yang biasa digunakan untuk mewakili Functional Dependency adalah “à” dibaca secara fungsional menentukan.
Notasi : A à B
A dan B adalah atribut dari sebuah tabel. Berarti secara fungsional A menentukan B atau B tergantung pada A, jika dan hanya jika ada 2 baris data dengan nilai yang sama, maka nilai B juga sama.



Contoh :
Tabel Pemasok

Selasa, 13 November 2012

Query Language


·         Bahasa Query formal basis data relasional adalah bahasa untuk meminta informasi dari basis data. Sebelum basis data relational, query terhadap basis data merupakan tugas yang sangat sukar. Pemograman harus berurusan dengan skema fisik internal dari basis data. Contoh bahasa query relasional adalah SQL (Structured Query Language).

Rabu, 24 Oktober 2012

Pertemuan ke-5 Basis Data


Transformasi Model Data


·      Entitas kuat merupakan himpunan entitas yang dilibatkan dalam ERD dan tidak memiliki  ketergantungan dengan himpunan entitas lainnya.
·      Entitas yang mempunyai atribut kunci. Entitas ini bersifat mandiri, keberadaanya tidak bergantung pada entitas lainnya. Percepatan entitas kuat selalu memiliki karakteristik yang unik disebutidentifier (sebuah atribut tunggal atau gabungan atribut-atribut yang secara unik dapat digunakan untuk membedakannya dari entitas kuat yang lain).

·      Entitas lemah adalah suatu entity yang mana keberadaannya tergantung dari keberadaan entity lain dan tidak memiliki atribut yang dapat berfungsi sebagai key attribute.
·      Entitas yang tidak mempunyai atribut kunci. Entitas lemah diidentifikasikan dengan menghubungkan entitas tertentu dari tipe entitas yang lain ditambah atribut dari entitas lemah. Tipe entitas lain yang dipakai untuk mengidentifikasikan suatu entitas lemah disebut identifying owner dan relasi yang menghubungkan entitas lemah dengan owner disebut identifying relationship 

·      Gambar di atas merupakan contoh dari entitas lemah dan entitas kuat. Entitas hobi merupakan entitas lemah dan entitas mahasiswa merupakan entitas kuat.
·      Dalam realitas dapat pula kita jumpai adanya relasi yang secara kronologis mensyaratkan telah adanya relasi lain. Dengan kata lain, sebuah relasi terbentuk tidak hanya dari entitas tapi juga mengandung unsur dari relasi lain. Fenomena demikian dapat diakomodasi dengan Agregasi. Menggambarkan sebuah himpunan relasi yang secara langsung menghubungkan sebuah himpunan entitas dengan sebuah himpunan relasi dalam diagram E-R, sebenarnya tidak tepat atau bahkan ada yang dengan tegas tidak memperbolehkannya. Karena itu, sebagai jalan tengah, kita menggunakan notasi khusus untuk menunjukkan adanya agregasi semacam itu.
·      Contoh Agregasi


·      Transformasi Model Data ke Basis Data Fisik
Aturan umum dalam pemetaan Model Data (Level Konseptual dalam Abstraksi Data) yang digambarkan dengan Diagram E-R menjadi Basis Data Fisik (Level Fisik dalam Abstraksi Data) adalah:
§   Setiap himpunan entitas akan diimplementasikan sebagai sebuah tabel (file data)
§   Relasi dengan Derajat relasi 1:1 (satu ke satu) yang menghubungkan 2 buah himpunan entitas akan
   direpresentasikan dalam bentuk penambahan/penyertaan atribut-atribut relasi ke tabel yang mewakili salah satu dari kedua himpunan entitas.
§  Relasi dengan Derajat relasi 1-N (satu ke banyak) yang menghubungkan 2 buah himpunan entitas, juga akan direpresentasikan dalam bentuk pemberian/pencantuman atribut key dari himpunan entitas pertama (yang berderajat 1) ke tabel yang mewakili himpunan entitas kedua (yang berderajat N). Atribut key dari himpunan entitas pertama ini menjadi atribut tambahan bagi himpunan entitas kedua
·      Implementasi Himpunan Entitas Lemah dan Sub Entitas
Penggunaan Himpunan Entitas Lemah (Weak Entity Sets) dan Sub Entitas dalam diagram E-R diimplementasikan dalam bentuk tabel sebagaimana Himpunan Entitas Kuat (Strong Entity Sets).
Bedanya jika Himpunan Entitas Kuat sudah dapat langsung menjadi sebuah tabel utuh/sempurna walaupun tanpa melihat relasinya dengan himpunan entitas yang lain, sedangkan Himpunan Entitas Lemah dan Sub Entitas hanya dapat ditransformasikan menjadi sebuah tabel dengan menyertakan pula atribut key yang ada di himpunan entitas kuat yang berelasi dengannya.

Perc

Rabu, 03 Oktober 2012

Tugas 1 Basis Data


Tugas Pertemuan 4
Tugas 1
Menentukan Relation Key dari diagram berikut :



Dari diagram di atas, dapat dilihat bahwa relation key adalah yang bersimbol belah ketupat. Dan dapat disimpulkan pula bahwa relation key pada gambar di atas adalah:
  1. account-branch
  2. loan-branch
  3. borrower
  4. depositor
Tugas 2
Membuat tabel-tabel dan keterhubungan siswa, pelajaran dan guru dengan minimal masing-masing tabel mempunyai 5 record/tuple/baris.
Sebelumnya membuat dulu penentuan entitas yang terdapat dalam tabel tersebut.
o   Siswa : menyimpan semua informasi tentang semua siswa.
o   Pelajaran : menyimpan semua informasi tentang mata pelajaran yang ditawarkan.
o   Guru : menyimpan semua informasi tentang semua dewan guru.
Untuk selanjutnya, tentukan attributes.
o   Siswa
§  Nis : nomor induk siswa (integer) PK.
§  Nama_siswa : nama lengkap siswa (string).
§  Alamat_siswa : alamat lengkap siswa (string).
§  Jenis_kels : jenis kelamin siswa (string).
§  Ttl : tempat, tanggal lahir siswa (string).
o   Pelajaran
§  Kode_mapel : kode mata pelajaran yang akan diambil (string) PK.
§  Nama_mapel : nama mata pelajaran (string).
§  Desk_mapel : deskripsi singkat mata pelajaran (string).
§  Jam_mapel : jumlah jam mata pelajaran(string).
§  Guru_mapel : nama guru pengajar mata pelajaran (string).
o   Guru
§  Nip : nomor induk pegawai (integer) PK.
§  nama_guru: nama lengkap dewan guru (string).
§  alamat_guru: alamat lengkap dewan guru (string).
§  jenis_kelg: jenis kelamin guru (string).
§  gol_guru: golongan kepegawaian guru (string).
o   Hubungan
§  Guru mengajar mata pelajaran.
§  Mata pelajaran diambil oleh siswa.
§  Guru membimbing para siswa.

Setelah menentukan atribut, selanjutnya adalah pembuatan tabel :


Dari gambar di atas, dapat dilihat bahwa primary key ditunjukkan di nis (tabel siswa), nip (tabel guru) dan kode_mapel (tabel pelajaran). Sedangkan foreign key ditunjukkan pada nis dan kode_mapel (tabel siswa_ambil_mapel).

Dan diagram ERDnya sebagai berikut :

Basis Data Pertemuan Ke-4



Model Data Relational

High Level = ER Model
Lower Level = Relational Model

Model Data Relational
  •  Kumpulan tabel berrdimensi dua dengan masing-masing relasi(relations) tersusun atas tuple (baris) dan atribut (kolom) pada suatu suatu basis data
  • Suatu model daata yang meletakkan data dalam bentuk relasi (biasanya disebut tabel). Masing – masing tabel memilik struktur mirip denan ER database.
  • Relasi : Sebuah tabel yang terdiri dari beberapa kolom dan beberapa baris
  • Attribut : kolom pada sebuah relasi
  •  Tuple : baris pada sebuah relasi atau kumpulan elemen – elemen yang salong berkaitan menginformasikan tentang suatu entitas secara lengkap.
  • Domain : seluruh kemungkinan nilai yang dapat diberikan ke suatu attribut
  • Degree : Jumlah atribut dalam sebuah relasi
  •  Cardinality : jumlah tuple dalam sebuah relasi


Relasi
  •   Relasi menunjukan adanya hubungan diantara sejumlah entitas yang berasal dari himpunan entitas yang berbeda
  • Struktur data dasar untuk menyimpan informasi. Strukturnya sebagai tabel (kumpulan tabel-tabel)
  • Setiap relasi memilik schema yang mendeskripsikan nam dan atribut beserta tipenya.

Contoh :
    Mahasiswa = (nim:string,nama_mhs :string)

Keterangan:
- mahasiswa adalah nama relasi
- nim dan nama_mhs adalah atribut
- string adalah tipe dari atribut



Basis Data Relational
  • Baris disebut Tuple
  •  Kolom disebut atribut
  • Tabel disebut relation
  • Domain : kumpulan dari harga atomik yang dapat dimiliki oleh suatu kolom/atribut

Mendefinisikan Domain
  • Memberi nama domain yanng sesuai dengan nilai yang akan dimiliki domain tersebut
  •  Menentukan tipe data dari nilai yang membentuk domain
  • Menentukan format dari domain

Relational Key

Kunci atribut dari relasi :
  • Candidate key : atribut yang digunakan untuk membedakan antara satu baris dan dengan baris yang lain
  •  Primary key : candidate key digunakan untuk mengidentifikasikan tuple yang unik pada suatu relasi
  • Alternate key : candidate key yang tidak menjadi primary key
  • Foreign key : sebuah atribut dalam suatu relasi yang merujuk ke primary key relasi lain
Batasan – batasan integritas (integritas constraints)
  • Suatu batasan-batasan yang diberikan terhadap suatu relasi
  • Ditetapkan ketika schema didefinisikan
  • dicek ketika relasi – relasi dimodifikasi atau dimanipulasi (penambahan, pengubahan, penghapusan dan pencarian /menamplilkan data).

Relational Integrity Rules
  • Null : atribut yang tidak diketahui dan tidak cocok baris (tuple) tersebut Nilai (konstanta) null dih=gunakan untuk menyatakan/ mengisi atribut – atribut yang nilainya memang belum siap/tidak ada
  • Entity Integrity : tidak ada satu komponen primary key yang bernilai
  • Referential integrity : garis yang menghubungkan antara satu tabel dengan tabel lain