Tuples Given a collection of types Ti (i=1,2,….n), a tuple value on those types is a set of ordered triples of the form <Ai, Ti,

Presentation on theme: "Tuples Given a collection of types Ti (i=1,2,….n), a tuple value on those types is a set of ordered triples of the form <Ai, Ti,"— Presentation transcript:

Relations www.techstudent.co.cc www.techstudent.co.cc

Tuples Given a collection of types Ti (i=1,2,….n), a tuple value on those types is a set of ordered triples of the form <Ai, Ti, vi> where Ai is attribute name Ti is type name vi is a value of type Ti and

Tuples The value n is the degree or arity of t
Tuples The value n is the degree or arity of t ordered triple <Ai, Ti,vi> is a component of t The ordered pair <Ai, Ti> is an attribute of t and identified by attribute name Ai The complete set of attributes is the heading of t The tuple type of t is determined by the heading of t; heading and tuple type both have the same attributes and the same degree as t does

Tuples Tuple type name is Example Degree : Heading Type
Tuples Tuple type name is TUPLE { A1 T1, A2 T2,…. An Tn} Example Degree : Heading Type MAJOR_PART_NUMBER : PART NUMBER MINOR_PART_NUMBER:PART NUMBER QUANTITY : QUANTITY P2 P4 7 Degree is 3 Type is tuple { Major_part_number part_number ….)

Tuples Properties of tuples
Tuples Properties of tuples Each tuple contains exactly one value for each of its attributes There is no left-to-right ordering to the components of a tuple. Every subset of a tuple is a tuple A tuple of degree n is said to be n-ary Tuple of degree 0 is called nullary

Tuples The TUPLE type generator: General Form
Tuples The TUPLE type generator: General Form TUPLE { < attribute comma list> } Where each <attribute> consists of an <attribute name> followed by a <type name>

Tuples Example VAR ADDR TUPLE { STREET CHAR, CITY CHAR, STATE CHAR,
Tuples Example VAR ADDR TUPLE { STREET CHAR, CITY CHAR, STATE CHAR, ZIP CHAR } Tuple Selector operator TUPLE { STREET `14 Park View`, CITY `TVM`, STATE ‘Kerala`, ZIP ` ’}

Tuples Operators: All operators of relational algebra Candidate keys
Tuples Operators: All operators of relational algebra Candidate keys Foreign keys Functional and other dependencies Tuple equality Tuple type inference WRAP and UNWRAP

Tuples Tuple equality Tuples t1 and t2 are equal if and only if they have the same set of attributes A1, A2, …An and for all i (i=1,2,..n) the value of v1 of Ai is equal to the value of v2 of Ai in t2 t1 and t2 are duplicates of each other if and only if they are equal

Tuples Tuple projection WRAP and UNWRAP ADDR { CITY, ZIP } Let
Tuples Tuple projection ADDR { CITY, ZIP } WRAP and UNWRAP Let TT1 = TUPLE {NAME NAME, ADDR TUPLE { STREET CHAR, CITY CHAR, STATE CHAR, ZIP CHAR} } TT2 = TUPLE {NAME NAME, ADDR TUPLE { STREET CHAR, CITY CHAR, STATE CHAR, ZIP CHAR} }

Tuples Let TT1 = TUPLE {NAME NAME, ADDR TUPLE { STREET CHAR, CITY CHAR, STATE CHAR, ZIP CHAR} } TT1 = TUPLE {NAME NAME, STREET CHAR, CITY CHAR, STATE CHAR, ZIP CHAR} Let NADDR1 and NADDR2 be tuple variables of types TT1 and TT2

Relation types Definition
Relation types Definition A relation value r consists of a heading and a body where : The heading of r is a tuple heading. relation r has the same attributes and the same degree as that heading has the body of r is a set of tuples, all having the same heading; cardinality of that set is said to be the cardinality of r.

Relation types Relation type of r is determined by the heading of r
Relation types Relation type of r is determined by the heading of r Relation type name is RELATION { A1 T1, A2 T2,…An Tn } General form of relation selector is RELATION [<heading>] {tuple exp comalist>} <heading> is comalist of <attribute>s enclosed in braces

Relation values Relations are normalized
Relation values Relations are normalized There is no left-to-right ordering to atttributes There is no top-to-bottom ordering to the tuples There are no duplicate tuples

Relation values RELATIONS TABLES Each heading involves a type name
Relation values RELATIONS TABLES Each heading involves a type name Type names are omitted Each component of a tuple has a type name and an attribute name Type names and attribute names are omitted Value is of applicable type Values are in abbreviated form

No left-to-right ordering of attributes Have a left-to-right ordering
RELATIONS TABLES No left-to-right ordering of attributes Have a left-to-right ordering No ordering of tuples Rows have a top-to-bottom ordering Does not contain duplicate tuples May contain duplicate rows

Relation values Relations with no attributes
Relation values Relations with no attributes A relation can have an empty set of attributes or in other words no attribute at all Such a relation can have atmost one tuple 0-tuple Thus there are two relations of degree 0 One which contains one tuple (TABLE_DEE) That contains no tuples at all (TABLE_DUM) DEE means TRUE and DUM means false

Relation values Relation selector RELATION { } { TUPLE { } }
Relation values Relation selector RELATION { } { TUPLE { } } RELATION { } { }

Relation values Operators on relations
Relation values Operators on relations Relational comparison <relation exp> <relation comp op> <relation exp> Relation comp op = equals ≠ not equals  subset of  proper subset of  superset of  proper superset of

Relation values To find if a relation is equal to an empty relation
Relation values To find if a relation is equal to an empty relation IS_EMPTY ( < relation exp> ) To find whether a given tuple is found in a relation r or not t  r

Relation variables Base Relvar Definition
Relation variables Base Relvar Definition VAR <relvar name> BASE <relation type> <candidate key def list> [ <foreign key def list> ]; <relation type> takes the form RELATION { <attribute comalist> }

Relation variables Example VAR SUPPLIERS BASE RELATION
Relation variables Example VAR SUPPLIERS BASE RELATION { SUP_NUMBER SUPPLIER_NUMBER, SUP_NAME NAME, STATUS INTEGER, CITY CHAR } PRIMARY KEY { SUP_NUMBER} ;

Relation variables Explanation The base relation has the type
Relation variables Explanation The base relation has the type RELATION { SUP_NUMBER SUPPLIER_NUMBER, SUP_NAME NAME, STATUS INTEGER, CITY CHAR} The terms heading, body, attribute, tuple, degree applies to relvars also All possible values of any given relvar are of the same relation type and hence have the same heading

Relational Algebra www.techstudent.co.cc www.techstudent.co.cc

Introduction Original eight operators: Union Intersection Difference
Introduction Original eight operators: Union Intersection Difference Cartesian product Select Project Join divide

Closure Relational closure property
Closure Relational closure property The output from any relational operation is another relation To achieve closure property, all relations should have proper attribute names in order to use those attributes in the subsequent operations

Closure RENAME operator
Closure RENAME operator To rename attributes within a specified relation Eg: SUPPLIERS RENAME CITY AS SCITY Gives the same heading and body as the relation that is the current value of SUPPLIERS except that the city attribute is named SCITY instead of city Multiple renaming PARTS RENAME (PART_NAME AS PN, WEIGHT AS WT

Relational Operators Union
Relational Operators Union Special type of mathematical union in which both the relations should be of the same type This is referred to as union compatibility Given two relations a and b of the same type, the union of those two relations a union b, is a relation of the same type, with the body consisting of all tuples t such that t appears in a or b or both

Relational Operators Intersect
Relational Operators Intersect Given two relations a and b of the same type, the intersection of those two relations a INTERSECT b, is a relation of the same type, with the body consisting of all tuples t such that t appears in both a and b

Relational Operators Difference
Relational Operators Difference Given two relations a and b of the same type, the difference of those two relations a MINUS b, is a relation of the same type, with the body consisting of all tuples t such that t appears in a and not b A MINUS B is not the same as B MINUS A

Relational Operators A S1 Sarala 20 Mumbai S4 Priya B S1 Sarala 20
Relational Operators A Supplier_number Supplier_name Status City S1 Sarala 20 Mumbai S4 Priya B Supplier_number Supplier_name Status City S1 Sarala 20 Mumbai S2 Uma 10 Chennai

Relational Operators Product
Relational Operators Product The cartesian product of two relations a and b, a TIMES b, where a and b have no common attribute names, to be a relation with a heading that is the union of the headings of a and b and with a body consisting of the set of all tuples t such that t is the union of a tuple appearing in a and a tuple appearing in b

Relational Operators Given the tuples {A1 a1, A2 a2,….Am am} And
Relational Operators Given the tuples {A1 a1, A2 a2,….Am am} And {B1 b1, B2 b2, …Bn bn} The union of the two is the single tuple {A1 a1, A2 a2,….Am am,B1 b1, B2 b2, …Bn bn }

Relational Operators Select
Relational Operators Select Used to select a subset of tuples in a relation that satisfy a selection condition Denoted by σ<selection condition>(<relation name>) σ – SELECT operator Selection Condition – boolean expression specified on relation attributes using the comparison operators { =, <, <=, >, >=, }

Relational Operators(Select)
Relational Operators(Select) <selection operation> is applied to each tuple t in relation R specified by <relation name> If condition is satisfied,tuple t is SELECTED Boolean operators AND, OR, NOT can be used to connect the conditions

Relational Operators(Select)
Relational Operators(Select) Is applied on a single relation Degree of relation resulting from SELECT is the same as the original relation Fraction of tuples selected is called as selectivity of the condition Is commutative

Relational Operators(Project)
Relational Operators(Project) Selects certain columns from the relation General Form π<attribute list>(<relation name>) π – project operator Degree is equal to the number of attributes in <attribute list>

Relational Operators(Project)
Relational Operators(Project) Πx, y,….z(A) is a relation with A heading derived from the heading of a by removing all attributes not mentioned in the set {X, Y, …., Z } A body consisting of all tuples{X x,Y y,…, Z z} such that a tuple appears in a with X value x, Y value y, … and Z value z.

Relational Operators(Project)
Relational Operators(Project) PROJECT implicitly removes any duplicate tuples Whenever there are two identical tuples, only one is kept in the result.This is called duplicate elimination Commutativity does not hold on PROJECT

Relational Operators(Join)
Relational Operators(Join) Denoted by Combine related tuples from two relations General form R <join condition>S The resultant relation Q has one tuple for each combination of tuples whenever the combination satisfies the join condition

Relational Operators(Join)
Relational Operators(Join) common join – joins with equality condition. A join where only the = comparison is used is called Equi Join Equi join always have one or more pairs of attributes that have identical values. To get rid of the second attribute, natural join is used

Relational Operator(Divide)
Relational Operator(Divide) Let relations a and b have attributes X1, X2, …..Xm and Y1,Y2,….Yn Division of a by b a divideby b is a relation with heading {X} and body consisting of all tuples {X x} appearing in a such that a tuple {X x, Y y} appears in c for all tuples {Y y} appearing in b.

Integrity www.techstudent.co.cc www.techstudent.co.cc

Integrity An integrity constraint is a boolean expression that is associated with some database and is required to evaluate at all times to TRUE. Constraints should be formally declared to the DBMS and DBMS enforces these constraints

Internal Vs External Predicates
Internal Vs External Predicates Internal predicates: what the data means to the system External predicates: What the data means to the user A given internal predicate is the system’s approximation to the corresponding external predicate

Internal Vs External Predicates
Internal Vs External Predicates External predicate for a given relvar is basically what the relvar means to the user The EMPLOYEE with the specified employee number(EMPNO) has the specified name(ENAME) , is working for the department with the specified number (DNO), and gets a salary specified(SALARY) S is a tuple of the form (EMPNO, ENAME, DNO, SALARY)

A given tuple appears in a given relvar at a given time if and only if that tuple makes that relvar’s external predicate evaluate to TRUE at that time.

Keys Candidate Key Primary Key and Alternate Key Foreign Key
Keys Candidate Key Primary Key and Alternate Key Foreign Key

Candidate Key The set of all attributes of R having the uniqueness property Let K be a set of attributes of relvar R. Then K is a candidate key for R if and only if it has both of the following properties Uniqueness: No legal value of R ever contains two distinct tuples with the same value for K Irreducibility: No proper subset of K has the uniqueness property

Primary Keys and alternate keys
Primary Keys and alternate keys One of the candidate key is chosen as the Primary Key Others are Alternate Keys If there is only one candidate key, then that is chosen as the primary key.

Foreign Key A set of attributes FK in relation Schema R1 is a foreign key of R1 that references R2 if it satisfies the following rules The attributes in FK have the same domain as the primary key attributes PK of R2; the attributes of FK are said to refer to the relation R2 A value of FK in a tuple t1 of the current state r1(R1) either occurs as a value of PK for some tuple t2 in the current state r2(R2) or is null. In the former case t1[FK]= t2[FK]

Foreign key Let R1 be a relvar. Then a foreign key in R2 is a set of attributes ofR2 , say FK such that There exists a relvar R1 with a candidate key CK It is possible to rename some subset of the attributes of FK, such that FK becomes FK’ and FK’ and CK are of the same type. For all time, each value of FK in the current value of R2 yields a value for FK’ that is identical to the value of CK in some tuple in the current value of R1

Foreign key Every value of FK must appear as a value of CK, but the converse is not a requirement; i.e., R1 might contain a CK value that does not currently appear as an FK value in R2 FK can be simple or composite The constraint that values of FK must match values of CK is known as the referential constraint.

Foreign Key The problem of ensuring that the database does not include any invalid foreign key values is the referential integrity problem Referential integrity rule: The database must not contain any unmatched foreign key values

Data Definition (DDL) CREATE – specify a new relation
Data Definition (DDL) CREATE – specify a new relation ALTER – change the definition of a table DROP – delete a table

CREATE TABLE Specifies a new relation by giving it a name and specifying the attributes and initial constraints Attributes have : name data type constraints such as NOT NULL

CREATE TABLE CREATE TABLE table_name( field1 data type [NOT NULL],
CREATE TABLE CREATE TABLE table_name( field1 data type [NOT NULL], field2 datatype [NOT NULL] PRIMARY KEY (<column name commalist>) UNIQUE ( <column name commalist>) FOREIGN KEY (<column name commalist>) REFERENCES < base table name> [ column name commalist] [ON DELETE < referential action>] [ON UPDATE <referential action>] CHECK (<column name> IS NOT NULL) )

Attribute data types Numeric Integer number s of various sizes
Attribute data types Numeric Integer number s of various sizes INTEGER or INT, SMALLINT Floating point numbers FLOAT, REAL and DOUBLE PRECISION

Attribute data types Character- string
Attribute data types Character- string Fixed length CHAR(n) or CHARACTER(n) Varying length VARCHAR(n) String is placed within single quotes

Attribute data types Bit-String Boolean
Attribute data types Bit-String Fixed length – BIT(n) or variable length BITVARYING(n) n – max. number of bits Boolean TRUE or FALSE

Attribute data types DATE TIME Ten positions – YEAR, MONTH and DAY
Attribute data types DATE Ten positions – YEAR, MONTH and DAY Format : YYYY-MM-DD TIME Atleast 8 positions HOUR, MINUTE, SECOND Format HH:MM:SS

Attribute data types TimeStamp Includes both date and time fields
Attribute data types TimeStamp Includes both date and time fields Plus minimum of 6 positions for decimal fraction of seconds Eg: TIMESTAMP ‘ :12: ’

Attribute constraints
Attribute constraints NOT NULL DEFAULT <value> CHECK Primary key, foreign key constraint

DELETE command Removes tuples from a relation
DELETE command Removes tuples from a relation Tuples are deleted from only one table at a time Missing WHERE clause deletes all tuples

DELETE command DELETE FROM EMPLOYEE where name = ‘Brown’
DELETE command DELETE FROM EMPLOYEE where name = ‘Brown’ Delete from employee where DNO in (select dnumber from department where dname = ‘Research’) DELETE FROM Employee

UPDATE command Used to modify values of one or more selected values
UPDATE command Used to modify values of one or more selected values UPDATE "table_name" SET "column_1" = [new value] WHERE {condition} SET – specifies attributes to be modified and their new values

UPDATE command+ UPDATE PROJECT SET PLOC = ‘DELHI’, DNUM = 5
UPDATE command+ UPDATE PROJECT SET PLOC = ‘DELHI’, DNUM = 5 WHERE PNUM = 10

Referential Actions CASCADE: operations will cascade to delete all matching tuples RESTRICT : operations are restricted to the case where there are no matching keys. NO ACTION : Delete is performed exactly as requested

ALTER TABLE To change the definition of the database table
ALTER TABLE To change the definition of the database table Possible actions Adding or dropping a column Changing a column definition Adding or dropping table constraints

ALTER Table To add an attribute JOB in EMPLOYEE, ALTER TABLE EMPLOYEE
ALTER Table To add an attribute JOB in EMPLOYEE, ALTER TABLE EMPLOYEE ADD JOB VARCHAR(15); NOT NULL constraint is not allowed

ALTER TABLE To drop we must choose either CASCADE or RESTRICT
ALTER TABLE To drop we must choose either CASCADE or RESTRICT ALTER TABLE EMPLOYEE DROP ADDRESS CASCADE

ALTER TABLE Dropping an existing default clause or defining new clause
ALTER TABLE Dropping an existing default clause or defining new clause ALTER TABLE DEPARTMENT ALTER MGRSSN DROP DEFAULT; ALTER TABLE DEPARTMENT ALTER MGRSSN SET DEFAULT “ ”;

ALTER TABLE Adding or dropping a constraint ALTER TABLE EMPLOYEE
ALTER TABLE Adding or dropping a constraint ALTER TABLE EMPLOYEE DROP CONSTRAINT EMPSUPERPK CASCADE

Update statements Modifying the data base INSERT DELETE UPDATE
Update statements Modifying the data base INSERT DELETE UPDATE

INSERT command Used to add a single tuple to a relation
INSERT command Used to add a single tuple to a relation Values should be listed in the same order in which they are placed in the CREATE TABLE command INSERT INTO tablename VALUES (list of attribute values)

Triggers Triggered procedures are precompiled procedures that are stored along with the database and invoked automatically whenever some specified event occurs To design a trigger mechanism, we must: Specify the conditions under which the trigger is to be executed. Specify the actions to be taken when the trigger executes.

Triggers create table general_comments ( ….
Triggers create table general_comments ( …. modified_date date not null, ….. ); create trigger general_comments_modified before insert or update on general_comments for each row begin :new.modified_date := sysdate; end;

Download ppt "Tuples Given a collection of types Ti (i=1,2,….n), a tuple value on those types is a set of ordered triples of the form <Ai, Ti,"

Similar presentations