Basis Data Non Relasional
“ Rancangan Basis Data Temporal Dan Bitemporal “
Basis
data (bahasa Inggris: database),
atau sering pula dieja basisdata, adalah kumpulan informasi yang disimpan di
dalam komputer secara
sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk
memperoleh informasi dari basis data tersebut. Perangkat lunak yang
digunakan untuk mengelola dan memanggil kueri (query)
basis data disebut sistem
manajemen basis data (database management system, DBMS). Sistem
basis data dipelajari dalam ilmu informasi.
Istilah
"basis data" berawal dari ilmu komputer. Meskipun kemudian artinya
semakin luas, memasukkan hal-hal di luar bidang elektronika, artikel ini
mengenai basis data komputer. Catatan yang mirip dengan basis data sebenarnya
sudah ada sebelum revolusi industri yaitu dalam bentuk buku besar, kuitansi dan
kumpulan data yang berhubungan dengan bisnis.
Konsep
dasar dari basis data adalah kumpulan dari catatan-catatan, atau potongan dari
pengetahuan. Sebuah basis data memiliki penjelasan terstruktur dari jenis fakta
yang tersimpan di dalamnya: penjelasan ini disebut skema. Skema menggambarkan obyek
yang diwakili suatu basis data, dan hubungan di antara obyek tersebut. Ada banyak cara untuk mengorganisasi skema, atau
memodelkan struktur basis data: ini dikenal sebagai model basis data atau model data. Model yang umum digunakan sekarang
adalah model relasional, yang menurut istilah layman mewakili semua informasi
dalam bentuk tabel-tabel yang saling berhubungan dimana setiap tabel terdiri
dari baris dan kolom (definisi yang sebenarnya menggunakan terminologi
matematika). Dalam model ini, hubungan antar tabel diwakili denga menggunakan
nilai yang sama antar tabel. Model yang lain seperti model hierarkis dan model jaringan menggunakan cara
yang lebih eksplisit untuk mewakili hubungan antar tabel.
Istilah basis data mengacu pada koleksi dari data-data yang saling berhubungan, dan perangkat lunaknya seharusnya mengacu sebagai sistem manajemen basis data (database management system/DBMS). Jika konteksnya sudah jelas, banyak administrator dan programer menggunakan istilah basis data untuk kedua arti tersebut.
Istilah basis data mengacu pada koleksi dari data-data yang saling berhubungan, dan perangkat lunaknya seharusnya mengacu sebagai sistem manajemen basis data (database management system/DBMS). Jika konteksnya sudah jelas, banyak administrator dan programer menggunakan istilah basis data untuk kedua arti tersebut.
Beberapa definisi tentang Database :
1.
Menurut Gordon C. Everest :
Database adalah
koleksi atau kumpulan data yang mekanis, terbagi/shared, terdefinisi secara
formal dan dikontrol terpusat pada organisasi.
2. Menurut C.J. Date :
Database adalah
koleksi “data operasional” yang tersimpan dan dipakai oleh sistem aplikasi dari suatu organisasi.
- Data input adalah data yang masuk dari luar sistem
- Data output adalah data yang dihasilkan sistem
- Data operasional adalah data yang tersimpan pada sistem
Database adalah
sebuah sistem file-file yang terintegrasi yang mempunyai minimal primary key
untuk pengulangan data.
4. Menurut S. Attre :
Database adalah
koleksi data-data yang saling berhubungan mengenai suatu organisasi /
enterprise dengan macam-macam pemakaiannya.
Jadi SISTEM DATABASE adalah sistem penyimpanan data memakai komputer.
Sifat-sifat database :
- Internal : Kesatuan (integritas) dari file-file yang terlibat.
- Terbagi/share : Elemen-elemen database dapat dibagikan pada para user baik secara sendiri-sendiri maupun secara serentak dan pada waktu yang sama (Concurrent sharing).
Basis data :
Adalah sekumpulan data persistence yang saling terkait, menggambarkan suatu organisasi(enterprise).
Suatu sistem yang mengelola data dan menyediakan data
tersebut apabila dibutuhkan. Komponen utama Sistem Basis
data :
- H/W : storage, processor, memory.
- Data yang disimpan dalam basis data.
- S/W : DBMS, Report-writer, design arts, dll.
Penggguna :
Pengguna Biasa (Casual User)
Programmer
Administrator
Pengguna Awam (Naïve User)
Sistem basis data vs Kertas :
Kepadatan : Tidak diperlukan jumlah kertas yang sangat banyak untuk menyimpan data dan cukup ringkas.
Kecepatan :
Data dapat diambil dan dimanipulasi lebih cepat dibandingkan pencarian secara manual dari kertas.
Kemudahan :
Mengurangi pekerjaan yang menjemukan jika harus berurusan dengan berlembar-lembar kertas.
Kekinian :
Data yang disimpan adalah data yang akurat sesuai perkembangan (up to date) dan dapat disediakan pada saat yang dibutuhkan.
Baca Juga : Tips Membuat Daftar Riwayat Hidup
Keuntungan Basis data :
- Mereduksi redundansi yang akibatnya mengurangi inkonsistensi.
- Data dapat dishare antar aplikasi.
- Standarisasi data dapat dilakukan.
- Batasan security dapat diterapkan.
- Mengelola integritas (Keterjaminan Akurasi) data.
- Menyeimbangkan kebutuhan yang saling konflik.
- Independensi data (objektif DBS) : kekebalan aplikasi terhadap perubahan struktur penyimpanan dan teknik pengaksessan data.
- Basis data harus dapat berkembang tanpa mempengaruhi aplikasi yang telah ada.
Database Administrator :
Adalah orang yang memiliki kontrol utama terhadap keseluruhan sistem basis data (mencakup data & program).
Fungsi :
- Pendefinisian skema.
- Pendefinisian struktur penyimpanan & metode akses.
- Modifikasi skema & organisasi fisik.
- Pemberian otorisasi bagi pengaksesan data.
- Mendefinisikan bagian basis data yang mana yang dapat diakses oleh seorang pemakai, termasuk operasi-operasi yang dapat dilakukan.
- Spesifikasi batasan integritas
Data Administrator :
Fungsi :
- Adalah orang yang bertanggung jawab dalam kontrol terhadap data.
- Menentukan data apa yang harus disimpan.
- Menentukan aturan dalam penanganan data.
Gambar1.
Abstraksi Data
Penjelasan
:
- Physical/Internal Level :
-
Bagaimana data disimpan.
-
Deskripsi detil struktur data.
- Conceptual Level :
-
Data apa yang tersimpan (Reprensentasi
abstrak).
-
Relasi antar data.
-
Digunakan oleh DBA.
- View/External Level :
-
Mendeskripsikan sebagian basis data.
-
Digunakan oleh pengguna.
- Data Definition Language(DDL)
Perintah-perintah yang digunakan oleh database administrator
untuk mendefinisikan sekema ke DBMS. Secara detil hal
yang perlu dijabarkan pada DBMS :
-
nama basis data,
-
nama seluruh
berkas pada basis data,
-
nama rekaman dan medan,
-
deskripsi berkas,
rekaman dan medan,
-
nama medan kunci,
-
nama indeks dan
medan yang menjadi indeks .
-
hal lain seperti ukuran basis data.
DDl
juga digunakan untuk menciptakan, mengubah, dan menghapus basis data.
- Data Manipulation Language(DML)
DML
adalah perintah-perintah yang digunakan untuk mengubah, memanipulasi dan
mengambil data pada basis data. Tindakan seperti
menghapus, mengubah, dan mengambil data menjadi bagian dari DML. DML
dibagi atas 2 jenis :
- Prosedural
Yang menuntut pengguna menetukan data apa saja yang
diperlukan dan bagaimana cara mendapatkannya.
- Nonprosedural
Yang
menuntut pengguna menentukan data apa yang diperlukan tetapi tidak perlu
menyebutkan cara mendapatkannya.
·
Pemodelan Data :
o
Object based Logical Model
-
Untuk
mendeskripsikan data level konseptual dan view.
-
Penstrukturan data
dilakukan berbasis objek.
-
Contoh : entity-Relationship model,
Object-oriented Model.
o
Record based Logical Model
-
Untuk mendeskripsikan data level
Koseptual & view.
-
Mendeskrisikan
struktur lojik keseluruhan basis data.
-
Menstrukturkan basis data dalam
sejumlah fixed format records.
o
Physical data Model
-
Untuk
mendeskripsikan data pada level terendah.
·
Instans dan skema :
o
Instan :
-
Adalah sekumpulan data yang tersimpan
di dalam basis data pada suatu waktu tertentu.
-
Memiliki frekuensi
perubahan yang tinggi.
o
Skema :
-
Adalah desain keseluruhan basis data.
-
Memiliki frekuensi
perubahan yang sangat rendah.
-
Umumnya, sebuah
basis data akan memliki satu skema fisik.
-
Idependensi data :
kemampuan untuk mendefinisikan skema pada suatu level tanpa mempengaruhi skema
di level berikutnya.
·
Struktur Sistem Basis Data :
o
File Manager
Mengelola
space & struktur data.
o
Database Manager
Menyediakan antarmuka dengan data fisik.
o
Query Processor
Menterjemahkan
query ke instruksi yang dimengerti Database Manager.
o
DML Precompiler
Mengkonversi perintah DML menjadi calls normal.
o
DDL Compiler
Mengkonversi perintah DDL menjadi metadata.
Baca Juga : Tips Wawancara Kerja
Database Temporal:
Database temporal merupakan database
non-relational yang terintegrasi dengan aspek waktu, misalnya model
data temporal dan versi temporal dari bahasa query terstruktur. Lebih
spesifik lagi aspek temporalnya biasa sudah termasuk waktu yang valid dan waktu
transaksi. Atribut-atribut ini muncul
bersamaan pada form data bitemporal.
- Waktu yang valid ditunjukkan dengan periode waktu kejadian yang sama dengan waktu pada dunia sebenarnya
- Waktu transaksi adalah periode waktu saat menyimpan suatu kejadian ke database
- Data bitemporal mengkombinasikan waktu valid dan waktu transaksi
Keterangan: kedua periode waktu tidak harus sama untuk
suatu kejadian yang sama. Misalkan kita menyimpan databse pada database
temporal pada abad ke 18. Waktu yang valid adalah diantara 1701 dan 1800. Sedangkan
waktu transaksi dihitung pada saat kita memasukan suatu kejadian ke dalam
databse, contoh 21 Januari 1998.
Mengapa Kita Butuh Database Temporal:
Sejak dua decade terakhir, model data relational sudah
menjadi sangat popular karena simpel dan memiliki fondasi matematis yang solid.
Namun, model data relational seperti yang dikatakan Codd[Cod70] tidak menyimpan
address dari dimensi temporal suatu data. Data yang seharusnya dibedakan dari
waktunya tetap diperlakukan sama dengan data lainnya. Hal ini tidak memenuhi
aplikasi yang harus membedakan nilai data pada waktu lampau, saat ini, dan/atau
data pada masa depan—padahal dikehidupan nyata kita akan sering berurusan
dengan data seperti ini. Kenyataannya, kebanyakan aplikasi membutuhkan data temporal untuk keperluan
tertentu.
« Tujuan Utama dari Database Temporal:
- Mengidentifikasi tipe data yang cocok dengan waktu
- Mencegah hilang/berubahnya deskripsi suatu objek tertentu
- Menyediakan aljabar query untuk mengatasi data temporal
- Tetap compatible dengan database lama yang tidak menggunakan data temporal
« Apa yang Dapat Kita Lakukan dengan Database
Temporal:
- Mudah dalam mengerjakan data temporal
- Merecord setiap perubahan data dengan baik sekali
- Setiap pendeskripsian objek dapat didefinisikan tanpa ada perubahan yang tidak diinginkan
- Memiliki model relational untuk mendeskripsikan data temporal
- Memiliki aljabar query untuk mengatasi data temporal
- Tetap mampu mengatasi data static (tanpa dimensi waktu) pada database temporal
- Aljabar database yang lama tetap dapat berjalan di database temporal
- Aljabar query yang baru untuk mengkontrol dimensi waktu mirip dengan aljabar database yang lama
- Menambahkan waktu valid
- Menambahkan waktu transaksi
- Menambahkan kedua hal di atas
- Pendekatan lainnya
Untuk
memperjelas pengertian mengenai database temporal, maka saya akan memasukan
sebuah contoh yang membandingkan penanganan suatu kasus bila dibuat database
secara biasa dan dengan database menggunakan database temporal.
Contoh kasus :
yang diambil berasal dari biografi singkat tokoh buatan bernama Firmansyah.
Firmansyah lahir pada tanggal 3 April 1975 di rumah sakit Medicine County,
sebagai anak dari Willy Mulyadi dan Irma Mulyadi yang bertempat tinggal di
Smallville. Willy Mulyadi dengan bangga mendaftarkan kelahiran anak pertamanya
tanggal 4 April 1975 di kota Smallville. Firman tumbuh besar menjadi seorang
pelajar cemerlang dan lulus dengan sangat baik pada tahun 1993. Setelah
kelulusan, ia pergi untuk hidup sendiri di kota Bigtown. Meski Firman pindah
pada tanggal 26 Agustus 1994, ia lupa untuk mendaftarkan perubahan alamatnya
secara resmi. Hingga akhirnya pada akhir musim, ibunya mengingatkan Firman
untuk mendaftarkan kepindahannya, yang kemudian ia lakukan beberapa hari
setelahnya yaitu pada 27 Desember 1994. Meskipun Firman memiliki masa depan
yang sangat menjanjikan, namun kisahnya berakhir dengan tragis. Firmansyah
mengalami kecelakaan tertabrak truk pada 1 April 2001. Yang pada hari itu juga
langsung dilaporkan berita kematiannya secara resmi.
«Menggunakan Database Standar:
Untuk
menyimpan kehidupan Firmansyah di sebuah (non-temporal) tabel database, kita
menggunakan table Person(Name,Address). Untuk
memudahkan, Name kita buat menjadi primary key dari tabel Person.
Ayah Firman secara resmi melaporkan kelahiran anaknya
pada 4 April 1975. Hal ini berarti pada sebuah kantor di Smallville, dimasukan
data berikut ke database pada tanggal saat itu: Person(Firmansyah,Smallville). Perhatikan
bahwa tanggalnya sendiri tidak dimasukan ke database. Setelah lulus
kemudian Firman pindah, namun ia lupa mendaftarkan alamat barunya. Data milik Firman
pada database tidak berubah sampai 27 Desember 1994, yaitu ketika akhirnya ia
mendaftar ke kantor di Bigtown. Kantor di Bigtown mengupdate alamatnya di database.
Tabel Person saat ini berisi
Person(Firmansyah,Bigtown). Perhatikan bahwa informasi alamat Firman
di Smallville telah ditimpa. Maka tidak ada cara untuk mengakes
informasi yang hilang tersebut melalui database. Setiap kantor yang mengakses
databse pada 28 Desember 1994 akan mendapatkan Firman tinggal di Bigtown.
Secara teknis: jika sebuah komputer melakukan query SELECT ADDRESS FORM PERSON
WHERE NAME=’Firmansyah’ pada 26 Desember 1994, menghasilkan: Smallville.
Menjalankan query yang sama pada 2 hari selanjutnya menghasilkan Bigtown.
Sampai dengan kematian trgaisnya, database akan
menyatakan Firman tinggal di Bigtown. Pada 1 April 2001 akhirnya petugas
menghapus Firmansyah dari databse. Maka pemanggilan query di atas tidak akan
menghasilkan hasil apapun.
Tanggal
|
Yang terjadi di dunia nyata
|
Perubahan di Database
|
Tampilan di Database
|
3
April 1975
|
Kelahiran
Firman
|
Tidak
ada
|
Tidak ada Person dengan nama Firmansyah
|
4
April 1975
|
Hendro melaporakan kelahiran anaknya ke kantor secara resmi
|
Inserted:Person(Firmansyah,
Smallville)
|
Firmansyah tinggal di Smallville
|
26
Agustus 1994
|
Setelah
kelulusan, Firman pindah ke Bigtown, namun lupa untuk meregristasikan alamat
barunya
|
Tidak
ada
|
Firmansyah tinggal di Smallville
|
26
Desember 1994
|
Tidak
ada
|
Tidak
ada
|
Firmansyah tinggal di Smallville
|
27
Desember 1994
|
Firman
mendaftarkan alamat barunya
|
Updated:Person(Firmansyah,
Bigtown)
|
Firmansyah
tinggal di Bigtown
|
1
April 2001
|
Firman
meninggal
|
Deleted:Person(Firmansyah)
|
Tidak ada Person dengan nama Firmansyah
|
Baca Juga : Tips Menulis Surat Lamaran Kerja
«Menggunakan Database Temporal dengan Waktu yang Valid:
Waktu yang valid (valid time) yang berarti waktu
sebernarnya di dunia nyata. Pad contoh di atas, tabel Person mendapat dua
fields tambahan, yaitu Valid-From dan Valid-To, yang menjelaskan kapan Address
seseorang berlaku di dunia nyata. Pada 4 April 1975, Hendro dengan bangga
mendaftarkan kelahiran anak pertamanya. Maka petugas akan memasukkan data
tersebut ke database yang menjelaskan Firman bertempat tinggal di Smallville
sejak 3 April. Perlu diketahui meski data dimasukkan pada 4 April, namun
database menjelaskan bahwa informasi tersebut berlaku sejak tanggal 3. Petugas
belum mengetahui apakah atau kapan Firman akan berpindah ke tempat lain,
sehingga pada field Valid-To di database diisi dengan infinity
(∞). Pemasukkan data ke basisdata berupa:
Person(Firmansyah, Smallville, 3-Apr-1975, ∞).
Pada tanggal 27 Desember 1994, Firman melaporkan alamat
barunya di Bigtown yang sudah ia tinggali sejak 26 Agustus 1994. Petugas di
kantor Bigtown tidak merubah alamat milik Firman di database. Sang petugas
menambahkan yang baru:
Person
(Firmansyah, Big Town, 26-Aug-1994, ∞).
Masukan data milik Firman sebelumnya (Firmansyah,
Smallville, 3-Apr-1975, ∞) kemudian diupdate (tidak dihapus!). karena diketahui
Firman sudah tidak tinggal di Smallville pada 26 Agustus 1994, maka kolom
Valid-To dapat terisi. Database kemudian memiliki dua buah entry milik Firman
Person(Firmansyah, Smallville, 3-Apr-1975, 26-Aug-1994).
Person(Firmansyah, Bigtown, 26-Aug-1994, ∞).
Saat Firman meninggal, database diupdate sekali lagi.
Entry terbaru akan diupdate menyatakan bahwa Firman tidak tinggal di Bigtown
lagi. Tidak ada entry yang ditambahkan karena tidak pernah dilaporkan surge
sebagai alamat baru. Maka database sekarang akan seperti ini
Person(Firmansyah, Smallville, 3-Apr-1975, 26-Aug-1994).
Person(Firmansyah,
Bigtown, 26-Aug-1994, 1-Apr-2001).
«Menggunakan Database Temporal dengan Waktu
Transaksi:
Waktu transaksi adalah penggunaan database temporal
menggunakan waktu pada saat transaksi dilakukan. Dengan ini kita dapat
menggunakan queri-queri yang menampilkan status database pada waktu tertentu.
Maka ada dua tambahan kolom di tabel Person: Transaction-From dan
Transaction-To. Transaction-From merupakan waktu saat transaksi dilakukan,
sedangkan Transaction-To adalah waktu transaksi dibatalkan (atau menggunakan
tak terhingga jikan belum akan dibatalkan).
Apakah yang akan terjadi jika alamat seseorang yang ada
di database merupakan alamat yang salah? Anggap seorang petugas secara tidak
sengaja memasukkan alamat atau tanggal yang salah? Atau, anggap orang yang
memasukkan data berbohong ketika memberi informasi untuk keperluan tertentu.
Setelah mengetahui data yang benar, maka petugas harus kembali mengupdate
database tersebut.
Sebagai contoh, dari 1 Juni 1995 hingga 3 September 2000 Firmansyah pindah
ke Beachy. Namun untuk menghindari membayar pajak kota Beachy yang sangat
mahal, Firman tidak pernah melapor ke yang berwewenang. Akhirnya, hal tersebut
terungkap pada 2 Februari 2001 saat ada pengecekan pembayaran pajak, bahwa dia
sebenarnya tinggal di Beachy selama ini, maka para petugas mengupdate database
menjadi seperti ini:
Person(Firmansyah,
Bigtown, 26-Aug-1994, 1-Jun-1995).
Person(Firmansyah,
Beachy, 1-Jun-1995, 3-Sep-2000).
Person(Firmansyah,
Bigtown, 3-Sep-2000, 1-Apr-2001).
Maka
2 data yang sudah ada di update, dan sebuah data baru dimasukkan menyimpan
keberadaannya di Beachy.
Bagaimanapun,
hal ini tidak meninggalkan catatan di database yang menyatakan Firman tinggal
di Bigtown dari 1 Juni 1995 hingga 3 September 2000, yang mungkin sangat
penting untuk alasan mengaudit data (atau untuk menjadi bukti pada investigasi
kantor pajak). Di sini kita dapat melihat waktu transaksinya. Kita harus
menyimpan setiap data ketika dimasukkan dan ketika dibatalkan. Maka dari itu, kita memperoleh data seperti berikut:
Person(Firmansyah, Smallville, 3-Apr-1975,
∞,
4-Apr-1975, 27-Dec-1994).
Person(Firmansyah,
Smallville, 3-Apr-1975, 26-Aug-1994, 27-Dec-1994,
∞ ).
Person(Firmansyah,
Bigtown, 26-Aug-1994,
∞, 27-Dec-1994,
2-Feb-2001 ).
Person(Firmansyah,
Bigtown, 26-Aug-1994, 1-Jun-1995, 2-Feb-2001,
∞ ).
Person(Firmansyah,
Beachy, 1-Jun-1995, 3-Sep-2000,
2-Feb-2001, ∞ ).
Person(Firmansyah,
Bigtown, 3-Sep-2000,
∞,
2-Feb-2001, 1-Apr-2001 ).
Person(Firmansyah,
Bigtown, 3-Sep-2000, 1-Apr-2001,
1-Apr-2001, ∞ ).
Jadi,
kita tidak hanya menyimpan apa yang terjadi di waktu yang berbeda, tetapi
kita juga menyimpan data yang berubah secara resmi pada waktu yang berbeda.
Permasalah
utama pada database dengan waktu transaksi adalah saat mengembangkan
queri-queri temporal dibawah penggunaan skemanya. Untuk mencapai pengarsipan
data yang sempurna, sangat penting untuk menyimpan data dibawah skema awal
ketika database dibuat. Namun, sesimpel apapun queri temporal, riwayat sebuah
atributnya tetap butuh ditulis manual di setiap versi skemanya, dan mungkin
ratusan kasus seperti pada kasus MediaWiki (http://yellowstone.cs.ucla.edu/schema-evolution/index.php/Schema_Evolution_Benchmark).
Proses ini membutuhkan usaha yang sangat besar dari pengguna untuk merapihkan
database tersebut. Penyelesaian umumnya dilakukan dengan menyediakan penulis
queri secara otomatis.
Sebelum
melanjutkan ke topik selanjutnya, perlu diingat satu konsep penting tentang ke
presisian waktu yang di simpan di database temporal. Konsep ke presisian dari
sebuah database temporal disebut granularity of the time (serpihan
waktu). Granularity merupakan unit terkecil durasi waktu yang
disimpan pada database temporal kita. Contoh serpihan waktunya yaitu satu hari,
satu jam, atau satu detik.
«Konsep Utama dalam Memahami Database Temporal
Telah kita ketahui dua tipe waktu utama dalam konsep
database temporal, yaitu waktu transaksi (transaction time) dan waktu yang
valid (valid time), memungkinkan 3 bentuk database temporal : Historical,
Rollback, dan Bitemporal. Sebuah database temporal historical dapatmensuport
valid time, tapi tidak dapat menggunakan transaction time. Tipe kedua yaitu
rollback database, database ini kebalikannya dari database historical, yaitu
menggunakan transaction time dan tidak dapat menggunakan valid time. Rollback
database sangat berguna dalam data recovery setelah jika terdapat kerusakan pada
temporal database. Sebuah database rollback juga diperlukan jika database tidak
di proteksi untuk menjaga keamanan data. Sehingga saat ini pada pasar tingkat
dunia, minimal biasanya menyediakan beberapa fitur rollback.
Temporal
database yang sebenarnya adalah database bitemporal. Database ini mensuport
keduanya, yaitu transaction time dan valid time, sehingga menghasilkan
kombinasi bentuk database historical dan rollback. Database bitemporal mampu
mengatasi permasalahan dimensi waktu; dalam tingkat DBMS yaitu transaction
time, dalam tingkat data yaitu valid time, dan dalam tingkat user menggunakan
user-defined time.
«Tujuan Utama bagi Database Temporal ( Kemampuan
Query )
Salah satu faktor terpenting dalam menggunakan database
yang mensuport dimensi temporal, yaitu kemampuan untuk menjalankan data dengan
query. Saat ini yang umum digunakan untuk
database conventional (relational) adalah Structured Query Language atau yang
biasa kenal dengan SQL. SQL sudah menjadi bahasa standar di industri untuk
Relational Database Management Systems (RDBMS) karena kemudahan dalam
menggunakannya yang sintaksnya mirip dengan bahasa Inggris langsung. SQL
termasuk user friendly dan dapat digunakan untuk berbagai keperluan.
Bagaimanapun penambahan element temporal ini meningkatkan kompleksitas query
pada data temporal. Dengan penambahan elemen time, dalam kemampuannya saat ini
SQL tidak dapat memproses query query tersebut seperti biasanya pada kondisi
database klasik (relational). Bahasa query yang baru atau perluasan dari SQL sangat
diperlukan di sini. Perlu diketahui, salah satu permasalahan terbesar yang
diteliti saat-saat ini adalah di bagian temporal database. Hari-hari ini, tidak
sedikit bahasa-bahasa dan perluasan bahasa-bahasa query yang mengajukan dan
membahas topik ini. Topik ini cukup memerlukan perhatian khusus, dan salah satu
contohnya akan diberikan berikut ini.
Bahasa
query temporal yang baru harus dapat mensuport kemampuan SQL tanpa mengurangi
kemampuan sebelumnya. SQL sudah memberi bantuan yang sangat besar dan mendominasi
RDBMS saat ini karena, seperti yang kita ketahui sebelumnya, SQL cocok untuk
banyak keperluan bisnis dan merupakan bahasa yang user friendly. Salah satu
bahasa query yang paling diharapkan adalah bahasa query yang mensuport dimensi
waktu dan tetap memungkinkan user memasukan query tanpa menetapkan dimensi
waktunya (hal tersebut menhindari biaya lebih). Dan bahasa tersebut bukanlah
sebuah bahasa yang baru, melainkan perluasan dari bahasa SQL. Satu contoh yang
paling menarik adalah TSQL. TSQL yang merupakan Temporal Structured Query
Language dapat berjalan tanpa harus memasukkan kriteria waktu. Karena demikian,
ketentuan-ketentuan utama dari query TSQL masih sama dengan ketentuan-ketentuan
di SQL: yaitu ‘SELECT’ dan ‘FORM’. Jika perlu juga terdapat ‘WHERE’, ‘GROUP
BY’, ‘HAVING’, dan ‘ORDER BY’. Kriteria tambahan pada TSQL dapat berupa ‘WHEN’
atau ‘WHILE’. Kedua nama query tersebut bermaksud menjelaskan perbedaan kondisi
waktu. Klausa ‘WHEN’ menjelaskan perincian “sepotong waktu” untuk data yang valid
atau tidak valid tergantung hasil yang diinginkan. Saat ini, pengajuan untuk
menambahkan TSQL ke ANSI dan ISO milik SQL standar sedang dipertimbangkan oleh
pihak-pihak yang mengaudit.
« Beberapa tipe bisnis
Setelah membahas teori-teori mengenai database temporal,
pada bagian terakhir ini saya akan menggabungkan bagian teori dengan bagian
praktiknya langsung mengenai database temporal. Di sini,akan dijelaskan
mengenai beberapa tipe bisnis yang dapat mendapat keuntungan lebih dengan
bantuan database temporal.
«Data Warehouse
Data warehouse atau pergudangan data bukan merupakan
bisnis per se (bukan bisnis itu sendiri, tapi mengambil
dari bisnis lain). Data warehouse ini merupakan usaha yang sangat luas, yaitu
bisnis yang diperuntukan menyimpan seluruh informasi dari beberapa perusahaan.
Data warehouse terbukti sangat berguna sebagai tempat penyimpanan informasi
yang dikumpulkan dengan tools data mining dan digunakan untuk sumber informasi.
Seperti yang sudah kita ketahui, elemen waktu sangat penting untuk berbagai
bisnis, dan dalam sebuah data warehouse dimensi waktu dapat disimpan dan
digunakan dalam peng query an data. Sebenarnya apa
yang data warehouse lakukan dengan adanya database temporal? Menurut Ralph
Kimball, setiap data warehouse memiliki dimensi waktu yang membuat
setiap data warehouse menjadi database warehouse [Kimball 1997],[Snodgrass
1998].”Dimensi waktu adalah unik dan merupakan dimensi yang kuat dalam setiap
kumpulan data dan usaha data warehouse”[Kimball 1997].
«Laboratorium
Ilmiah
Jenis
bisnis yang kedua adalah lab ilmiah (scientific laboratory). Setiap lab tentu
melakukan banyak uji coba dan banyak versi untuk percobaan yang sama, dan
setiap percobaan sering kali melibatkan urutan waktu yang sangat teliti. Agar informasinya tidak ada yang hilang, tentunya harus
disimpan dalam sebuah database. Karena elemen waktu di test ini jelas tidak
bisa dihilangkan, sehingga informasi yang disimpan di sini harus disimpan dalam
database temporal. Satu keuntungan dalam menyimpan informasi ujicoba ilmiah pada
temporal database yang mendukung bahasa query temporal adalah, sebuah pola baru
dan pengetahuan baru dapat digali dari basis data [Loomis 1997].
«Sales dan Marketing
Kedua bisnis ini sangat berkantung pada temporal
database, karena keberhasilan sales dan marketing sangat bergantung pada waktu
yang tepat. Waktu untuk pendekatan dengan pelanggan dan kapan untuk
mengiklankan di lokasi tertentu sangat diperlukan, dan kemampuan untuk
meramalkan informasi ini jauh lebih baik disediakan database temporal daripada
database klasik biasa.
«Multimedia
Jenis
bisnis yang terakhir adalah multimedia. Multimedia merupakan salah satu area bisnis yang paling cepat berkembang
saat ini, terutama melalui jalus internet. Seseorang saat ini dengan mudah
menonton film dari internet, dimana gambar video tersebut sudah tersimpan di
database multimedia yang harus disinkronisasikan dengan data audio yang mungkin
berada di database yang sama atau berbeda. Pengsinkronisasian ini, seperti kata
tersebut sendiri, jelas melibatkan elemen waktu. “Karen multimedia berbasis
waktu, sinkronisasi sangat di butuhkan. Jika diimplementasikan dengan baik,
maka komponen-komponen media tersebut akan ditampilkan dengan ketepatan dari
sinkronisasi yang baik[David]”. “Objek-objek multimedia memiliki relasi dan
ruang temporary yang harus dijaga saat ditampilkan beberapa data memiliki
batasan waktu nyata (real time) saat menyampaian ke stasiun clien[Ozsu]”.
Karena itu, database untuk multimedia, seperti data warehouse, merupakan
instance dari database temporal juga.
Sebagai penutup, akan dibahas sedikit mengenai database
temporal di masa mendatang. Dengan meningkatnya persaingan di lingkungan
bisnis, pengetahuan akan informasi antar organisasi menjadi sumber yang
berharga. Salah satu elemen kunci dari informasi ini adalah dimensi waktu.
Untuk mendapatkan informasis ini, dalam bisnis harus digunakan database
temporal. Dalam menerapkan kemampuan menyimpan variable waktu pada bisnis yang
ada, akan terdapat dua hal yang berpengaruh. Pertama, kebanyakan produsen basis
data komersial akan berlomba-lomba memasukkan kemampuan temporal data di produk
basis data mereka. Kedua, extension temporal database akan dimasukkan ke ANSI
dan ISO SQL standar yang sudah ada. Hal ini akan memungkinkan pengguna untuk
mengambil keuntungan dari fitur temporal baru pada produk database yang biasa
mereka gunakan. Pada titik ini, sebagian besar dari produsen database komersil
akan menggunakan database temporal. Hal ini memungkinkan pengetahuan akan
informasi yang lebih lengkap dan lebih baik dapat disimpan dan diambil dari
database temporal, yang membuat bisnis-bisnis beralih menggunakan temporal
database untuk bersaing dengan bisnis lainnya.
Bitemporal Database
Tabel temporal memungkinkan untuk periode waktu yang akan
disimpan dalam database. Ini sangat ideal untuk menunjukkan perubahan keadaan
obyek . Bitemporal memperluas model ini untuk tidak hanya waktu yang valid,
tetapi untuk saat transaksi tambahan model..Transaksi waktu merupakan waktu
fisik di mana transaksi terjadi dalam database.
Ambil contoh kiriman tiba di gudang. Hal ini bisa terjadi
pada hari Rabu (yang akan menjadi waktu yang valid bahwa pengiriman itu di
gudang). Seorang operator mungkin update sistem pada Kamis untuk negara ketika
kiriman tiba. Saat mereka menambahkan catatan ke sistem akan saat transaksi.
Apa ini memungkinkan kita untuk menentukan di kemudian hari adalah ketika
pengiriman yang diyakini berada di gudang, dan juga ketika pengiriman yang
dikenal berada di gudang sesuai dengan database.
Contoh - Sebuah
Tabel Bitemporal
Berikut adalah contoh tabel yang merinci Bursa saham di berbagai gudang:
ID
|
Saham
|
Qty
|
WHouseId
|
ValidFrom
|
ValidTo
|
TrxStart
|
TrxEnd
|
OperatorId
|
101
|
Susu
|
12
|
LOND01
|
12/11/2006
|
18/11/2006
|
13/11/2006
|
18/11/2006
|
1111
|
115
|
Telur
|
15
|
LOND01
|
12/11/2006
|
23/11/2006
|
13/11/2006
|
24/11/2006
|
1111
|
101
|
Susu
|
5
|
LOND01
|
18/11/2006
|
31/12/9999
|
25/11/2006
|
31/12/9999
|
1201
|
101
|
Susu
|
7
|
LOND02
|
18/11/2006
|
31/12/9999
|
25/11/2006
|
31/12/9999
|
1201
|
115
|
Telur
|
10
|
LOND01
|
23/11/2006
|
31/12/9999
|
24/11/2006
|
31/12/9999
|
1111
|
Dari tabel ini kita
dapat menentukan informasi seperti:
- Gudang LOND01 memiliki 12 peti susu di saham antara November-12 dan 18. Pada 7 titik krat telah dihapus dan (mungkin) diserahkan kepada LOND02 gudang.
- Susu itu diyakini akan dipindahkan pada tanggal 18 November tapi hanya direkam pada tanggal 25.
- Sampai dengan 23 November ada 15 peti telur di LOND01.Pada hari ini 5 krat telah dihapus.
- Pada waktu saat ini, ada 5 peti susu dan 10 peti Telur di LOND01, dan 7 peti Susu di LOND02.
- Kita juga dapat menyimpulkan waktu tunda rata-rata antara ketika sebuah peristiwa terjadi dan ketika login dalam sistem.
- OperatorId tambahan dapat memberitahu kita yang mencatat setiap transaksi.
Basis data (bahasa Inggris: database), atau sering pula dieja basisdata,
adalah kumpulan informasi yang disimpan di
dalam komputer secara sistematik
sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut. Perangkat lunak yang
digunakan untuk mengelola dan memanggil kueri (query)
basis data disebut sistem
manajemen basis data (database management system, DBMS). Sistem
basis data dipelajari dalam ilmu informasi.
Istilah
"basis data" berawal dari ilmu komputer. Meskipun kemudian artinya
semakin luas, memasukkan hal-hal di luar bidang elektronika, artikel ini
mengenai basis data komputer. Catatan yang mirip dengan basis data sebenarnya
sudah ada sebelum revolusi industri yaitu dalam bentuk buku besar, kuitansi dan
kumpulan data yang berhubungan dengan bisnis.
Database
temporal merupakan database non-relational yang terintegrasi dengan aspek
waktu, misalnya model data temporal dan versi temporal dari bahasa query
terstruktur. Lebih spesifik
lagi aspek temporalnya biasa sudah termasuk waktu yang valid dan waktu
transaksi. Atribut-atribut
ini muncul bersamaan pada form data bitemporal.
- Waktu yang valid ditunjukkan dengan periode waktu kejadian yang sama dengan waktu pada dunia sebenarnya
- Waktu transaksi adalah periode waktu saat menyimpan suatu kejadian ke database
- Data bitemporal mengkombinasikan waktu valid dan waktu transaksi
Tabel temporal memungkinkan untuk periode waktu yang akan
disimpan dalam database. Ini sangat ideal untuk menunjukkan perubahan keadaan
obyek . Bitemporal memperluas model ini untuk tidak hanya waktu yang valid,
tetapi untuk saat transaksi tambahan model..Transaksi waktu merupakan waktu
fisik di mana transaksi terjadi dalam database.
DAFTAR PUSTAKA
http://www.cs.aau.dk/~csj/Thesis/pdf/chapter1.pdf,
waktu akses: 10 Juni 2009
http://www.csie.ntu.edu.tw/~hh_lee/temporal/introduction.html,
waktu akses: 10 Juni 2009
http://en.wikipedia.org/wiki/Temporal_database,
waktu akses: 10 Juni 2009
http://www.csie.ntu.edu.tw/~tempdb2007/,
waktu akses: 10 Juni 2009
http://citm.utdallas.edu/publications/whitepapers/wp_temporaldb.htm,
waktu akses : 24 July 2009
http://www.dbdebunk.com/page/page/2317382.htm,
waktu akses: 23 Juni 2009
Baca Juga : Tes Potensi Akademik
Baca Juga : Tes Potensi Akademik