This document provides an overview of schema design and data modeling for both relational and non-relational databases. It discusses the history of data modeling including hierarchical and relational models. The goals of data modeling are to avoid anomalies, minimize redesign, and make the model informative for users. Common data modeling patterns like one-to-many, many-to-many, and tree structures are explained. Specific examples are given for modeling comments, products, and categories in a non-relational database.