The three phases of database design are conceptual, logical, and physical. The conceptual phase involves defining the entities, attributes, and relationships without considering implementation details. The logical phase maps the conceptual model to a relational schema and defines data types and constraints. The physical phase involves storage, indexing, and other implementation details to optimize performance and manage resources. Some examples of normalization problems are redundant or inconsistent data. Functional dependencies enforce that values in one set of columns uniquely determine values in another set of columns to reduce anomalies. Transactions ensure integrity by grouping related operations that must all complete fully or none at all through properties like atomicity, consistency, isolation, and durability.