=====
CS 325 - Week 6 Lecture 1 - 2021-09-27
=====
=====
TODAY WE WILL
=====
* announcements
* start the intro to entity-relationship modeling, part 2
* prep for next class
* New reading for this week:
* DB Reading Packet 5 - E-R modeling, Part 2
* SQL Reading Packet 4 - sub-selects, concatenating columns and
projecting literals
* Homework 4 is available! Should start working on that; due Friday, 11:59 pm
=====
* extensions to the E-R model, and just some additional points
to make -- that's the purpose of the packet for E-R modeling, part 2
* for example: recursive relationships!
...that is, just note that it is OK for a relationship line to
begin and end on the same rectangle,
to say there is a relationship ampongst entity instances of the
same entity class
=====
Weak entities
=====
* is one whose presence is REALLLLLY strongly dependent on the
existence of another entity class (typically one)
* don't take this too far;
not really for association entity class situations (I'll get to those)
* different notations exist for this, our CS 325 standard will be to put
these in a double-bordered rectangle
* interesting rule of thumb: if it is truly a weak entity class,
its instances should be existence-dependent on at least one instance
of its parent class (better be a hash/1 on the relationship line on
the parent end of the relationship line...)
* it is pretty common for a weak entity class to not have any
identifying attributes (but that's also true for association entity
classes)
=====
Supertypes and Subtypes!
=====
* Supertype entity classes and subtype entity classes
were brought in as a significant part of the so-called
extended E-R model (added after Peter Chen's initial 1976 paper)
* The original E-R model handled HAS-A relationships well --
A sale has a customer, (a sale sells to a customer)
A course has students, (a course enrolls students),
etc.
* BUT! It was found that the original E-R model did NOT
handle IS-A relationships as well;
A savings account is an account,
A checking account is an account;
...so the E-R model was extended, and one of the major extensions
was adding the concept of supertype entity classes and subtype
entity classes.
* when? for example:
* particularly useful when a sub-category of a significant
set of "things" has attributes that only that sub-category
should have (as well as the usual attributes for that "thing")
...maybe savings accounts have an interest rate, but other accounts
don't;
...maybe checking accounts have a per-check charge, but other
accounts don't
* particularly useful when a sub-category of a significant
set of "things" has relationships that only instance of
that sub-category should have (as well as the usual relationships
for that "thing")
...maybe all accounts have an opened_by relationshio with
a customer entity class,
...but only checking accounts have a relationship with a
tax report entity class, say, but other accounts don't
* (be sure to see the DB Reading Packet 5! and the
associated screen-shot image for a scenario with Accounts,
Savings_Accounts, and Checking_Accounts --
We walked through a discussion of that -- on the Zoom recording!
-- and I drew an E-R diagram, but didn't get very many typed
projected notes here)