Tuesday, October 28, 2014

LAPORAN 6 "NORMALISASI"

A. Landasan Teori

Memahami Normalisasi

Normalisasi merupakan suatu proses untuk mengubah suatu tabel yang memiliki masalah tertentu ke dalam dua buah  tabel  atau lebih yang tidak lagi memiliki masalah tersebut  (Abdul  Kadir,  2008). Ada juga yang berpendapat normalisasi adalah proses penyusunan tabel – tabel yang tidak redundan (dobel), yang dapat menyebabkan anomali yaitu proses basis data yang memberikan efek samping yang tidak diharapkan (Misalnya menyebabkan data tidak konsisten atau  membuat  data  hilang ketika data yang lain dihapus).
Normalisasi digunakan sebagai teknik analisis data pada database, sehingga dapat diketahui apakah pembuatan tabel – tabel yang terelasi dalam database itu sudah baik. Kondisi sudah baik yaitu suatu kondisi pada saat proses insert, update, delete dan modifikasi pada satu atau beberapa atribut suatu tabel tidak berpengaruh terhadap integritas data yang lain dalam satu hubungan relasi database.

Langkah –  langkah Normalisasi

Langkah –  langkah Normalisasi terdiri dari :

1. Unnormalization Form
Bentuk yang tidak normal dimaksudkan suatu kumpulan data yang akan diolah yang diperoleh dari format – format yang beraneka ragam, masih terdapat duplikasi,  bisa saja tidak sempurna atau tidak lengkap, dan sesuai fakta lapangan.
Bentuk ini didapat dari dokumen yang ada dilapangan atau manual dengan atribut bukan nilai sederhana.

2. First Normal Form (1NF) 
Suatu tabel dianggap normal ke satu (1NF) jika :
- Tidak terdapat baris yang bernilai ganda atau duplikat.
- Masing -  masing baris bernilai tunggal dan tidak bernilai null.
Langkah –  langkah :
- Isikan setiap data bernilai tunggal dan tidak null
- Membuang perulangan data dalam satu baris dengan baris yang lain.

3. Second Normal Form (2NF)
Bentuk normal kedua (2NF) terpenuhi jika : 
- Harus telah berbentuk normal pertama (1NF).
- pada sebuah tabel semua atribut yang tidak termasuk dalam primary key memiliki ketergantungan fungsional pada primary key secara utuh. Suatu atribut dikatakan ketergantungan fungsional jika harga pada atribut tersebut menentukan harga dari atribut yang lain. Misalnya, nim ? mhs_nama.
Langkah –  langkah :
-  Jika  terdapat atribut yang bergantung terhadap atribut bukan kunci utama dan merupakan atribut kunci maka pecah menjadi table baru.

4. Third Normal Form (3NF)
Bentuk normal ketiga (3NF) terpenuhi jika :
- Harus telah berbentuk normal kedua (2NF).
- Tidak terdapat anomali – anomali hasil dari ketergantungan transitif. 
ketergantungan transitif adalah ketergantungan fungsional antara 2 atau lebih atribut bukan kunci.
Langkah –  langkah :
- Pastikan semua atribut non kunci bergantung penuh terhadap atribut kunci.
- Pisahkan menjadi tabel baru jika menemukan ketergantungan transitif dalam tabel 
tersebut.

5. Boyce Codd Normal Form (BCNF)
Secara praktis tujuan analisis database cukup sampai pada 3NF, Akan tetapi dalam suatu kasus tertentu lebih baik bila dapat mencapat BCNF. Beberapa pemikir menyamakan antara 3NF dengan BCNF. Bentuk normal BCNF terpenuhi jika :
-  Masing-masing atribut utama bergantung fungsional penuh pada masing kunci dimana kunci tersebut bukan bagiannya.
-  Setiap determinan atribut-atribut relasi adalah kunci relasi atau kandidat kunci.
-  BCNF dapat memiliki lebih dari satu kunci.
-  BCNF hampir sama dengan 3NF atau bisa dibilang sama dengan 3NF.
Langkah –  langkah :
-  Hilangkan dependensi pada bukan kunci kandidat.

6. Fourth Normal Form (4NF)
Dilakukan jika terdapat anomali pada (3NF)

7.  Fifth Normal Form (5NF)
Langkah ini untuk memecah relasi menjadi dua sehingga relasi tersebut tidak digabungkan kembali manjadi satu dan jika terdapat anomali pada (5NF)


B. Hasil Praktikum

Pada praktikum ke 6 ini kita membahas tentang normalisasi yang mana pada pertemuan ini kita menggunakan exel untuk mengerjakan tugas pertemuan ini berikut ini adalah langkah - langkah mengerjakan normalisasi :

Soal 




Pertama - pertama kita Buka Ms.exel


1. Langkah Pertama,Melakukan tahap unnormalisasi yang mana dalam tahab ini kita menuliskan semua data dalam bentuk satu tabel.



untuk memperjelas table diatas maka saya akan membuat tabel menjadi 2 agar dapat terlihat :






2. Berikutnya kita akan melakukan tahap First Normal Form (1NF) yaitu dalam tahab ini kita 

akan mengisikan data yang bukan null. seperti pada kolom nama, tanggal dll.



agar dapat dilihat dengan jelas maka tabel saya bagi menjadi 2 :





3. Tahap ketiga kita melakukan Second Normal Form (2NF) pada langkah ini kita memisah tabel secara global.



Dari gambar diatas dapat dilihat dengan jelas dengan gambar per sub table berikut :







4. Langkah ke empat adalah Third Normal Form (3NF) tahap ini kita memisahkan tabel- tabel yang tidak terdapat anomali - anomali hasil ketergantungan tansitif dan ketergantungan fungsional. Dalam hal ini kita juga akan menentukan primary key serta foregn key.



Lihat gambar di bawah ini, sub tabel dari tahab 3NF








5. Pada point akhir ini kita membuat sebuah ERD dari tabel tabel diatas seperti gambar di bawah ini :




C Kesimpulan

Dari hasil praktikum 6 tentang Normalisasi kita dapat menyimpulkan bahwa normalisasi dapat berguna untuk memecah kerancuan dalam suatu tabel . Yang mana dengan tujuan untuk memudahkan jika ada penambahan data , perubahan data , dan penghapusan Data.

D. Daftar Pustaka

Modul Praktikum Desain Basis Data 2014

Sunday, October 19, 2014

LAPORAN PRAKTIKUM V AGREGASI SQL DAN VIEW

I. Landasan Teori
A. AGREGATE OPERATOR
Fungsi aggregate atau disebut fungsi ringkasan digunakan untuk melakukan penghitungan menjadi  sebuah  nilai  dari  beberapa  nilai  input.  Aggregate  dapat
digabungkan dengan sebuah parameter  seperti  WHERE  untuk  menghasilkan suatu hasil yang lebih kompleks lagi. Adapun fungsi  agregate  yang  disediakan  oleh
PostgreSQL dapat dilihat pada tabel berikut :




B. GROUP BY
Group By merupakan fungsi yang digunakan untuk melakukan pengelompokan dari perintah SELECT. Group by seringkali diperlukan untuk menjalankan agregate menjadi sebuah kelompok dari hasil Query. Berikut struktur SQL untuk penampilan data :
select nama_kolom from nama_tabel group by nama_kolom;


C. HAVING
Pemakaian HAVING terkait dengan GROUP BY, kegunaanya adalah untuk menentukan kondisi bagi GROUP BY, dimana kelompok yang memenuhi kondisi saja yang akan di hasilkan.
Berikut Struktur yang digunakan :


D. CASE
Meskipun SQL bukan merupakan sebuah prosedur bahasa perograman, namun dalam prosesnya dapat dengan bebas mengontrol data yang kembali dari query. Kata WHERE menggunakan perbandingan untuk mengontrol pemilihan data, sedangkan CASE perbandingan dalam bentuk output kolom. Jadi intinya penggunaan CASE akan membentuk output tersendiri berupa sebuah kolom baru dengan data dari operasi yang di dalamnya.Struktur didalam select seperti berikut :
CASE WHEN condition THEN result
[WHEN ...]
[ELSE result] END



E. VIEW
Views dapat juga disebut tabel bayangan tetapi bukan temporary table, bukan juga merupakan sebuah tabel yang asli.  Suatu view adalah suatu relasi virtual yang tidak perlu ada database tetapi dapat diproduksi atas permintaan oleh pemakai tertentu, pada ketika permintaan. Satu lagi kelebihan yang dimiliki oleh view yaitu dapat menyimpan perintah query, dan dapat mewakili sebuah subset dari tabel asli dan memilih kolom atau row tertentu dari tabel biasa.
create view nama_tabel_view as query;


II. Hasil Praktikum

Dari praktikum ke lima kemarin kita dapat mengetahui tentang "Agresi SQL dan VIEw" yang ada pada progesmysql. Namum pada laporan kali ini kita akan membahasnya dalam DBMS Mysql berikut beberapa queri yang telah saya pelajari :

1. Menampilkan nim mahasiswa yang paling kecil, paling besar dan rata-ratanya dari tabel mahasiswa yang  telah kita buat .


 berikut adalah queri - queri untuk menampilkan nilai minimal,nilai maksimal serta rata - ratanya.

 select min(nim_mah) from mahasiswa;
 select max(nim_mah) from mahasiswa;
 select avg(nim_mah) from mahasiswa;


2. Kemudian kita akan menampilkan rata-rata nim mahasiswa yang data nimnya lebih dari 12.
berikut queri dari langkah no 2 :
    select avg(nim_mah) from mahasiswa where nim_mah > 12;




3. Menampilkan jumlah mahasiswa berdasarkan fakultas.
queri dari langkah diatas yaitu seperti ini :
 select nama_fak as nama_fakultas,count(*) from mahasiswa,fakultas where mahasiswa.id_fak=fakultas.id_fak group by nama_fak;



4. Langkah ke empat menampilkan seperti nomor 3 dengan persyaratan jumlah mahasiswa yang lebih dari   sama dengan 2 saja yang ditampilkan.

 select nama_fak as nama_fakultas,count(*) from mahasiswa,fakultas where mahasiswa.id_fak=fakultas.id_fak group by nama_fak;




karena data minimun jumlah fakultas 2 maka tampilannya seperti gambar no 3

5. Menampilkan  data  mahasiswa  dengan  persyaratan, jika jenis kelaminnya “L” maka tertulis laki-laki dan bila “P” maka tertulis perempuan.

 select*,case when gender='L' then 'laki-laki' else 'perempuan'end as jenis_kelamin from mahasiswa ;



6. Membuat view untuk query penampilan data mahasiswa, fakultas.Yang mengambil berdasarkan nim, nama mahasiswa, nama fakultas.

create view baru as select nim_mah as NIM,nama_mah as Nama,nama_fak as Fakultas from mahasiswa,fakultas where mahasiswa.id_fak=fakultas.id_fak;
select*from baru;




C. PERBANDINGAN DBMS

Secara garis besar diantara kedua DBMS ini memiliki query yang sama, kecuali beberapa uraian di bawah ini :
- PostgresSQL
Perbedaan :
1. Pada fungsi agregasi, seperti untuk mencari rata – rata, struktur query-nya kita boleh atau tidak ada spasi setelah query avg.

- MySQL

Perbedaan :
1. Pada fungsi agregasi, seperti untuk mencari rata – rata, struktur query-nya kita tidak boleh ada spasi setelah query avg. jika ada maka hasilnya akan error.



D. KESIMPULAN

Dari hasil praktikum yang telah kita pelajari pada pertmuan ke 5 ini. Maka dapat disimpulkan bahwa secara garis besar Query-query untuk membuat yang terdapat di DBMS PostgresSQL maupun MySQL tidak jauh berbeda. Dan dengan adanya fungsi view ini maka akan lebih memudahkan kita jika ingin menampilkan tabel berulang-ulang maka tanpa harus membuat query yang panjang.
Demikian laporan praktikum yang dapat saya utarakan semoga bermanfaat khususnya untuk saya dan umumnya untuk yang membaca blog ini terimakasih.

E. DAFTAR PUSTAKA

Modul Praktikum Desain Basis Data 2014.pdf


Saturday, October 11, 2014

Laporan Desain Basis Data 4


Laporan Praktikum 4
“Pengenalan Operator Dasar”

A.    Dasar Teori

·         AS
AS biasa digunakan untuk menampilkan label kolom dengan  nama lain sehingga yang akan muncul dalam hasil query bukan nama asli kolom, tetapi  nama yang mungkin lebih sesuai dan mudah dimengerti. AS digunakan setelah nama kolom  yang akan diganti yang kemudian diikuti dengan nama penggantinya.  Berikut struktur querynya :
select namakolom as namakolompengganti from namatabel;
Contoh :


·         AND dan OR
Pada  bagian  sebelumnya  kita  menggunakan  anak  kalimat  atau  sintaks  WHERE hanya  pada  konteks  yang  sederhana.  Berikut  ini  kita  akan  mencoba  menggunakan WHERE  untuk  konteks  yang  lebih  kompleks  lagi,  anak  kalimat  where  yang  kompleks akan  bekerja dengan  baik dengan  menggunakan  kata  AND  dan  OR.  SQL menggunakan standar logika boolean three-valued seperti pada tabel berikut ;

Berikut struktur SQL untuk penampilan data  ;
select * from namatabel  where namakolom = ‘pencarian 1’ and namakolom = ‘pencarian 2’;
Atau
select * from namatabel  where namakolom  = ‘pencarian 1’  or namakolom = ‘pencarian 2’;

Contoh :

·         BETWEEN
BETWEEN  digunakan untuk menentukan  lebar nilai dari  nilai terendah dan nilai tertinggi. Pada BETWEEN menggunakan operator pembanding seperti pada tabel berikut;
Logika operator BETWEEN sebagai berikut :
ร˜  Nilai a dalam formula “a BETWEEN x AND y” indentik dengan “a >= x AND a <= y“
ร˜   “a NOT BETWEEN x AND y “ identik dengan “a < x OR a > y”
Berikut Struktur yang digunakan :
select  *  from  nama_tabel  where  nama_kolom  between  ‘nilai_awal’  and ‘nilai_akhir’;
Contoh  :  Memunculkan  data  pegawai  dimana  tanggal  lahirnya  antara  tanggal  9 -9-1999 sampai 1-1-2001.
·      IN dan NOT IN
         Operator  IN  berguna  melakukan  pencocokan  dengan  salah  satu  yang ada pada suatu daftar nilai. Berikut Struktur yang digunakan
select  *  from  nama_tabel  where  in  (kata_kunci1,  kata_kunci2, kata_kunci13, kata_kunci14);
Contoh : menampilkan data pegawai yang memiliki ip 1,2, dan 3


·      LIKE
LIKE digunakan ketika kita ingin mencari sebuah data yang hanya diwakili oleh salah  satu  atau  lebih  hurufnya  saja.  Misalkan  kita  ingin  mencari  nama  yang  huruf awalnya  R,  maka  kita  harus  menggunakan  LIKE.  Berikut  adalah  tabel  contoh  kasus penggunaan LIKE :

Berikut struktur SQL untuk pencarian data menggunakan LIKE :
select * from nama_tabel where nama_kolom like  ‘operator’;
Contoh : Mencari data pegawai yang mempunyai nama dengan huruf awalan r.

·      REGEXP
Regular  Expression  atau  Regex,  merupakan  sebuah  teknik  atau  cara  untuk mencari persamaan - presamaan string atau data dan memanipulasinya. Biasanya lebih sering digunakan untuk string. Didalam PostgreSQL disimbolkan dengan “~”. Berikut tabel daftar simbol pada reguler expression :

Berikut struktur SQL untuk pencarian data menggunakan REGEXP :select  *  from  nama_tabel  where  nama_kolom  ~  ‘operator_regexp dan patern’;
Contoh :


·      DISTINCT
DISTINCT  sering  kali  diperlukan  untuk  mengembalikan  hasil  dari  sebuah query  dengan  tidak  terdapat  duplikasi,  artinya  pada  hasil  outputnya  tidak  terjadi kesamaan data meskipun pada data sesungguhnya sangat mungkin banyak duplikasi. Hal ini juga berlaku jika data yang ada dalam bentuk angka. Berikut struktur perintah dasar SQL :
select distinct nama_kolom from nama_tabel;
Contoh :


·      LIMIT
LIMIT  dan  OFFSET  digunakan  untuk  membatasi  jumlah  output  dari  query berdasarkan jumlah row bukan karena kondisi seperti WHERE. Bisa dikatakan LIMIT adalah untuk menentukan jumlah baris yang akan ditampilkan yang dihitung dari baris pertama, sedangkan  OFFSET  digunakan  untuk  menghilangkan  baris  sesuai  dengan jumlah yang diberikan pada OFFSET. Berikut struktur perintah dasar SQL :
select * from nama_tabel limit 2;
Atau
select * from nama_tabel offset 2;
Contoh :

·      UNION, EXCEPT dan INTERSECT
Hasil  dari  dua  buah  query  dapat  dikombinasikan  dengan  menggunakan UNION,  EXCEPT  atau  INTERSECT.  UNION  digunakan  untuk  menggabungkan hasil dua buah query menjadi satu kolom. Berikut struktur query untuk UNION :
select  nama_kolom  from  nama_tabel  union  select  nama_kolom  from nama_tabel;
atau
select  nama_kolom  from  nama_tabel  union  all  select  nama_kolom  from nama_tabel;
EXCEPT digunakan untuk menampilkan hanya query pertama saja, sedangkan hasil query kedua dan yang sama dengan hasil query kedua tidak akan ditampilkan.Berikut struktur query penggunaan EXCEPT :
select  nama_kolom  from  nama_tabel  except  select  nama_kolom  from nama_tabel;
Perintah  INTERSECT  hanya  akan  menampilkan  seluruh  isi  dari  data yangmemiliki  kesaman  diantara  hasil  kedua  query  tersebut .  Berikut  struktur  query penggunaan INTERSECT :
select  nama_kolom  from  nama_tabel  except  select  nama_kolom  from nama_tabel;
Contoh :


A.    Hasil Praktikum menggunakan Mysql
Sebelum kita menyelesaikan soal – soal dalam praktikum ke empat ini mari kita  Gunakan  tabel  mahasiswa  dan  fakultas  pada  pertemuan  3. Tambahkan kolom gender di tabel mahasiswa kemudian update data mahasiswa.  Insert  data mahasiswa hingga 7 baris.
ร˜  Langkah pertama kita memakai database praktikum 3 dimana telah terdapat tabel fakultas & tabel mahasiswa.
ร˜  Tambahkan data fakultas ‘saintek’ dan ‘ekonomi’ pada tabel fakultas
insert into fakultas values (1,'saintek'),(2,’ekonomi’);

ร˜  Tambahkan data mahasiswa menjadi 7 mahasiswa dengan menambahkan kolom gender pada data sebelumnya.
alter table mahasiswa add column gender varchar (1);
update mahasiswa set gender=’L’ where nim_mah=14;



select into mahasiswa values (11,’binta’,’jakarta’,2,08564732345,’P’), (12,’ismail’,’bojonegoro’,1,085655333232,’L’),(13,’pipit’,’jombang’,3,085733235721,’P’),(15,’arin’,’lamongan’,2,0847306926804,’P’), (17,’fatah’,’tuban’,2,085706234534,’L’);




Soal
1.      Menampilkan data mahasiswa dengan nama dari kolomnya berubah menjadi  nomor_identitas, nama, alamat,nama_fakultas  tanpa harus merubah nama kolom secara permanen.
select nim_mah as nomor_identitas,nama_mah as nama,alamat_mah as alamat,nama_fak as nama_fakultas from mahasiswa,fakultas where mahasiswa.id_fak=fakultas.id_fak;


2.      Tampilkan  nama  mahasiswa  fakultas  saintek  yang  berjenis  kelamin  laki-laki.Kemudian nama mahasiswa fakultas saintek atau berjenis kelamin laki-laki.
select nama_mah from mahasiswa where id_fak=2 and gender='L';


select nama_mah from mahasiswa where id_fak=2 or gender='L';


3.      Menampilkan data mahasiswa dari nomor 13 sampai dengan 15, kemudian tampilkan juga data mahasiswa yang bukan dari  nomor 13 sampai  dengan 15 menggunakan  between  dan  tanpa  menggunakan between.
select * from mahasiswa where nim_mah between '13' and '15';



select * from mahasiswa where nim_mah not between '13' and '15';

select * from mahasiswa where nim_mah >= '13' and nim_mah <='15';

select *from mahasiswa where nim_mah < '13' or nim_mah >'15';


4.      Menampilkan mahasiswa dengan nomor 12,13,15 menggunakan operator IN.
select* from mahasiswa where nim_mah in(12,13,15);




5.      Menampilkan semua data mahasiswa yang namanya mempunyai awalan huruf “a”.
select* from mahasiswa where nama_mah like'a%';



6.      Tampilkan semua data mahasiswa yang namanya mempunyai akhiran “a” dan huruf ke-3 dari nama tersebut terdapat huruf “n”.
select* from mahasiswa where nama_mah like'__n%a';


7.      Tampilkan  nomor  fakultas  di  tabel mahasiswa dengan  nomor  harus  tidak  ada  yang sama dari baris pertama sampai akhir.
select distinct id_fak from mahasiswa;


8.      Tampilkan data mahasiswa 3 baris saja.
select * from mahasiswa limit 3;


9.      Tampilkan data mahasiswa dengan ciri-ciri memiliki nama awalan a kemudian kata selanjutnya boleh r atau boleh n atau boleh i.
select * from mahasiswa where nama_mah regexp ~'a[rni]';


10.  Membuat tabel dengan organ_dalam dan organ_luar.
create table organ_dalam(nomor int primary key,nama varchar (20));
create table organ_luar(nomor int primary key,nama varchar (20));



insertinto organ_dalam values(1,'jantung'),(2,'paru-paru'), ('tenggorokan'); 
insert into organ_luar values(1,'hidung'),(2,'mata'),(3,'tenggokan');


Menampilkan data dari kedua tabel tersebut menggunakan UNION, EXCEPT  dan INTERSECT.

a.       Union
select*from organ_dalam union select * from organ_luar;


b.      Except / not in
select*from organ_dalam where nama not in (select nama from organ_luar);




c.       Intersect/in
select*from organ_dalam where nama in (select nama from organ_luar);



C. Perbandingan ProgresmySql dan DBMSMySqlDalam beberapa operator keduanya mempunyai query yang sangat mirip bahkan sama persis, seperti pada AND,OR,AS,BEETWEN,LIMIT,IN,DISTINCT,LIKE. Tetapi keduanya memiliki perbedaan kecil ketika REGEXP,INTERSECT, dan EXCEPT. Dan berikut hasil evaluasi saya setelah praktikum dan mencoba keduanya
Postgresql
Kelebihan
·         Querynya lebih mudah dimengert,terdapat fungsi UNION,EXCEPT dan INTERSECT sendiri 
    PostgreSQL terkenal akan fitur-fitur yang disediakannya, di mana telah diketahui sejak dulu bahwa PostgreSQL mempunyai sekumpulan fitur yang kaya dan lengkap, yang mendukung transaksi, view, subselect, foreign key support, pemeriksaan, dan lain-lain. Akan tetapi PostgreSQL selama ini telah banyak memberikan keuntungan yang lebih terhadap para perusahaan atau kegiatan bisnis yang menggunakan database system ini dari pada dengan database system yang lainnya.
     Untuk menggunakan data base dan tabel query pada postgresql lebih mudah dan singkat
     Untuk mengoneksikan dan menampilkan database serta tabel dengan query lebih mudah






Kekurangan

Kurang fokus dalam hal kelangsingan dan kecepatan. arsitektur dengan multiproses ini sulit diterapkan ke Windows, sebab Windows amat thread-oriented.
•Tidak dapat mengetahui jika ada kesalahan query

·         
Mysql

Kelebihan
·         Menggunakan bahasa yang lebih manusiawi yaitu ketika menggunakan REGEXP simbol ~ digantikan dengan tulisan REGEXP
Kekurangan
· Tapi imbas digantinya simbol dengan tulisan querynya menjadi lebih panjang
· Dan Mysql tidak mempunyai fungsi EXCEPT dan INTERSECT sendiri tapi kita bisa mengakalinya dengan menggunakan cara lain yaitu dengan fungsi IN

D.  Kesimpulan
            Kesimpulan seperti yang telah dijelaskan diatas bahwa fungsi beberapa operator dasar sql adalah sebagai berikut
AS     :  Digunakan untuk menampilkan label kolom dengan nama lain sehingga yang akan muncul dalam hasil query bukan nama asli kolom.
AND dan OR    : Pengembangan dari fungsi WHERE.
BEETWEN    : Untuk menampilkan data yang ada diantara dua nilai.
IN    : Melakukan pencocokan dengan salah satu yang ada pada suatu daftar nilai.
LIKE    : Untuk mencari sebuah data yang hanya diwakili oleh salah satu atau lebih hurufnya saja.
REGEXP   : Teknik atau cara untuk mencari persamaan - presamaan string atau data dan memanipulasinya
DISTINCT     : Untuk mengembalikan hasil dari sebuah query dengan tidak terdapat duplikasi.
LIMIT  : Untuk menentukan jumlah baris yang akan ditampilkan yang dihitung dari baris pertama.
OFFSET   : Untuk menghilangkan baris sesuai dengan jumlah yang diberikan pada       OFFSET.
UNION    : Untuk menggabungkan hasil dua buah query menjadi satu kolom.
EXCEPT   : Untuk menampilkan hanya query pertama saja
INTERSECT  : Menampilkan seluruh isi dari data yangmemiliki kesaman

E. Daftar Pustaka
Modul Praktikum Desain Basis Data 2014