Sabtu, 15 November 2014

BAHASA QUERY FORMAL

Dalam pembahasan Bahasa Sistem Basis (Bahasa Query Formal) yang perlu diketahui yaitu dasar-dasarnya terlebih dahulu.
Aljabar Relational merupakan kumpulan operasi terhadap relasi, dimana setiap operasi menggunakan satu atau lebih relasi untuk menghasilkan satu relasi yang baru.
Berikut beberapa operator yang digunakan pada Bahasa Query Formal:
  1. Operator Himpunan
    - Union atau gabungan (disimbolkan dengan “u”)
    Union dari relasi A dan B dinyatakan sebagai A u B
    - Intersection atau Irisan (disimbolka dengan “n”)
    Misalkan intersection dari relasi A dan B dinyatakan sebagai A n B
    - Difference (disimbolkan dengan “-”)
    Misalkan difference dari relasi A dan B dinyatakan dengan A – B
    - Cartesian Product
    Produk cartesian dari relasi A dan B dinyatakan dengan A X B
  2. Operator Relasional
    - Restrict yaitu pemilihan tupel atau record
    - Project berfungsi dalam pemilihan attribute atau field
    - Divide berfungsi untuk membagi
    - Join berfungsi untuk menggabungkan
  3. Pada operator Operational aljabar relational dibagi menjadi 2 kelompok, diantaranya yaitu:
    - Operator dasar untuk fundamental operational
    - Operator tambahan untuk additional operasional
  4. Beberapa operator tambahan pada sistem Basis Data yaitu:
    - Set Intersection (n)
    yaitu operasi yang berfungsi untuk menghasilkan irisan dua tabel dengan domain atribut ke-i kedua tabel tersebut sama.
    - Theta Join
    yaitu operasi yang menggabungkan operasi cartesian product dengan operasi selection dengan suatu kriteria yang diinginkan.
    - Natural Join
    Operasi yang digunakan untuk menggabungkan operasi selection dan cartesian product dengan suatu kriteria pada kolom yang sama.
    - Division
    operasi untuk pembagian atas baris-baris dari 2 relasi.

sumber : http://okinable.wordpress.com/2012/11/17/bahasa-query-formal/

Rabu, 29 Oktober 2014

LOOP pada PL/SQL

Looping (pengulangan) adalah suatu blok yang memperbolehkan kita untuk mengulang statement-statement dalam sebuah blok PL/SQL. Statement-statement yang terdapat dalam sebuah blok looping akan terus dieksekusi selama kondisi yang didefinikan bernilai benar dan pengulangan akan berhenti jika kondisi bernilai salah.  Pada Oracle, terdapat tiga jenis looping, yaitu Basic Loop, FOR, dan WHILE

BASIC LOOPS

Basic Loop pada PL/SQL hampir sama logikanya dengan DO-WHILE pada Bahasa Prosedural yang lain, contonhnya pada bahasa C. Pada Basic Loop Minimal 1 kali Terjadi looping.
Syntax:
LOOP
statement1;
. . .
EXIT [WHEN condition];
END LOOP;
Contoh :
DECLARE
countryid locations.country_id%TYPE := 'CA';
loc_id locations.location_id%TYPE;
counter NUMBER(2) := 1;
new_city locations.city%TYPE := 'Montreal';
BEGIN
SELECT MAX(location_id) INTO loc_id FROM locations
WHERE country_id = countryid;

LOOP
INSERT INTO locations(location_id, city, country_id)
VALUES((loc_id + counter), new_city, countryid);
counter := counter + 1;
EXIT WHEN counter > 3;
END LOOP;
END;
/

FOR LOOPS

FOR pada PL/SQL logikanya sama dengan FOR pada Bahasa Prosedural yang lain, contonhnya pada bahasa C. Dan kita menggunakan FOR LOOP ketika kita sudah mengetahui batas angka perulangannya
Syntax:
FOR counter IN [REVERSE]
lower_bound..upper_bound LOOP
statement1;
statement2;
. . .
END LOOP;
Contoh :
DECLARE
countryid locations.country_id%TYPE := 'CA';
loc_id locations.location_id%TYPE;
new_city locations.city%TYPE := 'Montreal';
BEGIN
SELECT MAX(location_id) INTO loc_id
FROM locations
WHERE country_id = countryid;

FOR i IN 1..3 LOOP
INSERT INTO locations(location_id, city, country_id)
VALUES((loc_id + i), new_city, countryid );
END LOOP;
END;
/
Nb: bagi yang belum mengetahaui fungsi %TYPE silakan buka artikel Tipe Data Reference

WHILE LOOPS

Kita menggunakan WHILE LOOPS ketika kita ingin mengecek terlebih dahulu kondisi yang ada, baru kemudian lakukan looping sampai syaratnya tidak terpenuhi.
Syntax:
WHILE condition
statement1;
statement2;
. . .
END LOOP;
Contoh :
DECLARE
countryid locations.country_id%TYPE := 'CA';
loc_id locations.location_id%TYPE;
new_city locations.city%TYPE := 'Montreal';
counter NUMBER := 1;
BEGIN
SELECT MAX(location_id) INTO loc_id FROM locations
WHERE country_id = countryid;

WHILE counter <= 3 LOOP
INSERT INTO locations(location_id, city, country_id)
VALUES((loc_id + counter), new_city, countryid);
counter := counter + 1;
END LOOP;
END;
/

daftar pustaka : http://risnotes.com/2012/02/looping-di-plsql/

Sabtu, 27 September 2014

NORMALISASI


Dibawah ini adalah data pada tabel yang beum dinormalisasi.


untuk menjadi di normalisasi kan, terlebih dahulu pahami :
1   -   Seorang mahasiswa dapat mengambil banyak mata kuliah.
2   -   Satu mata kuliah dapat diambil oleh lebih dari banyak mahasiswa.
3   -   Satu mata kulah  hanya mampu dibantu oleh satu dosen.
4   -   Satu dosen dapat mengajar banyak mata kuliah.
5   -  Seorang mahasiswa pada mata kuliah tertentu hanya memiliki satu nilai.

Sebelum tahap normalisasi yang diberikan, terlebih dahulu data dinormalisasi tahap pertama.
Sekarang mengerjakan normalisasi tabel sesuai urutan diatas.
1    Maka hasil normalisasi menjadi seperti pada gambar dibawah : 



 selanjutnya :


selanjutnya : 



selanjutnya :

 



ddan akhirnya :


Rabu, 24 September 2014

CONTOH PENGGUNAAN BAHASA DDL DAN DML PADA BAHASA SQL


DDL
DDL= Definition Data Language
Digunakan untuk kepentingan penciptaan database, tabel, hingga penghapusan database atau tabel
Contoh:
• CREATE (untuk membentuk basis data, table atau index)
• DROP (untuk mengubah struktur table)
• ALTER (untuk menghapus basis data, table atau index)
Create table
CREATE TABLE NAMA_TABLE (
NAMA_ATRIBUT TIPE_DATA [KETERANGAN],
NAMA_ATRIBUT TIPE_DATA [KETERANGAN],

);
Alter tabel
ALTER TABEL NAMATABEL
MODIFY FILED TYPE PANJANGBARU;
Drop table
DROP TABLE NAMA_TABLE;
Drop database
DROP DATABASE NAMA_DATABASE;
DML
DML = Data Manipulation Language
Digunakan untuk memanipulasi data
Contoh:
• SELECT – mengambil data
• DELETE – menghapus data
• INSERT – menyisipkan data
• UPDATE – mengubah data
INSERT
INSERT INI nama_table (field1, field2,…) values
(nilai_field1,nilai_field2,…);
INSERT INTO nama_table values
(nilai_field1,nilai_field2,…);
SELECT
SELECT field1, field2,…FROM nama_table;
perintah diatas akan menampilkan semua data yang terdapat pada field yang ditentukan. untuk melihat semua data yang ada pada table, sintak penulisannya adalah:
SELECT * FROM nama_table;
UPDATE
UPDATE nama_table SET nama_field1=nilai_baru1, nama_field=nilai_field2,…. WHERE kriteria;
DELETE
DELETE FROM nama_table WHERE kriteria;
CONTOH PEMBUATAN DATABASE DENGAN MySQL
Persiapan Pemakaian MySQL
Lakukan instalasi MySQL terlebih dulu
MySQL memiliki sejumlah tool; salah satu di antaranya adalah:
• program mysql, yang dipakai untuk mengakses database dari sisi klien
• Program mysqladmin, untuk mengelola MySQL dari sisi administrator sistem
Masuk ke Direktori Program
Masuk ke prompt DOS
Ketik perintah:
cd c:\”Program Files”\MysQL\”MySQL Server 5.0”
Berikan perintah cd bin
Masuk ke prompt DOS
Berikan perintah:
mysql –uroot –p
Ketikkan password dan tekan Enter
C:\Program Files\MySQL\MySQL Server 5.0\bin>mysql -uroot -prahasia
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8 to server version: 5.0.15-nt
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
mysql>
Pembuatan Database dan Tabel
Tabel: Pekerjaan
Field:
- NIP
- Tgl_Masuk
- Kode_Bag
- Gaji
Tabel: Pribadi
Field:
- NIP
- Nama
- Tgl_Lahir
- Sex
- Alamat
- Kota
Tabel: Bagian
Field:
- Kode_Bag
- Nama_Bag
Membuat Tabel Pribadi
Berikan perintah:
CREATE TABLE Pribadi (
Nip CHAR(5) NOT NULL PRIMARY KEY,
Nama VARCHAR(35) NOT NULL,
Tgl_lahir DATE,
Sex ENUM(‘P’,’W’),
Alamat VARCHAR(35),
Kota VARCHAR(15));
Melihat Struktur Tabel
Gunakan perintah:
DESC nama_tabel
Contoh:
DESC Pribadi;
+———–+—————+——+—–+———+——-+
| Field | Type | Null | Key | Default | Extra |
+———–+—————+——+—–+———+——-+
| Nip | char(5) | NO | PRI | | |
| Nama | varchar(35) | NO | | | |
| Tgl_lahir | date | YES | | NULL |
| Sex | enum(‘P’,’W’) | YES | | NULL |
| Alamat | varchar(35) | YES | | NULL |
| kota | varchar(20) | YES | | NULL |
+———–+—————+——+—–+———+——-+
6 rows in set (0.16 sec)
Mengganti Nama Field
Perintah yang digunakan adalah ALTER TABLE
Contoh:
ALTER TABLE Pribadi
CHANGE sex kelamin ENUM(‘P’,’W’);
Cek struktur tabel setelah Anda melakukan perintah di atas
Mengganti Ukuran/Tipe Field
Perintah yang digunakan adalah ALTER TABLE
Contoh:
ALTER TABLE Pribadi
CHANGE kota kota VARCHAR(20);
Cek struktur tabel setelah Anda melakukan perintah di atas
Menambahkan DEFAULT
DEFAULT pada struktur tabel digunakan untuk memberikan nilai bawaan pada suatu field kalau nilai bersangkutan tidak dimasukkan
Contoh:
ALTER TABLE Pribadi CHANGE kelamin kelamin ENUM(‘P’,’W’) DEFAULT ‘P';
Menambahkan DEFAULT
(Lanjutan…)
Sekarang cobalah berikan perintah:
INSERT INTO Pribadi(Nip, Nama)
VALUES (‘12370’, ‘Fahmi Idris’);
PERHATIKAN, apa isi field Kelamin untuk NIP 12370’?
Pengubahan Data
Perintah yang digunakan adalah UPDATE
Bentuk dasar:
UPDATE nama_tabel SET nama_field = nilai, nama_field = nilai, … WHERE nama_field = nilai
Contoh mengubah Udin menjadi Udinsah:
UPDATE Pribadi SET Nama= ‘Udinsah’
WHERE NIP = ‘12346’;
Ujilah dengan SELECT untuk melihat hasil perubahan
Penghapusan Data
Perintah DELETE
Bentuk dasar:
DELETE FROM nama_tabel WHERE nama_field = nilai
Contoh:
DELETE FROM Pribadi
WHERE Nip = ‘12355’;
Ujilah dengan SELECT untuk melihat efek perintah di atas
Penghapusan Tabel
Gunakan DROP TABLE
Untuk mempraktekkan, buatlah sebuah table bernama RIWAYAT, dengan isi berupa sebuah field (misalnya Nip bertipe CHAR(5))
Kemudian, lihatlah daftar tabel dengan memberikan perintah:
SHOW TABLES;

sumber : http://sleepingforest13.wordpress.com/contoh-penggunaan-bahasa-ddl-dan-dml-pada-bahasa-sql/

Sabtu, 20 September 2014

INSERT, UPDATE DAN DELETE PADA SQL

Operasi standar sebuah database adalah insert, delete dan update. Ketiganya biasa disebut DML kependekan dari Data Manipulation Language. SQL merupakan bahasa standar untuk pengolahan database. Tentunya Oracle-pun menggunakan SQL, hanya saja ada beberapa karakteristik yang berbeda dengan SQL standar.

Setelah kita membahas Persiapan “Coba-coba” Oracle, maka kita memiliki user tersendiri yaitu user yang bernama TEST. Silahkan Anda masuk ke page Oracle XE atau masuk ke SQL+ (jika Anda menginstall versi oracle lain, misal : 8i, 9i, 10g, dan anda juga harus memasukkan nilai hostring/tnsnames database Anda) dan login dengan user tersebut, yaitu :
User TEST
Password test

INSERT

Insert digunakan untuk memasukkan data ke sebuah tabel dalam user (schema) tertentu. Syntax Insert dapat dituliskan sebagai berikut :
INSERT INTO [nama_user].[nama_table] 
([nama_kolom1], [nama_kolom2], . . .)
VALUES
([nilai1], [nilai2], . . .);

Keterangan :
nama_user : Nama user atau nama schema ketika login
nama_tabel : Nama tabel yang terdapat pada user (schema) tersebut
nama_kolom : Nama kolom yang akan diisi data pada [nama_tabel]
nilai : Nilai yang akan diisikan pada [nama_kolom], mis : [nilai1] akan diisikan ke dalam [nama_kolom1], [nilai2] akan diisikan ke dalam [nama_kolom2]

UPDATE

Update digunakan untuk mengubah data pada sebuah tabel dalam user (schema) tertentu berdasarkan kondisi tertentu. Syntax Update dapat dituliskan sebagai berikut :
UPDATE [nama_user].[nama_table]SET 
[nama_kolom1] = [nilai1],
[nama_kolom2] = [nilai2],
[nama_kolom3] = [nilai3],
. . .
WHERE
[kondisi_update];

Keterangan :
nama_user : Nama user atau nama schema ketika login
nama_tabel : Nama tabel yang terdapat pada user (schema) tersebut
nama_kolom : Nama kolom yang akan diisi data pada [nama_tabel]
nilai : Nilai yang akan diisikan pada [nama_kolom]
kondisi_update : Sebuah kondisi yang yang menyaring (filter) record-record mana saja yang akan di update

DELETE

Delete digunakan untuk menghapus data pada sebuah tabel dalam user (schema) tertentu berdasarkan kondisi tertentu. Syntax Delete dapat dituliskan sebagai berikut :
DELETE [nama_user].[nama_table]WHERE 
[kondisi_delete];

Keterangan :
nama_user : Nama user atau nama schema ketika login
nama_tabel : Nama tabel yang terdapat pada user (schema) tersebut
kondisi_delete : Sebuah kondisi yang yang menyaring (filter) record-record mana saja yang akan di delete
Sebelum membaca contoh di bawah ini, ada baiknya anda membaca terlebih dahulu artikel Create Table Sistem Belajar-Mengajar – (Analisa & Desain). Artikel tersebut akan membantu anda untuk memahami contoh-contoh yang diberikan, karena tabel-tabel yang digunakan adalah berdasarkan studi kasus tersebut.
Insert :

INSERT INTO
TEST.MURID (
NIS,
NAMA,
TGL_LAHIR,
JENIS_KELAMIN,
ALAMAT,
ORTU)
VALUES (
‘000001’,
‘MUKHTARUL UMAM’,
TO_DATE(’23-04-1993′,‘DD-MM-YYYY’),
‘L’,
‘JL. P. DIPENOGORO, TEGAL’,
‘SULAIMAN’);

Update :

UPDATE
TEST.MURID SET
NAMA = ‘MUKHTARUL UMAM SHOLEH’,
TGL_LAHIR = TO_DATE(’25-04-1993′,‘DD-MM-YYYY’)
WHERE
NIS = ‘000001’;
Delete :

DELETE
TEST.MURID
WHERE
NIS = ‘000001’;
NB :
  • Jika ingin perubahan disimpan oleh database maka akhiri setiap syntax DML dengan eksekusi COMMIT;
  • Jika perubahan tidak ingin disimpan alias ingin dikembalikan seperti semula maka akhiri dengan eksekusi ROLLBACK;
  • Setiap syntax DML yang telah di COMMIT maka tidak dapat di ROLLBACK.


    sumber : http://oracle1st.wordpress.com/2009/06/05/insert-update-delete-oracle/

Rabu, 17 September 2014

DDL dan DML

Semua perintah SQL dibagi dalam 2 kategori besar sesuai fungsinya, yaitu :
  • DDL - Data Definition Language
    merupakan kumpulan perintah SQL yang digunakan untuk membuat, mengubah dan menghapus struktur dan definisi metadata dari objek-objek database.

  • DML - Data Manipulation Language
    merupakan kumpulan perintah SQL yang digunakan untuk proses pengolahan isi data di dalam table seperti memasukkan, merubah dan menghapus isi data - dan tidak terkait dengan perubahan struktur dan definisi tipe data dari objek database.

Mari kita lihat dari definisi dan contoh lebih lanjut pada bagian berikut di bawah ini.

DDL - Data Definition Language

Seperti definisi yang telah dijelaskan di atas, DDL adalah kumpulan perintah SQL yang digunakan untuk membuat (create), mengubah (alter) dan menghapus (drop) struktur dan definisi tipe data dari objek-objek database.

Objek-objek database pada yang dimaksud - pada MySQL - adalah sebagai berikut :
  • Database
  • Table
  • View
  • Index
  • Procedure (Stored Procedure)
  • Function
  • Trigger
Contoh :

-- Perintah berikut akan membuat table pada database kita dengan nama "ms_karyawan"
CREATE
 TABLE ms_karyawan (
  kode_cabang varchar(10) default NULL,
  kode_karyawan varchar(10) NOT NULL,
  nama_depan varchar(8) default NULL,
  nama_belakang varchar(9) default NULL,
  jenis_kelamin varchar(1) default NULL,
  PRIMARY KEY  (kode_karyawan)
)

Daftar Perintah DDL pada MySQL 5.0 

Berikut adalah contoh perintah DDL yang digunakan pada MySQL. Klik pada link untuk melihat rincian penggunaan dari perintah tersebut.
  • Pembuatan (CREATE)
  • 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

Tabel Matrix Perintah DDL MySQL 5.0

 OBJECT CREATE  ALTER  DROP RENAME 
 DATABASE  Yes Yes
 Yes  
 FUNCTION  Yes Yes  Yes  
 INDEX  Yes    Yes  
 PROCEDURE  Yes Yes  Yes  
 TABLE  Yes Yes  Yes  Yes
 TRIGGER  Yes    Yes  
 VIEW  Yes Yes  Yes  


DML - Data Manipulation Language

DML sendiri adalah kumpulan perintah SQL yang berhubungan dengan pekerjaan mengolah data di dalam table - dan tidak terkait dengan perubahan struktur dan definisi tipe data dari objek database seperti table, column, dan sebagainya.

Contoh DML : Mengambil Seluruh Row Data dari table MS_KARYAWAN

SELECT 
FROM ms_karyawan


Contoh DML : Memasukkan data ke dalam tabel ms_karyawan

INSERT INTO ms_karyawan(
                kode_cabang,
                kode_karyawan,
                nama_depan,
                nama_belakang,
                jenis_kelamin)
VALUES ('cab-001','kar-001','Feris','Thia','Laki-laki');

Beberapa daftar Perintah DML MySQL 5.0

  • CALL
  • DELETE
  • DO
  • HANDLER
  • INSERT
  • LOAD DATA INFILE
  • REPLACE
  • SELECT
  • TRUNCATE
  • UPDATE


    sumber : http://mysql.phi-integration.com/sql/apa-itu-dml-ddl

Jumat, 12 September 2014

RELATIONSHIP ER


ENTITAS
Macam-macam entitas :
1. Entitas Kuat dan Entitas Lemah
Entitas kuat (Strong Entity) adalah entitas yang berdiri sendiri, yang keberadaannya tidak bergantung kepada keberadaan entitas yang lainnya. Instansiasi entitas kuat selalu memiliki karakteristik yang unik atau lebih tepat atribut pengidentifikasi yaitu sebuah atribut tunggal atau gabungan atribut-atribut yang secara unik dapat digunakan untuk membedakannya dari entitas kuat yang lain. Secara berlawanan, dapat didefinisikan bahwa entitas lemah (weak entity) adalah entitas yang keberadaannya sangat bergantung pada keberadaan entitas yang lainnya. Entitas lemah tidak memiliki arti apa-apa dan tidak dikehendaki kehadirannya dalam ERD tanpa kehadiran entitas dimana mereka bergantung. Entitas dimana entitas lemah bergantung dinamakan identifying owner (atau lebih sering dinamakan owner/pemilik). Entitas lemah tidak memiliki identifiernya sendiri.

                2. Entitas Asosiatif
Dalam beberapa kasus, suatu entitas mungkin terbentuk dari suatu relasi. Jika ini terjadi, entitas yang dihasilkan dinamakan dengan entitas asosiatif. Entitas ini hanya terbentuk oleh relasi tertentu, ia tidak dapat berdiri sendiri secara mandiri.

 ATRIBUT
Macam-macam atribut :
  1. Atribut Komposit
Beberapa atribut dapat dipecah (didekomposisi) menjadi beberapa komponen. Suatu contoh yang paling umum adalah atribut Alamat. Atribut Alamat ini dapat dipecah menjadi atribut-atribut jalan, kota serta kode pos. Atribut komposit adalah atribut yang dapat dipecah menjadi atribut-atribut yang lainnya.

       2. Atribut Bernilai Banyak (Multi Value)
Pada umumnya setiap atribut adalah bernilai tunggal, tetapi ada kasus-kasus tertentu dimana suatu atribut memiliki nilai lebih dari satu untuk suatu entitas tertentu. Dalam hal yang terakhir ini, atribut yang bersangkutan dinamakan atribut bernilai banyak (multi value attribute).

     3. Atribut Turunan
Atribut turunan adalah atribut tambahan yang mungkin akan mempercepat proses perhitungan saat digunakan secara intensif dalam aplikasi-aplikasi tertentu, meski kelihatannya merupakan pemborosan ruang penyimpanan.

Multiplicity
jumlah suatu objek yg mungkin diasosiasikan dgn objek entitas yg lain. yang menentukan multiplicity bukan desainer database tapi penentu kebijakan organisasi  atau user. multiplicity terdiri dari 2 jenis: 
1. Batasan kardinalitas /nilai maksimal multiplicity   yaitu  one (satu) atau many (banyak)
2. Batasan partisipasi / nilai minimal multiplicity ()  yaitu mandatory(satu)  atau optional (nol)

               Agregasi
           Agregasi merupakan proses menghubung-hubungkan sebuah kumpulan relasi dengan suatu kumpulan entitas. Caranya yaitu dengan membuat sebuah relasi baru. Relasi inilah yang nantinya akan secara langsung menghubungkan kumpulan relasi dan kumpulan entitas.Hal ini sangat bisa dilakukan karena pada dasarnya relasi dapat terbentuk karena relasi tersebut mengandung unsur dari relasi lain. Oleh karena itulah, dalam membuat relasi baru, relasi tersebut ada dikarenakan relasi lain yang sudah ada lebih dulu.

http://dbsys.files.wordpress.com/2012/11/1.jpg




KONSEP  MODEL  ER

              Model ER adalah kumpulan konsep dari entitas, atribut, relationship serta constrain lainnya yg menggambarkan struktur basis data dan transaksi pada basis data.




NOTASI-NOTASI  ER (Entity Relationship)
http://kingrio.files.wordpress.com/2011/03/notasi-er.jpg

KONSEP  EER
Enhanced Entity Relationship (EER) =
Entiy Relationship (ER)
+
Generalization, Spesialization, Categorization


SUPERCLASS  &  SUBCLASS
Misalnya seorang karyawan akan dikategorikan  menjadi 4 kelompok :

http://kingrio.files.wordpress.com/2011/03/class.jpg
·         Subclass merepresentasikan entity yang sama dengan superclass, namun memiliki peran spesifik tertentu.
·         Entity dalam subclass merupakan anggota superclass, namun tidak sebaliknya.

Relationship  Superclass  dan  Subclass
Superclass/Subclass Relationship adalah relationship antara sebuah superclass dengan salah satu subclassnya.
Contoh:
Karyawan / DBA, Karyawan / System Analyst
Disebut juga dengan IS-A relationship :
·         DBA IS AN Karyawan
·         System Analyst IS AN Karyawan

Disjoint Constraint
       Constraint yang menerangkan bahwa subclass-subclass dari spesialisasi saling disjoint, artinya entity merupakan anggota dari salah satu subclass.
         Disjoint Constraint direpresentasikan dengan lambang “d” yang berarti disjoint.
    Contoh : entity dari spesialisasi tipe pekerjaan dari PEGAWAI merupakan anggota dari subclass PEGAWAI TETAP atau PEGAWAI HONORER


https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1diHQs_HvlRFByKqoT2y2h5JWSVHMXI7NcHPPdv1spccXTrO0Dy7EwSyB0yhUMI3R2DIsa4mXvh58IRotZ5Rb-mgFEu7tf5atxzsD6JHTMTsthWJ5lHkgOQkclVY8dUKTwqE2JACSm43A/s1600/gam2SBD.png

Non Disjoint Constraint
         Constraint yang menerangkan bahwa subclass-subclass dari spesialisasi tidak saling disjoint, artinya entity mungkin anggota lebih dari satu subclass.
         Non-Disjoint digambarkan dengan lambang “o” yang berarti overlapping.
    Contoh : entity dari spesialisasi tipe barang merupakan anggota dari subclass BARANG PABRIK juga anggota dari subclass BARANG TERJUAL


https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidjaaSnECZeMwc0PzUDCmC89UlyAScMlpqO1aOZOZ9HUOUQaKYHzrbPo0cw5SZZq0hGRgjbJFbqrfr-YWFaennLNA5fq8qCSTGTQ_d-hFc92v6T-kFU_1oKOudbpbQaZ7udw5_KT7op8YB/s1600/gmbr4SBD.png
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJ0KaLoRvqw4uaRPTtu4XJHBAPB9ONpsQp_IuT1CjGold4QqkRvnLy7hCQs7liN3TajeMLp2P6RzB84SNR7ra5Zw4vFSTwg73Gac2BiFCpAlQhhyiC1wGG-L6KRKZ6vva5VDanvgG0wKUx/s1600/Gmb3SBD.png


Total Specialization Constraint
         Constraint yang menerangkan bahwa setiap entity didalam superclass harus merupakan anggota dari salah satu subclass.
         Contoh : enityty PEGAWAI harus termasuk subclass dari PEGAWAI TETAP atau PEGAWAI HONORER.
Partial Specialization Constraint
     Constraint yang menerangkan bahwa setiap entity didalam superclass dapat merupakan anggota dari subclass-subclass yang didefinisikan.
         Contoh dari PEGAWAI dapat merupakan anggota dari subclass MANAGER, TEKNISI atau SALES.

SPECIALIZATION
Spesialisasi adalah proses mendefinisikan himpunan subclas-subclass dari sebuah entity type (Superclass).
·         Dilakukan berdasarkan karakteristik tertentu yang dapat membedakan entity pada Superclass.
·         Suatu Superclass dapat memiliki beberapa spesialisasi berdasarkan karakteristik yang berbeda.
Contoh:
·         DBA, Programmer, System Analyst adalah spesialisasi dari KARYAWAN berdasarkan jenis pekerjaannya.Karyawan_tetap dan  Karyawan_kontrak adalah spesialisasi dari  KARYAWAN berdasarkan status karyawan.
http://kingrio.files.wordpress.com/2011/03/relationship.jpg

http://kingrio.files.wordpress.com/2011/03/specialization.jpg






GENERALIZATION
Generalisasi    Proses  pendefinisian  subclass-subclass yang  disatukan  menjadi entitas  superclass  tunggal  berdasarkan karakteristik umum. Contoh :  Subclass  Mobil dan Truk dapat digeneralisasikan menjadi Superclass KENDARAAN berdasarkan atribut umum seperti Kd_Kend, Harga, No_Lisensi.
http://kingrio.files.wordpress.com/2011/03/generalization.jpg


CATEGORIZATION
Kategorisasi à Proses pendefinisian suatu subclass ( disebut kategori) yang memiliki lebih dari satu superclass yang berbeda.
Contoh :
·         Kategori PEMILIK yang merupakan Subclass dari gabungan Orang, Bank dan Perusahaan.
·         Kategori KENDARAAN-TERDAFTAR yang merupakan Subclass dari gabungan Mobil dan Truk.

 http://kingrio.files.wordpress.com/2011/03/categorization.jpg
CONTOH  DIAGRAM  EER :

http://kingrio.files.wordpress.com/2011/03/eer.jpg

sumber : http://kasmaran83.wordpress.com/2012/05/06/entity-relationship-diagram-erd/
                http://kingrio.wordpress.com/2011/03/16/er-dan-eer/
                http://pccontrol.wordpress.com/2014/02/14/pengetahuan-dasar-er-diagram-
                          diagram-    relasi-entitas/ 
                http://reinymarintan.blogspot.com/2014_04_01_archive.html 
                http://dbsys.wordpress.com/category/uncategorized/