440 likes | 545 Vues
Fundamentals/ICY: Databases 2012/13 WEEK 5. John Barnden Professor of Artificial Intelligence School of Computer Science University of Birmingham, UK. Reminder of Week 4. 1:1 Connectivity between Tables. People. 1:1: that is, no more than one phone allowed per person, and vice versa.
E N D
Fundamentals/ICY: Databases2012/13WEEK 5 John Barnden Professor of Artificial Intelligence School of Computer Science University of Birmingham, UK
1:1 Connectivity between Tables People 1:1: that is, no more than one phone allowed per person, and vice versa. Phones Note: the representation is still asymmetric in that the People table mentions phones but not vice versa – symmetry would create extra redundancy. NB: Biggles has no phone listed, and 0121-440-5677 has no person recorded. Suggests a possible reason for not combining such tables.
1:M Connectivity between Tables More than one employee allowed per organization, but no more than one employer per person. NOTE direction of use of the foreign key. Why so?? People Organizations
M:N Connectivity between Tables • IF we represent M:N connectivity in a similar way to 1:M, then we can expect that • in the People table: some people will have each several employers listed • or in the Organizations table: an organization will have several employees listed • or both. • This is a problem. Why?
M:N Connectivity between Tables, contd. • Because of this problem, an M:N relationship is usually broken up into two 1:M relationships. • This means introducing an extra “bridging”or “linking” or “composite” entity type (hence table) to stand between the two original ones.
M:N -- a person may be employed by more than one organization and an organization may employ more than one person PEOPLE EMPLOYMENTS each = person-id + organzn-id possibly plus other attributes does not have an EMPL ID attrib. ORGANIZATIONS does not have a PERS ID attrib
M:N Connectivity between Tablesusing a Bridging Entity Type People Employments Organizations
Strong (or Identifying) Relationships • A relationship from entity type A to entity type B, mediated by having A’s primary key (PK) as a foreign key in B, is strongwhen B’s PK contains A’s PK. (incl. the case of B’s PK just being A’s PK). • So, B entities are defined in terms ofA entities. • E.g., A = Customers, B = Dependents, where • A’s PK is: CUST_ID • B’s PK is: CUST_ID, FIRST_NAME, CONNECTION. • So a PK value in B could be (1698674, Mary, child) , meaning that this entity is the child called Mary of person 1698674 in the Customer table.
a Strong Relationship Customers (the “A” type) Strong relationship going from Ato B (we could say: “B is strongly dependent on A”) Dependents (the “B” type)
Weak (or Non-Identifying) Relationships • A relationship is weakwhen it isn’t strong! • So, most relationships are weak. • Note that strength/weakness is directional: the People to Dependents relationship (above) is strong, but the Dependents to People relationship is weak. • Exercise: Can a relationship be weak in both directions? • Exercise: Can a relationship be strong in both directions?
Weak Entity Types • A weak entity typeE is one such that there is a relationship Rfrom some other entity typeFtoE that satisfies the following two conditions: • R is strong. • E is existence-dependent on F via R. • That is, an Eentitye can only exist in the database if some F entity in the database bears relationship R to e. • This actually just means that R —1 (the R relationship but in the E to F direction) is mandatory.
Weak Entity Types, contd. • So on a previous slide, Dependents is weak, because there is a strong relationship to it from Customers, and Dependents is existence-dependent on Customers via this relationship. • Mary’s existence in the databaseas a member of Dependentsrelies on the existence of customer 1698674 in the database. • But this doesn’t mean Mary would vanish from the world if customer 1698674 left the database or even if that customer were to vanish from the world. • And indeed Mary could herself be an entity in type Customers, and could remain so even if 1698674 left the DB or really vanished from the world.
Strong Entity Types • A strong entity type is one that is not weak! …. • So, in particular, any entity that receives only weak relationships from other entity types is strong. • So the usual case is for an entity type to be strong. • And any entity type that is not existence-dependent on anything is strong.
Mental Exercises for You • What about the Employments bridging type we introduced? • Although it might look at first as though a strong relationship necessarily implies existence dependence, it doesn’t. Why not? • One entity type can be existence-dependent on another without therefore being weak. Why?
Entity Relationship (ER) Model(s) and Diagrams (ERMs and ERDs)
The Entity Relationship Model • Introduced by Chen in 1976 • Most widely used “conceptual model” of DBs. • “The ER model” : general meaning = just the idea of thinking of things as composed of entities, attributes and relationships. • We also say that applying this approach in a particular case gives rise to an “ER model” of the specific environment of interest. • Diagrams based on the/a model are a widely accepted and adopted graphical approach to database design. • The/an ER model has nothing intrinsically to do with diagrams!!! Let alone any specific sort of diagram!!!
A Conceptual Model • ER model that provides high-level, manager/user-friendly view of the database • Basis for identification and description of main data objects and relationships, avoiding details
Entity Relationship Diagrams (ERDs) • An ER model of an environment forms the basis of an ER diagram (ERD) or several ERDs. • There are several markedly different styles of ERD, and for each main style there are several variants. • And the style in the module handouts will differ somewhat from that in the textbooks and these lectures • An ERD depicts (some of) the ER model’s entity types, attributes and relationships, and (depending on the diagram style) varying amounts of other info such as connectivities, cardinalities, keys, weakness, …
Caution • In previous two diagrams, each relationship was mandatory in both directions. • But saying “1:1”, “1:M” or “M:N” does not of itself imply mandatoriness in either direction. In particular, don’t be deceived by the “1” here – it’s not a minimum. • We will see in a minute how to draw optional (non-mandatory) relationships.
1:1 Relationship Between PROFESSOR and DEPARTMENT(mandatory in both directions)
1:M Relationship Between PAINTER and PAINTING (mandatory in both directions)
M:N Relationship between STUDENT and CLASS (both ways mandatory):preliminary ERD (conceptual level)
Conversion to Two 1:M Relationships (towards “logical” level)
A Bridge (or Composite) Entity Type • Its table is called a linking table (or bridging table) • Its primary key is composed of the primary keys of each of the entity types to be connected • Those keys are also foreign keys in the bridge type • Linking table may contain multiple occurrences of each foreign key value • May also contain additional attributes that play no role in the bridging as such
Relationship Participation • Optional [in a particular direction, X to Y]: • an X entity occurrence does not requirea corresponding Y entity occurrence • i.e. the minimum number of Ys per X is 0 • Mandatory [in a particular direction, X to Y]: • an X entity occurrence requiresa corresponding Y entity occurrence • i.e. the minimum number of Ys per X is 1 or more
Drawing Optionality NOTE: the dashing of the line is NOT because of the optionality, but because of weakness