Download presentation
Presentation is loading. Please wait.
Published byTabitha Cobb Modified over 8 years ago
1
CS 122: Using Relational Databases and SQL Tarik Booker Department of Computer Science California State University, Los Angeles
2
Prologue: (A Little History…)
3
A Little History…(2)
4
A Little History…(3) Charles Babbage (1791 – 1871) Ada (Byron) Lovelace (1815 – 1852) The Difference Engine (Designed but never built) Lord Byron (1788 – 1824) + + =
5
A Little History (4)…
6
Using Relational Databases and SQL Part I Databases
7
Database Definition Data (information) base (foundation) Database - a structured collection of persistent data. Structured: organized according to a set of rules. In this case, organized according to a database model. Persistent: stored in permanent storage, not just RAM. If you shut down the application or the power goes off, the data is not lost.
8
Database Definition Many definitions are like this one: A collection of data, typically modelling the activities of one or more related organizations (Ramkrishnan and Gherke, Database Management Systems.) Keep in mind, databases don’t always model anything in particular. Database designers don’t always know what the data will be used for.
9
What is a Database? Structured using a database model No database model, no database! Often, not always, used to model organizational activities Examples: Companies Stores Universities
10
Database Skills Database skills are foundational in CS The great majority of modern applications use databases to store information You will put these skills together with your OOP programming skills a little later if you are an undergraduate, very soon if you are a grad student As a working software engineer, you will probably use the skills you learn in this class every day
11
Database Skills Some applications you are familiar with that rely heavily on large databases: Wikipedia GET Amazon.com ITunes Others?
12
Old Databases
13
Physical/Logical Separation Before DBMS, users had to implement this functionality themselves! Traverse pointers at the physical level to extract data from a database Far easier to abstract at the physical level! Write a program at the logical level instead
14
Database Models The Two Levels of a Database Model Physical Level (how data is stored) The things we don’t have to worry about Logical Level (how data is organized) The things we do care about The Basic Models Hierarchical Model (IBM’s IMS) represented data as a tree Network Model (CODASYL) Relational Model (ALPHA, SEQUEL)
15
Hierarchical Database Model
16
Example of a query to retrieve info: for book in (get_children("Programming/J.Smith”)) print book.field("Title"), book.field("Publisher") Mostly superseded by relational model Has an afterlife with XML
17
XML Data Is this it? The Strokes USA Atlantic 7.99 1995 Black Angel Savage Rose EU Mega 10.90 1995
18
Network Model Built on hierarchical model but allows multiple parents and multiple children
19
Relational Model Proposed by Edgar F. Codd (circa 1969) Database is a collection of tables (relations) Relational comes from ‘Relational Algebra/Calculus’ and not from ‘Relationships’ Relational model is based on extensive mathematical theory, which we will not cover in this class Dominant database model Oracle was the first to aggressively market a commercial relational database product
20
Dr. Edgar F(rank) Codd MA Mathematics, MA Chemistry MS and PhD in Communication Sciences ACM Turing Award (1981)
21
Tables Artists = Table (Relation) ArtistID, City, Region,... = Columns (Attributes) Each row is called a Record (Tuple)
22
Using Relational Databases and SQL Part II Database Management Systems
23
Database Management Systems (DBMS) A DBMS handles these functions: Data definition: Defining new data structures for a database, removing data structures from the database, modifying the structure of existing data. Update: Inserting, modifying, and deleting data. Retrieval: Obtaining information either for end-user queries and reports or for processing by applications. Administration: Registering and monitoring users, enforcing data security, monitoring performance, maintaining data integrity, dealing with concurrency control, and recovering information if the system fails. Source: Wikipedia
24
Database Management Systems (DBMS) Some common relational DBMSs: MySQL, PostgreSQL (free, open source) Oracle, MS SQL Server (commercial)
25
Database Schemas The definition of the database, where you define Tables Relationships Constraints Stored Functions and Procedures Views Indexes Schemas are typically represented by a schema diagram; see the Lyric diagram linked from the course page
26
Database Management Systems (DBMS) You can have multiple databases, each with a single schema A separate database for each application Toystore (First database) Bookstore (Second database) Furniture Store (Third database) Etc. You can also have a single database, with multiple schemas
27
Using Relational Databases and SQL Part III Query Languages
28
Query: question Query Language = A computer language used to extract data from a database Data Sublanguage = A computer language used to extract and manipulate database data SEQUEL/SQL (1974) developed at IBM
29
Query Languages Data Sublanguage Alpha (Codd’s original query language) Data Sublanguage SEQUEL (SQL)
30
SQL “Structured Query Language” A non-procedural, domain-specific language (not like Java, C or C++) An open ANSI and ISO standard Supported by most major DBMS Some variations in implementations Used by programmers, managers, and database administrators
31
SQL SQL is “nonprocedural” or “declarative” Procedural languages, like Java or C, require programmers to implement an algorithm (“a series of instructions that will solve a problem in a finite amount of time”) to accomplish each task Nonprocedural / declarative languages, like SQL, require the programmer to describe *what data* s/he wants. The platform (in this case, DBMS) determines how to produce the data This is an important distinction, but as we will see, it is not as clear-cut for SQL as it is for, say, HTML.
32
SQL Functions View information from relational databases Single and multiple table selections Calculation and analysis Manipulate information in relational databases Insert and delete records Update records Create relational databases Create databases, tables, constraints,...
33
Nonstandard Features SQL is an open standard, but developers of DBMSs often add additional features that are not part of the standard Differentiate their products from competitors Vendor lock-in What happens when you want to switch to a different DBMS? Is it a good idea to use features like this?
34
Using Relational Databases and SQL Part IV Lyric Database Discussion
35
Primary Keys Primary key is used to uniquely identify every record in a table Must be a field or combination of fields with unique values What would happen if we needed to identify individuals in the university DB and tried to do this using first name? Last name? Both? Height? DOB? If more than one field is required, we have a composite primary key
36
The Lyric Database Database for a web-based company that provides services to artists and the studios that they work for Before we start extracting data from a database, we must understand the database completely first
37
Primary Key Example What is the primary key of the Studios table? What is the primary key of the XRefArtistsMembers table? (hint: it may require more than one field to make up a primary key!)
38
Using Relational Databases and SQL Part V MySQL
39
For coursework, we will use MySQL, which you must install on a USB drive. –Bring a USB drive to the next class meeting! You may also install it on your own laptop, but note that you will have to use the lab computers for the midterm and final exam, so be sure you can run it from a USB drive before the midterm.
40
Downloading MySQL, Part I Go to CS122 web page and follow the links to MySQL site Get MySQL Community Server mysql-5.5.x has the MySQL database client and server programs Get the.zip files (not the MSIs) for your OS (Windows vs. OSX) and processor (32 vs 64 bit). The files are labelled in a way that may confuse you into downloading the source code, which you don’t need. Be careful to get the binaries instead. MySQL 5.5.8-win32, for example, is 132 MB. The 27 MB file is the source code.
41
Downloading MySQL, Part II Extract the zip files; you will have two directories You may also want to use the MySQL Workbench, which is a GUI tool for working with MySQL. However, Workbench only works with the 32 bit version and is buggy in any case. Please don’t ask me to help you with it until at least week 3, after everyone is working smoothly with the main MySQL software. mysql-workbench-gpl-5.2.x.... is the MySQL GUI Tools
42
Mac Users An OSX version of MySQL is available. But you’re on your own! If you find it hard to work with, I can give you an account on the cs1 server, which has MySQL. We will do this later (you still need a flash drive)
43
Using MySQL In Windows This process should only be slightly different in OSX Open up a Windows command line console Use the cd command to navigate to the mysql-5.x.xx-xx/bin directory If you add this directory to your PATH, you won’t have to navigate there every time. However, you *won’t* be able to add anything to the PATH on the lab computers. Type in the following to start the database server: start mysqld Then type in the following to start the database client: mysql –u root
44
Some MySQL Commands Once MySQL has started and you see the mysql prompt: At mysql> prompt type in: show databases; At mysql> prompt type in: create database lyric; At mysql> prompt type in: use lyric; At mysql> prompt type in: show tables; You shouldn’t see any yet
45
Adding Data to a Database Now that the database is selected, let's load a database script Download lyric.sql from the course webpage At mysql> prompt type in: source [path] lyric.sql; Where [path] stands for the path to the location where you saved lyric.sql. If you put lyric.sql in mysql’s bin directory, all you will have to type is source lyric.sql You should see a bunch of messages like this: Query OK, 1 rows affected (0.01 sec).
46
Verify that the database is set up To check whether everything has worked correctly, type SELECT * FROM Salespeople; The output should look like this: +---------+-----------+----------+----------+--------+------------+ | SalesID | FirstName | LastName | Initials | Base | Supervisor | +---------+-----------+----------+----------+--------+------------+ | 1 | Bob | Bentley | bbb | 100.00 | 4 | | 2 | Lisa | Williams | lmw | 300.00 | 4 | | 3 | Clint | Sanchez | cls | 100.00 | 1 | | 4 | Scott | Bull | sjb | NULL | NULL | +---------+-----------+----------+----------+--------+------------+ 4 rows in set (0.39 sec)
47
Using MySQL in the lab If you will be using your own laptop in the lab, bring it to the next class meeting If you will be using MySQL on a lab computer, *bring a USB drive to the lab* on Wednesday
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.