tugas 6
1. INNER JOIN
Dengan inner join, tabel akan digabungkan dua arah, sehingga tidak ada data yang NULL di satu sisi. Sebagai contoh, kita akan menggabungkan tabel pelanggan dan pesan dimana kita akan menampilkan daftar pelanggan yang pernah melakukan pemesanan (transaksi). Misalkan isi tabel pelanggan dan pesan adalah sebagai berikut :
Tabel pelanggan (hanya ditampilkan field id_pelanggan, nm_pelanggan dan email)
Contoh isi tabel pelanggan
Tabel pesan.
Contoh isi tabel pesan
Cara #1. Inner Join dengan WHERE.
Penggabungan dengan klausa WHERE memiliki bentuk umum sebagai berikut:
SELECT tabel1.*, tabel2.* FROM tabel1, tabel2 WHERE tabel1.PK=tabel2.FK;
Berikut ini perintah SQL untuk menggabungkan tabel pelanggan dan pesan:
SELECT pelanggan.id_pelanggan, pelanggan.nm_pelanggan, pesan.id_pesan,
pesan.tgl_pesan FROM pelanggan, pesan WHERE
pelanggan.id_pelanggan=pesan.id_pelanggan;
Hasilnya sebagai berikut:
Hasil Penggabungan 2 Tabel dengan WHERE
Pada hasil perintah query di atas terlihat bahwa terdapat 5 (lima) transaksi yang dilakukan oleh 3 (tiga) orang pelanggan. Jika kita lihat kembali isi tabel pelanggan di atas, maka terdapat satu pelanggan yang tidak ditampilkan yaitu yang memiliki id pelanggan P0003. Pelanggan tersebut tidak ditampilkan karena belum pernah melakukan transaksi.
Cara #1. Inner Join dengan klausa INNER JOIN.
Berikut ini bentuk umumnya:
SELECT tabel1.*, tabel2.* FROM tabel1 INNER JOIN tabel2 ON tabel1.PK=tabel2.FK;
Dan berikut ini perintah SQL penggabungan tabel pelanggan dan pesan.
SELECT pelanggan.id_pelanggan, pelanggan.nm_pelanggan, pesan.id_pesan,\
pesan.tgl_pesan FROM pelanggan INNER JOIN pesan ON
pelanggan.id_pelanggan=pesan.id_pelanggan;
Hasilnya akan sama dengan gambar di atas (cara #1).
2. OUTER JOIN
Dengan outer join, tabel akan digabungkan satu arah, sehingga memungkinkan ada data yang NULL (kosong) di satu sisi. Sebagai contoh, kita akan menggabungkan tabel pelanggan dan pesan dimana kita akan menampilkan daftar pelanggan yang pernah melakukan pemesanan (transaksi).
Outer Join terbagi menjadi 2 (dua) yaitu LEFT JOIN dan RIGHT JOIN. Berikut ini bentuk umum dan contohnya:
3. LEFT JOIN.
Bentuk umum:
SELECT tabel1.*, tabel2.* FROM tabel1 LEFT JOIN tabel2 ON tabel1.PK=tabel2.FK;
Contoh perintah SQL:
SELECT pelanggan.id_pelanggan, pelanggan.nm_pelanggan, pesan.id_pesan, pesan.tgl_pesan FROM pelanggan LEFT JOIN pesan ON pelanggan.id_pelanggan=pesan.id_pelanggan;
Hasilnya:
Hasil Perintah Left Join
Berbeda dengan hasil sebelumnya (inner join), penggunaan left join akan menampilkan juga data pelanggan dengan id P0003, walaupun pelanggan tersebut belum pernah bertransaksi. Dan pada kolom id_pesan dan tgl_pesan untuk pelanggan P0003 isinya NULL, artinya di tabel kanan (pesan) pelanggan tersebut tidak ada.
4. RIGHT JOIN
Bentuk umum:
SELECT tabel1.*, tabel2.* FROM tabel1 RIGHT JOIN tabel2 ON tabel1.PK=tabel2.FK;
Contoh perintah SQL:
SELECT pelanggan.id_pelanggan, pelanggan.nm_pelanggan, pesan.id_pesan, pesan.tgl_pesan FROM pelanggan RIGHT JOIN pesan ON pelanggan.id_pelanggan=pesan.id_pelanggan;
Hasilnya:
Hasil Perintah Right Join
Dengan right join, tabel yang menjadi acuan adalah tabel sebelah kanan (tabel pesan), jadi semua isi tabel pesan akan ditampilkan. Jika data pelanggan tidak ada di tabel pelanggan, maka isi tabel pesan tetap ditampilkan.
Menggabungkan 3 Tabel atau Lebih
Untuk menggabungkan tiga tabel atau lebih, pada dasarnya sama dengan penggabungan 2 (dua) tabel. Sebagai contoh misalnya kita akan menampilkan barang-barang yang dipesan beserta nama barang dan harganya untuk pemesanan dengan nomor 1, sedemikian sehingga hasilnya menjadi sebagai berikut:
tugas 5
MANAGEMENT DATABASE SYSTEM
Diagram relasi
Toko ragam jaya
Oleh :
RIAN MOPANGGA
ERVINA ABDULLAH
ENTITAS
• Pembeli
• Suplier
• Barang
• Pegawai
ATRIBUT SETIAP ENTITAS
• PEMBELI : Nama, alamat
• supplier : nama, id_supplier
• barang : nama, id_barang, merk
• pegawai : nama, id_pegawai
RELASI ANTAR ENTITAS
• pegawai membeli barang kesupplier
• pegawai menjual barang ke pembeli
Diagram Relasi
tugas 4
“ NORMALISASI DATABASE RELASI “
Ketika kita merancang suatu basis data untuk suatu sistem relational, prioritas utama dalam mengembangkan model data logical adalah dengan merancang suatu representasi data yang tepat bagi relationship dan constrainnya (batasannya). Kita harus mengidentifikasi suatu set relasi yang cocok, demi mencapai tujuan di atas. Tehnik yang dapat kita gunakan untuk membantu mengidetifikasi relasi-relasi tersebut dianamakan Normalisasi.
Proses normalisasi pertama kali diperkenalkan oleh E.F.Codd pada tahun 1972. normalisasi sering dilakukan sebagai suatu uji coba pada suatu relasi secara berkelanjutan untuk menentukan apakah relasi tersebut sudah baik atau masih melanggar aturan-aturan standar yang diperlakukan pada suatu relasi yang normal (sudah dapat dilakukan proses insert, update, delete, dan modify pada satu atau beberapa atribut tanpa mempengaruhi integritas data dalam relasi tersebut).
Proses normalisasi merupakan metode yang formal/standar dalam mengidentifikasi dasar relasi bagi primary keynya (atau candidate key dalam kasus BCNF), dan dependensi fungsional diantara atribut-atribut dari relasi tersebut. Normalisasi akan membantu perancang basis data dengan menyediakan suatu uji coba yang berurut yang dapat diimplementasikan pada hubungnan individualshingga skema relasi dapat di normalisasi ke dalam bentuk yang lebih spesifik untuk menghindari terjadinya error atau inkonsistansi data, bila dilakuan update tehadap relasi tersebut dengan Anomaly.
· BEBERAPA DEFINISI NORMALISASI
Normalisasi adalah suatu proses memperbaiki / membangun dengan model data relasional, dan secara umum lebih tepat dikoneksikan dengan model data logika
Normalisasi adalah proses pengelompokan data ke dalam bentuk tabel atau relasi atau file untuk menyatakan entitas dan hubungan mereka sehingga terwujud satu bentuk database yang mudah untuk dimodifikasi.
Normalisasi dapat berguna dalam menjawab 2 pertanyaan mendasar yaitu: “apa yang dimaksud dengan desain database logical?” dan “apa yang dimaksud dengan desain database fisikal yang baik? What is phisical good logical database design?”.
Normalisasi adalah suatu proses untuk mengidentifikasi “tabel” kelompok atribut yang memiliki ketergantungan yang sangat tinggi antara satu atribut dengan atrubut lainnya.
Normalisasi bisa disebut jga sebagai proses pengelompokan atribut-atribut dari suatu relasi sehingga membentuk WELL STRUCTURED RELATION.
WELL STRUCTURED RELATIONadalah sebuah relasi yang jumlah kerangkapan datanya sedikit (Minimum Amount Of Redundancy), serta memberikan kemungkinan bagi used untuk melakukan INSERT, DELETE, MODIFY, terhadap baris-baris data pada relasi tersebut, yang tidak berakibat terjadinya ERROR atau INKONSISTENSI DATA, yang disebabkan oleh operasi-operasi tersebut.
Contoh:
Terdapat sebuah relasi Mahasiswa, dengan ketentuan sebagai berikut.
- Setiap Mahasiswa hanya boleh mengambil satu mata kuliah saja.
- Setiap matakuliah mempunyai uang kuliah yang standar (tidak tergantung pada mahasiswa yang mengambil matakuliah tersebut).
(berhubung pada blog ini tidak dapat ditampilkan tabel yang telah saya unduh dari internet, maka disini saya hanya mengilustrasikan tabel tersebut lewat kata-kata saja)
Misalnya, terdapat 3 kolom yang masing-masingnya terdiri atas kolom NIM, kolom KODE-MTK, dan kolom BIAYA. Pada kolom pertama atau pada kolom NIM kita bisa menuliskan NIM dari si mahasiswa (mis: 921411026), kemudian pada kolom kedua atau pada kolom KODE-MTK kita bisa menuliskan kode mata kuliah yang diambil si mahasiswa (mis: CS-200), dan selanjutnya pada kolom terakhir atau pada kolom BIAYA kita bisa menuliskan jumlah biaya yang harus dibayarkan untuk setiap kode matakuliah tersebut (mis: 75.000)
Relasi Kuliah di atas merupakan sebuah relasi yang sederhana dan terdiri dari 3 kolom / atribut. Bila diteliti secara seksama, maka akan ditemukan redundancy pada datanya, dimana biaya kuliah selalu berulang pada setiap mahasiswa. Akibatnya besar kemungkinan terjadi error atau inkonsistensi data, bila dilakukan update terhadap relasi tersebut dengan Anomaly.
Anomaly merupakan penyimpangan-penyimpangan atau error atau inkonsistensi data yang terjadi pada saat dilakukan proses delete, insert ataupun modify dalam suatu basis data.
Dikutip dari :
http://bajay-x.blogspot.com/2010/05/normalisasi-database.html
tugas 3
Perintah-perintah dasar
1. DDL (data definition language) merupakan sub bahasa SQL yang digunakan untuk membangun kerangka database. ada tiga perintah yang termasuk dalam DDL, yaitu
Create: Perintah ini digunakan untuk membuat, termasuk diantaranya membuat database baru, tabel baru, view baru dan kolom.
contohnya: create database : adalah perintah yang digunakan untik memulai memuat database. berikut contoh dari create database
Alter: perintah ini digunakan untuk mengubah struktur tabel yang telah dibuat. pekerjaanya mencakup mengganti nama tabel, menambah kolom, menghapus kolom, maupun memberikan atribut pada kolom.
Drop : Perintah ini digunakan untuk menghapus database dan tabel.
2. DML(data manipulation language) merupakan sub bahasa SQL yang digunakan untuk memanipulasi data dalam database yang telah terbuat. perintah yang digunakan diantaranya
Insert : perintah ini digunakan untuk menyisipkan atau memasukan data baru kedalam tabel. penggunaanya setelah database dan tabel selesai dibuat.
Select : Perintah ini digunakan untuk mengambil data atau menampilkan data dari satu tabel atau beberapa tabel dalam relasi. data yang diambil dapat kita tampilkan dalam layar prompt MYSQL secara langsung maupun ditampilkan pada tampilan aplikasi.
Update : perintah ini digunakan untuk memperbarui data lama menjadi data terkini. jika anda memiliki data yang salah atau kurang up to date dengan kondisi sekarang, maka dapat diubah isi datanya menngunakan perintah update.
Delete: perintah ini digunakan untuk menghaous data dari tabel. biasanya data yang dihapus merupakan data yang sudah tidak diperlukan lagi. pada saat menghapus data, perintah yang telah dijalankan tidak dapat digagalkan, sehingga data yang telah hilang tidak dapat dikembalikan lagi.
3. DCL( data control languade) merupakan sub bahasa SQL yang digunakan untuk melakukan pengontrolan data dan server databasenya. perintah DCL diantaranya
Grand : perintah ini digunakan untuk memberikan hak/ijin akses oleh administrator (pemilik utama) sever kepada user (pengguna biasa). hak akses tersebut berupa hak membuat (create), mengambil (select), menghapus. (delete), mengubah (update), dan hak khusus berkenaan dengan sistem databasenya.
Revoke : perintah ini memiliki kegunaan terbaik dengan grand, yaitu untuk menghilangkan atau mencabut hak akses yang telah diberikan kepada user oleh admistrator.
tugas2
Type Data pada DBMS ?
My SQL : 5 type MY SQL
1.Decimal (M[,DD] [ZEROFILL]
bilangan floting-poin yang "unpacked". tidak dapat bersifat unsigned. memiliki sifat mirip dengan char. kata "unpacked" berati bilangan disimpan sebagai string, menggunakan satu karakter untuk setiap digitnya. jangkauan nilai dari desimal sama dengan double, tetapi juga tergantung dari nilai atribut M dan D yang disertakan. jika D tidak diisi akan dianggap 0. jika M tidak diisi maka akan dianggap 10.
2.Date
sebuah tanggal. MY SQL menampilkan tanggal dalam format 'YYYY-MM-DD'. jangkauan nilainya adalah '1000-01-01' hingga'9999-12-31'.
3. Datetime
sebuah kombinasi dari waktu (jam) dan tanggal. MySQL menampilkan waktu dan tanggal dalam format 'YYYY-MM-DD HH:MM:SS.' jangkauan nilainya adalah '1000-01-01 00:00:00' hingga '9999-12-31 23:59:59'
4.Char(M) [BINARY]
String yang memiliki lebar tepat. nilai M adalah dari 1 hingga 255 karakter. jika ada sisa, maka sisa tersebut di isi dengan spasi (misalnya nilai M adalah 10, tapi data yang disimpan hanya memiliki 7 karakter, maka 3 karakter sisanya diisi dengan spasi (misalnya nilai M adalah 10, tapi data yang disimpan hanya memiliki 7 krakter, maka 3 krakter sisanya di isi dengan spasi). spasi ini akan di hilangkan apabila data dipanggil. nilai dari char akan disortir dan diperbandingkan secara case-insensitive menurut defaul charakter set yang tersedia, kecuali bila atribut binary disertakan.
5. Tinyblob dan TinyTEXt
sebuah BLOB (semacam catatan) atau TEXT dengan lebar maksimum 255 (2^8-1) karakter.
ORACLE : 5 type oracle
1.NCHAR
Tipe data NCHAR adalah tipe data Unicode-only. Bila Anda membuat sebuah tabel dengan kolom NCHAR, Anda akan diminta menentukan panjang kolom dalam karakter. Anda mendefinisikan karakter nasional saat Anda membuat (create) database Anda.
2.VARCHAR
Jangan menggunakan tipe data VARCHAR. Gunakan VARCHAR2 sebagai gantinya. Meskipun tipe data VARCHAR saat ini identik dengan VARCHAR2, tipe data VARCHAR dijadwalkan akan didefinisikan ulang sebagai tipe data terpisah yang digunakan untuk string karakter variabel-panjang dibandingkan dengan perbandingan semantik yang berbeda.
3.LONG
Jangan membuat tabel dengan menggunakan kolom LONG. Gunakan kolom LOB (CLOB, NCLOB, BLOB) sebagai gantinya. kolom LONG didukung hanya untuk kompatibilitas. kolom LONG menyimpan string karakter yang mengandung variabel-panjang sampai dengan 2
gigabyte -1 atau 231-1 byte. Kolom LONG memiliki banyak karakteristik kolom VARCHAR2. Anda dapat menggunakan kolom LONG untuk menyimpan string teks panjang. Panjang nilai LONG mungkin dibatasi oleh memori yang tersedia pada komputer Anda.
4.NVARCHAR2
Tipe data NVARCHAR2 adalah tipe data Unicode-only. Bila Anda membuat sebuah tabel dengan kolom NVARCHAR2, anda akan diminta menyertakan jumlah maksimal karakter yang dapat diisikan kedalamnya. Oracle kemudian menyimpan setiap nilai dalam kolom persis seperti yang Anda tentukan itu, asalkan nilai tidak melebihi panjang maksimum kolom.
5.RAW dan LONG RAW
Tipe data RAW dan LONG RAW menyimpan data yang tidak secara eksplisit dikonversi oleh
Oracle Database ketika memindahkan data antara sistem yang berbeda. Tipe data ini
dimaksudkan untuk data biner atau string byte. Sebagai contoh, Anda dapat menggunakan
LONG RAW untuk menyimpan grafik, sound, dokumen, atau array data biner, yang
penafsirannya tergantung pada penggunaan masing-masing.
POSTGRESQL : 5 type postgresql
1.Numeric Jenis
Ketik nama Penyimpanan ukuran Deskripsi Rentang smallint 2 rentang byte kecil tetap presisi -32.768-32.767 bilangan bulat 4 byte pilihan biasa untuk tetap presisi -2147483648 sampai 2147483647 bigint 8 byte berbagai macam tetap presisi -9223372036854775808 sampai 9223372036854775807 desimal variabel yang ditentukan pengguna presisi batas, pasti ada
numerik variabel yang ditentukan pengguna presisi batas, pasti ada nyata 4 byte variabel-presisi, eksak 6 digit desimal presisi presisi ganda 8 byte variabel-presisi, eksak 15 presisi desimal digit
urut 4 byte autoincrementing bulat 1-2147483647
bigserial 8 byte besar autoincrementing bilangan bulat 1-9223372036854775807
Sintaks dari konstanta untuk jenis numerik dijelaskan dalam Bagian 1.1.2. Jenis numerik memiliki set lengkap operator aritmatika dan fungsi yang sesuai.
2. The tipe integer
adalah pilihan yang biasa, karena menawarkan keseimbangan terbaik antara kisaran, ukuran penyimpanan, dan kinerja. Jenis smallint umumnya hanya digunakan jika ruang disk adalah pada premium. Jenis bigint hanya boleh digunakan jika kisaran bilangan bulat tidak cukup, karena yang terakhir ini pasti lebih cepat.
3.Floating-Point Jenis
Tipe data nyata dan presisi ganda yang eksak, variabel-presisi tipe numerik. Dalam prakteknya, jenis ini biasanya implementasi dari IEEE Standard 754 untuk Binary Floating-Point Arithmetic (single dan double presisi, masing-masing), sejauh bahwa prosesor yang mendasari, sistem operasi, dan compiler mendukungnya.
4.Serial Jenis
Jenis data serial bukan tipe yang benar, tetapi hanya sebuah kenyamanan notasi untuk menyiapkan kolom identifier (mirip dengan properti AUTO_INCREMENT didukung oleh beberapa database lain).
5.
DB2 : 5 type DB2
1.tipe data numerik.
yang masing-masing memiliki karakteristik sendiri. Untuk data numerik, menggunakan kolom numerik daripada kolom string. Kolom numerik membutuhkan ruang kurang dari kolom string, dan DB2 memverifikasi bahwa data memiliki tipe yang ditugaskan.
Contoh: Asumsikan bahwa DB2 menghitung berkisar antara dua nomor. Jika nilai memiliki tipe data string, DB2 mengasumsikan bahwa nilai dapat mencakup semua kombinasi karakter alfanumerik. Sebaliknya, jika nilai memiliki tipe data numerik, DB2 dapat menghitung rentang antara dua nilai lebih efisien.
2.String tipe data
DB2 ® mendukung beberapa jenis data string: karakter string, string grafis, dan string biner.
Karakter string berisi teks dan dapat berupa fixed-panjang atau yang bervariasi-panjang. String grafis berisi data grafis, yang juga dapat berupa fixed-panjang atau yang bervariasi-panjang. String biner berisi string byte biner dan bisa berupa fixed-panjang atau yang bervariasi-panjang. Semua jenis data string dapat direpresentasikan sebagai benda besar.
3.XML tipe data
XML tipe data digunakan untuk mendefinisikan kolom dari tabel yang menyimpan nilai-nilai XML. Ini pureXML ® tipe data menyediakan kemampuan untuk menyimpan dokumen XML well-formed dalam database.
Semua data XML disimpan dalam database dalam representasi internal. Karakter data dalam representasi internal dalam skema UTF-8 encoding.
4.The VARCHAR, VARGRAPHIC, dan VARBINARY tipe data
memiliki batas penyimpanan 32 KB. Namun, aplikasi sering perlu untuk menyimpan dokumen teks besar atau data tambahan jenis seperti audio, video, gambar, gambar, dan kombinasi teks dan grafis. Untuk objek data yang lebih besar dari 32 KB, Anda dapat menggunakan benda besar yang sesuai (LOB) tipe data untuk menyimpan benda-benda.
5. ROWID tipe data
Anda menggunakan tipe data ROWID untuk secara unik mengidentifikasi baris dan permanen dalam subsistem ® DB2. DB2 dapat menghasilkan nilai untuk kolom ketika baris ditambahkan, tergantung pada opsi yang Anda pilih (DIHASILKAN SELALU atau DIHASILKAN OLEH DEFAULT) ketika Anda menentukan kolom. Anda dapat menggunakan kolom ROWID di meja untuk beberapa alasan.