Presentation is loading. Please wait.

Presentation is loading. Please wait.

M.P. Johnson, DBMS, Stern/NYU, Spring 20081 C20.0046: Database Management Systems Lecture #6 M.P. Johnson Stern School of Business, NYU Spring, 2008.

Similar presentations


Presentation on theme: "M.P. Johnson, DBMS, Stern/NYU, Spring 20081 C20.0046: Database Management Systems Lecture #6 M.P. Johnson Stern School of Business, NYU Spring, 2008."— Presentation transcript:

1 M.P. Johnson, DBMS, Stern/NYU, Spring 20081 C20.0046: Database Management Systems Lecture #6 M.P. Johnson Stern School of Business, NYU Spring, 2008

2 M.P. Johnson, DBMS, Stern/NYU, Spring 2008 2 Agenda Receive proj1 Basic SQL RA…

3 M.P. Johnson, DBMS, Stern/NYU, Spring 2008 3 Recap: You are here First part of course is done: conceptual foundations You now know:  E/R Model  Relational Model  Relational Algebra You now know how to:  Capture part of world as an E/R model  Convert E/R models to relational models  Convert relational models to good (normal) forms Next:  Create, update, query tables with R.A/SQL  Write SQL/DB-connected applications

4 M.P. Johnson, DBMS, Stern/NYU, Spring 2008 4 3-minute Normalization Review 1. Q: What’s required for BCNF? 2. Q: How do we fix a non-BCNF relation? 3. Q: If As  Bs violates BCNF, what do we do? 4. Q: Can BCNF decomposition ever be lossy? 5. Q: How do we combine two relations? 6. Q: Can BCNF decomp. lose FDs? 7. Q: Why would you ever use 3NF?

5 M.P. Johnson, DBMS, Stern/NYU, Spring 2008 5 Normalization example: bookstore

6 M.P. Johnson, DBMS, Stern/NYU, Spring 2008 6 Normalization example: bookstore Orders tbl: key = ordernum,isbn Orders tbl FDs:

7 M.P. Johnson, DBMS, Stern/NYU, Spring 2008 7 Next topic: SQL Standard language for querying and manipulating data Structured Query Language Many standards: ANSI SQL, SQL92/SQL2, SQL3/SQL99 Originally: Structured English Query Language (SEQUEL) Vendors support various subsets/extensions We’ll do Oracle/MySQL/generic  “No one ever got fired for buying Oracle.” Basic form (many more bells and whistles in addition): SELECT attributes FROM relations (possibly multiple, joined) WHERE conditions (selections) SELECT attributes FROM relations (possibly multiple, joined) WHERE conditions (selections)

8 M.P. Johnson, DBMS, Stern/NYU, Spring 2008 8 Data Types in SQL Characters:  CHAR(20)-- fixed length  VARCHAR(40)-- variable length Numbers:  BIGINT, INT, SMALLINT, TINYINT  REAL, FLOAT -- differ in precision  MONEY Times and dates:  DATE  DATETIME-- SQL Server

9 M.P. Johnson, DBMS, Stern/NYU, Spring 2008 9 “Tables” PNamePriceCategoryManufacturer Gizmo$19.99GadgetsGizmoWorks Powergizmo$29.99GadgetsGizmoWorks SingleTouch$149.99PhotographyCanon MultiTouch$203.99HouseholdHitachi Product Attribute names Table name Tuples or rows

10 M.P. Johnson, DBMS, Stern/NYU, Spring 2008 10 Simple SQL Query PNamePriceCategoryManufacturer Gizmo$19.99GadgetsGizmoWorks Powergizmo$29.99GadgetsGizmoWorks SingleTouch$149.99PhotographyCanon MultiTouch$203.99HouseholdHitachi SELECT * FROM Product WHERE category='Gadgets' Product PNamePriceCategoryManufacturer Gizmo$19.99GadgetsGizmoWorks Powergizmo$29.99GadgetsGizmoWorks “selection”

11 M.P. Johnson, DBMS, Stern/NYU, Spring 2008 11 Simple SQL Query PNamePriceCategoryManufacturer Gizmo$19.99GadgetsGizmoWorks Powergizmo$29.99GadgetsGizmoWorks SingleTouch$149.99PhotographyCanon MultiTouch$203.99HouseholdHitachi SELECT PName, Price, Manufacturer FROM Product WHERE Price > 100 Product PNamePriceManufacturer SingleTouch$149.99Canon MultiTouch$203.99Hitachi “selection” and “projection”

12 M.P. Johnson, DBMS, Stern/NYU, Spring 2008 12 A Notation for SQL Queries SELECT Name, Price, Manufacturer FROM Product WHERE Price > 100 Product(PName, Price, Category, Manfacturer) (PName, Price, Manfacturer) Input Relation Output Relation

13 M.P. Johnson, DBMS, Stern/NYU, Spring 2008 13 The WHERE clause Contains a boolean expression Teach literal is a test: x = y, x < y, x <= y, etc.  For numbers, they have the usual meanings  For CHARs/VARCHARs: lexicographic ordering Expected conversion between CHAR and VARCHAR  For dates and times, what you expect

14 M.P. Johnson, DBMS, Stern/NYU, Spring 2008 14 Complex RA Expressions Schema: Movies (Title, year, length, inColor, studioName, Prdcr#) Q: How long was Star Wars (1977)? Strategy: find the row with Star Wars; then project the length field TitleYearLengthinColorStudioPrdcr# Star Wars1977124TrueFox12345 M.Ducks1991104TrueDisney67890 W.World199295TrueParamount99999

15 M.P. Johnson, DBMS, Stern/NYU, Spring 2008 15 Combining operations Query: Which Fox moves were >= 100 minutes long? TitleYearLengthFilmtypeStudio Star wars1977124ColorFox Mighty ducks1991104ColorDisney Wayne’s world199285ColorParamount

16 M.P. Johnson, DBMS, Stern/NYU, Spring 2008 16 Operators Cross product again  “Cartesian Product” Each tuple in R 1 combines w/each tuple in R 2 Algebraic notation: R 1  R 2  Not actual SQL! If R1, R2 fields overlap, include both and disambiguate: R1.A, R2.A Q: Where does the name come from? Q: If R1 has n1 rows and R2 has n2, how large is R1 x R2?

17 M.P. Johnson, DBMS, Stern/NYU, Spring 2008 17 Cartesian product example StreetCity 333 Some StreetChappaqua 444 Embassy RowWashington Hillary-addresses Job Senator First Lady Lawyer Hillary-jobs StreetCityJob 333 Some StreetChappaquaSenator 444 Embassy RowWashingtonSenator 333 Some StreetChappaquaFirst Lady 444 Embassy RowWashingtonFirst Lady 333 Some StreetChappaquaLawyer 444 Embassy RowWashingtonLawyer Hillary-addresses x Hillary-jobs

18 M.P. Johnson, DBMS, Stern/NYU, Spring 2008 18 Operators Natural join: our join up to now  merging shared attributes Algebraic notation: R1  R2 SQL query:  a = shared fields SELECT * FROM R1,R2 WHERE R1.a = R2.a

19 M.P. Johnson, DBMS, Stern/NYU, Spring 2008 19 Natural join example NameStreetCity Hilary333 Some StreetChappaqua Hilary444 Embassy RowWashington BillSomewhere elseddd Addresses NameJob HilarySenator HilaryFirst Lady HilaryLawyer Jobs Addresses Jobs NameStreetCityJob Hilary333 Some StreetChappaquaSenator Hilary444 Embassy RowWashingtonSenator Hilary333 Some StreetChappaquaFirst Lady Hilary444 Embassy RowWashingtonFirst Lady Hilary333 Some StreetChappaquaLawyer Hilary444 Embassy RowWashingtonLawyer

20 M.P. Johnson, DBMS, Stern/NYU, Spring 2008 20 Natural Join R S R S= ? Unpaired tuples called dangling AB XY XZ YZ ZV BC ZU VW ZV

21 M.P. Johnson, DBMS, Stern/NYU, Spring 2008 21 Natural Join Given the schemas R(A, B, C, D), S(A, C, E), what is the schema of R S ? Given R(A, B, C), S(D, E), what is R S? Given R(A, B), S(A, B), what is R S?

22 M.P. Johnson, DBMS, Stern/NYU, Spring 2008 22 Join on arbitrary test ABC 123 678 978 BCD 234 235 7810 AU.BU.CV.BV.CD 123234 123235 1237810 67878 97878 UV U V A<D “Theta-join”

23 M.P. Johnson, DBMS, Stern/NYU, Spring 2008 23 Next (parallel) topic: relational algebra Projection Selection Cartesian Product Joins: natural joins, theta joins Set operations: union, intersection, difference Combining operations to form queries Dependent and independent operations

24 M.P. Johnson, DBMS, Stern/NYU, Spring 2008 24 What is relational algebra? An algebra for relations “High-school” algebra: an algebra for numbers Algebra = formalism for constructing expressions  Operations  Operands: Variables, Constants, expressions Expressions:  Vars & constants  Operators applied to expressions  They evaluate to values AlgebraVars/constsOperatorsEval to High-schoolNumbers+ * - / etc.Numbers RelationalRelations (=sets of tupes) union, intersection, join, etc. Relations

25 M.P. Johnson, DBMS, Stern/NYU, Spring 2008 25 Why do we care about relational algebra? 1. The exprs are the form that questions about the data take  The relations these exprs cash out to are the answers to our questions 2. RA ~ more succinct rep. of many SQL queries 3. DBMS parse SQL into something like RA First proofs of concept for RDBMS/RA:  System R at IBM  Ingress at Berkeley “Modern” implementation of RA: SQL  Both state of the art, mid-70s

26 M.P. Johnson, DBMS, Stern/NYU, Spring 2008 26 Relation operators Basic operators:  Selection:   Projection:   Cartesian Product:  Other set-theoretic ops:  Union:   Intersection:  Difference: - Additional operators:  Joins (natural, equijoin, theta join, semijoin)  Renaming:   Grouping…

27 M.P. Johnson, DBMS, Stern/NYU, Spring 2008 27 Selection op Selects all tuples satisfying a condition Notation:  c (R) Examples   salary > 100000 (Employee)   name = “Smith” (Employee) The condition c can have  comparison ops:=,, , <>  boolean ops: and, or

28 M.P. Johnson, DBMS, Stern/NYU, Spring 2008 28 Selection example Select the movies at Angelica:   Theater=“Sunshine” (Showings) Masc. Fem.VillageFilm Forum Village N’hood Bad Edu. Annie Hall Title Sunshine Theater Village N’hood Bad Edu. Annie Hall Title Sunshine Theater

29 M.P. Johnson, DBMS, Stern/NYU, Spring 2008 29 Projection op Keep only certain columns Projection: op we used for decomposition  Eliminates other columns, then removes duplicates Notation:  A1,…,An (R)

30 M.P. Johnson, DBMS, Stern/NYU, Spring 2008 30 Join op Corresponds to SQL query doing cross & equality test Specifically: R 1 R 2 =  every att once (  shared atts = (R 1  R 2 ))  I.e., first compute the cross product R 1 x R 2  Next, select the rows in which shared fields agree  Finally, project onto the union of R 1 and R 2 ’s fields (remove duplicates)

31 M.P. Johnson, DBMS, Stern/NYU, Spring 2008 31 Rename op Changes the schema, not the instance Notation:  B1,…,Bn (R)  is spelled “rho”, pronounced “row” Example:  Employee(ssn,name)    social, name) (Employee)  Or just:   (Employee)

32 M.P. Johnson, DBMS, Stern/NYU, Spring 2008 32 RA  SQL SQL SELECT  RA Projection  SQL WHERE  RA Selection  SQL FROM  RA Join/cross  Comma-separated list… SQL renaming  RA rho  More ops later Keep RA in the back of your mind…

33 M.P. Johnson, DBMS, Stern/NYU, Spring 2008 33 Review Examples from sqlzoo.netsqlzoo.net SELECT L FROM R 1, …, R n WHERE C SELECT L FROM R 1, …, R n WHERE C  L (  C (R 1 x … R n )


Download ppt "M.P. Johnson, DBMS, Stern/NYU, Spring 20081 C20.0046: Database Management Systems Lecture #6 M.P. Johnson Stern School of Business, NYU Spring, 2008."

Similar presentations


Ads by Google