Kamis, 20 Desember 2012

Pertemuan ke-8


QUERY LANJUTAN

      1.      SUBQUERY
Subquery adalah statement SELECT yang dilampirkan sebagai klausa dalam SQL Statement yang lain.
Untuk penulisan subquery pada SQL
(SELECT select_list FROM table);

      2.      PENGGUNAAN SUBQUERY
Subquery digunakan untuk menyelesaikan persoalan dimana terdapat suatu nilai yang tidak diketahui
Subquery Banyak Kolom
tiap baris dari main query dibandingkan dengan nilai dari subquery multiple-row dan multiple-column

Tipe Perbandingan Pada Subquery
- Perbandingan Berpasangan
- Perbandingan Tidak Berpasangan

      3.      PENGGUNAAN SUBQUERY DALAM KLAUSA FROM
Query semacam ini dikenal juga dengan istilah inline view, karena tidak membentuk object database.
contoh penggunaan query pada from
(SELECT department_id, REDS(salary) salavg FROM employees GROUP BY department_id)

      4.      EKSPRESI SCALAR SUBQUERY
Ekspresi scalar subquery adalah subquery yang mengembalikan hanya satu nilai kolom dari satu baris.
contoh penggunaannya dengan ekspresi Case
(SELECT department_id FROM departments WHERE location_id = 1800)

Contoh penggunaanya dengan klausa ORDER BY
(SELECT department_name FROM departments WHERE e.department_id = d.department_id);

      5.      KORELASI SUBQUERY
Korelasi SubQuery digunakan untuk pemrosesan baris per baris. Tiap-tiap subquery dijalankan sekali untuk setiap baris dari outer query.

Proses dari Korelasi
Mengambil baris dari outer query kemudian menjalankan inner query untuk quality / disquality baris kandidat selanjutnya menggunakan nilai dari inner querry quality/disquality baris kandidat dan kembali lagi ke awal.

Cara penulisan korelasi subquery
(SELECT column1, column2 FROM table2 WHERE expr1 = expr2);

      6.      PENGGUNAAN OPERATOR EXIST DAN NON EXIST
Operator EXISTS dan NOT EXIST digunakan untuk menguji keberadaan dari baris dalam himpunan hasil dari subquery.

      7.      PENGGUNAAN KLAUSA WITH
Dengan menggunakan klausa WITH, kita dapat menggunakan blok query yang sama dalam statement SELECT pada saat terjadi lebih dari sekali dalam complex query.

Rabu, 28 November 2012

Pertemuan ke-7


Dependency Dan Normalisasi
 
      A. Functional Dependency (Ketergantungan Fungsional)
     Suatu atribut dikatakan Functionally Dependent jika menggunakan harga atribut untuk menentukan harga  atribut yang lain.

Contoh:
notasi : A => B
A dan B adalah atribut dari sebuah tabel. (Dibaca, A secara fungsional menentukan nilai pada B atau B bergantung pada A).

Functional Dependency:
 
1. Full Dependency (Ketergantungan Penuh)
    Jika terdapat atribut A dan B suatu relasi, berarti :
  - B memiliki ketergantungan fungsional penuh terhadap A.
  - B bukan memiliki dependensi terhadap A.

2. Partially Dependency (Ketergantungan Parsial)
Dimana beberapa atribut dapat dihilangkan dari A dengan ketergantungan tetap      dipertahankan.
3. Transitive Dependency (Ketergantungan Transitif)
Dimana kondisi A,B,C adalah atribut sebuah relasi A=>B dan B=>C .Maka C dikatakan sebagai transitive dependency terhadap A melalui B.
Jika C=>A asal melalui B

      B. Normalisasi
     Merupakan suatu proses pembentukan struktur basis data sehingga sebagian besar ambiguity bisa dihilangkan.

  •          Alasan mengapa dilakukan normalisasi :
  - Optimalisasi struktur-struktur tabel
  - Meningkatkan kecepatan
  - Menghilangkan pemasukan data yang sama
  - Lebih efisien dalam penggunaan media penyimpanan
  - Mengurangi redundansi
  - Menghindari anomali (insertion anomalies, deletion anomalies, update anomalies)
  - Integritas data yang ditingkatkan

  •          Bentuk normalisasi yang digunakan :
  - First normal form (INF)
  - Second normal form (2NF)
  - Third normal form (3NF)
  - Boyce-codd normal form (BCNF)
  - Four normal form (4NF)
  - Five normal form (5NF)

  •          Langkah-Langkah Normalisasi :

a. 1NF - Bentuk Normal Pertama
Suatu keadaan yang membuat setiap perpotongan baris dan kolom dalam relasi hanya berisi satu nilai. Tidak diperbolehkan ada atribut yang bernilai banyak (Multivalued Attribut), dan attribut komposit atau kombinas keduanya.

b. 2NF - Bentuk Normal Kedua
Bentuk normal ini terpenuhi jika memenuhi bentuk 1NF, dan semua atribut selain primary key, secara utuh memiliki Functional Dependency pada Primary Key. Dan sebuah tabel tidak memenuhi 2NF, jika ada atribut yang ketergantungan hanya bersifat parsial dari primary key. Kemudian jika tidak memiliki ketergantungan pada primary key, maka atribut harus dipindah atau dihilangkan.

c. 3NF - Bentuk Normal Ketiga
Terpenuhi jika :
  - Telah memenuhi bentuk 2NF
  - Tidak ada atribut non prmary key yang memiliki ketergantungan pada atribut non primary key yang lainya   (ketergantungan transitif)

Selasa, 20 November 2012

Pertemuan Ke-6



Query Language

Query Language atau yang lebih dikenal dengan nama SQL merupakan suatu bahasa yang digunakan untuk membuat sebuah database.
Query Language merupakan bahasa khusu yang digunakan untuk melakukan perintah-perintah untuk mengakses data pada sistem basis data.
SQL terdapat 2 jenis perintah, yaitu :

1. Data Devinition Language (DDL); yaitu merupakan suatu perintah SQL untuk mendefinisikan suatu struktur database.
  •  Create              = merupakan perintah dasar dalam pembuatan tabel
  •  Alter                = merupakan perintah untuk mengubah tabel
  • ·Rename           = merupakan perintah untuk mengubah nama tabel
  •  Drop                = merupakan perintah untuk menghapus table 
2. Data Manipulasi Language (DML); yaitu merupakan perintah SQL yang digunakan untuk memanipulasi suatu pengolahan data dalam tabel.
  •  Select    = digunakan untuk memanggil data dalam sebuah tabel
  • Insert     = digunakan untuk memasukkan data kedalam abel
  • ·Update = digunakan untuk mengubah nama dalam tabel
  • ·Delete    = digunakan untuk menghapus data dalam tabel

Relational Queries Language  diawali dengan pembuatan ERD yang kemudian diubah menjadi model data relational berupa table informasi terbatas kemudian diterjemahkan ke Query Language.
Bahasa Query Language terdiri dari 2, yaitu:
  1. Bahasa Prosedural; yaitu Bahasa yang identik dengan aljabar  relational, berupa operasi dasar seperti select* dan beberapa  operasi tambahan.
  2. Bahasa non Prosedural; yaitu Bahasa yang identik dengan kalkulus relational, yaitu mendeskripsikan informasi tanpa memberi instruksi.
 Query Unary; yaitu query selection yang digunakan pada relasi binary,

Contoh1 :

Ada beberapa data pada suatu table bernama dosen yang kemudian akan dipilh data tersebut berdasarkan tempat_lahir dengan ketentuan :

Tempat_lahir=’jakarta’   v   tempat_lahir=’bogor’ dari table dosen
Artinya : menampilkan dosen dengan tempat lahir Jakarta atau bogor.

Syntaq pada SQL : select * from dosen where tanggal_lahir=’jakarta’

Keterangan:
^ = berarti mengharuskan
v = bisa dipilih salah satu

Sabtu, 27 Oktober 2012

Pertemuan ke-5


Transformasi Model Data

Varian entitas terbagi menjadi dua bagian yaitu entitas kuat dan entitas lemah, berikut adalah penjelasannya:
1.      Entitas Kuat adalah entitas yang dilibatkan dalam ERD tidak memiliki ketergantungan dengan himpunan entitas lainnya.
2.      Entitas Lemah adalah antitas yang keberadaanya tergantung keberadaan entitas lain. Entitas lemah tidak memiliki atribut yang dapat berfungsi sebagai key attribute.

Berikut adalah contoh entitas kuat dan entitas lemah:
  1. Agregasi merupakan penggambaran himpunan relasi yang secara langsung menghubungkan sebuah  entitas dengan sebuah himpunan relasi dalam ERD.
  2. Transformasi model data ke basis data fisik yaitu komponen ERD (himpunan entitas dan relasi) ditransformasikan menjadi table. Atribut yang melekat pada masing-masing himpunan entitas dan relasi akan dinyatakan sebagai field dari table yang sesuai.
  3. Relasi berderajat relasi 1-1 yaitu menghubungkan dua buah himpunan entitas yang direpresentasikan dalam bentuk penambahan atau penyertaan atribut  relasi ke table yang mewakili salah satu dari himpunan entitas.
  4. Relasi berderajat 1-N yaitu menghubungkan dua buah himpunan entitas direpresentasikan dalam bentuk pemberian atau pencantuman atribut key dari himpunan entitas berderajat 1ke tabel yang mewakili himpunan entitas berderajat N.
  5. Relasi berderajat N-N yaitu menghubungkan dua buah himpunan entitas, diwujudkan dalam bentuk tabel khusus yang memiliki field (foreign key) yang berasal dari key-key dari himpunan entitas yang dihubungkan.

Rabu, 03 Oktober 2012

Pertemuan ke-4


MODEL DATA RELATIONAL


Model Data Relational

Model Data Relational merupakan kumpulan tabel berdimensi dua dengan masing-masing relasi (relation ) tersusun atas tuple (baris) dan atribut (kolom) pada suatu basis data. Masing-masing tabel memiliki struktur yang mirip dengan ER darabase. 

Relational Data Model Terms

   1.      Relasi, adalah tabel yang terdiri dari beberapa kolom dan beberapa baris.
   2.      Attribute, adalah kolompada sebuah relasi
   3.      Tuple, merypakn baris pada sebuah relasi, atau kumpulan elemen-elemen yang saling berkaitan menginformasikan entang suatu entitas secara lengkap.
   4.      Domain, adalah seluruh kemungkinan nilai yang dapat diberikan ke suatu atribut.
   5.      Degree, adalah jumlah atribut dalam sebuah relasi.
   6.      Cardinality, merupakan jumlah tuple dalam sebuah relasi.

Relasi menunjukkan adanya hubungan diantara sejumlah entitas yang berasal dari himpunan entitas yang berbeda. Setiap relasi memiliki schema yang mendeskripsikan nama relasi dan atribut beserta tipenya.
Contoh :
mahasiswa = (nim : sting, nama_mhs : string).

Keterangan :
 mahaiswa adalah nama relasi
nim dan nama_mhs adalah nama atribur
string adalah tipe dari atribut.

Baris Data Relational

   a.       Baris disebut Tuple
   b.      Kolom disebut Attribute
   c.       Tabel disebut Relational
   d.      Domain merupakan dari harga atomik yang dapat dimiliki oleh suatu kolom atau atribut

Mendefinisikan Domain 

   a.       Memberikan nama domain yang sesuia dengan nilai yang akan dimiliki domain tersebut.
   b.      Menentukan tipe data dari nilai yang akan membentuk domain.
   c.       Menentukan format dari domain.

Kunci Atribut dari Relasi

Ada empat macam kunci atribut dari relasi sebagai berikut :
   1.      Candidate Key, merupakn atribut uang digunakan untuk membedakan satu baris dan dengan baris yang      lain.
   2.      Primary Key, adalah candidate key yang digunakan untuk mengidentifikasikan tuple yang unik pada suatu relasi.
   3.      Alternate Key, adalah candidate key yang tidak menjadi primary key.
   4.      Foreign key, adalah sebuah atribut dalam suatu relasi yang merujuk ke primary key relasi lain.

Batasan-batasan  Integritas (Integrity Constraints)

Integrity Constraints  adalah Suatu batasan-batasan yang diberikan terhadap suatu relasi ditetapkn ketika schema didefinisikan dan dicek ketika relasi-relasi dimodifikasi atau dimanipulasi (penambahan, pengubahan, penghapusan dan pencarian atau menampilkan data).

Relation Integrity Rules

   a.       Null;
Null merupakan nilai suatu atribut yang tidak diketahui dan tidak cocok untuk baris (tuple) tersebut. Nilai (konstanta) Null digunakan untuk menyatakan atau mengisi atribut-atribut yang nilainya memang belum siap atau tidak ada.
   b.      Entity Integrity;
Entity Integrity merupakan tidak adanya satu komponen primary key yang bernilai null.
   c.       Referential Integrity;
Referential Integrity adalah garis yang menghubungkan antara satu tabel dengan tabel lain.