Data warehouse atau gudang data merupakan sebuah basis data yang dibangun untuk memberikan dukungan keputusan yang terpisah dengan basis data operasional. Basis data operasional adalah basis data yang digunakan dalam proses transaksi. Sehingga kemudian data yang berada pada basis data operasional atau transaksional itu dipisahkan menjadi data historis yang digunakan untuk keperluan analisis ke dalam sebuah Data warehouse.
Data warehouse merupakan inti dari sistem modern untuk pengambilan keputusan. Data yang berada pada gudang dapat digunakan untuk pemrosesan informasi, analisis serta untuk melakukan data mining. Karena hal tersebutlah data warehouse sangat berguna untuk membantu sebuah perusahaan untuk mengambil langkah kedepannya agar tidak melakukan kesalahan.
Jumlah data operasional dan dimensi yang besar (banyaknya field dan record) menjadi salah satu alasan data warehouse harus dibangun. Dengan data yang besar maka proses query untuk menghasilkan informasi yang dibutuhkan akan membutuhkan waktu yang lama, serta dimensi yang besar juga dapat memengaruhi kompleksitas dari query yang dibuat. Selain dari hal tersebut, beragamnya sumber basis data juga menjadi salah satu alasan untuk dibangunnya data warehouse. Beragamnya sumber akan memberikan kesulitan dalam mendapatkan informasi, karena perbedaan format maka proses yang dilakukan pun akan bertambah dan membuat waktu yang dibutuhkan menjadi panjang. Oleh sebab itu sistem data warehouse harus dibangun agar memudahkan dalam mendapatkan informasi dan pengambilan keputusan, karena data yang ditampilkan harus cepat dan realtime.
Data warehouse memiliki karakteristik tertentu, diantaranya subject oriented, integrated, time variant, dan non-volatile. Data yang dikelola adalah data yang berdasarkan subyek-subyek penting, misalnya pelanggan, produk, penjualan dan keuangan. Model dan analisis data difokuskan untuk pengambilan keputusan bukan untuk operasi harian, sehingga view yang diberikan akan lebih sederhana untuk subyek tertentu karena data yang tidak diperlukan akan dibuang. Data yang dikumpulkan terdiri dari berbagai sumber, maka dilakukan teknik pembersihan dan integrasi diterapkan untuk menjaga integritas data. Integrasi yang dilakukan antara lain konsistensi nama, atribut dan koversi saat melakukan perpindahan data ke data warehouse.
Setiap struktur pada data warehouse mengandung elemen waktu, hal tersebut berbeda dengan basis data operasional yang belum tentu mengandung elemen waktu. Waktu datapun lebih panjang jika dibandingkan dengan basis data operasional yang berupa data kini (current data) yaitu dengan perspektif historis selama 5 sampai dengan 10 tahun.
Penyimpanan data dipisahkan dari basis data operasional, karena akan berdampak ketika melakukan pengaksesan data. Kedua sistem basis data tersebut harus memiliki kinerja yang tinggi. Basis data operasional dirancang untuk indexing, concurrency dan recovery. Sedangkan data warehouse dirancang untuk query kompleks, view multi dimension, dan konsolidasi. Maka data warehouse harus dipisahkan dari basis data operasional karena masing-masing harus memiliki kinerja yang tinggi.
Data yang tersimpan dalam gudang data tidak memerlukan update karena data tersebut tidak memerlukan transaksi, recovery dan concurrency. Maka data warehouse hanya memiliki dua operasi yaitu loading awal dan akses data. Update data tidak diperlukan karena sebelum data dimasukan ke dalam gudang, data tersebut telah melalu beberapa tahapan sehingga data yang masuk merupakan data yang valid, akurat, dan telah dikonversi. Karena karakteristik dari data warehouse tersebut data yang digunakan dalam pengambilan keputusan akan sangat berguna bagi sebuah perusahaan dan dapat menjadikan pengetahuan untuk perusahaan tersebut dalam mengambil keputusan.