Suatu penyusunan database digunakan untuk mengatasi masalah-masalah pada penyusunan data yaitu:
- Redudansi Data dan inkonsistensi data
- Kesulitan pengaksesan data
- Isolasi data untuk standarisasi
- Multiple User
- Masalah Keamanan
- Masalah Integrasi
- Masalah data independence
Redudansi Data dan inkonsistensi data
Jika file-file dan program aplikasi diciptakan oleh programmer yang berbeda pada waktu yang berselang cukup panjang, maka ada beberapa bagian data mengalami penggandaan file-file yang berbeda.
Sebagai contoh : alamat dan nomor telpon dari pelanggan kita tercatat pada file deposito juga pada file rekening Koran dan juga file nasabah. Penyimpanan dibeberapa tempat untuk data yang sama ini disebut sebagai redudansi data dan mengakibatkan pemborosan ruang penyimpanan dan juga biaya untuk mengakses jadi lebih tinggi.
Penyimpanan data yang sama berulang-ulang dibeberapa file mengakibatkan juga inkonsistensi data. Hal ini terjadi suatu ketika pelanggan tersebut pindah alamat dan nomor telponnya maka seharusnya ketiga file yang memuat data tersebut harus diubah/diupdate. Bila salah satu dari file yang mengandung data tersebut terlewat update maka terjadilah tidak konsisten.
Kesulitan pengaksesan Data
Pada suatu saat dibutuhkan untuk mencetak data siapa saja. Pelanggan yang berada di kode pos 55122
Isolasi Data untuk standarisasi
Jika data tersebar dalam beberapa file dalam bentuk format yang berbeda, maka ini menyulitkan dalam menulis program aplikasi untuk mengambil dan menyimpan data. Oleh karena itu maka haruslah data dalam satu database dibuat satu format sehingga mudah dibuat program aplikasinya. Dapat dibayangkan betapa sulitnya membuat program aplikasi bilamana data dibuat dari format text file pascal, BASIC, C++ dan juga format dari versi lotus dan lain-lain.
Multiple User
Dalam rangka mempercepat semua daya guna system dan mendapat responsi waktu yang cepat, beberapa system mengijinkan banyak pemakai untuk mengupdate data secara simultan. Salah satu alasan mengapa database dibangun karena nantinya data tersebut digunakan oleh banyak orang dalam waktu yang berbeda, di akses oleh program yang sama tapi berbeda orang dan waktu. Semua ini memungkinkan terjadi karena data yang diolah tidaklah tergantung dan menyatu dalam program tapi ia terlepas dalam kelompok data.
Masalah Keamanan(Security)
Tidak setiap pemakai system database diperbolehkan untuk mengakses semua data. Misalkan data mengenai gaji pegawai hanya boleh dibuka oleh bagian keuangan dan personalia, tidak diperkenangkan bagian gudang membaca dan mengubahnya.
Keamanan ini dapat diatur lewat program yang dibuat oleh pemrogram atau fasilitas keamanan dari operating system misalnya Linux, Windows 2003 Server serta Novell Netware untuk Local Area Network.
Masalah Integritas
Database berisi file-file yang saling berkaitan, masalah utama adalah bagaimana kaitan antara file tersebut terjadi. Meskipun kita mengetahui bahwa file A berkaitan dengan file B, namun secara teknis maka ada field kunci yang mengaitkan kedua file tersebut.
Masalah Data
Pada suatu aplikasi yang kita buat dengan bahasa pemrograman BASIC misalnya, bila program telah dibuat untuk menyelesaikan masalah pembacaan data untuk file pelanggan denga field no, alamat, maka setelah program jadi dan terdapat perubahan struktur file pelanggan maka program tersebut haruslah diubah. Hal ini disebut bahwa program yang telah dibuat tidak bebas terhadap database yang ada. Berlainan dengan paket bahasa yang diciptakan DBMS, apapun yang terjadi pada struktur file, setiap kali kita hendak melihat data cukuplah dengan utility SELECT, hendak menambah data cukup dengan INSERT, ini berarti perintah-perintah dalam paket DBMS bebas terhadap database. Apapun perubahan dalam database, semua perintah akan mengalami kestabilan tanpa perlu ada yang diubah.
Namun perlu dipikirkan bagaimana bila ada syarat terhadap database yang ada, misalnya syarat pengambilan uang tabungan bank adalah harus disisakan paling minimal Rp. 150.000. Syarat ini tentu dimasukkan dalam aplikasi program yang dibangun. Namun bagaimana jika syarat tersebut telah bergeser dari syarat 150.000 menjadi 200.000 ?. Disini aplikasi program yang telah dibangun haruslah diubah dan ini menunjukkan ketidakbebasan program yang dibuat terhadap database.