Basis data merupakan kumpulan data yang saling berhubungan (relasi). Relasi biasanya ditunjukan dengan kunci dari tiap file yang ada. Dalam satu file terdapat record-record yang sejenis, sama besar, sama bentuk, yang merupakan satu kumpulan entitas yang seragam. Satu record terdiri dari field yang saling berhubungan menunjukan bahwa field tersebut dalam satu pengertian yang lengkap dan direkam dalam satu record.
Dari pengertian diatas dapat disimpulkan bahwa basis data mempunyai beberapa kriteria penting, yaitu :
1. Bersifat data oriented dan bukan program oriented.
2. Dapat digunakan oleh beberapa program aplikasi tanpa perlu mengubah basis datanya.
3. Dapat dikembangkan dengan mudah, baik volume maupun strukturnya.
4. Dapat memenuhi kebutuhan sistem-sistem baru secara mudah
5. Dapat digunakan dengan cara-cara yang berbeda.
Prinsip utama basis data adalah pengaturan data dengan tujuan utama fleksibelitas dan kecepatan dalam pengambilan data kembali. Adapun Tujuan basis data diantaranya adalah sebagai berikut :
1. Efisiensi meliputi speed, space dan accurancy.
2. Menangani data dalam jumlah besar.
3. Kebersamaan pemakaian (Sharebility).
4. Meniadakan duplikasi dan inkonsistensi data.
Sistem basis data merupakan perpaduan antara basis data dan sistem manajemen basis data (SMBD). Komponen-komponen sistem basis data meliputi :
1. Perangkat Keras (Hardware) sebagai pendukung operasi pengolahan data.
2. Sistem Operasi (Operating System) atau perangkat lunak untuk mengelola basis data.
3. Basis data (Database) sebagai inti dari sistem basis data.
4. Sistem Manajemen Basis Data (SMBD).
5. Pemakai (User).
6. Aplikasi lain.
Perangkat untuk menjaga abstraksi data dikenal dengan sebutan data model. Data model merupakan kumpulan konsep yang dapat digunakan untuk menggambar struktur data. Struktur basis data meliputi tipe data, relationship, dan beberapa syarat yang harus dipenuhi basis data.
Ada beberapa definisi yang umum digunakan dalam basis data, yaitu :
Entitas : Entitas adalah orang, tempat, kejadian atau konsep yang informasinya direkam. Pada bidang Administrasi Siswa misalnya, siswa, buku, pembayaran.
Atribut : Atribut biasa disebut juga data elemen, data field, atau data item yang digunakan untuk menerangkan suatu entitas dan mempunyai harga tertentu, misalnya atribut dari entitas pegawai diterangkan oleh, nama, umur, alamat, pekerjaan.
Data Value (Nilai Data) : Data Value adalah data aktual atau informasi yang disimpan pada tiap data, elemen, atau atribut. Atribut nama pegawai menunjukan tempat dimana informasi nama karyawan disimpan, nilai datanya misalnya adalah Anjang, Arif, Suryo, dan lain-lain yang merupakan isi data nama pegawai tersebut.
File/Tabel : Kumpulan record sejenis yang mempunyai panjang elemen yang sama, atribut yang sama, namun berbeda nilai datanya.
Record/Tuple : Kumpulan elemen-elemen yang saling berkaitan menginformasikan tentang suatu entitas secara lengkap. Satu record mewakili satu data atau informasi.
1. Persyaratan Basis Data
Ada beberapa ketentuan yang harus diperhatikan pada pembuatan file basis data agar dapat memenuhi kriteria sebagai suatu basis data, yaitu :
a) Redudansi dan inkonsistensi data : Penyimpanan data yang sama dibeberapa tempat disebut redundansi, hal ini menyebabkan pemborosan dan menimbulkan inkonsistensi data (data tidak konsisten) karena bila terjadi perubahan terhadap data maka data harus dirubah dibeberapa tempat, hal ini tentunya tidak efisien.
b) Pengaksesan data : Data dalam basis data harus siap diakses oleh siapa saja yang membutuhkan dan mempunyai hak untuk mengaksesnya. Oleh karena itu perlu dibuat suatu program pengelolaan atau suatu aplikasi untuk mengakses data yang dikenal sebagai DBMS.
c) Data terisolasi untuk standarisasi : Jika data tersebar dalam beberapa file dalam bentuk format yang tidak sama, maka akan menyulitkan dalam menulis program aplikasi untuk mengambil dan menyimpan data, oleh karena itu data dalam satu database harus dibuat satu format sehingga mudah dibuat program aplikasinya
d) Masalah keamanan (security) : Tidak setiap pemakai sistem basis data diperbolehkan untuk mengakses semua data, misalnya data mengenai gaji pegawai hanya boleh dibuka oleh bagian keuangan dan personalia, sedang bagian gudang tidak diperkenankan untuk membukanya. Keamanan dapat diatur dan disesuaikan baik ditingkat basis data atau aplikasinya.
e) Masalah integritas (Integrity) : Basis data berisi file yang saling berhubungan, masalah utama adalah bagaimana kaitan antar file tersebut terjadi meski diketahui bahwa file A terkait dengan file B, namun secara teknis ada field yang mengaitkan kedua file tersebut oleh karena itu field kunci tidak dapat diabaikan dalam merancang suatu basis data.
f) Multiple user : Salah satu alasan basis data dibangun adalah karena nantinya data tersebut digunakan oleh banyak orang, baik dalam waktu berbeda maupun bersamaan sehingga kebutuhan akan basis data handal yang mendukung banyak pemakai perlu dipertimbangkan.
g) Data independence (kebebasan data) : Pada aplikasi yang dibuat dengan bahasa pemrograman seperti BASIC misalnya, apabila program telah selesai dibuat dan ternyata terjadi perubahan terhadap struktur file maka program tersebut harus diubah, ini artinya program tersebut tidak bebas terhadap database yang ada. Berlainan dengan paket DBMS apapun yang terjadi pada struktur file, setiap kali hendak melihat data cukup dengan utility LIST. Ini artinya perintah DBMS bebas terhadap database karena apapun perubahan terhadap database, semua perintah akan stabil tanpa ada yang perlu diubah. Data independence dapat dibagi menjadi dua bagian, yaitu :
? Phisycal Data Independence : Kebolehan untuk mengubah pola fisik database tanpa mengakibatkan suatu aplikasi program ditulis kembali. Modifikasi pada level fisik biasanya hanya pada saat meningkatkan daya guna.
? Logical Data Independence : Kebolehan mengubah pola konseptual tanpa mengakibatkan suatu aplikasi program ditulis kembali. Modifikasi pada level konseptual teristimewa saat struktur logika database berubah, ditambahkan atau dikurangi.
2. Abstraksi Data
Kegunaan utama sistem basis data adalah agar pemakai mampu menyusun suatu pandangan abstraksi dari data. Bayangan mengenai data tidak lagi memperhatikan kondisi sesungguhnya bagaimana satu data masuk ke database disimpan dalam sektor mana, tetapi menyangkut secara menyeluruh bagaimana data tersebut dapat diabstraksikan mengenai kondisi yang dihadapi oleh pemakai sehari-hari. Sistem yang sesungguhnya, tentang teknis bagaimana data disimpan dan dipelihara seakan-akan disembunyikan kerumitannya dan kemudian diungkapkan dalam bahasa dan gambar yang mudah dimengerti oleh orang awam.
Ada tiga kelompok pemakai dalam tingkatan abstraksi saat memandang suatu database, yaitu :
? Level Fisik : Level ini merupakan level abstraksi paling rendah karena menggambarkan bagaimana data disimpan dalam kondisi sebenarnya.
? Level Konseptual : Level ini menggambarkan data apa yang disimpan dalam database dan hubungan relasi yang terjadi antara data dari keseluruhan database. Pemakai tidak memperdulikan kerumitan dalam struktur level fisik lagi, penggambaran cukup dengan memakai kotak, garis,dan hubungan secukupnya.
? Level Pandangan Pemakai (View level) : Level ini merupakan level abstraksi data tertinggi yang menggambarkan hanya sebagian saja yang dilihat dan dipakai dari keseluruhan database, hal ini disebabkan beberapa pemakai database tidak membutuhkan semua isi database.