What are the differences between ODS and Info Cube?

ODS holds transactional level data. It’s just as a flat table. It’s not based on multidimensional model. ODS have three tables
1. Active Data table (A table containing the active data)
2. Change log Table (Contains the change history for delta updating from the ODS Object into other data targets, such as ODS Objects or InfoCubes for example.)
3. Activation Queue table (For saving ODS data records that are to be updated but that have not yet been activated. The data is deleted after the records have been activated)
Whereas Cube holds aggregated data which is not as detailed as ODS. Cube is based on multidimensional model.
An ODS is a flat structure. It is just one table that contains all data.
Most of the time you use an ODS for line item data. Then you aggregate this data to an info cube
One major difference is the manner of data storage. In ODS, data is stored in flat tables. By flat I mean to say ordinary transparent table whereas in a CUBE, it composed of multiple tables arranged in a STAR SCHEMA joined by SIDs. The purpose is to do MULTI-DIMENSIONAL Reporting
In ODS; we can delete / overwrite the data load but in cube – only add is possible, no overwrite.