Relational Database Systems - Basic concepts

What is the mythical creature called relational database? Briefly, it's an instrument for storing and handling information efficiently and effectively - in the sense that data is protected from accidental loss or coruption, that it doesn't use more resources (human or machine) then necessary, and that it can be retrieved in sensible ways whithin reasonable performance constraints. The database itself is the phisical implementation of a relational model, which is a way of describing some aspects of the real world accordingly to a set of rules proposed by Dr. Codd in late 1960s. In theory, a relational database could be coded from scratch, but in real world you'll usually use the services of a database management system (DBMS). A DBMS is sometimes called a relational database management system (RDBMS), but technically a DBMS must comply with some 300 rules to qualify as relational, and as far as I know, no commercially available sistem fully qualifies. A relational database is a phisical implementation of a relational model (the data model), and it's important to keep these two concepts distinct. While it's almost impossible to completely ignore the constraints of the implementation environment during the design phase, best practice dictates that the original model be as "pure" as possible. Although you might already know that for performance reasons you're going to have to make certain trade-offs during implementation, you can, and should, ignore these decisions during data modelling. An example of this is storing calculated fields (such as TotalOrder) in a base table, which is a major no-no in relational design, but a common technique in practice. Whatever you choose to do with your implementation, your model should not include the calculated field. Freelance Programming