Kamis, 20 Desember 2012

SQL (Lanjut)


 Apa yang disebut dengan SubQuery ? Subquery adalah statement SELECT yang
dilampirkan sebagai klausa dalam SQL Statement yang lain.


Pada gambar diatas, subquery (inner query) dijalankan sekali sebelum main query. Kemudian hasil dari subquery digunakan oleh main query (outer query). Berikut posisi penulisan subquery dalam SQL command 


 PENGGUNAAN SUBQUERY
Subquery mengembalikan nilai ke main query. Subquery digunakan untuk menyelesaikan persoalan dimana terdapat suatu nilai yang tidak diketahui (unknown values). Berikut ini diberikan contoh penggunaan subquery.


Query diatas akan menampilkan nama pegawai yang gajinya lebih dari pegawai dengan nomer pegawai 149. Sebelumnya, gaji dari pegawai dengan nomer pegawai 149 tidak diketahui, untuk itu kita tempatkan sebagai subquery agar nilai yang tidak diketahui tersebut dapat diketahui dan pada ilustrasi gambar diatas nilai gaji dari pegawai 149 adalah 10500.

Contoh lain penggunaan SubQuery:
SELECT mhs.namaMHS,ambilMK.nilai FROM mhs,ambilMK WHERE mhs.nim=ambilMK.nim AND ambilMK.kodeMK='A02' AND ambilMK.nilai=(SELECT max(nilai) FROM ambilMK WHERE kodeMK='A02');






Selasa, 27 November 2012

Dependency dan Normalisasi

Functional Dependency
Menggambarkan hubungan, batasan, keterkaitan antara atribut-atribut dalam relasi.
Simbolny: -> dibaca secara fungsional menentukan.

contoh:
A->B = A secara fungsional menentukan B
A dan B merupakan atribut tabel.


  • NIM->Nama 
           Karena untuk setiap NIM yang sama maka Nama juga sama.
  • {Matakuliah,NIM}->NilaiHuruf
          Karena untuk menentukan NilaiHuruf tidak hanya membutuhkan NIM saja.

Macam Dependency:
  • Full Functional
  • Partial
  • Transitive
  • Full Functional
          Menunjukkan jika terdapat atribut A dan B dimana
  • B memiliki ketergantungan secara penuh pada A
  • B bukan full dependency jika ada subset A
     contoh:
     {NIM,Nama}->id_ruang


  • Partially Dependency
          Merupakan ketergantungan fungsional dimana beberapa atribut dapat dihilangkan dari A dengan ketergantungan tetap dipertahankan.
> B memiliki dependency terhadap subset A.

contoh:
NIM,Nama-> id_ruang
Jika nama dihilangkan tetap terjadi ketergantungan atau id_ruang tetap bisa dipertahankan.

  • Transitive Dependency
          Merupakan tipe functional dependency yaitu kondisi dimana A,B,C adalah atribut sebuah relasi dimana A-> B dan B->C
Maka C diakatakan sebagai transitive dependency terhadap A melalui B.

Normalisasi
Merupakan suatu proses untuk mendapatkan struktur tabel atau relasi yang efisien dan bebas sari anomali dan mengacu pada cara data item dikelompokkan ke dalam struktur record.
Normalisasi adalah proses pembentukan struktur basis data sehingga sebagian besar ambiguitas bisa dihilangkan.
Mengapa dilakukan Optimalisasi?
  • Optimalisasi struktur-struktur tabel
  • Meningkatkan kecepatan
  • Menghilangkan pemasukan data yang sama
  • Lebih efisien dalam penggunaan media penyimpanan
  • Mengurangi redundansi
  • Menghindari anomali (onsertion anomalies, deletion anomalies, update anomalies)
  • Integritas data yang ditingkatkan
Bentuk Normalisasi
  • 1NF
  • 2NF
  • 3NF
  • BCNF
  • 4NF
  • 5NF



Kamis, 15 November 2012

Pengenalan SQL (Structured Query Language)

SQL adalah suatu bentuk script yang digunakan untuk berkomunikasi dengan basisdata.

 Elemen SQL
Elemen dasar SQL mencakup pernyataan, nama, tipe data, konstanta, ekspresi, dan fungsi bawaan.
1. Pernyataan
Pernyataan adalah perintah SQL yang meminta sesuatu tindakan kepada DBMS. SQL memiliki kira-kira 30 pernyataan. Beberapa pernyataan dasar SQL berikut ini :
ALTER
Mengubah struktur tabel
COMMIT
Mengakhiri sebuah eksekusi transaksi
CREATE
Menciptakan tabel, indeks atau pandangan
DELETE
Menghapus baris pada tabel
DROP
Menghapus tabel, indeks atau pandangan
GRANT
Menugaskan hak terhadap basis data kepada pengguna atau grup pengguna
INSERT
Menambahkan sebuah baris pada tabel
REVOKE
Membatalkan hak terhadap basis data
ROLLBACK
Mengembalikan ke keadaan semula sekiranya suatu transaksi gagal dilaksanakan
SELECT
Memilih baris dan kolom pada tabel
UPDATE
Mengubah nilai pada sebuah baris


2. Nama
Nama digunakan sebagai identitas bagi objek-objek pada DBMS. Contoh objek pada DBMS adalah tabel, kolom dan pengguna.


3. Tipe Data
Setiap data memiliki tipe data.
a. Tipe data untuk numerik
b. Tipe data string
c. Tipe data tanggal dan jam


4. Konstanta
Konstanta menyatakan nilai yang tetap.
5. Ekspresi
Ekspresi adalah segala sesuatu yang menghasilkan nilai. Ekspresi digunakan untuk menghitung nilai.

6. Aggregate Functions (Fungsi Agregat)
Fungsi adalah sebuah subprogram yang menghasilkan suatu nilai jika dipanggil. Fungsi agregat adalah fungsi standar di dalam SQL, suatu fungsi yang digunakan untuk melakukan summary, fungsi statistik standar yang dikenakan pada suatu tabel atau query.
a. AVG(ekspresi)
Fungsi ini digunakan untuk mencari rata-rata nilai dalam suatu kolom dari suatu tabel atau ekspresi. Ekspresi dalam fungsi AVG umumnya adalah nama kolom. Kolom yang dicari nilai rata-ratanya adalah kolom dengan tipe data numerik.
b. COUNT(x)
Fungsi ini digunakan untuk menghitung jumlah record (baris) dari suatu kolom dari suatu tabel. X adalah nama kolom yang ingin dicari jumlah barisnya.
c. MAX(ekspresi)
Fungsi ini digunakan untuk mencari nilai terbesar dari suatu kolom dari suatu tabel. Kolom yang dicari nilai terbesarnya memiliki tipe data numerik.
d. MIN(ekspresi)
Fungsi ini digunakan untuk mencari nilai terkecil dari suatu kolom dari suatu tabel. Kolom yang dicari nilai terkecilnya memiliki tipe data numerik.
e. SUM(ekspresi)
Fungsi ini digunakan untuk mendapatkan nilai total dari suatu kolom pada suatu tabel.




Rabu, 24 Oktober 2012

Transformasi Model Data

Model data lanjut
> Varian entitas
    - Entitas kuat yaitu himpunan entitas yang dilibatkan dalam ERD
    - Entitas Lemah yaitu bahwa keberadaannya tergantung dari keberadaan entitas lain
>Agregasi yaitu himpunan relasi yang langsung menghubungkan himpunan entitas dengan himpunan relasi
  dalam ERD.


   TRANSFORMASI MODEL DATA KE BASIS DATA FISIK
- ERD direpresentasikan menjadi sebuah basis data secara physic
- Komponen ERD (himpunan relasi dan entitas) ditransformasikan ke dalam bentuk tabel

TRANSFORMASI DASAR
1. Relasi 1-1
2. Relasi 1-N
3. Relasi N-N

IMPLEMENTASI HIMPUNAN ENTITAS LEMAH DAN SUB ENTITAS
Penggunaan himpunan entitas lemah dan sub entitas langsung diimplementasikan dalm bentuk tabel seperti pada entitas kuat. Perbedaannya entitas lemah hanya dapat ditransformasikan dalam sebuah tabel dengan menyertakan pula atribut key sebagai hasil implementasi entitas lemah.


HUBUNGAN HIMPUNAN ENTITAS LEMAH DAN SUB ENTITAS

Senin, 01 Oktober 2012

Latihan Model Data Relational


LATIHAN 1
Menentukan Relation Key dari diagram berikut


    Jawab                          :
Diagram di atas terdiri dari 4 entitas yang akan menjadi empat tabel yaitu account, branch, customer, dan loan. Dimana tiap-tiap tabel mempunyai relation key tersendiri.
      a.      Entitas Account
Ø  Candidat key   : account_number dan balance
Ø  Primary Key    : account_number
Ø  Alternate Key  : balance
Ø  Foreign Key     : -
     b.      Entitas Branch
Ø  Candidat key   :branch_name,branch_city,assets
Ø  Primay Key      : branch_name
Ø  Alternate key  :branch_city,assets
     c.       Entitas loan
Ø  Candidat Key   : loan_number,amount
Ø  Primary Key    : loan_number
Ø  Alternate Key  : amount
     d.      Entitas Customer
Ø  Candidat Key  : customer_name, customer_city,customer _street
Ø  Primary Key    : customer_name
Ø  Alternate Key  : customer_city,customer_street

 LATIHAN 2

      A.      Membuat tabel Siswa, Pelajaran, dan Guru dan masing-masing tabel mempunyai 5 tuple





ERD









Jumat, 28 September 2012

Model Data Relational

Minggu ini kami akan memebahas mengenai Model data relational dimana model data ini merupkankebalikan dari E-R model yang kita bahas minggu lalu. Pada dasarnya E-R Model menunjuk High level dan relational model menunjuk pada lower level.
Pengertian Model data relational
Adalah sekumpulan tabel dua dimensi yang mempunyai relasi dimana masing-masing dari relasi tersebut tersusun atas baris atau yang sering disebut sebagai tuple dan kolom atau atribut pada suatu database.

Kemudian data diletakkan oleh suatu model data dalam bentuk relasi. Nah, model data yang seperti ini bisayanya disebut tabel.
Karakteristik tabel adalah bahwa Tiap tabel mempunyai structure yang hampir sama dengan ER database.

Beberapa pengertian mengenai Relational Data Model Terms:
 .       Relasi merupakan tabel yang terdidi atas beberapa kolom dan baris
 .      Attribute adalah kolom pada sebuah relation
 .       Tuple adalah baris pada suatu relasi atau bisa dkatakan sebagai kumpulan beberapa elemen yang saling                berkait untuk menginformasikan mengenai suatu entitas secara lengkap.
.      Domain adalah semua kemungkinan dari nilai yang bida diberikan kepada suatu attribute.
.       Degree merupakan Sejumlah atribute pada suatu relasi.
.       Cardinality  merupakan sejumlah tuple pada suatu relasi.

Mengenai Relasi
  -  Adanya hubungan antara sejumlah entitas yang berasal dari himpunan entitas yang berbeda ditunjukkan oleh suatu relasi
  - Struktur data dasar untuk menyimpan informasi dimana strukturnyamerupakan suatu tabel dalam bentuk  kumpulan-kumpulan tabel.
 - Nama relasi dan atribut beserta tipenya dideskripsikan oleh schema yang dimiliki oleh setiap relasi.
-           Sebagai contoh:
Mahasiswa -> nim(string), nama_mhs(striing)
Ket:
Mahasiswa merupakan nama dari relasi, nim dan nama_mhs merupakan atribut dan string adalah tipe datanya.
Keterangan:
    Ø  BARIS disebut sebagai TUPLE
    Ø  KOLOM disebut sebagai ATTRIBUTE
    Ø  TABEL disebut sebagai RELATION
    Ø  DOMAIN merupakan sekumpulan dari harga atomik yang bisa dimiliki oleh suatu atribut

Istilah Alternatif
Perbandingan istilah alternatif untuk ER model-Relational Model-Database-Traditional Program
 .      Entitiy-Relation-Table-File
 .      Antity Instance-Tuple-Row-Record
 .      Attribute-Attribute-Column-Field
 .      Identifier-Key-Key-Key (link)


Pendefisian  Domain
  Ø  Pemberian nama domain yangs sesuai dengan nilai yang akan dimiliki doamin tersebut 
  Ø  Menentukan type data dari niliai yang membentuk domain
  Ø  Menentukan format dari domain

Kunci Relasi (Relational Key)
 Ø  Kunci Atribut dari Relasi
      Candidate Key
  Merupakan  atribut yang digunakan untuk membedakan antara satu baris dan dengan baris  yang lain.
 Primary Key
Merupakab Candidate Key yang digunakan untuk mengidentifikasi suatu tuple yang unique pada suatu relasi. 
 Alternate Key
 Candidate key yang tidak menjadi primary key
  Foreign Key
  Sebuah atribut dalam suatu relasi yang menunjuk ke primary key relasi yang lain.

Mengenai Integrity Constraints atau batasan Integritas
  Ø  Merupakan suatu batasan yang diberikan pada suatu relasi
  Ø  Ditetapkan ketika schema didefinisikan
  Ø  Dicek ketika relasi dimodifikasi

Mengenai Relational Integrity Rule
 Null merupakan suatu atribut yang tidak ketahui duntuk tuple. Nilai Null digunakan untuk menyatakan atau mengisi atribut yang lain yang nilainya tidak ada.
 Entity Integrity -> Tidak ada 1 komponen primary key bernilai 0
  Referential Integrity -> Garis yang menghubungkan 1 tabel dengan yang lain

Jumat, 21 September 2012

Diagram E-R (Entity Relationship)


Sebelum kita bahas masalah Diagram E-R kali ini, kita ulas sedikit yuk mengenai  DBMS...

Apa itu DBMS?? masih ingatkah? ^_^

DBMS adalah program yang memungkinkan pengguna untuk membuat dan memelihara database serta dapat digunakan untuk memanipulasi dan memperoleh informasi.

Nah, udh ingatkan?? Sekarang yuk kita bahas mengenai Diagram E-R....

Jadi E-R model itu ada 2 macam yaitu
a. ERM (Entity Relationship Model)
b. ERD (Entity  Relationship Diagram)

ERM (Entitiy Relationship Model)
- Digunakan untuk menggambarkan data dalam bentuk entitas, atribut, dan relationship.
- Masih bersifat Konseptual (belum langsung diimplementasikan)

ERD (Entity Relationship Diagram) 
- Digunakan untuk menggambarkan hubungan antar entitas
- E-R Diagrm dapat mengekspresikan struktur logis sebuah basis data dengan simple dan jelas.

E-R diagram terbagi dalam 3 bentuk yaitu
a. Persegi digunakan untuk merepresentasikan entitas
b. Elips digunakan untuk merepresentasikan atribut
c. Garis digunakan untuk merepresentasikan hubungan

Apa itu Entitas??
Entitas adalah objek yang ada dan dapat dibedakan dari objek lain dengan dunianya.
Sumber entitas memiliki atribut yang membedakan dirinya dengan objek lain, dan memiliki hubungan dengan objek lain.
Sebagai contoh:

  • Manusia: MHS, Pasien, Pegawai
  • Tempat : Toko, Gudang
  • Kejadian: (relasi dan transaksi)

Set Entitas
Adalah kumpulan entitas yang mempunya tipe yang sama.
Sebagai contohny adalah sekumpulan entitas mahasiswa.
Entity set dari entitas yang sama tidak perlu diuraikan.

Apa itu Atribut??
Atribut dilambangkan dengan elips. Kemudian sebuah entitas direpresentasikan oleh beberapa atribut.
Atribut adalah propertif deskriptif yang dimiliki oleh semua anggota dari semua entitas. Setiap atribut pada entitas memiliki kunci yang dinamakan dengan Primary Key dan sifatnya unik.
Sebagai contoh :
Entitas = Mahasiswa
Atribut = NIM, Nama_mhs, Jenis_kelamin, Tgl_lhr, Alamat
Primery Key= NIM karena memiliki nilai yang unik.

Value Set (Kumpulan nilai)
Definisi domain dari suatu atribut adalah tipe data, panjang, format, nilai yang memungkinkan, keunikan, dan kemungkinan data.

Jenis Atribut
     a.     Atribut Sederhana (Atomic)
Adalah atribut yang terdiri atas satu komponen tunggal yang keberadaannya        independen, tidak bisa diuraikan lagi.
     b.     Komposit
Adalah atribut yang terdiri atas beberapa atribut yang lebih mendasar dan bisa diuraikan.
     c.      Single Value
Adalah atribut yang hanya mempunyai suatu nilai untuk suatu entitas tertentu.
     d.     Multi Value
Adalah atribut yang terdiri atas sekumpulan nilai untuk suatu entitas tertentu.
     e.      Derivered Value
Yang dihasilkan dari atribut lain yang tidak berasal dari satu entitas.




Relationship
Adalah hubungan antara satu atau lebih entity. Dapat mempunyai atribut, dimana terjadi adanya transaksi yang menghasilkan nilai tertentu.







Cardinalitas Rasio  
  Ø  Menjelaskan jumlah kecenderungan satu entitas dengan entitas yang lain.
a.      One to One
Terjadi bila satu entitas A berhubungan paling tidak dengan satu entitas B.
Contoh :
-         Manager -> Memanages-> Department
-         Kaprodi -> Memegang -> satu Prodi
b.     One to Many
Terjadi apabila suatu entitas A dihubungkan dengan sejumlah entitas di B.
Contoh :
-         1 dosen -> mengajar -> sejumlah matakuliah
-         1 dosen wali -> membawahi -> beberapa mahasiswa
c.      Many to Many
Terjadi apabila banyak entitas A dihubungkan dengan sejmlah atau banyak entitas di B.
Contoh :
-         Employes -> works_for -> sejumlah project
-         Beberapa mahasiswa -> mengambil -> beberapa mata kuliah