Designing Data-Intensive Web Applications

The goal of data modeling is enabling the specification of the data used by the application, in a formal yet intuitive way. The result of data modeling is a conceptual schema, which conveys in a simple and readable way the available knowledge about the application data. Designing such a schema is preliminary both to the design of the business functions that operate on the data, and to the implementation of the physical structures supporting data storage, update, and retrieval.
Data modeling is one of the most traditional and consolidated disciplines of Information Technology, for which well-established modeling languages and guidelines exist. For this reason, this book does not propose yet another data modeling language, but exploits the most successful and popular notation, namely the Entity-Relationship (E-R) model.
The essential ingredients of the Entity-Relationship model are entities, defined as containers of structured data, and relationships, representing semantic associations between entities. Entities are described by means of typed attributes, and can be organized in generalization hierarchies, which express the derivation of a specific concept from a more general one. Relationships are characterized by cardinality constraints, which impose restrictions on the number of relationship instances an object may take part in.
This chapter introduces the essential data modeling concepts, sufficient to specify the data schema of a Web application. The bibliographic notes at the...