Tugas 6 (921411060)
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 (921411060)
Normalisasi Database
v Definisi :
Normalisasi merupakan teknik analisis data yang mengorganisasikan atribut-atribut data dengan cara mengelompokkan sehingga terbentuk entitas yang non-redundant, stabil, dan fleksible.
Normalisasi dilakukan sebagai uji coba pada suatu relasi secara berkelanjutan untuk menentukan apakah relasi itu sudah baik, yaitu dapat dilakukan proses insert,update,delete, dan modifikasi pada satu atau beberapa atribut tanpa mempengaruhi integritas data dalam relasi tersebut.
v Tujuan normalisasi
a. Untuk menghilangkan kerangkapan data
b. Untuk mengurangi kompleksitas
c. Untuk mempermudah pemodifikasian data
v Proses Normalisasi
a. Data diuraikan dalam bentuk tabel, selanjutnya dianalisis
berdasarkan persyaratan tertentu ke beberapa tingkat.
b. Apabila tabel yang diuji belum memenuhi persyaratan tertentu,
maka tabel tersebut perlu dipecah menjadi beberapa tabel yang
lebih sederhana sampai memenuhi bentuk yang optimal.
v Langkah-langkah Normalisasi
a. Bentuk Normal Pertama (1NF)
Sebuah model data dikatakan memenuhi bentuk normal pertama apabila setiap atribut yang dimilikinya memiliki satu dan hanya satu nilai. Apabila ada atribut yang memiliki nilai lebih dari satu, atribut tersebut adalah kandidat untuk menjadi entitas tersendiri. Entitas utama untuk database tugas matakuliah tentu saja Tugas Matakuliah. Sebagian atribut yang dimiliki entitas ini tertera dalam Gambar 1.
Gambar 1: Entitas pertama dalam contoh model data untuk database tugas matakuliah.
Atribut Nama Kelas mencantumkan kelas-kelas di mana tugas tersebut berlaku. Apabila
pendaftar untuk sebuah matakuliah melebihi kapasitas ruangan yang dimiliki fakultas, kebijakan yang umum diambil Kepala Program Studi adalah membagi kegiatan perkuliahan untuk matakuliah tersebut menjadi beberapa kelas. Karenanya atribut ini rentan memiliki nilai jamak, dan lebih sesuai menjadi entitas baru atau atribut dari entitas lain. Untuk sementara kita membuat entitas baru, Kelas, dimana sebagian atributnya berasal dari Tugas Matakuliah yang secara logis lebih sesuai menjadi atribut entitas ini. Sementara itu, hampir semua atribut entitas Tugas Matakuliah selain Nama Kelas memiliki nilai tunggal (dengan asumsi setiap matakuliah diampu oleh satu dosen saja).
a. Bentuk Normal Kedua (2NF)
Sebuah model data dikatakan memenuhi bentuk normal kedua apabila ia memenuhi bentuk normal pertama dan setiap atribut non-identifier sebuah entitas bergantung sepenuhnya hanya pada semua identifier entitas tersebut. Apabila kita perhatikan kembali model data yang telah kita hasilkan di atas, segera terlihat bahwa atribut dari entitas Kelas tidak sepenuhnya bergantung pada identitas unik Kelas tersebut. Seorang dosen akan tetap ada meskipun kelas matakuliah yang ia ampu sudah tidak ada lagi. Dalam hal ini, dosen adalah entitas tersendiri (yang nantinya dapat dilekatkan pada entitas Fakultas atau Universitas bilamana kedua entitas tersebut dirasa perlu ada, tergantung pada kebutuhan pemodelan data kita).
b. Bentuk Normal Ketiga (3NF)
Sebuah model data dikatakan memenuhi bentuk normal ketiga apabila ia memenuhi bentuk normal kedua dan tidak ada satupun atribut non-identifying (bukan pengidentifikasi unik) yang bergantung pada atribut non-identifying lain. Apabila ada, pisahkan salah satu atribut tersebut menjadi entitas baru, dan atribut yang bergantung padanya menjadi atribut entitas baru tersebut. Dalam model data sederhana yang kita gunakan di sini, tidak ada satupun atribut non-identifying (seperti Deskripsi Tugas Matakuliah, atau Nama Dosen) yang bergantung pada atribut nonidentifying lain. Namun demi adanya contoh, kita misalkan entitas Dosen memiliki atribut informasi Alamat Rumah dan Nomor Telepon Rumah. Keduanya tidak dapat secara unik mengidentifikasi objek tertentu dari entitas Dosen, namun keduanya saling bergantung. Sebagaimana dalam dua langkah normalisasi sebelumnya, jenis kebergantungan seperti ini dapat dihilangkan dengan membuat entitas baru lagi (yang tidak akan diciptakan karena tiga entitas sudah cukup banyak untuk satu artikel). Model terakhir yang kita dapat ini telah memenuhi bentuk normal ketiga (third normal form) dan siap dikonversi menjadi tabel. Namun sebelumnya, kita perlu membahas berbagai jenis relasi yang kerap ditemui dalam pemodelan data, termasuk yang kita temui dalam contoh model data kali ini.
1. Data Definition Language (DDL)
DDL merupakan satu paket bahasa DBMS yang berguna untuk melakukan spesifikasi terhadap skema basis data. Hasil kompilasi dari DDL adalah satu set tabel yang disimpan dalam file khusus yang disebut Data Directory/Dictionery. Contoh perintah DDL misalnya, Create Table, Create Index, Alter, Drop.
2. Data Manipulation Language (DML)
DML merupakan satu paket DBMS yang memperbolehkan pemakai untuk mengakses atau memanipulasi data sebagaimana yang telah diorganisasikan sebelumnya dalam model data yang tepat, dengan DML dapat dilakukan:
1.Mengambil informasi yang tersimpan dalam basis data.
2.Menyisipkan informasi baru dalam basis data.
3.Menghapus informasi dari tabel.
Ada dua tipe Data Manipulation Language (DML) yaitu prosedural dan non prosedural. Prosedural DML membutuhkan pemakai untuk mensfesifikasikan data apa yang dibutuhkan dan bagaimana cara mendapatkannya, sedang non prosedural DML membutuhkan pemakai untuk mensfesifikasikan data apa yang dibutuhkan tanpa tahu bagaimana cara mendapatkannya. Contoh : paket bahasa prosedural adalah dBase III, FoxBase, sedangkan non prosedural adalah SQL (Structured Query Language) atau Query By Example (QBE).
Jenis Data Manipulation Language :
a. Prosedural : mensyaratkan agar pemakai menentukan data apa yang diinginkan serta bagaimana cara mendapatkannya.
b. Nonprosedural : pemakai menentukan data yang diinginkan tanpa menyebutkan bagaimana cara mendapatkannya.
3. Data Query Language (DQL)
DQL adalah singkatan yang dapat berisi banyak makna yang tercantum di bawah ini. DQL - Data Query Language Mungkin ada arti populer untuk DQL dengan definisi yang paling populer adalah bahwa dari data Query Language Lebih DQL Definisi Kami mencari database kami dan tidak bisa menemukan definisi selain Query Language Data DQL Jika Anda memiliki informasi lebih lanjut atau mengetahui definisi lain untuk DQL, beritahukan kami agar kami dapat meninjau dan menambahkan informasi bahwa untuk database kami. Setiap upaya telah dilakukan untuk menyediakan Anda dengan singkatan yang benar untuk DQL. Jika kita merindukan tanda, kami akan sangat menghargai bantuan Anda dengan memasukkan arti benar atau alternatif dalam kotak di bawah ini. Definisi telah disusun dari mesin pencari populer dan beberapa hasil disediakan untuk Anda.
4. Data Control Language (DCL)
DCL (bukan BCL) merupakan perintah SQL yang berhubungan dengan pengaturan hak akses user MySQL, baik terhadap server, database, tabel maupun field. Perintah SQL yang termasuk dalam DCL antara lain: GRANT dan EVOKE.
tugas 2 (921411060)
Tipe data SQL Server
1. Bit
Tipe data bit hanya bisa menerima input angka 1 dan 0 sebagai nilai (atau bisa juga null, yang berarti tidak ada nilai). Tipe data ini sangat membantu jika Anda ingin menghasilkan output yes/no, true/false, dsb.
2. Int
Tipe data ini mungkin sudah banyak dikenal oleh Anda. Tipe data ini dapat menerima nilai mulai dari -231(-2,147,483,648) hingga 231-1 (2,147,483,647). Tipe data ini menghabiskan 4 bytes untuk menyimpan data pada harddisk.
3. Bigint
Tipe data ini mirip dengan int, hanya saja nilai yang diterima lebih besar daripada int. Tipe data ini dapat menerima nilai mulai dari -263 (-9,223,372,036,854,775,808) hingga 263-1 (-9,223,372,036,854,775,807). Tipe data ini menghabiskan 8 bytes untuk menyimpan data pada harddisk.
4. Smallint
Tipe data ini juga mirip dengan int, hanya saja nilai yang diterima lebih kecil dari int. Tipe data ini dapat menerima nilai mulai dari -215 (-32,768) hingga 215-1 (32767). Tipe data ini hanya membutuhkan 2 bytesuntuk menyimpan data pada harddisk.
5. Tinyint
Tipe data ini menerima nilai yang lebih kecil dari smallint. Nilai yang bisa diterima mulai dari 0 hingga 255, dan hanya membutuhkan 1 bytesuntuk menyimpan data pada harddisk.
6. Decimal
Tipe data ini menerima nilai yang lebih presisi dibanding tipe data integer yang telah dibahas sebelumnya. Tipe data ini menggunakan 2 parameter untuk menentukan tingkat presisi nilai yang diterima; precisiondan scale. Precision adalah jumlah digit yang bisa diterima oleh field, sedangkan scale adalah jumlah angka di belakang koma yang bisa diterima oleh field. Jadi, jika kita membuat parameter precisionsebanyak 5 dan scalesebanyak 2 maka fieldkita bisa menerima nilai seperti ini : 123,45. Tipe data ini bisa menerima nilai mulai dari -1038hingga 1038-1. Tipe data ini menghabiskan 5-17 bytesuntuk menyimpan data pada harddisk, tergantung pada tingkat kepresisian nilai yang dimasukkan.
7. Numeric
Tipe data ini pada dasarnya sama dengan tipe data decimal. Jadi tipe data ini bisa disebut sinonim dari decimal.
8. Money
Tipe data ini dapat menerima nilai mulai dari -263 (-9,223,372,036,854,775,808) hingga 263-1 (-9,223,372,036,854,775,807). Tipe data ini menghabiskan 8 bytesuntuk menyimpan data pada harddisk.
9. Smallmoney
Tipe data ini pada dasarnya sama dengan tipe data money, hanya saja nilai yang diterima lebih kecil, yaitu mulai dari -214,748.3648 hingga 214,748.3647. Tipe data ini menghabiskan 4 bytesuntuk menyimpan data pada harddisk.
10. Float
Tipe data ini mirip dengan tipe data decimal, hanya saja paramater scalepada tipe data ini bisa menerima nilai yang tak terhingga, seperti pada nilai pi. Tipe data ini bisa menerima nilai mulai dari -1.79E + 308 hingga 1.79E +308. Jika Anda mendeskripsikan fielddengan tipe data seperti ini : float(2), maka nilai output dari pi (misalnya) adalah 3,14. Angka 2 di dalam kurung menjelaskan berapa banyak angka yang harus ditampilkan dibelakang koma. Tipe data ini menghabiskan 4-8 bytes untuk menyimpan data pada harddisk.
11. Real
Tipe data ini mirip dengan tipe data float, hanya saja menerima nilai yang lebih kecil dibandingkan dengan float, yaitu mulai dari -3.40E +38 hingga 3.40E +38. Tipe data ini menghabiskan 4 bytesuntuk menyimpan data pada harddisk
12. Datetime
Tipe data ini dapat menerima nilai tanggal dan waktu mulai dari 1 Januari 1753 hingga 31 Desember 9999. Tipe data ini menghabiskan 8 bytesuntuk menyimpan data pada harddisk.
13. Smalldatetime
Tipe data ini dapat menerima tanggal dan waktu mulai dari 1 Januari 1900 hingga 6 Juni 2079, dengan akurasi waktu yang digunakan adalah menit. Tipe data ini menghabiskan 4 bytesuntuk menyimpan data pada harddisk.
14. Timestamp
Tipe data ini digunakan untuk mencatat record ketika data baru dimasukkan dan diupdate. Tipe data ini sangat berguna untuk mencari tahu perubahan yang terjadi pada database Anda.
15. Uniqueidentifier
Tipe data ini berfungsi untuk membuat nilai yang unik yang mungkin bisa tampil seperti ini 6F9619FF-8B86-D011-B42D-00C04FC964FF. Tipe data ini berguna jika Anda ingin membuat serial number atau id yang unik.
16. Char
Tipe data ini dapat digunakan untuk memasukkan data karakter non-Unicode dengan jumlah karakter yang fix. Tipe data ini bisa menerima hingga 8000 karakter, dan jumlah bytesyang dibutuhkan tergantung jumlah karakter yang dimasukkan. 1 karakter membutuhkan 1 bytes, sehingga jika Anda mendefinisikan seperti ini : char(5) maka fieldtersebut hanya bisa menerima karakter sebanyak 5 buah karakter dengan space yang dibutuhkan untuk menyimpan data pada harddisk sebanyak 5 bytes.
17. Varchar
Tipe data ini mirip dengan tipe data char, namun tipe data ini berguna bagi Anda yang tidak mengetahui secara pasti jumlah karakter yang akan dimasukkan oleh user. Tipe data ini juga bisa menerima nilai hingga 8000 karakter. Jadi, jika pada tipe data char, Anda mendefinisikan char(5), maka Anda akan selalu membutuhkan 5 bytesuntuk menyimpan data pada harddisk, walaupun jumlah karakter yang dimasukkan hanya 1 hingga 4 karakter; maka pada tipe data ini, jumlah bytesyang dibutuhkan akan lebih fleksibel. Misalnya jika Anda mendefinisikan varchar(30) untuk sebuah field, maka fieldtersebut dapat menerima data hingga 30 karakter (30 bytes), namun jika Anda hanya memasukkan 1 karakter, maka jumlah bytesyang dibutuhkan hanya sebanyak 1 bytes.
18. Varchar(max)
Tipe data ini juga mirip dengan varchar, hanya saja, nilai yang bisa diterima mencapai 231-1(2,147,438,67) bytesdata.
19. Nchar
Tipe data ini mirip dengan tipe data char, namun tipe data ini bisa menerima nilai atau data Unicode (berbeda dengan tipe data char yang hanya bisa menerima nilai karakter non-Unicode). Tipe data ini bisa menerima nilai hingga 4000 karakter. Tipe data ini menghabiskan 2-8000 bytesuntuk menyimpan data pada harddisk. Mengapa dibutuhkan 2-8000 bytes? Karena tipe data ini mengkali 2 bytesuntuk setiap karakternya. Jadi jika userhanya memasukkan 1 karakter, maka dibutuhkan 2 bytesuntuk menyimpan data pada harddisk.
20. Nvarchar
Tipe data ini mirip dengan tipe data varchar, namun tipe data ini bisa menerima nilai atau data Unicode. Tipe data ini juga bisa menerima nilai hingga 4000 karakter.
21. Nvarchar(max)
Tipe data ini mirip dengan tipe data varchar(max), namun tipe data ini bisa menerima nilai atau data Unicode. Tipe data ini bisa menerima karakter hingga 231-1 (2,147,483,67) bytesdata.
22. Binary
Tipe data ini dapat menerima data binary dengan maksimum 8000 bytesdata. Tipe data ini diinterpretasikan sebagai string dari bit misalnya (110011001011).
23. Varbinary
Tipe data ini mirip dengan varchar, hanya saja nilai yang bisa diterima hanya data binary. Tipe data ini berguna untuk menyimpan data binary yang tidak diketahui dengan pasti jumlah bytesdatanya.
24. Xml
Tipe data ini berguna untuk menyimpan data dalam format XML Document. Tipe data ini dapat menyimpan data hingga 2Gb. Tipe data ini merupakan tipe data baru yang terdapat di SQL Server 2005.
25. Image
Mendefinisikan binary data untuk menyimpan image seperti GIF, JPG, TIFF,dll.
26. Text
Menyimpan teks sampai dengan 2 GB. Text disebut juga dengan binary large objects (BLOBs).
Type data Microsoft 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.
8. OLE Object, yaitu data yang diambil dari system OLE seperti Microsoft Excel spreadsheet, Microsoft Word document, graphics, sounds, atau data-data biner lainnya baik yang dilink ataupun dimasukkan secara permanen (embedded) kedalam table Microsoft Access.
9. Hyperlink, yaitu type data yang digunakan untuk menyimpan alamat internet atau file yang ditunjukkan melalui alamat URL.
10. Attachment, yaitu data type yang digunakan untuk menyimpan attachment file yang berformat apa saja (bebas, bisa file gambar, file suara, dll).
Tipe data pada oracle
1. Varchar2(size) : string yang memiliki panjang karakter vaiable dengan panjang maxial sebesar size. Tipe data ini memperbolehkan penyimpanan semua karakter yang dapat dimasukkan melalui keyboad. Maksimum size yang dapat disimpan sebesar 4000 bytes (karakter). Tipe data ini juga memungkinkan untuk mneyimpan data numerik. Biasanya space akan langsung dieliminasi jika menggunakan tipe ini.
2. Char(size): string dengan panjan gkarakter tetap sebesar ukuran size. Tipe data ini mempunyai kemampuan yang hampir sama yakni menyimpan karakter, hanya saja maksimum size yang disimpan hanya sebesar 2000 bytes.
3.Number(p,s) : tipe data number memiliki presisi p dan s digit dibelakan koma jika kita abaikan p dan s berarti dianggap sebagai tipe number floating point. Tipe data ini menyimpan bilangan interger sampai maksimum dari digit integer tersebut. misal untuk spesifikasi (5,2) berarti 3 digit sebelum koma dan 2 digit dibelakang koma.
4. Long : data karakter dengan ukuran panjang bervariasi, hingga mencapai 2 GB.(tipe data seperti ini tidak dapat digunakan sebagai primary key).
5.Raw(size) : tipe data berupa binary data dengan ukuran maksimal 255 bytes.
6. Long Raw : Tipe data berupa binary data dengan ukuran maksimal 2 GigaBytes tidak dikonversi oleh oracle (data mentah apa adanya, spasi dihitung 1 karakter).
7.Date : Tipe data ini menyimpan waktu dan tanggal dari sebuah informasi, dengan komponen waktu yang dibulatkan ke detik terdekat. Untuk menampilkannya dalam teks harus menggunakan fungsi to_char.
8.Timestamp : tipe ini mirip dengan date. Di dalam tipe ini terdapat komponen waktu yang dapat langsung ditampilkan tanpa harus mengubahnya terlebih dahulu dengan fungsi to_char.
9. Clob : Tipe data ini memperbolehkan penyimpanan objek dengan ukuran yang sangat besar sekitar 4 GB. Clob mirip sekali dengan varchar2 hanya saja tipe data ini mempunyai kapasitas maksimum yang lebih besar.
10. Blob : tipe ini memperbolehkan penyimpanan objek bbinary yang besar dan tidak terstruktur. Contoh dari tipe data blob adalah suara dan video.