« Pengenalan 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 Mudah dalam mengerjakan data temporal Memiliki model relational untuk mendeskripsikan data temporal 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: Merecord setiap perubahan data dengan baik sekali Setiap pendeskripsian objek dapat didefinisikan tanpa ada perubahan yang tidak diinginkan 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 « Solusi lain tentang Database Temporal: Menambahkan waktu valid Menambahkan waktu transaksi Menambahkan kedua hal di atas Pendekatan lainnya Post 2 (23 Juni 2009) 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 Joel Wahyudi. Joel Wahyudi lahir pada tanggal 3 April 1975 di rumah sakit Medicine County, sebagai anak dari Hendro Wahyudi dan Irma Wahyudi yang bertempat tinggal di Smallville. Hendro Wahyudi dengan bangga mendaftarkan kelahiran anak pertamanya tanggal 4 April 1975 di kota Smallville. Joel 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 Joel pindah pada tanggal 26 Agustus 1994, ia lupa untuk mendaftarkan perubahan alamatnya secara resmi. Hingga akhirnya pada akhir musim, ibunya mengingatkan Joel untuk mendaftarkan kepindahannya, yang kemudian ia lakukan beberapa hari setelahnya yaitu pada 27 Desember 1994. Meskipun Joel memiliki masa depan yang sangat menjanjikan, namun kisahnya berakhir dengan tragis. Joel Wahyudi 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 Joel Wahyudi di sebuah (non-temporal) tabel database, kita menggunakan table Person(Name,Address). Untuk memudahkan, Name kita buat menjadi primary key dari tabel Person. Ayah Joel 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(Joel Wahyudi,Smallville). Perhatikan bahwa tanggalnya sendiri tidak dimasukan ke database. Setelah lulus kemudian Joel pindah, namun ia lupa mendaftarkan alamat barunya. Data milik Joel 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(Joel Wahyudi,Bigtown). Perhatikan bahwa informasi alamat Joel 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 Joel tinggal di Bigtown. Secara teknis: jika sebuah komputer melakukan query SELECT ADDRESS FORM PERSON WHERE NAME=’Joel Wahyudi’ pada 26 Desember 1994, menghasilkan: Smallville. Menjalankan query yang sama pada 2 hari selanjutnya menghasilkan Bigtown. Sampai dengan kematian trgaisnya, database akan menyatakan Joel tinggal di Bigtown. Pada 1 April 2001 akhirnya petugas menghapus Joel Wahyudi 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 Tidak ada Person dengan nama Kelahiran Joel Tidak ada 1975 Joel Wahyudi 4 April Hendro melaporakan kelahiran Inserted:Person(Joel Joel Wahyudi tinggal di 1975 anaknya ke kantor secara resmi Wahyudi, Smallville) Smallville Setelah kelulusan, Joel pindah ke 26 Agustus Joel Wahyudi tinggal di Bigtown, namun lupa untuk Tidak ada 1994 Smallville meregristasikan alamat barunya 26 Joel Wahyudi tinggal di Desember Tidak ada Tidak ada Smallville 1994 27 Joel mendaftarkan alamat Updated:Person(Joel Joel Wahyudi tinggal di Desember barunya Wahyudi, Bigtown) Bigtown 1994 1 April Deleted:Person(Joel Tidak ada Person dengan nama Joel meninggal 2001 Wahyudi) Joel Wahyudi Post 3 (1 July 2009) «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 Joel 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 Joel akan berpindah ke tempat lain, sehingga pada field Valid-To di database diisi dengan infinity (∞). Pemasukkan data ke basisdata berupa: Person(Joel Wahyudi, Smallville, 3-Apr-1975, ∞). Pada tanggal 27 Desember 1994, Joel melaporkan alamat barunya di Bigtown yang sudah ia tinggali sejak 26 Agustus 1994. Petugas di kantor Bigtown tidak merubah alamat milik Joel di database. Sang petugas menambahkan yang baru: Person (Joel Wahyudi, Big Town, 26-Aug-1994, ∞). Masukan data milik Joel sebelumnya (Joel Wahyudi, Smallville, 3-Apr-1975, ∞) kemudian diupdate (tidak dihapus!). karena diketahui Joel sudah tidak tinggal di Smallville pada 26 Agustus 1994, maka kolom Valid-To dapat terisi. Database kemudian memiliki dua buah entry milik Joel Person(Joel Wahyudi, Smallville, 3-Apr-1975, 26-Aug-1994). Person(Joel Wahyudi, Bigtown, 26-Aug-1994, ∞). Saat Joel meninggal, database diupdate sekali lagi. Entry terbaru akan diupdate menyatakan bahwa Joel 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(Joel Wahyudi, Smallville, 3-Apr-1975, 26-Aug-1994). Person(Joel Wahyudi, 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 Joel Wahyudi pindah ke Beachy. Namun untuk menghindari membayar pajak kota Beachy yang sangat mahal, Joel 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(Joel Wahyudi, Bigtown, 26-Aug-1994, 1-Jun-1995). Person(Joel Wahyudi, Beachy, 1-Jun-1995, 3-Sep-2000). Person(Joel Wahyudi, 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 Joel 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(Joel Wahyudi, Smallville, 3-Apr-1975, ∞, 4-Apr-1975, 27-Dec-1994). Person(Joel Wahyudi, Smallville, 3-Apr-1975, 26-Aug-1994, 27-Dec-1994, ∞ ). Person(Joel Wahyudi, Bigtown, 26-Aug-1994, ∞, 27-Dec-1994, 2-Feb-2001 ). Person(Joel Wahyudi, Bigtown, 26-Aug-1994, 1-Jun-1995, 2-Feb-2001, ∞ ). Person(Joel Wahyudi, Beachy, 1-Jun-1995, 3-Sep-2000, 2-Feb-2001, ∞ ). Person(Joel Wahyudi, Bigtown, 3-Sep-2000, ∞, 2-Feb-2001, 1-Apr-2001 ). Person(Joel Wahyudi, 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/schemaevolution/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. Post 4 (24 July 2009) 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. Post 5 (8 Agustus 2009) 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+”. “Objekobjek 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 berlombalomba 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. Pengertian Basis Data Relasional Basis Data relasional menggunakan tabel dua dimensi yang terdiri atas baris dan kolom untuk memberi gambaran sebuah berkas data. Contoh Tabel dan keterhubungannya : MHS NPM 10296832 10296126 31296500 41296525 50096487 21196353 MKUL KDMK KK021 KD132 KU122 NILAI NPM 10296832 10296126 31296500 41296525 21196353 50095487 10296832 Nama Nurhayati Astuti Budi Prananingrum Pipit Quraish Alamat Jakarta Jakarta Depok Bogor Bekasi Bogor MTKULIAH P. Basis Data SIM Pancasila KDMK KK021 KD132 KK021 KU122 KU122 KD132 KD132 SKS 2 3 2 MID 60 70 55 90 75 80 40 FINAL 75 90 40 80 75 0 30 Keuntungan Basis Data Relasional 1. Bentuknya sederhana 2. Mudah melakukan berbagai operasi data · Istilah dalam Basis Data Relasional : Relasi : Sebuah tabel yang terdiri dari beberapa kolom dan beberapa baris. Atribut : Kolom pada sebuah relasi Tupel : Baris pada sebuah relasi Domain : Kumpulan nilai yang valid untuk satu atau lebih atribut Derajat (degree): Jumlah atribut dalam sebuah relasi Cardinality : Jumlah tupel dalam sebuah relasi Relational Key Super key : Satu atribut/kumpulan atribut yang secara unik mengidentifikasi sebuah tupel di dalam relasi Candidate key : Atribut di dalam relasi yang biasanya mempunyai nilai unik Primary key : Candidate key yang dipilih untuk mengidentifikasikan tupel secara unik dalam relasi Alternate key : Candidate key yang tidak dipilih sebagai primary key Foreign key : Atribut dengan domain yang sama yang menjadi kunci utama pada sebuah relasi tetapi pada relasi lain atribut tersebut hanya sebagai atribut biasa Relational Integrity Rules 1. Null Nilai suatu atribut yang tidak diketahui dan tidak cocok untuk baris (tuple) tersebut 2. Entity Integrity Tidak ada satu komponen primary key yang bernilai null. 3. Referential Integrity Suatu domain dapat dipakai sebagai kunci primer bila merupakan atribut tunggal pada domain yang bersangkutan. Bahasa Pada Basis data Relational Menggunakan bahasa query à pernyataan yang diajukan untuk mengambil informasi Terbagi 2 : 1. Bahasa Formal Bahasa query yang diterjemahkan dengan menggunakan simbol-simbol matematis. Contoh: Aljabar relasional Kalkulus relasional · Aljabar Relasional Bahasa query prosedural à pemakai menspesifikasikan data apa yang dibutuhkan dan bagaimana untuk mendapatkannya. · Kalkulus Relasional Bahasa query non-prosedural à pemakai menspesifikasikan data apa yang dibutuhkan tanpa menspesifikasikan bagaimana untuk mendapatkannya. Terbagi 2 : (1) Kalkulus Relasional Tupel (2) Kalkulus Relasional Domain 2. Bahasa Komersial Bahasa Query yang dirancang sendiri oleh programmer menjadi suatu program aplikasi agar pemakai lebih mudah menggunakannya (user friendly). Contoh : • QUEL Berbasis pada bahasa kalkulus relasional · QBE Berbasis pada bahasa kalkulus relasional · SQL Berbasis pada bahasa kalkulus relasional dan aljabar relasional · Contoh-contoh Basis Data Relasional : - DB2 à IBM - ORACLE à Oracle - SYBASE à Powersoft - INFORMIX à Informix - Microsoft Access à Microsoft