Bluh - Logica Data Modelling
10 important questions on Bluh - Logica Data Modelling
What is logival data modelling?
Logical data model: logical design of DB
Physical data model: as stored on disk
= development of a database design
Different paradigms exist
- relational databases
- hierarchical databases
- network databases
- object oriented databases
Relational mode is
- most wide spread model
- underlying model of SQL databases
What are the concepts of the relational model?
Each row in the table is called a tuple or record
The column names are the attributes
A single cell corresponds to an attribute value
Table names and column names are used to help in interpreting the meaning of the values in each row
What are the relational model principles?
- no lists
- no row in table, or table in table
Information is NOT stored in a single table
Informatio is divided across multiple tables so as to avoid duplication of information
such as to avoid problems
- when updating information
- when inserting new information
- when deleting information
- Higher grades + faster learning
- Never study anything twice
- 100% sure, 100% understanding
Why is normalisation essential for the relational database design?
- minimise redundancy (duplication
- minimise anomalies and inconsistencies
The process of "splitting" tables is called "normalisation"
- it is based on functional dependencies between attribute types
- several steps are involved in the normalisation process
Normalised tables can be recombined by using attributes to cross-reference tables
The normalisation process ensures that no information is lost
So what does the relational model do?
- based on set theory
- relational algebra, relational calculus
Implemented in various commercial database software
- oracle, microsoft, IBM
End user needs to know underlying principles to retrieve information from relational database
- SQL query language
What is joining tables?
Happens through the use of certain attributes as
- "key" in their table of origin and as
- "foreign key" in the referencing table
How are associations made in the relational model
- identify the key of relation corresponding to the class on the "1" side
- incude this key as an extra colum(s) in the relation corresponding to the class on the many side
many-to-many association
- identify the keys of both relations
- create a new table with the combination of both keys as primary key of this new relation
How does one go from the conceptual model to the relational model
Translation of UML conceptual model to a relational database design
- class -> relation/table
- attributes -> attribute
Associations
- limitation: only 1-to-many associations can be represented through the mechanism key-foreign key
- one to many -> key-foreign key
- many-to-many -> additional table (relation)
What is a unary association?
1-to-many -> incorporate the key of the relation as foreign key
many-to-many -> create a new table with twice the key as primary key of this new relation
In the case of the unary associations, it is important to clarify the role of the participants in the association when creating the association table -> distinguish between CNR of whole versus CNR of the part
What are the limitations of the relational model
1. [0..1] versus [1..1] = foreign key: "nul" value allowed or not
2. [0..*] versus [1..*]
- a minimum cardinality of 1 cannot be enforced if the maximum cardinality is many
- "a department has at least one employee" cannot be enforced by means of keys & foreign keys
Parallel paths do not ensure ending up with the same object(s) -> same problem as with UML class diagrams
LOOK AT EXAMPLES ^^^^^
The question on the page originate from the summary of the following study material:
- A unique study and practice tool
- Never study anything twice again
- Get the grades you hope for
- 100% sure, 100% understanding
![Trustpilot Logo](/images/design_2020/lp/clp-trustpilot-en.png)