SlideShare una empresa de Scribd logo
1 de 26
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))

Más contenido relacionado

Similar a Relational Model Chapter 2 Summary

Data Base Management system relation algebra ER diageam Sql Query -nested qu...
Data Base Management system relation algebra ER diageam Sql Query -nested  qu...Data Base Management system relation algebra ER diageam Sql Query -nested  qu...
Data Base Management system relation algebra ER diageam Sql Query -nested qu...kudiyarc
 
Relational Algebra
Relational AlgebraRelational Algebra
Relational AlgebraAmin Omi
 
Design of databases
Design of databasesDesign of databases
Design of databasesHava91
 
3. Relational Models in DBMS
3. Relational Models in DBMS3. Relational Models in DBMS
3. Relational Models in DBMSkoolkampus
 
Relation model part 1
Relation model part 1Relation model part 1
Relation model part 1Siti Ismail
 
CHAPTER 2 DBMS IN EASY WAY BY MILAN PATEL
CHAPTER 2 DBMS IN EASY WAY BY  MILAN PATELCHAPTER 2 DBMS IN EASY WAY BY  MILAN PATEL
CHAPTER 2 DBMS IN EASY WAY BY MILAN PATELShashi Patel
 
relational model in Database Management.ppt.ppt
relational model in Database Management.ppt.pptrelational model in Database Management.ppt.ppt
relational model in Database Management.ppt.pptRoshni814224
 
Module 2 - part i
Module   2 - part iModule   2 - part i
Module 2 - part iParthNavale
 
7.relational model
7.relational model7.relational model
7.relational modelraghuinfo
 
Intro to relational model
Intro to relational modelIntro to relational model
Intro to relational modelATS SBGI MIRAJ
 
C sharp part 001
C sharp part 001C sharp part 001
C sharp part 001Ralph Weber
 
Relational algebra operations
Relational algebra operationsRelational algebra operations
Relational algebra operationsSanthiNivas
 

Similar a Relational Model Chapter 2 Summary (20)

Data Base Management system relation algebra ER diageam Sql Query -nested qu...
Data Base Management system relation algebra ER diageam Sql Query -nested  qu...Data Base Management system relation algebra ER diageam Sql Query -nested  qu...
Data Base Management system relation algebra ER diageam Sql Query -nested qu...
 
Relational Algebra
Relational AlgebraRelational Algebra
Relational Algebra
 
14285 lecture2
14285 lecture214285 lecture2
14285 lecture2
 
Design of databases
Design of databasesDesign of databases
Design of databases
 
3. Relational Models in DBMS
3. Relational Models in DBMS3. Relational Models in DBMS
3. Relational Models in DBMS
 
Relation model part 1
Relation model part 1Relation model part 1
Relation model part 1
 
3.ppt
3.ppt3.ppt
3.ppt
 
CHAPTER 2 DBMS IN EASY WAY BY MILAN PATEL
CHAPTER 2 DBMS IN EASY WAY BY  MILAN PATELCHAPTER 2 DBMS IN EASY WAY BY  MILAN PATEL
CHAPTER 2 DBMS IN EASY WAY BY MILAN PATEL
 
relational model in Database Management.ppt.ppt
relational model in Database Management.ppt.pptrelational model in Database Management.ppt.ppt
relational model in Database Management.ppt.ppt
 
Unit 04 dbms
Unit 04 dbmsUnit 04 dbms
Unit 04 dbms
 
Module 2 - part i
Module   2 - part iModule   2 - part i
Module 2 - part i
 
Relational Algebra1.ppt
Relational Algebra1.pptRelational Algebra1.ppt
Relational Algebra1.ppt
 
7.relational model
7.relational model7.relational model
7.relational model
 
relational algebra
relational algebrarelational algebra
relational algebra
 
uniT 4 (1).pptx
uniT 4 (1).pptxuniT 4 (1).pptx
uniT 4 (1).pptx
 
Relational algebra in dbms
Relational algebra in dbmsRelational algebra in dbms
Relational algebra in dbms
 
Details of RDBMS.ppt
Details of RDBMS.pptDetails of RDBMS.ppt
Details of RDBMS.ppt
 
Intro to relational model
Intro to relational modelIntro to relational model
Intro to relational model
 
C sharp part 001
C sharp part 001C sharp part 001
C sharp part 001
 
Relational algebra operations
Relational algebra operationsRelational algebra operations
Relational algebra operations
 

Más de Dr. Mazin Mohamed alkathiri

ESSENTIAL of (CS/IT/IS) class 05 (Software concepts)
ESSENTIAL of (CS/IT/IS) class 05 (Software concepts)ESSENTIAL of (CS/IT/IS) class 05 (Software concepts)
ESSENTIAL of (CS/IT/IS) class 05 (Software concepts)Dr. Mazin Mohamed alkathiri
 
Advance Mobile Application Development class 02-B
Advance Mobile Application Development class 02-BAdvance Mobile Application Development class 02-B
Advance Mobile Application Development class 02-BDr. Mazin Mohamed alkathiri
 
ESSENTIAL of (CS/IT/IS) class 03-04 (NUMERIC SYSTEMS)
ESSENTIAL of (CS/IT/IS) class 03-04 (NUMERIC SYSTEMS)ESSENTIAL of (CS/IT/IS) class 03-04 (NUMERIC SYSTEMS)
ESSENTIAL of (CS/IT/IS) class 03-04 (NUMERIC SYSTEMS)Dr. Mazin Mohamed alkathiri
 

Más de Dr. Mazin Mohamed alkathiri (20)

Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
ESSENTIAL of (CS/IT/IS) class 06 (database)
ESSENTIAL of (CS/IT/IS) class 06 (database)ESSENTIAL of (CS/IT/IS) class 06 (database)
ESSENTIAL of (CS/IT/IS) class 06 (database)
 
OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...
 
Advance Mobile Application Development class 05
Advance Mobile Application Development class 05Advance Mobile Application Development class 05
Advance Mobile Application Development class 05
 
ESSENTIAL of (CS/IT/IS) class 05 (Software concepts)
ESSENTIAL of (CS/IT/IS) class 05 (Software concepts)ESSENTIAL of (CS/IT/IS) class 05 (Software concepts)
ESSENTIAL of (CS/IT/IS) class 05 (Software concepts)
 
OS-operating systems- ch03
OS-operating systems- ch03OS-operating systems- ch03
OS-operating systems- ch03
 
OS-operating systems - ch02 - part-2-2024
OS-operating systems - ch02 - part-2-2024OS-operating systems - ch02 - part-2-2024
OS-operating systems - ch02 - part-2-2024
 
Advance Mobile Application Development class 04
Advance Mobile Application Development class 04Advance Mobile Application Development class 04
Advance Mobile Application Development class 04
 
Advance Mobile Application Development class 03
Advance Mobile Application Development class 03Advance Mobile Application Development class 03
Advance Mobile Application Development class 03
 
Advance Mobile Application Development class 02-B
Advance Mobile Application Development class 02-BAdvance Mobile Application Development class 02-B
Advance Mobile Application Development class 02-B
 
OS-ch02-part-1-2024.ppt
OS-ch02-part-1-2024.pptOS-ch02-part-1-2024.ppt
OS-ch02-part-1-2024.ppt
 
Advance Mobile Application Development class 02
Advance Mobile Application Development class 02Advance Mobile Application Development class 02
Advance Mobile Application Development class 02
 
ESSENTIAL of (CS/IT/IS) class 03-04 (NUMERIC SYSTEMS)
ESSENTIAL of (CS/IT/IS) class 03-04 (NUMERIC SYSTEMS)ESSENTIAL of (CS/IT/IS) class 03-04 (NUMERIC SYSTEMS)
ESSENTIAL of (CS/IT/IS) class 03-04 (NUMERIC SYSTEMS)
 
Advance Mobile Application Development class 01
Advance Mobile Application Development class 01Advance Mobile Application Development class 01
Advance Mobile Application Development class 01
 
ESSENTIAL of (CS/IT/IS) class 02 (HCI)
ESSENTIAL of (CS/IT/IS) class 02 (HCI)ESSENTIAL of (CS/IT/IS) class 02 (HCI)
ESSENTIAL of (CS/IT/IS) class 02 (HCI)
 
Seminar
SeminarSeminar
Seminar
 
ESSENTIAL of (CS/IT/IS)
ESSENTIAL of (CS/IT/IS)ESSENTIAL of (CS/IT/IS)
ESSENTIAL of (CS/IT/IS)
 
OS-ch01-2024.ppt
OS-ch01-2024.pptOS-ch01-2024.ppt
OS-ch01-2024.ppt
 
Mobile Application Development class 008
Mobile Application Development class 008Mobile Application Development class 008
Mobile Application Development class 008
 
Academic Writing (Punctuation ) class 06
Academic Writing (Punctuation ) class 06Academic Writing (Punctuation ) class 06
Academic Writing (Punctuation ) class 06
 

Relational Model Chapter 2 Summary

  • 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))