• Tidak ada hasil yang ditemukan

Enhanced Entity Relationship (Eer) Dan Serializability

N/A
N/A
Protected

Academic year: 2021

Membagikan "Enhanced Entity Relationship (Eer) Dan Serializability"

Copied!
8
0
0

Teks penuh

(1)

A. ENHANCED ENTITY RELATIONSHIP (EER) DIAGRAM

(EER) enhance entity relationship merupakan Model Entity Relationship yang didukung dengan konsep semantik tambahan. Dimana konsep semantik terdiri dari subclass dan

superclass, dan konsep-konsep yang berhubungan yaitu specialization dan generalization.

Konsep lainnya yang termasuk dalam model EER yaitu Category.

1. Subclass dan Superclass

Subclass adalah Subset dari suatu entitas yang dikelompokkan dalam pengertian tertentu yang perlu disajikan secara eksplisit. Sedangkan Superclass adalah Entitas yang merupakan induk dari subclass-subclassnya.

Contoh :

Entitas-entitas yang merupakan anggota dari entitas Pegawai dikelompokkan menjadi

Sekertaris,Teknisi, Ahli, dll. Himpunan entitas pada tiap-tiap group adalah subset entitas dari

entitas Pegawai, yang berarti bahwa setiap entitas yang merupakan anggota dari salah satu

subgroup-subgroup ini adalah suatu Pegawai juga. Tiap-tiap subgroup tadi adalah suatu subclass dari entity Pegawai, dan entity Pegawai disebut superclass untuk tiap-tiap subclass

tsb.

Hubungan antara superclass dan beberapa subclass-nya disebut superclass/subclass

relationship.

Contoh :

Pegawai/Sekertaris dan Pegawai/Teknisi adalah dua superclass/subclass relationships.

Sebuah entitas tidak dapat berada dalam basis data dengan menjadi anggota suatu subclass saja, tetapi entitas tsb juga harus merupakan anggota dari superclass.

2. Spesialisasi (Spesialization)

Specialization adalah proses pendefinisian atau pemechaan suatu himpunan subclass dari

suatu entitas; entitas ini disebut superclass dari specialization. Himpunan subclass tsb membentuk specialization yang telah didefinisikan berdasarkan beberapa sifat/karakteristik yang istimewa dari suatu entitas pada suatu superclass yang menggambarkan perbedaan yang jelas antara entitas tsb. Terdapat beberapa jenis spesialisasi seperti Disjoint Total, Disjoint Partial, Overlapping Total dan Overlapping Partial

Contoh :

himpunan subclass {SECRETARY, ENGINEER, TECHNICIAN} adalah specialization dari

superclass entitas EMPLOYEE dimana perbedaan antara entitas EMPLOYEE berdasarkan

pada jenis pekerjaan dari tiap-tiap entitas.

Contoh specialization dari jenis entitas yang sama berdasarkan perbedaan karakteristik yang istimewa.

Contoh :

specialization dari entitas EMPLOYEE dapat menghasilkan himpunan subclass

{SALARIED_EMPLOYEE, HOURLY_EMPLOYEE}, pada specialization ini perbedaan entitas EMPLOYEE berdasarkan metode pembayarannya.

(2)

3. Generalization

Generalization adalah proses pendefinisian entitas-entitas yang disatukan menjadi entitas superclass tunggal dari entitas aslinya yang merupakan subclass istimewa. Proses generalization dapat dipandang sebagai kebalikan dari proses specialization.

Contoh : gambar 1a dan gambar 1b.

Kita dapat memandang {CAR, TRUCK} sebagai specialization dari VEHICLE, sebaliknya kita memandang VEHICLE sebagai suatu generalization dari CAR dan TRUCK.

Dengan cara yang sama, kita dapat memandang EMPLOYEE sebagai generalization dari

SECRETARY, TECHNICIAN, dan ENGINEER.

Gambar 1a Gambar 1b No of passangers Max speed Vehicleid Price License Plate No CAR Price No Of Axles T onnage T RUCK Vehicleid License Plate No VEHICLE Price License Plate No Vehicleid d T RUCK CAR No Of Axles T onnage No of passangers Max speed ALAMAT

NOPEG NAMA TGL_LAHIR

PEGAWAI

d

TEKNISI

SEKRETARIS SALES

AREA

(3)

Category adalah kebutuhan yang timbul untuk model suatu relationship superclass/subclass tunggal dengan lebih dari satu superclass dimana superclassuperclass tsb menggambarkan jenis entity yang berbeda.

Contoh : Gambar 2

Terdapat 3 jenis entitas yaitu : PERSON, BANK, dan COMPANY. Dalam suatu database REGISTERED_VEHICLE, pemilik kendaraan (OWNER) bisa saja perorangan, bank, atau perusahaan. Kita perlu membuat suatu class yang terdiri dari 3 jenis entitas untuk memainkan perannya sebagai pemilik kendaraan. Maka dibuat suatu category OWNER yaitu sebuah subclass dari gabungan (UNION) 3 class yaitu COMPANY, BANK, dan PERSON untuk kepentingan ini.

Gambar 2. Category REGISTERED_VEHICLE BName BAddress

BANK

Address SName

SSN

Driver License No PERSON COMPANY CName CAddress U OWNER OWNS Lien or Regular Purchase Date License Plate No REGIST ERED_VEHICLE U Cmodel Cmake Cstyle CAR Vehicleid T Make T Year T Year T Model T onnage Vehicleid T RUCK

(4)

Pada gambar di atas, terdapat 2 category yaitu OWNER yang merupakan sebuah subclass dari gabungan PERSON, BANK, dan COMPANY, yang lainnya yaitu REGISTERED_VEHICLE yang merupakan subclass dari gabungan CAR dan TRUCK.

Sebuah category dapat mempunyai 2 atau lebih superclass yang menggambarkan jenis-jenis entitas yang berbeda, sebaliknya relationship superclass/subclass lainnya selalu memiliki

superclass tunggal.

Suatu category adalah subset dari gabungan superclass-nya. Oleh sebab itu suatu entitas yang merupakan anggota OWNER harus berisikan sedikitnya 1 superclass, tetapi tidak harus menjadi anggota dari seluruh superclass. Hal ini menggambarkan batasan bahwa seorang

OWNER mungkin saja suatu COMPANY, sebuah BANK, atau perorangan (PERSON).

Perbedaan antara dua gambar di atas (generalize superclass VEHICLE dengan category

REGISTERED_VEHICLE) :

Pada generalize superclass VEHICLE : - Setiap mobil dan truk adalah vehicle

- Jika dipisahkan, tidak dapat dihindari bahwa akan terdapat jenis entitas lain seperti entitas

BICYCLE

Pada category REGISTERES_VEHICLE

- Terdiri dari beberapa mobil dan beberapa truk, tetapi tidak seluruh mobil dan truk yang diregistrasikan

- Category registered_vehicle menyatakan hanya mobil dan truk saja, dan bukan jenis entitas lain yang dapat menjadi anggota REGISTERED_VEHICLE

(5)

Serializability adalah pengontrolan secara konkurensi kepada kebenaran dari kriteria yang membutuhkan eksekusi konkuren dari transaksi harus ekuivalen terhadap efek dari eksekusi serial transaksi tersebut.

Tujuan dari protokol kontrol concurrency adalah menjadwalkan transaksi dengan suatu cara untuk menghindari saling mempengaruhi/mengganggu satu dengan yang lain. Hal yang paling umum dilakukan adalah menjalankan satu transaksi dalam satu waktu, tetapi tujuan dari multi user DBMS adalah memaksimalkan tingkat concurrency atau parallelism dalam sistem, sehingga traksaksi-transaksi dapat dieksekusi secara parallel tanpa mengganggu transaksi lainnya. Serializability mengidentifikasi eksekusi-eksekusi dari transaksi dijamin untuk kepastian konsistensi.

Penjadwalan (Schedule) adalah Serangkaian operasi dari sekumpulan transaksi konkuren yang menjaga perintah dari operasi-operasi dalam setiap transaksi individual.

Serial Schedule adalah penjadwalan yang dilakukan dimana operasi-operasi disetiap transaksi

dieksekusi secara berurutan tanpa terjadi penyelakan operasi dari transaksi lainnya. Dalam eksekusi serial tidak akan ada interferensi antar transaksi, tetapi tidak menjamin hasil dari keseluruh eksekusi serial dari himpunan transaksi akan sama/identik.

Nonserial Schedule adalah penjadwalan yang dilakukan dimana operasi-operasi dari

sekumpulan transaksi konkuren saling berselakan (interleaved).

Tujuan dari serializability adalah menemukan nonserial schedule yang memungkinkan transaksi untuk mengeksekusi secara konkuren tanpa mengganggu/interferen yang lainnya dan menghasilkan state database yang dapat dihasilkan oleh eksekusi serial. Dengan kata lain, jika terdapat nonserial schedule yang ekuivalen dengan beberapa serial schedule disebut dengan

serializability.

Dalam serializability, perintah operasi pembacaan/penulisan sangat penting :

 Jika terdapat dua transaksi hanya membaca data item, maka tidak akan terjadi konflik dan perintah tidak diperlukan.

 Jika terdapat dua transaksi yang membaca atau menulis data item yang terpisah, maka tidak akan terjadi konfilk dan perintah tidak diperlukan.

 Jika satu transaksi menuliskan data item dan transaksi lainnya membaca atau menulis data item yang sama, maka perintah eksekusi diperlukan.

(6)

Contoh konflik dalam Serializability

a) nonserial schedule S1

b) nonserial schedule S2, ekuvalen dengan S1 c) serial schedule S3, ekuivalen dengan S1dan S2

Schedule S3 merupakan serial schedule dan ketika S1 dan S2 ekuivalen dengan S3, maka S1 dan S2 merupakan serializability schedule. Jenis serializability yang seperti ini dikenal sebagai

conflict serializability, yaitu memerintahkan operasi yang saling bertentangan dengan suatu cara

sama seperti eksekusi serial.

Dengan constrained write rule (transaksi yang mengubah data item berdasarkan pada nilai awal, yang pertama kali dibaca), menggunakan precedence (or serializability) graph untuk memeriksa

serializability. Precedence Graph merupakan directed graph G = (N,E) yang berisi dari

himpunan node N dan edge E, sbb :

 Buat node untuk setiap transaksi

 Buat edge penghubung Ti -> Tj, jika Tj membaca nilai dari item yang ditulis oleh Ti

 Buat edge penghubung Ti -> Tj, jika Tj menuliskan nilai ke item setelah dibaca oleh Ti

 Buat edge penghubung Ti -> Tj, jika Tj menuliskan nilai ke item setelah ditulis oleh Ti Jika edge Ti -> Tj terdapat dalam precedence graph untuk S, kemudian terdapat serial schedule S’ yang ekuivalen dengan S, maka Ti harus ditampilkan sebelum Tj. Jika precedence graph mengandung siklus schedule maka tidak akan terjadi conflict serializability.

(7)

 T9 memindahkan £100 dari variabel balx ke variabel baly.

 T10 mengurangi kedua variabel tersebut sebesar 10%.

 Precedence grah untuk schedule ini memiliki siklus, sehingga bukan merupakan conflict serializability.

View Serializability

Terdapat beberapa jenis serializability yang menawarkan definisi yang tidak terlalu kaku (less stringent definition) dari schedule ekuivalen dari pada conflict serializability. Definisi yang lebih sedikit batasannya disebut dengan view schedule. Dua schedules S1 dan S2 disebut view equivalent jika :

 Untuk setiap data item x, jika Ti membaca nilai awal dari x dalam S1, Ti juga harus membaca nilai awal dari x dalam S2.

 Untuk setiap pembacaan atas x oleh Ti dalam S1, jika nilai dibaca oleh x dituliskan oleh Tj, Ti juga harus membaca nilai dari x yang dihasilkan oleh Tj dalam S2.

 Untuk setiap data item x, jika penulisan terskhir dari x ditampilkan oleh Ti dalam S1, beberapa transaksi harus menampilkan penulisan akhir dari x dalam S2.

Schedule dikatakan view serializable jika view tersebut ekuivalen dengan serial schedule. setiap conflict serializable schedule merupakan view serializable, walaupun kebalikannya tidak benar. Dapat menampilkan bahwa view serializable schedule yang tidak conflict serializable terdiri dari satu atau lebih blind writes.

(8)

Contoh - View Serializable schedule

Recoverability

Serializability mengidentifikasikan schedule yang memelihara konsistensi database, diasumsikan tidak ada transaksi yang gagal. Juga memeriksa recoverability dari transaksi dalan schedule. Jika transaksi gagal, atomicity membutuhkan akibat dari transaksi yang harus diselesaikan.

Durability state ketika transaksi commit, perubahannya tidak dapat diselesaikan (tanpa menjalankan yang lain, penggantian, transaksi).

Recoverable Schedule merupakan schedule yang setiap pasang dari transaksi Ti dan Tj, jika Tj membaca sebuah data item sebelum dituliskan oleh Ti, maka operasi commit dari Ti mendahului operasi commit dari Tj.

Gambar

Gambar 1a  Gambar 1b No  of  passangersMax  speedVehicleidPriceLicense  Plate  NoCAR Price No  Of  Axles T onnage        T RUCK VehicleidLicense  Plate  NoVEHICLEPriceLicense  Plate  NoVehicleidd        T RUCKCARNo  Of  AxlesT onnageNo  of  passangersMax
Gambar 2. Category REGISTERED_VEHICLE

Referensi

Dokumen terkait

Satu elemen di entitas (A) berasosiasi dengan nol, satu atau lebih elemen yang ada di entitas (B), tetapi untuk satu elemen di entitas (B) hanya berelasi dengan satu elemen di

Model E-R menggambarkan data yang terlibat dalam organisasi, hubungan objek serta dapat digunakan untuk mengembangkan desain awal database.. Model ER sangat penting terutama

Software Development Kit (SDK atau devkit) adalah sekumpulan alat pengembangan yang memungkinkan untuk menciptakan sebuah aplikasi untuk paket perangkat lunak tertentu ( software

Tujuan ; penekanan pada pengujian keabsahan transaksi yang dicatat sebagai cara untuk menemukan pengalihan kas dari penerimaan penagihan piutang yang telah diterima

Tujuan dari penelitian ini adalah untuk menemukan bukti empiris pengaruh struktur modal, struktur kepemilikan, profitabilitas,terhadap pengungkapan transaksi pihak

API adalah sekumpulan perintah, fungsi, dan protokol yang dapat digunakan saat membangun perangkat lunak untuk sistem operasi tertentu. API memungkinkan programmer untuk

Dengan demikian proses untuk menemukan hubungan antar item ini mungkin memerlukan pembacaan data transaksi secara berulang-ulang dalam jumlah data transaksi yang besar

 mengimplementasikan sekumpulan fungsionalitas dari aplikasi untuk memungkinkan interaksi lebih pengguna untuk mencapai skenario khusus dalam penggunaan.  Tahap kedua dari