SlideShare a Scribd company logo
Database Design




                                                                                    1




                              What is a Database?
                         A collection of data that is organised in a predictable
                          structured way
                         Any organised collection of data in one place can be
                          considered a database
                         Examples
                           filing cabinet
                           library
                           floppy disk




                                                                                    2




©Chisholm Institute
What is Data?
                         The heart of the DBMS.
                         Two kinds
                           Collection   of information that is stored in the
                            database.
                           A Metadata, information about the database.
                            Also known as a data dictionary.




                                                                                3




                           Relational Data Model
                               A relational database is perceived as a
                                collection of tables.

                               Each table consists of a series of rows &
                                columns.

                               Tables (or relations) are related to each
                                other by sharing a common
                                characteristic. (EG a customer or product
                                                (E          m      p
                                table)

                               A table yields complete physical data
                                independence.
                                                                                4




©Chisholm Institute
Features of the relational data
                                          model
                             Logical and Physical separated

                             Simple to understand Easy to use
                                        understand.        use.

                             Powerful nonprocedural (what, not how) language to
                              access data.

                             Uniform access to all data.

                             Rigorous database design principles
                                                       principles.

                             Access paths by matching data values, not by
                              following fixed links.

                                                                                                        5




                                Terminology
                              Relation
                              A 2-dimensional table of values with these properties:
                              No duplicate rows
                              Rows can be in any order
                                                 y
                              Columns are uniquely named by Attributes
                              Each cell contains only one value

                                                Employee          Job          Manager
                                                  Jack         Secretary         Jill
                                                   Jill         Executive        Bozo
                                                  Bozo          Director
                                                   Lulu           Clerk          Jill

                                  The special value     is NULL which implies that there is no
                                  corresponding value for that cell. This may mean the value does not
                                  apply or that it is unavailable. Entire rows of NULLs are not
                                  allowed.
                                                                                                        6




©Chisholm Institute
Terminology

                         Tuple
                             Commonly referred to as a row in a relation.
                              C     l    f    d             i      l i
                                  Eg:

                                          Jack            Clerk           Jill



                         Attribute
                         • A name given to a column in a relation Each column must have a
                                                         relation.
                           unique attribute. This are often referred to as the fields.

                                       Employee           Job         Manager



                                                                                                       7




                         Terminology: Domain
                              A pool of atomic values from which cells a given column take
                               their values. Each attribute has a domain.
                              Attributes may share domains
                                           m y          m
                                                                   Tom        Mary
                        Attribute             Domain               Bozo      Kali........
                        Employee            Person Name                              Typist Manager
                             Job             Job Name                                  Clerk........
                        Manager             Person Name
                                                                    Here again we use the
                                                                   same domain as above in
                                                                          employee.

                      An attribute value (a value in a column labelled by the attribute)
                      must be from the corresponding domain or may be NULL (          ).

                                                                                                       8




©Chisholm Institute
Terminology:Relation Schema
                            A Relational Schema is a named set of attributes. This refers to the
                               structure only of a relation. It is derived from the traditional set
                               notation displayed below

                             EMPLOYEE = { Employee, Job, Manager }

                            This is usually written in the modified version for database purposes:

                               EMPLOYEE( Employee, Job, Manager ) referring to the Table



                                             EMPLOYEE
                                              Employee          Job          Manager




                                                                                                      9




                           Terminology:Integrity Constraint and
                                    Domain Constraint
                      An Integrity Constraint is a condition that prescribes what
                      values are allowable in a relation. This permits the restriction of the
                         type of value that can be placed in a particular cell. Eg. only
                         numbers for telephone numbers

                      The Domain Constraint is a condition on the allowable values for an
                        attribute.
                                   e.g. Salary < $60,000


                                   Employee        Job        Manager      Salary
                                      Jack      Secretary       Jill      25,000       This restricts the
                      EMPLOYEE                                                         salary to be under
                                      Jill      Executive      Bozo       40,000           a set value.
                                      Bozo       Director                 50,000
                                      Lulu        Clerk         Jill      30,000
                                                                                                      10




©Chisholm Institute
Terminology:Key Constraint
                            A condition that no value of an attribute or set of attributes be
                             repeated in a relation.
                                  e.g. Employee(the attribute) has only unique values in
                             EMPLOYEE (the relation)
                                               relation).
                            The following relation violates this constraint:



                                                                              EMPLOYEE
                                                             Employee        Job      Manager     Salary
                        Jack appears twice.
                                                                   Jack   Secretary     Bozo      25,000
                         This means that
                         This violates the                         Jack   Secretary     Jill      25,000
                          Key Constraint                           Jill   Executive     Bozo      40,000
                                                                   Bozo    Director               50,000

                                                                   Lulu     Clerk       Jill      30,000



                                                                                                           11




                            Terminology:Key Constraint
                        An attribute (or set of attributes) to which a key constraint applies is
                        called a key ( or candidate key). Every relation schema must have a key.


                                            EMPLOYEE                                  Another possible key
                                                                                                       key.
                               Employee        Job       Manager          Salary      The combination of
                                                                                      Job and manager is
                                 Jack       Secretary      Bozo           25,000
                                                                                      also unique
                  Key            Kim        Secretary       Jill          25,000
                                  Jill      Executive      Bozo           40,000
                                 Bozo        Director      Bozo           50,000
                                 Lulu         Clerk         Jill          30,000



                            Simple Key        Composite Key:


                                If a key constraint applies to a set of attributes, it is
                                called a composite or Concatenated Key. Otherwise it is a
                                simple key.
                                                                                                           12




©Chisholm Institute
Terminology:Key Constraint

                             A key cannot have a NULL (                      ) value.

                             For example, If we change the table so that the Employee Bozo
                             does not have a manager then Job+Manager cannot be a key.



                                   Employee       Job            Manager          Salary
                                    Jack        Secretary         Bozo            25,000
                                     Kim
                                     K          Secretary          Jill
                                                                   J ll           25,000
                                                                                  25 000
                                     Jill       Executive         Bozo            40,000
                                    Bozo        Director                          50,000
                                     Lulu         Clerk            Jill           30,000



                                                                                                        13




                          Terminology:Key Constraint
                                   A primary key is a special preassigned key that can
                                    always be used to uniquely identify tuples. We have to
                                    choose a Primary Key for every Relation. We must consider
                                    all of the Candidate Keys and choose between them
                                                                                  them.
                                   Employee is a primary key for EMPLOYEE is usually
                                    written as:
                                    EMPLOYEE( Employee, Job, Manager, Salary )

                                                     Employee             Job      Manager     Salary
                        Here we have chosen               Jack      Secretary           Bozo   25,000
                      the Simple Key Employee
                       Over the concatenated              Kim       Secretary           Jill   25,000
                           option of both                 Jill      Executive           Bozo   40,000
                          Job and Manager
                                                          Bozo       Director           Bozo   50,000
                                                          Lulu            Clerk         Jill   30,000


                                                                                                        14




©Chisholm Institute
A Database is more than multiple tables you
                            must be able to “relate” them

                      Cus-code      Cus-Name             Area-Code           Phone             Agent-Code
                      10010         Ramus                615                 844-2573          502
                      10011         Dunne                713                 894-1238          501
                      10012         Smith                615                 894-2205          502
                      10013         Olowaski             615                 894-2180          502
                      10014         Orlando              615                 222-1672          501
                      10015         O’Brian              713                 442-3381          503
                      10016         Brown                615                 297-1226          502
                      10017         Williams             615                 290-2556          503
                      10018         Farris               713                 382-7185          501
                      10019         Smith                615                 297-3809          503

                                      The link is through the Agent-Code
                                 Agent-Code         Agent-Name               Agent-AreaCode      Agent-Phone
                                 501                Alby                     713                 226-1249
                                 502                Hahn                     615                 882-1244
                                 503                Okon                     615                 123-5589    15




                       Terminology: Relational Database
                       A Relational Database is just a set of Relations.
                       For example
                        EMPLOYEE               Employee              Job             Manager         Salary
                                                Jack              Secretary             Bozo         25,000
                                                  Kim             Secretary             Jill         25,000
                                                  Jill            Executive             Bozo         40,000
                                                Bozo              Director                           50,000
                                                 Lulu                Clerk              Jill         30,000

                              JOB        Job             Salary
                                              y
                                      Secretary          25,000
                                                           ,
                                                                       Which Attribute do you think
                                      Secretary          25,000
                                                                       relates these two tables
                                      Executive          40,000        together?
                                       Director          50,000
                                        Clerk            30,000

                                                                                                              16




©Chisholm Institute
Terminology:Relational Database Schema

                         A Relational Database Schema a set of Relation Schemas, together
                         with a set of Integrity Constraints.

                         For example the Relations that you have been looking at
                         with the headings
                                             EMPLOYEE
                                           Employee      Job          Manager       Salary

                                                                           JOB
                                                                          Job           Salary
                                are usually written as
                                        EMPLOYEE(Employee, Job, Manager)
                                  JOB(Job, Salary)

                               Notice how the Primary Keys are underlined


                                                                                                           17




                      Terminology :Referential Integrity Constraint

                      This constraint says that –
                      All the values in one column should also appear in another column.
                      Look at the table below. Every entry in the Job column of the Employee
                      table must appear in the Job column of the Job table




                          EMPLOYEE            FK                                  PK        JOB
                             Employee           Job        Manager                Job             Salary
                               Jack          Secretary         Bozo             Secretary         25,000
                               Kim           Secretary         Jill             Secretary
                                                                                S    t            25,000
                                                                                                  25 000
                               Jill          Executive         Bozo             Executive         40,000
                               Bozo           Director                          Director          50,000
                               Lulu            Clerk           Jill               Clerk           30,000

                                      PK                 FK
                                                                                                           18




©Chisholm Institute
Referential Integrity Constraint
                           Why does the following relational database violate the
                           referential integrity constraints?

                            EMPLOYEE           FK                            PK      JOB

                            Employee        Job          Manager            Job        Salary
                             Jack         Secretary        Bozo           Director     50,000
                              Kim         Secretary        Jill            Clerk       30,000
                             Bozo         Director
                              Lulu          Clerk          Jill


                              PK                           FK


                             In other words, Why can’t Employee(Job) be a Foreign Key to
                             Job(Job), or Employee(Manager) be a Foreignfor the answers
                                                              Click here Key to
                             Employee(Employee)?
                                                                                                19




                                   Why Use Relational
                                      Databases
                         Their major advantage is they minimise the
                          need t store the same data i a number of
                              d to t   th        d t in       b    f
                          places

                         This is referred to as data redundancy




                                                                                                20




©Chisholm Institute
Example of Data
                                  Redundancy (1)




                                                                    21




                                 Example of Data
                                  Redundancy (2)
                         The names and addresses of all students are
                          being
                          b i maintained i th
                                    i t i d in three places
                                                      l
                         If Owen Money moves house, his address
                          needs to be updated in three separate
                          places
                         Consider what might happen if he forgot to
                                          mg      pp    f   f g
                          let library administration know



                                                                    22




©Chisholm Institute
Example of Data
                                   Redundancy (3)




                                                                              23




                                  Example of Data
                                   Redundancy (4)
                         Data redundancy results in:
                           wastage of storage space by recording duplicate
                                     f                       d    d l
                            information

                           difficulty   in updating information

                           inaccurate
                            inaccurate,   out-of-date data being maintained
                                          out of date




                                                                              24




©Chisholm Institute
Other Advantages of Relational
                                     Databases
                         Flexibility
                           relationships
                              l      h       (links) are not implicitly defined by
                                             (l k )             l    l d f d
                            the data
                         Data structures are easily modified
                         Data can be added, deleted, modified or
                          queried easily




                                                                                     25




                          Summary of Some Common
                              Relational Terms
                         Entity - an object (person, place or thing) that we
                              wish to store data about
                         Relationship - an association between two entities
                         Relation - a table of data
                         Tuple - a row of data in a table
                         Attribute - a column of data in a table
                         Primary Key - an attribute (or group of attributes) that
                              uniquely identify individual records in a table
                         Foreign Key -     an attribute appearing within a table
                                            that is a primary key in another table

                                                                                     26




©Chisholm Institute
Network Diagrams




                                                                                             27




                      Terminology: Network Diagram

                       Referential Integrity constraints can easily be represented by
                       arrows FK       PK. The arrow points from the Foreign Key to the
                       matching Primary Key
                              g        y y
                          EMPLOYEE(Employee, Job, Manager)              JOB(Job, Salary)



                       A relational database schema with referential integrity constraints can
                       also be represented by a network diagram. A Referential Integrity
                       Constraint is notated as an arrow labeled by the foreign key. You must
                       always write the label of the Foreign Key on the arrow. Sometimes the
                       same attribute h s diff
                       s      tt ib t has different titl s i diff
                                                   t titles in different t bl s
                                                                       t tables.

                              EMPLOYEE                 Job                   JOB

                             Manager                         Network Diagram
                               Notice here, the label is Manager and not Employee.

                                                                                             28




©Chisholm Institute
Personnel Database: Consider the following Tables
                      PRIOR_JOB                                   EXPERTISE

                      E_NUMBER      PRIOR_TITLE                   E_NUMBER    SKILL                     ASSIGNMENT                      SKILL

                      1001         Junior consultant              1001        Stock market              E_NUMBER     P_NUMBER          AREA
                      1001         Research analyst               1001        Investments
                      1002         Junior consultant              1002        Stock market              1001         26713             Stock Market
                      1002         Research analyst               1003        Stock market              1002         26713             Taxation
                      1003         Junior consultant              1003        Investments               1003         23760             Investments
                      1004         Summer intern                  1004        Taxation                  1003         26511             Management
                                                                  1005        Management                1004         26511
                        PROJECT                                                                         1004         28765
                                                                                                        1005         23760
                        NAME                           P_NUMBER     MANAGER     ACTUAL_COST   EXPECTED_COST

                        New billing system             23760        Yates              1000     10000
                        Common stock issue             28765        Baker              3000      4000
                        Resolve bad debts              26713        Kanter             2000      1500
                        New office lease               26511        Yates              5000      5000
                        Revise documentation           34054        Kanter              100      3000
                        Entertain new client           87108        Yates              5000      2000
                        New TV commercial              85005        Baker             10000      8000




                                                        EMPLOYEE                                TITLE

                                                        NAME         E_NUMBER    DEPARTMENT             E_NUMBER   CURRENT_TITLE

                                                        Kanter       1111        Finance                1001       Senior consultant
                                                        Yates        1112        Accounting             1002       Senior consultant
                                                        Adams        1001        Finance                1003       Senior consultant
                                                        Baker        1002        Finance                1004       Junior consultant
                                                        Clarke       1003        Accounting             1005       Junior consultant
                                                        Dexter       1004        Finance                                                        29
                                                        Early        1005        Accounting




                             Personnel Database Schema
                             What are the connecting Foreign Keys to Primary Keys?
                                              Not FK, we will look at this
                                                        later
                      PROJECT (NAME, P_NUMBER, MANAGER, ACTUAL_COST, EXPECTED_COST )
                        ASSIGNMENT (E_NUMBER, P_NUMBER)                                                SKILL (AREA)

                        PRIOR_JOB (E_NUMBER, PRIOR_TITLE)

                        EXPERTISE (E_NUMBER, SKILL)

                        TITLE (E NUMBER CURRENT TITLE )
                               (E_NUMBER,




                                                EMPLOYEE (NAME, E_NUMBER, DEPARTMENT)                                                           30




©Chisholm Institute
Personnel Database Network Diagram
                         SKILL                    EMPLOYEE                     PROJECT



                      Once you have produced your Schema and identified the Primary and
                      Foreign Keys you can create the Network Diagram.The Network Diagram
                      shows each of the tables with their links. Each of the Tables (Relations)
                      are represented in a rectangle as shown. They are then connected by
                      arrows that show the FKs pointing to the PKs, The arrow head points
                      towards the PK, while the FK name written is the same as the attribute of
                      the table that has the
                      th t bl th t h th FK i it in it.



                       EXPERTISE          PRIOR_JOB             TITLE        ASSIGNMENT


                                                                                             31




                         Personnel Database Network Diagram

                         SKILL                    EMPLOYEE                     PROJECT




                       EXPERTISE          PRIOR_JOB            TITLE         ASSIGNMENT




                                                                                             32




©Chisholm Institute
Summary: Questions

                                    What is a Relational Database?

                                    What is a relation?

                                    What are Constraints?

                                    What is a Schema?

                                    What is a Network Diagram and why is it used?




                                                                                                                  33




                          Summary: Answers

                          A relational database is based on the relational data model.
                           It is one or more Relations(Tables) that are Related to each other
                          A relation is a table composed of rows (tuples) and columns, satisfying 5 properties
                            •   No duplicate rows
                            •   Rows can be in any order
                            •   Columns are uniquely named by Attributes
                            •   Each cell contains only one value
                            •   No null rows.

                          Constraints are central to the correct modeling of business information. Here we
                           have seen them limit the set up of your tables: Referential Constraint

                          The Network Diagram is used to navigate complex database structures. It is a
                           compact way to show the relationships between Relations (Tables)


                                                                                                                  34




©Chisholm Institute
Activities
                         Consider the following relational database
                          schemas.
                            h
                      Suppliers(suppId, name, street, city,state)
                      Part(partId,partName,weight,length,composition)
                      Products(prodId, prodName,department)
                      Supplies(partId,suppId)
                      Uses(partId,prodId)
                        Make
                         M k reasonable assumptions about the meaning of attribute and
                                   s n bl ss mpti ns b t th m nin f tt ib t nd
                         relations, identify the primary and foreign keys and draw a
                         network diagram showing the relations and foreign keys.



                                                                                         35




                                              Answer

                             Supplier               Part                  Product
                                                                          P d




                                   Supplies                     Uses




                                                                                         36




©Chisholm Institute
   Show the foreign keys on the network diagrams
                                   Orders
                                   Ordnum             ordDate                 custNumb
                                   12489              2/9/91                  124

                          Customer
                      custNumb       custName       Address         Balance         credLim         Slsnumber
                      124            Adams          48 oak st       418.68          500             3

                          SalesRep
                      Slsnumber       Name                address            totCom           commRate
                      3               Mary                12 Way             2150             .05

                          Part
                          Part       Desc           onHand          IT              wehsNumb        unitPrice
                          AX12       Iron           1.4             HW              3               17.95
                                                                                                                37




                      OrLine
                                 ordNum      Part               ordNum          quotePrice




                                                                                                                38




©Chisholm Institute
Answer

                              SalesRep
                                                                      Part
                                         SlsNumber
                                                             Part

                                   Customer               OrLine

                            CustNumb                    orLine
                                               Orders


                                                                             39




                                           Activities
                         What problems many arise from this table?
                           What
                             h    data redundancies are there?
                                  d      d d             h
                           What changes would you make? (hint make
                            another table.
                           What if I wanted to search by surname?




                                                                             40




©Chisholm Institute
Activities
                         What is wrong with this table?




                                                           41




                                Functional
                             Dependence FDD


                                                           42




©Chisholm Institute
Functional Dependency
                                  Diagrams
                      A FUNCTIONAL DEPENDENCY DIAGRAM is a way of
                      representing the structure of information needed to
                      support a business or organization


                      It can easily be converted into a design for a relational
                      database to support the operations of the business.




                                                                                  43




                      Data Analysis and Database
                        Design Using Functional
                         Dependency Diagrams
                      1. The
                      1 Th steps of D
                                  f Data Analysis i FDD are
                                            l i in
                         1.1 Look for Data Elements
                         1.2 Look for Functional Dependencies
                         1.3 Represent Functional Dependencies in a
                           diagram
                         1.4 Eli i
                         1 4 Eliminate R d d
                                       Redundant FFunctional
                                                       i   l
                           Dependencies
                      2. Data Design, after we have our final version of the FDD
                         2.1 Apply the Synthesis Algorithm
                                                                                  44




©Chisholm Institute
Starting points for drawing
                        functional dependency
                               diagrams
                       To start the process of constructing our FDD we do the following:

                       We must Understand the data
                       We Examine forms, reports,data entry and output screens
                        etc…
                       We Examine sample data
                       We consider Enterprise (business) rules
                       We examine narrative descriptions and conduct interviews.
                       We apply our Experiences/Practice and that of others

                                                                                           45




                           Enterprise Rules
                      What are Enterprise / Business Rules?
                      An enterprise rule (in the context of data analysis) is a
                      statement made by the enterprise (organisation, company,
                      officer in charge etc.) which constrains data in some way.
                       ff         h         ) h h              d

                      Functional dependencies are the most important type of
                      constraint on data and are often expressed in the form of
                      enterprise rules.
                                               e.g
                         No two employees may have the same employee number.
                                 An order is made by only one customer
                        An employee can belong to only one department at a time.


                                                                                           46




©Chisholm Institute
Drawing FDDs - Data
                                  Elements
                      We often refer to Data Elements during the FDD process
                       A data element is a elementary piece of recorded
                        information
                       Every data element has a unique name.
                       A data element is either a

                         Label,  e.g PersonName, Address,
                                    g
                           BulidingCode, or
                         Measurement,            e.g. Height, Age, Date
                       A data element must take values that can be written
                        down.                                                                   47




                             Functional Dependency
                                    Diagrams
                                                  Using the Method of
                                                    Decomposition
                                 Given the          Sample Data         Tables
                                 Problem                                 ONF        Eliminate
                                                                                    Repeating
                                                                                     Groups

                                             OR, here is the same
                              Attribute      process using the FDD               Universal
                            & Functional                                          Relation
                            Dependencies     approach
                                                                                    1NF
                                Functional                                             Eliminate
                               Dependency                                               Part Key
                                 Diagram              Now we have the                 Dependencies
                                                      Database Design
                                                                                  2NF
                                                                                 Relation

                                      Method of             3NF          Eliminate Non Key
                                      Synthesis            Relation         Dependencies        48




©Chisholm Institute
Data Element
                                      Examples
                       Here are some examples
                         PersonName h values Jeff, Jill, G Enid
                        P     N      has l        ff ll Gio, E d
                        Address has values 1 John St, 25 Rocky Road
                        Height has values 171cm, 195cm
                        Age has values 21,52,93,2
                        Date has values 20th May 1947, 2nd March 1997
                        JobName has values Manager Secretary Clerk
                                              Manager, Secretary,
                        Manager might not be a data element, but
                        ManagerName could be. It could be a value of another
                         data element e.g. JobName
                                                                                 49




                            Drawing FDDs Data
                                 Elements
                      Start drawing the Functional Dependency Diagram by
                      representing the Data Elements. A Data Element is
                      represented by its name placed in a box:     Data El
                                                                   D t Element
                                                                             t
                      Every data element must have a unique name in the
                      functional dependency diagram.
                      A data element cannot be composed of other data
                         elements i.e.
                      it cannot be broken down into smaller components
                                                        m      mp
                      A Data Element is also known as an ATTRIBUTE,
                         because it generally describes a property of some
                         thing which we will later call an ENTITY

                                                                                 50




©Chisholm Institute
Drawing FDDs –Using
                                     Elements
                          A functional Dependency is a relationship between Attributes.

                          It is shown as an arrow e.g             A                     B

                          It means that for every value of      A, there is only one value for B
                          It reads   “A determines          B”.
                          A is called a determinant attribute
                                                     attribute.

                          B is called the dependent attribute.


                                                                                                      51




                              Data Element Examples
                          Here are some examples of finding the Data Elements
                          on a typical form
                          Surname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
                          On a form gives rise to the element


                                                           Surname



                      CREDIT CARD                   Bankcard       Mastercard       Visa      Other


                                 On a form gives rise to the element
                                                        CreditCardType

                                                                                                      52




©Chisholm Institute
Functional Dependency
                                 Examples
                      Students and their family names
                      “Each student (identified by student number) has only one
                                    (      f     y               )        y
                      family name”
                                        Students            FamilyName
                                               1               Smith
                                               2               Jones
                                               3               Smith
                                               4              Andrews


                      Considering the rules stated above we should be able to
                      draw a FDD for this. What are the elements of
                      interest?
                                                                                               53




                                       FDDs Answer
                                      Students           FamilyName
                                           1                Smith
                                           2                Jones
                                           3                Smith
                                           4               Andrews

                      Data elements of interest are Student# and FamilyName.
                                    Students determine FamilyName
                                (or FamilyName depends on Students)

                                Students                 FamilyName
                         Each student has exactly one family name, but the name could be the
                         name of many students.
                         So FamilyName does not determine Student# e.g. “Smith is the
                         name of students 1 and 3
                                                                                               54




©Chisholm Institute
FDDs Examples
                        Employees and the departments
                                they work for.
                         Department Name
                           p                      Accounting
                                                           g     Department Name
                                                                   p                    Sales
                         Employee Number                   11     Employee Number           45
                                                            2                               27
                                                           31
                      Enterprise Rule: “Each employee works on only one department”

                      In this example the tables are representing some interesting data
                      of th b sin ss W see that Empl
                       f the business. We s th t Employees with the ID numbers 11,2
                                                             s ith th     n mb s 11 2
                      and 31 all work in the Accounting Dept and that Employees with the
                      ID numbers 45 and 27 work in the Sales Dept.
                      Do you think that you could draw an FDD to represent this? Have a
                      go and then check your answers
                                                                                                 55




                                         FDD Answers
                        Employees and the departments
                                they work for.
                        Department Name         Accounting      Department Name       Sales
                        Employee Number
                        E l      N b                   11       Employee Number        45
                                                       2                               27
                                                       31
                      Data elements of interest are Employee# and DeptName”
                         Employee#                 DeptName

                                                                Employee#
                                                                  p y           DeptName
                                                                                  p
                                                                     11               Acc
                                So we could make
                                this following Table                 2                Acc
                                                                    45            Sales
                                                                     31               Acc
                                                                    27                Acc        56




©Chisholm Institute
FDDs Examples
                      The quantity of parts held in a warehouse
                                 and their suppliers
                                 “Parts are uniquely identified by part numbers”
                              “Suppliers are uniquely identified by Supplier Names”
                                     “A part is supplied by only one supplier”
                                      A                              supplier
                                       “A part is held in only one quantity”
                                 Parts                  Suppliers Name             QOH
                                   1                   Wang Electronics              23
                                   2                 Cumberland Enterprises          80
                                   3                   Wang Electronics               4
                                   4                    Roscoe Pty Ltd
                                                               Pty.                  58
                              Part# determines SupplierName & Part# determines QOH
                                             Parts                 SupplierName

                                         Parts                              QOH

                  Should QOH be a determinant? No, common sense tells us that is not a reliable    57
                  choice. We could have had repeating values




                                           FDDs Examples
                      Students and their subjects enrolled.
                      “Each student is given a unique student number”
                       “A subject is uniquely identified by its name”
                         “A student may choose several subjects”
                          A                               subjects
                       Student     SubjectName                 Data element of interest are
                          1             History               Student# and SubjectName
                          1            Geography
                                                                              Student
                          1        Mathematics
                          1             History
                          2             English
                                        E li h                            SubjectName
                          2             English
                                                         There us no functional dependency here.
                          3        Mathematics
                                                         Student# does not determine
                          3             English          SubjectName,
                          4             French           nor does SubjectName determine Student#
                          4            Geography                                                   58




©Chisholm Institute
FDDs Examples
                      Results obtained by each student for
                                  each subject.
                              “Each student is given a unique student
                                             number”
                                                  b ”
                            “A subject is uniquely identified by its name”
                              “A student may choose several subjects”
                          “A student is allocated a result for each subject”
                                 “Each student has only one name.”



                                         Data elements are
                        Student#, StudentName, SubjectName and Grade



                                                                                      59




                                       FDDs Examples
                      Results obtained by each student for each
                                       subject.
                                          Student        Subject
                             Student                                    Grade
                                          Name           Name
                                1          Smith         History          A
                                1          Smith        Geography          B
                                1          Smith      Mathematics         A
                                2          Jones         History           C
                                2          Jones         English           C
                                3          Smith         English          A
                                3          Smith      Mathematics         A
                                4         Andrews        English          D
                                4         Andrews        French            C
                                4         Andrews       Geography          C

                                Try and construct an FDD for this table considering   60
                                the given Business Rules and the Data Elements




©Chisholm Institute
FDDs Examples
                      Results obtained by each student
                              for each subject.
                         We can see that there is only one and only one student name for
                         each student number, even th
                            h t d t       b         though th
                                                          h there might be more than one
                                                                    i ht b       th
                         student with the same name. So….

                                Student #                            StudentName


                         But the subject grade for any student cannot be determined by
                         the subject name or the student# by itself. A student can have
                         many grades depending on the subject. How can we cater for
                                                       subject
                         this?




                                                                                           61




                                     FDDs Answer
                      Results obtained by each student
                              for each subject.
                           We need to combine the two Elements to say that there is
                           one and only one grade for a student doing a particular
                           subject. Here then is the complete diagram


                                                                    StudentName
                                    Student



                                SubjectName                                 Grade


                                                                 This is called the
                                                                 Composite Determinant
                                                                                           62




©Chisholm Institute
FDDs Examples
                                       Customer Orders

                        Order      Part#       CustomerName                      Address
                         454         12          David Smith              1 John St, Hawthorn
                         454         23          David Smith              1 John St, Hawthorn
                         455         32          Emily Jones            45 Grattan St, Parkville
                         455         49          Emily Jones            45 Grattan St, Parkville
                         455         54          Emily Jones            45 Grattan St, Parkville
                         456         12            Mary Ho               44 Park St, Hawthorn
                                                                                 St
                         456         54            Mary Ho               44 Park St, Hawthorn
                                          Validating functional dependencies
                        Using simple data and populating the table, check there is only one value of the
                                                          dependent.

                                                                                                           63




                                           FDDs Examples
                                 “Orders is uniquely identified by its names”
                                 “Customers are uniquely identified by their
                                                 names”
                                       “A customer has only one address”
                                    “An order belongs to only one customer”
                                 “A part may be ordered only once one each
                                                   order”

                      Order     Parts Ordered         CustomerName                     Address
                      454            23, 12            David Smith             1 John St, Hawthorn
                      455         54, 49, 32            Emily Jones          45 Grattan St, Parkville
                      456            54, 12               Mary Ho             44 Park St, Hawthorn
                            Order                  CustomerName                         Address

                                                                                           Part#
                                                                                                           64




©Chisholm Institute
FDDs Examples
                          Employees and their tax files
                                    numbers
                                    “Each employee has a unique employee
                                                  number”
                                 “Each employee has a unique tax file number ”

                      Employee        TaxFile#
                                                        Employee# determines taxfile#
                           1         1024-5321
                                                     Employee#                 Taxfile#
                           2         3456-3294
                           3         8246-7106
                                                        Taxfile# determines Employee#
                           4         8861 6750
                                     8861-6750
                                                       Taxfile#               Employee#
                           5         1234-4765


                                        Taxfile#              Employee#

                                                                       Alternative keys 65




                         Obtain Tutorial 1 from your tutor.




                                                                                          66




©Chisholm Institute
Functional Dependency
                              Diagrams
                          Database Design
                                  Let’s look at the process of converting
                                  the FDD into a schema. We have a 12
                                  step process to do so, that has an
                                  iterative component to it (loop).
                                  The 12 steps are outlined in the next
                                  series of slides.




                                                                                 67




                               Functional Dependency Diagram
                                         Preparation

                      1. Represent each d t element as a box.
                      1 R         t    h data l      t     b
                      2. Represent each functional dependency by an arrow.
                      3. Eliminate augmented dependencies.
                      4. Eliminate transitive dependencies.
                      5. Eliminate pseudo-transitive dependencies.

                         By this t
                         B thi stage, intersecting attributes should have b
                                      i t     ti    tt ib t    h ld h     been
                         eliminated.




                                                                                 68




©Chisholm Institute
Deriving 3NF Schema: Synthesis Algorithm


                        6.    Pick any (unmarked) arrow in the diagram.

                       7.     Follow it back to its source, and write down
                              the name of the source.

                                      S

                                                                                S
                        8.     Follow all arrows from the source data item,
                               and write down the names of their destinations.
                                                             A

                                      S                          B
                                                                             S, A, B, C
                                                            C

                                  S       is now the key of a 3NF relation     (S , A, B, C).

                                                                                                   69




                             Synthesis Algorithm: Deriving 3NF Schema

                  9. Mark all the arrows just processed.                            A

                                                                 S                      B
                                                                                    C

                 10. If there are any unmarked arrows in the diagram, go back to step 6.

                      11.     Finally, determine the Universal Key. Any attribute which is not
                      determined by any other attribute (ie. has no arrow going into it) is part of
                      the Universal Key.
                                           U1                                       U2      U3


                  12. If the universal key is not already contained in any of the above relations, make
                  it into a relation. The universal key is the key of the new relation.


                                                                                                   70




©Chisholm Institute
A Fully Worked Example
                          We will now work from a given set of forms to produce an FDD
                           then use the 12 steps to produce the Schema. The forms that
                                               p     p                          f
                           follow show the time spent by a particular employee on a
                           particular project. They contain details of the employee along
                           with details of the project. In addition they also state the
                           hours that the employee has spent on any one project to date.
                           This is important to the FDD. Notice also that the employee
                           can have many previous titles and have a number of skills. This
                           also has to be dealt with in the FDD and then later after we
                           have used the synthesis technique to create the Schema. Have
                           h        d th    nth i t hni       t       t th S h m H
                           a good look at the forms on the next 2 slides and try to
                           develop the FDD yourself.



                                                                                                                                71




                                                Personnel Database Forms 1

                  EMPLOYEE
                  ______________________________________________________________________________________________________________
                  NAME           E_NUMBER   DEPARTMENT           LOCATION       CURRENT TITLE              PRIOR_TITLES
                  SKILLS_
                  SKILLS
                  ______________________________________________________________________________________________________________
                  Adams          1001       Finance    9th Floor Senior consultant          Junior consultant          Stock market
                                                                                            Research analyst           Investments
                  ______________________________________________________________________________________________________________
                  PROJECTS
                  ______________________________________________________________________________________________________________
                  NAME           TIME_SPENT P_NUMBER   MANAGER   ACTUAL_COST                EXPECTED_COST
                  ______________________________________________________________________________________________________________
                  Resolve bad debts 35      26713      Kanter         2000                  1500
                  ______________________________________________________________________________________________________________




                          We say that this table is in “zero normal form” (0NF)
                          This is because the cells have multiple values, eg. Prior titles and
                          Skills. The next slide shows forms that demonstrate that an employee
                          can work on many projects.


                                                                                                                                72




©Chisholm Institute
Personnel Database Forms 2
                      EMPLOYEE
                      __________________________________________________________________________________________________________
                      NAME        E_NUMBER   DEPARTMENT             LOCATION       CURRENT TITLE              PRIOR_TITLES
                                  SKILLS
                      __________________________________________________________________________________________________________
                      Baker       1002       Finance     9th Floor  Senior consultant          Junior consultant          Stock market
                                                                                               Research analyst
                      _____________________________________________________________________________________________________________________
                      _
                      PROJECTS
                      __________________________________________________________________________________________________________
                      NAME          TIME_SPENT P_NUMBER  MANAGER_NUM            ACTUAL_COST            EXPECTED_COST
                      __________________________________________________________________________________________________________
                      Res bad debts 18         26713       Kanter               2000                   1500
                      __________________________________________________________________________________________________________



                      ________________________________________________________________________________________________________________
                      EMPLOYEE
                      _________________________________________________________________________________________________________
                      NAME        E_NUMBER   DEPARTMENT             LOCATION       CURRENT TITLE              PRIOR_TITLES
                                  SKILLS
                      _________________________________________________________________________________________________________
                      Clarke      1003       Accounting  8th Floor  Senior consultant          Junior consultant          Stock market
                                                                                               Investments
                      _________________________________________________________________________________________________________

                      PROJECTS
                      _________________________________________________________________________________________________________
                      NAME            TIME_SPENT P_NUMBER MANAGER_NUM           ACTUAL_COST            EXPECTED_COST
                      _________________________________________________________________________________________________________
                      New billing system 26      23760    Yates                 1000                   10000
                      New office lease   10      26511    Yates                 5000                   5000
                      ___________________________________________________________________________________________________________________________


                                                                                                                                                       73




                                                   Personnel Database FD Diagram

                                         From the forms given we can produce the following
                                         FDD

                                                                                                                   EXPECTED_COST
                                                                                                                           _
                                                   PROJECT_NAME
                                                                                                                         ACTUAL_COST

                                                                                                                                  TIME_SPENT
                      MANAGER_NUM                                       P_NUMBER

                                                                                                                             EMPLOYEE_NAME
                      PRIOR_TITLE
                                                                         E_NUMBER
                                                                                                                                CURRENT_TITLE

                                                                                                                                                    SKILL

                                                                        DEPARTMENT_NAME                                            LOCATION

                                                                                                                                                       74




©Chisholm Institute
Personnel Database FD Diagram -Synthesis


                           Let us just consider the section of the FDD that
                           looks at the project number as the determinant
                                                                   EXPECTED_COST
                                  PROJECT_NAME

                                                                      ACTUAL_COST


                      MANAGER_NUM            P_NUMBER

                              By using the synthesis method we can choose an arrow, trace it
                              back to the source, and gather together all of the attributes that
                              the source points to. Try this and see if you can create the
                              schema for this table.



                                                                                               75




                        Personnel Database FD Diagram - Synthesis

                          Again, if we choose another arrow that has not been chosen
                          before and follow it back to the determinant we find
                          DEPARTMENT_NAME
                          DEPARTMENT NAME is a determinant. Gathering all of the
                                                       d t min nt G th in ll f th
                          attributes that it points to we only have the location
                          attribute. Hence this is a simple table consisting of
                          DEPARTMENT_NAME as the Primary key and LOCATION as
                          the only other attribute.




                                               DEPARTMENT_NAME                LOCATION

                           So the table
                           DEPT(DEPARTMENT_NAME, LOCATION)                is created

                                                                                               76




©Chisholm Institute
Personnel Database FD Diagram - Synthesis


                                                             EMPLOYEE_NAME
                                                             EMPLOYEE NAME

                                  E_NUMBER                     CURRENT_TITLE

                                                             Likewise for the section of the
                                                             FDD based around the
                                                             E_NUMBER, creating the following
                                                             table for the Employees details.
                                  DE
                                  DEPARTMENT_N ME
                                        MEN NAME



                  EMPLOYEE      (EMPLOYEE_NAME, E_NUMBER, DEPARTMENT, CURRENT
                  TITLE )

                                                                                                77




                      Personnel Database FD Diagram - Synthesis

                      Here we have a slightly more complicated one. The Time spent on the
                      project is dependent on both the Project number and the Employee
                      name,
                      name as it is the time spent by a particular employee on a particular
                      project. This is demonstrated by the boxing of both the above
                      attributes together pointing to the TIME_SPENT




                                         P_NUMBER
                                                                       TIME_SPENT
                                         E_NUMBER



                                         Try to create the Assignment table for this part
                                           of the FDD.When you think you have it have a
                                           look at ours and see if you are right.               78




©Chisholm Institute
Personnel Database
                                     FD Diagram - Synthesis

                                       P_NUMBER                 TIME_SPENT


                                       E_NUMBER


                      The main difference here is that when choosing the arrow to follow back
                      to the determinant we find that we have 2. This is OK, we just have to
                      make sure that in the table both of them are the primary Key. We have a
                      Composite Primary Key consisting P_NUMBER and E_NUMBER. When we
                      then gather up all of the attributes that they point to together we get
                      TIME_SPENT. Hence the table is written as


                         ASSIGNMENT (E_NUMBER, P_NUMBER, TIME_SPENT)
                                                                  See the composite primary
                                                                  key                               79




                        Personnel Database FD Diagram - Universal
                                           Key

                      Now, the last part of the synthesis is often forgotten. We must collect up
                      all of the attributes that do not have arrows pointing into them and place
                      them in the one table called the Universal Key. Every attribute collected
                      then becomes part of the composite Primary Key. In this case we have the
                      following attributes inside the box below. Notice how Skill is there, as it
                      sits by itself. Nothing is its determinant.



                                                                      P_NUMBER
                                              PRIOR_TITLE
                                              PRIOR TITLE


                                                    SKILL              E_NUMBER


                                UK (E_NUMBER, P_NUMBER, PRIOR_TITLE,            SKILL)
                                                                                                    80




©Chisholm Institute
Foreign Keys
                         In the Synthesis Algorithm, a foreign key will arise from any
                          attribute that is:
                          A. both a determinant and part of another determinant,
                             OR
                          B. both a determinant and a dependent.

                                TIME_SPENT        ASSIGNMENT (E_NUMBER, P_NUMBER, TIME_SPENT)



                                                                        A.
                                P_NUMBER


                                 E_NUMBER            EMPLOYEE    (E_NUMBER, DEPARTMENT_NAME)




                                                                                     B.
                             DEPARTMENT_NAME




                                LOCATION                                DEPT(DEPARTMENT_NAME, LOCATION)
                                                                                                          81




                          ISA = Is A
                            In the case of the manager we say that the manager number is
                            contained within the employee number

                       Every MANAGER value is a E_NUMBER value.
                                  MANAGER_NUM



                                               ISA

                                                                 E_NUMBER



                                                     MANAGER_NUM
                                 EMPLOYEE                               PROJECT

                       Gives rise to a new Foreign Key                                                   82




©Chisholm Institute
Personnel Database Schema
                                       Generated by Synthesis

                                  PROJECT   (NAME, P_NUMBER, MANAGER_NUM, ACTUAL_COST, EXPECTED_COST )



                         ASSIGNMENT     (E_NUMBER,
                           P_NUMBER, TIME_SPENT)                                      This foreign key
                                                                                       is a result of
                                                                                         MANAGER ISA
                      UK (E_NUMBER, P_NUMBER, PRIOR_TITLE,   SKILL)                       E_NUMBER



                                           EMPLOYEE    (NAME, E_NUMBER, DEPARTMENT, CURRENT TITLE )




                                                                         DEPT(DEPARTMENT, LOCATION)
                                                                                                      83




                                Personnel Database Network Diagram
                                      Generated by Synthesis


                                                DEPT
                                                   DEPARTMENT_NAME

                                                                  MANAGER_NUM
                                            EMPLOYEE                              PROJECT


                                                             E_NUMBER         P_NUMBER




                                                                      ASSIGNMENT


                                                                      E_NUMBER + P_NUMBER

                                                             UK                                       84




©Chisholm Institute
A Fully Worked
                                       Example
                        We now have to take care of the multi-valued areas such as skills and
                        prior titles. Our FDD synthesis takes care of everything up to that.
                              titles                                                    that
                        It converts the FDD to what we call “Third normal Form”. We know
                        that an individual can have many skills and many Prior Titles. They can
                        also work on many Projects. Knowing the Employee number will not
                        tell us one and only one value of the Skills that they have. We show
                        this on the extended FDD with a double arrow notation.The notation
                        for such a relationship is shown here where E_NUMBER is a
                        determinant for many values of skill. Consequently the resulting
                        representation shown on the next slide can be constructed, giving rise
                          p                                                        , g   g
                        to the splitting of the UK to form three more relations


                                                                    E_NUMBER

                                                SKILL
                                                                                                  85




                       Personnel Database
                       Multivalued Dependency-Decomposition


                      MultiValued Dependency                  ASSIGN    (E_NUMBER,
                                                                        (E NUMBER
                                             P_NUMBER,           P_NUMBER)
                      PRIOR_TITLE
                                                              Employees are associated with
                                MVDs                            Projects, Titles and Skills
                                              E_NUMBER          independently. There is no
                                                               direct relationship between
                           SKILL                                Projects, Titles and Skills.

                          PRIOR_JOB (E_NUMBER, PRIOR_TITLE)

                          EXPERTISE (E_NUMBER,          SKILL)      Hence we have the
                                                                    three new relations
                                                                    ASSIGN, PRIOR_JOB
                                                                    and EXPERTISE
                                                                                                  86




©Chisholm Institute
Personnel Database FD Diagram with
                                    MVDs and Inclusion

                          PROJECT_NAME
                                                                       EXPECTED_COST
                      MANAGER_NUM
                                                                         ACTUAL_COST
                                              P_NUMBER
                                                                             TIME_SPENT

                                              MVD
                               ISA
                                                                          EMPLOYEE_NAME

                                               E_NUMBER                    CURRENT_TITLE
                        PRIOR_TITL
                             E
                               MVD
                            SKILL

                                               DEPARTMENT_NAME               LOCATION        87




                          Final Personnel Database Schema

                               PROJECT   (NAME, P_NUMBER, MANAGER, ACTUAL_COST, EXPECTED_COST )


                                     ASSIGNMENT      (E_NUMBER, P_NUMBER, TIME_SPENT)

                      Decomposed     PRIOR_JOB    (E_NUMBER, PRIOR_TITLE)
                       from UK
                                     EXPERTISE    (E_NUMBER, SKILL)




                                   EMPLOYEE   (NAME, E_NUMBER, DEPARTMENT, CURRENT TITLE )




                                                                DEPT(DEPARTMENT, LOCATION)
                                                                                             88




©Chisholm Institute
Final Personnel Database Network Diagram


                                                    DEPT


                                                        DEPARTMENT_NAME


                                                                     MANAGER_NUM
                                                  EMPLOYEE                           PROJECT




                         E_NUMBER
                                                  E_NUMBER          E_NUMBER             P_NUMBER


                      EXPERTISE           PRIOR_JOB                         ASSIGNMENT


                                                                                                89




                                          Personnel Database
                                        FD Diagram - Synthesis

                                                                     EXPECTED_COST
                                    PROJECT_N ME
                                      OJE   NAME

                                                                        ACTUAL_COST


                        MANAGER               P_NUMBER



                          Choosing any of the arrows and following it back leads you to the
                          project number (P N b ) Thi is then the P i
                             j t       b (P_Number). This i th th Primary K      Key. If you then
                                                                                             th
                          gather all of the attributes that P_Number points to and place them in
                          the brackets you get the table Project with P_Number as the
                          primary Key.
                  PROJECT   (PROJECT_NAME,P_NUMBER, MANAGER, ACTUAL_COST, EXPECTED_COST )

                                                                                                90




©Chisholm Institute
Role Splitting In Functional
                                       Dependency Diagrams
                           In a Functional Dependency Diagram any group of
                            attributes can be related in only one way
                                                                  way.
                                For example, a pair of attributes can be related
                                 by an FD or not.
                           Sometimes data can be related in more one way.
                                For example, a department can have an employee
                               as its head or as a member.
                              The member relationship is represented in the
                                 FDD:
                                      E_NUMBER                       DEPARTMENT_NAME
                                But the head relationship is represented in the
                                 FDD:
                                          DEPARTMENT_NAME                         E_NUMBER            91




                              Role Splitting In Functional
                                 Dependency Diagrams

                           We c n ch s t
                            W can choose to split the E NUMBER attribute into E NUMBER and
                                                   th E_NUMBER tt ibut int E_NUMBER nd
                            HOD.
                           But the foreign key constraint that a Head of Department is an Employee
                            is lost on the FDD.

                                      E_NUMBER                       DEPARTMENT_NAME

                      FDD

                  Synthesis                                                   HOD
                                                     ISA

                  NetworkD                                 DEPARTMENT_NAME
                                     EMPLOYEE                                        DEPT
                                                               HOD
                                                                                                      92




©Chisholm Institute
Role Splitting In FDDs
                          Alternatively, we can choose to split the
                           DEPARTMENT_NAME attribute into EMPLOYING_DEPT and
                           HEADED_DEPT.
                          But h f
                           B the foreign key constraint that an Employing
                                           k               h       E l
                           Department must be a Headed Department is again lost on
                           the FDD.
                                          E_NUMBER                 EMPLOYING_DEPT
                             FDD

                           Synthesis
                           S nth sis   HEADED_DEPT                       ISA
                      NetworkD
                                                        EMPLOYING_DEPT
                                        EMPLOYEE                               DEPT
                                                            E_NUMBER

                                                                                      93




                            Role Splitting Example
                           Consider this example. We have the Employee
                                              p                     p y
                           with many Skills, Prior Titles, as before but we
                           also have equipment that belongs to a particular
                           employee, such as a computer and a fax. An
                           employee can have many different pieces of
                           equipment. It is worthwhile recognizing them on
                           the diagram and then decomposing them into
                           smaller relations as part of the schema
                               ll    l                f h      h




                                                                                      94




©Chisholm Institute
Suppose each item of
                                                                    equipment (identified by
                                                                    SERIAL#) belongs to an
                                                                           employee.
                                                SERIAL#               DESCRIPTION
                          PRIOR_TITL
                               E

                                         MVDs                        EMPLOYEE_NAME
                               SKILL
                                             E_NUMBER                  CURRENT_TITLE
                          UK                                  ISA
                                                                          HOD

                                           DEPARTMENT_NAME            LOCATION

                                       •MVDs not necessarily embodied in the UK.
                                       •Better to decompose on MVDs first.
                                       •MVDs partition attributes into independent sets.
                                                                                               95




                         Obtain Tutorial 2 from your tutor.




                                                                                               96




©Chisholm Institute
ENTITY RELATIONSHIP
                           ANALYSIS
                       In this area of the course we concentrate an
                         another modelling technique called Entity
                         Relationship Modelling (ERM or ER).
                       The first stage of this process will look at the
                         following:
                          ER Data Model and Notation
                          Strong E titi
                          St       Entities
                          Discovering Entities, Attributes
                          Identifying Entities
                          Discovering Relationships
                                                                                97




                           Critique of FD Analysis

                        We originally concentrated on the modelling technique
                        called Functional Dependency Diagrams. They have
                        limitations as follows:
                       Disadvantages of FDD
                         Does not represents real world objects, but only
                           data;
                         Cannot represent MVDs or specialization;
                         Cannot represent multiple relationships without
                           artificial splitting of attributes;
                         Entities fragmented during analysis;
                                                                                98




©Chisholm Institute
Conceptual Data Analysis


                          By using the ER technique we have the following
                          advantages:

                         Data Analysis from the User's Point of View
                         Models the Real World
                         Independent of T h l
                          I d     d t f Technology
                         Able to be validated in user terms



                                                                                              99




                               Entity Relationship Data Model
                                          Features

                              The
                              Th real value of using this type of modelling is that it
                                      l l     f sin        t p f m d llin      th t
                              considers the design in context to the environment where it
                              comes from. We have these Entities that have there own
                              identifying attributes, real things and real people. They can
                              be observed in the environment. ERM has the following
                              features:
                             Populations of Real World objects represented by Entities
                             Objects have Natural Identity
                             Entities have Attributes which have values
                             Entities related by Relationships
                             Constraints
                             Subtypes
                                                                                              100




©Chisholm Institute
Occurrences versus Entities


                                                                          56    Jack Ackov   28       Jill Hill
                             Let’s consider these two instances.
                             Here we have both Jack and Jill,
                             aged 56 and 23 respectively. By
                             themselves they exist as people in
                             their environment. In this case we
                             consider them to be two customers.
                             If we wish to model them and all of
                             the possible customers that we have
                                  p                                              Entity Occurrences
                             we need to create an Entity Class for               Entity Instances
                             all possibilities.                                  Objects




                                                                                                           101




                        Occurrences versus Entities
                      56        Jack Ackov   28      Jill Hill       Customer# CustName




                                                                       CUSTOMER

                           Entity Occurrences                         Entity Classes
                           Entity Instances                           Entity Types
                           Objects                                    Entity Sets
                           These are the Tuples of
                                            p                         This will convert to the schema
                           the table below                            below with Customer# being
                                                                      the Primary Key
                      Customer#         CustName

                           56          Jack Ackov                CUSTOMER(Customer#, CustName)
                           28            Jill Hill

                                                                                                           102




©Chisholm Institute
56      Jack Ackov
                                                                                             28      Jill Hill
                      Here we have Jack and Jill
                      placing orders for particular
                      items of stock. They appear
                      to order different amounts of
                      each. For instance Jack
                      orders 3 bikes. Each item
                      being ordered also has a
                      Stock#, Price and                            3                     4
                                                                                                             1
                      Description. These are                                        12
                      individual instances of the
                      process so we need to be
                      able to represent any
                      possibility of thi i our
                           ibilit  f this in
                      model. See how we do this
                      on the next page.




                                                                               156           Cup of Tea 234      Pussy Cat
                                                                                                                     103
                                                               23 50   Bike              1                  25




                           56    Jack Ackov
                                                  28   Jill Hill         Customer#             CustName



                                                                               CUSTOMER



                            3                 4
                                                               1
                                         12
                                                                       ORDERS                        Quantity




                                                                                     ITEM


                                                                              Stock# Price Desc
                           23 50 Bike   156 1 Cup of Tea 234 25 Pussy Cat

                                                                                                                     104




©Chisholm Institute
Occurrences to Entities to
                        Schemas
                       Customer#        CustName           CUSTOMER(Customer#, CustName)
                          56            Jack Ackov
                          28              Jill Hill

                      Customer#    Stock#        Quantity      ORDERS(Customer#, Stock#, Quantity)
                         56              23            3
                         56             156           12
                         28             156            4
                         28             234            1

                               Stock#         Price          Desc       ITEM(Stock#, Price, Desc)
                                   23          50             Bike
                                  156           1          Cup of Tea
                                  234          25           Pussy Cat

                                                                                                    105




                                                       ENTITIES

                   Entities are classes of objects about which we wish to store information
                                                                                 information.
                   Examples are:
                         People: Employees, Customers, Students,.....                      STRONG
                         Places: Offices, Cities, Routes, Warehouses,...
                         Things: Equipment, Products, Vehicles, Parts,....
                         Organizations: Suppliers, Teams, Agencies, Depts,...
                         Concepts: Projects, Orders, Complaints, Accounts,......
                         Events: Meetings, Appointments.




                                                                                              WEAK
                                                                                                106




©Chisholm Institute
STRONG ENTITIES


                       An entity is Existence Independent if an instance can exist in isolation.
                           For example, CUSTOMER is existence independent of ORDER,
                            but ORDER is existence dependent on CUSTOMER. The ORDER
                            is by a particular customer for a/many particular item(s)
                       An entity is identified if each instance can be uniquely distinguished by its
                        attributes (or relationships).
                           For example, CUSTOMER is identified by Customer#, PERSON
                            is id tifi d b N
                               identified by Name+Address+DoB, ORDER is id tifi d b
                                                  Add ss D B            identified by
                            Customer#+Date+Time.




                                                                                                    107




                                          STRONG ENTITIES


                         An entity is STRONG if it can be identified by its (own) immediate
                          attributes. Otherwise it is weak.
                             For example, CUSTOMER and PERSON are strong entities, but
                              ORDER is weak because it requires an attribute of another
                              entity to identify it. ORDER would be strong if it had an
                              Order#.
                         Existence independent entities are always strong.




                                                                                                    108




©Chisholm Institute
The Method: How to Develop the
                                        ERM
                         Step1: Search for Strong Entities and Attributes
                         Step2. Attach attributes and identify strong entities.
                         Step3.
                          Step3 Search for relationships.
                                            relationships
                         Step4. Determine constraints.
                         Step5. Attach remaining attributes to entities and relationships.
                         Step6. Expand multivalued attributes, and relationship attributes.
                                      Represent attributed relationships and/or multivalued
                                       attributes in a Functional Dependency Diagram.
                         Step7. Identify weak entities.
                         Step8.
                          Step8 Iterate steps 4,5,6,7,8 until no further expansion is possible
                                               45678                                  possible.
                         Step9. Look for generalization and specialization; Analyze Cycles; Convert
                          domain-sharing attributes to entities.




                                                                                                                       109




                                                                                       The
                                                        1
                                                    Search for
                                                                                      Method
                                                  strong entities         2
                      Narrative                   and attributes      Identify                          Attributes
                         &                                             strong
                       Forms
                       F                    Entities                  entities
                                                                         titi


                                         3                Strong entities
                                   Search for                                                               7
                                  relationships                                                          Identify
                                                                   4&5                                 weak entities
                                                                Determine                 Identified
                                                             constraints and                weak
                                  Relationships              attach attributes             entities


                                                                    Entity-Relationship                Weak Entities
                                                  6                       Diagram
                                         Expand attributed
                                        relationships and/or
                                        multivalued attributes
                                                                        6’                                      Functional
                                                               Represent attributed                            Dependency
                                                   relationships and/or multivalued attributes                  Diagrams110
                                                           as Functional Dependencies




©Chisholm Institute
Step1: Search for Strong Entities
                                     and Attributes
                             1 Entities
                                 relevant nouns
                                 many instances
                                 have properties (attributes or relationships)
                                 identifiable by properties
                             2 Strong Entities
                                 independent existence
                                 identifiable by own single-valued attributes
                            •3 Attributes
                             3
                                –printable names,
                                measurements
                                –domain of values
                                –no properties
                                –dependent existence
                                                                                              111




                            A worked example finding strong
                                       Entities
                                                              A customer is identified by a
                                                              customer#. A customer has a
                                                                  name and an address. A
                                                             customer may order quantities
                      Here we have a scenario.                 of many items. An item may
                      Try to firstly identify all of                be ordered by many
                      the strong entities followed                 customers. An item is
                      and all of the attributes.                identified by a stock#. An
                      Can you also identify a weak
                                                               item has a description and a
                      entity? Are there any
                      attributes that you have                price. A stock item may have
                      missed?                                     many colours. Any item
                                                             ordered by a customer on the
                                                              same day is part of the same
                                                                           order


                                                                                  Narrative
                                                                                              112




©Chisholm Institute
Worked Example
                         Continued
                       Let us take           and place it
                       around the nouns. These lead us
                       to what we will consider to be                  A customer is identified by a
                       the strong entities. If we then                 customer#. A customer has a
                       place the        around items                     name and an address. A
                       that we think would be the
                                                                     customer may order quantities of
                       attributes, we can see if if any
                       of the identified Entities are                  many items. An item may be
                       strong. You will notice that the               ordered by many customers. An
                       item has a description, price,                 item is identified by a stock#.
                       colour and stock # and a                       An item has a description and a
                       customer h a customer
                          t       has      t                           price. A stock item may have
                       number, name, and address.                     many colours. Any item ordered
                       These a Existence Independent                 by a customer on the same day is
                       Entities, and hence they must be                    part of the same order
                       strong.


                                                                                                                 113
                                                                                               Narrative




                                 Worked Example Continued
                                  We have our Entities and the attributes displayed before us.
                                  Customer and Item are strong entities as they are Existence
                                  Independent. What about Order?
                      Order
                      O d cannot b t be
                      identified completely by
                      any of its own attributes.                        Conceptual Schema
                      It is dependent on the
                      attributes of the other 2                     CUSTOMER                   ITEM


                      entities to be identified.                  Address      Customer#           Date
                      An order is made up of a                      Quantity     Stock#            Description

                      customer ordering an                          Price      Customer Name
                      item. We need the
                                                                      Colour
                      customer# and the item#                                              ORDER

                      to identify the order
                                                                                                                 114




©Chisholm Institute
Step2. Identify Strong Entities.
                            We now attach the attributes that belong to each of the Strong
                            Entities. Notice that there are some left that belong to neither
                            Customer or Item. We will look at this later.
                                         Item                      later

                                            Conceptual Schema
                                Customer#                            Stock#
                                                                                   Price
                              CUSTOMER                              ITEM
                                                                                   Desc
                                    Address                               Colour
                               CustName



                                                 Qty        Date

                      Both Customer and Item have what we call a Natural Identity
                                                                                               115




                        Another Example of the Difference
                        Between Weak and Strong Entities

                        Here is another example of a common occurrence that
                        H        n th     x mpl f        mm n          n th t
                        demonstrates the difference between a strong entity and a
                        weak entity
                       A strong entity is identified by its own attributes.
                          Bidders make purchases of goods at the auction.
                             BIDDER and a GOOD have independent existence, hence
                              are strong, but PURCHASE requires attributes of
                              BIDDER and GOOD. The Purchase is the identified by
                                           d
                              the Bibbers name and the Goods description. These are
                              2 attributes that belong to both the Bidder and the
                              Good respectively.


                                                                                               116




©Chisholm Institute
Additional Rules for Entities
                      For an Entity to exist we have the following additional rules:
                       There must be more than one instance of an entity.
                           The company provides superannuation for its workers.
                             Here there is only one instance of COMPANY so it is not
                               a valid entity.
                             We do not model anything that only has one instance
                       Each instance of an entity must be potentially distinguishable by its
                        properties.
                           Members send five dollars to the association.
                             A dollar does not normally have distinguishing
                              attributes.


                                                                                                   117




                      Step3. Search for Relationships.

                         We can now identify Relationships that have the following properties:
                        Relationships
                            Have associate entities
                            Are relevant
                                must be worth recording
                            Can be"structural" verbs in the narrative
                                persistent, rather than transient relationships
                            Can be "abstract" nouns in the narrative
                                nonmaterial connections, eg. Enrolment
                            Can be verbalizable in the narrative
                                eg. Student EnrolledIn Unit
                            Have 2 (binary)or more associated entities.(3-Ternary, up to n-ary for n
                             associated entities)



                                                                                                   118




©Chisholm Institute
Relationships:

                          A relationship must be relevant. It should indicate
                           a structural, persistent (extending over time)
                                          p           (         g            )
                           association between entities.
                            Students enrol in units selected from the
                                handbook.
                          A relationship should not usually indicate a
                           procedural event (one that occurs momentarily,
                           th n s forgott n.).
                           then is forgotten.).
                            Students read about units selected from the
                                handbook.


                                                                                               119




                          Relationships and the Worked
                                    Example.
                      We can now deal with the order. The order is a relationship between
                      the Customer and the Item. It is for a set Quantity on a given Date.



                                                Conceptual Schema

                                  Customer#                              Stock#
                                                                                       Price
                                CUSTOMER            ORDERS              ITEM
                                                                                       Desc
                                      Address
                                                                              Colour
                                 CustName




                                                    Qty        Date
                                                                                               120




©Chisholm Institute
Entity Relationship Analysis 2
                      We will now concentrate on the following areas of good ERM
                       Cardinality and Participation Constraints
                       Expanding to Weak Entities
                       Identifying Weak Entities
                       Derived Attributes and Relationships
                       Ternary Relationships




                                                                                                         121




                           These are Steps 4,5 & 6 from
                               the Original Diagram
                      Unidentified             Strong entities               Unattched Attributes
                         weak
                        entities


                                                         4 & 5
                                                      Determine             Identified            7
                       Relationships                constraints and           weak             Identify
                                                   attach attributes         entities        weak entities




                                 6
                       Expand attributed              Entity-Relationship
                          relationships,                                                     Weak Entities
                                                            Diagram
                        domain sharing &
                      multivalued attributes



                                                                                                         122




©Chisholm Institute
Step4. Determine constraints:
                               Cardinality(How many participate
                         To complete this we “fix a single instance at one end and
                         ask how many (one or many) are involved at the other end”.
                         Look t the l ti ship h
                         L k at th relationship where the Customer Orders an
                                                          th C st m O d s
                         Item. Consider a single Customer. Can they order many
                         items at the one time? Yes We have seen this. So we
                         position a crows foot (<) at the point where the line touches
                         the Entity Item. We then ask if an Item can be ordered by
                         many Customers? Yes So agin we place a crows foot at the
                         Customers end.

                                                  ORDERS
                      CUSTOMER                                                 ITEM

                                   From left to right-A Cust can order many Items
                                   From right to left- An Item can be ordered by many Cust

                                                                                             123




                                Step4. Determine constraints:
                                        Cardinality.

                      Again to complete this task we “Fix a
                      single instance at one end and ask how
                      many (one or many) are involved at the
                                                  l d      h
                                                                                CUSTOMER
                      other end”.
                      All of the Customers live in a City. A Customer
                      can only live in one City(unless they are
                      politicians) In this case we must place a single
                      straight line (|) at the intersection of the             LIVES IN
                      relationship line and the Entity City. However,
                      a city can have many Customers. We show this
                      by placing crows foot (>) at the end near the
                      Customer
                                                                                     CITY

                                                                                             124




©Chisholm Institute
Step4. The Resulting ER with the
                             Cardinality Constraints in Place


                                               ORDERS
                      CUSTOMER                                           ITEM
                                        Many CUSTOMERs
                                           can ORDER an Many ITEMs
                                               ITEM.      can be                {Colour}
                                                        ORDERed by
                      LIVES   INMany CUSTOMERs               a                 An ITEM
                                 can LIVE IN a          CUSTOMER.               can have
                                     CITY.
                                                                                  many
                                                                                Colours.
                                           A CUSTOMER can
                                            LIVE IN only one
                          CITY                   CITY.


                                                                                          125




                                Step4.Determine constraints:
                                       Participation.
                        Again, we “Fix a single instance at one end and ask if any must
                        (might or must) be involved at the other end”.
                        We ask “Does the Customer have to order an Item? Well
                                  Does                                        Well,
                        some would say that they do not they are not Customers! But
                        we know that we must be able to recognise our Customers
                        even though at present they do not have an order with us. So,
                        in this case they do not have to place an order. This is then
                        not mandatory, and we show it by placing the O beside the
                        cardinality constraint. An Item does not have to be on an
                        order as well, so it also gets the O notation.
                                      ,           g


                                               ORDERS
                      CUSTOMER                                           ITEM


                                                                                          126




©Chisholm Institute
Step4.Determine constraints:
                                           Participation.

                      This is also the case for the Customer living
                      in th City. D s th customer have to live in
                         the Cit Does the st m h            t li
                      the City? In this case Yes, as we class all
                      areas as being within a City. Hence we place
                      the “|” symbol beside the cardinality
                                                                             CUSTOMER
                      constraint next to the Entity City. The next
                      one is difficult. Does a City have to have a
                      Customer living in it. You might think No
                      here, but are you prepared to record all of
                           ,         y p p                        f
                      the cities in the world just to make sure?            LIVES IN
                      Common sense tells us that we have to make
                      this mandatory so we only keep a record of
                      the cities where our Customers live.

                                                                                CITY
                                                                                         127




                                Step4. The Resulting ER with the
                                Participation Constraints in Place


                                                  ORDERS
                         CUSTOMER                                            ITEM

                                              An ITEM might be
                                                ordered by a
                                                 CUSTOMER.
                                                                      A CUSTOMER might
                       LIVES    IN CITY must have
                                  A                                     order a ITEM.
                                 a CUSTOMER LIVing
                                       IN it
                                          it.

                                                    A CUSTOMER
                                                    must LIVE IN a
                             CITY                       CITY.


                                                                                         128




©Chisholm Institute
Step4. Determine constraints:
                             Validation by Population.



                      CUSTOMER                                       ITEM
                                          ORDERS

                                 Cust#     An important method of
                                                                            {Colour}
                                           evaluating the proposed model
                      LIVES IN             is to populate with instances   Stock#
                                           that demonstrate that the
                                           constraints that you have
                                           identified will work.

                         CITY            CityName
                                                                                 129




                          Step4. Tables Created to Validate


                      CUSTOMER                                       ITEM
                                          ORDERS
                                                Cust# Stock#
                                 Cust#            12    77                  {Colour}
                      LIVES IN                   23     77                 Stock#
                            CityName Cust#        12    88
                               Ayr
                                 y     12               99
                               Ayr     23         13
                               Tully   13                         Stock# Colour
                                                                    77    Pink
                         CITY            CityName                   77    Blue
                                                                                 130




©Chisholm Institute
Step5. Attach remaining attributes
                              to entities and relationships.
                      In the previous lectures we looked at a worked problem with a Customer
                      ordering an Item. Here we were able to identify Entities from the narration.
                      Next
                      N t we also listed the attributes which h l d us identify the Strong Entities.
                                ls list d th tt ib t s hi h helped s id tif th St             E titi s
                      We noticed that there were some Attributes, Qty and Date, left that could not
                      be attached to any of the strong entities. They, in fact, belong to the
                      Relationship that was associated with the two Entities.




                                           Customer#                              Stock#
                                                             ORDERS                              Price
                                         CUSTOMER                                 ITEM           Desc
                                               Address                                  Colour
                                          CustName


                                                             Qty         Date
                                                                                                    131




                             Step5. Attach remaining attributes
                               to entities and relationships.

                             The quantity attribute cannot be attached
                             to the Customer, as the Customer will
                             order different quantities of various items
                             at any time. It cannot also be attached to
                             the Item. It must therefore be attached
                             to the relationship between them, being
                             the d
                             th order. This is also the situation for th
                                                 ls th sit ti f the
                             Date that the order was placed.



                                                                                                    132




©Chisholm Institute
Step5. Attach remaining attributes
                           to entities and relationships.

                                           Conceptual Schema

                            Customer#                    Stock#
                                                                      Price
                          CUSTOMER           ORDERS      ITEM
                                                                      Desc
                                 Address
                                 Add          Qty Date
                                                               {Colour}
                            CustName




                                                                                133




                        Step6.Expand multi-valued attributes,
                        domain sharing attributes and binary
                               relationship attributes.
                      Once we have identified the Strong Entities,
                      Relationships and attached all Attributes to either the
                      Strong Entities or Relationships, we are required to
                      expand the diagram as much as possible to permit us to
                      complete the process. This requires us to move in 2
                      directions. We must first look at all of the binary
                      relationships to see what the cardinality constraints
                      are between them. If they are “many-to-many” they
                                                y          y        y     y
                      must be carefully considered and expanded where
                      appropriate.
                      We then must look at what we call Multi-valued
                      Attributes and Domain Sharing Attributes. The process
                      is shown on the following diagram.                        134




©Chisholm Institute
Step6                Entity-Relationship
                                                     Diagram


                         Many-to-many
                         M                                        Multi-valued
                                                                  Multi valued Attributes
                  Relationships with Attributes                  Domain Sharing Attributes

                                                                            Expand
                             Expand                                    Multi-valued and
                          relationships                                domain sharing
                         with attributes                                  attributes

                        Associative Entities                     Characteristic Entities



                                               Dependent Entities
                                                                                           135




                      Step6
                          In the worked example we have a Many-to-Many relationship
                          with 2 attributes . When we have a Many-to-Many relationship
                          with attached attributes we are required to create an
                          Associative Entity that bridges the 2 Entities.


                                              Conceptual Schema

                               Customer#                             Stock#
                                                                                Price
                              CUSTOMER            ORDERS             ITEM
                                                                                Desc

                                    Address       Qty Date
                                                                         {Colour}
                               CustName




                                                                                           136




©Chisholm Institute
Step6
                           Between Customer and Item we create the Weak (Associative)
                           Entity called Order. We have to redo the constraints. A customer
                           can place many orders or none. An order can come from only one
                           customer, and must be from a customer. An order is f many
                                     ,             f                            for     y
                           items and must be for at least one item, and an item can be on
                           many orders but does not have to appear on an order. These have
                           all been placed in the diagram shown below in their correct
                           position.

                                                       Associative Entity     Stock#
                              Customer#
                                             MAKES                     FOR                 Price
                             CUSTOMER                    ORDER                 ITEM
                                                                                           Desc
                                                                        Qty
                                   Address                 Date
                              CustName

                                                                                               137




                      Step6

                      We have also noticed that an item can come in many colours. This is a
                      multi-valued attribute. We can show this in our extended diagram by
                      having a relationship between the Item and the Colour, where colour is
                      the only attribute of the entity. In this case we are also saying that the
                                                 entity
                      colour of the item is optional (IE natural if requested) and that the only
                      colours to be recorded are those that are used.

                                                       Associative Entity     Stock#
                              Customer#
                                             MAKES                     FOR                 Price
                             CUSTOMER                    ORDER                 ITEM
                                                                                           Desc
                                                                                           D
                                                                        Qty
                                   Address                 Date                  HAS
                              CustName


                                                                              COLOUR
                                                     Characteristic Entity
                                                                                               138
                                                                                  Colour




©Chisholm Institute
Step6.                 Expand domain sharing attributes.

                      Managers supervise Workers. All employees are residents
                      of a City. Employees who live in different cities from their
                      managers get a special allowance
                                     City
                                             allowance.                               City



                                                       SUPERVISES
                              MANAGER                                          WORKER




                                                                                    Allowance
                          Characteristic Entity
                                                             CITY

                                            OF                                 OF
                                                                    CityName



                                                       SUPERVISES
                             MANAGER                                           WORKER



                                                                                    Allowance
                                                                                                139




                            Step7. Identify weak entities.
                         Clarify the notion of instance.
                            Weak entities are often ambiguous and difficult to
                              agree on
                                     on.
                         Attributes may be part of a key for a weak entity, but
                          at least one (one-must) relationship for identification
                          is required. So when we convert this into a table it will
                          require one of the PKs from the strong entities as part
                          of its own composite PK.
                         Validation, not design.
                            The purpose of identification is not to allocate a
                              primary key, but to validate the concept. We have
                              to be able to justify the concept of the relationship
                              in the real world.
                         Never invent keys. I know that it is tempting but you
                          must reflect the business as it is.                    140




©Chisholm Institute
Step7.            Identify weak entities.


                                          Conceptual Schema
                                          C     t l S h
                      Customer#                                        Stock#

                                                                 FOR                Price
                      CUSTOMER                   ORDER                 ITEM
                                                                                    Desc
                                                                 Qty
                           Address    MAKES        Date                    HAS
                      CustName


                           An ORDER is uniquely                        COLOUR
                           identified by the
                                                                           Colour
                           CUSTOMER and the Date.

                                                                                            141




                              Step7.            Identify weak entities.

                                          Conceptual Schema
                                          C     t l S h
                      Customer#                                        Stock#

                                                                 FOR                Price
                      CUSTOMER                   ORDER                 ITEM
                                                                                    Desc
                                                                 Qty
                           Address    MAKES        Date                   HAS
                      CustName

                           Here we still have the relationship
                                                                       COLOUR
                           between Order and Item that is
                           many to many with attributes. We
                           must expand this.                               Colour



                                                                                            142




©Chisholm Institute
Step8. Iterate until no further
                                       expansion is possible.
                                                                           An intersection entity is
                      We introduce the weak entity orderline that          one that is identified by
                      for one item. It is fully dependent on the           on y y ts r at onsh ps.
                                                                           only by its relationships.
                      attributes of Order and Item to be identified

                                                     Conceptual Schema        Stock#
                                   Date

                                               HAS                   FOR                    Price
                             ORDER                      ORDERLINE             ITEM
                                                                                            Desc

                       Customer#          MADE BY           Qty
                                                            Qt                    HAS


                            CUSTOMER
                                                     An ORDERLINE
                                                                            COLOUR
                                                     is identified by an
                                    Address
                                                     ITEM on an                    Colour
                            CustName                 ORDER.
                                                                                                    143




                                                      Example 2
                           Ted’s Computer courses is a company that
                            offers a number of computer courses to client
                              ff          b    f      t            t li t
                            companies. A client may request several courses
                            at one time.
                           A course has a course code, a description and a
                            list of resources required.
                           Every course has a number of suitable
                            E              h        b    f it bl
                            instructors who are qualified to deliver it. An
                            instructor has a name, address, and a telephone.

                                                                                                    144




©Chisholm Institute
Example 2 cont.
                         A client company can request that a course
                          begin on any date nominated. This course can be
                                            nominated
                          offered repeatedly on many dates.
                         The cost of the course is negotiated for each
                          offering.
                         Ted’s Company requires the details of all the
                          attendees.
                         When a course is offered an instructor is
                          assigned from the list of instructors for that
                          course.

                                                                         145




                                 Example 2 cont.3
                         Each course is offered as a series of usually 4
                          four hour sessions. Each session has a time and
                          f    h          i   E h       i h       ti     d
                          a place, again negotiated with the client.
                         Develop and E-R Diagram for the database
                          application.
                         The next slide show you the forms filled out
                          when a course is offered.
                            h             i ff    d



                                                                         146




©Chisholm Institute
Course Specifications Form




                                               147




                        Course Offering Form




                                               148




©Chisholm Institute
Course Attendance Form




                                                          149




                                      Solution 2 - 1
                         First get the major entities;
                           Client
                             l
                           Course
                           Resources
                           Instructors
                           Attendees
                           Session




                                                          150




©Chisholm Institute
Solution 2 - 2
                         Lets look at the client.




                                                     151




                                    Solution 2 - 3
                         Lets look at the Course.




                                                     152




©Chisholm Institute
Solution 2 - 4
                         Look at the relationship between the client and
                          the
                          th course.




                                                                         153




                                    Solution 2 - 5
                         The course entity has resources which is a
                          multiple d
                             lti l dependency value and i d lt with as
                                        d       l     d is dealt ith
                          follows.




                                                                         154




©Chisholm Institute
Solution 2 - 6
                         Next step is the Cardinality Constraints of the
                          three entities
                          th      titi




                                                                        155




                                    Solution 2 - 7
                         Lets include the Instructor entity




                                                                        156




©Chisholm Institute
Solution 2 - 8
                         For simplicity we are only going to add the
                          attributes that are primary k
                           tt ib t th t          i     keys.
                         A client can order a course on a set date.
                          Where does the date belong?




                                                                        157




                                    Solution 2 - 9
                         Lets look at the attendees entity. The
                          attendees attend a course requested b a
                           tt d        tt d                   t d by
                          client. This is a binary relationship.




                                                                        158




©Chisholm Institute
Solution 2 - 10
                         This binary relationship creates a weak entity
                          called C
                            ll d Course Off i
                                        Offering.




                                                                           159




                                   Solution 2 - 11
                         There is one more entity that needs to be
                          added, S
                           dd d Sessions.
                                      i




                                                                           160




©Chisholm Institute
Solution 2 - 12
                         So far it looks like.




                                                                       161




                                   Solution 2 - 13
                         Now lets look at the many to many relationships
                          that
                          th t are still there.
                                    till th




                                                                       162




©Chisholm Institute
Solution 2 - 14
                         Creating weak entities.
                              Resources           Qty

                             ResourcesUsed
                                                           CourseOffering

                                            CourseId

                                Course
                                                            Attendances


                            teachingStaff
                                                           Attendees
                                                    name

                          Consultant/Instructor
                                                                            163




                                            Solution 2 - 15
                         Now lets do the Network Diagram.




                                                                            164




©Chisholm Institute
Solution 2 - 16
                         The database schema.




                                                    165




©Chisholm Institute

More Related Content

PDF
A biologically-motivated approach to computer vision
PPT
Fundamentals of RDA: Resource Description & Access
PDF
Operational Discipline: 15 Characteristics of great companies and their people
DOC
Client Server Architecture
PPTX
Database Design E R 2009
PPT
PDF
Database Modeling
PDF
Comparision
A biologically-motivated approach to computer vision
Fundamentals of RDA: Resource Description & Access
Operational Discipline: 15 Characteristics of great companies and their people
Client Server Architecture
Database Design E R 2009
Database Modeling
Comparision

Similar to Database Design 2009 (20)

PDF
PDF
Dbms viva questions
PPTX
Islamic University Previous Year Question Solution 2019 (ADBMS)
PPT
Introduction to odbms
PDF
Structured Query Language
PDF
Lee oracle
PPTX
Previous question papers of Database Management System (DBMS) By SHABEEB
PDF
DBMS and Rdbms fundamental concepts
PPTX
Codd’s rule.pptx
PPT
1.2 active directory
PPT
Relational Database & Database Management System
PPTX
NIF as a Multi-Model Semantic Information System
PPTX
Weak Slot and Filler Structure (by Mintoo Jakhmola LPU)
PPTX
Islamic University Previous Year Question Solution 2018 (ADBMS)
PPT
Overview of Object-Oriented Concepts Characteristics by vikas jagtap
PPTX
A concept of dbms
DOC
IBM OOAD Part1 Summary
DOCX
Dbms question (3)
PDF
Data Mining And Data Warehousing Laboratory File Manual
PDF
Book study of jilid 1bbDeep-Learning.pdf
Dbms viva questions
Islamic University Previous Year Question Solution 2019 (ADBMS)
Introduction to odbms
Structured Query Language
Lee oracle
Previous question papers of Database Management System (DBMS) By SHABEEB
DBMS and Rdbms fundamental concepts
Codd’s rule.pptx
1.2 active directory
Relational Database & Database Management System
NIF as a Multi-Model Semantic Information System
Weak Slot and Filler Structure (by Mintoo Jakhmola LPU)
Islamic University Previous Year Question Solution 2018 (ADBMS)
Overview of Object-Oriented Concepts Characteristics by vikas jagtap
A concept of dbms
IBM OOAD Part1 Summary
Dbms question (3)
Data Mining And Data Warehousing Laboratory File Manual
Book study of jilid 1bbDeep-Learning.pdf
Ad

More from Cathie101 (20)

PPT
Page Layout 2010
PPT
Css 2010
PPT
Xhtml 2010
PPT
Dynamic Web Pages Ch 8 V1.0
PPT
Dynamic Web Pages Ch 6 V1.0
PPT
Dynamic Web Pages Ch 1 V1.0
PPT
Dynamic Web Pages Ch 9 V1.0
PPT
Dynamic Web Pages Ch 7 V1.0
PPT
Dynamic Web Pages Ch 5 V1.0
PPT
Dynamic Web Pages Ch 4 V1.0
PPT
Dynamic Web Pages Ch 3 V1.0
PPT
Dynamic Web Pages Ch 2 V1.0
PDF
Dynamic Web Pages 2009v2.1
DOC
Database Fdd
DOC
Sql All Tuts 2009
DOC
Database Fdd
DOC
Database Er
PPT
Database Design E R 2009
PPT
Database Design Fdd 2009
DOC
Overall Computer Systems 2nd Year 2009
Page Layout 2010
Css 2010
Xhtml 2010
Dynamic Web Pages Ch 8 V1.0
Dynamic Web Pages Ch 6 V1.0
Dynamic Web Pages Ch 1 V1.0
Dynamic Web Pages Ch 9 V1.0
Dynamic Web Pages Ch 7 V1.0
Dynamic Web Pages Ch 5 V1.0
Dynamic Web Pages Ch 4 V1.0
Dynamic Web Pages Ch 3 V1.0
Dynamic Web Pages Ch 2 V1.0
Dynamic Web Pages 2009v2.1
Database Fdd
Sql All Tuts 2009
Database Fdd
Database Er
Database Design E R 2009
Database Design Fdd 2009
Overall Computer Systems 2nd Year 2009
Ad

Database Design 2009

  • 1. Database Design 1 What is a Database?  A collection of data that is organised in a predictable structured way  Any organised collection of data in one place can be considered a database  Examples  filing cabinet  library  floppy disk 2 ©Chisholm Institute
  • 2. What is Data?  The heart of the DBMS.  Two kinds  Collection of information that is stored in the database.  A Metadata, information about the database. Also known as a data dictionary. 3 Relational Data Model  A relational database is perceived as a collection of tables.  Each table consists of a series of rows & columns.  Tables (or relations) are related to each other by sharing a common characteristic. (EG a customer or product (E m p table)  A table yields complete physical data independence. 4 ©Chisholm Institute
  • 3. Features of the relational data model  Logical and Physical separated  Simple to understand Easy to use understand. use.  Powerful nonprocedural (what, not how) language to access data.  Uniform access to all data.  Rigorous database design principles principles.  Access paths by matching data values, not by following fixed links. 5 Terminology  Relation  A 2-dimensional table of values with these properties:  No duplicate rows  Rows can be in any order y  Columns are uniquely named by Attributes  Each cell contains only one value Employee Job Manager Jack Secretary Jill Jill Executive Bozo Bozo Director Lulu Clerk Jill The special value is NULL which implies that there is no corresponding value for that cell. This may mean the value does not apply or that it is unavailable. Entire rows of NULLs are not allowed. 6 ©Chisholm Institute
  • 4. Terminology Tuple  Commonly referred to as a row in a relation. C l f d i l i Eg: Jack Clerk Jill Attribute • A name given to a column in a relation Each column must have a relation. unique attribute. This are often referred to as the fields. Employee Job Manager 7 Terminology: Domain  A pool of atomic values from which cells a given column take their values. Each attribute has a domain.  Attributes may share domains m y m Tom Mary Attribute Domain Bozo Kali........ Employee Person Name Typist Manager Job Job Name Clerk........ Manager Person Name Here again we use the same domain as above in employee. An attribute value (a value in a column labelled by the attribute) must be from the corresponding domain or may be NULL ( ). 8 ©Chisholm Institute
  • 5. Terminology:Relation Schema A Relational Schema is a named set of attributes. This refers to the structure only of a relation. It is derived from the traditional set notation displayed below EMPLOYEE = { Employee, Job, Manager } This is usually written in the modified version for database purposes: EMPLOYEE( Employee, Job, Manager ) referring to the Table EMPLOYEE Employee Job Manager 9 Terminology:Integrity Constraint and Domain Constraint An Integrity Constraint is a condition that prescribes what values are allowable in a relation. This permits the restriction of the type of value that can be placed in a particular cell. Eg. only numbers for telephone numbers The Domain Constraint is a condition on the allowable values for an attribute. e.g. Salary < $60,000 Employee Job Manager Salary Jack Secretary Jill 25,000 This restricts the EMPLOYEE salary to be under Jill Executive Bozo 40,000 a set value. Bozo Director 50,000 Lulu Clerk Jill 30,000 10 ©Chisholm Institute
  • 6. Terminology:Key Constraint  A condition that no value of an attribute or set of attributes be repeated in a relation. e.g. Employee(the attribute) has only unique values in EMPLOYEE (the relation) relation).  The following relation violates this constraint: EMPLOYEE Employee Job Manager Salary Jack appears twice. Jack Secretary Bozo 25,000 This means that This violates the Jack Secretary Jill 25,000 Key Constraint Jill Executive Bozo 40,000 Bozo Director 50,000 Lulu Clerk Jill 30,000 11 Terminology:Key Constraint An attribute (or set of attributes) to which a key constraint applies is called a key ( or candidate key). Every relation schema must have a key. EMPLOYEE Another possible key key. Employee Job Manager Salary The combination of Job and manager is Jack Secretary Bozo 25,000 also unique Key Kim Secretary Jill 25,000 Jill Executive Bozo 40,000 Bozo Director Bozo 50,000 Lulu Clerk Jill 30,000 Simple Key Composite Key: If a key constraint applies to a set of attributes, it is called a composite or Concatenated Key. Otherwise it is a simple key. 12 ©Chisholm Institute
  • 7. Terminology:Key Constraint A key cannot have a NULL ( ) value. For example, If we change the table so that the Employee Bozo does not have a manager then Job+Manager cannot be a key. Employee Job Manager Salary Jack Secretary Bozo 25,000 Kim K Secretary Jill J ll 25,000 25 000 Jill Executive Bozo 40,000 Bozo Director 50,000 Lulu Clerk Jill 30,000 13 Terminology:Key Constraint  A primary key is a special preassigned key that can always be used to uniquely identify tuples. We have to choose a Primary Key for every Relation. We must consider all of the Candidate Keys and choose between them them.  Employee is a primary key for EMPLOYEE is usually written as: EMPLOYEE( Employee, Job, Manager, Salary ) Employee Job Manager Salary Here we have chosen Jack Secretary Bozo 25,000 the Simple Key Employee Over the concatenated Kim Secretary Jill 25,000 option of both Jill Executive Bozo 40,000 Job and Manager Bozo Director Bozo 50,000 Lulu Clerk Jill 30,000 14 ©Chisholm Institute
  • 8. A Database is more than multiple tables you must be able to “relate” them Cus-code Cus-Name Area-Code Phone Agent-Code 10010 Ramus 615 844-2573 502 10011 Dunne 713 894-1238 501 10012 Smith 615 894-2205 502 10013 Olowaski 615 894-2180 502 10014 Orlando 615 222-1672 501 10015 O’Brian 713 442-3381 503 10016 Brown 615 297-1226 502 10017 Williams 615 290-2556 503 10018 Farris 713 382-7185 501 10019 Smith 615 297-3809 503 The link is through the Agent-Code Agent-Code Agent-Name Agent-AreaCode Agent-Phone 501 Alby 713 226-1249 502 Hahn 615 882-1244 503 Okon 615 123-5589 15 Terminology: Relational Database A Relational Database is just a set of Relations. For example EMPLOYEE Employee Job Manager Salary Jack Secretary Bozo 25,000 Kim Secretary Jill 25,000 Jill Executive Bozo 40,000 Bozo Director 50,000 Lulu Clerk Jill 30,000 JOB Job Salary y Secretary 25,000 , Which Attribute do you think Secretary 25,000 relates these two tables Executive 40,000 together? Director 50,000 Clerk 30,000 16 ©Chisholm Institute
  • 9. Terminology:Relational Database Schema A Relational Database Schema a set of Relation Schemas, together with a set of Integrity Constraints. For example the Relations that you have been looking at with the headings EMPLOYEE Employee Job Manager Salary JOB Job Salary are usually written as EMPLOYEE(Employee, Job, Manager) JOB(Job, Salary) Notice how the Primary Keys are underlined 17 Terminology :Referential Integrity Constraint This constraint says that – All the values in one column should also appear in another column. Look at the table below. Every entry in the Job column of the Employee table must appear in the Job column of the Job table EMPLOYEE FK PK JOB Employee Job Manager Job Salary Jack Secretary Bozo Secretary 25,000 Kim Secretary Jill Secretary S t 25,000 25 000 Jill Executive Bozo Executive 40,000 Bozo Director Director 50,000 Lulu Clerk Jill Clerk 30,000 PK FK 18 ©Chisholm Institute
  • 10. Referential Integrity Constraint Why does the following relational database violate the referential integrity constraints? EMPLOYEE FK PK JOB Employee Job Manager Job Salary Jack Secretary Bozo Director 50,000 Kim Secretary Jill Clerk 30,000 Bozo Director Lulu Clerk Jill PK FK In other words, Why can’t Employee(Job) be a Foreign Key to Job(Job), or Employee(Manager) be a Foreignfor the answers Click here Key to Employee(Employee)? 19 Why Use Relational Databases  Their major advantage is they minimise the need t store the same data i a number of d to t th d t in b f places  This is referred to as data redundancy 20 ©Chisholm Institute
  • 11. Example of Data Redundancy (1) 21 Example of Data Redundancy (2)  The names and addresses of all students are being b i maintained i th i t i d in three places l  If Owen Money moves house, his address needs to be updated in three separate places  Consider what might happen if he forgot to mg pp f f g let library administration know 22 ©Chisholm Institute
  • 12. Example of Data Redundancy (3) 23 Example of Data Redundancy (4)  Data redundancy results in:  wastage of storage space by recording duplicate f d d l information  difficulty in updating information  inaccurate inaccurate, out-of-date data being maintained out of date 24 ©Chisholm Institute
  • 13. Other Advantages of Relational Databases  Flexibility  relationships l h (links) are not implicitly defined by (l k ) l l d f d the data  Data structures are easily modified  Data can be added, deleted, modified or queried easily 25 Summary of Some Common Relational Terms  Entity - an object (person, place or thing) that we wish to store data about  Relationship - an association between two entities  Relation - a table of data  Tuple - a row of data in a table  Attribute - a column of data in a table  Primary Key - an attribute (or group of attributes) that uniquely identify individual records in a table  Foreign Key - an attribute appearing within a table that is a primary key in another table 26 ©Chisholm Institute
  • 14. Network Diagrams 27 Terminology: Network Diagram Referential Integrity constraints can easily be represented by arrows FK PK. The arrow points from the Foreign Key to the matching Primary Key g y y EMPLOYEE(Employee, Job, Manager) JOB(Job, Salary) A relational database schema with referential integrity constraints can also be represented by a network diagram. A Referential Integrity Constraint is notated as an arrow labeled by the foreign key. You must always write the label of the Foreign Key on the arrow. Sometimes the same attribute h s diff s tt ib t has different titl s i diff t titles in different t bl s t tables. EMPLOYEE Job JOB Manager Network Diagram Notice here, the label is Manager and not Employee. 28 ©Chisholm Institute
  • 15. Personnel Database: Consider the following Tables PRIOR_JOB EXPERTISE E_NUMBER PRIOR_TITLE E_NUMBER SKILL ASSIGNMENT SKILL 1001 Junior consultant 1001 Stock market E_NUMBER P_NUMBER AREA 1001 Research analyst 1001 Investments 1002 Junior consultant 1002 Stock market 1001 26713 Stock Market 1002 Research analyst 1003 Stock market 1002 26713 Taxation 1003 Junior consultant 1003 Investments 1003 23760 Investments 1004 Summer intern 1004 Taxation 1003 26511 Management 1005 Management 1004 26511 PROJECT 1004 28765 1005 23760 NAME P_NUMBER MANAGER ACTUAL_COST EXPECTED_COST New billing system 23760 Yates 1000 10000 Common stock issue 28765 Baker 3000 4000 Resolve bad debts 26713 Kanter 2000 1500 New office lease 26511 Yates 5000 5000 Revise documentation 34054 Kanter 100 3000 Entertain new client 87108 Yates 5000 2000 New TV commercial 85005 Baker 10000 8000 EMPLOYEE TITLE NAME E_NUMBER DEPARTMENT E_NUMBER CURRENT_TITLE Kanter 1111 Finance 1001 Senior consultant Yates 1112 Accounting 1002 Senior consultant Adams 1001 Finance 1003 Senior consultant Baker 1002 Finance 1004 Junior consultant Clarke 1003 Accounting 1005 Junior consultant Dexter 1004 Finance 29 Early 1005 Accounting Personnel Database Schema What are the connecting Foreign Keys to Primary Keys? Not FK, we will look at this later PROJECT (NAME, P_NUMBER, MANAGER, ACTUAL_COST, EXPECTED_COST )  ASSIGNMENT (E_NUMBER, P_NUMBER) SKILL (AREA)  PRIOR_JOB (E_NUMBER, PRIOR_TITLE)  EXPERTISE (E_NUMBER, SKILL)  TITLE (E NUMBER CURRENT TITLE ) (E_NUMBER, EMPLOYEE (NAME, E_NUMBER, DEPARTMENT) 30 ©Chisholm Institute
  • 16. Personnel Database Network Diagram SKILL EMPLOYEE PROJECT Once you have produced your Schema and identified the Primary and Foreign Keys you can create the Network Diagram.The Network Diagram shows each of the tables with their links. Each of the Tables (Relations) are represented in a rectangle as shown. They are then connected by arrows that show the FKs pointing to the PKs, The arrow head points towards the PK, while the FK name written is the same as the attribute of the table that has the th t bl th t h th FK i it in it. EXPERTISE PRIOR_JOB TITLE ASSIGNMENT 31 Personnel Database Network Diagram SKILL EMPLOYEE PROJECT EXPERTISE PRIOR_JOB TITLE ASSIGNMENT 32 ©Chisholm Institute
  • 17. Summary: Questions  What is a Relational Database?  What is a relation?  What are Constraints?  What is a Schema?  What is a Network Diagram and why is it used? 33 Summary: Answers  A relational database is based on the relational data model. It is one or more Relations(Tables) that are Related to each other  A relation is a table composed of rows (tuples) and columns, satisfying 5 properties • No duplicate rows • Rows can be in any order • Columns are uniquely named by Attributes • Each cell contains only one value • No null rows.  Constraints are central to the correct modeling of business information. Here we have seen them limit the set up of your tables: Referential Constraint  The Network Diagram is used to navigate complex database structures. It is a compact way to show the relationships between Relations (Tables) 34 ©Chisholm Institute
  • 18. Activities  Consider the following relational database schemas. h Suppliers(suppId, name, street, city,state) Part(partId,partName,weight,length,composition) Products(prodId, prodName,department) Supplies(partId,suppId) Uses(partId,prodId)  Make M k reasonable assumptions about the meaning of attribute and s n bl ss mpti ns b t th m nin f tt ib t nd relations, identify the primary and foreign keys and draw a network diagram showing the relations and foreign keys. 35 Answer Supplier Part Product P d Supplies Uses 36 ©Chisholm Institute
  • 19. Show the foreign keys on the network diagrams Orders Ordnum ordDate custNumb 12489 2/9/91 124 Customer custNumb custName Address Balance credLim Slsnumber 124 Adams 48 oak st 418.68 500 3 SalesRep Slsnumber Name address totCom commRate 3 Mary 12 Way 2150 .05 Part Part Desc onHand IT wehsNumb unitPrice AX12 Iron 1.4 HW 3 17.95 37 OrLine ordNum Part ordNum quotePrice 38 ©Chisholm Institute
  • 20. Answer SalesRep Part SlsNumber Part Customer OrLine CustNumb orLine Orders 39 Activities  What problems many arise from this table?  What h data redundancies are there? d d d h  What changes would you make? (hint make another table.  What if I wanted to search by surname? 40 ©Chisholm Institute
  • 21. Activities  What is wrong with this table? 41 Functional Dependence FDD 42 ©Chisholm Institute
  • 22. Functional Dependency Diagrams A FUNCTIONAL DEPENDENCY DIAGRAM is a way of representing the structure of information needed to support a business or organization It can easily be converted into a design for a relational database to support the operations of the business. 43 Data Analysis and Database Design Using Functional Dependency Diagrams 1. The 1 Th steps of D f Data Analysis i FDD are l i in 1.1 Look for Data Elements 1.2 Look for Functional Dependencies 1.3 Represent Functional Dependencies in a diagram 1.4 Eli i 1 4 Eliminate R d d Redundant FFunctional i l Dependencies 2. Data Design, after we have our final version of the FDD 2.1 Apply the Synthesis Algorithm 44 ©Chisholm Institute
  • 23. Starting points for drawing functional dependency diagrams To start the process of constructing our FDD we do the following:  We must Understand the data  We Examine forms, reports,data entry and output screens etc…  We Examine sample data  We consider Enterprise (business) rules  We examine narrative descriptions and conduct interviews.  We apply our Experiences/Practice and that of others 45 Enterprise Rules What are Enterprise / Business Rules? An enterprise rule (in the context of data analysis) is a statement made by the enterprise (organisation, company, officer in charge etc.) which constrains data in some way. ff h ) h h d Functional dependencies are the most important type of constraint on data and are often expressed in the form of enterprise rules. e.g No two employees may have the same employee number. An order is made by only one customer An employee can belong to only one department at a time. 46 ©Chisholm Institute
  • 24. Drawing FDDs - Data Elements We often refer to Data Elements during the FDD process  A data element is a elementary piece of recorded information  Every data element has a unique name.  A data element is either a Label, e.g PersonName, Address, g BulidingCode, or Measurement, e.g. Height, Age, Date  A data element must take values that can be written down. 47 Functional Dependency Diagrams Using the Method of Decomposition Given the Sample Data Tables Problem ONF Eliminate Repeating Groups OR, here is the same Attribute process using the FDD Universal & Functional Relation Dependencies approach 1NF Functional Eliminate Dependency Part Key Diagram Now we have the Dependencies Database Design 2NF Relation Method of 3NF Eliminate Non Key Synthesis Relation Dependencies 48 ©Chisholm Institute
  • 25. Data Element Examples Here are some examples PersonName h values Jeff, Jill, G Enid  P N has l ff ll Gio, E d  Address has values 1 John St, 25 Rocky Road  Height has values 171cm, 195cm  Age has values 21,52,93,2  Date has values 20th May 1947, 2nd March 1997  JobName has values Manager Secretary Clerk Manager, Secretary,  Manager might not be a data element, but ManagerName could be. It could be a value of another data element e.g. JobName 49 Drawing FDDs Data Elements Start drawing the Functional Dependency Diagram by representing the Data Elements. A Data Element is represented by its name placed in a box: Data El D t Element t Every data element must have a unique name in the functional dependency diagram. A data element cannot be composed of other data elements i.e. it cannot be broken down into smaller components m mp A Data Element is also known as an ATTRIBUTE, because it generally describes a property of some thing which we will later call an ENTITY 50 ©Chisholm Institute
  • 26. Drawing FDDs –Using Elements  A functional Dependency is a relationship between Attributes.  It is shown as an arrow e.g A B  It means that for every value of A, there is only one value for B  It reads “A determines B”.  A is called a determinant attribute attribute.  B is called the dependent attribute. 51 Data Element Examples Here are some examples of finding the Data Elements on a typical form Surname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . On a form gives rise to the element Surname CREDIT CARD Bankcard Mastercard Visa Other On a form gives rise to the element CreditCardType 52 ©Chisholm Institute
  • 27. Functional Dependency Examples Students and their family names “Each student (identified by student number) has only one ( f y ) y family name” Students FamilyName 1 Smith 2 Jones 3 Smith 4 Andrews Considering the rules stated above we should be able to draw a FDD for this. What are the elements of interest? 53 FDDs Answer Students FamilyName 1 Smith 2 Jones 3 Smith 4 Andrews Data elements of interest are Student# and FamilyName. Students determine FamilyName (or FamilyName depends on Students) Students FamilyName Each student has exactly one family name, but the name could be the name of many students. So FamilyName does not determine Student# e.g. “Smith is the name of students 1 and 3 54 ©Chisholm Institute
  • 28. FDDs Examples Employees and the departments they work for. Department Name p Accounting g Department Name p Sales Employee Number 11 Employee Number 45 2 27 31 Enterprise Rule: “Each employee works on only one department” In this example the tables are representing some interesting data of th b sin ss W see that Empl f the business. We s th t Employees with the ID numbers 11,2 s ith th n mb s 11 2 and 31 all work in the Accounting Dept and that Employees with the ID numbers 45 and 27 work in the Sales Dept. Do you think that you could draw an FDD to represent this? Have a go and then check your answers 55 FDD Answers Employees and the departments they work for. Department Name Accounting Department Name Sales Employee Number E l N b 11 Employee Number 45 2 27 31 Data elements of interest are Employee# and DeptName” Employee# DeptName Employee# p y DeptName p 11 Acc So we could make this following Table 2 Acc 45 Sales 31 Acc 27 Acc 56 ©Chisholm Institute
  • 29. FDDs Examples The quantity of parts held in a warehouse and their suppliers “Parts are uniquely identified by part numbers” “Suppliers are uniquely identified by Supplier Names” “A part is supplied by only one supplier” A supplier “A part is held in only one quantity” Parts Suppliers Name QOH 1 Wang Electronics 23 2 Cumberland Enterprises 80 3 Wang Electronics 4 4 Roscoe Pty Ltd Pty. 58 Part# determines SupplierName & Part# determines QOH Parts SupplierName Parts QOH Should QOH be a determinant? No, common sense tells us that is not a reliable 57 choice. We could have had repeating values FDDs Examples Students and their subjects enrolled. “Each student is given a unique student number” “A subject is uniquely identified by its name” “A student may choose several subjects” A subjects Student SubjectName Data element of interest are 1 History Student# and SubjectName 1 Geography Student 1 Mathematics 1 History 2 English E li h SubjectName 2 English There us no functional dependency here. 3 Mathematics Student# does not determine 3 English SubjectName, 4 French nor does SubjectName determine Student# 4 Geography 58 ©Chisholm Institute
  • 30. FDDs Examples Results obtained by each student for each subject. “Each student is given a unique student number” b ” “A subject is uniquely identified by its name” “A student may choose several subjects” “A student is allocated a result for each subject” “Each student has only one name.” Data elements are Student#, StudentName, SubjectName and Grade 59 FDDs Examples Results obtained by each student for each subject. Student Subject Student Grade Name Name 1 Smith History A 1 Smith Geography B 1 Smith Mathematics A 2 Jones History C 2 Jones English C 3 Smith English A 3 Smith Mathematics A 4 Andrews English D 4 Andrews French C 4 Andrews Geography C Try and construct an FDD for this table considering 60 the given Business Rules and the Data Elements ©Chisholm Institute
  • 31. FDDs Examples Results obtained by each student for each subject. We can see that there is only one and only one student name for each student number, even th h t d t b though th h there might be more than one i ht b th student with the same name. So…. Student # StudentName But the subject grade for any student cannot be determined by the subject name or the student# by itself. A student can have many grades depending on the subject. How can we cater for subject this? 61 FDDs Answer Results obtained by each student for each subject. We need to combine the two Elements to say that there is one and only one grade for a student doing a particular subject. Here then is the complete diagram StudentName Student SubjectName Grade This is called the Composite Determinant 62 ©Chisholm Institute
  • 32. FDDs Examples Customer Orders Order Part# CustomerName Address 454 12 David Smith 1 John St, Hawthorn 454 23 David Smith 1 John St, Hawthorn 455 32 Emily Jones 45 Grattan St, Parkville 455 49 Emily Jones 45 Grattan St, Parkville 455 54 Emily Jones 45 Grattan St, Parkville 456 12 Mary Ho 44 Park St, Hawthorn St 456 54 Mary Ho 44 Park St, Hawthorn Validating functional dependencies Using simple data and populating the table, check there is only one value of the dependent. 63 FDDs Examples “Orders is uniquely identified by its names” “Customers are uniquely identified by their names” “A customer has only one address” “An order belongs to only one customer” “A part may be ordered only once one each order” Order Parts Ordered CustomerName Address 454 23, 12 David Smith 1 John St, Hawthorn 455 54, 49, 32 Emily Jones 45 Grattan St, Parkville 456 54, 12 Mary Ho 44 Park St, Hawthorn Order CustomerName Address Part# 64 ©Chisholm Institute
  • 33. FDDs Examples Employees and their tax files numbers “Each employee has a unique employee number” “Each employee has a unique tax file number ” Employee TaxFile# Employee# determines taxfile# 1 1024-5321 Employee# Taxfile# 2 3456-3294 3 8246-7106 Taxfile# determines Employee# 4 8861 6750 8861-6750 Taxfile# Employee# 5 1234-4765 Taxfile# Employee# Alternative keys 65  Obtain Tutorial 1 from your tutor. 66 ©Chisholm Institute
  • 34. Functional Dependency Diagrams Database Design Let’s look at the process of converting the FDD into a schema. We have a 12 step process to do so, that has an iterative component to it (loop). The 12 steps are outlined in the next series of slides. 67 Functional Dependency Diagram Preparation 1. Represent each d t element as a box. 1 R t h data l t b 2. Represent each functional dependency by an arrow. 3. Eliminate augmented dependencies. 4. Eliminate transitive dependencies. 5. Eliminate pseudo-transitive dependencies. By this t B thi stage, intersecting attributes should have b i t ti tt ib t h ld h been eliminated. 68 ©Chisholm Institute
  • 35. Deriving 3NF Schema: Synthesis Algorithm 6. Pick any (unmarked) arrow in the diagram. 7. Follow it back to its source, and write down the name of the source. S S 8. Follow all arrows from the source data item, and write down the names of their destinations. A S B S, A, B, C C S is now the key of a 3NF relation (S , A, B, C). 69 Synthesis Algorithm: Deriving 3NF Schema 9. Mark all the arrows just processed. A S B C 10. If there are any unmarked arrows in the diagram, go back to step 6. 11. Finally, determine the Universal Key. Any attribute which is not determined by any other attribute (ie. has no arrow going into it) is part of the Universal Key. U1 U2 U3 12. If the universal key is not already contained in any of the above relations, make it into a relation. The universal key is the key of the new relation. 70 ©Chisholm Institute
  • 36. A Fully Worked Example  We will now work from a given set of forms to produce an FDD then use the 12 steps to produce the Schema. The forms that p p f follow show the time spent by a particular employee on a particular project. They contain details of the employee along with details of the project. In addition they also state the hours that the employee has spent on any one project to date. This is important to the FDD. Notice also that the employee can have many previous titles and have a number of skills. This also has to be dealt with in the FDD and then later after we have used the synthesis technique to create the Schema. Have h d th nth i t hni t t th S h m H a good look at the forms on the next 2 slides and try to develop the FDD yourself. 71 Personnel Database Forms 1 EMPLOYEE ______________________________________________________________________________________________________________ NAME E_NUMBER DEPARTMENT LOCATION CURRENT TITLE PRIOR_TITLES SKILLS_ SKILLS ______________________________________________________________________________________________________________ Adams 1001 Finance 9th Floor Senior consultant Junior consultant Stock market Research analyst Investments ______________________________________________________________________________________________________________ PROJECTS ______________________________________________________________________________________________________________ NAME TIME_SPENT P_NUMBER MANAGER ACTUAL_COST EXPECTED_COST ______________________________________________________________________________________________________________ Resolve bad debts 35 26713 Kanter 2000 1500 ______________________________________________________________________________________________________________ We say that this table is in “zero normal form” (0NF) This is because the cells have multiple values, eg. Prior titles and Skills. The next slide shows forms that demonstrate that an employee can work on many projects. 72 ©Chisholm Institute
  • 37. Personnel Database Forms 2 EMPLOYEE __________________________________________________________________________________________________________ NAME E_NUMBER DEPARTMENT LOCATION CURRENT TITLE PRIOR_TITLES SKILLS __________________________________________________________________________________________________________ Baker 1002 Finance 9th Floor Senior consultant Junior consultant Stock market Research analyst _____________________________________________________________________________________________________________________ _ PROJECTS __________________________________________________________________________________________________________ NAME TIME_SPENT P_NUMBER MANAGER_NUM ACTUAL_COST EXPECTED_COST __________________________________________________________________________________________________________ Res bad debts 18 26713 Kanter 2000 1500 __________________________________________________________________________________________________________ ________________________________________________________________________________________________________________ EMPLOYEE _________________________________________________________________________________________________________ NAME E_NUMBER DEPARTMENT LOCATION CURRENT TITLE PRIOR_TITLES SKILLS _________________________________________________________________________________________________________ Clarke 1003 Accounting 8th Floor Senior consultant Junior consultant Stock market Investments _________________________________________________________________________________________________________ PROJECTS _________________________________________________________________________________________________________ NAME TIME_SPENT P_NUMBER MANAGER_NUM ACTUAL_COST EXPECTED_COST _________________________________________________________________________________________________________ New billing system 26 23760 Yates 1000 10000 New office lease 10 26511 Yates 5000 5000 ___________________________________________________________________________________________________________________________ 73 Personnel Database FD Diagram From the forms given we can produce the following FDD EXPECTED_COST _ PROJECT_NAME ACTUAL_COST TIME_SPENT MANAGER_NUM P_NUMBER EMPLOYEE_NAME PRIOR_TITLE E_NUMBER CURRENT_TITLE SKILL DEPARTMENT_NAME LOCATION 74 ©Chisholm Institute
  • 38. Personnel Database FD Diagram -Synthesis Let us just consider the section of the FDD that looks at the project number as the determinant EXPECTED_COST PROJECT_NAME ACTUAL_COST MANAGER_NUM P_NUMBER By using the synthesis method we can choose an arrow, trace it back to the source, and gather together all of the attributes that the source points to. Try this and see if you can create the schema for this table. 75 Personnel Database FD Diagram - Synthesis Again, if we choose another arrow that has not been chosen before and follow it back to the determinant we find DEPARTMENT_NAME DEPARTMENT NAME is a determinant. Gathering all of the d t min nt G th in ll f th attributes that it points to we only have the location attribute. Hence this is a simple table consisting of DEPARTMENT_NAME as the Primary key and LOCATION as the only other attribute. DEPARTMENT_NAME LOCATION So the table DEPT(DEPARTMENT_NAME, LOCATION) is created 76 ©Chisholm Institute
  • 39. Personnel Database FD Diagram - Synthesis EMPLOYEE_NAME EMPLOYEE NAME E_NUMBER CURRENT_TITLE Likewise for the section of the FDD based around the E_NUMBER, creating the following table for the Employees details. DE DEPARTMENT_N ME MEN NAME EMPLOYEE (EMPLOYEE_NAME, E_NUMBER, DEPARTMENT, CURRENT TITLE ) 77 Personnel Database FD Diagram - Synthesis Here we have a slightly more complicated one. The Time spent on the project is dependent on both the Project number and the Employee name, name as it is the time spent by a particular employee on a particular project. This is demonstrated by the boxing of both the above attributes together pointing to the TIME_SPENT P_NUMBER TIME_SPENT E_NUMBER Try to create the Assignment table for this part of the FDD.When you think you have it have a look at ours and see if you are right. 78 ©Chisholm Institute
  • 40. Personnel Database FD Diagram - Synthesis P_NUMBER TIME_SPENT E_NUMBER The main difference here is that when choosing the arrow to follow back to the determinant we find that we have 2. This is OK, we just have to make sure that in the table both of them are the primary Key. We have a Composite Primary Key consisting P_NUMBER and E_NUMBER. When we then gather up all of the attributes that they point to together we get TIME_SPENT. Hence the table is written as ASSIGNMENT (E_NUMBER, P_NUMBER, TIME_SPENT) See the composite primary key 79 Personnel Database FD Diagram - Universal Key Now, the last part of the synthesis is often forgotten. We must collect up all of the attributes that do not have arrows pointing into them and place them in the one table called the Universal Key. Every attribute collected then becomes part of the composite Primary Key. In this case we have the following attributes inside the box below. Notice how Skill is there, as it sits by itself. Nothing is its determinant. P_NUMBER PRIOR_TITLE PRIOR TITLE SKILL E_NUMBER UK (E_NUMBER, P_NUMBER, PRIOR_TITLE, SKILL) 80 ©Chisholm Institute
  • 41. Foreign Keys  In the Synthesis Algorithm, a foreign key will arise from any attribute that is: A. both a determinant and part of another determinant, OR B. both a determinant and a dependent. TIME_SPENT ASSIGNMENT (E_NUMBER, P_NUMBER, TIME_SPENT) A. P_NUMBER E_NUMBER EMPLOYEE (E_NUMBER, DEPARTMENT_NAME) B. DEPARTMENT_NAME LOCATION DEPT(DEPARTMENT_NAME, LOCATION) 81 ISA = Is A In the case of the manager we say that the manager number is contained within the employee number  Every MANAGER value is a E_NUMBER value. MANAGER_NUM ISA E_NUMBER MANAGER_NUM EMPLOYEE PROJECT  Gives rise to a new Foreign Key 82 ©Chisholm Institute
  • 42. Personnel Database Schema Generated by Synthesis PROJECT (NAME, P_NUMBER, MANAGER_NUM, ACTUAL_COST, EXPECTED_COST ) ASSIGNMENT (E_NUMBER, P_NUMBER, TIME_SPENT) This foreign key is a result of MANAGER ISA UK (E_NUMBER, P_NUMBER, PRIOR_TITLE, SKILL) E_NUMBER EMPLOYEE (NAME, E_NUMBER, DEPARTMENT, CURRENT TITLE ) DEPT(DEPARTMENT, LOCATION) 83 Personnel Database Network Diagram Generated by Synthesis DEPT DEPARTMENT_NAME MANAGER_NUM EMPLOYEE PROJECT E_NUMBER P_NUMBER ASSIGNMENT E_NUMBER + P_NUMBER UK 84 ©Chisholm Institute
  • 43. A Fully Worked Example We now have to take care of the multi-valued areas such as skills and prior titles. Our FDD synthesis takes care of everything up to that. titles that It converts the FDD to what we call “Third normal Form”. We know that an individual can have many skills and many Prior Titles. They can also work on many Projects. Knowing the Employee number will not tell us one and only one value of the Skills that they have. We show this on the extended FDD with a double arrow notation.The notation for such a relationship is shown here where E_NUMBER is a determinant for many values of skill. Consequently the resulting representation shown on the next slide can be constructed, giving rise p , g g to the splitting of the UK to form three more relations E_NUMBER SKILL 85 Personnel Database Multivalued Dependency-Decomposition MultiValued Dependency ASSIGN (E_NUMBER, (E NUMBER P_NUMBER, P_NUMBER) PRIOR_TITLE Employees are associated with MVDs Projects, Titles and Skills E_NUMBER independently. There is no direct relationship between SKILL Projects, Titles and Skills. PRIOR_JOB (E_NUMBER, PRIOR_TITLE) EXPERTISE (E_NUMBER, SKILL) Hence we have the three new relations ASSIGN, PRIOR_JOB and EXPERTISE 86 ©Chisholm Institute
  • 44. Personnel Database FD Diagram with MVDs and Inclusion PROJECT_NAME EXPECTED_COST MANAGER_NUM ACTUAL_COST P_NUMBER TIME_SPENT MVD ISA EMPLOYEE_NAME E_NUMBER CURRENT_TITLE PRIOR_TITL E MVD SKILL DEPARTMENT_NAME LOCATION 87 Final Personnel Database Schema PROJECT (NAME, P_NUMBER, MANAGER, ACTUAL_COST, EXPECTED_COST ) ASSIGNMENT (E_NUMBER, P_NUMBER, TIME_SPENT) Decomposed PRIOR_JOB (E_NUMBER, PRIOR_TITLE) from UK EXPERTISE (E_NUMBER, SKILL) EMPLOYEE (NAME, E_NUMBER, DEPARTMENT, CURRENT TITLE ) DEPT(DEPARTMENT, LOCATION) 88 ©Chisholm Institute
  • 45. Final Personnel Database Network Diagram DEPT DEPARTMENT_NAME MANAGER_NUM EMPLOYEE PROJECT E_NUMBER E_NUMBER E_NUMBER P_NUMBER EXPERTISE PRIOR_JOB ASSIGNMENT 89 Personnel Database FD Diagram - Synthesis EXPECTED_COST PROJECT_N ME OJE NAME ACTUAL_COST MANAGER P_NUMBER Choosing any of the arrows and following it back leads you to the project number (P N b ) Thi is then the P i j t b (P_Number). This i th th Primary K Key. If you then th gather all of the attributes that P_Number points to and place them in the brackets you get the table Project with P_Number as the primary Key. PROJECT (PROJECT_NAME,P_NUMBER, MANAGER, ACTUAL_COST, EXPECTED_COST ) 90 ©Chisholm Institute
  • 46. Role Splitting In Functional Dependency Diagrams  In a Functional Dependency Diagram any group of attributes can be related in only one way way.  For example, a pair of attributes can be related by an FD or not.  Sometimes data can be related in more one way.  For example, a department can have an employee as its head or as a member.  The member relationship is represented in the FDD: E_NUMBER DEPARTMENT_NAME  But the head relationship is represented in the FDD: DEPARTMENT_NAME E_NUMBER 91 Role Splitting In Functional Dependency Diagrams  We c n ch s t W can choose to split the E NUMBER attribute into E NUMBER and th E_NUMBER tt ibut int E_NUMBER nd HOD.  But the foreign key constraint that a Head of Department is an Employee is lost on the FDD. E_NUMBER DEPARTMENT_NAME FDD Synthesis HOD ISA NetworkD DEPARTMENT_NAME EMPLOYEE DEPT HOD 92 ©Chisholm Institute
  • 47. Role Splitting In FDDs  Alternatively, we can choose to split the DEPARTMENT_NAME attribute into EMPLOYING_DEPT and HEADED_DEPT.  But h f B the foreign key constraint that an Employing k h E l Department must be a Headed Department is again lost on the FDD. E_NUMBER EMPLOYING_DEPT FDD Synthesis S nth sis HEADED_DEPT ISA NetworkD EMPLOYING_DEPT EMPLOYEE DEPT E_NUMBER 93 Role Splitting Example Consider this example. We have the Employee p p y with many Skills, Prior Titles, as before but we also have equipment that belongs to a particular employee, such as a computer and a fax. An employee can have many different pieces of equipment. It is worthwhile recognizing them on the diagram and then decomposing them into smaller relations as part of the schema ll l f h h 94 ©Chisholm Institute
  • 48. Suppose each item of equipment (identified by SERIAL#) belongs to an employee. SERIAL# DESCRIPTION PRIOR_TITL E MVDs EMPLOYEE_NAME SKILL E_NUMBER CURRENT_TITLE UK ISA HOD DEPARTMENT_NAME LOCATION •MVDs not necessarily embodied in the UK. •Better to decompose on MVDs first. •MVDs partition attributes into independent sets. 95  Obtain Tutorial 2 from your tutor. 96 ©Chisholm Institute
  • 49. ENTITY RELATIONSHIP ANALYSIS In this area of the course we concentrate an another modelling technique called Entity Relationship Modelling (ERM or ER). The first stage of this process will look at the following: ER Data Model and Notation Strong E titi St Entities Discovering Entities, Attributes Identifying Entities Discovering Relationships 97 Critique of FD Analysis We originally concentrated on the modelling technique called Functional Dependency Diagrams. They have limitations as follows:  Disadvantages of FDD Does not represents real world objects, but only data; Cannot represent MVDs or specialization; Cannot represent multiple relationships without artificial splitting of attributes; Entities fragmented during analysis; 98 ©Chisholm Institute
  • 50. Conceptual Data Analysis By using the ER technique we have the following advantages:  Data Analysis from the User's Point of View  Models the Real World  Independent of T h l I d d t f Technology  Able to be validated in user terms 99 Entity Relationship Data Model Features The Th real value of using this type of modelling is that it l l f sin t p f m d llin th t considers the design in context to the environment where it comes from. We have these Entities that have there own identifying attributes, real things and real people. They can be observed in the environment. ERM has the following features:  Populations of Real World objects represented by Entities  Objects have Natural Identity  Entities have Attributes which have values  Entities related by Relationships  Constraints  Subtypes 100 ©Chisholm Institute
  • 51. Occurrences versus Entities 56 Jack Ackov 28 Jill Hill Let’s consider these two instances. Here we have both Jack and Jill, aged 56 and 23 respectively. By themselves they exist as people in their environment. In this case we consider them to be two customers. If we wish to model them and all of the possible customers that we have p Entity Occurrences we need to create an Entity Class for Entity Instances all possibilities. Objects 101 Occurrences versus Entities 56 Jack Ackov 28 Jill Hill Customer# CustName CUSTOMER Entity Occurrences Entity Classes Entity Instances Entity Types Objects Entity Sets These are the Tuples of p This will convert to the schema the table below below with Customer# being the Primary Key Customer# CustName 56 Jack Ackov CUSTOMER(Customer#, CustName) 28 Jill Hill 102 ©Chisholm Institute
  • 52. 56 Jack Ackov 28 Jill Hill Here we have Jack and Jill placing orders for particular items of stock. They appear to order different amounts of each. For instance Jack orders 3 bikes. Each item being ordered also has a Stock#, Price and 3 4 1 Description. These are 12 individual instances of the process so we need to be able to represent any possibility of thi i our ibilit f this in model. See how we do this on the next page. 156 Cup of Tea 234 Pussy Cat 103 23 50 Bike 1 25 56 Jack Ackov 28 Jill Hill Customer# CustName CUSTOMER 3 4 1 12 ORDERS Quantity ITEM Stock# Price Desc 23 50 Bike 156 1 Cup of Tea 234 25 Pussy Cat 104 ©Chisholm Institute
  • 53. Occurrences to Entities to Schemas Customer# CustName CUSTOMER(Customer#, CustName) 56 Jack Ackov 28 Jill Hill Customer# Stock# Quantity ORDERS(Customer#, Stock#, Quantity) 56 23 3 56 156 12 28 156 4 28 234 1 Stock# Price Desc ITEM(Stock#, Price, Desc) 23 50 Bike 156 1 Cup of Tea 234 25 Pussy Cat 105 ENTITIES  Entities are classes of objects about which we wish to store information information.  Examples are:  People: Employees, Customers, Students,..... STRONG  Places: Offices, Cities, Routes, Warehouses,...  Things: Equipment, Products, Vehicles, Parts,....  Organizations: Suppliers, Teams, Agencies, Depts,...  Concepts: Projects, Orders, Complaints, Accounts,......  Events: Meetings, Appointments. WEAK 106 ©Chisholm Institute
  • 54. STRONG ENTITIES  An entity is Existence Independent if an instance can exist in isolation.  For example, CUSTOMER is existence independent of ORDER, but ORDER is existence dependent on CUSTOMER. The ORDER is by a particular customer for a/many particular item(s)  An entity is identified if each instance can be uniquely distinguished by its attributes (or relationships).  For example, CUSTOMER is identified by Customer#, PERSON is id tifi d b N identified by Name+Address+DoB, ORDER is id tifi d b Add ss D B identified by Customer#+Date+Time. 107 STRONG ENTITIES  An entity is STRONG if it can be identified by its (own) immediate attributes. Otherwise it is weak.  For example, CUSTOMER and PERSON are strong entities, but ORDER is weak because it requires an attribute of another entity to identify it. ORDER would be strong if it had an Order#.  Existence independent entities are always strong. 108 ©Chisholm Institute
  • 55. The Method: How to Develop the ERM  Step1: Search for Strong Entities and Attributes  Step2. Attach attributes and identify strong entities.  Step3. Step3 Search for relationships. relationships  Step4. Determine constraints.  Step5. Attach remaining attributes to entities and relationships.  Step6. Expand multivalued attributes, and relationship attributes.  Represent attributed relationships and/or multivalued attributes in a Functional Dependency Diagram.  Step7. Identify weak entities.  Step8. Step8 Iterate steps 4,5,6,7,8 until no further expansion is possible 45678 possible.  Step9. Look for generalization and specialization; Analyze Cycles; Convert domain-sharing attributes to entities. 109 The 1 Search for Method strong entities 2 Narrative and attributes Identify Attributes & strong Forms F Entities entities titi 3 Strong entities Search for 7 relationships Identify 4&5 weak entities Determine Identified constraints and weak Relationships attach attributes entities Entity-Relationship Weak Entities 6 Diagram Expand attributed relationships and/or multivalued attributes 6’ Functional Represent attributed Dependency relationships and/or multivalued attributes Diagrams110 as Functional Dependencies ©Chisholm Institute
  • 56. Step1: Search for Strong Entities and Attributes  1 Entities  relevant nouns  many instances  have properties (attributes or relationships)  identifiable by properties  2 Strong Entities  independent existence  identifiable by own single-valued attributes •3 Attributes 3 –printable names, measurements –domain of values –no properties –dependent existence 111 A worked example finding strong Entities A customer is identified by a customer#. A customer has a name and an address. A customer may order quantities Here we have a scenario. of many items. An item may Try to firstly identify all of be ordered by many the strong entities followed customers. An item is and all of the attributes. identified by a stock#. An Can you also identify a weak item has a description and a entity? Are there any attributes that you have price. A stock item may have missed? many colours. Any item ordered by a customer on the same day is part of the same order Narrative 112 ©Chisholm Institute
  • 57. Worked Example Continued Let us take and place it around the nouns. These lead us to what we will consider to be A customer is identified by a the strong entities. If we then customer#. A customer has a place the around items name and an address. A that we think would be the customer may order quantities of attributes, we can see if if any of the identified Entities are many items. An item may be strong. You will notice that the ordered by many customers. An item has a description, price, item is identified by a stock#. colour and stock # and a An item has a description and a customer h a customer t has t price. A stock item may have number, name, and address. many colours. Any item ordered These a Existence Independent by a customer on the same day is Entities, and hence they must be part of the same order strong. 113 Narrative Worked Example Continued We have our Entities and the attributes displayed before us. Customer and Item are strong entities as they are Existence Independent. What about Order? Order O d cannot b t be identified completely by any of its own attributes. Conceptual Schema It is dependent on the attributes of the other 2 CUSTOMER ITEM entities to be identified. Address Customer# Date An order is made up of a Quantity Stock# Description customer ordering an Price Customer Name item. We need the Colour customer# and the item# ORDER to identify the order 114 ©Chisholm Institute
  • 58. Step2. Identify Strong Entities. We now attach the attributes that belong to each of the Strong Entities. Notice that there are some left that belong to neither Customer or Item. We will look at this later. Item later Conceptual Schema Customer# Stock# Price CUSTOMER ITEM Desc Address Colour CustName Qty Date Both Customer and Item have what we call a Natural Identity 115 Another Example of the Difference Between Weak and Strong Entities Here is another example of a common occurrence that H n th x mpl f mm n n th t demonstrates the difference between a strong entity and a weak entity  A strong entity is identified by its own attributes.  Bidders make purchases of goods at the auction. BIDDER and a GOOD have independent existence, hence are strong, but PURCHASE requires attributes of BIDDER and GOOD. The Purchase is the identified by d the Bibbers name and the Goods description. These are 2 attributes that belong to both the Bidder and the Good respectively. 116 ©Chisholm Institute
  • 59. Additional Rules for Entities For an Entity to exist we have the following additional rules:  There must be more than one instance of an entity.  The company provides superannuation for its workers. Here there is only one instance of COMPANY so it is not a valid entity. We do not model anything that only has one instance  Each instance of an entity must be potentially distinguishable by its properties.  Members send five dollars to the association. A dollar does not normally have distinguishing attributes. 117 Step3. Search for Relationships. We can now identify Relationships that have the following properties:  Relationships  Have associate entities  Are relevant must be worth recording  Can be"structural" verbs in the narrative persistent, rather than transient relationships  Can be "abstract" nouns in the narrative nonmaterial connections, eg. Enrolment  Can be verbalizable in the narrative eg. Student EnrolledIn Unit  Have 2 (binary)or more associated entities.(3-Ternary, up to n-ary for n associated entities) 118 ©Chisholm Institute
  • 60. Relationships:  A relationship must be relevant. It should indicate a structural, persistent (extending over time) p ( g ) association between entities. Students enrol in units selected from the handbook.  A relationship should not usually indicate a procedural event (one that occurs momentarily, th n s forgott n.). then is forgotten.). Students read about units selected from the handbook. 119 Relationships and the Worked Example. We can now deal with the order. The order is a relationship between the Customer and the Item. It is for a set Quantity on a given Date. Conceptual Schema Customer# Stock# Price CUSTOMER ORDERS ITEM Desc Address Colour CustName Qty Date 120 ©Chisholm Institute
  • 61. Entity Relationship Analysis 2 We will now concentrate on the following areas of good ERM  Cardinality and Participation Constraints  Expanding to Weak Entities  Identifying Weak Entities  Derived Attributes and Relationships  Ternary Relationships 121 These are Steps 4,5 & 6 from the Original Diagram Unidentified Strong entities Unattched Attributes weak entities 4 & 5 Determine Identified 7 Relationships constraints and weak Identify attach attributes entities weak entities 6 Expand attributed Entity-Relationship relationships, Weak Entities Diagram domain sharing & multivalued attributes 122 ©Chisholm Institute
  • 62. Step4. Determine constraints: Cardinality(How many participate To complete this we “fix a single instance at one end and ask how many (one or many) are involved at the other end”. Look t the l ti ship h L k at th relationship where the Customer Orders an th C st m O d s Item. Consider a single Customer. Can they order many items at the one time? Yes We have seen this. So we position a crows foot (<) at the point where the line touches the Entity Item. We then ask if an Item can be ordered by many Customers? Yes So agin we place a crows foot at the Customers end. ORDERS CUSTOMER ITEM From left to right-A Cust can order many Items From right to left- An Item can be ordered by many Cust 123 Step4. Determine constraints: Cardinality. Again to complete this task we “Fix a single instance at one end and ask how many (one or many) are involved at the l d h CUSTOMER other end”. All of the Customers live in a City. A Customer can only live in one City(unless they are politicians) In this case we must place a single straight line (|) at the intersection of the LIVES IN relationship line and the Entity City. However, a city can have many Customers. We show this by placing crows foot (>) at the end near the Customer CITY 124 ©Chisholm Institute
  • 63. Step4. The Resulting ER with the Cardinality Constraints in Place ORDERS CUSTOMER ITEM Many CUSTOMERs can ORDER an Many ITEMs ITEM. can be {Colour} ORDERed by LIVES INMany CUSTOMERs a An ITEM can LIVE IN a CUSTOMER. can have CITY. many Colours. A CUSTOMER can LIVE IN only one CITY CITY. 125 Step4.Determine constraints: Participation. Again, we “Fix a single instance at one end and ask if any must (might or must) be involved at the other end”. We ask “Does the Customer have to order an Item? Well Does Well, some would say that they do not they are not Customers! But we know that we must be able to recognise our Customers even though at present they do not have an order with us. So, in this case they do not have to place an order. This is then not mandatory, and we show it by placing the O beside the cardinality constraint. An Item does not have to be on an order as well, so it also gets the O notation. , g ORDERS CUSTOMER ITEM 126 ©Chisholm Institute
  • 64. Step4.Determine constraints: Participation. This is also the case for the Customer living in th City. D s th customer have to live in the Cit Does the st m h t li the City? In this case Yes, as we class all areas as being within a City. Hence we place the “|” symbol beside the cardinality CUSTOMER constraint next to the Entity City. The next one is difficult. Does a City have to have a Customer living in it. You might think No here, but are you prepared to record all of , y p p f the cities in the world just to make sure? LIVES IN Common sense tells us that we have to make this mandatory so we only keep a record of the cities where our Customers live. CITY 127 Step4. The Resulting ER with the Participation Constraints in Place ORDERS CUSTOMER ITEM An ITEM might be ordered by a CUSTOMER. A CUSTOMER might LIVES IN CITY must have A order a ITEM. a CUSTOMER LIVing IN it it. A CUSTOMER must LIVE IN a CITY CITY. 128 ©Chisholm Institute
  • 65. Step4. Determine constraints: Validation by Population. CUSTOMER ITEM ORDERS Cust# An important method of {Colour} evaluating the proposed model LIVES IN is to populate with instances Stock# that demonstrate that the constraints that you have identified will work. CITY CityName 129 Step4. Tables Created to Validate CUSTOMER ITEM ORDERS Cust# Stock# Cust# 12 77 {Colour} LIVES IN 23 77 Stock# CityName Cust# 12 88 Ayr y 12 99 Ayr 23 13 Tully 13 Stock# Colour 77 Pink CITY CityName 77 Blue 130 ©Chisholm Institute
  • 66. Step5. Attach remaining attributes to entities and relationships. In the previous lectures we looked at a worked problem with a Customer ordering an Item. Here we were able to identify Entities from the narration. Next N t we also listed the attributes which h l d us identify the Strong Entities. ls list d th tt ib t s hi h helped s id tif th St E titi s We noticed that there were some Attributes, Qty and Date, left that could not be attached to any of the strong entities. They, in fact, belong to the Relationship that was associated with the two Entities. Customer# Stock# ORDERS Price CUSTOMER ITEM Desc Address Colour CustName Qty Date 131 Step5. Attach remaining attributes to entities and relationships. The quantity attribute cannot be attached to the Customer, as the Customer will order different quantities of various items at any time. It cannot also be attached to the Item. It must therefore be attached to the relationship between them, being the d th order. This is also the situation for th ls th sit ti f the Date that the order was placed. 132 ©Chisholm Institute
  • 67. Step5. Attach remaining attributes to entities and relationships. Conceptual Schema Customer# Stock# Price CUSTOMER ORDERS ITEM Desc Address Add Qty Date {Colour} CustName 133 Step6.Expand multi-valued attributes, domain sharing attributes and binary relationship attributes. Once we have identified the Strong Entities, Relationships and attached all Attributes to either the Strong Entities or Relationships, we are required to expand the diagram as much as possible to permit us to complete the process. This requires us to move in 2 directions. We must first look at all of the binary relationships to see what the cardinality constraints are between them. If they are “many-to-many” they y y y y must be carefully considered and expanded where appropriate. We then must look at what we call Multi-valued Attributes and Domain Sharing Attributes. The process is shown on the following diagram. 134 ©Chisholm Institute
  • 68. Step6 Entity-Relationship Diagram Many-to-many M Multi-valued Multi valued Attributes Relationships with Attributes Domain Sharing Attributes Expand Expand Multi-valued and relationships domain sharing with attributes attributes Associative Entities Characteristic Entities Dependent Entities 135 Step6 In the worked example we have a Many-to-Many relationship with 2 attributes . When we have a Many-to-Many relationship with attached attributes we are required to create an Associative Entity that bridges the 2 Entities. Conceptual Schema Customer# Stock# Price CUSTOMER ORDERS ITEM Desc Address Qty Date {Colour} CustName 136 ©Chisholm Institute
  • 69. Step6 Between Customer and Item we create the Weak (Associative) Entity called Order. We have to redo the constraints. A customer can place many orders or none. An order can come from only one customer, and must be from a customer. An order is f many , f for y items and must be for at least one item, and an item can be on many orders but does not have to appear on an order. These have all been placed in the diagram shown below in their correct position. Associative Entity Stock# Customer# MAKES FOR Price CUSTOMER ORDER ITEM Desc Qty Address Date CustName 137 Step6 We have also noticed that an item can come in many colours. This is a multi-valued attribute. We can show this in our extended diagram by having a relationship between the Item and the Colour, where colour is the only attribute of the entity. In this case we are also saying that the entity colour of the item is optional (IE natural if requested) and that the only colours to be recorded are those that are used. Associative Entity Stock# Customer# MAKES FOR Price CUSTOMER ORDER ITEM Desc D Qty Address Date HAS CustName COLOUR Characteristic Entity 138 Colour ©Chisholm Institute
  • 70. Step6. Expand domain sharing attributes. Managers supervise Workers. All employees are residents of a City. Employees who live in different cities from their managers get a special allowance City allowance. City SUPERVISES MANAGER WORKER Allowance Characteristic Entity CITY OF OF CityName SUPERVISES MANAGER WORKER Allowance 139 Step7. Identify weak entities. Clarify the notion of instance. Weak entities are often ambiguous and difficult to agree on on. Attributes may be part of a key for a weak entity, but at least one (one-must) relationship for identification is required. So when we convert this into a table it will require one of the PKs from the strong entities as part of its own composite PK. Validation, not design. The purpose of identification is not to allocate a primary key, but to validate the concept. We have to be able to justify the concept of the relationship in the real world. Never invent keys. I know that it is tempting but you must reflect the business as it is. 140 ©Chisholm Institute
  • 71. Step7. Identify weak entities. Conceptual Schema C t l S h Customer# Stock# FOR Price CUSTOMER ORDER ITEM Desc Qty Address MAKES Date HAS CustName An ORDER is uniquely COLOUR identified by the Colour CUSTOMER and the Date. 141 Step7. Identify weak entities. Conceptual Schema C t l S h Customer# Stock# FOR Price CUSTOMER ORDER ITEM Desc Qty Address MAKES Date HAS CustName Here we still have the relationship COLOUR between Order and Item that is many to many with attributes. We must expand this. Colour 142 ©Chisholm Institute
  • 72. Step8. Iterate until no further expansion is possible. An intersection entity is We introduce the weak entity orderline that one that is identified by for one item. It is fully dependent on the on y y ts r at onsh ps. only by its relationships. attributes of Order and Item to be identified Conceptual Schema Stock# Date HAS FOR Price ORDER ORDERLINE ITEM Desc Customer# MADE BY Qty Qt HAS CUSTOMER An ORDERLINE COLOUR is identified by an Address ITEM on an Colour CustName ORDER. 143 Example 2  Ted’s Computer courses is a company that offers a number of computer courses to client ff b f t t li t companies. A client may request several courses at one time.  A course has a course code, a description and a list of resources required.  Every course has a number of suitable E h b f it bl instructors who are qualified to deliver it. An instructor has a name, address, and a telephone. 144 ©Chisholm Institute
  • 73. Example 2 cont.  A client company can request that a course begin on any date nominated. This course can be nominated offered repeatedly on many dates.  The cost of the course is negotiated for each offering.  Ted’s Company requires the details of all the attendees.  When a course is offered an instructor is assigned from the list of instructors for that course. 145 Example 2 cont.3  Each course is offered as a series of usually 4 four hour sessions. Each session has a time and f h i E h i h ti d a place, again negotiated with the client.  Develop and E-R Diagram for the database application.  The next slide show you the forms filled out when a course is offered. h i ff d 146 ©Chisholm Institute
  • 74. Course Specifications Form 147 Course Offering Form 148 ©Chisholm Institute
  • 75. Course Attendance Form 149 Solution 2 - 1  First get the major entities;  Client l  Course  Resources  Instructors  Attendees  Session 150 ©Chisholm Institute
  • 76. Solution 2 - 2  Lets look at the client. 151 Solution 2 - 3  Lets look at the Course. 152 ©Chisholm Institute
  • 77. Solution 2 - 4  Look at the relationship between the client and the th course. 153 Solution 2 - 5  The course entity has resources which is a multiple d lti l dependency value and i d lt with as d l d is dealt ith follows. 154 ©Chisholm Institute
  • 78. Solution 2 - 6  Next step is the Cardinality Constraints of the three entities th titi 155 Solution 2 - 7  Lets include the Instructor entity 156 ©Chisholm Institute
  • 79. Solution 2 - 8  For simplicity we are only going to add the attributes that are primary k tt ib t th t i keys.  A client can order a course on a set date. Where does the date belong? 157 Solution 2 - 9  Lets look at the attendees entity. The attendees attend a course requested b a tt d tt d t d by client. This is a binary relationship. 158 ©Chisholm Institute
  • 80. Solution 2 - 10  This binary relationship creates a weak entity called C ll d Course Off i Offering. 159 Solution 2 - 11  There is one more entity that needs to be added, S dd d Sessions. i 160 ©Chisholm Institute
  • 81. Solution 2 - 12  So far it looks like. 161 Solution 2 - 13  Now lets look at the many to many relationships that th t are still there. till th 162 ©Chisholm Institute
  • 82. Solution 2 - 14  Creating weak entities. Resources Qty ResourcesUsed CourseOffering CourseId Course Attendances teachingStaff Attendees name Consultant/Instructor 163 Solution 2 - 15  Now lets do the Network Diagram. 164 ©Chisholm Institute
  • 83. Solution 2 - 16  The database schema. 165 ©Chisholm Institute