This paper describes the design and architecture of a cloud-based relational database system. The system's core component is a storage engine, which is responsible for mapping the logical schema, based on relations, to a physical storage, based on a distributed key-value data store. The proposed stratified architecture provides physical data independence, by allowing different approaches for data mapping and partitioning, while the distributed data store is responsible for providing scalability, availability, data replication and ACID properties. A prototype of the system, named Phoenix, has been developed based on the proposed architecture using a transactional key-value store. Experimental studies on a cluster of commodity servers show that Phoenix preserves the desired properties of key-value stores, while providing relational database functionality at a very low overhead.