E-R Modeling
Entity-Relationship model (ER model) in software engineering is an abstract way to describe a database. Describing a database usually starts with a relational database, which stores data in tables. Some of the data in these tables point to data in other tables for instance, your entry in the database could point to several entries for each of the phone numbers that ate yours. The ER model would say that you are an entity, and each phone number is an entity, and the relationship between you and the phone numbers is ‘has a phone number’.
Relationship
An association among entities. e.g., There is a relationship between employees and department, which can be named as Works_in.
Relationship Set
An association of entity sets e.g., Employee_Department
- A relationship instance is an association of entity instances e.g., Shyam Sales.
- Same entity set could participate in different relationship sets..
- An n-array relationship set R relates n entity sets.
- A relationship set involving three entity sets, is known as a ternary relationship.
Entity
Anything that exists and can be distinguished/ real world object which can be distinguished from other objects. e.g., student.
Entity Set
A group of similar entities, e.g., all students.
- All entities in an entity set have the same set of attributes.
- Each entity set has a key.
- Can be mapped to a relation easily.
Weak Entity Set and Strong Entity Set
An entity set may not have sufficient attributes to form a primal key.Such an entity set is termed a weak entity set. An entity set that has a primary key is termed a strong entity set. For a weak entity set to be meaningful, it must be associated with another entity set, called the identifying or owner entity set. Every weak entity must be associated with an identifying entity i.e., the weak entity set is said to be existence dependent on the identifying entity.
Attribute
Properties that describe an entity or we can say attributes descriptive properties possessed by each member of an entity set and each attribute has a domain.
There are many types of attributes
Composite Attribute
Attributes which can have component attribute. E.g., a composite attribute name, with component attributes First_Name, Middle_Name and Last_Name.
Derived Attribute
The value for this type of attribute can be derived from the values of other related attributes or entities. For instance, let us say that the customer entity set has an attribute Loans_Held, which represents how many loans a customer from the bank. We can derive the value for this attribute by counting the number of loan entities associated with that customer.
Descriptive Attribute
lf relationship set has also some attributes associated with it, then we link These attributes to that relationship set. e.g., consider a relationship set depositor with entity sets customer and account. We could associate the attribute Access_Date to that relationship to specify the most recent date 1 which a customer accessed an account.
Single Valued Attribute
Attribute which has only one value, e.g., the Employee_Number attribute for a specific Employee_entity refers to only one employee number.
Multi Valued Attribute
Attributes which can have 0, 1 or more than 1 values. An employee entity set with the attribute Phone_Number. An employee may have zero, one or several phone numbers and different employees may have different numbers of phones.
Notations/Shapes in ER Modeling |
Mapping Cardinalities/Cardinality Ratio/Types of Relationship
ca
Expresses the number of entities to which another entity can be associated via a relationship set. For a binary relationship set R between entity sets A and B, the mapping cardinality must be one of the following.
One to One
An entity in A is associated with at most one entity in associated with at most one entity in A.
One to Many
An entity in A is associated with any number (zero or more) of entites in B. An entity in B, however, can be associated with at most one entity
Many to ManY
An entity in A is assoociated with any number (zoro or more) c entities in B and an entity in B Is associated with any number (zero or more) of entities in A.
Extended E-R Features
The extended E-R features are given below
Specialization
Consider an entity set person with attributes name, street and city. A person may be furtherclassified as one of the following
(i) Customer (ii) Employee
Each of these person types is described by a set of attributes t at includes ail the attributes of entity set person plus possibly additional attributes. The Process of designating subgroupings within an entity set is called specialization.
The specialization of person allows us to distinguish among persons according to whether they are employees or customers.
The refinement from an initial entity set into successive levels of entity subgroupings represents a top-down design process in which distinctions are made explicitly.
Generalization
Basically generalization is a simple inversion of specialization. Some common attributes of multiple entity sets are chosen to create higher level entity set. If the customer entity set and the employee entity set are having several attributes in common, then this commonality can be expressed by generalization.
Here, person is the higher level entity set and customer and employee are lower level entity sets. Higher and lower level entity sets also may designated by the terms super class and subclass, respectively. The person entity set is the super class of the customer and employee subclasses.
Aggregation
Aggregation is used when we have to model a relationship involving entity set and a relationship set. Aggregation is an abstraction through which relationships are treated as higher level entities.
Suppose the relationship set Works_On (relating the entity sets employee branch and job) as a higher_level entity set called Works_On. Such an entity set is treated in the same manner as is any other entity set. We can create a binary relationship manages between Works_On and manager to represent who manages what tasks. Aggregation is meant to represent a relationship between a whole object and its component parts.
Integrity Constraints
Necessary conditions to be satisfied by the data values in the relational instances so that the set of data values constitute a meaningful database.
There are four types of integrity constraints
Domain Constraint The value of attribute must be within the domain.
Key Constraint Every relation must have a primary key.
Entity Integrity Constraint Primary key of a relation should not contain NULL values.
Referential Integrity Constraint In relational model, two relations are related to each other over the basis of attributes. Every value of referencing attributes must be NULL or be available in the referenced attribute.