Relational Databases the Relational Model - PowerPoint PPT Presentation

1 / 23
About This Presentation
Title:

Relational Databases the Relational Model

Description:

John. Mary. John. Kate. LName. Smith. Brown. Doe. Jones. 3 Attributes ( Degree = 3 ) 4 Tuples ... Marketing's DID changes then John Smith's and Mark Jones' DIDs ... – PowerPoint PPT presentation

Number of Views:34
Avg rating:3.0/5.0
Slides: 24
Provided by: Steven503
Category:

less

Transcript and Presenter's Notes

Title: Relational Databases the Relational Model


1
Relational Databases the Relational Model
  • Database Systems Lecture 2

2
In This Lecture
  • The relational data model (a way to describe
    data)
  • Relational data structure
  • Relational data integrity
  • Relational data manipulation
  • For more information
  • Connolly and Begg chapters 3 and 4
  • E.F. Codds paper
  • http//www.acm.org/classics/nov95/

3
Data Models
  • A data model is a representation, a way to
    organise data for databases
  • There are several data models, e.g.
  • Hierarchical data model organises data as a tree
    structure, e.g., a record is linked to only one
    parent record
  • Network data model organises data as a network,
    e.g., a record can be linked to other records in
    an arbitrary way
  • Relational data model organises data into sets,
    though it appears to the user as tables

4
The Relational Model
  • Introduced in E.F. Codds 1970 paper A
    Relational Model of Data for Large Shared
    Databanks
  • The foundation for most (but not all) current
    database systems
  • Concerned with 3 main things
  • Data structure (how data is represented)
  • Data integrity (what data is allowed)
  • Data manipulation (what you can do with the data)

5
Relational Data Structure
  • Data is stored in relations (tables)
  • Each relation has a scheme (heading)
  • The scheme defines the relations attributes
    (columns)
  • Data takes the form of tuples (rows)

6
Naming Conventions
  • Naming conventions
  • A consistent naming convention can help to remind
    you of the structure
  • Assign each table a unique prefix, so a student
    name may be stuName, and a module name modName
  • Naming keys
  • Having a unique number as the primary key can be
    useful
  • If the table prefix is abc, call this abcID
  • A foreign key to this table is then also called
    abcID

7
Example
8
Properties of Relations
  • Since relations are sets of tuples, the tuples of
    a relation are unique and unordered
  • The number of tuples in a relation is called the
    cardinality of the relation
  • Since schemes are sets of attributes, the
    attributes of a relation are unique and unordered
  • The number of attributes in a relation is the
    relations degree

9
A Relation (Table)
3 Attributes ( Degree 3 )
Heading/Scheme
ID 127 128 129 130
FName John Mary John Kate
LName Smith Brown Doe Jones
Relation
4 Tuples ( Cardinality 4 )
10
Relational Data Integrity
  • Data integrity controls what data can be in a
    relation. This relates to
  • Domains restrict the possible values of
    attributes
  • Candidate and Primary Keys identify tuples within
    a relation
  • Foreign Keys link relations to each other

11
Attributes and Domains
  • A domain is given for each attribute
  • The domain lists the possible values for that
    attribute
  • Each tuple contains a value for each attribute
    from the domain of the attribute
  • Examples
  • An age might have to come from the set of
    integers between 0 and 150
  • A department might come from a given list of
    strings
  • A notes field might allow any string at all

12
Candidate Keys
  • A set of attributes in a relation is called a
    candidate key IFF
  • The values of the set of attributes uniquely
    identify a tuple (uniqueness)
  • No proper subset of the set has the uniqueness
    property (minimality)

Candidate keys are ID and First, Last
ID, First, ID, Last and ID, First, Last
satisfy uniqueness, but are not minimal
First and Last do not give a unique
identifier for each row
13
Primary Keys
  • One Candidate Key is usually chosen to be used to
    identify tuples in a relation
  • This is called the Primary Key
  • Often a special ID attribute is used as the
    Primary Key

We could choose either ID or First, Last as
the Primary Key. ID is more convenient as it is
a single column and we know it will always be
unique (what happens if another John Smith is
added?)
14
NULLs and Primary Keys
  • Missing information can be represented using
    NULLs
  • A NULL indicates a missing or unknown value
  • Entity Integrity Primary Keys cannot contain
    NULL values

15
Foreign Keys
  • Foreign Keys are used to link data in two
    relations.
  • A set of attributes in the first (referencing)
    relation is a Foreign Key if its value always
    matches a Candidate Key value in the second
    (referenced) relation
  • This is called Referential Integrity

16
Foreign Keys - Example
Department DID DName 13 Marketing 14 Accounts 15
Personnel
Employee EID EName DID 15 John
Smith 13 16 Mary Brown 14 17 Mark
Jones 13 18 Jane Smith NULL
DID is a Candidate Key for Department -
Each entry has a unique value for DID
DID is a Foreign Key in Employee - each
Employees DID value is either NULL, or matches
an entry in the Department relation. This links
each Employee to (at most) one Department
17
Foreign Keys - Example
First, Last is a Candidate Key for Student - no
entries have the same value for both First and
Last
First, Last is a Foreign Key in Enrolment -
Each First,Last pair matches exactly one entry in
the Student relation
18
Foreign Keys - Example
ID is a Candidate Key for Employee, and
Manager is a Foreign Key, which refers to the
same relation - every tuples Manager value is
either NULL or matches an ID value
19
Referential Integrity
  • When relations are updated, referential integrity
    can be violated
  • This usually occurs when a referenced tuple is
    updated or deleted
  • There are a number of options
  • RESTRICT - stop the user from doing it
  • CASCADE - let the changes flow on
  • NULLIFY - make values NULL
  • Triggers - actions defined by the user

20
Referential Integrity - Example
  • What happens if
  • Marketings DID is changed to 16 in Department?
  • The entry for Accounts is deleted from
    Department?

Department DID DName 13 Marketing 14 Accounts 15
Personnel
Employee EID EName DID 15 John
Smith 13 16 Mary Brown 14 17 Mark
Jones 13 18 Jane Smith NULL
21
RESTRICT
  • RESTRICT stops any action that violates integrity
  • You cannot update or delete Marketing or Accounts
  • You can change Personnel as it is not referenced

Department DID DName 13 Marketing 14 Accounts 15
Personnel
Employee EID EName DID 15 John
Smith 13 16 Mary Brown 14 17 Mark
Jones 13 18 Jane Smith NULL
22
CASCADE
  • CASCADE allows the changes made to flow through
  • If Marketings DID is changed to 16 in
    Department, then the DIDs for John Smith and Mark
    Jones also change
  • If Accounts is deleted then so is Mary Brown

23
NULLIFY
  • NULLIFY sets problem values to NULL
  • If Marketings DID changes then John Smiths and
    Mark Jones DIDs are set to NULL
  • If Accounts is deleted, Mary Browns DID becomes
    NULL
Write a Comment
User Comments (0)
About PowerShow.com