Rabu, 05 Januari 2011

Perbedaan SQL dan PLSQL

SQL DAN PL/SQL

     PL/SQL adalah bahasa pemrograman yang merupakan perluasan dari Struktured Query Language. PL merupakan singkatan dari Prosedural Language. PL/SQL merupakan sebuah bahasa pemrograman yang dipergunakan 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.

Perbedaan SQL dan PL/SQL:
 
- SQL adalah bahasa deklaratif untuk database yg sudah distandarkan secara internasional (ANSI dan ISO), jadi seharusnya semua database yg menggunakan SQL standar akan memiliki statement/syntax yg sama, baik di Oracle, MySQL atau database lainnya. Tetapi beberapa database memang memiliki statement/syntax proprietary yg hanya dikenali di database itu sendiri dan ini tentu saja bukan standar SQL.
 
- Sementara PL/SQL adalah ekstensi dari SQL dengan menambahkan fungsi bahasa prosedural. Berbeda dengan SQL yg hanya mementingkan bagaimana mendapatkan hasil, dengan PL/SQL juga akan diketahui bagaimana proses untuk mendapatkan hasil tsb. Karena PL/SQL merupakan bahasa prosedural, maka statement/syntax yg digunakan sangat tergantung dari jenis bahasa yg diadopsi.
 
     MySQL sendiri menggunakan standar ANSI untuk bahasa proseduralnya (SQL/PSM), dan kabarnya mengadopsi berbagai bahasa seperti Perl, Phyton, dan C. Apalagi sekarang MySQL sudah diakuisisi oleh SUN, mungkin bahasa Java juga sudah dimasukkan ke situ.

     Istilah PL/SQL khusus untuk oracle saja. PL/SQL yang merupakan singkatan dari Procedural Language/Structured Query Language merupakan sebuah penggabungan antara bahasa pemrograman prosedural (PL) dan SQL syntax. Jadi dengan PL/SQL kita tidak perlu menggunakan sebuah bahasa pemrograman sendiri. fungsi-fungsi standard di bahasa pemrograman sudah ada di sini dan bisa langsung digabung dengan perintah SQL untuk memanipulasi database. Tapi PL/SQL cuma ada di database oracle saja.

Memahami Fitur-fitur Utama PL/SQL

     Cara terbaik untuk mempelajari PL/SQL adalah dengan melihat sebuah contoh program.Program berikut ini memproses pemesanan raket tenis. Pertama, program mendeklarasikan variable bertipe NUMBER untuk menyimpan jumlah raket tenis yang tersedia. Kemudian, menampilkan jumlah raket tersedia dari table database yang bernama INVENTORY. Jika jumlah lebih besar daripada nol, program akan meng-update table dan menambahkan data pembelian ke dalam table lain yang bernama PURCHASE_RECORD. Sebaliknya, jika jumlah lebih kecil atau sama dengan nol, program akan menambahkan informasi bahwa stok tidak mencukupi ke dalam table PURCHASE_RECORD.

     Dengan PL/SQL, kita dapat menggunakan perintah-perintah SQL untuk memanipulasi data pada database Oracle serta perintah-perintah flow-of-control untuk memproses data. Kita juga dapat mendeklarasikan konstanta dan variable, mendefinisikan procedure dan function, dan menangkap pesan kesalahan.Dengan demikian, PL/SQL mengkombinasikan kekuatan manipulasi data dari SQL dengan kekuatan pemrosesan data dari bahasa prosedural (procedural language).
 
PL/SQL package

    Package adalah sebuah schema object yang mengelompokkan PL/SQL types, items, dan subprograms, yang terkait secara logikal. Packages biasanya memiliki dua bagian, sebuah specification dan sebuah body, meskipun kadangkala body tersebut tidak diperlukan. Specification (atau spec) merupakan antarmuka terhadap aplikasi-aplikasi kita; ia mendeklarasikan types, variables, constants, exceptions, cursors, dan subprograms yang tersedia untuk digunakan. Body secara penuh mendefinisikan cursors dan subprograms, dan juga mengimplementasikan spec.
Seperti ditunjukkan oleh Gambar 9-1, kita dapat memikirkan sebuah spec sebagai sebuah antarmuka operasional dan body sebagai sebuah “kotak hitam (black box)”. Kita dapat men-debug, meningkatkan, atau menimpa sebuah package body tanpa mengubah antarmuka (package spec) ke package tersebut.

Contoh Sebuah PL/SQL Package
Dalam contoh di bawah ini, kita mem-package sebuah record type, sebuah cursor, dan dua procedure kepegawaian. Perlu diingat bahwa procedure hire_employee menggunakan database sequence empno_seq dan function SYSDATE untuk menambahkan sebuah employee number baru dan hire date.
CREATE OR REPLACE PACKAGE emp_actions AS -- spec
TYPE EmpRecTyp IS RECORD (emp_id INT, salary REAL);
CURSOR desc_salary RETURN EmpRecTyp;
PROCEDURE hire_employee (
ename VARCHAR2,
job VARCHAR2,
mgr NUMBER,
sal NUMBER,
comm NUMBER,
deptno NUMBER);
PROCEDURE fire_employee (emp_id NUMBER);
END emp_actions;
CREATE OR REPLACE PACKAGE BODY emp_actions AS -- body
CURSOR desc_salary RETURN EmpRecTyp IS
SELECT empno, sal FROM emp ORDER BY sal DESC;
PROCEDURE hire_employee (
ename VARCHAR2,
job VARCHAR2,
mgr NUMBER,
sal NUMBER,
comm NUMBER,
deptno NUMBER) IS
BEGIN
INSERT INTO emp VALUES (empno_seq.NEXTVAL, ename, job, mgr,
SYSDATE, sal, comm, deptno);
END hire_employee;
 PROCEDURE fire_employee (emp_id NUMBER) IS
BEGIN
DELETE FROM emp WHERE empno = emp_id;
END fire_employee;
END emp_actions;
Hanya deklarasi di dalam package yang terlihat dan dapat dikses terhadap aplikasi. Detil implementasi di dalam package body disembunyikan dan tidak dapat diakses. Jadi, kita dapat mengubah body (implementation) tanpa harus meng-compile ulang program-program yang memanggilnya.
Variable dan Konstanta
PL/SQL mengijinkan kita untuk mendeklarasikan konstanta dan variable, lalu menggunakannya di dalam SQL dan perintah-perintah prosedura
l dimanapun ekspresi dapat digunakan. Namun perlu diingat, forward reference tidak diperbolehkan. Maksudnya, kita harus mendeklarasikan konstanta dan variable sebelum mereferensinya (menggunakannya) di dalam perintah-perintah yang lain, termasuk pada perintah-perintah declarative lainnya.
[DECLARE
- - - declarations]
BEGIN
- - - statemens
[EXCEPTION
- - - handlers]
END;

 Mendeklarasikan Variable

kiri operator dan ekspresi (dapat pula mengandung pemanggilan sebuah function) pada sisi kanan. Sedikit contoh-contohnya adalah sebagai berikut:
tax := price * tax_rate;
valid_id := FALSE;
bonus := current_salary * 0.10;
wages := gross_pay(emp_id, st_hrs, ot_hrs) - deductions;
Cara kedua untuk memberikan nilai ke variable adalah dengan melakukan select (atau fetch) terhadap nilai-nilai yang ada di dalam database ke variable tersebut. Pada contoh di bawah ini, kita mengharuskan Oracle untuk menghitung bonus sebesar 10% ketika kita menampilkan gaji karyawan. Sekarang, kita dapat menggunakan variable bonus di dalam proses perhitungan lainnya atau menambahkan nilainya ke table di dalam database.
SELECT sal * 0.10 INTO bonus FROM emp WHERE empno = emp_id;
Sedangkan cara ketiga untuk memberikan nilai ke variable adalah dengan melewatkannya sebagai parameter OUT atau IN OUT kepada sebuah subprogram. Seperti pada contoh di bawahini, parameter IN OUT mengijinkan kita untuk melewatkan nilai awal ke subprogram yang sedang dipanggil dan kemudian mengembalikan nilai perubahannya kepada pemanggilnya:
DECLARE
my_sal REAL(7,2);
PROCEDURE adjust_salary (emp_id INT, salary IN OUT REAL) IS ...
BEGIN
SELECT AVG(sal) INTO my_sal FROM emp;
adjust_salary(7788, my_sal); -- assigns a new value to my_sa
Mendeklarasikan Konstanta
Mendeklarasikan konstanta sama halnya dengan mendeklarasikan, kecuali bahwa kita harus menambahkan keyword CONSTANT dan segera memberikan nilai ke konstanta tersebut. Setelah itu, tidak diperbolehkan adanya pemberian nilai kembali kepada konstanta tersebut. Pada contoh beirkut ini, kita mendeklarasikan konstanta dengan nama credit_limit:
credit_limit CONSTANT REAL:= 5000.00;


Minggu, 02 Januari 2011

Contoh Relationship Pada Basis Data

Model Entity-Relationship adalah model data konseptual tingkat tinggi untuk perancangan basis data. Model data konseptual adalah himpunan konsep yang mendeskripsikan struktur basis data, transaksi pengambilan dan pembaruan basis data.

Model ER adalah data konseptual tak tergantung DBMS dan platform perangkat keras tertentu. Model ER dikemukakan oleh Chen [1976]. Sejak itu, telah memperoleh banyak perhatian dan perluasan.

Model ER adalah persepsi terhadap dunia nyata sebagai terdiri objek-objek dasar yang disebut entitas dan keterhubungan (relationship) antar entitas-entitas itu.

Konsep paling dasar di model ER adalah entitas, relationship dan atribut.
Komponen-komponen utama model ER adalah:

a. Entitas (entity), Entitas memodelkan objek-objek yang berada diperusahaan/lingkungan.
b. Relationship. Relationship memodelkan koneksi/hubungan di antara entitas-entitas.
c. Atribut-atribut (properi-properti), memodelkan properti-properti
dari entitas dan relationship.
d. Konstrain-konstrain (batasan-batasan) integritas, konstrain-konstrain ketentuan validitas.

 
Entitas (Entity) dan Himpunan Entitas (Entitas Sets)

Entitas merupakan individu yang mewakili sesuatu yang nyata (eksistensinya) dan dapat dibedakan dari sesuatu yang lain. Sebuah kursi yang kita duduki, seseorang yang menjadi pegawai di sebuah perusahaan dan sebuah mobil yang melintas di depan kita adalah entitas.

Sekelompok entitas yang sejenis dan berada dalam lingkup yang sama membentuk sebuah himpunan entitas (entity sets). Sederhananya, entitas menunjuk pada individu suatu objek, sedang himpunan entitas menunjuk pada rumpun (family) dari individu tersebut.

Seorang pasien, misalnya akan dimasukkan dalam himpunan entitas pasien. Sedang seorang dokter akan ditempatkan dalam himpunan entitas dokter.

Dalam berbagai pembahasan/literature, penyebutan himpunan entitas (yang kurang praktis) ini seringkali digantikan dengan sebutan entitas saja.

Karena itu sering ditemui, penggunaan istilah entitas (entity) di sebuah literature sebenarnya menunjuk pada himpunan entitas
.
Kunci Entitas

Sebagaimana model relasional, adalah penting dan berguna untuk memasukkan kunci yang diasosiasikan dengan himpunan entitas. Kunci pada himpunan entitas S, adalah himpunan atribut A. Sehingga tidak ada dua entitas di S yang mempunyai nilai sama untuk tiap atribut di A dan tidak ada subset di A yang dapat menjadi kunci di S, dengan demikian kunci mempunyai property minimal.
Atribut (Atributes/Properties)

Setiap entitas pasti memiliki atribut yang mendeskripsikan karakteristik (property) dari entitas tersebut.

Penentuan / pemilihan atribut-atribut yang relevan bagi sebuah entitas merupakan hal penting lainnya dalam pembentukan model ER. Contoh : nim, nama, alamat, kode.
Relasi (Relationship) dan Himpunan Relasi (Relationship Sets)

Relasi menunjukkan adanya hubungan di antara sejumlah entitas yang berasal dari himpunan entitas yang berbeda.

Misalnya, entitas seorang mahasiwa dengan
nim = ‘980001’ dan
nama_mhs = ‘Ali Akbar’ (yang ada di himpunan entitas Mahasiswa)

mempunyai relasi dengan entitas sebuah mata kuliah dengan

kode_kul=’IF-110’ dan
nama_kul=’Struktur Data’.

Relasi diantara kedua entitas tadi mengandung arti bahwa mahasiswa tersebut sedang mengambil/mempelajari mata kuliah tersebut di sebuah perguruan tinggi yang ditinjau.

Kumpulan semua relasi diantara entitas-entitas yang terdapat pada himpunan entitas-himpuan entitas tersebut membentuk himpunan relasi (relationship sets).
Sebagaimana istilah himpunan entitas yang banyak sekali disingkat menjadi entitas, istilah himpunan relasi jarang sekali digunakan dan lebih sering disingkat dengan istilah relasi saja.

Kardinalitas/derajat Relasi

Kardinalitas Relasi menunjukkan jumlah maksimum entitas yang dapat berelasi dengan entitas pada himpunan entitas yang lain. Kardinalitas relasi merujuk kepada hubungan maksimum yang terjadi dari himpunan entitas yang satu ke himpunan entitas yang lain dan begitu juga sebaliknya.

Kardinalitas di antara dua himpunan entitas (misalnya A dan B) dapat berupa :

a. Satu ke satu (One to One),
setiap entitas pada himpunan entitas A berhubungan dengan paling banyak dengan satu entitas pada himpunan entitas begitu juga sebaliknya setiap entitas pada himpunan entitas B berhubungan dengan paling banyak dengan satu entitas pada himpunan entitas A.

b. Satu ke Banyak (one to many),
setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B,
tetapi tidak sebaliknya, dimana setiap entitas pada himpunan entitas B berhubungan dengan paling banyak dengan satu entitas pada himpunan entitas A.
c. Banyak ke Satu (Many to One),
setiap entitas pada himpunan entitas A berhubungan dengan paling banyak dengan satu entitas pada himpunan entitas B, tetapi tidak sebaliknya, dimana setiap entitas pada himpunan entitas A berhubungan dengan paling banyak satu entitas pada himpunan entitas B.

d. Banyak ke Banyak (Many to Many)
setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B,
demikian juga sebaliknya, di mana setiap entitas pada himpunan entitas B dapat berhubungan dengan banyak entitas pada himpunan entitas A.

Diagram Entity-Relationship (ER)

Penggambaran Model ER secara sistematis dilakukan melalui diagram ER. Notasi-notasi simbolik di dalam Diagram ER yang dapat digunakan adalah:
1. Persegi panjang, menyatakan Himpunan Entitas.
2. Lingkaran/Elips, menyatakan atribut (Atribut yang berfungsi sebagai key digaris bawahi).
3. Belah ketupat, menyatakan Himpunan Relasi.
4. Garis, sebagai penghubung antara Himpunan Relasi dengan Himpunan Entitas dan Himpunan Entitas dengan atributnya.
5. Kardinalitas Relasi dapat dinyatakan dengan banyaknya garis cabang atau dengan pemakaian angka (1 dan 1 untuk relasi one to one, 1 dan N untuk relasi one to many atau N dan N untuk relasi many to many).
Contoh diagram ER :

Tahap Pembuatan Diagram ER

Diagram ER selalu dibuat secara bertahap. Paling tidak ada dua kelompok penahapan yang biasa ditempuh di dalam pembuatan diagram ER, yaitu :

a. Tahap pembuatan Diagram ER awal (preliminary design). Yaitu :
- Mengidentifikasi dan menetapkan seluruh entity yang terlibat dalam sistem database tersebut.
- Menentukan attribute-attribute atau field dari masing-masing entity beserta kunci (key)-nya.
Menentukan attribute dari suatu entitas sangat menentukan baik atau tidaknya sistem database yang dirancang, karena attribute ini sangat menentukan nantinya dalam proses relasi. Attribute merupakan ciri khas yang melekat pada suatu entity, misalnya attribute pada mahasiswa dapat berupa nobp, nama, tempat lahir, tanggal lahir, alamat, nama orang tua, pekerjaan orang tua dan lain-lain. Dari sekian banyak kemungkinan attribute yang ada pada entity mahasiswa, kita dapat menggunakan hanya yang perlu saja. Setelah menentukan attributenya selanjutnya adalah menentukan field kunci. Field kunci adalah penanda attribute tersebut sehingga bisa digunakan untuk relasi nantinya dan field kunci ini harus bersifat unik. Misalnya pada entity mahasiswa, attribute nobp bisa dijadikan field kunci, karena bersifat unik dan tidak ada mahasiswa yang mempunyai nobp sama.
- Mengidentifkasi dan menetapkan seluruh himpunan relasi diantara himpunan-himpunan entity yang ada beserta kunci tamu (foreign key)- nya.
Setelah menentukan entity dan attribute beserta field kuncinya, maka selanjutnya adalah menentukan entity yang terbentuk akibat adanya relasi antar entity. Misalnya antara entity mahasiswa dengan entity dosen, terjadi suatu hubungan proses mengajar, maka proses mengajar ini merupakan entity baru. Entity mengajar ini harus kita tentukan juga attribute yang melekat padanya beserta kunci tamu (foreign key). Kunci tamu adalah field kunci utama pada tabel lain, dan field tersebut digunakan juga pada tabel yang satu lagi. Misalnya nobp adalah
field kunci dari entity mahasiswa, pada entity mengajar terdapat juga attribute NoBP, maka keberadaan attribute nobp pada entity mengajar disebut sebagai kunci tamu. Proses menentukan hubungan antar entity juga sangat menentukan kualitas system database yang dirancang.
- Menentukan derajat relasi untuk setiap himpunan relasi.
Setelah semua entity dan attribute yang dibutuhkan terbentuk, maka selanjutnya adalah menentukan derajat relasi antar entity tersebut, apakah satu kesatu, satu ke banyak atau sebaliknya, atau banyak ke banyak. Berhati-hatilah dalam menentukan derajat relasi ini, karena nantinya akan berhubungan dengan proses query terhadap data
- Melengkapi himpunan entitas dan himpunan relasi dengan atribut-atribut deskriptif (non key).
contoh ER diagram : 
er_diagram

Entity Relationship Model

Model data entity relationship (E-R) adalah berdasarkan pada persepsi dari dunia nyata yang
terdiri dari sekumpulan objek – objek dasar yang desebut entity, dan relationship antara objek – objek
tersebut. Pembentuk Model E-R (Entity Relationship) pada dasarnya terdiri dari 2 komponen, yaitu Entiti (Entity) / entitas dan Relasi (Relation) atau hubungan.

Entiti
     Merupakan suatu objek yang dapat diidentifikasi secara unik dalam lingkungan
pemakai, suatu yang penting bagi pemakai dalam konteks sistem yang akan dibuat.
     Sekelompok entiti yang sejenis dan berada dalam lingkup yang sama membentuk
sebuah Himpunan Entiti.



contoh    Himpunan Entiti Mahasiswa

 
NPM
Nama
Alamat
Tgl Lahir
980001
Ali Akbar
Jl. Merdeka No.10, Jakarta 40121
02-01-1979
980002
Budi Haryanto
Jl. Gajah Mada No.2, Jakarta 45123
06-10-1978
980003
Rini Susanti
Jl. Adil No.123, Bogor 43123
27-07-1977

Gambar 8.4. Himpunan entiti mahasiswa
Atribut

Merupakan elemen bagian dari entiti yang berfungsi menjelaskan karakter entiti.
Contoh dalam Entiti Mahasiswa ada atribut : Nim, Nama, Alamat, Telpon dan Tgl Lahir.
Dimana Nim merupakan PK (Primery Keys) dan Nama, Alamat, Telpon dan Tgl Lahir
merupakan atribut Deskriptif.

Relasi / Hubungan
Relasi menunjukkan adanya hubungan di antara sejumlah entiti yang berada dalam
sejumlah himpunan entiti yang berbeda. Misalkan himpunan entiti Mahasiswa berhubungan
dengan himpunan entiti Matakuliah.
Himpunan Relasi : kumpulan semua relasi diantara entiti – entiti yang terdapat pada
himpunan entiti – himpunan entiti tersebut. Istilah Himpunan relasi jarang digunakan, dan lebih
sering disingkat dengan Relasi saja.

Varian Relasi
Relasi berfungsi menghubungkan antar entiti. Entiti yang berelasi tidak hanya terdiri
dari dua relasi saja. Tetapi entiti bisa berelasi dengan dirinya sendiri atau berelasi lebih dari 2
entiti. Relasi ini dapat dikelompokkan menurut varian sebagai berikut :
  1. Relasi Unary
Relasi yang terjadi dari sebuah himpunan entiti ke himpunan entiti yang sama. Sering
disebut sebagai Relasi Tunggal. Misalkan relasi yang terjadi pada Pasien dan Syarat. Relasi
ini menunjukkan adanya persyaratan menjadi pasien rawat inap. Misalkan pasien hanya boleh
mengikuti rawat inap bila telah terdaftar menjadi pasien rawat jalan.
Gambar 8.5. Relasi Unary

      2.     Relasi Binary

Relasi yang terjadi dari dua himpunan entiti. Relasi ini kerap terjadi dan paling banyak
digunakan. Conto relasi biner adalah relasi antara Pasien dengan Obat.

      3.   Relasi Treenary

Relasi yang terjadi dari hubungan3 (tiga) buah entiti. Contoh relasi ini adalah
hubungan antara Pasien, Tindakan dan Dokter.
Gambar 8.7. Relasi Treenary


      4.    Relasi N-nary

Relasi yang menghubungkan lebih dari 3 (tiga) buah entiti, dimasukkan dalam relasi
multi entiti. Bentuk relasi semacam ini sedapat mungkin dihindari karena akan mengaburkan
derajat relasi yang ada dan juga akan menyebabkan desain databasenya semakin kompleks.


Kardinalitas Relasi Biner

Model relasi entiti didasarkan pada persepsi dunia nyata yang terdiri dari himpunan
obyek dasar yang disebut entiti dan relasi antar entiti. Entiti dapat diartikan suatu obyek yang
dapat diidentifikasi secara unik, obyek dapat berupa orang, benda, peristiwa dan lainnya.
Entiti dikarakteriasi dan direpresentasikan dengan suatu gugus atribut. Contoh atribut
dari Mahasiswa adalah : Nim, Nama, Alamat, Telpon, Tgl Lahir dan lainnya.
Sekelompok entiti yang mempunyai karakteristik entiti yang sama disebut Himpunan Entiti.
Contoh himpunan entiti adalah, himpunan entiti Kustomer, himpunan entiti Rekening,
himpunan entiti Bank, dan lainnya. Dari beberapa himpunan tadi mungkin terjadi relasi,
misalkan relasi Kustomer dengan Rekening ( Kustomer mempunyai rekening )
Khusus Relasi Biner, relasi antar anggota dari dua himpunan entiti yang terlibat dapat
bersifat :

Relasi 1-1 ( one to one relationship )

Setiap entiti dari suatu himpunan entiti tertentu diasosiasikan atau direlasikan dengan tepat
satu entiti dari himpunan yang lain.
R1 = Mempunyai
Gambar 8.8.

Relasi 1 – m ( one to many relationship )

Setiap entiti dari suatu himpunan entiti direlasikan dengan satu atau lebih entiti anggota
himpunan yang lain. Sebaliknya satu entiti himpunan yang lain direlasikan tepat dengan satu
entiti anggota himpunan pasangannya.
R1 = Mempunyai
Gambar 8.9. Relasi 1 – m

 
Relasi m - n ( many to many relationship )

Setiap entiti dari suatu himpunan entiti direlasikan dengan satu atau lebih entiti dari himpunan
yang lain dan berlaku pula sebaliknya.
R1 = Pinjam
Gambar 8.10. Relasi m – n

Sifat ketiga relasi tersebut disebut sebagai kardinalitas relasi biner. Alat bantu yang banyak
dipakai dalam mendiskripsikan pola hubungan (relasi) antar entiti adalah Entity Relationship
Diagram atau Diagram Relasi Entiti atau lebih sering disingkat dengan ERD.

Entity Relationship Diagram ( ERD )

ERD berisi komponen - komponen himpunan entiti dan himpunan relasi yang masing -
masing dilengkapi dengan atribut – atribut yang merepresentasikan seluruh fakta dari “ dunia
nyata “.
Nomor Simbol Nama Simbul
1. ENTITI
Digunakan untuk menggambarkan obyek yang
dapat diidentifikasi dalam lingkungan pemakai.
2. ATRIBUT
Untuk menggambarkan elemen – elemen dari
suatu entiti, yang menggambarkan karakter
entiti.
 3. HUBUNGAN
Menggambarkan relasi ( hubungan ) antar entiti
4. GARIS
Digunakan untuk menghubungkan entiti dengan
entiti, atau entiti dengan atribut.
Gambar 8.11. Notasi – notasi dalam ERD
Berikut ini dalah contoh penerapan model ER yang dapat ditaungkan kedalam Diagram – ER (
ERD ) :

Hubungan (relasi) antar tabel yang terjadi pada ERD tersebut diatas adalah sebagai berikut :
Relasi Dosen dengan Matakuliah adalah one to many, dengan pengertian bahwa
seorang dosen bisa mengajarkan satu atau lebih matakuliah.
Relasi Mahasiswa dengan Matakuliah adalah many to many, dengan pengertian bahwa
seorang mahasiswa bisa mempelajari satu atau lebih matakuliah, demikian juga untuk
sebaliknya, bahwa satu matakuliah bisa dipelajari oleh satu atau lebih mahasiswa.
Diagram – ER (ERD / entity relationship diagram) tersebut diatas dapat dituangkan kedalam
kamus data berikut ini :
Kamus Data :

Mahasiswa = { Nim, nama, alamat, telp, tglhir }
Matakuliah = { Kode, namamk, sks, smester }
Dosen = { NID, namads, alamatd, telpon }
Mempelajari = { Nim, Kode, nilai }
Mengajar = { NID, Kode, hari, waktu }

Gambar 8.13. Contoh ERD dengan kamus data
Primary key untuk masing – masing entiti tersebut diatas adalah sebagai berikut :
Entiti mahasiswa = nim, karena pasti unik, tidak mungkin nim : mhs0001 misalkan
dipakai oleh lebih dari 2 orang mahasiswa.
Entiti matakuliah = kode, karena pasti unik, tidak mungkin kode matakuliah : mk001
misalkan dipakai oleh lebih dari 2 matakuliah.
Entiti dosen = nid, karena pasti unik, tidak mungkin nid : ds0001 misalkan dipakai
oleh lebih dari 2 orang dosen.
Entiti mempelajari = nim dan kode ( dimana kedua atribut tersebut adalah sebagai
foreign key jadi dua atribut tersebut bisa dijadikan primary key pada entiti
mempelajari, karena tidak ada satu atribut yang menyatakan unik pada entiti tersebut.
Entiti mengajar = nid dan kode ( dimana kedua atribut tersebut adalah sebagai
foreign key jadi dua atribut tersebut bisa dijadikan primary key pada entiti mengajar,
karena tidak ada satu atribut yang menyatakan unik pada entiti tersebut.
Berikut ini adalah implementasi pembentukan ERD (entity relationship diagram)
tersebut dengan menggunakan software ERWIN (Entity relationship for windows) Erx.3.0
Gambar 8.14. Contoh ERD dengan ERWIN ERX.3.0