CS 250 Databases and DBMSs. Benjamin Dicken

Similar documents
CS 250 SQL and SQLite. Benjamin Dicken

Data Base Concepts. Course Guide 2

Introduction to Database Systems

Fundamentals of Information Systems, Seventh Edition

What is a Database? Peter Wood

Module - 17 Lecture - 23 SQL and NoSQL systems. (Refer Slide Time: 00:04)

CS313D: ADVANCED PROGRAMMING LANGUAGE

Introduction to Databases

What is database? Types and Examples

The DBMS accepts requests for data from the application program and instructs the operating system to transfer the appropriate data.

DATABASES SQL INFOTEK SOLUTIONS TEAM

CGS 3066: Spring 2017 SQL Reference

CSC 453 Database Technologies. Tanu Malik DePaul University

Database Management Systems

Data, Information, and Databases

Database Systems. Bence Molnár

Chapter 6. Foundations of Business Intelligence: Databases and Information Management VIDEO CASES

DEC Computer Technology LESSON 6: DATABASES AND WEB SEARCH ENGINES

DATABASE MANAGEMENT SYSTEMS PREPARED BY: ENGR. MOBEEN NAZAR

Relational databases and SQL

Introduction to Database Systems

File Processing Approaches

CMPE 131 Software Engineering. Database Introduction

The Relational Model. Relational Data Model Relational Query Language (DDL + DML) Integrity Constraints (IC)

Chapter 5. Database Processing

A Review to the Approach for Transformation of Data from MySQL to NoSQL

Database Management System Fall Introduction to Information and Communication Technologies CSD 102

CPS510 Database System Design Primitive SYSTEM STRUCTURE

DOWNLOAD OR READ : RELATIONAL DATABASE DESIGN FOR STARTERS EXPLAINED THROUGH A CASE STUDY IN MICROSOFT ACCESS PDF EBOOK EPUB MOBI

Data Models and SQL for GIS. John Porter Department of Environmental Sciences University of Virginia

Standard stuff. Class webpage: cs.rhodes.edu/db Textbook: get it somewhere; used is fine. Prerequisite: CS 241 Coursework:

DOWNLOAD OR READ : RELATIONAL DATABASE DESIGN AND IMPLEMENTATION FOURTH EDITION PDF EBOOK EPUB MOBI

What s a database anyway?

CSE 303: Database. Teaching Staff. Lecture 01. Lectures: 1 st half - from a user s perspective. Lectures: 2 nd half - understanding how it works

CIB Session 12th NoSQL Databases Structures

Storing data in databases

Key Terms. Attribute join Target table Join table Spatial join

Department of Computer Science and Information Systems, College of Business and Technology, Morehead State University

Voyage. NoSQL Object Database. Damien Cassou, Stéphane Ducasse and Luc Fabresse. W4S11

MYSQL DATABASE DESIGN AND TUNING MYSQL DATABASE DESIGN AND PDF MYSQL :: MYSQL WORKBENCH: DATABASE MIGRATION MYSQL - WIKIPEDIA

Introduction to Database S ystems Systems CSE 444 Lecture 1 Introduction CSE Summer

The Relational Model. Chapter 3. Comp 521 Files and Databases Fall

CS143: Relational Model

CPS 510 Data Base I. There are 3 forms of database descriptions the ANSI/SPARK, 1975 and so on

Introduc.on to Databases

A never-ending database migration

SQL Simple Queries. Chapter 3.1 V3.01. Napier University

Chapter 11 Database Concepts

Who we are: Database Research - Provenance, Integration, and more hot stuff. Boris Glavic. Department of Computer Science

DATABASE PART 2. Components and Functions

Introduction to Big Data. NoSQL Databases. Instituto Politécnico de Tomar. Ricardo Campos

Informatics 1: Data & Analysis

BIS Database Management Systems.

MIS Database Systems.

CSC 355 Database Systems

Mysql Query Browser Export Table Structure

Database Applications (15-415)

SQL Commands & Mongo DB New Syllabus

SEEM4540 Open Systems for E-Commerce Lecture 04 Servers Setup and Content Management Systems

These are all examples of relatively simple databases. All of the information is textual or referential.

CAS CS 460/660 Introduction to Database Systems. Fall

CSC 337. Relational Databases and SQL. Rick Mercer

Announcements. PS 3 is out (see the usual place on the course web) Be sure to read my notes carefully Also read. Take a break around 10:15am

Data, Databases, and DBMSs

Real Life Web Development. Joseph Paul Cohen

Database System Concepts and Architecture

Database Systems. Course Administration

CSE 544 Principles of Database Management Systems

Using a DBMS. Shan-Hung Wu & DataLab CS, NTHU

Database Fundamentals Chapter 1

Relation Databases. By- Neha Tyagi PGT CS KV 5 Jaipur II Shift Jaipur Region. Based on CBSE Curriculum Class -11. Neha Tyagi, PGT CS II Shift Jaipur

Introduction. Example Databases

Course: Database Management Systems. Lê Thị Bảo Thu

CSE 530A. ER Model to Relational Schema. Washington University Fall 2013

The Relational Model. Week 2

Management Information Systems Review Questions. Chapter 6 Foundations of Business Intelligence: Databases and Information Management

CSE Database Management Systems. York University. Parke Godfrey. Winter CSE-4411M Database Management Systems Godfrey p.

Wiki Database Schema Diagram Generate Sql Server 2005

Mysql Create Table With Multiple Index Example

Bonus Content. Glossary

Ministry of Higher Education and Scientific research

A database management system (DBMS) is a software package with computer

INFORMATION TECHNOLOGY NOTES

Operating systems fundamentals - B07

COMP9321 Web Application Engineering

Module - P7 Lecture - 15 Practical: Interacting with a DBMS

Administrivia. CS 235: Introduction to Databases. Examples. What is a DBMS? The DBMS Marketplace. Relational Model

TIM 50 - Business Information Systems

Relational Model History. COSC 416 NoSQL Databases. Relational Model (Review) Relation Example. Relational Model Definitions. Relational Integrity

COSC344 Database Theory and Applications. σ a= c (P) Lecture 3 The Relational Data. Model. π A, COSC344 Lecture 3 1

Carnegie Mellon Univ. Dept. of Computer Science /615 - DB Applications. Today's Party. Example Database. Faloutsos/Pavlo CMU /615

Relational Databases BORROWED WITH MINOR ADAPTATION FROM PROF. CHRISTOS FALOUTSOS, CMU /615

Server Based Repositories

The Relational Model. Roadmap. Relational Database: Definitions. Why Study the Relational Model? Relational database: a set of relations

Database in Everyday Life by Assoc. Prof. Dr. Churee Techawut adapted into English by Dr. Prakarn Unachak

Topics. History. Architecture. MongoDB, Mongoose - RDBMS - SQL. - NoSQL

CS2 Current Technologies Note 1 CS2Bh

IT1105 Information Systems and Technology. BIT 1 ST YEAR SEMESTER 1 University of Colombo School of Computing. Student Manual

SQL language. Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c)

Essential Skills - RDBMS and SQL

Transcription:

CS 250 Databases and DBMSs Benjamin Dicken

Databases and DBMSs The word database is thrown around a lot, but it is often misused When learning about databases it is important to distinguish between a database and a DBMS

Databases and DBMSs A Database (DB) is an organized collection of data, typically organized to model aspects of reality in a way that supports external processing A Database Management System (DBMS) is a computer software application that interacts with the user, other applications, and the database itself to capture and analyze data Thanks, Wikipedia!

Databases and DBMSs A database is not a program It is a collection of information (typically one or more files on a computer) that represent reality We will discuss several ways in which databases can model reality

Databases and DBMSs A database could be: Something a simple as a single CSV file, where each line represents an entity, and each column a bit of information! A collection of file in a directory that have information related to each-other An entire hard-drive with organized files and information An entire building full of hard drives with petabytes of information!

Databases and DBMSs A DBMS is a computer program A user should interact with the DBMS, not the database A DBMS is a middle man between the user and the database A robust DBMS provides features to add, remove, retrieve, and process data in a database Users sends queries to a DBMS to interact with the data held within it

Databases and DBMSs User Marvel DBMS heroes.csv

Databases and DBMSs Why is a DBMS necessary? Why Can t we just manually view and edit files using programs like Excel? Scale is one issue What if you have a billion pieces of information? Complexity is another issue What if you have very complex information and relationships to represent? Excel may not be practical

Databases and DBMSs Well-known DBMSs include MySQL, SQLite, PostgreSQL, MongoDB, MariaDB, Microsoft SQL Server, Oracle, IBM DB2...

Databases and DBMSs A DBMS should provide functionality that allows for management of a database and its data These functionalities can be classified into four main functional groups

Databases and DBMSs 1) Data definition Creation, modification and removal of definitions that define the organization of the data 2) Update Insertion, modification, and deletion of the actual data 3) Retrieval Providing information in a form directly usable or for further processing by other applications. The retrieved data may be made available in a form basically the same as it is stored in the database or in a new form obtained by altering or combining existing data from the database

Databases and DBMSs 4) Administration Registering and monitoring users, enforcing data security, monitoring performance, maintaining data integrity, dealing with concurrency control, and recovering information that has been corrupted by some event such as an unexpected system failure

Databases and DBMSs Four main structure types of databases Relational databases Hierarchical databases Network databases Object-oriented databases

Hierarchical Model Super-Heroes Marvel DC Other Spiderman Magneto Wolverine Superman Batman Midnighter Spawn

Network Model Spiderman Midnighter Marvel Magneto Super-Heroes Other Spawn Wolverine Superman Batman DC

Object-oriented Model ObjectType: Hero ObjectType: Hero Name = Batman Category = ObjectType: Hero Name = Spiderman Category = Name = Wolverine Category = ObjectType: Hero Name = Spiderman Category = ObjectType: Category Name = Marvel ObjectType: Category Name = DC ObjectType: Category Name = Other

Relational Model Name Batman Superman Spiderman Spawn Midnighter Name Marvel DC Other Magneto Wolverine

Relational Model Name HeroID CatID Batman 1 2 Superman 2 2 Spiderman 3 1 Spawn 4 3 Midnighter 5 3 Name CatID Marvel 1 DC 2 Other 3 Magneto 6 1 Wolverine 7 1

Relational Model Name HeroID CatID Batman 1 2 Superman 2 2 Spiderman 3 1 Spawn 4 3 Midnighter 5 3 Name CatID Marvel 1 DC 2 Other 3 Magneto 6 1 Wolverine 7 1

Databases and DBMSs Four main structure types of DBMSs Relational databases Hierarchical databases Network databases Object-oriented databases

Databases and DBMSs Four main structure types of DBMSs Relational databases Hierarchical databases Network databases Object-oriented databases Mostly talking about these in cs250

Databases and DBMSs A relational database is made up of... relations In simple terms, A relation is a tabular representation of an entity Relations have attributes and tuples An attribute of a relation is a particular type of information that is stored about the entity the relation models (similar to a column in a table) A tuples is a specific instance of the entity that the relation represents (similar to a row in a table)

Databases and DBMSs

Databases and DBMSs This is an over-simplification, but helpful for this class since we are not covering relational databases in detail: Relation Table Tuple Row Attribute Column

Databases and DBMSs Important to differentiate between Schema and Data Schema: The specification of the structure and design of a particular database Data: The entries stored in the database

Relational Model This is the Schema Name HeroID CatID Name CatID Batman 1 2 Superman 2 2 Spiderman 3 1 Marvel 1 DC 2 Other 3 Spawn 4 3 Midnighter 5 3 Magneto 6 1 Wolverine 7 1

Relational Model This is the Data Name HeroID CatID Name CatID Batman 1 2 Superman 2 2 Spiderman 3 1 Marvel 1 DC 2 Other 3 Spawn 4 3 Midnighter 5 3 Magneto 6 1 Wolverine 7 1

Databases and DBMSs Using the previous example...

This is a Relation (Table) Superhero Name HeroID CatID Batman 1 2 Superman 2 2 Spiderman 3 1 Spawn 4 3 Midnighter 5 3 Magneto 6 1 Wolverine 7 1

This is an Attribute (Column) Superhero Name HeroID CatID Batman 1 2 Superman 2 2 Spiderman 3 1 Spawn 4 3 Midnighter 5 3 Magneto 6 1 Wolverine 7 1

This is an Attribute Title Superhero Name HeroID CatID Batman 1 2 Superman 2 2 Spiderman 3 1 Spawn 4 3 Midnighter 5 3 Magneto 6 1 Wolverine 7 1

This is a Tuple (Row) Superhero Name HeroID CatID Batman 1 2 Superman 2 2 Spiderman 3 1 Spawn 4 3 Midnighter 5 3 Magneto 6 1 Wolverine 7 1

Databases and DBMSs It is the task of a database administrator to model some real-world information and interactions with the relational model Typically, each real-world entity has it s own relation We can make connections between relations with foreign keys

Databases and DBMSs How to model the following real-world information with a relational model? Christian Bale played Batman in Batman Begins (directed by Chris Nolan) Henry Cavill played Superman in Batman v Superman (directed by Zack Snyder) Tim Holland played Spider-man in the Captain America: Civil War (directed by Andy Russo) Michael Jai White played Spawn in Spawn (directed by Mark A.Z. Dippe) Ian McKellen played Magneto in X-Men (directed by Bryan Singer) Hugh Jackman played Wolverine in X-Men (also directed by Bryan Singer) Nobody played the super-hero Midnighter in any movies

Databases and DBMSs In this set of info, there are three types of entities People Characters (could be subdivided into actors and directors) Movies There are many ways this could be modeled...

(A) Character Actor Director Movie Name Name Name Title Batman Chris Bale Joss Whedon Cap Amer: Civil War Superman Henry Cavill Chris Nolan Batman Begins Spiderman Tim Holland Bryan Singer X-Men Spawn Michael Jai White Zack Snyder X-Men 2 Midnighter Ian McKellen Andy Russo Batman v Superman Magneto Hugh Jackman Mark A.Z. Dippe Spawn Wolverine

(B) Character Name Batman Superman Spiderman Spawn Midnighter Magneto Wolverine Person Name Chris Bale Henry Cavill Tim Holland Michael Jai White Ian McKellen Hugh Jackman Joss Whedon Chris Nolan Bryan Singer Zack Snyder Andy Russo Mark A.Z. Dippe Movie Title Cap Amer: Civil War Batman Begins X-Men X-Men 2 Batman v Superman Spawn

Databases and DBMSs We will stick with (B) Separating actors and directors adds extra complexity We also need to model the following relationships Character <-> Person Person <-> Movie (actor) Person <-> Movie (director) Movie <-> Character

Databases and DBMSs Movie Person Character

Character <-> Person How do we represent the relationship between Person and Character? It is easy if the mapping is 1-to-1.

Person Name PID Character Name CID Batman 1 Superman 2 Spiderman 3 Spawn 4 Midnighter 5 Magneto 6 Wolverine 7 Joss Whedon 1 Zack Snyder 2 Michael Jai White 3 Tim Holland 4 Ian McKellen 5 Hugh Jackman 6 Chris Bale 7 Chris Nolan 8 Bryan Singer 9 Henry Cavill 10 Andy Russo 11 Mark A.Z. Dippe 12 Movie Title MID Cap Amer: Civil War 1 Batman Begins 2 X-Men 3 X-Men 2 4 Batman v Superman 5 Spawn 6

Character <-> Person Character Name CID Person Name PID Joss Whedon 1 Zack Snyder 2 Michael Jai White 3 Batman 1 Superman 2 Spiderman 3 Spawn 4 Midnighter 5 Magneto 6 Wolverine 7 Tim Holland 4 Ian McKellen 5 Hugh Jackman 6 Chris Bale 7 Chris Nolan 8 Bryan Singer 9 Henry Cavill 10 Andy Russo 11 Mark A.Z. Dippe 12

Character <-> Person Character Name CID PID Batman 1 7 Superman 2 10 Spiderman 3 4 Spawn 4 3 Midnighter 5? Magneto 6 5 Wolverine 7 6 Person Name PID Joss Whedon 1 Zack Snyder 2 Michael Jai White 3 Tim Holland 4 Ian McKellen 5 Hugh Jackman 6 Chris Bale 7 Chris Nolan 8 Bryan Singer 9 Henry Cavill 10 Andy Russo 11 Mark A.Z. Dippe 12

Character <-> Person Character Name CID PID Batman 1 7 Superman 2 10 Spiderman 3 4 Spawn 4 3 Midnighter 5? Magneto 6 5 Wolverine 7 6 Person Name PID Joss Whedon 1 Zack Snyder 2 Michael Jai White 3 Tim Holland 4 Ian McKellen 5 Hugh Jackman 6 Chris Bale 7 Chris Nolan 8 Bryan Singer 9 Henry Cavill 10 Andy Russo 11 Mark A.Z. Dippe 12

Movie <-> Character How do we represent the relationship between Movie and Character? In this case, the mapping is not 1-to-1 Magneto is in X-Men and X-Men 2 Wolverine is in X-Men and X-Men 2 Batman is in Batman Begins and Batman v Superman We need to use an extra table to represents relationships that are 1-to-many or many-to-many

Movie <-> Character Character Name CID PID Batman 1 7 Superman 2 10 Spiderman 3 4 Spawn 4 3 Midnighter 5? Magneto 6 5 Wolverine 7 6 CharacterIn CID MID Movie Title MID Cap Amer: Civil War 1 Batman Begins 2 X-Men 3 X-Men 2 4 Batman v Superman 5 Spawn 6

Movie <-> Character Character Name CID PID Batman 1 7 Superman 2 10 Spiderman 3 4 Spawn 4 3 Midnighter 5? Magneto 6 5 Wolverine 7 6 CharacterIn CID MID 1 2 1 5 2 5 3 1 4 6 6 3 6 4 7 3 7 4 Movie Title MID Cap Amer: Civil War 1 Batman Begins 2 X-Men 3 X-Men 2 4 Batman v Superman 5 Spawn 6

Movie <-> Character Character Name CID PID Batman 1 7 Superman 2 10 Spiderman 3 4 Spawn 4 3 Midnighter 5? Magneto 6 5 Wolverine 7 6 CharacterIn CID MID 1 2 1 5 2 5 3 1 4 6 6 3 6 4 7 3 7 4 Movie Title MID Cap Amer: Civil War 1 Batman Begins 2 X-Men 3 X-Men 2 4 Batman v Superman 5 Spawn 6

Person <-> Movie (Actor) How do we represent the relationship between Person and Movie (actors)? This mapping is also not 1-to-1 (Ian McKellen, Hugh Jackman)

Person Name PID Joss Whedon 1 Person <-> Movie (Actor) Zack Snyder 2 Michael Jai White 3 Tim Holland 4 Ian McKellen 5 Hugh Jackman 6 Chris Bale 7 Chris Nolan 8 Bryan Singer 9 Henry Cavill 10 Andy Russo 11 Mark A.Z. Dippe 12 PID ActsIn MID Movie Title MID Cap Amer: Civil War 1 Batman Begins 2 X-Men 3 X-Men 2 4 Batman v Superman 5 Spawn 6

Person Name PID Joss Whedon 1 Person <-> Movie (Actor) Zack Snyder 2 Michael Jai White 3 Tim Holland 4 Ian McKellen 5 Hugh Jackman 6 Chris Bale 7 Chris Nolan 8 Bryan Singer 9 Henry Cavill 10 Andy Russo 11 Mark A.Z. Dippe 12 ActsIn PID MID 3 6 4 1 5 3 5 4 6 3 6 4 7 2 10 5 Movie Title MID Cap Amer: Civil War 1 Batman Begins 2 X-Men 3 X-Men 2 4 Batman v Superman 5 Spawn 6

Person Name PID Joss Whedon 1 Person <-> Movie (Actor) Zack Snyder 2 Michael Jai White 3 Tim Holland 4 Ian McKellen 5 Hugh Jackman 6 Chris Bale 7 Chris Nolan 8 Bryan Singer 9 Henry Cavill 10 Andy Russo 11 Mark A.Z. Dippe 12 ActsIn PID MID 3 6 4 1 5 3 5 4 6 3 6 4 7 2 10 5 Movie Title MID Cap Amer: Civil War 1 Batman Begins 2 X-Men 3 X-Men 2 4 Batman v Superman 5 Spawn 6

Person <-> Movie (Director) How do we represent the relationship between Person and Movie (directors)? This mapping is also not 1-to-1 (because of Bryan Singer) It is many-to-many

Person Name PID Joss Whedon 1 Person <-> Movie (Director) Zack Snyder 2 Michael Jai White 3 Tim Holland 4 Ian McKellen 5 Hugh Jackman 6 Chris Bale 7 Chris Nolan 8 Bryan Singer 9 Henry Cavill 10 Andy Russo 11 Mark A.Z. Dippe 12 PID Directs MID Movie Title MID Cap Amer: Civil War 1 Batman Begins 2 X-Men 3 X-Men 2 4 Batman v Superman 5 Spawn 6

Person Name PID Joss Whedon 1 Person <-> Movie (Director) Zack Snyder 2 Michael Jai White 3 Tim Holland 4 Ian McKellen 5 Hugh Jackman 6 Chris Bale 7 Chris Nolan 8 Bryan Singer 9 Henry Cavill 10 Andy Russo 11 Mark A.Z. Dippe 12 Directs PID MID 11 1 8 2 9 3 9 4 12 6 2 5 Movie Title MID Cap Amer: Civil War 1 Batman Begins 2 X-Men 3 X-Men 2 4 Batman v Superman 5 Spawn 6

Person Name PID Joss Whedon 1 Person <-> Movie (Director) Zack Snyder 2 Michael Jai White 3 Tim Holland 4 Ian McKellen 5 Hugh Jackman 6 Chris Bale 7 Chris Nolan 8 Bryan Singer 9 Henry Cavill 10 Andy Russo 11 Mark A.Z. Dippe 12 Directs PID MID 11 1 8 2 9 3 9 4 12 6 2 5 Movie Title MID Cap Amer: Civil War 1 Batman Begins 2 X-Men 3 X-Men 2 4 Batman v Superman 5 Spawn 6

Person Character CharacterIn Directs ActsIn Movie Name PID Name CID PID CID MID PID MID PID MID Title MID Joss Whedon 1 Batman 1 7 1 2 11 1 3 6 Cap Amer: Civil War 1 Zack Snyder 2 Superman 2 10 1 5 8 2 4 1 Batman Begins 2 Michael Jai White 3 Spiderman 3 4 2 5 9 3 5 3 X-Men 3 Tim Holland 4 Spawn 4 3 3 1 9 4 5 4 X-Men 2 4 Ian McKellen 5 Midnighter 5? 4 6 12 6 6 3 Batman v Superman 5 Hugh Jackman 6 Magneto 6 5 6 3 2 5 6 4 Spawn 6 Chris Bale 7 Wolverine 7 6 6 4 7 2 Chris Nolan 8 7 3 10 5 Bryan Singer 9 7 4 Henry Cavill 10 Andy Russo 11 Mark A.Z. Dippe 12 Putting it all Together

Databases and DBMSs All values in a particular column in a relational database table do not need to be unique There may be duplicate rows in a table as well

Databases and DBMSs Relationships 1-to-1: Do not need extra table for relationship 1-to-many: Sometimes want extra table for relationship (but not necessary) If only need to go one-way, no need If want to go both ways easily, then need! many-to-many: Always have extra relation for relationship

Databases and DBMSs Popular Relational DBMSs MySQL, SQLite, PostgreSQL, Oracle Non-relational DBMSs (which we won t discuss much in this class) MongoDB, NoSQL, CouchDB

Databases and DBMSs There are two main types of DBMS architectures Server/Client architecture PostgreSQL, MySQL, Oracle Standalone architecture SQLite

Server/Client Server Process... Client Process 1 Client Process 2 Client Process N

Standalone DBMS Process

In-class Exercise Model Ford Motor Company s manufacturing database Ford manufactures cars at multiple locations in the US Flat Rock Assembly Plant 1, Michigan Chicago Assembly, Illinois Dearborn Truck, Michigan Kansas City Assembly, Missouri Ford manufactures many types of cars F-150, Mustang, Focus, Explorer, Flex,... Ford sells to many customers Dealerships, Companies, Gov t, Individuals,...

In-class Exercise Tables: Facility Item Purchase Customer Relationships to model Facility <-> Item Item <-> Purchase Purchase <-> Customer

In-class Exercise Design the Schema Enter a few rows into each table Show the relationships between tables with arrows

Databases and DBMSs Most relational DBMSs use SQL (Structured Query Language) as the primary method of interacting with (adding, removing, accessing) the DB managed by the DBMS SQL is a programming language used in relational database management systems Used by MySQL, SQLite, PostgreSQL, Oracle, and many more Many different DBMSs unified by one common language!

Databases and DBMSs The SQL query language is used to: Define the relational database structure Load data into them Remove data Access the data We ll learn about this soon

Databases and DBMSs In particular, we will be learning the SQLite DBMS because: It is easy to install And is pre-installed on Macs! Has a simple, easy to understand interface Python has a built-in module for connecting to a sqlite database Python does not have a built-in module for connecting to other commonly-used relational DBMSs such as MySQL and Postgres SQLite is the most used database engine in the world (they claim)

Databases and DBMSs Reading Materials en.wikipedia.org/wiki/database en.wikipedia.org/wiki/relational_database cl.cam.ac.uk/~fms27/db/tr-98-2.pdf coding-geek.com/how-databases-work (very technical)