Bab 4 DML dan ERD

advertisement
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.
SELECT * FROM user
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.
SELECT * FROM user
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 fungsifungsi 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 entityentiti 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 interestrate, dan checking-account diterangkan dengan overdraftamount. Proses spesialisasi mengijinkan pembedaan
account berdasarkan tipe account. Account juga dapat
dibedakan dengan cara lain, misalkan berdasarkan tipe
kepemilikkan menjadi commercial-account dan personalaccount. 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) atributatribut 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 masingmasing 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 macammacam 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
Download