SlideShare a Scribd company logo
Chapter 2: Relational Model
Example of a Relation
Attribute Types
• Each attribute of a relation has a name
• The set of allowed values for each attribute is called the
  domain of the attribute
• Attribute values are (normally) required to be atomic;
  that is, indivisible
   – E.g. the value of an attribute can be an account number,
     but cannot be a set of account numbers
• Domain is said to be atomic if all its members are atomic
• The special value null is a member of every domain
• The null value causes complications in the definition of
  many operations
   – We shall ignore the effect of null values in our main
     presentation and consider their effect later
Relation Schema
• Formally, given domains D1, D2, …. Dn a relation
  r is a subset of
        D1 x D2 x … x Dn
  Thus, a relation is a set of n-tuples
  (a1, a2, …, an) where each ai Di
• Schema of a relation consists of
  – attribute definitions
     • name
     • type/domain
  – integrity constraints
Relation Instance
• The current values (relation instance) of a relation are
  specified by a table
• An element t of r is a tuple, represented by a row in a table
• Order of tuples is irrelevant (tuples may be stored in an
  arbitrary order)
                                                              attributes
                                                            (or columns)
         customer_name   customer_street    customer_city

         Jones           Main              Harrison
         Smith           North             Rye                  tuples
         Curry           North             Rye                (or rows)
         Lindsay         Park              Pittsfield

                            customer
Database
• A database consists of multiple relations
• Information about an enterprise is broken up
  into parts, with each relation storing one part
  of the information
• E.g.
     account : information about accounts
      depositor : which customer owns which
  account
      customer : information about customers
The customer Relation
The depositor Relation
Why Split Information Across
                Relations?
• Storing all information as a single relation such as
    bank(account_number, balance, customer_name, ..)
  results in
   – repetition of information
      • e.g.,if two customers own an account (What gets repeated?)

   – the need for null values
      • e.g., to represent a customer without an account

• Normalization theory (Chapter 7) deals with how to
  design relational schemas
Keys
• Let K R
• K is a superkey of R if values for K are sufficient to
  identify a unique tuple of each possible relation r(R)
   – by “possible r ” we mean a relation r that could exist in the
     enterprise we are modeling.
   – Example: {customer_name, customer_street} and
               {customer_name}
     are both superkeys of Customer, if no two customers can
     possibly have the same name
      • In real life, an attribute such as customer_id would be used instead
        of customer_name to uniquely identify customers, but we omit it to
        keep our examples small, and instead assume customer names are
        unique.
Keys (Cont.)
• K is a candidate key if K is minimal
  Example: {customer_name} is a candidate key for
  Customer, since it is a superkey and no subset of it is a
  superkey.
• Primary key: a candidate key chosen as the principal
  means of identifying tuples within a relation
   – Should choose an attribute whose value never, or very
     rarely, changes.
   – E.g. email address is unique, but may change
Foreign Keys
• A relation schema may have an attribute that
  corresponds to the primary key of another relation.
  The attribute is called a foreign key.
   – E.g. customer_name and account_number attributes of
     depositor are foreign keys to customer and account
     respectively.
   – Only values occurring in the primary key attribute of the
     referenced relation may occur in the foreign key attribute
     of the referencing relation.
Schema Diagram
Query Languages
• Language in which user requests information
  from the database.
• Categories of languages
  – Procedural
  – Non-procedural, or declarative
• “Pure” languages:
  – Relational algebra
  – Tuple relational calculus
  – Domain relational calculus
• Pure languages form underlying basis of query
  languages that people use.
Relational Algebra
• Procedural language
• Six basic operators
  –   select:
  –   project:
  –   union:
  –   set difference: –
  –   Cartesian product: x
  –   rename:
• The operators take one or two relations as
  inputs and produce a new relation as a result.
Select Operation – Example
 Relation r
                      A   B   C    D

                              1    7
                              5    7
                              12   3
                              23 10



   A=B ^ D > 5 (r)
                      A   B    C   D

                               1   7
                              23 10
Project Operation – Example
• Relation r:
           A B C

                        10   1
                        20   1
                        30   1
                        40   2



 A,C   (r)      A   C        A   C

                    1            1
                    1   =        1
                    1            2
                    2
•
        Union Operation – Example
      Relations r, s:
              A       B           A       B

                      1                   2
                      2                   3
                      1               s
                  r
                          A   B
 r   s:
                              1
                              2
                              1
                              3
Set Difference Operation – Example
• Relations r, s:
                    A       B           A       B

                            1                   2
                            2                   3
                            1               s
                        r


 r – s:
                                A   B

                                    1
                                    1
Cartesian-Product Operation –
                      Example
 Relations r, s:
                    A       B            C   D    E

                            1                10   a
                                             10   a
                            2
                                             20   b
                        r                    10   b
                                              s
 r x s:
                    A       B   C   D    E
                            1       10   a
                            1       10   a
                            1       20   b
                            1       10   b
                            2       10   a
                            2       10   a
                            2       20   b
                            2       10   b
Rename Operation
• Allows us to name, and therefore to refer to, the results
  of relational-algebra expressions.
• Allows us to refer to a relation by more than one name.
• Example:
                       x (E)


  returns the expression E under the name X
• If a relational-algebra expression E has arity n, then
                  x ( A1, A2 ,..., An )   (E )

  returns the result of expression E under the name X, and
  with the
  attributes renamed to A , A2 , …., An .
                                     1
Composition of Operations
• Can build expressions using multiple operations
• Example: A A=C(r x s)D E
               B C
• rxs
                   1       10   a
                   1       10   a
                   1       20   b
                   1       10   b
                   2       10   a
                   2       10   a
                   2       20   b
                   2       10   b

                       A    B   C   D    E

                            1       10   a
•   A=C(r   x s)            2       10   a
                            2       20   b
Banking Example
branch (branch_name, branch_city, assets)
customer
  (customer_name, customer_street, customer
  _city)
account
  (account_number, branch_name, balance)
loan (loan_number, branch_name, amount)
depositor (customer_name, account_number)
borrower (customer_name, loan_number)
Example Queries



•   Find all loans of over $1200

         amount > 1200   (loan)

 Find the loan number for each loan of an amount greater than
    $1200
                 loan_number ( amount > 1200    (loan))

 Find the names of all customers who have a loan, an account, or both, from
    the bank

               customer_name   (borrower)    customer_name   (depositor)
Example Queries
  • Find the names of all customers who have a loan at
    the Perryridge branch.
                   customer_name ( branch_name=“Perryridge”
         (   borrower.loan_number = loan.loan_number(borrower x loan)))
     Find the names of all customers who have a loan at the
      Perryridge branch but do not have an account at any branch of
      the bank.
 customer_name ( branch_name = “Perryridge”

( borrower.loan_number = loan.loan_number(borrower x loan))) –

   customer_name(depositor)
Example Queries
• Find the names of all customers who have a loan at the Perryridge
  branch.
        customer_name ( branch_name = “Perryridge” (
         borrower.loan_number = loan.loan_number (borrower x loan)))

         customer_name( loan.loan_number =
       borrower.loan_number (
                (   branch_name = “Perryridge” (loan)) x borrower))

More Related Content

PPT
PDF
Solidmodelling
PPT
PDF
The H.264 Integer Transform
DOC
Unit 4
PDF
Back Splash options
PDF
formulas calculo integral y diferencial
PDF
Formulas De Calculo
Solidmodelling
The H.264 Integer Transform
Unit 4
Back Splash options
formulas calculo integral y diferencial
Formulas De Calculo

Similar to DBMS Class 2 (20)

PPTX
7-Aljabar-Relasional-dan-Query-Processing.pptx
PPTX
Data Base Management system relation algebra ER diageam Sql Query -nested qu...
PPT
Relational Algebra
PPT
Design of databases
PPT
3. Relational Models in DBMS
PPTX
Relation model part 1
PPT
CHAPTER 2 DBMS IN EASY WAY BY MILAN PATEL
PPT
relational model in Database Management.ppt.ppt
PPT
Unit 04 dbms
PPT
Module 2 - part i
PPTX
Relational Algebra in Database Systems.pptx
PPT
Relational Algebra1.ppt
PPT
relational algebra and it's implementation
PPTX
7.relational model
PPT
relational algebra
PPTX
uniT 4 (1).pptx
PPTX
Module 2 2022 scheme BCS403 database management system
PDF
Relational algebra in dbms
7-Aljabar-Relasional-dan-Query-Processing.pptx
Data Base Management system relation algebra ER diageam Sql Query -nested qu...
Relational Algebra
Design of databases
3. Relational Models in DBMS
Relation model part 1
CHAPTER 2 DBMS IN EASY WAY BY MILAN PATEL
relational model in Database Management.ppt.ppt
Unit 04 dbms
Module 2 - part i
Relational Algebra in Database Systems.pptx
Relational Algebra1.ppt
relational algebra and it's implementation
7.relational model
relational algebra
uniT 4 (1).pptx
Module 2 2022 scheme BCS403 database management system
Relational algebra in dbms
Ad

More from Dr. Mazin Mohamed alkathiri (20)

PPTX
Computer Introduction (Operating Systems)-Lecture06
PPTX
Mobile Application Development (local database) class-07
PPTX
Mobile Application Development (Shared Preferences) class-06
PPTX
Mobile Application Development((Handling User Input and Navigation) class-05
PPTX
Computer Introduction (Data Encryption)-Lecture05
PPTX
Computer Introduction (Computer Viruses )-Lecture04
PPTX
Mobile Applications Development class 04-Layout-04
DOCX
Appendix to Lecture 3 Building a flutter app
PPTX
Mobile Applications Development class 03-starting with flutter
PPTX
Mobile Applications Development class 02 ntroduction to Drat
PPTX
Computer Introduction (Software)-Lecture03
PPTX
Computer Introduction (Hardware)-Lecture02
PPTX
Computer Introduction (introduction)-Lecture01
PPTX
Introduction to Academic Writing class 0-1
PPTX
Mobile Applications Development class 01 - Introduction
PPT
OS-operating systems- ch05 (CPU Scheduling) ...
PPTX
ESSENTIAL of (CS/IT/IS) class 07 (Networks)
PPTX
Advance Mobile Application Development class 07
PPTX
ESSENTIAL of (CS/IT/IS) class 06 (database)
PPT
OS-operating systems- ch04 (Threads) ...
Computer Introduction (Operating Systems)-Lecture06
Mobile Application Development (local database) class-07
Mobile Application Development (Shared Preferences) class-06
Mobile Application Development((Handling User Input and Navigation) class-05
Computer Introduction (Data Encryption)-Lecture05
Computer Introduction (Computer Viruses )-Lecture04
Mobile Applications Development class 04-Layout-04
Appendix to Lecture 3 Building a flutter app
Mobile Applications Development class 03-starting with flutter
Mobile Applications Development class 02 ntroduction to Drat
Computer Introduction (Software)-Lecture03
Computer Introduction (Hardware)-Lecture02
Computer Introduction (introduction)-Lecture01
Introduction to Academic Writing class 0-1
Mobile Applications Development class 01 - Introduction
OS-operating systems- ch05 (CPU Scheduling) ...
ESSENTIAL of (CS/IT/IS) class 07 (Networks)
Advance Mobile Application Development class 07
ESSENTIAL of (CS/IT/IS) class 06 (database)
OS-operating systems- ch04 (Threads) ...
Ad

DBMS Class 2

  • 2. Example of a Relation
  • 3. Attribute Types • Each attribute of a relation has a name • The set of allowed values for each attribute is called the domain of the attribute • Attribute values are (normally) required to be atomic; that is, indivisible – E.g. the value of an attribute can be an account number, but cannot be a set of account numbers • Domain is said to be atomic if all its members are atomic • The special value null is a member of every domain • The null value causes complications in the definition of many operations – We shall ignore the effect of null values in our main presentation and consider their effect later
  • 4. Relation Schema • Formally, given domains D1, D2, …. Dn a relation r is a subset of D1 x D2 x … x Dn Thus, a relation is a set of n-tuples (a1, a2, …, an) where each ai Di • Schema of a relation consists of – attribute definitions • name • type/domain – integrity constraints
  • 5. Relation Instance • The current values (relation instance) of a relation are specified by a table • An element t of r is a tuple, represented by a row in a table • Order of tuples is irrelevant (tuples may be stored in an arbitrary order) attributes (or columns) customer_name customer_street customer_city Jones Main Harrison Smith North Rye tuples Curry North Rye (or rows) Lindsay Park Pittsfield customer
  • 6. Database • A database consists of multiple relations • Information about an enterprise is broken up into parts, with each relation storing one part of the information • E.g. account : information about accounts depositor : which customer owns which account customer : information about customers
  • 9. Why Split Information Across Relations? • Storing all information as a single relation such as bank(account_number, balance, customer_name, ..) results in – repetition of information • e.g.,if two customers own an account (What gets repeated?) – the need for null values • e.g., to represent a customer without an account • Normalization theory (Chapter 7) deals with how to design relational schemas
  • 10. Keys • Let K R • K is a superkey of R if values for K are sufficient to identify a unique tuple of each possible relation r(R) – by “possible r ” we mean a relation r that could exist in the enterprise we are modeling. – Example: {customer_name, customer_street} and {customer_name} are both superkeys of Customer, if no two customers can possibly have the same name • In real life, an attribute such as customer_id would be used instead of customer_name to uniquely identify customers, but we omit it to keep our examples small, and instead assume customer names are unique.
  • 11. Keys (Cont.) • K is a candidate key if K is minimal Example: {customer_name} is a candidate key for Customer, since it is a superkey and no subset of it is a superkey. • Primary key: a candidate key chosen as the principal means of identifying tuples within a relation – Should choose an attribute whose value never, or very rarely, changes. – E.g. email address is unique, but may change
  • 12. Foreign Keys • A relation schema may have an attribute that corresponds to the primary key of another relation. The attribute is called a foreign key. – E.g. customer_name and account_number attributes of depositor are foreign keys to customer and account respectively. – Only values occurring in the primary key attribute of the referenced relation may occur in the foreign key attribute of the referencing relation.
  • 14. Query Languages • Language in which user requests information from the database. • Categories of languages – Procedural – Non-procedural, or declarative • “Pure” languages: – Relational algebra – Tuple relational calculus – Domain relational calculus • Pure languages form underlying basis of query languages that people use.
  • 15. Relational Algebra • Procedural language • Six basic operators – select: – project: – union: – set difference: – – Cartesian product: x – rename: • The operators take one or two relations as inputs and produce a new relation as a result.
  • 16. Select Operation – Example  Relation r A B C D 1 7 5 7 12 3 23 10  A=B ^ D > 5 (r) A B C D 1 7 23 10
  • 17. Project Operation – Example • Relation r: A B C 10 1 20 1 30 1 40 2 A,C (r) A C A C 1 1 1 = 1 1 2 2
  • 18. Union Operation – Example Relations r, s: A B A B 1 2 2 3 1 s r A B  r s: 1 2 1 3
  • 19. Set Difference Operation – Example • Relations r, s: A B A B 1 2 2 3 1 s r  r – s: A B 1 1
  • 20. Cartesian-Product Operation – Example  Relations r, s: A B C D E 1 10 a 10 a 2 20 b r 10 b s  r x s: A B C D E 1 10 a 1 10 a 1 20 b 1 10 b 2 10 a 2 10 a 2 20 b 2 10 b
  • 21. Rename Operation • Allows us to name, and therefore to refer to, the results of relational-algebra expressions. • Allows us to refer to a relation by more than one name. • Example: x (E) returns the expression E under the name X • If a relational-algebra expression E has arity n, then x ( A1, A2 ,..., An ) (E ) returns the result of expression E under the name X, and with the attributes renamed to A , A2 , …., An . 1
  • 22. Composition of Operations • Can build expressions using multiple operations • Example: A A=C(r x s)D E B C • rxs 1 10 a 1 10 a 1 20 b 1 10 b 2 10 a 2 10 a 2 20 b 2 10 b A B C D E 1 10 a • A=C(r x s) 2 10 a 2 20 b
  • 23. Banking Example branch (branch_name, branch_city, assets) customer (customer_name, customer_street, customer _city) account (account_number, branch_name, balance) loan (loan_number, branch_name, amount) depositor (customer_name, account_number) borrower (customer_name, loan_number)
  • 24. Example Queries • Find all loans of over $1200 amount > 1200 (loan)  Find the loan number for each loan of an amount greater than $1200 loan_number ( amount > 1200 (loan))  Find the names of all customers who have a loan, an account, or both, from the bank customer_name (borrower) customer_name (depositor)
  • 25. Example Queries • Find the names of all customers who have a loan at the Perryridge branch. customer_name ( branch_name=“Perryridge” ( borrower.loan_number = loan.loan_number(borrower x loan)))  Find the names of all customers who have a loan at the Perryridge branch but do not have an account at any branch of the bank. customer_name ( branch_name = “Perryridge” ( borrower.loan_number = loan.loan_number(borrower x loan))) – customer_name(depositor)
  • 26. Example Queries • Find the names of all customers who have a loan at the Perryridge branch.  customer_name ( branch_name = “Perryridge” ( borrower.loan_number = loan.loan_number (borrower x loan)))  customer_name( loan.loan_number = borrower.loan_number ( ( branch_name = “Perryridge” (loan)) x borrower))