Universitas GUNADARMA

Jumat, 05 Juli 2013

Active Database

Basis data aktif yang juga disebut Active Database adalah suatu sistem basis data yang tidak hanya menyimpan data tetapi juga dapat melakukan suatu aksi tertentu terhadap sebuah event dengan menambahkan suatu elemen dinamis dan memiliki kemampuan memantau event untuk mendeteksi ketika data tertentu dimasukkan, dihapus, diubah, atau dipilih kemudian secara otomatis mengeksekusi suatu aksi sebagai respon dari event yang terjadi dan kondisi tertentu terpenuhi. Basis data aktif merupakan aspek prosedural dari keseluruhan lingkungan yang dikelola oleh basis data dan terdeklarasi eksplisit.

Basis data aktif merupakan kombinasi dari basis data statis tradisional dan active rules , yang berarti mekanisme secara otomatis untuk memelihara integritas data dan memberi fasilitas dalam memperlengkapi fungsionalitas basis data.
Beberapa hal yang perlu diperhatikan yang menjadi sifat dari tingkah laku rule dalam sebuah basis data aktif yaitu :
1 Termination, suatu eksekusi dari aksi dapat menyebabkan terjadinya event yang lain dan bisa jadi event ini merupakan rule lain yang dijalankan. Apabila tidak ada suatu kondisi terminal, maka hal ini akan terus berulang menjadi loop tanpa akhir.
2 Priority, jika beberapa rule di-trigger oleh event yang sama, maka harus dieksekusi berdasarkan urutan rule-nya.
3 Error handling, jika eksekusi dari rule menghasilkan error maka sistem harus bisa menangani.


Basis data aktif sebagai basis data dengan rule memiliki beberapa ciri-ciri tertentu, antara lain :
1. Secara alami bersifat algoritmik
2. Kondisi yang ditetapkan adalah data pengguna
3. Deskripsi kerjanya adalah mengubah dan meng-query data oleh pengguna sesuai dengan rule yang dijalankan
4. Output yang ditentukan secara lengkap oleh spesifikasi dari query/perubahan yang dilakukan
Fasilitas-fasilitas yang dimiliki oleh basis data aktif antara lain logika pengolahan ada di dalam database dan dikelola oleh DBMS dan tidak dikelola oleh program aplikasi, bentuk monitoring event dan kondisi yang mempengaruhi data disediakan oleh DBMS, serta sarana untuk men-trigger logika ada di dalam DBMS.


Perbedaan Basis Data Aktif dan Pasif
Sistem basis data konvensional disebut basis data pasif dalam arti manipulasi data bisa dijalankan oleh database hanya dengan perintah yang diberikan langsung oleh pengguna atau program aplikasi yang terletak di luar basis data. Sedangkan basis data aktif merupakan pengembangan dari database yang memindahkan sifat reactive program ke dalam database.


Salah satu contoh fungsi yang secara efisien dapat dilakukan oleh basis data aktif, akan tetapi di dalam basis data pasif harus diprogram di dalam aplikasi adalah integrity constraint dan triggers. Basis data pasif memiliki keterbatasan untuk mengontrol bentuk-bentuk integrity constraint seperti adanya data tertentu yang harus memenuhi nilai unik atau beberapa data yang harus berisi keterhubungan dengan data lain. Selain itu pada penggunaan triggers pada basis data pasif, jika terjadi perubahan pada konstrain atau triggers itu sendiri maka harus bisa menemukan dan memodifikasi program atau kode yang relevan di setiap aplikasi. Sedangkan pada basis data aktif, memiliki kemampuan untuk mengontrol integrity constraint pada keseluruhan database dan penggunaan triggers yang mampu menjalankan suatu aksi ketika mendeteksi suatu kejadian tertentu tanpa mencari kode-kode yang relevan pada program aplikasi untuk ikut diubah.

Data Warehousing

Konsep dasar dari data warehousing adalah informasi yang dikumpulkan dalam suatu gudang penyimpanan dan merepresentasikan solusi untuk pengaksesan data didalam sistem non relasional. Sehingga data warehousing dapat disebut sebagai database yang berorientasi pada subyek, terintegrasi, mempunyai Time Variant dan bersifat non volatile untuk kumpulan data yang mendukung dalam pengambilan keputusan.
• Berorientasi subyek artinya mengatur semua subyek utama pada suatu organsisasi yang memfokuskan pada basis datanya bukan pada aplikasi yang digunakan untuk pengambilan keputusan.
• Terintegrasi artinya pemakaian data bersama-sama sering menyebabkan data tidak konsisten sehingga cara pandang user terhadap data menjadi tidak sama. Agar terintegrasi pembentukan sumber data harus standar dan konsisten.
• Time Variant, data yang ada pada gudang hanya valid dan akurat pada titik waktu tertentu atau interval tertentu.
• Non-volatile, data tidak di-update secara real time tetapi selalu diperbaharui dari sistem operasi pada database yang ada.

Tipe-Tipe distributed data warehouse :
1. Dengan local dan global data warehouse
Local Data Warehouse merepresentasikan data dan proses-proses pada remote site. Sedangkan global Data Warehouse merepresentasikan bagian dari bisnis yang diintegrasikan.
2. Technologically Distributed Data Warehouse
Menunjukkan bahwa secara logic, ini merupakan single dw tapi pada kenyataannya secara fisik terdapat beberapa dw yang diintegrasikan yang berasal dari beberapa prosesor/site yang berbeda.
3. Independently evolving Distributed Data Warehouse
Setiap bagian dari distributed data warehouse, memiliki otonomi untuk mengatur dan mengembangkan bisnisnya tanpa harus memperhatikan bagian yang lain.

Keuntungan dari Data Warehousing
1. Hasil yang diperoleh dari investasi lebih tinggi
2. Kompetitif
3. Meningkatkan produktivitas perusahaan

Jenis database yang tersimpan di dalam media penyimpanan data berdasarkan penggunaan data :
• Database yang memiliki data sering di-update disebut data OLTP (Online Transaction Processing). Data OLTP sering juga disebut data operasional, mencerminkan sifat aplikasi database yang dinamik.
• Database yang memiliki data sering digunakan untuk query disebut DSS (Decision Support System). Data DSS sering disebut data analitikal, mencerminkan sifat aplikasi database yang relatif statik.

Obyek Relational Database Management System

Penggunaan teknologi RDBMS (Relational Database Management System) pada awalnya sangat dominan, tetapi dikarenakan fasilitas–fasilitas yang ada pada RDBMS tidak lagi sesuai dengan aplikasi tingkat lanjut, maka RDBMS digantikan dengan OODBMS (Obyek Oriented Database Management System). Pada OODBMS terdapat banyak sekali bentuk-bentuk object oriented seperti metode encapsulation, inheritance, polymorphism, dll.

Model data relasional lanjutan tidak hanya ada satu , tetapi terdapat berbagai macam model data, dimana karakteristik dan tingkat kebutuhan data yang telah dibuat. Bagaimanapun semua model data yang akan digunakan mengacu pada konsep objek dan mempunyai kemampuan untuk menyimpan data di dalam database.

Berbagai macam terminologi yang digunakan untuk sistem model relasional tingkat lanjut yaitu ERDBMS. Tapi sekarang ini untuk sistem berbasis objek dapat digunakan OODBMS.
Inti dari kinerja RDBMS yaitu ada pada optimasi queri-nya dan juga pengetahuan mengenai bagaimana mengeksekusi fungsi dari user-define secara efisien, mengambil keuntungan dari pengindeksan pada struktur yang baru, memetakan queri dengan cara baru, dan menavigasi antara data menggunakan referensi data.

Penggunaan OODBMS untuk suatu organisasi yang sangat besar dan universal tidak lagi sesuai sehingga untuk mendukung kinerja dari organisasi tersebut dibutuhkan suatu ORDBMS (Objeck Relational Database Management System).

ORDBMS memiliki fasilitas untuk mendefinisikan data yang kompleks, menspesialisasikan struktur indeks dibutuhkan untuk mengefisienkan pengambilan data. ORDBMS digunakan untuk dua sampai tiga dimensional data.

Tujuan Objek Relational Database:
Untuk menjembatani kesenjangan antara pemetaan objek-relasional dan teknik pemodelan data konseptual.Untuk menjembatani kesenjangan antara teknik pemodelan berorientasi objek (digunakan dalam bahasa pemrograman seperti C + +, C # dan Java) dan database relasional.
Keuntungan ORDBMS:

1. Obyek Relational Database Management Systems memastikan kapasitas penyimpanan yang besar,yang merupakan bagian penting dalam pembangunan berbasis web
2. Kecepatan akses cukup cepat.
3. ORDBMSs memiliki skalabilitas besar-besaran.
4. ORDBMSs membanggakan kekuatan manipulasi database yang sangat baik dari objek.
5. Mendukung objek dengan menambahkan fungsi API yang terpisah dan subsistem server
6. Redesigns mesin database sepenuhnya
7. Mendukung jenis data yang kaya dengan menambahkan lapisan berorientasi objek baru.
Selain dari manfaat, objek sistem manajemen basis data relasional memiliki beberapa kelemahan. Salah satu kelemahan utama adalah ketidakmampuan untuk aplikasi internet berkecepatan tinggi. Namun, ORDBMSs dirancang untuk mengelola sejumlah besar informasi, merupakan aspek penting dalam pengembangan situs web. IDC berpendapat bahwa kasus pasar ORDBMS memiliki potensi untuk melampaui ukuran ODBMS dalam beberapa tahun mendatang dalam pembangunan berbasis web.

Object Oriented Database

Objek database mulai populer pada pertengahan tahun 1990 an. Bermula dari Objek Oriented Programming(OOP) yang kemudian dikembangkan menjadi Objek Oriented Database (OOD) dan pada akhirnya menjadi Objek Oriented Analysis (OOA). Didalam konsep objek oriented database kita dapat melakukan pemodelan data dari semua phenomena dan dapat dinyatakan dalam bahasa umum (natural).
Objek Oriented Database pada dasarnya merupakan kosep dari pemrograman berorientasi objek secara umum ditambah dengan database sebagai media penyimpanan datanya yang berbentuk class-class, sehingga dalam hal ini masih berhubungan erat dengan E-R Model.
Objek Oriented Database muncul karena kekomplekan dari penyimpanan objek-objek yang akan disimpan didalam database sehingga konsep dari Relational Database Manejemen Sistem (RDBMS) masih tetap digunakan. Mekanisme penyimpanan objek-objek didalam Relational Database Menejemen Sistem ini sering dikenal dengan istilah ORDBMS (Objek Relational Database Managemen System).

PENGERTIAN
Object Oriented Database (OOD) merupakan salah satu jenis database dimana data direpresentasikan dalam bentuk object. Pendekatan ini sangat dipengaruhi oleh bahasa pemrograman object-oriented dan dapat dipahami sebagai usaha untuk menambah fungsionalitas DBMS pada lingkup bahasa pemrograman.

PERKEMBANGAN APLIKASI BASIS DATA
1. Computer-Aided Design (CAD)
Database CAD menyimpan data yang berhubungan dengan rancangan mekanik dan elektrik, sebagai contoh : gedung, pesawat, dan chips IC.

2. Computer-Aided Manufacturing (CAM)
Database CAM menyimpan data yang jenisnya sama dengan sistem CAD, ditambah data yang berhubungan dengan produksi yang mempunyai ciri-ciri tersendiri (seperti mobil pada saat perakitan) dan produksi yang continue (seperti sintesa kimia).


3. Computer-Aided Software Engineering (CASE)
Database CASE menyimpan data yang berhubungan dengan langkah-langkah dari siklus pengembangan software yaitu : planning, requirements collection analysis, design, implementation, test, maintenance and documentation.

4. Computer-Aided Publishing (CAP)
Database CAP menyimpan dokumen yang kompleks. Sama seperti otomatisasi kantor, aplikasi CAP telah diperluas untuk menangani dokumen-dokumen multimedia yang berisikan teks, audio, gambar, video data, dan animasi.

5. Office Automation (OA)
Database OA menyimpan data yang berhubungan dengan pengontrolan informasi computer dalam bidang bisnis, termasuk e-mail, dokumen-dokumen, invoice, dsb. Agar menyediakan dukungan yang lebih baik untuk area ini, dibutuhkan penanganan yang lebih luas terhadap jenis data daripada nama, alamat, tanggal dan uang. Sekarang ini sistem yang modern dapat menangani text yang berjenis bebas, foto, diagram, audio dan video. Sebagai contoh : dokumen multimedia yang mengangani teks, foto, spreadsheets dan suara.

KONSEP OBJECT ORIENTED
Beberapa konsep Object Oriented Database :
• Kenyataan dalam dunia ini direpresentasikan sebagai object
• Setiap object memiliki state dan behavior
• State merupakan nilai dari properties dan atribut dari object
• Behavior merupakan method yang dijalankan oleh state
• Object yang memiliki kesamaan state dan behavior dikelompokkan dalam satu class yang sama
• Setiap object hanya dapat diturunkan (instace) kedalam satu class saja
• Class-class dikeompokkan dalam sebuah hierarki. Subclass memiliki turunan (inherits) dari superclass-nya.
• Dimungkinkan juga terjadi overriding dimana sebuah class men-substitute domain dari propertiesnya dengan method lain dalam implementasi yang berbeda.
A. Abstraksi dan Enkapsulasi
• Abstraksi
adalah proses identifikasi aspek-aspek yang perlu dari entitas dan mengabaikan property yang tidak penting.
• Enkapsulasi (information hiding)
adalah memisahkan aspek-aspek eksternal sebuah objek dari rincian internalnya (internal details), yang tidak terlihat dari dunia luar. Dengan cara ini, internal detail sebuah objek dapat dirubah tanpa mempengaruhi aplikasi yang menggunakan objek tersebut, begitu juga dengan external detail. Dengan kata lain, encapsulation menyediakan data independence.
Contoh : Objek Roti, objek ini mempunyai method Pembuatan Roti. Jika kita ingin memakan roti, tentu kita tidak perlu tahu bagaimana cara membuatnya. Dengan demikian pembuatan Roti menjadi sesuatu yang menjadi dasar bagi konsep information hiding.

B. Objek dan Atribut
• Objek
adalah sebuah entitas yang dapat diidentifikasikan secara unik, berisikan atribut-atribut yang menerangkan keadaan atau kondisi (state) objek dunia nyata (real world object) dan aksi-aksi yang berhubungan dengan sebuah objek dunia nyata. Definisi objek serupa dengan definisi entitas. Perbedaannya : objek menunjukkan keadaan (state) dan tingkah laku (behaviour), sedangkan entitas menunjukkan models state.

• Atribut
adalah nama-nama property dari sebuah kelas yang menjelaskan batasan nilainya dari property yang dimiliki oleh sebuah kelas tersebut. Atribut dari sebuah kelas mempresentasikan property-property yang dimiliki oleh kelas tersebut. Atribut mempunyai tipe yang menjelaskan tipe instanisasinya. Hanya sebuah instanisasi dari kelas (objek) yang dapat mengubah nilai dari atributnya.
Keadaan (state) dari sebuah objek dijelaskan dengan nilai dari atribut-atribut yang dimilikinya (selain keberadaan hubungan dengan objek lainnya). Dalam sebuah kelas atribut hanya dinyatakan keberadaan dan batasan nilainya saja, sedangkan dalam sebuah objek atributnya sudah dinyatakan nilai dan menjelaskan kedudukan / keadaan dari objek tersebut.


C. Identitas Objek (Object Identity)
Pada saat objek dibuat, object identifier (OID) langsung ditentukan. OID tersebut unik dan berbeda. OID membedakan objek yang satu dengan objek lainnya di dalam sistem. Sekali objek dibuat, OID tersebut tidak dapat digunakan kembali untuk objek-objek lainnya, walaupun objek tersebut telah dihapus.

D. Metode dan Pesan
• Metode (Methods)
Dalam teknologi objek, function biasanya disebut methods. Methods mendefinisikan tingkah laku dari sebuah objek. Methods dapat digunakan untuk merubah kondisi objek dengan memodifikasi nilai atribut-atributnya, atau meng-query nilai atribut yang diseleksi.
• Pesan (Message)
Message mempunyai arti komunikasi antara objek. Sebuah message merupakan permintaan sederhana dari suatu objek (pengirim) ke objek lain (penerima) dan menanyakan objek tsb untuk mengeksekusi salah satu method-nya. Pengirim dan penerima bisa pada objek yang sama. Notasi ‘dot’ biasanya digunakan untuk mengakses sebuah method.
E. CLASS
Class merupakan pendefinisian himpunan objek yang sejenis. Objek yang mempunyai atribut yang sama dan meresponse message yang sama dapat dikelompokkan bersama membentuk sebuah class. Atribut dan method yang berhubungan cukup sekali saja didefinisikan untuk class, daripada didefinisikan terpisah untuk setiap objek.
Contoh :
seluruh objek cabang dideskripsikan oleh sebuah class cabang (branch). Objek-objek pada sebuah class disebut instance dari class. Setiap instance mempunyai nilainya sendiri untuk setiap atribut, tetapi nama atribut dan method-nya sama seperti instance lainnya dari sebuah class.

F. SUBCLASS, SUPERCLASS, dan INHERITANCE
Inheritance mengizinkan satu class objek didefinisikan sebagai kasus spesial (special case) dari sebuah class pada umumnya. Special case ini dikenal dengan subclass, dan kasus umum lainnya dikenal sebagai superclass. Proses pembentukan superclass sama seperti generalization, sedangkan subclass seperti specialization. Konsep dari superclass, subclass, dan inheritance sama seperti EER, kecuali dalam paradigm object-oriented, inheritance meliputi state dan behaviour.

Perangcangan Relasional Basis Data Terdistribusi

Faktor - faktor yang dianjurkan untuk digunakan pada basis data terdistribusi yaitu :
1. Fragmentasi : Sebuah relasi yang terbagi menjadi beberapa sub-sub relasi yang disebut dengan fragment, sehingga disebut juga distribusi. Ada dua buah fragmentasi yaitu horisontal dan vertikal. Horisontal fragmentasi yaitu subset dari tupel sedangkan vertikal fragmentasi subset dari atribut.
2. Alokasi, setiap fragmen disimpan pada situs dengan distribusi yang optimal.
3. Replikasi, DDBMS dapat membuat suatu copy dari fragmen pada beberapa situs yang berbeda.

Definisi dan alokasi dari fragmen harus berdasarkan pada bagaimana basis data tersebut digunakan. Perancangan harus berdasarkan kuantitatif dan kualitatif informasi. Kuantitatif informasi digunakan pada alokasi data sedangkan kualitatif informasi digunakan untuk fragmentasi.

Kuantitatif informasi termasuk :
• Seberapa sering aplikasi di jalankan
• Situs mana yang aplikasinya dijalankan
• Kriteria kinerja untuk transaksi dan aplikasi

Kualitatif informasi termasuk transaksi yang dieksekusi pada aplikasi, termasuk pengaksesan relasi, atribut dan tuple , tipe pengaksesan( R atau W ) dan predikat dari operasional.

Definisi dan alokasi dari fragment menggunakan strategi untuk mencapai obyektifitas yang diinginkan :

1. Referensi Lokal
Jika memungkinkan data harus disimpan dekat dengan yang menggunakan. Bila suatu fragmen digunakan di beberapa lokasi , akan menguntungkan jika fragmen data tersebut disimpan di beberapa lokasi juga.

2. Reliabilitas dan Availabilitas yang ditingkatkan
Keandalan dan ketersediaan data ditingkatkan dengan replikasi. Ada salinan lain yang disimpan di lokasi yang lain.

3. Kinerja yang di terima
Alokasi yang tidak baik dapat mengakibatkan bottleneck terjadi, sehingga akan mengakibatkan banyaknya permintaan dari beberapa lokasi yang tidak dapat dilayani dan data yang diminta menjadi tidak up to date menyebabkan kinerja turun.

4. Seimbang antara kapasitas penyimpanan dan biaya
Pertimbangan harus diberikan pada ketersediaan infrastruktur dan biaya untuk penyimpanan di setiap lokasi, sehingga untuk efisiensi dapat digunakan tempat penyimpanan yang tidak mahal.

5. Biaya komunikasi yang minimal
Pertimbangan harus diberikan untuk biaya akses jarak jauh. Biaya akan minimal ketika kebutuhan lokal maksimal atau ketika setiap site menduplikasi data nya sendiri. Bagaimanapun ketika data yang di replikasi telah di update. Maka data yang ter-update tersebut harus diduplikasi ke seluruh site, hal ini yang menyebabkan naiknya biaya komunikasi.

Pengenalan Sistem Basis Data Terdistribusi

Database terdistribusi adalah sebuah database yang diatur oleh sebuah Database Management System (DBMS) yang tersimpan secara fisik pada beberapa komputer yang terdapat pada beberapa lokasi dengan terkoneksi pada sebuah jaringan. jaringan tersebut harus bisa menyediakan akses bagi user untuk melakukan sharing data. Terdapat dua macam sifat dari database terdistribusi yaitu Heterogenous dan Homogenous. Homogenous artinya suatu database terdistribusi dimana data di distribusikan pada beberapa komputer dengan menggunakan DBMS(database management system) yang sama. DBMS digunakan pada database terdistribusi untuk melakukan koordinasi data pada beberapa node. Sedangkan Heterogenous adalah kebalikan dari Homogenous dimana data di sebarkan dengan menggunakan DBMS yang berbeda.

Basis data terdistribusi (distributed database) adalah suatu basis data yang berada di bawah kendali sistem manajemen basis data (DBMS) terpusat dengan peranti penyimpanan (storage devices) yang terpisah-pisah satu dari yang lainnya. Tempat penyimpanan ini dapat berada di satu lokasi yang secara fisik berdekatan (misal: dalam satu bangunan) atau terpisah oleh jarak yang jauh dan terhubung melalui jaringan internet. Penggunaan basis data terdistribusi dapat dilakukan di server internet, intranet atau ekstranet kantor, atau di jaringan perusahaan.

Untuk menjaga agar basis data yang terdistribusi tetap up-to-date, ada dua proses untuk menjaganya, yakni replikasi dan duplikasi. Dalam replikasi, digunakan suatu perangkat lunak untuk mencari — atau lebih tepatnya melacak — perubahan yang terjadi di satu basis data. Setelah perubahan dalam satu basis data teridentifikasi dan diketahui, baru kemudian dilakukan perubahan agar semua basis data sama satu dengan yang lainnya. Proses replikasi memakan waktu yang lama dan membebani komputer karena kompleksitas prosesnya. Sementara itu, proses duplikasi tidak sama dan tidak sekompleks replikasi. Dalam proses ini, satu basis data dijadikan master, kemudian diperbanyak menjadi sejumlah duplikat. Selama proses duplikasi berlangsung, perubahan hanya boleh dilakukan pada basis data master agar data lokal tidak tertimpa.

Karakteristik database terdistribusi yaitu :
1. Kumpulan data yang digunakan bersama secara logic tersebar pada sejumlah computer yang berbeda
2. Komputer yang dihubungkan menggunakan jaringan komunikasi.
3. Data pada masing-masing situs dapat menangani aplikasi-aplikasi local secara otonom.
4. Data pada masing situs di bawah kendali satu DBMS.
5. Masing-masing DBMS berpartisipasi dalam sedikitnya satu aplikasi global.

Bentuk-bentuk Topologi Distribusi Data :
1.Partialy Connected
Network Reliability rendah, biaya dapat ditekan Kontrol manajemen tidak terjamin.

2.Tree Structured Network
Bersifat sentral, control manajemen lebih terjamin Kalau node pusat rusak, semua akan rusak. (setiap proses dimulai dari bawah).

3.RingNetwork
Rusak satu, yang lain masih berjalan Kontrol manajemen kurang terjamin karena bersifat dsesentralisasi.

4.StarNetwork
Rusak satu, yang lain masih berjalan Kontrol manajemen kurang terjamin karena bersifat desentralisasi.

5.Fully Connected Network
Kalau salah satu node rusak, yang lainnya masih dapat berjalan (biaya mahal), kontrol manajemen tidak terjamin.

Transaksi Database Control

Transaksi adalah satu atau beberapa aksi program aplikasi yang mengakses/mengubah isi basis data.
Transaksi merupakan bagian dari pengeksekusian sebuah program yang melakukan pengaksesan basis data dan bahkan juga melakukan serangkaian perubahan data. DBMS yang kita gunakan harus menjamin bahwa setiap transaksi harus dapat dikerjakan secara utuh atau tidak sama sekali. Tidak boleh ada transaksi yang hanya dikerjakan sebagian, karena dapat menyebabkan inkonsistensi basis data. Untuk itu transaksi selalu merubah basis data dari satu kondisi konsisten ke kondisi konsisten lain.
Sebuah transaksi berpeluang untuk ‘mengganggu’ integritas basis data yang dapat membuat kondisi/hubungan antar data tidak seperti seharusnya. Untuk menjamin agar integritas dapat tetap terpelihara maka setiap transaksi harus memiliki sifat-sifat:
1. Atomik, dimana semua operasi dalam transaksi dapat dikerjakan seluruhnya atau tidak sama sekali.
2. Konsisten, dimana eksekusi transaksi secara tunggal harus dapat menjamin data tetap konsisten setelah transaksi berakhir.
3. Terisolasi, jika pada sebuah sistem basis data terdapat sejumlah transaksi yang dilaksanakan secara bersamaan, maka semua transaksi yang dilaksanakan pada saat yang bersamaan tersebut harus dapat dimulai dan bisa berakhir.
4. Bertahan, dimana perubahan data yang terjadi setelah sebuah transaksi berakhir dengan baik, harus dapat bertahan bahkan jika seandainya sistem menjadi mati.
Terhentinya suatu transaksi tidak selalu diakibatkan oleh kegagalan insidental baik dari perangkat keras (crash) ataupun kemacetan sistem operasi (hang). Tapi lebih sering terjadi karena user sengaja menghentikan transaksi atau karena penghentian transaksi oleh DBMS akibat adanya kondisi tak diinginkan, seperti deadlock atau timeout.
Sebuah transaksi dapat menghasilkan dua kemungkinan:
a. Jika dilaksanakan lengkap seluruhnya, transaksi tersebut telah di commit dan basis data mencapai keadaan konsisten baru.
b. Jika transaksi tidak sukses, maka transaksi dibatalkan dan basis data dikembalikan ke keadaan konsisten sebelumnya (rollback).
Transaksi yang sudah di commit tidak dapat dibatalkan lagi. Jika ada kesalahan, maka harus dilakukan transaksi lain yang membalik dampak transaksi sebelumnya.
Status-status yang dapat dicapai oleh sebuah transaksi sejak mulai dilaksanakan hingga selesai atau batal adalah:
1. Aktif (Active), yang merupakan status awal (initial state) sebuah transaksi yang menunjukkan transaksi tersebut masih dieksekusi.
2. Berhasil Sebagian (Partially Committed), yaitu keadaan yang dicapai transaksi tepat pada saat operasi terakhir dalam transaksi selesai dikerjakan.
3. Gagal (Failed), yang merupakan keadaan dimana sebuah transaksi terhenti pengeksekusiannya sebelum tuntas sama sekali.
4. Batal (Aborted), yaitu keadaan dimana sebuah transaksi dianggap tidak/belum dikerjakan yang tentu dengan terlebih dahulu diawali dengan mengembalikan semua data yang telah diubah ke nilai-nilai semula. (yang menjadi tanggung jawab DBMS).
5. Berhasil Sempurna (Committed), keadaan dimana transaksi telah dinyatakan berhasil dikerjakan seluruhnya dan basis data telah merefleksikan perubahan-perubahan yang memang diinginkan transaksi.

Security Database pada Database Control

Authorization
Pemberian hak akses yang mengizinkan sebuah subyek mempunyai akses secara legal terhadap sebuah system atau obyek.
Views (Subschemas)
Hasil yang dinamik dari satu atau lebih operasi relasi yang beroperasi pada relasi dasar untuk menghasilkan relasi lainnya. View mwerupakan virtual relation yang tidak secara nyata ada di dalam sebuah database, tetapi dihasilkan atas permintaan user secara khusus.
Backing Up
Proses yang secara periodic menyalin database dan menjurnal (dan memprogram) ke dalam media penyimpanan offline.
Journaling
Proses penyimpanan dan pemeliharaan sebuah jurnal atau log seluruh perubahan terhadap database agar dapat merecover secara efektif jika terjadi kegagalan.
Checkpointing
Titik temu sinkronisasi antara database dan transaksi log file. Seluruh data yang disimpan di tempat sementara akan disimpan di media penyimpanan kedua.
Integrity
Pengontrolan integritas juga membantu memelihara system database yang aman dengan mencegah data dari invalid.
Encryption
Penyediaan (encoding) data dengan menggunakan algoritma khusus yang merubah data menjadi tidak dapat dibaca oleh program apapun tanpa mendeskripsikannya.

Aplikasi Client-Server

Istilah arsitektur mengacu pada desain sebuah aplikasi, atau dimana komponen yang membentuk suatu system ditempatkan dan bagaimana mereka berkomunikasi.
Macam-macam arsitektur aplikasi Client-Server beserta kelebihan dan kekurangannya yaitu:
1. Standalone (one-tier)
Pada arsitektur ini semua pemrosesan dilakukan pada mainframe. Kode aplikasi, data dan semua komponen sistem ditempatkan dan dijalankan pada host. Walaupun computer client dipakai untuk mengakses mainframe, tidak ada pemrosesan yang terjadi pada mesin ini, dan karena mereka “dump- client” atau “dump-terminal”. Tipe model ini, dimana semua pemrosesan terjadi secara terpusat, dikenal sebagai berbasis-host. Sekilas dapat dilihat kesalahan pada model ini. Ada dua masalah pada komputasi berbasis host: Pertama, semua pemrosesan terjadi pada sebuah mesin tunggal, sehingga semakin banyak user yang mengakses host, semakin kewalahan jadinya. Jika sebuah perusahaan memiliki beberapa kantor pusat, user yang dapat mengakses mainframe adalah yang berlokasi pada tempat itu, membiarkan kantor lain tanpa akses ke aplikasi yang ada.
Pada saat itu jaringan sudah ada namun masih dalam tahap bayi, dan umumnya digunakan untuk menghubungkan terminal dump dan mainframe. Namun keterbatasan yang dikenakan pada user mainframe dan jaringan telah mulai dihapus.
Keuntungan arsitektur standalone (one-tier):
• Sangat mudah
• Cepat dalam merancang dan mengaplikasikan
Kelemahan arsitektur standalone (one-tier):
• Skala kecil
• Susah diamankan
• Menyebabkan perubahan terhadap salah satu komponen diatas tidak mungkin dilakukan, karena akan mengubah semua bagian.
• Tidak memungkinkan adanya re-usable component dan code.
• Cepat dalam merancang dan mengaplikasikan
2. Client/Server (two tier)
Dalam model client/server, pemrosesan pada sebuah aplikasi terjadi pada client dan server. Client/server adalah tipikal sebuah aplikasi two-tier dengan banyakclient dan sebuah server yang dihubungkan melalui sebuah jaringan.
Aplikasi ditempatkan pada computer client dan mesin database dijalankan pada server jarak-jauh. Aplikasi client mengeluarkan permintaan ke database yang mengirimkan kembali data ke client-nya.
Model Two-tier terdiri dari tiga komponen yang disusun menjadi dua lapisan : client (yang meminta serice) dan server (yang menyediakan service).
Tiga komponen tersebut yaitu :
1. User Interface. Adalah antar muka program aplikasi yang berhadapan dan digunakan langsung oleh user.
2. Manajemen Proses.
3. Database. Model ini memisahkan peranan user interface dan database dengan jelas, sehingga terbentuk dua lapisan.
Kelebihan dari model client/server
• Mudah
• Menangani Database Server secara khusus
• Relatif lebih sederhana untuk di develop dan diimplementasikan.
• Lebih cocok diterapkan untuk bisnis kecil.
Server database berisi mesin database, termasuk tabel, prosedur tersimpan, dan trigger (yang juga berisi aturan bisnis). Dalam system client/server, sebagian besar logika bisnis biasanya diterapkan dalam database.
Server database manangani :
• Manajemen data
• Keamanan
• Query, trigger, prosedur tersimpan
• Penangan kesalahan
Arsitektur client/server merupakan sebuah langkah maju karena mengurangi beban pemrosesan dari komputer sentral ke computer client. Ini berarti semakin banyak user bertambah pada aplikasi client/server, kinerja server file tidak akan menurun dengan cepat. Dengan client/server user dair berbagai lokasi dapat mengakses data yang sama dengan sedikit beban pada sebuah mesin tunggal.
Namun masih terdapat kelemahan pada model ini. Selain menjalankan tugas-tugas tertentu, kinerja dan skalabilitas merupakan tujuan nyata dari sebagian besar aplikasi.
Kekurangan dari model client/server :
• Kurangnya skalabilitas
• Koneksi database dijaga
• Tidak ada keterbaharuan kode
• Tidak ada tingkat menengah untuk menangani keamanan dan transaksi skala kecil.
• Susah di amankan.
• Lebih mahal.
3. Three Tier
Arsitektur Three Tier merupakan inovasi dari arsitektur Client Server. Pada arsitektur Three Tier ini terdapat Application Server yang berdiri di antara Client dan Database Server. Contoh dari Application server adalah IIS, WebSphere, dan sebagainya.
Application Server umumnya berupa business process layer, dimana bisa didevelop menggunakan PHP, ASP.Net, maupun Java. Sehingga kita menempatkan beberapa business logic kita pada tier tersebut. Arsitektur Three Tier ini banyak sekali diimplementasikan dengan menggunakan Web Application. Karena dengan menggunakan Web Application, Client Side (Komputer Client) hanya akan melakukan instalasi Web Browser. Dan saat komputer client melakukan inputan data, maka data tersebut dikirimkan ke Application Server dan diolah berdasarkan business process-nya. Selanjutnya Application Server akan melakukan komunikasi dengan database server.
Biasanya, implementasi arsitektur Three Tier terkendala dengan network bandwidth. Karena aplikasinya berbasiskan web, maka Application Server selalu mengirimkan Web Application-nya ke computer Client. Jika kita memiliki banyak sekali client, maka bandwidth yang harus disiapkan akan cukup besar, Sedangkan network bandwidth biasanya memiliki limitasi. Oleh karena itu biasanya, untuk mengatasi masalah ini, Application Server ditempatkan pada sisi client dan hanya mengirimkan data ke dalam database server. Konsep model three-tier adalah model yang membagi fungsionalitas ke dalam lapisan-lapisan, aplikasiaplikasi mendapatkan skalabilitas, keterbaharuan, dan keamanan.
Kelebihan arsitektur Three Tier :
• Segala sesuatu mengenai database terinstalasikan pada sisi server, begitu pula dengan pengkonfigurasiannya. Hal ini membuat harga yang harus dibayar lebih kecil.
• Apabila terjadi kesalahan pada salah satu lapisan tidak akan menyebabkan lapisan lain ikut salah
• Perubahan pada salah satu lapisan tidak perlu menginstalasi ulang pada lapisan yang lainnya dalam hal ini sisi server ataupun sisi client.
• Skala besar.
• Keamanan dibelakang firewall.
• Transfer informasi antara web server dan server database optimal.
• Komunikasi antara system-sistem tidak harus didasarkan pada standart internet, tetapi dapat menggunakan protocol komunikasi yang lebvih cepat dan berada pada tingkat yang lebih rendah.
• Penggunaan middleware mendukung efisiensi query database dalam SQL di pakai untuk menangani pengambilan informasi dari database.
Kekurangan arsitekture Three Tier :
• Lebih susah untuk merancang
• Lebih susah untuk mengatur
• Lebih mahal
4. Multi Tier
Arsitektur Multi Tier adalah suatu metode yang sangat mirip dengan Three Tier. Bedanya, pada Multi Tier akan diperjelas bagian UI (User Interface) dan Data Processing. Yang membedakan arsitektur ini adalah dengan adanya Business Logic Server. Database Server dan Bussines Logic Server merupakan bagian dari Data Processing, sedangkan Application Server dan Client/Terminal merupakan bagian dari UI. Business Logic Server biasanya masih menggunakan bahasa pemrograman terdahulu, seperti COBOL. Karena sampai saat ini, bahasa pemrograman tersebut masih sangat mumpuni sebagai business process.
Multi-tier architecture menyuguhkan bentuk three – tier yang diperluas dalam model fisik yang terdistribusi. Application server dapat mengakses Application server yang lain untuk mendapat data dari Data server dan mensuplai servis ke client Application.
Kelebihan arsitektur Multi tier :
• Dengan menggunakan aplikasi multi-tier database, maka logika aplikasi dapat dipusatkan pada middle-tier, sehingga memudahkan untuk melakukan control terhadap client-client yang mengakses middle server dengan mengatur seting pada dcomcnfg.
• Dengan menggunakan aplikasi multi-tier, maka database driver seperti BDE/ODBC untuk mengakses database hanya perlu diinstal sekali pada middle server, tidak perlu pada masing-masing client.
• Pada aplikasi multi-tier, logika bisnis pada middle-tier dapat digunakan lagi untuk mengembangkan aplikasi client lain,sehingga mengurangi besarnya program untuk mengembangkan aplikasi lain. Selain itu meringankan beban pada tiap-tiap mesin karena program terdistribusi pada beberapa mesin.
• Memerlukan adaptasi yang sangat luas ruang lingkupnya apabila terjadi perubahan sistem yang besar.
Kekurangan arsitektur Multi tier :
• Program aplikasi tidak bisa mengquery langsung ke database server, tetapi harus memanggil prosedur-prosedur yang telah dibuat dan disimpan pada middle-tier.
• Lebih mahal
Keunggulan client server
• Kecepatan akses lebih tinggi
• Sistem keamanan & administrasi lebih baik
• Sistem backup data lebih baik
Kelemahan Client/Server
• Biaya lebih mahal
• Dibutuhkan komputer dengan spesifikasi khusus untuk menjadi server
• Ketergantungan terhadap server, jika server terganggu maka keseluruhan jaringan terganggu

Pengertian Client-Server

Client merupakan sembarang sistem atau proses yang melakukan suatu permintaan data atau layanan ke server sedangkan server ialah, sistem atau proses yang menyediakan data atau layanan yang diminta olehclient.
Client-Server adalah pembagian kerja antara server dan client yg mengakses server dalam suatu jaringan. Jadi arsitektur client-server adalah desain sebuah aplikasi terdiri dari client dan server yang saling berkomunikasi ketika mengakses server dalam suatu jaringan.
Sistem client server didefinisikan sebagai sistem terdistribusi, tetapi ada beberapa perbedaan karakteristik yaitu :

1. Servis (layanan)
• Hubungan antara proses yang berjalan pada mesin yang berbeda
• Pemisahan fungsi berdasarkan ide layanannya
• Server sebagai provider, client sebagai konsumen
2. Sharing resources (sumber daya): Server bisa melayani beberapa client pada waktu yang sama, dan meregulasi akses bersama untuk share sumber daya dalam menjamin konsistensinya.

3. Asymmetrical protocol (protokol yang tidak simetris ): Many-to-one relationship antara client dan server.Client selalu menginisiasikan dialog melalui layanan permintaan, dan server menunggu secara pasif request dari client.

4. Transparansi lokasi: Proses yang dilakukan server boleh terletak pada mesin yang sama atau pada mesin yang berbeda melalui jaringan.Lokasi server harus mudah diakses dari client.

5. Mix-and-Match : Perbedaan server client platforms

6. Pesan berbasiskan komunikasi; Interaksi server dan client melalui pengiriman pesan yang menyertakan permintaan dan jawaban.

7. Pemisahan interface dan implementasi: Server bisa diupgrade tanpa mempengaruhi client selama interface pesan yang diterbitkan tidak berubah.
• Client Server System
• Client / Server Application
Perbedaan Tipe Client-Server

1.File Servers
• File server vendors mengklaim bahwa mereka pertama menemukan istilah client-server.
• Untuk sharing file melalui jaringan
2.Database Servers
• Client mengirimkan SQL requests sebagai pesan pada database server,selanjutnya hasil perintah SQL dikembalikan.
• Server menggunakan kekuatan proses yang diinginkan untuk menemukan data yang diminta dan kemudian semua record dikembalikan pada client.
3.Transaction Servers (Transaksi Server)
• Client meminta remote procedures yang terletak pada server dengan sebuah SQL database engine.
• Remote procedures ini mengeksekusi sebuah grup dari SQL statement
• Hanya satu permintaan / jawaban yang dibutuhkan untuk melakukan transaksi
4.Groupsware Servers
• Dikenal sebagai Computer-supported cooperative working
• Manajemen semi-struktur informasi seperti teks, image, , bulletin boards dan aliaran kerja
• Data diatur sebagai dokumen
5.Object Application Servers
• Aplikasi client/server ditulis sebagai satu set objek komunikasi
• Client objects berkomunikasi dengan server objects melalui Object Request Broker (ORB)
• Client meminta sebuah method pada remote object
6.Web Application Servers (Aplikasi Web Servers)
• World Wide Web adalah aplikasi client server yang pertama yang digunakan untuk web.
• Client dan servers berkomunikasi menggunakan RPC seperti protokol yang disebut HTTP.