Definitions
Database: way to store data ensuring persistent content and efficient access
Database system: computer storage systems for the manipulation of related data volumes in centralized system (multiuser)
- a system that gives efficient access to large data volumes, allows different requirements of user data and stores data with modifiable structure
Data homogeneity: logical structure which always keeps the same type of information (varying on number and type)
Data heterogeneity: flexible logical structure that allows to keep the same type of information (varying on number and type)
Data integrity: always guarantee the acid properties (atomicity, consistency, isolation, durability)
Incoherence: impossible value of the requested information
Inconsistency: same query gives different results depending on its implementation
ANSI/SPARC abstraction levels:
- External: presentation of the data to users
- Conceptual: logical description of data
- Internal: organization and storage on physical files
Back-end: software which executes all functions specified in a DBMS
Front-end: applications executed over a DBMS
Data requirements: description of data and the relationship between them
Functional requirements: description of the operations to be carried out with the data
ER diagram: graphical representation of all entities and relationships with their attributes
Entities: object (event) from real word → rectangles
Relationships: association of several entities → rhombus
Attributes: entities and relationships information or features → ellipses
Candidate keys: minimum set of attributes that uniquely identifies each instance and do not contain other keys or redundant attributes
Primary key: set of attributes that uniquely identify entities’ instances. candidate key selected by the database designer
Relationships: association b between different related entities instances.
Cardinality: maximum number of instances of an entity that may be associated with an instance of the other entity involved in a relationship
Cardinality 1-1: a customer can only have one loan
Cardinality 1-N: a client can have more than one loan
Cardinality N-1: a loan can be shared among multiple clients
Cardinality N-N: no restrictions
Unary relationship: relation to the same entity
Binary relationship: relationship between two entities
N-ary: relationship between n known entities
Total participation: all elements of A must be related to some element of B (double line)
Partial participation: not all elements of A must be related to some element of B (single line)
Weak entities: entities that do not have enough attributes to define a primary key (double rectangle)
Discriminant: set of attributes which allow distinguishing between instances of the weak entity that depend on the same instance of strong entity (underline points)
Specialization: partition of an entity in specific groups
Generalization: process summarizing multiple entities into a high level entity based on common characteristics (reverse of specialization)
Aggregation: grouping of relationships and participating entities into a new entity
Foreign key: a set of table attributes that are primary key of another table and relates the two tables