SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
Developing Relational Data Models




                      Assoc.Prof.Dr. Erkan TIN




                                           Week-4
               This presentation contains copyrighted material excerpted from
Database Management with Web Site Development Applications, G. Riccardi, Addison Wesley, 2003.
Relation is not Relationship

  Be careful of these two words
     Relation
     Relationship
  A relation is a table that contains a set of entities
  A relationship is an association between two entities
  We must be very careful to use the correct word
     Listen closely to the lectures and correct me if I get it wrong!
Basics of the Relational Model
The relational model represents information in tables (called relations)
    Each table represents a set of entities
    Each column of a table represents the attribute values of the entities
    Each row of a table represents a single entity
A database schema is a collection of table definitions (relation schemas)
A relational database is a collection of tables
    Each table stores objects for a single relation schema
Relation Schemas and Keys
The rows of a relational table are unique
    No 2 rows have the same values for all of the attributes
A key is a collection of attributes in which
    No 2 rows have the same values for all attributes in the key
Every table must have a key
    Why?
A relation schema is the specification of the structure of a table
    Name of the table
    Name and type of each attribute
    Declaration of the key
A key declaration is a constraint
    A table is not allowed to have 2 different rows that have the same value for the
    key
    Database systems enforce key constraints
        By blocking any attempt to modify a table that will result in a violation of the key
        constraint
Translating E-R Diagrams
We create a relational model from an E-R model
   For each component of the E-R diagram, create a representation in the
   relational model
This lecture describes how to systematically translate an E-R
model into a database schema
   Entity classes
   Simple attributes
   Composite attributes
   Key attributes
   Relationship types of different cardinalities
   Weak entity classes
   Multi-valued attributes
   Inheritance
Representing Entity Classes
For each strong entity class in your E-R model create a relation schema:
   Rule 1a: Define a relation schema by the same name.
   Rule 1b: For each single-valued attribute of the entity class
       Create an attribute by the same name in the relation schema and specify a
       type for the attribute
   Rule 1c: Define the key of the new relation schema as the key of the
   entity class
       If the entity class key consists of multiple simple attributes, the key of the
       relation schema will be that set of attributes.
       Underline your selected key attribute in each schema in order to identify the
       key.
Representing Entity Classes
                      purchase
  Id
                        Date                                                      lineNumber
                                               M
                                 1                    PurchaseOrder                quantity
       PurchaseOrder                  Has                 Detail

                M                                                    M             unitCost



           Buys                                             Orders
           From
                                                                                                               date
                                                                                               videoId
                                                                                                             Acquired
                  1                  movieId                     1

                                                                                     Is
          Supplier                     title                Movie                   Copy                 Video
                                                                              1      Of        M

                                      genre
 name                 address
                                                   length            rating
Composite Attributes
Rule 2. For each composite attribute of a                             lastName            firstName         accountId

strong entity class                                         balance


       Create an attribute in the relation                   otherUsers                   Customer
     schema for each component                Multi-
                                              valued
     attribute                               Attribute
                                                                                                                  Composite
                                                         numberRentals                    address
       If appropriate, use the name of the                                                                         Attribute

     composite attribute as a prefix for
                                                                          street                            zipcode
     each of the component attribute           Derived                                                                     Component
                                               Attribute                                                                    Attribute
     names                                                                         city             state

Schema: Customer (accountId number, lastName string, firstName string, street string, city
string, state string, zipcode string, balance number)
  accountId    lastName    firstName    street                   city                     state         zipcode           balance


  101          Block       Jane         1010 Main St.            Apopka                   FL            30458             0.00

  102          Hamilton    Cherry       3230 Dade St.            Dade City                FL            30555             4.47

  103          Harrison    Kate         103 Dodd Hall            Apopka                   FL            30457             30.57

  104          Breaux      Carroll      76 Main St.              Apopka                   FL            30458             34.58
Representing Relationship Types as Attributes
A relationship type may be represented by attributes in a relation
schema
Add the key attributes of one table to the related table
Consider the IsCopyOf relationship type between Video and Movie
    Key of Movie is movieId
    Add attribute movieId to table Video
Schema Video (videoId number, [other attributes omitted] movieId
number references Movie)
Attribute movieId of relation Video is called a foreign key
    Because its value is the value of the key of an entity in another (foreign)
    table.
Referential Integrity Constraint: The value of a foreign key attribute of
an entity must be the key of an entity in the related table.
One-to-Many RelationshipTypes

   For a one-to-many relationship
   type
       Add the key attributes of one entity
       class to the other entity class
       (foreign key attributes).
       Add the foreign key attributes to
       the class whose role is to-one.

Rule 3: For each one-to-many
                                                Schema: Video(videoId number, dateAcquired date, movieId number
relationship type R between subject             references Movie, storeId number references Store)
class S and target class T
       Add the key attributes of class S to
    class T as foreign keys
       Name the attributes using the role
    that S plays in relationship type R
       Add the attributes of the relationship
    type R to target class T.
One-to-Many RelationshipTypes
 (How Do You Represent “Takes” Relationship? Part-I)
  Child                                  Takes
                                                                                  T-shirt

               C1      Vedat   Başaran                     T1        Black    O


                                                           T2        White    V
               C2 Berrrak Temizsoy

                                                           T3        Yellow   O
               C3 Leyla Durukan

                                                           T4        Grey     O


                                                           T5        Green    O
    Child
    ChildId   Name         Surname
      C1      Vedat      Başaran
                                                 TShirt
      C2      Berrak     Temizsoy
                                                 ShirtId    Color    Collar
      C3      Leyla      Durukan
                                                   T1       Black      O
                                                   T2       White      V

We would like our database to answer the           T3       Yellow     O
question “Who Takes Which T-shirt?.”               T4       Grey       O
                                                   T5       Green      O
One-to-Many RelationshipTypes
(How Do You Represent “Takes” Relationship? Part-II)
1. Adding ShirtId column to Child table introduces multiple-values.
   Multi-valued attributes are not allowed in RDBMs!
                                            Multiple values        TShirt
   Child
                                                                   ShirtId   Color      Collar
    ChildId   Name      Surname   ShirtId
                                                                     T1      Black        O
      C1      Vedat    Başaran    T1, T2
                                                                     T2      White        V
      C2      Berrak   Temizsoy     T4
                                                                     T3      Yellow       O
      C3      Leyla    Durukan    NULL
                                                                     T4      Grey         O
                                                                     T5      Green        O


2. Adding ChildId column to TShirt table solves the problem and
   represents “Takes” relationship in the database.
                                                       TShirt
   Child
                                                        ShirtId     Color      Collar      ChildId
    ChildId   Name      Surname
      C1      Vedat    Başaran                                T1   Black            O          C1
                                                              T2   White            V          C1
      C2      Berrak   Temizsoy
                                                              T3   Yellow           O         NULL
      C3      Leyla    Durukan
                                                              T4   Grey             O          C2
                                                              T5   Green            O         NULL
One-to-One Relationship Types

 The foreign key attributes may be added to either schema
    Each entity class is to-one in the relationship type
 Choose which class to include the foreign key attributes
    One option is to try to minimize the number of null values
 Rule 4: For each one-to-one relationship type between two
 classes, choose one class to be the subject and one to be
 the target
    Add the key attributes of the subject class to the target schema as
    foreign key attributes
    Add the attributes of the relationship type to the target schema, just
    as in Rule 3
One-to-One RelationshipTypes
(How Do You Represent “Takes” Relationship? Part-I)



  Child                                        Takes
                                                                                                       T-shirt

                 C1    Vedat   Başaran                                 T1            Black         O


                                                                       T2            White         V
                  C2 Berrrak Temizsoy

                                                                       T3            Yellow        O
                  C3 Leyla Durukan

                                                                       T4            Grey          O


                                                                       T5            Green         O




   Since the relationship “Takes” has cardinality ratio 1-to-1, one can add key attribute columns of one table to
the other.

        However, key attribute columns of T-shirt table should be added to Child table (mandatory
      participation side) in order to eliminate NULL values. The solutions are illustrated below.
One-to-One RelationshipTypes
(How Do You Represent “Takes” Relationship? Part-II)

1. Adding ShirtId column to Child table.
                                            No NULL Value
                                                            TShirt
   Child
                                                            ShirtId     Color          Collar
    ChildId   Name      Surname   ShirtId
                                                              T1       Black              O
      C1      Vedat    Başaran      T1
                                                              T2       White              V
      C2      Berrak   Temizsoy     T4
                                                              T3       Yellow             O
      C3      Leyla    Durukan      T2
                                                              T4       Grey               O
                                                              T5       Green              O


2. Adding ChildId column to TShirt table.
                                                                         (Number of T-shirts) minus
                                                                      (Number of Children) NULL values
                                                TShirt
   Child
                                                 ShirtId     Color        Collar           ChildId
    ChildId   Name      Surname
      C1      Vedat    Başaran                     T1       Black             O                C1
                                                   T2       White             V                C3
      C2      Berrak   Temizsoy
                                                   T3       Yellow            O               NULL
      C3      Leyla    Durukan
                                                   T4       Grey              O                C2
                                                   T5       Green             O               NULL
Many-to-Many Relationship Types
   Many-to-Many relationship types between 2 classes cannot be represented as
   simple attributes in either related table
   Rule 5: For each many-to-many relationship type R between classes S and T
       Create a new relation schema R
       Add attributes to represent the key of S and the key of T as foreign key
       attributes
       The key of schema R is the combination of those attributes
       Add the relationship attributes to schema R, as in Rule 3
Schema: WorksIn (name string references Employee, surname string references
   Employee, storeId number references Store, startDate date)

                                                       WorksIn
                                                       name      surname   storeId   startDate
                                                       Cevdet    Narin     3         01.04.2005
                                                       Gamze     Bulut     5         07.09.2006
                                                       Veli      Hancı     5         03.02.2003
Weak Entity Classes (Part-I)
  • Weak Entity classes have no keys of their own.
                                    Weak Entity                   Owner Entity
     Customer                         Class                         Class


      1

                                          1                1
       Has               Rental                   Has                  Video
                  M


             dateDue   dateRented         cost
                                                         Identifying               Schema: Rental(videoId number references Video,
                                                        Relationship
                                                            Type                   dateDue date, dateRented date, cost currency, accountId
                                                                                   number references Customer)

                                                                                 videoId   dateRented    dateDue    cost     accountId
• Create keys from
   – Foreign keys of identifying relationship types                              101       1/3/99        1/4/99     $1.59    103
   – Partial keys of the weak class
                                                                                 113       2/22/99       2/25/99    $3.00    101
• Relation Rental, shown above, still
  must add foreign key for Customer.                                             114       2/22/99       2/25/99    $3.00    101

                                                                                 123       12/1/98       12/31/98   $10.99   103
Weak Entity Classes (Part-II)
                                  Defining
                                relationship
                                    type
                                                                                               Rule 6: For each weak entity
                                                                                               class W
              1                M                     M                 1                           Create a new relation
Employee                 Has             TimeCard             Has               Store              schema with the same name
                                                                                                   For each identifying
                                                               Weak entity                         relationship,
            discriminator                                        class
                                   startTime    endTime                                                 Add the key attributes of
                                                                                                        the related class to the new
                                                                                                        schema as foreign key
                                                                                                        attributes
            Schema: TimeCard (ssn string references Employee, startTime
                                                                                                   Declare the key of the
            date, endTime date, storeId number references Store, paid boolean)
                                                                                                   schema to be the
                                                                                                   combination of
           ssn                 startTime             endTime               storeId      paid            the foreign key attributes
                                                                                                        and
           145-09-0967         01/14/99 8:15         01/14/99 12:00        3            yes
                                                                                                        the partial key attributes of
           245-11-4554         01/14/99 8:15         01/14/99 12:00        3            yes             the weak entity class
           376-77-0099         02/23/99 19:00        02/24/99 2:00         5            yes        Add the simple and
                                                                                                   composite attributes of class
           145-09-0967         01/16/99 8:15         01/16/99 12:00        3            yes
                                                                                                   W to the schema, as in
           376-77-0099         01/03/99 10:00        01/03/99 14:00        5            yes        Rules 1b and 2
           376-77-0099         01/03/99 15:00        01/03/99 19:00        5            yes
Multi-valued Attributes
                                        lastName            firstName         accountId
                              balance


                               otherUsers                   Customer
                Multi-
                valued
               Attribute
                                                                                    Composite
                           numberRentals                    address
                                                                                     Attribute



                                            street                            zipcode
                 Derived                                                                      Component
                 Attribute                                                                     Attribute
                                                     city             state



Schema: Customer (accountId number, lastName string, firstName string, street
string, city string, state string, zipcode string, otherUser string)




                                                                                      Can Store Singe Value.
                                                                              For this reason cannot model our world.
Multi-valued Attributes

   Representing multi-valued attributes directly in a relational table is not possible.
 accountId       lastName    firstName    street         city      state    zipcode    otherUser


 104             Breaux      Carroll      76 Main St.    Apopka    FL       30458      Judy Breaux
                                                                                       Cyrus Lambeaux
                                                                                       Jean Deaux




                                                                                              Multiple values



   Dividing the entity into as many rows as the number of multiple-values is not a solution.

  accountId       lastName    firstName    street         city      state    zipcode    otherUser


  104             Breaux      Carroll      76 Main St.    Apopka    FL       30458      Judy Breaux

  104             Breaux      Carroll      76 Main St.    Apopka    FL       30458      Cyrus Lambeaux

  104             Breaux      Carroll      76 Main St.    Apopka    FL       30458      Jean Deaux



This schema conflicts with two basic principles of information systems:
        1.    A data model should correspond closely to the real situations it represents.
        2.    Data models should keep duplication of values to a minimum.
Multi-valued Attributes
            Represent each multi-valued attribute as if it were a weak entity class with
                   Identifying relationship with owner class
                   All composite attributes of multi-valued attribute are partial keys

             lastName      firstName         accountId



                                                  1         is a     M
                               Customer                                  OtherUser
                                                           part of



numberRentals
                               address                                   otherUser



         street         city              state          zipcode


   •     Rule 7: For each multi-valued attribute M of an entity class C
           – Define a new relation schema M
           – Add the components of attribute M to the new schema
           – Add the key attributes of the schema that contains the other attributes of C to M as a
             foreign key
           – Define the key of the new schema to be the combination of all of its attributes.
   •     The diagram above shows attribute otherUsers represented as a weak entity
         class and as a schema
           – Do not modify the E-R diagram. This diagram is included to illustrate the methodology.
Derived Attributes
A derived attribute is assigned a value which is computed by an external
function.
Derived attributes are in fact computed columns in relations.
In the example below, value of Age attribute is derived from the
DateOfBirth attribute by a function.

      Child
       ChildId    Name      Surname   DateOfBirth                Age
         C1      Vedat    Başaran     07.06.2001    =ToDay() – [DateOfBirth]
         C2      Berrak   Temizsoy    01.09.2000    =ToDay() – [DateOfBirth]
         C3      Leyla    Durukan     03.05.2003    =ToDay() – [DateOfBirth]




Or, one may call a procedure which goes over each record and compute the
child’s age similarly and update the corresponding Age value.
Inheritance
First representation strategy
   Represent the superclass and each subclass as individual tables
       Each table has the attributes of the corresponding class
       Each subclass table has the key of the superclass as both key and
       foreign key
Second representation strategy
   Represent the superclass and all subclasses as a single table
       The table has the attributes of superclass and all of the subclass
       attributes
Third representation strategy
   Represent each subclass as individual tables
       Each table has the attributes of that subclass and the attributes of the
       superclass
Example of First Strategy
                                                                       movieId




                                                                       Movie


                                                     date
                                videoId
                                                   Acquired



                                                                         is          1
         Superclass                                       M
                                           Video                        Copy
                                                                         Of


             Defining             media                            Inheritance
             attribute                                             relationship
                                            d                          type


Subclass
                      "dvd"                                      "tape"




                DVD                                                Videotape




 video
             languages        captioning                      format           soundtrack
Format
Example of Second Strategy

• Schema Definition and Sample Table Representing Specialization as a
  Single Table with Attributes from the Superclass and Subclasses

 Schema: Video:(videoId number, dateAcquired date, media string, movieId number references Movie,
                videoFormat string, languages string, captioning string, format string, soundtrack string)



 videoId      date           media      movieId      video        languages        captioning       format   sound
              Acquired                               Format                                                  track


 101          1/25/98        dvd        101          letterbox    English,         yes
                                                                  Spanish


 111          2/5/97         tape       123                                                         VHS      English


 112          12/31/95       tape       123                                                         VHS      Spanish


 113          4/5/98         dvd        123          letterbox    English,         none
                                                                  Russian,
                                                                  French
Example of Third Strategy

Schemas Representing Specialization as One Table for Each Subclass
   Schema: DVD:(videoId number, dateAcquired date, media string, movieId number references Movie, videoFormat string,
   languages string, captioning string)

          videoId          date                media      movieId         video             languages           captioning
                           Acquired                                       Format


          101              1/25/98             dvd        101             letterbox         English, Spanish    yes



          113              4/5/98              dvd        123             letterbox         English, Russian,   none
                                                                                            French



    Schema: Videotape:(videoId number, dateAcquired string, media string, movieId number references Movie, format
    string, soundtrack string)

                     videoId          date             media        movieId           format          sound
                                      Acquired                                                        track



                     111              2/5/97           tape         123               VHS             English



                     112              12/31/95         tape         123               VHS             Spanish
Inheritance

Rule 8a:
     Create a relation schema for each superclass C using rules 1 and 2.
           For each subclass of C that has a defining attribute, add that attribute
           to the schema for C.
     For each subclass S, create a new relation schema.
           Add the simple and composite attributes of class S to the schema, as
           in Rules 1b and 2.
           Add the key of the superclass C as a foreign key referencing relation
           C.
           Declare the key of the subclass relation for S to be this foreign key
Case in Point

  Relational Model for Video Sales for BigHit Online
  Process
     Evaluate E-R model for BigHit Online
     Transform E-R diagram into relation schemas
        Apply rules 1-8
     Evaluate relation schemas for clarity, accuracy and completeness
E-R Diagram for BigHit Online
                                               1-to-M
                                               Add primary key
                                               attributes of to-many
Multi-valued                                   side to to-one side
Attribute                                      (i.e., accountId to
Needs to be                                    Sale relation)
transformed
into a weak-
entity




  1-to1
  Adding cartId
  attribute to Customer
  relation instead of
  ShoppingCart relation
  to represent Select
  relationship type
  results in the
  introduction of Null                                                 Inheritance: Overlaying
  values.                                                              Quantity and Cost
                                                                       attributes of subclasses
                                                                       cannot be moved to
                                                                       superclass Movie.



                      M-to-M
                      Create a new relation.
Creating Relation Schemas

 After applying Rule 1, before adding relationship types
 and inheritance
    Customer: (accountId number, lastName string, firstName string)
    Sale: (saleId number, dateSold date, totalCost number)
    Movie: (movieId number, title string, genre string)
    ShoppingCart: (cartId number, dateCreated date)
 Adding composite attributes to Sale
    Sale: (saleId number, dateSold date, totalCost number,
    creditCardType string, creditCardExpiration date,
    creditCardAccountNumber number)
 Adding relationship type Purchases to Sale
    Sale: (saleId number, dateSold date, totalCost number,
    creditCardType string, creditCardExpiration date,
    creditCardAccountNumber number, accountId number references
    Customer)
Adding Relationship Types

 Add Selects to ShoppingCart
    ShoppingCart: (cartId number, dateCreated date, accountId number
    references Customer)
 Add schemas for many-to-many relationship types
    SaleItem: (saleId number references Sale, movieId number references
    Movie, quantity number)
    CartItem: (cartId number references ShoppingCart, movieId number
    references Movie, quantity number)
 Add schemas for multi-valued attributes
    CreditCards: (accountId number references Customer, accountNumber
    number, type string, expiration date)
    ShippingAddresses: (accountId number references Customer, street string,
    city string, state string, zipcode string)
 Add schemas for subclasses of Movie
    DVD: (movieId number references Movie, videoFormat string, languages
    string, captioning string, cost currency, quantity number)
    Videotape: (movieId number references Movie, format string, soundtrack
    string, cost currency, quantity number)
Resulting Database Schema for BigHit Online

Customer: (accountId number, lastName string, firstName string)
Sale: (saleId number, dateSold date, totalCost number, creditCardType string,
creditCardExpiration date, creditCardAccountNumber number, accountId
number references Customer)
Movie: (movieId number, title string, genre string)
ShoppingCart: (cartId number, dateCreated date, accountId number references
Customer)
SaleItem: (saleId number references Sale, movieId number references Movie,
quantity number)
CartItem: (cartId number references ShoppingCart, movieId number
references Movie, quantity number)
CreditCards: (accountId number references Customer, accountNumber
number, type string, expiration date)
ShippingAddresses: (accountId number references Customer, street string, city
string, state string, zipcode string)
DVD: (movieId number references Movie, videoFormat string, languages
string, captioning string, cost currency, quantity number)
Videotape: (movieId number references Movie, format string, soundtrack
string, cost currency, quantity number)

Weitere ähnliche Inhalte

Ähnlich wie 259 w4

Ähnlich wie 259 w4 (10)

DBMS - ER Model
DBMS - ER ModelDBMS - ER Model
DBMS - ER Model
 
Slide3 relational-stu
Slide3 relational-stuSlide3 relational-stu
Slide3 relational-stu
 
Xm Lquickref
Xm LquickrefXm Lquickref
Xm Lquickref
 
Xml Syntax Quick Reference
Xml Syntax Quick ReferenceXml Syntax Quick Reference
Xml Syntax Quick Reference
 
Free video lectures for mca
Free video lectures for mcaFree video lectures for mca
Free video lectures for mca
 
3 summary
3 summary3 summary
3 summary
 
Dbms
DbmsDbms
Dbms
 
Database Modeling
Database ModelingDatabase Modeling
Database Modeling
 
39f1b9a797dbms chapter2 b.sc2
39f1b9a797dbms chapter2 b.sc239f1b9a797dbms chapter2 b.sc2
39f1b9a797dbms chapter2 b.sc2
 
39f1b9a797dbms chapter2 b.sc2 (1)
39f1b9a797dbms chapter2 b.sc2 (1)39f1b9a797dbms chapter2 b.sc2 (1)
39f1b9a797dbms chapter2 b.sc2 (1)
 

Kürzlich hochgeladen

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 

Kürzlich hochgeladen (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 

259 w4

  • 1. Developing Relational Data Models Assoc.Prof.Dr. Erkan TIN Week-4 This presentation contains copyrighted material excerpted from Database Management with Web Site Development Applications, G. Riccardi, Addison Wesley, 2003.
  • 2. Relation is not Relationship Be careful of these two words Relation Relationship A relation is a table that contains a set of entities A relationship is an association between two entities We must be very careful to use the correct word Listen closely to the lectures and correct me if I get it wrong!
  • 3. Basics of the Relational Model The relational model represents information in tables (called relations) Each table represents a set of entities Each column of a table represents the attribute values of the entities Each row of a table represents a single entity A database schema is a collection of table definitions (relation schemas) A relational database is a collection of tables Each table stores objects for a single relation schema
  • 4. Relation Schemas and Keys The rows of a relational table are unique No 2 rows have the same values for all of the attributes A key is a collection of attributes in which No 2 rows have the same values for all attributes in the key Every table must have a key Why? A relation schema is the specification of the structure of a table Name of the table Name and type of each attribute Declaration of the key A key declaration is a constraint A table is not allowed to have 2 different rows that have the same value for the key Database systems enforce key constraints By blocking any attempt to modify a table that will result in a violation of the key constraint
  • 5. Translating E-R Diagrams We create a relational model from an E-R model For each component of the E-R diagram, create a representation in the relational model This lecture describes how to systematically translate an E-R model into a database schema Entity classes Simple attributes Composite attributes Key attributes Relationship types of different cardinalities Weak entity classes Multi-valued attributes Inheritance
  • 6. Representing Entity Classes For each strong entity class in your E-R model create a relation schema: Rule 1a: Define a relation schema by the same name. Rule 1b: For each single-valued attribute of the entity class Create an attribute by the same name in the relation schema and specify a type for the attribute Rule 1c: Define the key of the new relation schema as the key of the entity class If the entity class key consists of multiple simple attributes, the key of the relation schema will be that set of attributes. Underline your selected key attribute in each schema in order to identify the key.
  • 7. Representing Entity Classes purchase Id Date lineNumber M 1 PurchaseOrder quantity PurchaseOrder Has Detail M M unitCost Buys Orders From date videoId Acquired 1 movieId 1 Is Supplier title Movie Copy Video 1 Of M genre name address length rating
  • 8. Composite Attributes Rule 2. For each composite attribute of a lastName firstName accountId strong entity class balance Create an attribute in the relation otherUsers Customer schema for each component Multi- valued attribute Attribute Composite numberRentals address If appropriate, use the name of the Attribute composite attribute as a prefix for street zipcode each of the component attribute Derived Component Attribute Attribute names city state Schema: Customer (accountId number, lastName string, firstName string, street string, city string, state string, zipcode string, balance number) accountId lastName firstName street city state zipcode balance 101 Block Jane 1010 Main St. Apopka FL 30458 0.00 102 Hamilton Cherry 3230 Dade St. Dade City FL 30555 4.47 103 Harrison Kate 103 Dodd Hall Apopka FL 30457 30.57 104 Breaux Carroll 76 Main St. Apopka FL 30458 34.58
  • 9. Representing Relationship Types as Attributes A relationship type may be represented by attributes in a relation schema Add the key attributes of one table to the related table Consider the IsCopyOf relationship type between Video and Movie Key of Movie is movieId Add attribute movieId to table Video Schema Video (videoId number, [other attributes omitted] movieId number references Movie) Attribute movieId of relation Video is called a foreign key Because its value is the value of the key of an entity in another (foreign) table. Referential Integrity Constraint: The value of a foreign key attribute of an entity must be the key of an entity in the related table.
  • 10. One-to-Many RelationshipTypes For a one-to-many relationship type Add the key attributes of one entity class to the other entity class (foreign key attributes). Add the foreign key attributes to the class whose role is to-one. Rule 3: For each one-to-many Schema: Video(videoId number, dateAcquired date, movieId number relationship type R between subject references Movie, storeId number references Store) class S and target class T Add the key attributes of class S to class T as foreign keys Name the attributes using the role that S plays in relationship type R Add the attributes of the relationship type R to target class T.
  • 11. One-to-Many RelationshipTypes (How Do You Represent “Takes” Relationship? Part-I) Child Takes T-shirt C1 Vedat Başaran T1 Black O T2 White V C2 Berrrak Temizsoy T3 Yellow O C3 Leyla Durukan T4 Grey O T5 Green O Child ChildId Name Surname C1 Vedat Başaran TShirt C2 Berrak Temizsoy ShirtId Color Collar C3 Leyla Durukan T1 Black O T2 White V We would like our database to answer the T3 Yellow O question “Who Takes Which T-shirt?.” T4 Grey O T5 Green O
  • 12. One-to-Many RelationshipTypes (How Do You Represent “Takes” Relationship? Part-II) 1. Adding ShirtId column to Child table introduces multiple-values. Multi-valued attributes are not allowed in RDBMs! Multiple values TShirt Child ShirtId Color Collar ChildId Name Surname ShirtId T1 Black O C1 Vedat Başaran T1, T2 T2 White V C2 Berrak Temizsoy T4 T3 Yellow O C3 Leyla Durukan NULL T4 Grey O T5 Green O 2. Adding ChildId column to TShirt table solves the problem and represents “Takes” relationship in the database. TShirt Child ShirtId Color Collar ChildId ChildId Name Surname C1 Vedat Başaran T1 Black O C1 T2 White V C1 C2 Berrak Temizsoy T3 Yellow O NULL C3 Leyla Durukan T4 Grey O C2 T5 Green O NULL
  • 13. One-to-One Relationship Types The foreign key attributes may be added to either schema Each entity class is to-one in the relationship type Choose which class to include the foreign key attributes One option is to try to minimize the number of null values Rule 4: For each one-to-one relationship type between two classes, choose one class to be the subject and one to be the target Add the key attributes of the subject class to the target schema as foreign key attributes Add the attributes of the relationship type to the target schema, just as in Rule 3
  • 14. One-to-One RelationshipTypes (How Do You Represent “Takes” Relationship? Part-I) Child Takes T-shirt C1 Vedat Başaran T1 Black O T2 White V C2 Berrrak Temizsoy T3 Yellow O C3 Leyla Durukan T4 Grey O T5 Green O Since the relationship “Takes” has cardinality ratio 1-to-1, one can add key attribute columns of one table to the other. However, key attribute columns of T-shirt table should be added to Child table (mandatory participation side) in order to eliminate NULL values. The solutions are illustrated below.
  • 15. One-to-One RelationshipTypes (How Do You Represent “Takes” Relationship? Part-II) 1. Adding ShirtId column to Child table. No NULL Value TShirt Child ShirtId Color Collar ChildId Name Surname ShirtId T1 Black O C1 Vedat Başaran T1 T2 White V C2 Berrak Temizsoy T4 T3 Yellow O C3 Leyla Durukan T2 T4 Grey O T5 Green O 2. Adding ChildId column to TShirt table. (Number of T-shirts) minus (Number of Children) NULL values TShirt Child ShirtId Color Collar ChildId ChildId Name Surname C1 Vedat Başaran T1 Black O C1 T2 White V C3 C2 Berrak Temizsoy T3 Yellow O NULL C3 Leyla Durukan T4 Grey O C2 T5 Green O NULL
  • 16. Many-to-Many Relationship Types Many-to-Many relationship types between 2 classes cannot be represented as simple attributes in either related table Rule 5: For each many-to-many relationship type R between classes S and T Create a new relation schema R Add attributes to represent the key of S and the key of T as foreign key attributes The key of schema R is the combination of those attributes Add the relationship attributes to schema R, as in Rule 3 Schema: WorksIn (name string references Employee, surname string references Employee, storeId number references Store, startDate date) WorksIn name surname storeId startDate Cevdet Narin 3 01.04.2005 Gamze Bulut 5 07.09.2006 Veli Hancı 5 03.02.2003
  • 17. Weak Entity Classes (Part-I) • Weak Entity classes have no keys of their own. Weak Entity Owner Entity Customer Class Class 1 1 1 Has Rental Has Video M dateDue dateRented cost Identifying Schema: Rental(videoId number references Video, Relationship Type dateDue date, dateRented date, cost currency, accountId number references Customer) videoId dateRented dateDue cost accountId • Create keys from – Foreign keys of identifying relationship types 101 1/3/99 1/4/99 $1.59 103 – Partial keys of the weak class 113 2/22/99 2/25/99 $3.00 101 • Relation Rental, shown above, still must add foreign key for Customer. 114 2/22/99 2/25/99 $3.00 101 123 12/1/98 12/31/98 $10.99 103
  • 18. Weak Entity Classes (Part-II) Defining relationship type Rule 6: For each weak entity class W 1 M M 1 Create a new relation Employee Has TimeCard Has Store schema with the same name For each identifying Weak entity relationship, discriminator class startTime endTime Add the key attributes of the related class to the new schema as foreign key attributes Schema: TimeCard (ssn string references Employee, startTime Declare the key of the date, endTime date, storeId number references Store, paid boolean) schema to be the combination of ssn startTime endTime storeId paid the foreign key attributes and 145-09-0967 01/14/99 8:15 01/14/99 12:00 3 yes the partial key attributes of 245-11-4554 01/14/99 8:15 01/14/99 12:00 3 yes the weak entity class 376-77-0099 02/23/99 19:00 02/24/99 2:00 5 yes Add the simple and composite attributes of class 145-09-0967 01/16/99 8:15 01/16/99 12:00 3 yes W to the schema, as in 376-77-0099 01/03/99 10:00 01/03/99 14:00 5 yes Rules 1b and 2 376-77-0099 01/03/99 15:00 01/03/99 19:00 5 yes
  • 19. Multi-valued Attributes lastName firstName accountId balance otherUsers Customer Multi- valued Attribute Composite numberRentals address Attribute street zipcode Derived Component Attribute Attribute city state Schema: Customer (accountId number, lastName string, firstName string, street string, city string, state string, zipcode string, otherUser string) Can Store Singe Value. For this reason cannot model our world.
  • 20. Multi-valued Attributes Representing multi-valued attributes directly in a relational table is not possible. accountId lastName firstName street city state zipcode otherUser 104 Breaux Carroll 76 Main St. Apopka FL 30458 Judy Breaux Cyrus Lambeaux Jean Deaux Multiple values Dividing the entity into as many rows as the number of multiple-values is not a solution. accountId lastName firstName street city state zipcode otherUser 104 Breaux Carroll 76 Main St. Apopka FL 30458 Judy Breaux 104 Breaux Carroll 76 Main St. Apopka FL 30458 Cyrus Lambeaux 104 Breaux Carroll 76 Main St. Apopka FL 30458 Jean Deaux This schema conflicts with two basic principles of information systems: 1. A data model should correspond closely to the real situations it represents. 2. Data models should keep duplication of values to a minimum.
  • 21. Multi-valued Attributes Represent each multi-valued attribute as if it were a weak entity class with Identifying relationship with owner class All composite attributes of multi-valued attribute are partial keys lastName firstName accountId 1 is a M Customer OtherUser part of numberRentals address otherUser street city state zipcode • Rule 7: For each multi-valued attribute M of an entity class C – Define a new relation schema M – Add the components of attribute M to the new schema – Add the key attributes of the schema that contains the other attributes of C to M as a foreign key – Define the key of the new schema to be the combination of all of its attributes. • The diagram above shows attribute otherUsers represented as a weak entity class and as a schema – Do not modify the E-R diagram. This diagram is included to illustrate the methodology.
  • 22. Derived Attributes A derived attribute is assigned a value which is computed by an external function. Derived attributes are in fact computed columns in relations. In the example below, value of Age attribute is derived from the DateOfBirth attribute by a function. Child ChildId Name Surname DateOfBirth Age C1 Vedat Başaran 07.06.2001 =ToDay() – [DateOfBirth] C2 Berrak Temizsoy 01.09.2000 =ToDay() – [DateOfBirth] C3 Leyla Durukan 03.05.2003 =ToDay() – [DateOfBirth] Or, one may call a procedure which goes over each record and compute the child’s age similarly and update the corresponding Age value.
  • 23. Inheritance First representation strategy Represent the superclass and each subclass as individual tables Each table has the attributes of the corresponding class Each subclass table has the key of the superclass as both key and foreign key Second representation strategy Represent the superclass and all subclasses as a single table The table has the attributes of superclass and all of the subclass attributes Third representation strategy Represent each subclass as individual tables Each table has the attributes of that subclass and the attributes of the superclass
  • 24. Example of First Strategy movieId Movie date videoId Acquired is 1 Superclass M Video Copy Of Defining media Inheritance attribute relationship d type Subclass "dvd" "tape" DVD Videotape video languages captioning format soundtrack Format
  • 25. Example of Second Strategy • Schema Definition and Sample Table Representing Specialization as a Single Table with Attributes from the Superclass and Subclasses Schema: Video:(videoId number, dateAcquired date, media string, movieId number references Movie, videoFormat string, languages string, captioning string, format string, soundtrack string) videoId date media movieId video languages captioning format sound Acquired Format track 101 1/25/98 dvd 101 letterbox English, yes Spanish 111 2/5/97 tape 123 VHS English 112 12/31/95 tape 123 VHS Spanish 113 4/5/98 dvd 123 letterbox English, none Russian, French
  • 26. Example of Third Strategy Schemas Representing Specialization as One Table for Each Subclass Schema: DVD:(videoId number, dateAcquired date, media string, movieId number references Movie, videoFormat string, languages string, captioning string) videoId date media movieId video languages captioning Acquired Format 101 1/25/98 dvd 101 letterbox English, Spanish yes 113 4/5/98 dvd 123 letterbox English, Russian, none French Schema: Videotape:(videoId number, dateAcquired string, media string, movieId number references Movie, format string, soundtrack string) videoId date media movieId format sound Acquired track 111 2/5/97 tape 123 VHS English 112 12/31/95 tape 123 VHS Spanish
  • 27. Inheritance Rule 8a: Create a relation schema for each superclass C using rules 1 and 2. For each subclass of C that has a defining attribute, add that attribute to the schema for C. For each subclass S, create a new relation schema. Add the simple and composite attributes of class S to the schema, as in Rules 1b and 2. Add the key of the superclass C as a foreign key referencing relation C. Declare the key of the subclass relation for S to be this foreign key
  • 28. Case in Point Relational Model for Video Sales for BigHit Online Process Evaluate E-R model for BigHit Online Transform E-R diagram into relation schemas Apply rules 1-8 Evaluate relation schemas for clarity, accuracy and completeness
  • 29. E-R Diagram for BigHit Online 1-to-M Add primary key attributes of to-many Multi-valued side to to-one side Attribute (i.e., accountId to Needs to be Sale relation) transformed into a weak- entity 1-to1 Adding cartId attribute to Customer relation instead of ShoppingCart relation to represent Select relationship type results in the introduction of Null Inheritance: Overlaying values. Quantity and Cost attributes of subclasses cannot be moved to superclass Movie. M-to-M Create a new relation.
  • 30. Creating Relation Schemas After applying Rule 1, before adding relationship types and inheritance Customer: (accountId number, lastName string, firstName string) Sale: (saleId number, dateSold date, totalCost number) Movie: (movieId number, title string, genre string) ShoppingCart: (cartId number, dateCreated date) Adding composite attributes to Sale Sale: (saleId number, dateSold date, totalCost number, creditCardType string, creditCardExpiration date, creditCardAccountNumber number) Adding relationship type Purchases to Sale Sale: (saleId number, dateSold date, totalCost number, creditCardType string, creditCardExpiration date, creditCardAccountNumber number, accountId number references Customer)
  • 31. Adding Relationship Types Add Selects to ShoppingCart ShoppingCart: (cartId number, dateCreated date, accountId number references Customer) Add schemas for many-to-many relationship types SaleItem: (saleId number references Sale, movieId number references Movie, quantity number) CartItem: (cartId number references ShoppingCart, movieId number references Movie, quantity number) Add schemas for multi-valued attributes CreditCards: (accountId number references Customer, accountNumber number, type string, expiration date) ShippingAddresses: (accountId number references Customer, street string, city string, state string, zipcode string) Add schemas for subclasses of Movie DVD: (movieId number references Movie, videoFormat string, languages string, captioning string, cost currency, quantity number) Videotape: (movieId number references Movie, format string, soundtrack string, cost currency, quantity number)
  • 32. Resulting Database Schema for BigHit Online Customer: (accountId number, lastName string, firstName string) Sale: (saleId number, dateSold date, totalCost number, creditCardType string, creditCardExpiration date, creditCardAccountNumber number, accountId number references Customer) Movie: (movieId number, title string, genre string) ShoppingCart: (cartId number, dateCreated date, accountId number references Customer) SaleItem: (saleId number references Sale, movieId number references Movie, quantity number) CartItem: (cartId number references ShoppingCart, movieId number references Movie, quantity number) CreditCards: (accountId number references Customer, accountNumber number, type string, expiration date) ShippingAddresses: (accountId number references Customer, street string, city string, state string, zipcode string) DVD: (movieId number references Movie, videoFormat string, languages string, captioning string, cost currency, quantity number) Videotape: (movieId number references Movie, format string, soundtrack string, cost currency, quantity number)