Tugas 4 (921411045)
Entitas Relationship
Tugas_6 (921411045)
Relasi Tabel dalam My-SQL :
1. INNER JOIN
Syntax:
SELECT column_list
FROM table_reference
[INNER] JOIN table_reference ON predicate
[[INNER] JOIN table_reference ON predicate...]
Fungsinya sama dengan operator Equi-Join hanya saja kolom untuk setiap tabel dibandingkan dalam klausa ON untuk nilai-nilai yang sama. Contoh pernyataan pertama dan kedua dalam operator Equi-Join, jika dideklarasikan dengan operator INNER JOIN menjadi :
SELECT *
FROM Customer C
INNER JOIN Orders O ON (C.CustNo = O.CustNo)
SELECT *
FROM Source S
INNER JOIN Joining J ON (S.ID = J.ID1 || J.ID2)
Untuk database Ms Access, pernyataan INNER JOIN harus menyertakan tanda kurung jika menggabungkan lebih dari dua tabel, seperti berikut ini
SELECT *
FROM (Customer C
INNER JOIN Orders O ON (C.CustNo = O.CustNo))
INNER JOIN AddCusPrice A ON (C.CustNo = A.CustNo)
2. LEFT OUTER JOIN
Penggunaan relasi LEFT OUTER JOIN adalah untuk menampilkan kedua table yang direlasikan dengan menampilkan semua record meskipun tidak bersesuaian dengan table yang lain dengan jumlah record tergantung jumlah record sebelah KIRI. Sedangkan syntak ON berfungsi menampilkan kedua table lengkap dengan semua fieldnya tanpa menyingkat tampilan field yang direlasikan dengan menampilkan satu kali (field yang berelasi ditampilkan dua kali yaitu saat di deret table pertama lalu di deret table kedua).
Syntax dari Left Outer Join adalah sebagai berikut :
LEFT [OUTER] JOIN[] ::= ON [{ }...] | USING ( [{, }...])
3. RIGHT OUTER JOIN
Penggunaan relasi RIGHT OUTER JOIN adalah untuk menampilkan kedua table yang direlasikan dengan menampilkan semua record meskipun tidak bersesuaian dengan table yang lain dengan jumlah record tergantung jumlah record sebelah KANAN dan table kedua (dituliskan setelah join) ditampilkan lebih dulu setelah field yang direlasikan. Sedangkan syntak ON berfungsi menampilkan kedua table lengkap dengan semua fieldnya tanpa menyingkat tampilan field yang direlasikan dengan menampilkan satu kali (field yang berelasi ditampilkan dua kali yaitu saat di deret table pertama lalu di deret table kedua).
Syntax dari Right Outer Join adalah sebagai berikut :
RIGHT [OUTER] JOIN[] ::= ON [{ }...] | USING ( [{, }...])
http://echo-corner.blogspot.com/2011/08/mengakses-data-pada-beberapa-tabel_01.html
Tugas 5 (921411045)
NORMALISASI DATABASE
1. Pengertian Normalisasi Database
Normalisasi Database merupakan kondisi dimana relasi antar tabel telah terbentuk dengan baik sesuai kaidah dalam sebuah database bertujuan untuk menciptakan struktur-struktur entity yang dapat mengurangi redundansi data dan meningkatkan stabilitas database.
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 key nya (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.
2. Fungsi Normalisasi Database
Ada dua fungsi normalisasi, yaitu :
1. Dapat digunakan sebagai metodologi dalam menciptakan desain database dengan menghasilkan rancangan tabel-tabel yang nantinya sesuai dengan masalah dan kebutuhan yang dihadapi.
2. Dapat digunakan sebagai verifikasi terhadap hasil desain database yang telah dibuat, baik menggunakan E-R Model atau menggunakan model relasi.
3. Tujuan dari Normalisasi
a. Untuk menghilangkan kerangkapan data
b. Untuk mengurangi kompleksitas
c. Untuk mempermudah pemodifikasian data
4. Proses Normalisasi
a. Data diuraikan dalam bentuk tabel, selanjutnya diianalisis berdasarkan persyaratan tertentu ke beberapa tingkat.
b. Dilakukan pengujian pada beberapa kondisi apakah ada kesulitan (anomali) pada saat menambah atau menyisipkan (insert), menghapus (delete), mengubah (update), mengakses (retrieve) pada suatu basis data.
c. Bila terdapat kesulitan pada pengujian tersebut atau tabel yang diuji belum memenuhi persyaratan tertentu, maka tabel tersebut dapat dipecah menjadi beberapa tabel yang lebih sederhana sampai memenuhi bentuk yang optimal.
https://www.google.co.id/search?hl=id&q=pengertian+normalisasi+database
http://haritsthinkso.blogspot.com/2009/12/pengertian-normalisasi-pada-database.html
5. Tahapan-tahapan Normalisasi
Bentuk normal adalah suatu aturan yang dikenakan pada entity-entity dalam database dan harus dipenuhi oleh entity-entity tersebut sehingga tercapai normalisasi. Suatu entity dikatakan dalam bentuk normal apabila entity tersebut memenuhi aturan pada bentuk normal tersebut. Proses Tahapan normalisasi dilakukan secara bertingkat.
Tingkatan proses normalisasi dengan Third Normal Form (3NF):
1. Bentuk Tahap UnNormalized
2. Bentuk Normal Pertama (1NF)
3. Bentuk Normal Kedua (2NF)
4. Bentuk Normal Ketiga (3NF)
Tingkatan proses normalisasi dengan Five Normal Form (5NF):
1. Bentuk Normal Pertama (1NF)
2. Bentuk Normal Kedua (2NF)
3. Bentuk Normal Ketiga (3NF)
4. Bentuk Normal Boyce-Codd (BCNF)
5. Bentuk Normal Keempat (4NF)
6. Bentuk Normal Kelima (5NF)
1. Bentuk Normal Pertama (1NF)
Bentuk normal pertama dikenakan pada entity yang belum normal (Unnormalized Form). Bentuk tidak normal merupakan kumpulan data yang akan di rekam, tidak ada keharusan mengikuti suatu format tertentu, dapat saja tersebut tidak lengkap atau terduplikasi. Data dikumpulkan apa adanya sesuai dengan kedatangannya.
2. Bentuk Normal Kedua (2NF)
Aturan Bentuk Normal Kedua (2NF) : Suatu entity dikatakan dalam bentuk normal pertama jika : 1. Berada pada bentuk normal pertama. 2. Semua attribut bukan kunci memiliki ketergantungan fungsional (Depedensi Fungsional) dengan kunci utama (primary key).
3. Bentuk Normal Ketiga(3NF)
Aturan Bentuk Normal Ketiga (3NF) : Suatu entity dikatakan dalam bentuk normal pertama jika : 1. Berada pada bentuk normal kedua. 2. Semua attribut bukan kunci tidak memiliki ketergantungan transitif (Depedensi transitif) dengan kunci utama (primary key).
4. Bentuk Normal Boyce-Codd (BCNF)
Aturan Bentuk Normal Boyce-Codd (BCNF) : Suatu entity dikatakan dalam bentuk BCNF jika : Semua kunci utama adalah kunci kandidat yang bersifat unik.
5. Bentuk Normal Keempat (4NF)
Bentuk normal keempat berhubungan dengan sifat ketergantungan banyak nilai (Multivalued Dependency) pada suatu tabel yang merupakan pengembangan dari ketergantungan fungsional.
6. Bentuk Normal Kelima (5NF)
Bentuk normal kelima berkenaan dengan ketergantungan relasi antar tabel (Join Depedency).
http://rahmatrazaq.blogspot.com/2011/05/langkah-pertama-daftar-semua-atribut.html
Tugas 3 (921411045)
Contoh Penggunaan Bahasa Database (DCL, DDL, DML, dan SQL) :
1. DDL (Defiition Data Language)
Berikut adalah contoh perintah DDL yang digunakan pada MySQL. Klik pada link untuk melihat rincian penggunaan dari perintah tersebut :
- Pembuatan (CREATE)
- CREATE DATABASE
- CREATE FUNCTION
- CREATE INDEX
- CREATE PROCEDURE
- CREATE TABLE
- CREATE TRIGGER
- CREATE VIEW
- Perubahan (ALTER & RENAME)
- ALTER DATABASE
- ALTER FUNCTION
- ALTER PROCEDURE
- ALTER TABLE
- ALTER VIEW
- RENAME TABLE
- Penghapusan (DROP)
- DROP DATABASE
- DROP FUNCTION
- DROP INDEX
- DROP PROCEDURE
- DROP TABLE
- DROP TRIGGER
- DROP VIEW (http://mysql.phi-integration.com/sql/apa-itu-dml-ddl)
2. DML (Data Manpulation Language)
Berikut adalah contoh perintah DML yang digunakan pada MySQL. Klik pada link untuk melihat rincian penggunaan dari perintah tersebut :
- CALL
- DELETE
- DO
- HANDLER
- INSERT
- LOAD DATA INFILE
- REPLACE
- SELECT
- TRUNCATE
- UPDATE (http://mysql.phi-integration.com/sql/apa-itu-dml-ddl)
3. DCL (Data Control Language)
Berikut adalah contoh perintah DCL yang digunakan pada MySQL. Klik pada link untuk melihat rincian penggunaan dari perintah tersebut :
1. GRANT
Fungsi : digunakan untuk memberikan izin akses kepada user
Sintaks : GRANT privileges ON tbname TO user
Contoh :
GRANT SELECT ON CLUB TO PUBLIC
GRANT SELECT, INSERT, UPDATE, DELETE ON CLUB TO USER01
2. REVOKE
Fungsi : digunakan untuk mencabut izin akses kepada user
Sintaks : REVOKE privileges ON tbname FROM user
Contoh :
REVOKE INSERT, UPDATE, DELETE ON CLUB FROM USER01
REVOKE ALL ON CLUB FROM PUBLIC
SQL
4. DQL (Data Query Language)
Berikut adalah contoh perintah DQL yang digunakan pada MySQL. Klik pada link untuk melihat rincian penggunaan dari perintah tersebut :
Query sesungguhnya berarti pertanyaan atau permintaan. Istilah ini tetap dipertahankan dalam bentuk asli, karena telah populer di kalangan pengguna DBMS di Indonesia.
Bahasa query (query language) adalah bahasa khusus yang digunakan untuk melakukan query pada basis data. Contoh penggunaan bahasa query adalah: SELECT ALL WHERE kota=”Yogyakarta” AND umur<40. Query tersebut meminta semua record dari basis data yang sedang digunakan (misalkan basisdata konsumen) yang bertempat tinggal di Yogyakarta dan berumur lebih dari 40 tahun (kota dan umur adalah nama field yang telah didefinisikan). Standar bahasa query yang banyak digunakan adalah SQL (structured query language). Metode ini paling rumit tetapi paling fleksibel dibandingkan metode query yang lain, query dengan parameter yang telah tersedia dan query by example.
Tugas 2 (921411045)
1. Tipe Data Ms. Access
Tipe-tipe Data yang ada pada Ms. Access :
1. Text, yaitu data yang bisa diisi dengan nilai kombinasi antara text dan number, dengan maximum karakter sebanyak 255 karakter.
2. Memo, sama saja dengan jenis Text, hanya saja memiliki jumlah karakter maksimum yang lebih banyak, yaitu 63,999 karakter.
3. Number, yaitu data dengan jenis number (angka) yang digunakan untuk kalkulasi matematika dan keperluan lainnya. Umumnya number ini terdiri dari 1, 2, 4 dan 8 bytes data. Khusus untuk number jenis Replication ID mempunyai 16 bytes data.
4. Date/Time, yaitu data dengan jenis tanggal, waktu atau penggabungan dari tanggal dan waktu.
5. Currency, yaitu data dengan jenis number, hanya saja pada awal angka selalu disertakan symbol currency default sesuai dengan regional setting yang digunakan, misalnya Rp, $, dll. Currency dapat menggunakan angka dengan 15 digit dibelakang desimal dan 4 digit sesudah desimal.
6. AutoNumber, yaitu data yang tidak dapat kita isi secara manual melainkan ia terisi secara otomatis oleh Access, baik secara menjumlah ataupun random (acak).
7. Yes/No, yaitu data dengan jenis hanya 2 pillihan yaitu Yes (-1 atau True) atau No (0 atau False). Format yang tersedia adalah : Yes/No, True/False, dan On/Off.
2. Tipe Data My SQL
- TINYINT[(M)] [UNSIGNED] [ZEROFILL]
Integer yang sangat kecil jangkauan nilainya, yaitu -128 hingga 127. Jangkauan unsigned adalah 0 hingga 255.
- SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
Integer yang kecil jangkauan nilainya, yaitu -32768 hingga 32767. Jangkauan unsigned adalah 0 hinga 65535.
- MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
Integer tingkat menengah. Jangkauan nilainya adalah -8388608 hingga 8388607. Jangkauan unsigned adalah 0 hingga 16777215.
- INT[(M)] [UNSIGNED] [ZEROFILL]
Integer yang berukuran normal. Jangkauan nilainya adalah -2147483648 hingga 2147483647. Jangkauan unsigned adalah 0 hingga 4294967295.
- INTEGER[(M)] [UNSIGNED] [ZEROFILL]
Sama dengan INT.
- BIGINT[(M)] [UNSIGNED] [ZEROFILL]
Integer berukuran besar. Jangkauan nilainya adalah -9223372036854775808 hingga 9223372036854775807. Jangkauan unsigned adalah 0 hingga 18446744073709551615.
- FLOAT(precision) [ZEROFILL]
Bilangan floating-point. Tidak dapat bersifat unsigned. Nilai atribut precision adalah <=24 untuk bilangan floating-point presisi tunggal dan di antara 25 dan 53 untuk bilangan floating-point presisi ganda.
- FLOAT[(M,D)] [ZEROFILL]
Bilangan floating-point presisi tunggal. Tidak dapat bersifat unsigned. Nilai yang diijinkan adalah -3.402823466E+38 hingga -1.175494351E-38 untuk nilai negatif, 0, and 1.175494351E-38 hingga 3.402823466E+38 untuk nilai positif.
- DOUBLE[(M,D)] [ZEROFILL]
Bilangan floating-point presisi ganda. Tidak dapat bersifat unsigned. Nilai yang diijinkan adalah -1.7976931348623157E+308 hingga -2.2250738585072014E-308 untuk nilai negatif, 0, dan 2.2250738585072014E-308 hingga 1.7976931348623157E+308 untuk nilai positif.
- DOUBLE PRECISION[(M,D)] [ZEROFILL] dan REAL[(M,D)] [ZEROFILL]
Keduanya sama dengan DOUBLE.
- DECIMAL[(M[,D])] [ZEROFILL]
Bilangan floating-point yang “unpacked”. Tidak dapat bersifat unsigned. Memiliki sifat mirit dengan CHAR. Kata “unpacked'' berarti bilangan disimpan sebagai string, menggunakan satu karakter untuk setiap digitnya. Jangkauan nilai dari DECIMAL sama dengan DOUBLE, tetapi juga tergantung dai nilai atribut M dan D yang disertakan. Jika D tidak diisi akan dianggap 0. Jika M tidak diisi maka akan dianggap 10. Sejak MySQL 3.22 nilai M harus termasuk ruang yang ditempati oleh angka di belakang koma dan tanda + atau -.
- NUMERIC(M,D) [ZEROFILL]
Sama dengan DECIMAL.
- DATE
Sebuah tanggal. MySQL menampilkan tanggal dalam format 'YYYY-MM-DD'. Jangkauan nilainya adalah '1000-01-01' hingga '9999-12-31'.
- 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'.
- TIMESTAMP[(M)]
Sebuah timestamp. Jangkauannya adalah dari '1970-01-01 00:00:00' hingga suatu waktu di tahun 2037. MySQL menampilkan tipe data TIMESTAMP dalam format YYYYMMDDHHMMSS, YYMMDDHHMMSS, YYYYMMDD, atau YYMMDD, tergantung dari nilai M, apakah 14 (atau tidak ditulis), 12, 8, atau 6.
- TIME
Tipe data waktu. Jangkauannya adalah '-838:59:59' hingga '838:59:59'. MySQL menampilkan TIME dalam format 'HH:MM:SS'.
- YEAR[(2|4)]
Angka tahun, dalam format 2- atau 4-digit (default adalah 4-digit). Nilai yang mungkin adalah 1901 hingga 2155, 0000 pada format 4-digit, dan 1970-2069 pada format 2-digit (70-69).
- CHAR(M) [BINARY]
String yang memiliki lebar tetap. Nilai M adalah dari 1 hingga 255 karakter. Jika ada sisa, maka sisa tersebut diisi dengan spasi (misalnya nilai M adalah 10, tapi data yang disimpan hanya memiliki 7 karakter, maka 3 karakter sisanya diisi dengan spasi). Spasi ini akan dihilangkan apabila data dipanggil. Nilai dari CHAR akan disortir dan diperbandingkan secara case-insensitive menurut default character set yang tersedia, kecuali bila atribut BINARY disertakan.
- VARCHAR(M) [BINARY]
String dengan lebar bervariasi. Nilai M adalah dari 1 hingga 255 karakter. Jika nilai M adalah 10 sedangkan data yang disimpan hanya terdiri dari 5 karakter, maka lebar data tersebut hanya 5 karakter saja, tidak ada tambahan spasi.
- TINYBLOB dan TINYTEXT
Sebuah BLOB (semacam catatan) atau TEXT dengan lebar maksimum 255 (2^8 - 1) karakter.
- BLOB dan TEXT
Sebuah BLOB atau TEXT dengan lebar maksimum 65535 (2^16 - 1) karakter.
- MEDIUMBLOB dan MEDIUMTEXT
Sebuah BLOB atau TEXT dengan lebar maksimum 16777215 (2^24 - 1) karakter.
- LONGBLOB dan LONGTEXT
Sebuah BLOB atau TEXT dengan lebar maksimum 4294967295 (2^32 - 1) karakter.
- ENUM('value1','value2',...)
Sebuah enumerasi, yaitu objek string yang hanya dapat memiliki sebuah nilai, dipilih dari daftar nilai 'value1', 'value2', ..., NULL atau nilai special "" error. Sebuah ENUM maksimum dapat memiliki 65535 jenis nilai.
- SET('value1','value2',...)
Sebuah set, yaitu objek string yang dapat memiliki 0 nilai atau lebih, yang harus dipilih dari daftar nilai 'value1', 'value2', .... Sebuah SET maksimum dapat memiliki 64 anggota.