Notations for ERD:
There are many ERD notations, but the notations that are commonly used now, are derieved from Peter Chen's notation (aspects from Chen's notation that is not used includes the composite entity and optionalities).
ERD and Schema
The Schema 'may' represent everything that an ERD does, but that does not mean an ERD is a Schema or they can be used interchangably.
An ERD is a conceptual model, it is used to represent the relationships between data (that is required to be stored in the DB). When you map the ERD into a Schema, a decision is made, that is to implement the database using the 'Relational Model' (a conceptual model). Because an ERD may be implemented using the 'Object-oriented model' where in that case you would not use a Schema to represent your model, you would use a 'UML diagram'.
I know this ideas of object-oriented DB model (or others) are not required in the IPT course, which is probably why Sam is saying that the distinction between ERDs and schemas in insignificant in the IPT course, however I think that it is important for people studying IPT to understand:
* the process of developing a Database. From an ERD (DB design) to Schema (DB implementation). Because there are significant decisions that needs to be made between the two stages (althought the IPT course only covers the relational model i think people need to know that other models do exist - as the relational model is not always the best model to use).
* The schema (from MS Access) is only created when the DB is completed, so if you're going to use the schema in the design process - you will print out the schema from Access and place it into the design section of your documentation, which does not make much sense, since the schema is only available
after you've implemented your DB.
Normalisation
It's true that not all DB are normalised to 3NF (or BCNF) when DBs are implemented, this is because:
1. the DB is not designed properly (which does happen to many commercial businesses).
2. to improve performance. (This may seem a bit odd at first, but read on
)
When queries are performed over two relations, these relations need to be JOINed before they can perform the query, and JOINing two relations is a costly operation. So if there are queries which are performed on a regular basis (eg the DB could automatically execute a query every hour) then storing these two relations as one will improve the performance significantly. This technique is known as 'Controlled Redundancy'.
So... not all DB needs to be normalised to the 3NF, however if they are supposed to normalise to the 3NF, this will be represented in the schema and not in the ERD. Normalisation does not occur before the DB design stage, it happens before the DB implementation stage. (the stages that are involved in the DB development process is also, i think, important in the IPT course. Because you learn the System Development Cycle in year 11 and the DB Development Cycle just extends from that, ie the stages are generally the same - you get the data (this also includes business requirements), you design the DB by locating the relationships between the data, you implement the DB etc...)
Cheers!
Waka