-- Select one full query at a time and paste into the Relational Algebra Editor of Relax -- Selection σ enr>12000 (College) σ yCard='no' (Player) -- Projection π pID,yCard (Player) π pID,pPos,dec (Tryout) -- Selection & Projection together π pID, pName (σ yCard='yes' (Player)) π cName,pPos (σ dec='yes' (Tryout)) -- Cartesian Product (College) ⨯ (Player) -- Difference 1 (π pID (σ cName='LSU'∧ pPos='goalie'∧ dec='no' (Tryout))) - (π pID (σ cName='ASU'∧ pPos='goalie' (Tryout))) -- Difference 2 (π cName (College)) - (π cName (σ dec='yes' (Tryout))) -- Union (π pID (σ cName='LSU'∧pPos='goalie'∧dec='yes' (Tryout))) ∪ (π pID (σ cName='ASU'∧pPos='goalie'∧dec='no' (Tryout))) -- Intersect (π pID (σ cName='LSU'∧pPos='goalie'∧dec='yes' (Tryout))) ∩ (π pID (σ cName='ASU'∧pPos='goalie'∧dec='no' (Tryout))) -- Rename π HS (Player) - π Player.HS (σ Player.HS>s.HS ((Player) ⨯ ρ s (Player)) ) -- Division (π pName,vName (PlayerGoals)) ÷ (π vName (Venues)) (π pName,vName (σ Goals>0 (PlayerGoals))) ÷ (π vName (Venues)) -- Example π pName,HS ((σ HS>1000 (Player))∩(σ yCard='yes' (Player))) -- Assignment FSUGT=(π pID (σ cName='FSU' ∧ pPos='striker' ∧ dec='yes' (Tryout))) NOTFSUGT=(π pID (σ cName≠'FSU' ∧ pPos='striker' (Tryout))) FSUYOG = FSUGT-NOTFSUGT FSUYOG -- Natural Join 1 π pName,cName (σ yCard='no' ((Player)⨝(Tryout))) -- Natural Join 2 π pName (σ HS<1000∧pPos='mid'∧dec='no'∧enr>10000 ((College)⨝(Tryout)⨝(Player))) -- Natural Join 3 π pID, pName (((π pID (Player))-(π pID (Tryout)))⨝(Player)) -- Theta join π pName (((College)⨝(Tryout)) ⨝ state=HSst (PlayerSt)) -- Rename S = ρ X (PlayerStat) ⨝ X.Game=Y.Game ρ Y (PlayerStat) π X.Jersey σ (X.Pts>Y.Pts)∧(Y.Jersey=10) (S) -- Truck ⨝(Truck.MaxTow>=Trailer.Weight) Trailer