Oracle Streams allows for the flexible sharing of information between databases. It captures changes made at a source database, stages the changes in queues, propagates the changes to destination databases, and applies the changes. Key components include the capture process, queues, propagations, and apply process. It can be used for messaging, data replication, and data warehouse loading between Oracle and non-Oracle databases.