Tugas 6 Manajemen Database
RELASI TABEL DALAM MYSQL !!
1. INNER JOIN
Inner join berfungsi sebagai pemetaan relasi one-to-one (satu ke satu), yaitu dimana hanya satu record tabel A yang sama dengan satu record tabel B, dan hanya satu record tabel B yang sama dengan satu record tabel A.
Syntax untuk merelasikan tabel pada inner join yaitu :
a. Select *
b. FROM table1
c. INNER JOIN table2
d. ON table1.column_name = table2.column_name;
Syntax untuk merelasikan
a. SELECT minuman.nama_minuman, minuman.unit, perusahaan.nama_perusahaan, perusahaan.lokasi_perusahaan
b. FROM minuman
c. INNER JOIN perusahaan
d. ON minuman.id_perusahaan =perusahaan.id_perusahaan
2. LEFT JOIN
Left join berfungsi sebagai pemetaan relasi many-to-one (banyak ke satu), yaitu dimana beberapa record tabel A yang sama dengan satu record tabel B.
Syntax untuk merelasikan tabel pada left join yaitu :
a. SELECT column_name(s)
b. FROM table_name1
c. LEFT JOIN table_name2
d. ON table_name1.column_name=table_name2.column_name
Contoh merelasikan tabel pada inner join yaitu :
Tabel 1 “Pelanggan”
SELECT Pelanggan.Last_Name, Pelanggan.First_Name, pesanan.nama_pesanan
a. FROM Pelanggan
b. LEFT JOIN Pesanan
c. ON Pelanggan.Id_pelanggan=pesanan.Id_pelanggan
d. Pesanan BY Pelanggan.Last_Name
3. RIGTH JOIN
Right join berfungsi sebagai pemetaan relasi one-to-many (satu ke banyak), yaitu dimana hanya satu record tabel A yang sama dengan beberapa record tabel B.
Syntax untuk merelasikan tabel pada right join yaitu :
a. SELECT column_name(s)
b. FROM table_name1
c. RIGHT JOIN table_name2
d. ON table_name1.column_name=table_name2.column_name
Contoh merelasikan tabel pada inner join yaitu :
a. SELECT Pelanggan.Last_Name, Pelanggan.First_Name, Pesanan.Nama_pesanan
b. FROM Pelanggan
c. RIGHT JOIN Pesanan
d. ON Pelanggan.Id_Pelanggan=Pesanan.Id_Pelanggan
e. Pesanan BY Pelanggan.Last_Name
Tugas 5 Manajemen Database
Normalisasi Database
Definisi Normalisasi
Normalisasi adalah suatu teknik untuk mengorganisasi data ke dalam tabel-tabel untuk memenuhi kebutuhan pemakai di dalam suatu organisasi.
Tujuan dari normalisasi
1. Untuk menghilangkan kerangkapan data
2. Untuk mengurangi kompleksitas
3. Untuk mempermudah pemodifikasian data
Proses Normalisasi
1. Data diuraikan dalam bentuk tabel, selanjutnya dianalisis berdasarkan persyaratan tertentu ke beberapa tingkat.
2. Apabila tabel yang diuji belum memenuhi persyaratan tertentu, maka tabel tersebut perlu dipecahmenjadi beberapa tabel yang lebih sederhana sampai memenuhi bentuk yang optimal.
Tahapan Normalisasi
Bentuk Tidak Normal
Menghilangkan perulangan group
Bentuk Normal Pertama (1NF)
Menghilangkan ketergantungan sebagian
Bentuk Normal Kedua (2NF)
Menghilangkan ketergantungan transitif
Bentuk Normal Ketiga (3NF)
Menghilangkan anomali-anomali hasil dari
ketergantungan fungsional
Bentuk Normal Boyce-Codd (BCNF)
Menghilangkan Ketergantungan Multivalue
Bentuk Normal Keempat (4NF)
Menghilangkan anomali-anomali yang tersisa
Bentuk Normal Kelima
Ketergantungan Fungsional
Definisi :
Atribut Y pada relasi R dikatakan tergantung fungsional pada atribut X (R.X —> R.Y), jika dan hanya jika setiap nilai X pada relasi R mempunyai tepat satu nilai Y pada R.
Misal, terdapat skema database Pemasok-barang :
Pemasok (No-pem, Na-pem)
Tabel PEMASOK-BARANG
No-pem Na-pem
P01 Baharu
P02 Sinar
P03 Harapan
Ketergantungan fungsional dari tabel PEMASOK-BARANG adalah :
No-pem —> Na-pem
Ketergantungan Fungsional Penuh
Definisi :
Atribut Y pada relasi R dikatakan tergantung fungsional penuh pada atribut X pada relasi R, jika Y tidak tergantung pada subset dari X ( bila X adalah key gabungan)
Contoh :
KIRIM-BARANG( No-pem, Na-pem, No-bar, Jumlah)
No-pem Na-pem No-bar Jumlah
P01 Baharu B01 1000
P01 Baharu B02 1500
P01 Baharu B03 2000
P02 Sinar B03 1000
P03 Harapan B02 2000
Ketergantungan fungsional :
No-pem –> Na-pem
No-bar, No-pem –> Jumlah (Tergantung penuh thd keynya)
Ketergantungan Transitif
Definisi :
Atribut Z pada relasi R dikatakan tergantung transitif pada atribut X , jika atribut Y tergantung pada atribut X pada relasi R dan atribut Z tergantung pada atribut Y pada relasi R. ( X Y, Y Z , maka X Z )
Contoh :
No-pem Kode-kota Kota No-bar Jumlah
P01 1 Jakarta B01 1000
P01 1 Jakarta B02 1500
P01 1 Jakarta B03 2000
P02 3 Bandung B03 1000
P03 2 Surabaya B02 2000
Ketergantungan fungsional :
No-pem Kode-kota
Kode-kota Kota , maka
No-pem Kota
Bentuk Normal Kesatu (1NF)
Suatu relasi dikatakan sudah memenuhi Bentuk Normal Kesatu bila setiap data bersifat atomik yaitu setiap irisan baris dan kolom hanya mempunyai satu nilai data
Tabel KIRIM-1 (Unnormal)
No-pem Kode-kota Kota No-bar Jumlah
P01 1 Jakarta B01 1000
B02 1500
B03 2000
P02 3 Bandung B03 1000
P03 2 Surabaya B02 2000
Tabel KIRIM-2 (1NF)
No-pem Kode-kota Kota No-bar Jumlah
P01 1 Jakarta B01 1000
P01 1 Jakarta B02 1500
P01 1 Jakarta B03 2000
P02 3 Bandung B03 1000
P03 2 Surabaya B02 2000
Diagram Ketergantungan Fungsional
Kode-kota
No-pem
Kota
Jumlah
No-bar
Bentuk Normal Kedua (2NF)
Suatu relasi dikatakan sudah memenuhi Bentuk Normal Kedua bila relasi tersebut sudah memenuhi bentuk Normal kesatu, dan atribut yang bukan key sudah tergantung penuh terhadap keynya.
Tabel PEMASOK-1 (2NF)
No-pem Kode-kota Kota
P01 1 Jakarta
P02 3 Bandung
P03 2 Surabaya
Bentuk Normal Ketiga (3NF)
Suatu relasi dikatakan sudah memenuhi Bentuk Normal ketiga bila relasi tersebut sudah memenuhi bentuk Normal kedua dan atribut yang bukan key tidak tergantung transitif terhadap keynya.
Tabel KIRIM-3 (3NF)
No-pem No-bar Jumlah
P01 B01 1000
P01 B02 1500
P01 B03 2000
P02 B03 1000
P03 B02 2000
Tabel PEMASOK-2 (3NF) Tabel PEMASOK-3 (3NF)
No-pem Kode-kota Kode-kota Kota
P01 1 1 Jakarta
P02 3 2 Surabaya
P03 2 3 Bandung
Tugas 4 Manajemen Database
Entity Diagram Relationship
Jasa servis motor mandiri.
Studi kasus
Saat motor rusak, terasa tidak nyaman dan sebagainya, pemilik motor sebaiknya segera menserviskan motornya agar keselamatan berkendara lebih terjamin. Dalam hal ini membawa sepeda motor ke outlet resmi motor. Tiap pemilik yang menservis motor, ditempat yang resmi pertama kalnya harus mendaftarkan diri pada dilernya. Ada beberapa komponen dalam pendaftaran ini meliputi nama, alamat, no telpon, nomor anggota, dan lain-lain.
Tiap sepeda motor pastinya memiliki type/ merk, nomor plat motor, nomor mesin dan sebagainya.
Kegiatan pertama yang dilakukan mekanik adalah melakukan diagnosa terhadap motor, bagian mana saja yang harus diperbaiki. Setelah itu, mekanik memberitahukan tiap kerusakan kepada pemilik motor (customer) apakah akan ditune up seluruhnya. Setelah itu mekanik mulai memainkan jarinya pada motor, membersihkan bagian mesin, membenarkan rantai yang kendor, dan sebagainya termasuk ganti oli bila diperlukan. Selesai mentune up motor, mekanik mencoba kenyamanan motor dengan membawa motor “jalan-jalan” sebentar. Dan jika sudah tidak ada masalah, mekanik melaporkan tune up apa saja yang dilakukan kepada kasir. Kasir menghitung total biaya yang harus dibayar customer. Terjadi transaksi pembayaran dan customer bisa membawa motornya kembali pulang ke rumah tercinta.
Entitas dan atribut jasa servis motor mandiri
1. Costomer
- Nama
- Alamat
- No. Anggota(primer key)
- No.Tlp
2. Motor
- Merek
- No. Plat (primer key)
-No. Mesin
3. Mekanik
- Nama
- No. Id (primer key)
4. Kasir
- Nama
- No. Id (primer key)
Tabel Matriks
Grafik Entity Relationship
Tugas 3 Manajemen Database
Bahasa DDL, DQL, DCL, DML Dalam DBMS
1. DDL (Data Definition Language)
Yaitu bahasa yang memiliki kemampuan untuk mendefinisikan data yang berhubungan dengan pembuatan dan penghapusan objek seperti tabel, indeks, bahkan basis datanya sendiri. Misalnya, CREATE, DROP, dan ALTER.
DDL Struktur/skema basis data yang menggambarkan/mewakili desain basis data secara keseluruhan didefinisikan dengan bahasa khusus yang disebut DDL. Dengan bahasa inilah kita dapat membuat tabel baru, membuat indeks, mengubah tabel, menentukan struktur penyimpanan tabel dan sebagainya. Hasil dari kompilasi perintah DDL adalah kumpulan tabel yang disimpan dalam file khusus yang disebut Kamus Data
Gambar 1. Contoh create database
Gambar 2. Contoh create tabel
Gambar 3. Contoh create tabel
2. DML (Data Manipulation Language)
Yaitu bahasa yang berhubungan dengan proses manipulasi data pada tabel, record. Misalnya, INSERT, UPDATE, SELECT, dan DELETE.
DML Merupakan bentuk bahasa basis data yang berguna untuk melakukan manipulasi dan pengambilan data pada suatu basis data. Manipulasi data dapat berupa: a. Penyisipan/Penambahan data baru ke suatu basis data b. Penghapusan data dari suatu basis data c. Pengubahan data dari satu basis data
Contoh : Skema Model Relasi Antar Tabel Toko Kaset
Gambar 1. Contoh create query
Gambar 2. Contoh insert,delete pada office acces
3. DCL (Data Control Language)
Data Control Language (DCL) merupakan sub bahasa SQL yang digunakan untuk melakukan pengontrolan data dan server databasenya. Perintah DCL, di antaranya:
-GRAND : Perintah ini digunakan untuk memberikan hak/ijin akses oleh administrator (pemilik utama) server 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 terbalik dengan GRAND, yaitu untuk menghilangkan atau mencabut hak akses yang telah diberikan kepada user oleh administrator.
tugas 2 manajemen database
Type Data dalam Table Microsoft Access 2010
· Field Name adalah untuk nama kolom dalam tabel yang akan kita buat misalkan Nomor urut, nama, tanggal, alamat, jumlah dan lain sebagainya.
· Data type adalah jenis data yang disesuaikan fungsinya yang diberinama di Field name tersebut misalkan jika di Field Name kita beri judul Nomor Urut maka Type Datanya bisa dengan memilih Nomor yang muncul Secara Otomatis (maka pilih AutoNumber) atau manual dalam mengisinya (pilih Number).
· Description adalah sebagai penjelasan terhadap kolom yang dibuat tadi.
Mengenal dan memahami Data type itu penting agar tidak salah dalam pembuatan tabel nantinya. Adapun Type Data yang disediakan di ms. Acces 2007 adalah sebagai berikut :
1. Text adalah type data berupa teks atau huruf, angka, spasi dan tanda baca lainnya yang mampu menampung karakter dari huruf dan angka tersebut sebanyak 255 karakter.
2. Memo adalah type data yang hampir sama dengan Text tetapi karakter yang mampu ditampungnya sangat besar yaitu sampai dengan 65535 karakter. Memo, adalah tipe data yang berisikan huruf atau kombinasi huruf dan angka.
3. Number adalah type data yang diperuntukan untuk angka saja.
4. Date/Time adalah type data yang diperuntukan untuk menampilkan tanggal dan waktu.
5. Currency adalah type data yang hampir sama dengan number tapi diperuntukan untuk format mata uang.
6. Yes/No adalah type data untuk sebuah logika Ya atau Tidak.
7. OLE Object adalah type data yang dipergunakan untuk menampung gambar atau obyek dengan ukuran tidak lebih dari 128 MB.
8. Hyperlink adalah type data untuk menmapilkan alamat hyperlink dengan batas maksimum penampungannya adalah 2048 karakter
9. AutoNumber seperti yang telah dijelaskan diatas, adalah nilai angka atau variasi angka huruf (yang akan berubah hanya angka apabila formatnya perpaduan huruf dan angka) yang akan muncul Secara Otomatis ketika kita menginput data baru dan angka tersebut tidak bisa kita edit.
10. Lookup Wizard adalah type data untuk menampilkan data dari tabel atau record lainnya atau dengan akta lain data yang diulang.
11.Attachment adalah type data yang digunakan untuk menampung / menyimpan / menampilkan lampiran persis seperti dalam sebuah email dan semua type data bisa ditampung disini.
Tipe-Tipe Data Pada MySQL
Seperti yang kita ketahui saat membuat field pada tabel di sebuah database, kita akan di minta untuk menentukan tipe data apa yang akan di gunakan sesuai dengan data yang akan di simpan pada database, berikut keterangan daripada tipe-tipe data di MySQL.
No
Type
Keterangan
Panjang Karakter
1.
TINYINT
Berarti integer dengan range yang sangat kecil yaitu –2 sampai 2 , -1 atau 0 sampai 2. -1 jika UNSIGNED. Atribut yang dibolehkan adalah AUTO_INCREMENT, UNSIGNED, dan ZEROFILL. Harga default adalah NULL jika bisa atau 0 jika NOT NULL dengan peyimpanan 1 byte.
0 hingga 255
2.
SMALLINT
Berarti integer dengan range yang kecil yaitu –2 sampai 2, -1 atau 0 sampai 2. -1 jika UNSIGNED. Atribut yang dibolehkan adalah AUTO_INCREMENT, UNSIGNED, dan ZEROFILL. Harga default adalah NULL jika bisa atau 0 jika NOT NULL dengan peyimpanan 2 byte.
0 hinga 65535
3.
MEDIUMINT
Berarti integer dengan range yang sangat kecil yaitu –2 sampai 2, -1 atau 0 sampai 2. -1 jika UNSIGNED. Atribut yang dibolehkan adalah AUTO_INCREMENT, UNSIGNED, dan ZEROFILL. Harga default adalah NULL jika bisa atau 0 jika NOT NULL dengan peyimpanan 3 byte.
0 hingga 16777215
4.
INT
Berarti integer dengan range yang normal yaitu –2 sampai 2, -1 atau 0 sampai 2. -1 jika UNSIGNED. Atribut yang dibolehkan adalah AUTO_INCREMENT, UNSIGNED, dan ZEROFILL. Harga default adalah NULL jika bisa atau 0 jika NOT NULL dengan peyimpanan 4 byte.
0 hingga 4294967295.
5.
BIGINT
Berarti integer dengan range yang sangat kecil yaitu –2 sampai 2, -1 atau 0 sampai 2. -1 jika UNSIGNED. Atribut yang dibolehkan adalah AUTO_INCREMENT, UNSIGNED, dan ZEROFILL. Harga default adalah NULL jika bisa atau 0 jika NOT NULL dengan peyimpanan 8 byte.
0 hingga 18446744073709551615
6.
FLOAT
Berarti floating-point dengan range kecil yaitu antara +1.175494351E-38 sampai +3.402823466E+38 serta dengan single presisi. Atribut yang dibolehkan adalah ZEROFILL. Harga default NULL jika bisa atau 0 jika NOT NULL. Tempat penyimpanan 4 byte.
25 dan 53
7.
DOUBLE
Berarti floating-point dengan range besar yaitu antara +2.22507385072014E-308 sampai +1.7976931348623157E308 serta dengan double presisi. Atribut yang dibolehkan adalah ZEROFILL. Harga default NULL jika bisa atau 0 jika NOT NULL. Tempat penyimpanan 8 byte.
0, dan 2.2250738585072014E-308 hingga 1.7976931348623157E+308 untuk nilai positif
8.
DECIMAL
Berarti floating-point yang tersimpan sebagai string (1 byte untuk setiap digit, tanda desimal, atau tanda ’-‘). Range harga sama seperti .DOUBLE. Atribut yang dibolehkan adalah ZEROFILL. Tempat penyimpanan sebesar 9Mbyte. Jika D diisi 0 berarti tidak punya nilai desimal.
99,99
9.
CHAR(M)
Karakter dengan panjang 0 sampai Mbyte. Atribut yang dibolehkan adalah BINARY. Harga default adalah NULL jika bisa atau “ “ jika NOT NULL. Tempat pemyimpanan Mbyte
1 hingga 255
10.
VARCHAR
Variabel karakter dengan panjang 0 sampai Mbyte. Atribut yang dibolehkan adalah BINARY. Harga default adalah NULL jika bisa atau “ “ jika NOT NULL. Tempat pemyimpanan M+1 byte.
1 hingga 255
11.
TINYTEXT
Teks berukuran kecil dengan panjang 0 sampai 2. -1 byte. Harga default adalah NULL jika bisa atau “ “ jika NOT NULL. Tempat penyimpanan sebanyak panjang harga plus 1 byte
255
12.
TEXT
Teks yang normal dengan panjang 0 sampai 2. -1 byte. Harga default adalah NULL jika bisa atau “ “ jika NOT NULL. Tempat penyimpanan sebanyak panjang harga plus 2 byte.
65535
13.
MEDIUMTEXT
Teks berukuran sedang dengan panjang 0 sampai 2. -1 byte. Harga default adalah NULL jika bisa atau “ “ jika NOT NULL. Tempat penyimpanan sebanyak panjang harga plus 3 byte.
16777215
14.
LONGTEXT
Teks berukuran besar dengan panjang 0 sampai 2. -1 byte. Harga default adalah NULL jika bisa atau “ “ jika NOT NULL. Tempat penyimpanan sebanyak panjang harga plus 4 byte.
429496729
15.
ENUM
Berarti kolom hanya boleh diisi dengan salah satu dari harga yang ada. Harga default adalah NULL jika bisa atau harga1 jika NOT NULL. Tempat penyimpanan adalah 1 byte untuk enumerasi dengan anggota 1 sampai 255 dan 2 byte untuk enumerasi dengan anggota 256 sampai 65535.
65535
16.
SET
Berarti kolom boleh dikosongi atau diisi dengan beberapa harga dari daftar harga yang ada. Harga default adalah NULL jika bisa atau â€Â “ jika NOT NULL. Tempat penyimpanan adalah 1 byte untuk set dengan anggota 1 sampai 8, 2 byte untuk set dengan anggota 9 sampai 16, 3 byte untuk set dengan anggota 17 sampai 24, 4 byte untuk set dengan anggota 25 sampai 32, atau 8 byte untuk set dengan anggota 33 sampai 64.
64
17.
DATE
Untuk kolom tanggal dengan format YYYY-MM-DD dan range antara “1000- 01-01â€Â sampai “9999-12-31â€ÂÂÂ. Harga default adalah NULL jika bisa atau “0000- 00-00â€Â jika NOT NULL. Tempat penyimpanan 3 byte.
1000-01-01 hingga 9999-12-31
18.
TIME
Untuk kolom jam dengan format hh:mm: ss atau -hh:mm: ss untuk harga negatif. Range harga antara “-838:59:59â€Â sampai “838:59:59â€ÂÂÂ. Harga default adalah NULL jika bisa atau “00:00:00â€Â jika NOT NULL. Tempat penyimpanan 3 byte.
1970-01-01 00:00:0
19.
DATETIME
Gabungan antar hari dan jam dengan format YYYY-MM-DD hh:mm: ss dan range antar “1000-01-01 00:00:00â€Â sampai “9999-12-31 23:59:59â€ÂÂÂ. Harga default adalah NULL jika bisa atau “0000-00-00 00:00:00â€Â jika NOT NULL. Tempat penyimpanan 8 byte.
1000-01-01 00:00:00 hingga 9999-12-31 23:59:59
20.
TIMESTAMP
Hampir sama dengan DATETIME tapi dengan format YYYYMMDD hhmmss dan range antara 19700101000000 sampai suatu saat di tahun 2037. Harga default adalah hari dan jam saat itu. Tempat penyimpanan 4 byte.
1970-01-01 00:00:00
21.
YEAR
Untuk kolom tahun denga format YYYY dan range antara 1900 sampai 2155. Harga default adalah NULL jika bisa atau 0000 jika NOT NULL. Tempat penyimpanan 3 byte.
1901 hingga 2155, 0000
22.
Data kosong (NULL)
NULL berarti kosong atau tidak diisi data atau bisa juga berarti data yang tidak jelas, data yang hilang ataupun yang lainnya
23.
NUMERIC
MySQL dapat menerima masukan berupa angka-angka yang dibagi atas integer (angka tanpa pecahan) dan floating-point (angka dengan pecahan). MySQL juga mengerti notasi scientific yaitu integer atau floating-point yang diikuti tanda ‘e’ atau ‘E’, tanda ‘+’ atau ‘-‘. Misalnya angka 1.34E+12 atau 3.23e-5. Tipe ini untuk harga integer dan floating-point. Untuk integer kolom haruslah PRIMARY KEY atau indeks yang unik jika ia diberi atribut AUTO_INCREMENT (dapat otomatis mengurutkan angka). Jika diberikan atribut UNSIGNED berarti angka tidak boleh negatif. Sedangkan atribut ZEROFILL menandakan bahwa angka diawali dengan angka nol.
99,99
24.
TYNYBLOB
Sebuah BLOB (semacam catatan) atau TEXT dengan lebar maksimum 255 (2^8 – 1) karakter.
255
25.
BLOB
Sebuah BLOB atau TEXT dengan lebar maksimum 65535 (2^16 – 1) karakter.
65535
26.
MEDIUMBLOB
Sebuah BLOB atau TEXT dengan lebar maksimum 16777215 (2^24 – 1) karakter.
16777215
27.
LONGBLOB
Sebuah BLOB atau TEXT dengan lebar maksimum 4294967295 (2^32 – 1) karakter.
4294967295