1 / 29

Database Management Systems CSE 594

Database Management Systems CSE 594. Introduction September 28, 2000. Staff. Instructor: Alon Halevy Sieg, Room 310, alon@cs.washington.edu Office hours: Thursdays 5pm, email. TAs: Maya Rodrig Office hours: Thursdays 5pm, or by appointment. Mailing list: cse594@cs

saeran
Download Presentation

Database Management Systems CSE 594

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Database Management SystemsCSE 594 Introduction September 28, 2000

  2. Staff • Instructor: Alon Halevy • Sieg, Room 310, alon@cs.washington.edu • Office hours: Thursdays 5pm, email. • TAs: Maya Rodrig • Office hours: Thursdays 5pm, or by appointment. • Mailing list: cse594@cs • Web page:http://www.cs.washington.edu/education/courses/594/00au/

  3. Goals of the Course • Purpose: • Principles of building database applications • Foundations of database management systems. • Issues in building database systems. • Have fun: databases are not just bunches of tuples. • Not an introduction to the nitty gritty of any specific commerical system.

  4. Grading • Paper homeworks: 25% • Very little regurgitation. • Meant to be challenging (I.e., fun). • Two programming projects: 40% • Work in pairs. • Build a database application • Build an XML query processor • Final Exam: 25% (currently scheduled for Dec. 14th). • Intangibles (e.g., participation): 10%

  5. Textbook • Two volume collection, available as a pair in the bookstore: • A First Course on Database Systems: • Ullman & Widom • Database System Implementation: • Garcia-Molina, Ullman and Widom. • A few comments about the books.

  6. Other Useful Texts • Database Management Systems: Ramakrishnan and Gehrke • Foundations of Databases (Abiteboul, Hull & Vianu) • Parallel and Distributed DBMS (Ozsu and Valduriez) • Transaction Processing (Gray and Reuter) • Database Systems (Silberschatz, Korth and Sudarshan) • Principles of Transaction Processing (Bernstein and Newcomer) • Readings in Database Systems (Stonebraker and Hellerstein) • Proceedings of SIGMOD, VLDB, PODS conferences.

  7. Prerequisites

  8. Operating systems Data structures and algorithms Distributed systems Complexity theory Mathematical Logic Knowledge Representation User interface design Programming languages Artificial Intelligence (Search) Greek, Hebrew, French Real Prerequisites

  9. Why use a DBMS? Suppose we are building a system to store the information pertaining to the university. Several questions arise: • how do westore the data? (file organization, etc.) • how do we query the data? (write programs…) • make sure that updates don’t mess things up? • Provide different views on the data? (registrar versus students) • how do we deal with crashes? Way too complicated! Go buy a database system!

  10. Why Use a DBMS? All programs manipulate data, so why use a database? Many data manipulation tasks involve recurring operations: • Large amounts of data (Giga’s, Tera’s) • Data is very structured • Persistent data • Valuable data • Performance requirements • Concurrent access to the data • Restricted access to data

  11. Functionality of a DBMS • Persistent storage management • Transaction management • Resiliency: recovery from crashes. • Separation between logical and physical views of the data. • High level query and data manipulation language. • Efficient query processing • Interface with programming languages

  12. Bird’s Eye View of • How to build a database application • The different components of a database system.

  13. Building an Application with a Database System • Requirements modeling (conceptual, pictures) • Decide what entities should be part of the application and how they should be linked. • Schema design and implementation • Decide on a set of tables, attributes. • Define the tables in the database system. • Populate database (insert tuples). • Write application programs using the DBMS • way easier now that the data management is taken care of.

  14. Conceptual Modeling name category name ssn Takes Course Student quarter Advises Teaches Professor name field address

  15. Relational Terminology Attribute names Product (relation name) Name Price Category Manufacturer gizmo $19.99 gadgets GizmoWorks Power gizmo $29.99 gadgets GizmoWorks SingleTouch $149.99 photography Canon MultiTouch $203.99 household Hitachi tuples (Arity=4) Product(name: string, Price: real, category: enum, Manufacturer: string)

  16. Schema Design and Implementation • Table Students • Note: Separation of the logical view from the physical view of the data. • Normalization (theory).

  17. Querying a Database • Find all the students who have taken CSE444 in Fall, 1997. • S(tructured) Q(uery) L(anguage) • select E.name • from Enroll E • where E.course=CS444 and • E.quarter=“Fall, 1997” • Query processor figures out how to answer the query efficiently. • An acquired taste… • Other query languages exist (OO, OR, datalog)

  18. Writing Application Code • Use ODBC/JDBC. • Create a connection with a database. • Embed SQL in application code. • Specify transaction borders • May need physical tuning of the database.

  19. Query update User/ Application Query optimizer Query execution plan Execution engine Record, index requests Index/record mgr. Page commands Buffer manager Read/write pages Storage manager storage

  20. Storage Management • Becomes a hard problem because of the interaction with the other levels of the DBMS: • What are we storing? • Efficient indexing, single and multi-dimensional • Exploit “semantic” knowledge • Issue: interaction with the operating system. Should we rely on the OS?

  21. TP and Recovery • For efficient use of resources, we want concurrent access to data. • Systems sometimes crash. • A “real” database guarantees ACID: • Atomicity: all or nothing of a transaction. • Consistency: always leave the DB consistent. • Isolation: every transaction runs as if it’s the only one in the system. • Durability: if committed, we really mean it. • Do we really want ACID?

  22. Data Integration Uniform query capability across autonomous, heterogeneous data sources on LAN, WAN, or Internet

  23. XML: Semi-structured Data eXtensible Markup Language: • Emerging format for data exchange on the web and between applications.

  24. Database Industry • Relational databases are a great success of theoretical ideas. • Oracle has a market cap of over $200B • Other players: IBM, MS, Sybase, Informix • Trends: • warehousing and decision support • data integration • XML, XML, XML.

  25. Course (Rough) Outline • The basics: (quickly) • The relational model • SQL • Views, integrity constraints • XML • Physical representation: • Index structures.

  26. Course Outline (cont) • Query execution: (Zack Ives) • Algorithms for joins, selections, projections. • Query Optimization • Data Integration • semi-structured data • Transaction processing and recovery (Phil Bernstein)

  27. Projects • Goal: identify and solve a problem in database systems. • (almost) anything goes. • Groups of 2-3 • Groups assembled end of week 2; • Proposals, end of week 3. • Touch base with me: every two weeks. • Example projects on web site. • Start Early.

More Related