![Page 1: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/1.jpg)
Andy Pavlo // Carnegie Mellon University // Spring 2016
DATABASE SYSTEMS
Lecture #01 – Course Introduction & History of Database Systems
15-721
![Page 2: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/2.jpg)
CMU 15-721 (Spring 2016)
WHY YOU SHOULD TAKE THIS COURSE
2
![Page 3: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/3.jpg)
CMU 15-721 (Spring 2016)
WHY YOU SHOULD TAKE THIS COURSE
2
![Page 4: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/4.jpg)
CMU 15-721 (Spring 2016)
WHY YOU SHOULD TAKE THIS COURSE
2
![Page 5: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/5.jpg)
CMU 15-721 (Spring 2016)
WHY YOU SHOULD TAKE THIS COURSE
2
![Page 6: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/6.jpg)
CMU 15-721 (Spring 2016)
WHY YOU SHOULD TAKE THIS COURSE
2
![Page 7: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/7.jpg)
CMU 15-721 (Spring 2016)
WHY YOU SHOULD TAKE THIS COURSE
Databases are still a hot field. DBMS developers are in demand and there are many challenging unsolved problems in data management and processing. If you are good enough to write code for a DBMS, then you can write code on almost anything else.
3
![Page 8: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/8.jpg)
CMU 15-721 (Spring 2016)
TODAY ’S AGENDA
Course Outline History of Database Systems
4
![Page 9: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/9.jpg)
CMU 15-721 (Spring 2016)
COURSE OBJECTIVES
Learn about modern practices in database internals and systems programming. Students will become proficient in: → Writing correct + performant code → Proper documentation + testing → Code reviews → Working on a large code base → North American street skills
5
![Page 10: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/10.jpg)
CMU 15-721 (Spring 2016)
COURSE TOPICS
The internals of single node systems for in-memory databases. We will ignore distributed deployment problems. We will cover state-of-the-art topics. This is not a course on classical DBMSs.
6
![Page 11: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/11.jpg)
CMU 15-721 (Spring 2016)
COURSE TOPICS
Concurrency Control Indexing Storage Models, Compression Join Algorithms Logging & Recovery Methods Query Optimization, Execution, Compilation New Storage Hardware
7
![Page 12: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/12.jpg)
CMU 15-721 (Spring 2016)
BACKGROUND
I assume that you have already taken an intro course on databases (e.g., 15-415/615). We will discuss modern variations of classical algorithms that are designed for today’s hardware. Things that we will not cover: SQL, Serializability Theory, Relational Algebra, Basic Algorithms + Data Structures.
8
![Page 13: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/13.jpg)
CMU 15-721 (Spring 2016)
BACKGROUND
All projects will be written in C++11. You will be working on a large code-base that contains portions of Postgres that we (CMU) did not write. Be prepared to debug a multi-threaded program.
9
![Page 14: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/14.jpg)
CMU 15-721 (Spring 2016)
COURSE LOGISTICS
Course Policies + Schedule: → Refer to course web page.
Academic Honesty: → Refer to CMU policy page. → If you’re not sure, ask me. → I’m serious. Don’t plagiarize or I will wreck you.
10
![Page 15: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/15.jpg)
CMU 15-721 (Spring 2016)
OFFICE HOURS
Immediately after class in my office: → Mon/Wed: 1:30 – 2:30 → Gates-Hillman Center 9019
Things that we can talk about: → Issues on implementing projects → Paper clarifications/discussion → Relationship advice
11
![Page 16: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/16.jpg)
CMU 15-721 (Spring 2016)
TEACHING ASSISTANTS
Head TA: Joy Arulraj → Main contact for questions about programming projects.
Thug TA: Mu Li → Helping out with logistics and grading scripts.
12
![Page 17: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/17.jpg)
CMU 15-721 (Spring 2016)
COURSE RUBRIC
Reading Assignments Programming Projects Final Exam Extra Credit
13
![Page 18: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/18.jpg)
CMU 15-721 (Spring 2016)
READING ASSIGNMENTS
One mandatory reading per class (★). You can skip four readings during the semester. You must submit a synopsis before class: → Overview of the main idea (two sentences). → System used and how it was modified (one sentence). → Workloads evaluated (one sentence).
Submission Form: http://cmudb.io/15721-s16-submit
14
![Page 19: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/19.jpg)
CMU 15-721 (Spring 2016)
PLAGIARISM WARNING
Each review must be your own writing. You may not copy text from the papers or other sources that you find on the web. Plagiarism will not be tolerated. See CMU's Policy on Academic Integrity for additional information.
15
![Page 20: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/20.jpg)
CMU 15-721 (Spring 2016)
PROGRAMMING PROJECTS
Projects will be implemented in CMU’s new DBMS Peloton. → In-memory, hybrid DBMS based on Postgres → Modern code base (C++11, Multi-threaded)
We will provide more details about how to get started with the first project next class.
16
![Page 21: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/21.jpg)
CMU 15-721 (Spring 2016)
PROGRAMMING PROJECTS
Do all development on your local machine. → Peloton only builds on Linux. → We will provide a Vagrant configuration.
Do all benchmarking using DB Lab cluster. → We will provide login details later in semester.
Generous hardware donation from MemSQL.
17
![Page 22: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/22.jpg)
CMU 15-721 (Spring 2016)
PROJECTS #1 AND #2
We will provide you with test cases and scripts for the first two programming projects. Project #1 will be completed individually. Project #2 will be done in a group of three. → 30 people in the class → 10 groups of 3 people
18
![Page 23: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/23.jpg)
CMU 15-721 (Spring 2016)
PLAGIARISM WARNING
These projects must be all of your own code. You may not copy source code from other groups or the web. Plagiarism will not be tolerated. See CMU's Policy on Academic Integrity for additional information.
19
![Page 24: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/24.jpg)
CMU 15-721 (Spring 2016)
PROJECT #3
Each group will choose a project that is: → Relevant to the materials discussed in class. → Requires a significant programming effort from all
team members. → Unique (i.e., two groups can’t pick same idea).
You don’t have to pick a topic until after Spring Break. We will provide sample project topics.
20
![Page 25: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/25.jpg)
CMU 15-721 (Spring 2016)
PROJECT #3
Project deliverables: → Proposal → Project Update → Code Review → Final Presentation → Code Drop
21
![Page 26: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/26.jpg)
CMU 15-721 (Spring 2016)
PROJECT #3 – PROPOSAL
Five minute presentation to the class that discusses the high-level topic. Each proposal must discuss: → What files you will need to modify. → How you will test whether your implementation is
correct. → What workloads you will use for your project.
22
![Page 27: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/27.jpg)
CMU 15-721 (Spring 2016)
PROJECT #3 – STATUS UPDATE
Five minute presentation to update the class about the current status of your project. Each presentation should include: → Current development status. → Whether anything in your plan has changed. → Any thing that surprised you.
23
![Page 28: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/28.jpg)
CMU 15-721 (Spring 2016)
PROJECT #3 – CODE REVIEW
Each group will be paired with another group and provide feedback on their code. Grading will be based on participation.
24
![Page 29: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/29.jpg)
CMU 15-721 (Spring 2016)
PROJECT #3 – F INAL PRESENTATION
10 minute presentation on the final status of your project during the scheduled final exam. You’ll want to include any performance measurements or benchmarking numbers for your implementation. Demos are always hot too…
25
![Page 30: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/30.jpg)
CMU 15-721 (Spring 2016)
PROJECT #3 – CODE DROP
A project is not considered complete until: → The code can merge into the master branch without
any conflicts. → All comments from code review are addressed. → The project includes test cases that correctly verify
that implementation is correct. → The group provides documentation in both the
source code and in separate Markdown files.
26
![Page 31: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/31.jpg)
CMU 15-721 (Spring 2016)
FINAL EXAM
Written long-form examination on the mandatory readings and topics discussed in class. Closed notes. Will be held on the last day of class (Wednesday April 27th) in this room.
27
![Page 32: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/32.jpg)
CMU 15-721 (Spring 2016)
EXTRA CREDIT
We are writing an encyclopedia of DBMSs. Each student can earn extra credit if they write an entry about one DBMS. → Must provide citations and attributions.
Additional details will be provided later. This is optional.
28
![Page 33: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/33.jpg)
CMU 15-721 (Spring 2016)
PLAGIARISM WARNING
The extra credit article must be your own writing. You may not copy text/images from papers or other sources that you find on the web. Plagiarism will not be tolerated. See CMU's Policy on Academic Integrity for additional information.
29
![Page 34: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/34.jpg)
CMU 15-721 (Spring 2016)
GRADE BREAKDOWN
Reading Reviews (10%) Project #1 (10%) Project #2 (20%) Project #3 (40%) Final Exam (20%) Extra Credit (+10%)
30
![Page 35: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/35.jpg)
CMU 15-721 (Spring 2016)
COURSE MAIL ING L IST
On-line Discussion through Piazza: http://piazza.com/cmu/spring2016/15721 If you have a technical question about the projects, please use Piazza. → Don’t email me or TAs directly.
All non-project questions should be sent to me.
31
![Page 36: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/36.jpg)
CMU 15-721 (Spring 2016)
32
ANDY’s ABRIDGED HISTORY OF DATABASES
WHAT GOES AROUND COMES AROUND Readings in Database Systems, 4th Edition, 2006.
WHAT’S REALLY NEW WITH NEWSQL? Under Submission, 2015.
![Page 37: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/37.jpg)
CMU 15-721 (Spring 2016)
HISTORY REPEATS ITSELF
Old database issues are still relevant today. The “SQL vs. NoSQL” debate is reminiscent of “Relational vs. CODASYL” debate. Many of the ideas in today’s database systems are not new.
33
![Page 38: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/38.jpg)
CMU 15-721 (Spring 2016)
1960S – IBM IMS
First database system developed to keep track of purchase orders for Apollo moon mission. → Hierarchical data model. → Programmer-defined physical storage format. → Tuple-at-a-time queries.
34
![Page 39: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/39.jpg)
CMU 15-721 (Spring 2016)
HIERARCHICAL DATA MODEL
SUPPLIER (sno, sname, scity, sstate)
PART (pno, pname, psize, qty, price)
Schema Instance
35
![Page 40: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/40.jpg)
CMU 15-721 (Spring 2016)
HIERARCHICAL DATA MODEL
SUPPLIER (sno, sname, scity, sstate)
PART (pno, pname, psize, qty, price)
Schema Instance
35
sno sname scity sstate parts
1001 Dirty Rick New York NY
1002 Squirrels Boston MA
![Page 41: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/41.jpg)
CMU 15-721 (Spring 2016)
HIERARCHICAL DATA MODEL
SUPPLIER (sno, sname, scity, sstate)
PART (pno, pname, psize, qty, price)
Schema Instance
35
sno sname scity sstate parts
1001 Dirty Rick New York NY
1002 Squirrels Boston MA
pno pname psize qty price
999 Batteries Large 10 $100
![Page 42: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/42.jpg)
CMU 15-721 (Spring 2016)
HIERARCHICAL DATA MODEL
SUPPLIER (sno, sname, scity, sstate)
PART (pno, pname, psize, qty, price)
Schema Instance
35
sno sname scity sstate parts
1001 Dirty Rick New York NY
1002 Squirrels Boston MA
pno pname psize qty price
999 Batteries Large 10 $100
pno pname psize qty price
999 Batteries Large 14 $99
![Page 43: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/43.jpg)
CMU 15-721 (Spring 2016)
HIERARCHICAL DATA MODEL
SUPPLIER (sno, sname, scity, sstate)
PART (pno, pname, psize, qty, price)
Schema Instance
35
sno sname scity sstate parts
1001 Dirty Rick New York NY
1002 Squirrels Boston MA
pno pname psize qty price
999 Batteries Large 10 $100
pno pname psize qty price
999 Batteries Large 14 $99
Duplicate Data
![Page 44: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/44.jpg)
CMU 15-721 (Spring 2016)
HIERARCHICAL DATA MODEL
SUPPLIER (sno, sname, scity, sstate)
PART (pno, pname, psize, qty, price)
Schema Instance
35
sno sname scity sstate parts
1001 Dirty Rick New York NY
1002 Squirrels Boston MA
pno pname psize qty price
999 Batteries Large 10 $100
pno pname psize qty price
999 Batteries Large 14 $99
Duplicate Data
No Independence
![Page 45: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/45.jpg)
CMU 15-721 (Spring 2016)
1970s – CODASYL
COBOL people got together and proposed a standard for how programs will access a database. Lead by Charles Bachman. → Network data model. → Tuple-at-a-time queries.
Bachman
36
![Page 46: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/46.jpg)
CMU 15-721 (Spring 2016)
NETWORK DATA MODEL
SUPPLY (qty, price)
SUPPLIER (sno, sname, scity, sstate)
PART (pno, pname, psize)
37
Schema
SUPPLIES SUPPLIED_BY
![Page 47: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/47.jpg)
CMU 15-721 (Spring 2016)
NETWORK DATA MODEL
SUPPLY (qty, price)
SUPPLIER (sno, sname, scity, sstate)
PART (pno, pname, psize)
37
Schema
SUPPLIES SUPPLIED_BY
![Page 48: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/48.jpg)
CMU 15-721 (Spring 2016)
NETWORK DATA MODEL
SUPPLY (qty, price)
SUPPLIER (sno, sname, scity, sstate)
PART (pno, pname, psize)
37
Schema
SUPPLIES SUPPLIED_BY
![Page 49: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/49.jpg)
CMU 15-721 (Spring 2016)
NETWORK DATA MODEL
SUPPLY (qty, price)
SUPPLIER (sno, sname, scity, sstate)
PART (pno, pname, psize)
37
Schema
SUPPLIES SUPPLIED_BY
![Page 50: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/50.jpg)
CMU 15-721 (Spring 2016)
NETWORK DATA MODEL
SUPPLY (qty, price)
SUPPLIER (sno, sname, scity, sstate)
PART (pno, pname, psize)
37
Schema
SUPPLIES SUPPLIED_BY
Complex Queries
![Page 51: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/51.jpg)
CMU 15-721 (Spring 2016)
NETWORK DATA MODEL
SUPPLY (qty, price)
SUPPLIER (sno, sname, scity, sstate)
PART (pno, pname, psize)
37
Schema
SUPPLIES SUPPLIED_BY
Complex Queries
Easily Corrupted
![Page 52: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/52.jpg)
CMU 15-721 (Spring 2016)
1970s – RELATIONAL MODEL
Ted Codd was a mathematician working at IBM Research. He saw developers spending their time rewriting IMS and Codasyl programs every time the database’s schema or layout changed. Database abstraction to avoid this maintenance: → Store database in simple data structures. → Access data through high-level language. → Physical storage left up to implementation.
Codd
38
![Page 53: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/53.jpg)
CMU 15-721 (Spring 2016)
RELATIONAL DATA MODEL
SUPPLY (sno, pno, qty, price)
SUPPLIER (sno, sname, scity, sstate)
PART (pno, pname, psize)
39
Schema
![Page 54: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/54.jpg)
CMU 15-721 (Spring 2016)
RELATIONAL DATA MODEL
SUPPLY (sno, pno, qty, price)
SUPPLIER (sno, sname, scity, sstate)
PART (pno, pname, psize)
39
Schema
![Page 55: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/55.jpg)
CMU 15-721 (Spring 2016)
RELATIONAL DATA MODEL
SUPPLY (sno, pno, qty, price)
SUPPLIER (sno, sname, scity, sstate)
PART (pno, pname, psize)
39
Schema
![Page 56: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/56.jpg)
CMU 15-721 (Spring 2016)
RELATIONAL DATA MODEL
SUPPLY (sno, pno, qty, price)
SUPPLIER (sno, sname, scity, sstate)
PART (pno, pname, psize)
39
Schema
![Page 57: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/57.jpg)
CMU 15-721 (Spring 2016)
1970s – RELATIONAL MODEL
Early implementations of relational DBMS: → System R – IBM Research → INGRES – U.C. Berkeley → Oracle – Larry Ellison
Ellison Gray Stonebraker
40
![Page 58: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/58.jpg)
CMU 15-721 (Spring 2016)
1980s – RELATIONAL MODEL
The relational model wins. → IBM comes out with DB2 in 1983. → SQL becomes the standard.
Many new “enterprise” DBMSs but Oracle wins marketplace. Stonebraker creates Postgres.
41
![Page 59: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/59.jpg)
CMU 15-721 (Spring 2016)
1 9 8 0 s – O BJE CT- O R IEN TED DATA BASES
Avoid “relational-object impedance mismatch” by tightly coupling objects and database. Few of these original DBMSs from the 1980s still exist today but many of the technologies exist in other forms (JSON, XML)
42
![Page 60: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/60.jpg)
CMU 15-721 (Spring 2016)
OBJECT-ORIENTED MODEL
Application Code class Student { int id; String name; String email; String phone[]; }
43
![Page 61: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/61.jpg)
CMU 15-721 (Spring 2016)
OBJECT-ORIENTED MODEL
Application Code class Student { int id; String name; String email; String phone[]; }
Relational Schema
STUDENT (id, name, email)
STUDENT_PHONE (sid, phone)
43
![Page 62: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/62.jpg)
CMU 15-721 (Spring 2016)
OBJECT-ORIENTED MODEL
Application Code class Student { int id; String name; String email; String phone[]; }
Relational Schema
STUDENT (id, name, email)
STUDENT_PHONE (sid, phone)
id name email
1001 M.O.P. [email protected]
sid phone
1001 444-444-4444
1001 555-555-5555
43
![Page 63: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/63.jpg)
CMU 15-721 (Spring 2016)
OBJECT-ORIENTED MODEL
Application Code class Student { int id; String name; String email; String phone[]; }
Relational Schema
STUDENT (id, name, email)
STUDENT_PHONE (sid, phone)
id name email
1001 M.O.P. [email protected]
sid phone
1001 444-444-4444
1001 555-555-5555
43
![Page 64: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/64.jpg)
CMU 15-721 (Spring 2016)
OBJECT-ORIENTED MODEL
Application Code class Student { int id; String name; String email; String phone[]; }
43
![Page 65: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/65.jpg)
CMU 15-721 (Spring 2016)
OBJECT-ORIENTED MODEL
Application Code class Student { int id; String name; String email; String phone[]; }
Student
{ “id”: 1001, “name”: “M.O.P.”, “email”: “[email protected]”, “phone”: [ “444-444-4444”, “555-555-5555” ] }
43
![Page 66: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/66.jpg)
CMU 15-721 (Spring 2016)
OBJECT-ORIENTED MODEL
Application Code class Student { int id; String name; String email; String phone[]; }
Student
{ “id”: 1001, “name”: “M.O.P.”, “email”: “[email protected]”, “phone”: [ “444-444-4444”, “555-555-5555” ] }
43
Complex Queries
![Page 67: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/67.jpg)
CMU 15-721 (Spring 2016)
OBJECT-ORIENTED MODEL
Application Code class Student { int id; String name; String email; String phone[]; }
Student
{ “id”: 1001, “name”: “M.O.P.”, “email”: “[email protected]”, “phone”: [ “444-444-4444”, “555-555-5555” ] }
43
Complex Queries
No Standard API
![Page 68: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/68.jpg)
CMU 15-721 (Spring 2016)
1990s – BORING DAYS
No major advancements in database systems or application workloads. → Microsoft forks Sybase and creates SQL Server. → MySQL is written as a replacement for mSQL. → Postgres gets SQL support.
44
![Page 69: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/69.jpg)
CMU 15-721 (Spring 2016)
2000s – INTERNET BOOM
All the big players were heavyweight and expensive. Open-source databases were missing important features. Many companies wrote their own custom middleware to scale out database across single-node DBMS instances.
45
![Page 70: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/70.jpg)
CMU 15-721 (Spring 2016)
2000s – DATA WAREHOUSES
Rise of the special purpose OLAP DBMSs. → Distributed / Shared-Nothing → Relational / SQL → Usually closed-source.
Significant performance benefits from using Decomposition Storage Model (i.e., columnar)
46
![Page 71: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/71.jpg)
CMU 15-721 (Spring 2016)
2000s – NoSQL SYSTEMS
Focus on high-availability & high-scalability: → Schemaless (i.e., “Schema Last”) → Non-relational data models (document, key/value, etc) → No ACID transactions → Custom APIs instead of SQL → Usually open-source
47
![Page 72: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/72.jpg)
CMU 15-721 (Spring 2016)
2010s – NewSQL
Provide same performance for OLTP workloads as NoSQL DBMSs without giving up ACID: → Relational / SQL → Distributed → Usually closed-source
48
![Page 73: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/73.jpg)
CMU 15-721 (Spring 2016)
2010s – HYBRID SYSTEMS
Hybrid Transactional-Analytical Processing. Execute fast OLTP like a NewSQL system while also executing complex OLAP queries like a data warehouse system. → Distributed / Shared-Nothing → Relational / SQL → All closed-source (as of 2016).
49
![Page 74: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/74.jpg)
CMU 15-721 (Spring 2016)
PARTING THOUGHTS
There are many innovations that come from both industry and academia: → Lots of ideas start in academia but few build
complete DBMSs to verify them. → IBM was the vanguard during 1970-1980s but now
Google is current trendsetter. → Oracle borrows ideas from anybody.
The relational model has won for operational databases.
50
![Page 75: CMU SCS 15-721 :: Course Introduction & History of ... · CMU 15-721 (Spring 2016) PROJECT #3 . Each group will choose a project that is: →Relevant to the materials discussed in](https://reader033.vdocuments.site/reader033/viewer/2022052718/5f0524177e708231d411791c/html5/thumbnails/75.jpg)
CMU 15-721 (Spring 2016)
NEXT CLASS
Disk vs. In-Memory DBMSs Project #1 Discussion Reminder: First reading review is due at 12:00pm on Wednesday January 13th.
51