A database is optimized for transactional processing like writes, while a data warehouse is optimized for analytical queries on historical data from multiple sources. A data warehouse contains transformed and aggregated data structured for analysis. It partitions analytical and operational tasks to improve performance and limit locking during data updates. Parallel processing in a data warehouse distributes queries across multiple CPUs to enable faster and more flexible reporting and business intelligence.