Presentation is loading. Please wait.

Presentation is loading. Please wait.

Relational Databases - Amit Bhawnani & Nimesh Shah.

Similar presentations


Presentation on theme: "Relational Databases - Amit Bhawnani & Nimesh Shah."— Presentation transcript:

1 Relational Databases - Amit Bhawnani & Nimesh Shah

2 Topics Relational Model SQL Indexes and execution plans Normalization

3 Databases vs Flat Files Data independence and efficient access Reduced application development time Data integrity and security Protect data from inconsistency due to multiple concurrent users Security and access control Etc etc

4 Relational Model Dis-satisfaction with other models such as Network, hierarchical etc Proposed by Edgar. F. Codd in the early seventies Simple and elegant model with a mathematical basis – Set theory and first- order predicate logic.

5 Relational Model KEY DEFINITIONS

6 Relation An association between two or more data elements Resembles a “Table” of records. Consider the relation EMPLOYEE represented by the below emp_idnamessndesig_idsalaryjoin_datedept_id 1011ABCa3232x /01/112

7 Tuples of a Relation Each row here is a tuple Relation is a set of tuples emp_idnamessndesig_idsalaryjoin_datedept_id 1011ABCa3232x /01/112

8 Cardinality of a RELATION Is the number of tuples in a relation at a point in time Cardinality = 4 emp_idnamessndesig_idsalaryjoin_datedept_id 1011ABCa3232x /01/112

9 Attributes A tuple consists of attribute values emp_idnamessndesig_idsalaryjoin_datedept_id 1011ABCa3232x /01/112

10 Arity / Degree Is the number of attributes in a relation Arity / Degree = 6 emp_idnamessndesig_idsalaryjoin_datedept_id 1011ABCa3232x /01/112

11 Domain Defines the space of possible values for an attribute emp_idnamessndesig_idsalaryjoin_datedept_id 1011ABCa3232x /01/112

12 Domain - Example Emp_idintegerSet of all 4 digital numbers nameVarhar(50)Set of alpha characters. Max length 50 ssnVarchar(10)Set of alpha numeric characters. Max length 10 desig_idsmallintSet of all designation codes salarydecimalDecimal join_datedate dept_idsmallintSet of all department ids

13 Relation Schema Consists of name of relation + attributes (along with domain) emp_idnamessndesig_idsalaryjoin_datedept_id 1011ABCa3232x /01/112 Employee

14 DEFINITION SUMMARY Formal TermsInformal Terms RelationTable Attribute/DomainColumn TupleRow DomainValues in the column Schema of a RelationTable definition

15 Super Key Uniqueness property: No two tuples share the same value for the key Time-independent emp_idnamessndesig_idsalaryjoin_datedept_id 1011ABCa3232x /01/112 Super Keys: emp_id, name, ssn emp_id_name,ssn_design_d,salary,join_date,dept_id emp_id ssn

16 Candidate Key Uniqueness property: No two tuples shave the same value for the key Minimality property: None of the attributes of the key can be discarded from the key without destroying the uniqueness property. Time-independent Can be composite emp_idnamessndesig_idsalaryjoin_datedept_id 1011ABCa3232x /01/112

17 Primary Key One of the candidate keys is chosen to uniquely identify tuples in a relation, such a key is called the primary key. There can be only one primary key per relation Primary key may be a compound key A relation must have a primary key emp_idnamessndesig_idsalaryjoin_datedept_id 1011ABCa3232x /01/112

18 Alternate Key Any candidate Key which is not a primary key is an alternate key There can be more than one alternate keys for any relation. emp_idnamessndesig_idsalaryjoin_datedept_id 1011ABCa3232x /01/112

19 Entity Integrity Every Relation must have a primary key No attribute participating in the primary key of a base relation may accept null values Guarantees that each entity will have a unique identity.

20 Foreign Key Some times a set of attributes in a relation may point to certain tuples in another relation A foreign key is a set of attributes in one relation whose values are required to match one of the values of the primary key of the same or different relation. There can be more than one foreign key in a given relation. emp_idnamessndesig_idsalaryjoin_datedept_id 1011ABCa3232x /01/112 dept_iddept_nameDept_location 2Software Engineering1B Employee Department

21 Referential Integrity Values of the foreign key – Must be either null or – If non-null, must match with the primary key value of some tuple of the ‘parent’ relation. The reference can be the same relation.

22 Relational database schema A set S of relation schemas that belong to the same database S is the name of the whole database schema

23 Schema Diagram for the COMPANY

24 One possible database state for the COMPANY relational database schema

25 Relational Algebra The basic set of operations for the relational model is known as the relational algebra. These operations enable a user to specify basic retrieval requests. A set of operators (unary and binary) that take relation instances as arguments and return new relations. Laid the foundation for the development of Database standard SQL SQL queries are internally translated into RA expressions. Provides a framework for query optimization.

26 Selection SELECT Operation SELECT operation is used to select a subset of the tuples from a relation that satisfy a selection condition. Example: To select the EMPLOYEE tuples whose salary is greater than 30,000 the following notation is used:  SALARY > 30,000 (EMPLOYEE)  (R)

27 Select Operation – Example Relation r ABCD    A=B & D > 5 (r))  A=B (  D > 5 (r)) ABCD   The degree of the new relation is the same. The cardinality is different. Commutative operator

28 Projection PROJECT Operation This operation selects certain columns from the table and discards the other columns. Example: To list each employee’s first name,last name and salary, the following is used:  FNAME, LNAME,SALARY (EMPLOYEE) The general form of the project operation is  (R) The project operation removes any duplicate tuples.

29 Project Operation – Example Relation r: ABC  AC  = AC   A,C (r) Output is another relation with a different schema. Non - Commutative

30 Union UNION Operation The result of this operation, denoted by R  S, is a relation that includes all tuples that are either in R or in S or in both R and S. Duplicate tuples are eliminated. For r  s to be valid. 1. r, s must have the same same number of attributes 2. The attribute domains must be compatible E.g. to find all customers with either an deposit account or a loan account  customer-name (depositor)   customer-name (borrower)

31 Union Operation – Example Relations r, s: r  s: AB  AB  2323 r s AB 

32 Chapter 6-32 Difference (or MINUS) Operation The result of this operation, denoted by R - S, is a relation that includes all tuples that are in R but not in S. The two operands must be "type compatible”. Relations r, s: r  s: AB  AB  2323 r s AB 1

33 Chapter 6-33 CARTESIAN (or cross product) Operation Relations r, s: r x s: AB  1212 AB  CD  E aabbaabbaabbaabb CD  E aabbaabb r s

34 Composition of Operations Can build expressions using multiple operations Example:  A=C (r x s) r x s  A,D,E (  A=C (r x s)) AB  CD  E aabbaabbaabbaabb ABCDE   20 aabaab

35 Banking Example branch (branch-name, branch-city, assets) customer (customer-name, customer-street, customer-only) account (account-number, branch-name, balance) loan (loan-number, branch-name, amount) depositor (customer-name, account-number) borrower (customer-name, loan-number)

36 Example Queries Find all loans of over $1200 Find the loan number for each loan of an amount greater than $1200 Find the names of all customers who have a loan, an account, or both, from the bank Find the names of all customers who have a loan and an account at bank. Find the names of all customers who have a loan at the ABC branch. Find the names of all customers who have a loan at the ABC branch but do not have an account at any branch of the bank.

37 Intersection INTERSECTION OPERATION The result of this operation, denoted by R  S, is a relation that includes all tuples that are in both R and S. The two operands must be "type compatible" Relations r, s: r  s: AB  AB  2323 r s AB  2

38 Theta Join Operator Theta join is used to combine related tuples from two or more relations ( specified by the condition theta ), to form a single tuple. The general form of theta join is as follows : R (join condition) S. Tuples whose join attributes are null do not appear in the final result. Theta join where the only comparison operator used is the equals (=) sign, are called equijoins.

39 Theta Join Operator – Example Relations r, s: AB  CD  aababaabab B D aaabbaaabb E  r AB  CD  aaaabaaaab E  s r (r.b = s.b and r.d = s.d) s

40 Outer Join An extension of the join operation that avoids loss of information. Computes the join and then adds tuples form one relation that does not match tuples in the other relation to the result of the join.

41 Outer Join – Example loan loan-numberamount L-170 L-230 L borrower customer-nameloan-number Jones Smith Hayes L-170 L-230 L-155 branch-name Downtown Redwood Perryridge

42 Outer Join – Example Inner Join loan (loan.loan_number = borrower.loan_number) Borrower loan (loan.loan_number = borrower.loan_number) borrower Left Outer Join loan-numberamount L-170 L customer-name Jones Smith branch-name Downtown Redwood loan-numberamount L-170 L-230 L customer-name Jones Smith null branch-name Downtown Redwood Perryridge

43 Outer Join – Example Right Outer Join loan borrower loan-numberamount L-170 L-230 L null customer-name Jones Smith Hayes loan-numberamount L-170 L-230 L-260 L null customer-name Jones Smith null Hayes loan borrower Full Outer Join branch-name Downtown Redwood null branch-name Downtown Redwood Perryridge null

44 Questions ?


Download ppt "Relational Databases - Amit Bhawnani & Nimesh Shah."

Similar presentations


Ads by Google