Winter 2002Arthur Keller – CS 18016–1 Schedule Today: Mar. 5 (T) u More ODL, OQL. u Read Sections 9.1. Assignment 7 due. Mar. 7 (TH) u More OQL. u Read.

Slides:



Advertisements
Similar presentations
Winter 2002Arthur Keller – CS 1806–1 Schedule Today: Jan. 22 (T) u SQL Queries. u Read Sections Assignment 2 due. Jan. 24 (TH) u Subqueries, Grouping.
Advertisements

SQL CSET 3300.
Databases : Relational Model 2007, Fall Pusan National University Ki-Joune Li These slides are made from the materials that Prof. Jeffrey D. Ullman distributes.
Chapter 4 Notes. Entity-Relationship Model E/R Diagrams Weak Entity Sets Converting E/R Diagrams to Relations.
1 Relational Model and Translating ER into Relational.
Fall 2001Arthur Keller – CS 18016–1 Schedule Nov. 20 (T) More OQL. u Read Sections Assignment 7 due (late ones by ). Nov. 22 (TH) Thanksgiving.
Winter 2002Arthur Keller – CS 18015–1 Schedule Today: Feb. 28 (TH) u Datalog and SQL Recursion, ODL. u Read Sections , Project Part 6.
Winter 2002Arthur Keller – CS 18012–1 Schedule Today: Feb. 19 (T) u Object-Relational Systems. u Read Sections 4.5, Assignment 5 due. Feb. 21.
Fall 2001Arthur Keller – CS 1808–1 Schedule Today Oct. 18 (TH) Schemas, Views. u Read Sections u Project Part 3 extended to Oct. 23 (T). Oct.
Fall 2001Arthur Keller – CS 18015–1 Schedule Nov. 15 (TH) Object Queries (OQL). u Read Sections 9.1. Project Part 6 due on Sunday night. Nov. 20 (T) More.
Winter 2002Arthur Keller – CS 1808–1 Schedule Today: Jan. 29 (T) u Modifications, Schemas, Views. u Read Sections Assignment 3 due. Jan. 31 (TH)
1 Announcement Recitation time  Before midterm: 6-7pm, by Earl Wagner  After midterm: 5-6pm, by Yi Qiao Newsgroup safe to subscribe  Will not cause.
Winter 2002Arthur Keller – CS 1809–1 Schedule Today: Jan. 31 (TH) u Constraints. u Read Sections , Project Part 3 due. Feb. 5 (T) u Triggers,
Object Oriented Database Management. Outline Motivation Embedding SQL in host language Object Data Model Persistent Programming Languages Object Query.
1 Unified Modeling Language Classes Associations Aggregations.
Winter 2002Arthur Keller – CS 18018–1 Schedule Today: Mar. 12 (T) u Semistructured Data, XML, XQuery. u Read Sections Assignment 8 due. Mar. 14.
Fall 2001Arthur Keller – CS 18014–1 Schedule Nov. 13 (T) Object-Relational, O-R Queries. u Read Sections 4.5, Assignment 6 due. (No office hours.)
Winter 2002Judy Cushing12–1 Schedule Today (week 8): u Object-Relational Systems. Sections 4.5, u Assignment 5 debriefed. u Transactions, Authorization.
Winter 2002Arthur Keller – CS 1804–1 Schedule Today: Jan. 15 (T) u Normal Forms, Multivalued Dependencies. u Read Sections Assignment 1 due. Jan.
1 The Relational Data Model Tables Schemas Conversion from E/R to Relations.
1 Other High-Level Design Languages Unified Modeling Language Object Description Language.
Programs with SQL Host language + Embedded SQL Preprocessor Host Language + function calls Host language compiler Host language program Preprocessor Host.
Other Data Models. Text New edition (DBS the complete book): Chapter 4 Old edition (First course in DBS): –Section 2.1 –Section –Section 2.4.1,
Fall 2001Arthur Keller – CS 1803–1 Schedule Today Oct. 2 (T) Relational Model. u Read Sections Assignment 1 due. Personal Letter of Introduction.
Fall 2001Arthur Keller – CS 1809–1 Schedule Today Oct. 23 (T) Constraints. u Read Sections Assignment 4 due. Project Part 3 due Oct. 24 (W). Oct.
Winter 2002Arthur Keller – CS 1807–1 Schedule Today: Jan. 24 (TH) u Subqueries, Grouping and Aggregation. u Read Sections Project Part 2 due.
Winter 2002Arthur Keller – CS 1803–1 Schedule Today: Jan. 10 (TH) u Relational Model, Functional Dependencies. u Read Sections Jan. 15 (T) u Normal.
Fall 2001Arthur Keller – CS 1804–1 Schedule Today Oct. 4 (TH) Functional Dependencies and Normalization. u Read Sections Project Part 1 due. Oct.
CPSC-608 Database Systems Fall 2011 Instructor: Jianer Chen Office: HRBB 315C Phone: Notes #2.
1 Announcements Research Paper due Monday November 22.
Databases Illuminated Chapter 7 The Object-Oriented Model.
SCUHolliday - coen 1789–1 Schedule Today: u Constraints, assertions, triggers u Read Sections , 7.4. Next u Triggers, PL/SQL, embedded SQL, JDBC.
SCUHolliday6–1 Schedule Today: u SQL Queries. u Read Sections Next time u Subqueries, Grouping and Aggregation. u Read Sections And then.
Database Management COP4540, SCS, FIU Relational Model Chapter 7.
ADVANCED DATABASE SYSTEMS DR. FATEMEH AHMADI- ABKENARI SEPTEMBER Object Databases.
Winter 2006Keller, Ullman, Cushing9–1 Constraints Commercial relational systems allow much more “fine-tuning” of constraints than do the modeling languages.
1 Object-Oriented Database Languages Object Description Language Object Query Language.
Winter 2006Keller, Ullman, Cushing12–1 Object-Relational Systems Object-oriented ideas enter the relational world. u Keep relation as the fundamental abstraction.
1 Object-Oriented Database Languages Object Description Language Object Query Language.
Object Definition Language
Entity-Relationship Model
CSE 6331 © Leonidas Fegaras OODB1 Object-Oriented Databases and the ODMG Standard.
Winter 2006Keller Cushing Ullman17–1 Subqueries Used mainly in FROM clauses and with quantifiers EXISTS and FORALL. Example: Subquery in FROM Find the.
Databases 1 Fifth lecture. Entity-Relationship Model Diagrams Class hierarchies Weak entity sets From E/R diagrams to Relations 2.
Instructor: Jinze Liu Fall Phases of Database Design u Conceptual design begins with the collection of requirements and results needed from the.
Dale Roberts 1 Department of Computer and Information Science, School of Science, IUPUI Dale Roberts, Lecturer Computer Science, IUPUI
© D. Wong Security and User Authorization in SQL 8.7 pp. 410  Authorization ID = user name  Special authorization ID: PUBLIC  Privileges for:
1 Introduction to SQL Database Systems. 2 Why SQL? SQL is a very-high-level language, in which the programmer is able to avoid specifying a lot of data-manipulation.
CS 405G: Introduction to Database Systems Relations.
Final Review Zaki Malik November 20, Basic Operators Covered.
1 Unified Modeling Language. 2 UML  UML is designed to model software, but has been adapted as a database modeling language. – No multiway relationships.
SCUHolliday - coen 1789–1 Schedule Today: u Constraints, assertions, triggers u Read Sections , 7.4. Next u Embedded SQL, JDBC. u Read Sections.
1 Introduction to Database Systems, CS420 SQL Persistent Stored Modules (PSM) – Stored Procedure.
1 The Relational Data Model Tables Schemas Conversion from E/R to Relations.
Object-Oriented Databases and the ODMG Standard
Entity-Relationship Model
Schedule Today: Jan. 28 (Mon) Jan. 30 (Wed) Next Week Assignments !!
CPSC-310 Database Systems
Introduction to Database Systems, CS420
CPSC-310 Database Systems
Database Models Relational Model
CPSC-310 Database Systems
Object Definition Language
The Relational Data Model
CSC Database Management Systems
Object-Oriented DBMS’s
Instructor: Zhe He Department of Computer Science
Select-From-Where Statements Multirelation Queries Subqueries
CS 405G: Introduction to Database Systems
Presentation transcript:

Winter 2002Arthur Keller – CS 18016–1 Schedule Today: Mar. 5 (T) u More ODL, OQL. u Read Sections 9.1. Assignment 7 due. Mar. 7 (TH) u More OQL. u Read Sections Mar. 12 (T) u Semistructured Data, XML, XQuery. u Read Sections Assignment 8 due. Mar. 14 (TH) u Data Warehouses, Data Mining. u Project Part 7 due. Mar. 16 (Sa) Final Exam. 12–3PM. In class.

Winter 2002Arthur Keller – CS 18016–2 ODL Subclasses Follow name of subclass by colon and its superclass. Example: Ales are Beers with a Color class Ales:Beers { attribute string color; } Objects of the Ales class acquire all the attributes and relationships of the Beers class. While E/R entities can have manifestations in a class and subclass, in ODL we assume each object is a member of exactly one class.

Winter 2002Arthur Keller – CS 18016–3 Keys in ODL Indicate with key(s) following the class name, and a list of attributes forming the key. Several lists may be used to indicate several alternative keys. Parentheses group members of a key, and also group key to the declared keys. Thus, (key( a 1,a 2, …, a n )) = “one key consisting of all n attributes.” (key a 1,a 2, …, a n ) = “each a i is a key by itself.” Example class Beers (key name) {attribute string name...} Remember: Keys are optional in ODL. The “object ID” suffices to distinguish objects that have the same values in their elements.

Winter 2002Arthur Keller – CS 18016–4 Example: A Multiattribute Key class Courses (key (dept, number), (room, hours)) {...}

Winter 2002Arthur Keller – CS 18016–5 Translating ODL to Relations 1.Classes without relationships: like entity set, but several new problems arise. 2.Classes with relationships: a) Treat the relationship separately, as in E/R. b) Attach a many-one relationship to the relation for the “many.”

Winter 2002Arthur Keller – CS 18016–6 ODL Class Without Relationships Problem: ODL allows attribute types built from structures and collection types. Structure: Make one attribute for each field. Set: make one tuple for each member of the set. u More than one set attribute? Make tuples for all combinations. Problem: ODL class may have no key, but we should have one in the relation to represent “OID.”

Winter 2002Arthur Keller – CS 18016–7 Example class Drinkers (key name) { attribute string name; attribute Struct Addr {string street, string city, int zip} address; attribute Set phone; } name streetcityzipphone n 1 s 1 c 1 z 1 p 1 n 1 s 1 c 1 z 1 p 2 Surprise: the key for the class (name) is not the key for the relation (name, phone).  name in the class determines a unique object, including a set of phones.  name in the relation does not determine a unique tuple. u Since tuples are not identical to objects, there is no inconsistency! BCNF violation: separate out name-phone.

Winter 2002Arthur Keller – CS 18016–8 ODL Relationships If the relationship is many-one from A to B, put key of B attributes in the relation for class A. If relationship is many-many, we’ll have to duplicate A-tuples as in ODL with set-valued attributes. u Wouldn’t you really rather create a separate relation for a many-many-relationship? u You’ll wind up separating it anyway, during BCNF decomposition.

Winter 2002Arthur Keller – CS 18016–9 Example class Drinkers (key name) { attribute string name; attribute string addr; relationship Set likes inverse Beers::fans; relationship Beers favorite inverse Beers::realFans; relationship Drinkers husband inverse wife; relationship Drinkers wife inverse husband; relationship Set buddies inverse buddies; } Drinkers(name, addr, beerName, favBeer, wife, buddy)

Winter 2002Arthur Keller – CS 18016–10 Decompose into 4NF FD’s: name  addr favBeer wife MVD’s: name  beername, name  buddy Resulting decomposition: Drinkers(name, addr, favBeer, wife) DrBeer(name, beer) DrBuddy(name, buddy)

Winter 2002Arthur Keller – CS 18016–11 OQL Motivation: Relational languages suffer from impedance mismatch when we try to connect them to conventional languages like C or C++. u The data models of C and SQL are radically different, e.g., C does not have relations, sets, or bags as primitive types; C is tuple-at-a-time, SQL is relation-at-a-time. OQL is an attempt by the OO community to extend languages like C++ with SQL-like, relation-at-a-time dictions.

Winter 2002Arthur Keller – CS 18016–12 OQL Types Basic types: strings, ints, reals, etc., plus class names. Type constructors:  Struct for structures. u Collection types: set, bag, list, array. Like ODL, but no limit on the number of times we can apply a type constructor. Set(Struct()) and Bag(Struct()) play special roles akin to relations.

Winter 2002Arthur Keller – CS 18016–13 OQL Uses ODL as its Schema-Definition Portion For every class we can declare an extent = name for the current set of objects of the class. u Remember to refer to the extent, not the class name, in queries.

Winter 2002Arthur Keller – CS 18016–14 class Bar (extent Bars) {attribute string name; attribute string addr; relationship Set beersSold inverse Sell::bar; } class Beer (extent Beers) {attribute string name; attribute string manf; relationship Set soldBy inverse Sell::beer; } class Sell (extent Sells) {attribute float price; relationship Bar bar inverse Bar::beersSold; relationship Beer beer inverse Beer::soldBy; }

Winter 2002Arthur Keller – CS 18016–15 Path Expressions Let x be an object of class C. If a is an attribute of C, then x.a = the value of a in the x object. If r is a relationship of C, then x.r = the value to which x is connected by r. u Could be an object or a collection of objects, depending on the type of r. If m is a method of C, then x.m( … ) is the result of applying m to x.

Winter 2002Arthur Keller – CS 18016–16 Examples Let s be a variable whose type is Sell. s.price = the price in the object s. s.bar.addr = the address of the bar mentioned in s.  Note: cascade of dots OK because s.bar is an object, not a collection. Example of Illegal Use of Dot b.beersSold.price, where b is a Bar object. Why illegal? Because b.beersSold is a set of objects, not a single object.

Winter 2002Arthur Keller – CS 18016–17 OQL Select-From-Where SELECT FROM WHERE Collections in FROM can be: 1. Extents. 2. Expressions that evaluate to a collection. Following a collection is a name for a typical member, optionally preceded by AS. Example Get the menu at Joe’s. SELECT s.beer.name, s.price FROM Sells s WHERE s.bar.name = "Joe's Bar" Notice double-quoted strings in OQL.

Winter 2002Arthur Keller – CS 18016–18 Example Another way to get Joe’s menu, this time focusing on the Bar objects. SELECT s.beer.name, s.price FROM Bars b, b.beersSold s WHERE b.name = "Joe's Bar" Notice that the typical object b in the first collection of FROM is used to help define the second collection. Typical Usage If x is an object, you can extend the path expression, like s or s.beer in s.beer.name. If x is a collection, you use it in the FROM list, like b.beersSold above, if you want to access attributes of x.

Winter 2002Arthur Keller – CS 18016–19 Tailoring the Type of the Result Default: bag of structs, field names taken from the ends of path names in SELECT clause. Example SELECT s.beer.name, s.price FROM Bars b, b.beersSold s WHERE b.name = "Joe's Bar" has result type: Bag(Struct( name: string, price: real ))

Winter 2002Arthur Keller – CS 18016–20 Rename Fields Prefix the path with the desired name and a colon. Example SELECT beer: s.beer.name, s.price FROM Bars b, b.beersSold s WHERE b.name = "Joe's Bar" has type: Bag(Struct( beer: string, price: real ))

Winter 2002Arthur Keller – CS 18016–21 Change the Collection Type Use SELECT DISTINCT to get a set of structs. Example SELECT DISTINCT s.beer.name, s.price FROM Bars b, b.beersSold s WHERE b.name = "Joe's Bar" Use ORDER BY clause to get a list of structs. Example joeMenu = SELECT s.beer.name, s.price FROM Bars b, b.beersSold s WHERE b.name = "Joe's Bar" ORDER BY s.price ASC ASC = ascending (default); DESC = descending. We can extract from a list as if it were an array, e.g., cheapest = joeMenu[1].name;