Anda di halaman 1dari 4

12 Hukum Codd

Hukum 0: Suatu sistem harus memenuhi kualifikasi sebagai relasional, sebagai basisdata, dan sebagai sebuah sistem manajemen: Agar sebuah sistem dapat dikatakan sebagai sistem manajemen basisdata relasional (RDBMS), sistem tersebut harus menggunakan fasilitas relasional-nya secara penuh untuk memanajemen basisdata. Hukum 1: Hukum informasi: Seluruh informasi yang terdapat dalam basisdata harus bisa direpresentasikan hanya dalam satu cara, yaitu dalam bentuk nilai-nilai yang terisi dalam bentuk tabular baris dan kolom. Hukum 2: Hukum Jaminan akses: Seluruh data harus bisa diakses tanpa ada kerancuan (ambiguity). Hukum ini merupakan penegasan dari kebutuhan mendasar atas sebuah kunci primer. Hukum tersebut menjelaskan bahwa setiap nilai skalar dalam basisdata haruslah memiliki alamat secara logikal dengan cara menspesifikasikan nama dari tabel, nama dari kolom, dan nilai kunci primer dari baris data dalam tabel tersebut. Hukum 3: Perlakuan sistematik terhadi nilai NULL: Sebuah sistem manajemen basisdata harus mengijinkan setiap field terisi dengan nilai NULL (kosong). Secara lebih spesifik, ia harus mendukung representasi dari "Hilangnya informasi dan Ketidakbergunaan informasi" secara sistematis, membedakan secara jelas dari nilai-nilai yang lain (contoh: "perbedaan antara nol dengan nilai-nilai numerik lain," dalam kasus nilai-nilai numerik), dan tipe data yang bersifat independen. Termasuk pula representasi tersebut harus dapat dimanipulasi oleh DBMS melalui langkah-langkah yang sistematis. Hukum 4: Katalog online yang aktif haruslah berbasis model relasional: Sistem harus mendukung sebuah katalog relasional yang bersifat online, inline yang bisa diakses untuk pengguna yang sah dalam arti melalui bahasa kueri reguler. Lebih jelas lagi, pengguna harus dapat mengakses struktur data tersebut (katalog) dengan cara yang sama menggunakan bahasa kueri yang digunakan pula untuk mengakses data. Hukum 5: Hukum sub-bahasa data yang komprehensif: Sistem harus mendukung setidaknya satu bahasa relasional yang (a) Memiliki sintaksis linear (b) Dapat digunakan baik secara interaktif maupun melalui program aplikasi

(c) Mendukung operasi pendefinisian data (termasuk pendefinisan view), operasi manipulasi data, aspek kemanan dan pembatasan integritas, operasi-operasi manajemen transaksi (begin, commit, dan rollback). Hukum 6: Hukum pembaruan/update view: Semua view yang secara teoritis dapat diupdate dalam implementasinya juga harus dapat diupdate oleh sistem. Hukum 7: Level tingkat tinggi dalam operasi insert, update, dan delete: Sistem harus mendukung serangkaian operasi-operasi insert, update, and delete dalam satu masa waktu yang sama. Hukum 8: Data secara fisik bersifat independen: Perubahan pada level fisik (bagaimana suatu data disimpan, menggunakan larik ataupun senarai berantai dsb.) harus tidak mengakibatkan perubahan pada struktur di sisi aplikasi pada level yang lebih tinggi. Hukum 9: Data secara logikal bersifat independen: Perubahan pada level logikal (Tabel, kolom, baris) harus tidak mengakibatkan perubahan pada level struktur di sisi aplikasi pada level ang lebih tinggi. Hukum ini secara relatif lebih suli dicapai daripada hukum 8. Hukum 10: Integritas data bersifat independen: Integritas data harus dispesifikasikan secara terpisah dari program aplikasi dan disimpan dalam katalog/struktur dan harus memungkinkan untuk melakukan perubahan terhadap struktur tersebut ketika dibutuhkan tanpa memengaruhi aplikasi yang telah ada. Hukum 11: Distribusi yang bersifat independen: Distribusi atas sebagian dari basisdata ke berbagai lokasi harus dapat diatur sedemikian rupa sehingga tidak terlihat oleh pengguna dari basisdata tersebut. Begitu pula aplikasi-aplikasi yang ada harus tetap dapat beroperasi secara normal seperti biasanya ketika: (a) saat versi dari DBMS yang terdistribusi pertamakali diperkenalkan; dan/ataupun (a) ketika data-data yang terdistribusi tersebut diredistribusikan ke seluruh sistem. Hukum 12: Hukum nonsubversion: Jika sebuah sistem menyediakan antarmuka tingkat rendah, maka antarmuka tersebut tidak dapat digunakan untuk menggagalkan sistem, sebagai contoh, membypass aturan-aturan yang terkait dengan keamanan data, ataupun integritasnya.

Generasi Bahasa Pemrograman


1. Generasi Pertama (Bahasa Mesin) Disebut generasi pertama karena merupakan jenis yang paling awal dikembangkan pada tahun 1940-an dan awal 1950-an dan semua program harus dikodekan dalam bahasa mesin sebagai bahasa internal komputer yang mengeksekusi secara langsung tanpa terjemahan (translation). Menggunakan kode-kode biner (0 dan 1), dengan basis dasar transistor, rumit, sukar dihafal, dan lama. Dikembangkan dengan bilangan oktal dan heksadesimal. Akan menyita waktu dan kondusif untuk membuat kesalahan. Berbeda untuk setiap jenis komputer, sehingga bergantung pada komputer dan tidak standar Semua program harus ada dalam bahasa mesin agar dapat dieksekusi, sehingga bahasa lain yang ditulis programer perlu diterjemahkan oleh komputer ke bahasa mesin untuk eksekusi. 2. Generasi Kedua (Bahasa Assembly) Penggunaan komputer secara komersial tahun 1950-an mengakibatkan dikembangkannya bahasa assembly dengan ciri-ciri: Kode ditandai dengan nama yang mudah diingat seperti ADD, SUB, dan MULT. Alamat penyimpanan (storage addresses) nyata di mana data ditempatkan dapat didefinisikan dengan nama-nama seperti AMT1 dan AMT2 untuk memudahkan rujukan. Bahasa assembly sangat menyerupai bahasa mesin, sehingga untuk menjadi programmer bahasa assembly yang cakap kita harus memahami arsitektur mesin, yakni bagaimana mesin itu secara fisik memproses data. Sama seperti bahasa mesin, bahasa assembly tergantung komputer (tidak portable)dan Untuk menerjemahkan kode-kode diperlukan program khusus yang disebut ASSEMBLER. Bahasa assembly masih digunakan karena begitu mirip dengan bahasa mesin dengan kode yang sangat efisien Untuk membuat system software lebih disukai menggunakan bahasa assembly karena sangat efisiean dalam penggunaan komputer (butuh memori yang kecil) 3. Generasi Ketiga (Bahasa Tingkat Tinggi / High Level Language) Penggunaan komputer dalam bisnis berkembang sangat dramatis pada tahun 1950-an. Bahasa mesin dan assembly terlalu sulit, sehingga muncul third-generation languages (3GLs) yang lebih mudah untuk program dan portable. Disebut tingkat tinggi karena mudah dipelajari & program tingkat-tinggi memerlukan proses penerjemahan oleh komputer yang sangat rumit yang disebut COMPILER atau INTERPRETER. Seperti generasi pendahulunya 1GL dan 2GL, 3GL disebut bahasa prosedural (4GL dan 5GL disebut bahasa nonprosedural), yakni program harus menentukan kumpulan instruksi yang tepat yang dibutuhkan untuk menyelesaikan tugas yang diberikan Contoh bahasa tingkat-tinggi : - FORTRAN (FORmula TRANslator) - Cobol - Pascal - BASIC - MODULA-2 - ADA - Object-oriented programming language

Bahasa C disebut bahasa tingkat-menengah karena format instruksinya dengan bahasa tingkattinggi sekaligus bisa berinteraksi langsung dengan hardware 4. Generasi Keempat (Bahasa Deklaratif) Bahasa pemrograman ini jauh lebih mudah ditulis karena instruksinya sudah sangat mendekati bahasa percakapan sehari-hari. misal : LIST NAMA, ALAMAT, NILAI FOR NILAI > 7 Ciri-ciri : Mudah untuk dipelajari dan dipahami. Tepat untuk pengaksesan database. Memfokuskan pada memaksimalkan produktivitas manusia dari pada minimisasi waktu computer. Nonprosedural. Tersedia dalam software paket yang dapat digunakan untuk mengembangkan aplikasi yang diinginkan Contoh: - Query language seperti SQL (structured query language), QBE (query-by-example) dan INTELLECT - Report generator

5. Generasi Kelima (Object-Oriented Language) Sering digunakan untuk akses database atau membuat sistem pakar (expert system) atau knowledge-based system Dalam konsep, ditujukan untuk bahasa alami (natural languages) yang semirip mungkin dengan hubungan kemanusiaan. Contoh : LISP dan Prolog Sekarang ini banyak sistem pakar dikodekan baik dalam LISP maupun Prolog, meski untuk hal yang sama bisa ditulis dalam C atau C++. Usaha yang sekarang dilakukan adalah memperbaiki bahasa AI (artificial intellegence) dengan mengkombinasikan kemampuan terbaik dari LISP dan Prolog.

Anda mungkin juga menyukai