SINTAX SQL, INNER JOIN, LEFT JOIN, RIGHT JOIN, AND FULL JOIN

18 December 2012 13:42:23 Dibaca : 19163

 

Syntax SQL

       INNER JOIN adalah tipe join yang akan kita bahas pertama. Tipe join ini akan mengambil semua row dari table asal dan table tujuan dengan kondisi nilai key yang terkait saja - jika ada, dan jika tidak maka row tersebut tidak akan muncul.

        INNER JOIN Antar Table dengan Kondisi ("ms_cabang" dan "ms_kota" dengan key "kode_kota") SELECT * FROM ms_cabang INNER JOIN ms_kota ON ms_cabang.kode_kota = ms_kota.kode_kota Hasil terlihat seperti gambar berikut ini. Disini table sumber adalah ms_cabang (left) mencari referensi row lain dari table ms_kota (right) dengan kondisi nilai kode_kota diantara kedua table tersebut sama.

  •  Left Outer Join / Left Join : Operasi Join tipe ini akan menampilkan semua isi tabel sisi kiri, walaupun data di pasangan joinnya yg disisi kanan nilainya tidak sama ataupun bernilai null.

          Contoh script left join(left outer join) select d.Area_id, d.nama_area, d.luas_area,   p.penduduk_id, p.nama_penduduk from cpenduduk p left outer join carea d on d.area_id=p.area_id Penjelasan : Operasi left join akan menampilkan semua isi tabel sisi kiri, walaupun data di pasangan joinnya yang disisi kanan nilainya tidak sama ataupun berisi null.

  •  Right Outer Join / Right Join : Operasi Join tipe ini akan menampilkan semua isi tabel sisi Kanan, walaupun data di pasangan joinnya yg disisi kiri nilainya tidak sama ataupun bernilai null.

Contoh script right join(right outer join) select d.Area_id, d.nama_area, d.luas_area, p.penduduk_id, p.nama_penduduk from cpenduduk p right outer join carea d on d.area_id=p.area_id

Penjelasan : Operasi right join akan menampilkan semua isi tabel sisi kanan, walaupun data di pasangan joinnya yang di sisi kiri nilainya tidak sama ataupun berisi null.

  • Full Outer Join / Full Join : Operasi Join tipe ini akan menampilkan semua isi tabel sisi kiri, walaupun data di pasangan joinnya yg disisi kanan nilainya null.dan sebaliknya.

      Contohnya script Full join select d.area_id, d.nama_area, d.luas_area, p.penduduk_id, p.nama_penduduk from cpenduduk p full join carea d on p.area_id = d.area_id Penjelasan : Operasi full join akan menampilkan semua isi tabel sisi kiri, walaupun data di pasangan joinnya yang disisi kanan nilainya null dan sebaliknya.

  • Cross Join

      Operasi Join tipe ini akan menampilkan semua isi tabel sisi Kiri akan memiliki pasangan semua data disisi kanan. Banyaknya Record Cross Join = jumlah record tabel pertama x jumlah record tabel kedua

    Contohnya script cross join select d.area_id, d.nama_area, d.luas_area, p.penduduk_id, p.nama_penduduk from cpenduduk p cross join carea d Penjelasan : Operasi cross join akan menampilkan semua isi tabel sisi sebelah kiri akan memiliki pasangan semua data sisi sebelah kanan. Banyaknya record cross join = jumlah record tabel pertama X jumlah record tabel kedua.

Syntax dasar dalam SQL " Structured Query Language "

  • LEVEL DATABASE Membuat database Untuk membuat database baru, sehingga tidak berlaku jika database sudah ada atau anda tidak memiliki privilege. Sintaksnya : CREATE DATABASE nama_db

     Menghapus database Untuk menghapus database beserta seluruh table di dalamnya. Perintah ini tidak berlaku jika database tidak ada atau anda tidak memiliki privilege. Sintaksnya : DROP DATABASE nama_db

    Menggunakan database Untuk menjadikan database menjadi default dan referensi dari table yang nantinya anda gunakan. Perintah ini tidak berlaku jika database tidak ada atau anda tidak memiliki privilege. Sintaksnya : USE nama_db

    Menampilkan database Untuk menampilkan daftar yang ada dalam system saat itu. Sintaksnya : SHOW DATABASES

  • LEVEL TABEL Membuat table Untuk membuat table minimal anda harus menentukan namanya dan tipe kolom yang anda inginkan. Sintaks yang paling sederhana (tanpa ada definisi lain) adalah :CREATE TABLE nama_tbl (kolom1 tipekolom1(),kolom2 tipekolom2(), …)

   Contoh : Anda ingin membuat table dengan nama profil yang memiliki kolom nama (bertipe char, lebar 20), kolom umur (bertipe integer), kolom jenis_kelamin (bertipe enum, berisi M dan F). Sintaksnya : REATE TABLE profil (nama CHAR(20), umur INT NOT NULL, jenis_kelamin ENUM(‘F’,’M’) )

    Sedangkan perintah yang agak lengkap dalam membuat sebuah table adalah dengan menyertakan definisi tertentu. Misalnya perintah seperti ini : CREATE TABLE peserta ( No SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT, Nama CHAR(30) NOT NULL, BidangStudi ENUM(‘TS’,’WD’) NOT NULL, PRIMARY KEY (No), INDEX (Nama, BidangStudi) )

    Perintah di atas berarti membuat table peserta dengan kolom No sebagai PRIMARY KEY yaitu indeks table yang unik yang tidak bisa diduplikat dengan atribut AUTO_INCREMENT yaitu kolom yang otomatis dapat mengurutkan angka yang diisikan padanya. Sedangkan kolom Nama dan BidangStudi dijadikan indeks biasa.

    Membuat indeks pada table Menambahkan indeks pada table yang sudah ada baik yang unik ataupun yang biasa. Sintaksnya : CREATE INDEX nama_index ON nama_tbl (nama_kolom) CREATE UNIQUE INDEX nama_index ON nama_tbl (nama_kolom)

     Menghapus table Untuk menghapus table dalam database tertentu. Jika dilakukan maka semua isi, indeks dan atribut lain akan terhapus. Sintaksnya : DROP TABLE nama_tbl

    Menghapus indeks Untuk menghapus indeks pada suatu table. Sintaksnya : DROP INDEX nama-index ON nama_tbl

    Melihat informasi table Untuk melihat table apa saja yang ada di database tertentu. Sintaksnya : SHOW TABLES FROM nama_db

    Sedangkan untuk melihat deskripsi table atau informasi tentang kolom gunakan sintaks : DESC nama_tbl nama_kolom atau SHOW COLUMNS FROM nama_tbl FROM nama_db

     Mendapatkan atau menampilkan informasi dari table Untuk menampilkan isi table dengan option-option tertentu. Misalnya untuk menampilkan seluruh isi table digunakan : SELECT * FROM nama_tbl.Untuk menampilkan kolom-kolom tertentu saja : SELECT kolom1,kolom2,… FROM nama_tbl

Untuk menampilkan isi suatu kolom dengan kondisi tertentu SELECT kolom1 FROM nama_tbl WHERE kolom2=isikolom Modifikasi struktur table Dapat digunakan untuk mengganti nama table atau mengubah strukturnya seperti manambah kolom atau indeks, menghapus kolom atau indeks, mengubah tipe kolom dsb. Sintaks umum : ALTER TABLE nama_tbl action

Untuk menambah kolom baru di tempat tertentu dapat menggunakan : ALTER TABLE nama_tbl ADD kolom_baru type() definisi

Untuk menambah kolom_baru bertipe integer setelah kolom1 digunakan : ALTER TABLE nama_tbl ADD kolom_baru INT NOT NULL AFTER kolom1

Untuk menambah indeks baru pada table tertentu baik yang unik ataupun yang biasa: ALTER TABLE nama_tbl ADD INDEX nama_index (nama_kolom) ALTER TABLE nama_tbl ADD UNIQUE nama_indeks (nama_kolom) ALTER TABLE nama_tbl ADD PRIMARY KEY nama_indeks (nama_kolom)

Untuk mengubah nama kolom dan definisinya, misalnya mengubah nama kolom_baru dengan tipe integer menjadi new_kolom dengan tipe char dengan lebar 30 digunakan: ALTER TABLE nama_tbl CHANGE kolom_baru new_kolom CHAR(30) NOT NULL

Untuk menghapus suatu kolom dan seluruh atributnya, misal menghapus kolom1 : ALTER TABLE nama_tbl DROP kolom1

Untuk menghapus indeks baik yang unik ataupun yang biasa digunakan : ALTER TABLE nama_tbl DROP nama_index ALTER TABLE nama_tbl DROP PRIMARY KEY

Modifikasi informasi dalam table. Untuk menambah record atau baris baru dalam table, sintaksnya : INSERT INTO nama_tbl (nama_kolom) VALUES (isi_kolom) atau INSERT INTO nama_tbl SET nama_kolom=isi_kolom.Misalnya untuk menambah dua baris pada table profil dengan isi nama = deden & ujang dan isi umur = 17 & 18 adalah : INSERT INTO profil (nama,umur) VALUES (deden,17), (ujang,18) atau INSERT INTO profil SET nama=deden, umur=17 INSERT INTO profil SET nama=ujang, umur=18

Untuk memodifikasi record atau baris yang sudah ada yang bersesuaian dengan suatu kolom. Misalnya untuk mengubah umur deden menjadi 18 pada contoh di atas dapat digunakan sintaks : UPDATE profil SET umur=18 WHERE nama=qalit

Untuk menghapus record atau baris tertentu dalam suatu table. Misalnya untuk menghapus baris yang ada nama ujang digunakan. sintaks : DELETE FROM profil WHERE nama=ujang. Jika WHERE tidak disertakan maka semua isi dalam table profil akan terhapus.

SQL adalah kependekan dari Structured Query Language, merupakan sebuah bahasa yang digunakan untuk mengakses data dalam basis data (database) relasional. SQL banyak diterapkan pada pemrograman berbasis client-server seperti PHP, ASP, Java J2EE, dan sebagainya. Contoh software SQL yang terkenal adalah MySQL, MsSQL (Microsoft), Oracle SQL, Postgre SQL (open source). Masing-masing software mempunyai keunggulan sendiri-sendiri, sejauh yang saya tahu Oracle SQL handal dalam hal keamanan dan ukuran database yang bisa mencapai tera byte, sedang MsSQL lebih banyak bermain di Memory untuk processing. Dari ketiga software ini, Oracle SQl bisa dikatakan sebagai pemegang pertama. Perintah dasar SQL pada dasarnya hampir sama baik MySQL, Postgre SQL, MsSQL atau Oracle SQL.

Membuat Database Baru di SQL

DDL (Data Definition Language) digunakan untuk mendefinisikan, mengubah, serta menghapus database dan objek-objek yang diperlukan. Membuat basis data di SQL cukup mudah, syntaxnya sebagai berikut.

1

CREATE DATABASE nama_db;

Membuat Tabel di SQL

1

CREATE TABLE nama_tabel;

Sedangkan untuk membuat tabel lengkap dengan fieldnya, perhatikan contoh di bawah ini:

1 2 3 4

CREATE TABLE user ( user_name VARCHAR(30) CONSTRAINT PRIMARY KEY, password VARCHAR(20) NOT NULL, date_of_birth DATETIME );

DML (Data Manipulation Language), digunakan untuk memanipulasi data dalam tabel. Perintahnya adalah:

SELECT untuk menampilkan dataINSERT untuk menambahkan data baruUPDATE untuk mengubah data yang sudah adaDELETE untuk menghapus data

Menampilkan Seluruh Data

1

SELECT * FROM user;

Menyimpan Data ke Tabel SQL

1

INSERT INTO user (user_name, password, date_of_birth) VALUES ('ALIYA HASSAN', 'Cengkareng', 'qwe');

Menghapus Data di Tabel

1

DELETE FROM user WHERE nama='ALIYA HASSAN';

Catatan: Setiap syntax pada SQL selalu diakhiri dengan tanda semicolon atau titik koma (;), abaikan kode ini jika kamu menggunakan PHPMyAdmin untuk mengakses database. Tapi jika kamu menggunakan terminal, ssh, cmd, atau program remote server lainnya perintah ini wajib diperhatikan. Selalu gunakan tanda bintang (*) untuk melihat isi tabel, tanda ini akan membaca baris (row). Pada dasarnya, perintah dasar mysql sama dengan postgre sql maupun oracle sql.

Perintah SQL dan Pengunaannya - SQL (Structured Query Language) adalah sebuah bahasa yang digunakan untuk mengakses data dalam basis data relasional. Bahasa ini secara de facto merupakan bahasa standar yang digunakan dalam manajemen basis data relasional. Saat ini hampir semua server basis data yang ada mendukung bahasa ini untuk melakukan manajemen datanya.

perintah-perintah dari sql beserta contoh penggunaanya :

1. Create Database : Create database berguna untuk membuat database baru. Syntax dasar:

CREATE DATABASE database_nama

Contoh:

CREATE DATABASE databaseku

2. Create Table : Berguna untuk membuat tabel data baru dalam sebuah database. Syntax dasar:

CREATE TABLE ( Column_name1 table_nama data_type Column_name2 table_nama data_type Column_name3 table_nama data_type )

Contoh menggunakan perintah create table :

CREATE TABLE registrasi ( Id int, Nama varchar (255), Email varchar(50), Kota varchar(255) )

3. Select : Digunakan untuk memilih data dari table database. Syntax dasar :

SELECT column_name(s) FROM table_name

4. Select Distinct : Digunakan untuk memilih data-data yang berbeda (menghilangkan duplikasi) dari sebuah table database. Syntax dasar :

SELECT DISTINCT column_name(s) FROM table_name

Contoh :

SELECT DISTINCT kota FROM registrasi

5. Where : Digunakan untuk memfilter data pada perintah Select Syntax dasar :

SELECT column name(s) FROM table_name WHERE column_name operator value

Contoh :

SELECT * FROM registrasi WHERE nama=’KONOE’

6. Order By : Digunakan untuk mengurutkan data berdasarkan kolom (field) tertentu. Secara default, urutan tersusun secara ascending (urut kecil ke besar). Anda dapat mengubahnya menjadi descending (urut besar ke kecil) dengan menambahkan perintah DESC. Syntax dasar :

SELECT column_name(s) FROM table_name ORDER BY column_name(s) ASC|DESC

Contoh :

SELECT * FROMregistrasi ORDER BY email

8. Like : Digunakan bersama dengan perintah Where, untuk proses pencarian data dengan spesifikasi tertentu. Syntax dasar :

SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern

Contoh :

SELECT * FROM registrasi WHERE nama LIKE ‘b%’

9. In : Digunakan untuk pencarian data menggunakan lebih dari satu filter pada perintah Where. Syntax dasar :

SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2, . . .)

Contoh :

SELECT * FROM registrasi WHERE kota IN (‘Medan’,’Siantar’)

10. Between : Digunakan untuk menentukan jangkauan pencarian. Syntax dasar :

SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2

Contoh :

SELECT * FROM registrasi WHERE id BETWEEN 5 and 15

11. Insert Into : Digunakan untuk menambahkan data baru di tabel database. Syntax dasar :

INSERT INTO table_name VALUES (value1,value2,value3, . . .)

Contoh :

INSERT INTO registrasi VALUES (1,’konoe’,’konoe@gmail.com’,’Medan’)

12. Update : Digunakan untuk mengubah/memperbarui data di tabel database. Syntax dasar:

UPDATE table_name SET column1=value,column2=value, . . . WHERE some_column=some_value

Contoh :

UPDATE registrasi SET email=’konoe@yahoo.com’, kota=’Medan’ WHERE

13. Delete : Digunakan untuk menghapus data di table database. Tambahkan perintah Where untuk memfilter data-data tertentu yang akan dihapus. Jika tanpa perintah Where, maka seluruh data dalam tabel akan terhapus. Syntax dasar :

DELETE FROM table_name WHERE some_column=some_value

Contoh :

DELETE FROM registrasi WHERE id=1

14. Inner Join : Digunakan untuk menghasilkan baris data dengan cara menggabungkan 2 buah tabel atau lebih menggunakan pasangan data yang match pada masing-masing tabel. Perintah ini sama dengan perintah join yang sering digunakan. Syntax dasar :

SELECT column_name(s) FROM table_name1 INNER JOIN table_name2 ON table_name1.column_name=table_name2 column-name

contoh :

SELECT registrasi.nama,registrasi.email,order.no_order FROM registrasi INNER JOIN order ON registrasi.id=order.id ORDER BY registrasi.nama

15. Left Join : Digunakan untuk menghasilkan baris data dari tabel kiri (nama tabel pertama) yang tidak ada pasangan datanya pada tabel kanan (nama tabel kedua). Syntax dasar :

SELECT column_name(s) FROM table_name1 LEFT JOIN table_name2 ON table_name1.column_name=table_name2. column_name

contoh :

SELECT registrasi.nama,registrasi.email,order.no_order FROM registrasi LEFT JOIN order ON registrasi.id=order.id ORDER BY registrasi.nama

16. Right Join : Digunakan untuk menghasilkan baris data dari tabel kanan (nama tabel kedua) yang tidak ada pasangan datanya pada tabel kiri (nama tabel pertama). Syntax dasar :

SELECT column_name(s) FROM table_name1 RIGHT JOIN table_name2 ON table_name1.column_name=table_name2 column_name

contoh :

SELECT registrasi.nama,registrasi.emailmorder.no_order FROM registrasi RIGHT JOIN order ON registrasi.id=order.i ORDER BY registrasi.nama

17. Full Join : Digunakan untuk menghasilkan baris data jika ada data yang sama pada salah satu tabel. Syntax dasar

SELECT column_name(s) FROM table_name1 FULL JOIN table_name2 ON table_name1.column_name=table_name2 column_name

Contoh :

SELECT registrasi.nama,registrasi.email,order.no_order FROM registrasi FULL JOIN order ON registrasi.id=order.id ORDER BY registrasi.nama

18. Union : Digunakan untuk menggabungkan hasil dari 2 atau lebih perintah Select. Syntax dasar :

SELECT column_name(s)FROM table_name1 UNION column_name(s) FROM table_name2

Contoh :

SELECT nama FROM mhs_kampus1 UNION SELECT nama FROM mhs_kampus2

18. Alter Table : Digunakan untuk menambah, menghapus, atau mengubah kolom (field) pada tabel yang sudah ada. Syntax untuk menambah kolom :

ALTAR TABLE table_name ADD column_name datatyoe

Contoh :

ALTER TABLE Persons ADD DateOfBirth date

Syntax untuk menghapus kolom :

ALTER TABLE table_name DROP COLUMN column_name

Contoh :

ALTER TABLE Persons DROP COLUMN DateOfBirth

Syntax untuk mengubah kolom :

ALTER TABLE table_name ALTER TABLE clumn_name datatype

Contoh:

ALTER TABLE Persons ALTER COLUMN DateOfBirth year

19. Now () : Digunakan untuk mendapatkan informasi waktu (tanggal dan jam saat ini.) Syntax dasar

Now()

Contoh :

SELECT NOW()

20. Curdate : Digunakan unutk mendapatkan informasi tanggal saat ini. Syntax dasar :

Curdate()

Contoh :

SELECT CURDATE()

21. Curtime() : Digunakan untuk mendapatkan informasi jam saat ini. Syntax dasar :

Curtime()

Contoh :

SELECT CURTIME()

22. Extract() : Digunakan untuk mendapatkan informasi bagian-bagian dari data waktu tertentu, seperti tahun, bulan, hari, jam, menit, dan detik tertentu. Syntax dasar

E

NORMALISASI PADA DATABASE DAN CONTOHNYA

20 November 2012 14:24:19 Dibaca : 29999

 Normalisasi bisa juga disebut Well Structure Relation atau proses pengelompokan atribut-atribu dari suatu relasi. Ada beberapa bentuk dalam normalisasi, yaitu Unnormalized Form, First Normal Form (1NF), Second Normal Form (2NF), Third Normal Form (3NF) dan Boyce-Codd Normal Form (BNF

   Normalisasi adalah suatu teknik untuk mengorganisasi data ke dalam tabel-tabel untuk memenuhi kebutuhan pemakai di dalam suatu organisasi.

                Tujuan dari normalisasi

  •   Untuk menghilangkan kerangkapan data
  •   Untuk mengurangi kompleksitas
  •   Untuk mempermudah pemodifikasian data

Proses Normalisasi

  •   Data diuraikan dalam bentuk tabel, selanjutnya dianalisis
  •   berdasarkan persyaratan tertentu ke beberapa tingkat.

Apabila tabel yang diuji belum memenuhi persyaratan tertentu,

 maka tabel tersebut perlu dipecah menjadi beberapa tabel yang

 lebih sederhana sampai memenuhi bentuk yang optimal.

Tahapan Normalisasi/langkah-langkah normalisasi

Untuk mendapatkan hasil yang paling normal, maka proses normalisasi dimulai dari normal pertama.   Field-field tabel di atas yang merupakan group berulang : Employee number, Employee name, Rate category, Hourly rate.

  • Normalisasi Pertama :

Solusinya hilangkan duplikasi dengan mencari ketergantungan parsial; menjadikan field-field menjadi tergantung pada satu atau beberapa field, bukan seluruhnya. Karena yang dapat dijadikan kunci adalah Project Number dan Employee Number, maka langkah kemudian dicari field-field mana yang tergantung pada Project Number dan mana yang tergantung pada Employee Number

 Keterangan : nama field yang dicetak miring dan tebal menunjukkan primary key. Ada beberapa keanehan dalam data pada tabel di atas. Adanya kesalahan penulisan data pada kolom “project name” record ketiga. Kemungkinan kesalahan penulisan data semakin bertambah seiring bertambahnya record.

  • Normalisasi Kedua :

Field-field yang tergantung pada satu field haruslah dipisah dengan tepat, misalnya Project Number menjelaskan Project Name dan Employee Number menjelaskan Employee Name, Rate Category dan Hourly Rate.

Untuk membuat hubungan antara dua tabel, dibuat suatu tabel yang berisi key-key dari tabel yang lain.

  • Normalisasi Ketiga :

Pada tabel diatas masih terdapat masalah, bahwa Employee Number 17 mendapatkan hourly rate yang tidak sesuai dengan rate category nya. Solusinya adalah mencari hubungan transitif (transitive relation) dimana field non-key tergantung pada field non-key lainnya. Artinya harus memisahkan field non-kunci Rate Category yang tadinya tergantung secara parsial kepada field kunci Employee Number, untuk menghilangkan anomali penulisan data pada field hourly rate.

Bentuk Normal Pertama (1NF)

  •    Sebuah model data dikatakan memenuhi bentuk normal pertama apabila setiap atribut yangdimilikinya memiliki satu dan hanya satu nilai. Apabila ada atribut yang memiliki nilai lebih

dari satu, atribut tersebut adalah kandidat untuk menjadi entitas tersendiri.

Bentuk Normal Kedua (2NF)

  •    Sebuah model data dikatakan memenuhi bentuk normal kedua apabila ia memenuhi bentuknormal pertama dan setiap atribut non-identifier sebuah entitas bergantung sepenuhnya hanya pada semua identifier entitas tersebut.

Bentuk Normal Ketiga (3NF)

  •  Sebuah model data dikatakan memenuhi bentuk normal ketiga apabila ia memenuhi bentuknormal 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.

     contoh bentuk-bentuk normalisasi pada suatu tabel.

     Betuk Unnormalized Form


  • Value pada kolom Kode_Matkul lebih dari 1, itulah mengapa masih disebut Unnormalized.

Bentuk First Normal Form (1NF)

  • Value pada masing-masing kolom hanya ada Satu

Bentuk Second Normal Form (2NF)

Memiliki ketergantungan fungsional

Tabel 1

Tabel 2

Tabel 3

Pada bentuk 1NF, masih terdapat ketidaktergantungan terhadap beberapa kolom (misal TTL tidak bergantung pada kode_matkul), sehingga tabel dipecah menjadi 3 bagian agar tabel-tabel tersebut dapat memiliki ketergantungan terhadapat kolom-kolomnya (misal NIM bergantung pada nama_mhs dan ttl).

Bentuk Third Normal Form (3NF)

Tabel 1 dan 2 sudah memenuhi criteria bantuk 3NF, namun tidak untuk tabel 3, karena bila kita ingin merubah value bobot dari nilai, maka kita akan melakukan perubahan pada banyak record/baris yang lainnya. Sehingga pada bentuk 3NF, tabel 3 dapat dipecah lagi menjadi 2 tabel agar memenuhi kriteria bentuk 3NF.

Tabel 3a

Tabel 3b

Bentuk Boyce-Codd Normal Form (BNF)

Dalam kasus ini, sebenarnya pada bentuk 3NF sudah memenuhi criteria sebagai tabel relasional yang dapat diimplementasikan pada RDBMS, tidak harus dalam bentuk BNF. Jadi bentuk BNF pun tidak mutlak dijadikan sebagai bentuk dalam RDBMS.

Bentuk BNF memiliki syarat harus memenuhi syarat ketergantungan fungsional dan ketergantungan transitif.

Entity Relationship Diagram

20 November 2012 14:21:53 Dibaca : 665

Entity Relationship Diagram

Model Entity Relationship merupakan suatu penyajian data dengan menggunakan Entity dan Relationship. Komponen-komponen ERD :

Entitas    

   Entity adalah obyek yang dapat dibedakan secara nyata , benar-benar ada secara fisik (contoh : orang) atau konsepsual (contoh : perusahaan) dan tidak saling bergantung keberadaannya.

·         Entitas kuat/strong

Entitas yang memiliki atribut kunci (key), yakni yang benar-benar dapat digunakan sebagai  pembeda.

·          Entitas lemah/weak

Entitas yang keberadaan dari entitas tersebut tergantung dari keberadaan entitas lain, atau key-nya memiliki beberapa informasi yang mirip sehingga bersifat tidak penuh. 

  Relasi    

   Relasi adalah hubungan yang terjadi antara satu atau lebih entitas. Derajat relasi adalah jumlah entitas yang berpartisipasi pada suatu relasi, antara lain : relasi 1 entitas/berderajat 1 (unary), relasi 2 entitas/berderajat 2 (binary). relasi 3 entitas/berderajat 3 (ternary). 

 Atribut   

  Atribut adalah karakteristik dari/sesuatu yang dimiliki oleh entity atau relationship yang menyediakan penjelasan detail tentang entity atau relationship tersebut.

·         Key atribut,yaitu Atribut yang digunakan untuk menentukan suatu entity secara unik/yang dapat membedakan satu dengan yang lainnya,

·         Partical key atribut

·         Atribut simple: Atribut yang bernilai simple.

·         Atribut multivalue : Atribut yang  memiliki sekelompok nilai untuk setiap entitas.

·           Atribut composite : Atribut yang terdiri dari beberapa atribut yang lebih kecil yang mempunyai arti tertentu.

·           Atribut derifatif : Atribut yang dihasilkan dari atribut yang lain.

  Kardinalitas        

Kardinalitas adalah angka yang menjelaskan batasan jumlah keterhubungan satu entity dengan entitas lainnya.

·         One to One

·          One to Many

·           Many to Many

  Partisipan/Modalitas

    Partisipan/Modalitas menunjukkan partisipasi sebuah entitas pada suatu relasi.

·         Total partisipan: Semua menjadi bagian dari relasi

·           Partical partisipan : Tidak semua ikut dalam relasi.

  •   entity : rumah sakit,pegawai ,pekerjaan ,perawat ,pasien
  •   relasi : memiki , secagai,merawat .
  •   atribut : nama ,no.hp ,id pegawai, alamat ,gelar.

 

 

Gambar diagram Relationship rumah sakit

 

 

Bahasa DDL,Perintah-perintah DDL,Serta contoh DMLSQL

03 October 2012 16:51:11 Dibaca : 865

DATA DEFINITION LANGUAGE (DDL)

      DDL adalah bahasa formal yang dipergunakan oleh programer untuk merumuskan muatan dan struktur data base.

  DDL menjelaskan setiap unsur data yang terdapat dalam data base sebelum unsur data tersebut diterjemahkan kedalam bentuk yang diperlukan program aplikasi.

 

Contoh perintah DDL yang digunakan pada MySQL :

  • 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

  • TRUNCATE  : menghapus semua catatan dari tabel, termasuk semua ruang yang dialokasikan     untuk catatan dihapus
  • COMMENT   : menambahkan komentar pada data kamus
  • RENAME     : mengubah nama table

DATA MANIPULATION LANGUAGE (DML)

      DML adalah suatu bahasa yang terkait dengan sistem manajemen database yang digunakan oleh pengguna dan programer untuk memanifulasi data dalam data base.

  Bahasa ini memuat perintah-perintah sehingga pengguna dan programer dapat menarik data dari data base untuk memenuhi kebutuhan informasi dan mengembangkan berbagai aplikasi.

Contoh perintah DML:

  • Insert : Merupakan perintah yang dilakukan untuk melakukan penyisipan.  Umunya penyisipan dilakukan langsung ke base table yaitu tabel utama,tabel dasar atau fisik. Ada dua jenis penyisipan yaitu:

*        Menambah anggota relasi langsung lewat base tables

*        Menambah suatu relasi melalui suatu views sehingga mungkin menghasilkan penambahan lebih dari satu baris pada base tables

*        Update Merupakan perintah yang digunakan untukmengubah data yang memenuhikondisitertentu yang dideskripsikandengan  where.Adaduajenis update yaitu : 

a)      Memodifikasianggotalangsungdari base tables.

b)      Memodifikasianggotarelasimelaluisuatu views.

  • Delete: Merupakanperintah yang digunakan untuk menghapus data yang memenuhi kondisi tertentu yang dideskripsikan dengan:

*        Menghapus anggota langsung dari base tables.

*        Menghapus anggota relasi melalui suatu views.

  • Select: Merupakan perintah yang digunakan untuk melakukan operasi seleksi yang dinyatakan dalam bentuk suatu query dalam bahasa tertentu dengan operasi model data relasional.
  • Views: Merupakan perintah yang digunakan untuk memudahkan proses untuk dapat membuat tabel virtual atau maya yang dapat merupakan kombinasi berbagai base tables yang dihubungkan dengan kesamaan kondisi tertentu.View adalah tabel semu yang berarti secara fisik data tidak tersimpan dalam basis data,tetapi secara lojik dapat berfungsi seolah-olah tabel.Pada dasarnya tabel virtual adalah :

*        Merupakan hasil proses seleksi yang mewakili kacamata user tertentu.

*        Dapat digunakan untuk melakukan retrieval,insert,delete dan update

DATA CONTROL LANGUANGE (DCL)

      Perintah-perintah yang termasukdalam data control language adalah:

Ø  Commit: Merupakan perintah yang digunakan untuk memindahkan transaksi dari memory pemrosesan ke database atau menyimpan secara permanen perubahan-perubahan kedalam database.

Ø  Rollback: Merupakan perintah yang digunakan untuk membatalkan transaksi yang belum di commit atau membatalkan perubahan-perubahan terakhir dari perintah commit/rollback terakhir.

Ø  Grant: Merupakan perintah yang digunakan untuk member hak akses bagi seorang user terhadap suatu tabel atau view.

Ø  Revoke: Merupakan perintah yang digunakan untuk menghapus hak akses bagi seorang user terhadap suatu tabel atau view.

DATA QUERY LANGUAGE (DQL)

      DQL sering disebut juga dengan statement ritrieval, yang digunakan untuk mengambil data pada suatu tabel dan mengatur bagaimana data tersebut ditampilkan dalam aplikasi. Reservet word SELECT merupakan Verb yang paling umum digunakan dalam DQL (bahkan dalam seluruh statement SQL). Reservet word Line dalam kategori ini yang umum digunakan adalah:

v  WHERE

v  ORDER BY

v   GROUP BY

v   DAN HAFING.

Reservet word ini biasanya digunakan bersama dengan kategori lain dalam statement SQL.

 

 

tipe-tipe dbms

19 September 2012 10:09:50 Dibaca : 235

DBMS adalah Sistem pengorganisasian dan pengolahan data base pada komputer.

    Tipe data karakter terdiri atas tipe-tipe data CHAR, NCHAR, NVARCHAR2, VARCHAR2, VARCHAR, LONG, RAW dan LONG RAW. Penjelasan dari masing-masing tipe data dijelaskan sebagai berikut :

CHAR
   Tipe data CHAR dispesifikasikan dalam karakter string yang memiliki panjang tetap. Oracle memastikan bahwa semua nilai disimpan dalam sebuah kolom CHAR memiliki panjang yang ditentukan oleh ukuran (size).

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.

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.

VARCHAR2
   Tipe data VARCHAR2 menetapkan string karakter variabel-panjang. Ketika Anda membuat kolom VARCHAR2, anda akan diminta menyertakan jumlah maksimal byte atau karakter data yang dapat diisikan kedalamnya.

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.

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.

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-tipe yang kita kenal dalam microsof access, antara lain:

•Text, adalah tipe data yang berisikan huruf atau kombinasi huruf dan angka. Tipe data ini memiliki panjang 255 karakter.

•Memo, adalah tipe data yang berisikan huruf atau kombinasi huruf dan angka. Tipe data ini memiliki panjang 65535 karakter.

•Number, adalah tipe data yang berisikan angka untuk perhitungan matematis. Tipe data ini memiliki panjang 1, 2, 4, atau 8 byte (1 byte = 1 karakter = 8 bit binary) 

•Date/Time, adalah tipe data yang berisikan tanggal bulan dan tahun. Tipe data ini memiliki panjang 8 byte 

•Currency, adalah tipe data yang berisikan angka yang melibatkan 1 sampai 4 angka di belakang koma (desimal). Tipe data ini mampu terlibat dalam perhitungan sampai 15 digit di depan koma, dan 4 digit di belakang koma. Panjangnya 8 byte.

•AutoNumber, adalah tipe data yang berisikan angka yang mengalami increment (penambahan dengan skala kelipatan yang tetap). Defaultnya adalah 1. Panjangnya 4 byte.

•Yes/No, adalah tipe data yang berisikan jawaban yes/no, true/false, atau on/off. Panjangnya hanya 1 bit (bukan byte).

•OLE Object, adalah tipe data yang berisikan bermacam-macam object, seperti file Ms Word, spreadheet milik Ms Excel, grafik, gambar, dan sebagainya. Ukurannya tak terbatas, tergantung dari kapasitas hardisk.

•Hyperlink, adalah tipe data yang berisikan link ke sebuah object atau situs web. Panjangnya 2048 karakter.

Dalam Microsoft Visual Foxpro dikenal berbagai macam tipe data dengan keterangan sebagai berikut :