Bab 4 Data Manipulation Language dan Entity Relational Diagram .
4.1. Data Manipulation Language Digunakan untuk memanipulasi data yang ada dalam suatu tabel. Perintah yang umum dilakukan adalah: a. SELECT b. INSERT c. UPDATE dan d. DELETE
a. SELECT Digunakan untuk menampilkan semua atau sebagian isi dari tabel yang telah di inputkan data-datanya. Perintahnya: SELECT * FROM nama_tabel; Contoh: select * from mahasiswa; Perintah diatas berarti kita akan menampilkan semua data yang telah di inputkan pada tabel mahasiswa, untuk melihat/mengecek kebenaran dari data yang telah kita inputkan. ket: Setiap perintah hrs diakhiri dng tanda titik koma (;).
Contoh perintah Select 1: Tampilkan seluruh data. SELECT * FROM user 2: Tampilkan pengguna yang tidak pernah bertransaksi. WHERE total_transaksi = 0 3: Tampilkan username pengguna yang bertransaksi kurang dari 10 dan nilainya lebih dari 1.000. SELECT username FROM user WHERE jml_transakai < 10 AND total_transaksi > 1000 4: Tampilkan total nominal transaksi yang sudah terjadi. SELECT SUM(total_transaksi) AS total_nominal_transaksi FROM user 5: Tampilkan seluruh data diurutkan berdasarkan jumlah transaksi terbesar ke terkecil. ORDER BY jml_transaksi DESC
b. INSERT Merupakan perintah untuk memasukkan/menyisipkan data ke dalam sebuah tabel yang telah kita buat. Perintahnya: INSERT INTO nama_tabel (nama_kolom1, nama_kolom2, ...) values (data1, data2, ...); Contoh: insert into mahasiswa (nama, npm, kelas, alamat) values ("Budi", "12345", "1IA07", "Jakarta"); Perintah diatas berarti kita akan memasukkan data ke dalam tabel mahasiswa, yang pertama yaitu Budi ke dalam kolom nama, lalu 12345 ke dalam kolom npm, 1IA07 ke dalam kolom kelas, dan Jakarta ke dalam kolom alamat. Tanda petik ("") berarti kita sudah definisikan tipe data dari nama_kolom dengan varchar, sehingga kita harus menggunakan tanda petik ("").
b. INSERT Digunakan untuk menyimpan data dalam tabel dipergunakan sintaks: INSERT INTO [NAMA_TABLE] ([DAFTAR_FIELD]) VALUES ([DAFTAR_NILAI]) Contoh: INSERT INTO TEST (NAMA, ALAMAT, PASSWORD) VALUES (“test”, “alamat”, “pass”);
c. UPDATE Merupakan perintah untuk mengubah suatu data jika terdapat kesalahan dalam penginputan data tersebut. Perintahnya: UPDATE nama_tabel SET nama_kolom = ekspresi WHERE kondisi; Contoh: update mahasiswa set nama = "Udin" where npm = "12345"; Perintah diatas berarti kita akan mengubah data pada kolom nama menjadi Udin yang dikondisikan / dilihat dari nilai npm 12345. Sehingga semua yang memiliki nilai npm 12345 pada kolom nama nya akan berubah menjadi Udin.
d. DELETE Digunakan untuk menghapus data dari tabel dengan mempergunakan sintaks: DELETE FROM [nama_table] Where [KONDISI] Contoh : delete from mahasiswa where npm = "12345"; Perintah diatas berarti kita akan menghapus data dari tabel mahasiswa yang dikondisikan / dilihat dari npm yaitu 12345. Maka semua data yang memiliki npm 12345 akan terhapus dari tabel mahasiswa.
Fungsi aggregat Beberapa SMBD memiliki fungsi aggregat, yaitu fungsi-fungsi khusus yang melibatkan sekelompok data (aggregat). Secara umum fungsi aggregat adalah: a. SUM untuk menghitung total nominal data b. COUNT untuk menghitung jumlah kemunculan data c. AVG untuk menghitung rata-rata sekelompok data d. MAX dan MIN untuk mendapatkan nilai maksimum/minimum dari sekelompok data. e. Fungsi aggregat digunakan pada bagian SELECT. Syarat untuk fungsi aggregat diletakkan pada bagian HAVING, bukan WHERE.
4.2. Entity Relational Diagram ERD adalah sebuah konsep yang mendeskripsikan hubungan antara penyimpanan dan didasarkan pada persepsi dari sebuah dunia nyata yang terdiri dari sekumpulan objek, disebut entiti & relasi diantar objek-objek tersebut.
1. Komponen Dalam ERD Diagram ERD digunakan untuk memodelkan struktur data dan hubungan antar data. Dengan ERD, model dapat diuji dengan mengabaikan proses yang dilakukan. Diagram ER pertama kali dideskripsikan oleh Peter Chen yang dibuat sebagai bagian dari perangkat lunak.
2. Notasi ERD
2.a. Entity Entitas digunakan untuk menerapkan integritas pada tingkat Entity (Tabel), agar setiap Instances (Record/Baris) pada suatu Entity bersifat Unique yang disebut sebagai Primary Key sehingga dapat dibedakan antara yang satu dengan yang lainnya. Contohnya : Semua Pelanggan, atau Pelanggan saja dengan entitas Ani, Budi, Amin dst Semua Mobil, atau Mobil apa saja, dengan entitas mobil Kijang, Starlet dan lain-lain Semua Mahasiswa, atau Mahasiswa saja dengan entitas Eti, Andi dan lain-lain.
2.b. Relasi Relasi digunakan utk menghubungkan beberapa tabel, sehingga data–data yang disimpan dalam tabel tetap normal. Dalam mySQL relasi antar tabel dapat dibuat jika tipe tabel tersebut innoDB. Secara otomatis saat membuat tabel baru, tipe tabel adalah MyISAM sehingga perlu merubah ke tipe innoDB terlebih dahulu.
2. c. Atribut Setiap Entitas pasti memiliki Atribut yang mendeskripsikan karakteristik dari Entitas tersebut. Penentuan/pemilihan atribut-atribut yang relevan bagi sebuah entitas merupakan hal penting lainnya dalam pembentukan model data. Penetapan atribut bagi sebuah entitas umumnya memang didasarkan pada fakta yang ada, tetapi tidak selalu seperti itu. Istilah atribut sebenarnya identik dengan pemakaian kolom data.
2.d. Garis Merepresentasikan hubungan atribut ke set entitas & set entitas ke relasi. Contoh : Diagram E-R dibawah terdiri dari 2 entitas, customer dan loan, dan satu relasi borrower. Atribut dari customer adalah nama, ktp, jalan, kota. Atribut untuk loan adalah no_pinjaman, jml_pinjaman. Hubungan entity customer ke loan adalah banyak ke banyak.
2.d. Garis
3. Relasi Struktur penulisan : alter table nama_tabel type = type_tabel; Contoh : mysql> alter table daftarharga type = innoDB; Sebagai contoh pembuatan relasi dalam mySQL : Membuat tabel baru dan langsung di relasikan. Mysql> create table mahasiswa (nim varchar(15) notnull, primary key (nim), nama varchar(25)) type=innoDB; mysql> create table kuliah(nim varchar(15), kode_mkul varchar(15), INDEX nim (nim), FOREIGN KEY (nim) REFERENCES mahasiswa(nim)) TYPE=INNODB; Perintah SQL diatas untuk membuat tabel mahasiswa dan tabel kuliah, kedua tabel tersebut dihubungkan / direlasikan pada field nim.
Membuat relasi pada tabel lama Jika telah mempunyai tabel dalam database dan ingin direlasikan dengan tabel lain. Struktur penulisannya adalah sebagai berikut : Alter table nama_table add foreign key (nama_field) references tabel_master(nama_field); Contoh : mysql> Alter table kuliah add foreign key (nim) references mahasiswa(nim);
4. Kardinalitas Relasi Kardinalitas pemetaan atau rasio kardinalitas menunjukkan jumlah entitas yang dapat dihubungkan ke satu entity lain dengan suatu relasi. Kardinalitas pemetaan meliputi : 1. Hubungan satu ke satu (one to one). Yaitu satu entity dalam A dihubungkan dengan maksimum satu entity dalam B. 2. Hubungan satu ke banyak (one to many) Yaitu satu entity dalam A dihubungkan dengan sejumlah entity dalam B. Satu entity dalam B dihubungkan dengan maksimum satu entity dalam A.
4. Kardinalitas Relasi 3. Hubungan banyak ke satu (many to one) Yaitu satu entity dalam A dihubungkan dengan maksimum satu entity dalam B. Satu entity dalam B dapat dihubungkan dengan sejumlah entity dalam A. 4. Hubungan banyak ke banyak (many to many). Satu entity dalam A dihubungkan dengan sejumlah entity dalam B, dan satu entity dalam B dihubungkan dengan sejumlah entity dalam A.
Gambar Kardinalitas Pemetaan
5. Spesialisasi Proses mendesain subgrup di dalam suatu entity disebut dengan spesialisasi. Suatu himpunan entitas bisa memiliki suatu subgrup yang berbeda diantara entitas-entitas lain dalam himpunan tersebut. Misalnya suatu sub himpunan entitasd alam suatu himpunan entity bisa memiliki atribut yang berbeda dari entity-entiti lain. Model E-R memiliki fasilitas untuk perbedaan ini. Contoh : himpunan entitas account memiliki atribut account-number dan balance. Suatu account dapat diklasifikasikan lagi menjadi salah satu dari - savings-account - checking-account
5. Spesialisasi Setiap tipe account ini diterangkan dengan himpunan atribut yang termasuk dalam atribut-atribut dari entitas account ditambah dengan atribut tambahan. Contoh entity saving-account diterangkan dengan atribut interest-rate, dan checking-account diterangkan dengan overdraft-amount. Proses spesialisasi mengijinkan pembedaan account berdasarkan tipe account. Account juga dapat dibedakan dengan cara lain, misalkan berdasarkan tipe kepemilikkan menjadi commercial-account dan personal-account. Ketika dalam suatu entitas dibentuk lebih dari satu proses spesialisasi, maka suatu entitas menjadi milik dua spesialisasi tersebut. Misal suatu account bisa merupakan suatu personal account dan suatu checking account. Dalam diagram E-R, spesialisasi dilambangkan dengan komponen segitiga bertuliskan ISA. ISA juga melambangkan hubungan antara superclass-subclass. Entity yang dengan kedudukkan lebih rendah/tinggi memiliki lambang sama.
ERD Spesialisasi dan Generalisasi
6. Generalisasi Disamping proses desain top-down (dari inisial entitas ke level lebih rendah (subgrup)), desain juga dapat dilakukan dengan proses bottom-up, yaitu banyak entitas disintesiskan menjadi entity yang lebih tinggi berdasarkan kesamaan feature-nya. Desainer basis data mungkin mengidentifikasi terlebih dulu entitas checking-account dengan atribut account-number, balance dan overdraftamount. Ditemukan juga entity set saving-account dengan atribut account-number, balance dan interest-rate. Terdapat kesamaan antara entitas checking-account dengan entitas saving-account, yaitu keduanya memiliki beberapa atribut yang sama. Persamaan ini dapat diekspresikan dengan generalisasi.
7. Tahapan Pembuatan ERD a. Tahap pembuatan diagram ER awal (preliminary design) b. Tahap optimasi diagram ER (final design) c. Tahap Implementasi Basis data
a. Tahap pembuatan diagram ER awal (preliminary design) Tujuan dari tahap pertama adalah untuk mendapatkan sebuah rancangan basis data minimal yang dapat mengakomodasi kebutuhan penyimpanan data terhadap sistem yang sedang ditinjau. Tahap awal ini umumnya mengabaikan anomali-anomali (proses pada basis data yang memberikan efek samping yang tidak diharapkan) yang memang ada sebagai suatu fakta. Anomali-anomali tersebut biasanya baru dipertimbangkan pada tahap kedua
b. Tahap optimasi diagram ER (final design) Tahap kedua mempertimbangkan anomali-anomali dan juga memperhatikan aspek-aspek efisiensi, performansi dan fleksibilitas. Tiga hal tersebut seringkali dapat saling bertolak belakang. Karena itu, tahap kedua ini ditempuh dengan melakukan koreksi terhadap tahap pertama. Bentuk koreksi yang terjadi dapat berupa pendekomposisian himpunan entitas, penggabungan himpunan entitas, pengubahan derajad relasi, penambahan relasi baru atau perubahan (penambahan dan pengurangan) atribut-atribut untuk masing-masing entitas dan relasi.
Langkah-langkah teknis yang dapat dilakukan untuk mendapatkan ERD awal adalah : 1. Mengidentifikasi dan menetapkan seluruh himpunan entitas yang akan terlibat. 2. Menetukan atribut-atribut key (kunci) dari masing-masing himpunan entitas. 3. Mengidentifikasi dan menetapkan seluruh himpunan relasi diantara himpunan entitas-himpunan entitas yang ada beserta foreign-keynya (kunci asing/ kunci tamu). 4. Menentukan derajad /kardinalitas relasi untuk setiap himpunan relasi. 5. Melengkapi himpunan entitas dan himpunan relasi dengan atribut dekriptif (atribut yang bukan kunci)
c. Tahap Implementasi Basis data Tahap implementasi basis data merupakan upaya untuk membangun basis data fisik yang ditempatkan dalam memori sekunder dengan bantuan DBMS (Database Management System) yang dipilih. Secara umum sebuah diagram ER akan direpresentasikan menjadi sebuah basis data secara fisik, sedangkan komponen-komponen diagram ER yang berupa himpunan entitas dan himpunan relasi akan ditranformasi menjadi tabel-tabel (file-file data) yang merupakan komponen utama pembentuk basis data. Setiap himpunan entitas akan diimplementasikan menjadi sebuah tabel (file data), sedangkan himpunan relasi tergantung pada derajad relasi. Untuk kardinalitas relasi 1 - 1 , maka relasi tidak diimplentasi menjadi tabel tetapi atribut pada relasi akan disertakan pada tabel yang mewakili salah satu dari kedua himpunan entitas dengan mempertimbangakn derajad relasi minimunnya. Untuk kardinalitas relasi 1 – N juga akan direpresentasikan dengan penambahan atribut yang ada pada relasi ke tabel yang mewakili himpunan entitas yang berderajad banyak (N).
Tugas 1. Praktekan seluruh perintah DML 2. Terangkan dan jelaskan secara singkat dari macam-macam atribut 3. Apa yang dimaksud dengan Diagram E-R dan sebutkan fungsinya ! 4. Diagram E-R mempunyai 4 simbol utama, sebutkan dan jelaskan masing-masing simbol tersebut ! 5. Berikan contoh untuk masing-masing kardinalitas dalam Diagram E-R ! 6. Apa yg dimaksud dengan spesialisasi dan generalisasi ?
selesai