MODUL 10 ACTIVE DATA OBJECT (BAGIAN 1)
Struktur Basis Data Terdistribusi sebuah sistem basis data terdistribusi hanya memungkinkan dibangun dalam sebuah sistem jaringan komputer. Dalam sebuah sistem jaringan komputer, dalam hal ini dikenal topologi yang menentukan bagaimana konfigurasi antara satu simpul jaringan dengan simpul-simpul lainnya.
Gambar Topologi Star
Gambar Topologi Ring
1
Gambar Topologi Bus
Perbedaan Utama diantara topologi sebagai berikut: 1. Biaya Instalasi 2. Biaya komunikasi 3. Kehandalan 4. Ketersedian Transaksi dalam basisdata terdistribusi terdapat 2 jenis transaksi : 1. Transaksi Lokal. Transaksi yang mengakses data pada suatu simpul yang sama dengan simpul dari mana transaksi tersebut dijalankan. 2. Transaksi Global. Transaksi yang membutuhkan pengaksesan data disimpul yang berbeda dengan simpul dimana transaksi tersebut dijalankan, atau transaksi dari sebuah simpul yang membutuhkan pengaksesan data kesejumlah simpul lainnya.
2. DESAIN DATABASE TERDISTRIBUSI • Organisasi system terdistribusi terdiri atas tiga dimensi orthogonal : 1. Tingkat kebersamaan (level of sharing) 2. Tingkah laku pola akses (behavior of access pattern)
2
3. Tingkat pengetahuan atas tingkah laku pola akses (level of knowledge on access pattern behavior) 1. TINGKAT KEBERSAMAAN 1.1.
Tidak ada kebersamaan (no sharing)
1.2.
Kebersamaan data (data sharing)
1.3.
Kebersamaan data dan program (data plus program sharing)
2. TINGKAH LAKU POLA AKSES
3.
2.1.
Statis
2.2.
Dinamis
TINGKAT PENGATAHUAN ATAS POLA TINGKAH LAKU POLA AKSES 3.1.
Perancangan tidak memiliki informasi bagaimana penggunaan akan akses database.
3.2.
Perancang memiliki informasi lengkap.
Alternatif Strategi Desain •
Top Down
•
Botton up
3
PROSES DESAIN TOP – DOWN ANALISIS KEBUTUHAN OBJEKTIF MASUKKAN USER
DESAIN KONSEPTUAL
DESAIN VIEW
INTEGRASI VIEW SCHEMA KONSEPTUAL GLOBAL
AKSES INFORMASI
DEFINISI SCHEMA EKSTERNAL
DESAIN DISTRIBUSI
MASUKAN USER
SCHEMA KONSEPTUAL LOKAL DESAIN FISIKAL SCHEMA FISIKAL UMPAN BALIK
UMPAN BALIK OBSERVASI DAN PEMANTAUAN
ALASAN PRAGMENTASI SUATU RELATION BUKAN UNIT DISTRIBUSI YANG COCOK, KARENA : 1.
View aplikasi adalah subset dari relation
2.
Jika view didefinisikan atas suatu relation yang tersimpan pada beberapa lokasi, dua alternatif dapat dipilih : a.
Tanpa replikasi
4
b. 3.
Dengan replikasi
Dengan masing-masing fragmen sebagai satu unit, maka sejumlah transaksi dapat dieksekusi secara konkuren.
KELEMAHAN FRAGMENTASI : 1. Konflik kebutuhan antar aplikasi 2. Pengendalian sematik data utamanya pengecekan integritas ALTERNATIF FRAGMENTASI 1. Horisontal a. Setiap fragmen memiliki attribute yang sama dengan relation. b. Setiap fragmen menerima beberapa record dari relation yang difragmentasi. 2. Vertikal a. Setiap fragmen memiliki jumlah record sama dengan relation yang difragmentasi. b. Setiap fragmen memiliki attribute primary key dari relation yang difragmentasi. c. Setiap fragmen menerima beberapa attribute bukan key. DERAJAT FRAGMENTASI Berada dalam rentang tidak ada fragmentasi hingga fragmentasi pada tingkat tuple individual (horizontal) atau pada tingkat attribute individual (vertikal). ATURAN KEBENARAN FRAGMENTASI (CORRECTNES RULES OF FRAGMENTATION) 1.
Kelengkapan (Completness) Jika relation R dodekomposisi menjadi fragmen R1, R2, … Rn, maka setiap item data yang dijumpai pada R dapat dijumpai ada pada salah satu R atau lebih.
2.
Rekonstruksi (Reconstruction)
5
Jika relation R didekomposisi menjadi fragmen R1, R2, … Rn, maka dapat didefinisikan satu operator relational ∇ sehingga
R = ∇ R1
∀
R1
∈ FR 3.
Disjoin (Disjoinness) Jika relation R didekomposisi horizontal menjadi fragmen R1, R2, … Rn dan item data di dalam Rj, maka di tidak dapat dalam fragmen lain RR (k=j)
MATRIKS PERBANDINGAN ALTERNATIF REPLKASI Replikasi
Replikasi
penuh
parsial
Proses
mudah
Partisi
Kesulitan
Query sama Manajemen
Mudah
direktori
kesulitan
(atau nonexitensi)
Pengendalian
sama
Moderat
sulit
mudah
Keandalaan
sangat tinggi
tinggi
rendah
Realitas
kemungkinan
Concurrency realitas
Penerapan
Kemungkinan penerapan
4. FRAGMENTATION 1. HORIZONTAL FRAGMENTATION A.DUA VERSI : a.
PRIMARY
6
b.
DERIVED
B.Information requirement of horizontal fragmentation
b.1 Database Information Berkaitan dengan LINKS antara relation-relation yang berelasi satu sama lain dengan operasi equijoin. Source relation disebut owner. Target relation disebut member. Cardinality suatu relation, card (R), adalah quantitative information yang dibuthkan tentang database. b.2. APLICATION INFORMATION ‘Qualitative information’ berisi ‘predicate’ yang digunakan pada berbagai ‘query’. Simple predicate Diberikan relation R( A1, A2, … An) A1 adalah suatu atribute yang didefinisikan atas domain D. Suatu ‘simple predicate’ Pj didefinisikan pada R. Memiliki bentuk : Pj : Ai θ value Dengan θ ∈ { =,< ≠, ≤, >, ≥ } dan ( value ∈ D1 ) Notasi Pri menyatakan himpunan semua ‘simple predicate’ pada relation Ri , dan anggota Pri dinyatakan dengan Prj. 2 himpunan data untuk ‘quantitative information’ a. Minterm selectivity Jumlah suatu relation yang akan diakses oleh suatu query berdasarkan suatu minterm predicate.
7
Notasi minterm selectivity atas mi adalah sel (m1). b. Acces frequency Frekwensi aplikasi user mengakses data. Jika Q = {q1, q2, … qq} adalah himpunan query user, acc(qj) menyatakan frekwensi akses suatu query di dalam suatu periode.
D. Spesifikasi Hardware dan Software Hardware : •
Prosesor : Pentium 4 1.2Ghz
•
Memori
: 512 MB RAM
•
Hardisk
: minimum 10GB, ada ruang kosong min 2GB
•
Monitor
: min resolusi 1024x768 dan 256 color
•
Keyboard dan mouse
Sistem Operasi: •
Microsoft Windows 95
•
Microsoft Windows 2000
•
Microsoft Windows Xp
•
Ms. Access
•
Visual Studio.Net 2005
E. Materi Pratikum Buatlah object dari tampilan untuk menyeleksi pada setaip kolom pada tabel mahasiswa private void tampilan(DataSet dataset) { try { DataTable datatabel = dataset.Tables[0]; if (datatabel.Rows.Count != 0)
8
{ string nomorRecord = (string)datatabel.Rows[0][0]; textBox1.Text = nomorRecord.ToString(); textBox2.Text = (string)datatabel.Rows[0][1]; textBox3.Text = (string)datatabel.Rows[0][2]; textBox4.Text = (string)datatabel.Rows[0][3]; //textBox4.Text = // (string)datatabel.Rows[0][4]; } else MessageBox.Show("tidak ada record ","Informasi ",MessageBoxButtons.OK,MessageBoxIcon.Error); } catch(System.Data.OleDb.OleDbException oleerror) { Console.WriteLine(oleerror.StackTrace); lblinformasi.Text +=oleerror.ToString(); } } } }
9
F. Latihan 1. Buatlah aplikasi pada pertemuan yang lalu dengan menambahkan fungsi cari
Coding cari private void button3_Click(object sender, EventArgs e) { if (textBox1.Text != "") mhsDataSet.Clear(); oleDbDataAdapter1.SelectCommand.CommandText = "select * from mahasiswa where Nim ='" + textBox1.Text + "'"; oleDbDataAdapter1.Fill(mhsDataSet); tampilan(mhsDataSet); }
=====================
10