Carnegie Mellon Univ. Dept. of Computer Science Database Applications. General Overview - rel. model. Overview - detailed - SQL

Similar documents
General Overview - rel. model. Carnegie Mellon Univ. Dept. of Computer Science Database Applications. Reminder: our Mini-U db

CS 4604: Introduc0on to Database Management Systems. B. Aditya Prakash Lecture #4: SQL---Part 2

Carnegie Mellon Univ. Dept. of Computer Science Database Applications. General Overview - rel. model. Overview - detailed - SQL

Database Applications (15-415)

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

The Relational Model of Data (ii)

EGCI 321: Database Systems. Dr. Tanasanee Phienthrakul

Chapter 3: Introduction to SQL

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

CSEN 501 CSEN501 - Databases I

Chapter 4. Basic SQL. Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

The SQL data-definition language (DDL) allows defining :

The Relational Model. Outline. Why Study the Relational Model? Faloutsos SCS object-relational model

Chapter 3: Introduction to SQL

Chapter 4. Basic SQL. SQL Data Definition and Data Types. Basic SQL. SQL language SQL. Terminology: CREATE statement

Faloutsos - Pavlo CMU SCS /615

Overview. Carnegie Mellon Univ. School of Computer Science /615 - DB Applications. Concepts - reminder. History

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

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

Chapter 3: Introduction to SQL. Chapter 3: Introduction to SQL

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

Carnegie Mellon Univ. Dept. of Computer Science Database Applications. Outline. We ll learn: Faloutsos CMU SCS

Slides by: Ms. Shree Jaswal

Sql Server Syllabus. Overview

Querying Data with Transact SQL

DATABASE TECHNOLOGY - 1MB025

DATABASTEKNIK - 1DL116

An Introduction to Structured Query Language

SQL Data Definition and Data Manipulation Languages (DDL and DML)

An Introduction to Structured Query Language

QQ Group

COSC 304 Introduction to Database Systems SQL DDL. Dr. Ramon Lawrence University of British Columbia Okanagan

Principles of Data Management

Database Applications (15-415)

Chapter 4: SQL. Basic Structure

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

DATABASE TECHNOLOGY - 1MB025

SQL DATA DEFINITION LANGUAGE

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

SQL: Data Definition Language. csc343, Introduction to Databases Diane Horton Fall 2017

An Introduction to Structured Query Language

An Introduction to Structured Query Language

SQL (Structured Query Language)

Introduction to Data Management. Lecture #4 (E-R Relational Translation)

Introduction to Data Management. Lecture 16 (SQL: There s STILL More...) It s time for another installment of...

WHAT IS SQL. Database query language, which can also: Define structure of data Modify data Specify security constraints

An Introduction to Structured Query Language

DATABASE DESIGN I - 1DL300

Based on handout: Carnegie Mellon Univ. Dept. of Computer Science /615 - DB Applications. Goal. Faloutsos & Pavlo CMU SCS /615

Carnegie Mellon Univ. Dept. of Computer Science /615 - DB Applications

Introduction to Data Management. Lecture #5 Relational Model (Cont.) & E-Rà Relational Mapping

The Relational Model 2. Week 3

Chapter 1 SQL and Data

COSC344 Database Theory and Applications. Lecture 5 SQL - Data Definition Language. COSC344 Lecture 5 1

The SQL database language Parts of the SQL language

Carnegie Mellon Univ. Dept. of Computer Science /615 - DB Applications. Outline. We ll learn: Faloutsos/Pavlo CMU /615

Outline. Carnegie Mellon Univ. Dept. of Computer Science /615 - DB Applications. We ll learn: We ll learn (cnt d) Faloutsos/Pavlo CMU /615

Data Modeling. Yanlei Diao UMass Amherst. Slides Courtesy of R. Ramakrishnan and J. Gehrke

Introduction to Data Management. Lecture #4 (E-R à Relational Design)

SQL: Concepts. Todd Bacastow IST 210: Organization of Data 2/17/ IST 210

The Relational Model. Why Study the Relational Model? Relational Database: Definitions

SQL. SQL DDL Statements

Database Systems: Design, Implementation, and Management Tenth Edition. Chapter 7 Introduction to Structured Query Language (SQL)

Announcements (September 18) SQL: Part II. Solution 1. Incomplete information. Solution 3? Solution 2. Homework #1 due today (11:59pm)

SQL DATA DEFINITION LANGUAGE

SQL: DDL. John Ortiz Cs.utsa.edu

Lecture 2 SQL. Instructor: Sudeepa Roy. CompSci 516: Data Intensive Computing Systems

SQL Fundamentals. Chapter 3. Class 03: SQL Fundamentals 1

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

SQL: Data De ni on. B0B36DBS, BD6B36DBS: Database Systems. h p:// Lecture 3

Lecture 3 SQL. Shuigeng Zhou. September 23, 2008 School of Computer Science Fudan University

Debapriyo Majumdar DBMS Fall 2016 Indian Statistical Institute Kolkata

Database Applications (15-415)

1) Introduction to SQL

SQL: Part II. Announcements (September 18) Incomplete information. CPS 116 Introduction to Database Systems. Homework #1 due today (11:59pm)

SQL: Data Definition Language

Silberschatz, Korth and Sudarshan See for conditions on re-use

Relational Database Languages

Lab # 4. Data Definition Language (DDL)

SQL. Lecture 4 SQL. Basic Structure. The select Clause. The select Clause (Cont.) The select Clause (Cont.) Basic Structure.

History of SQL. Relational Database Languages. Tuple relational calculus ALPHA (Codd, 1970s) QUEL (based on ALPHA) Datalog (rule-based, like PROLOG)

Structured Query Language (SQL)


Relational Model. Topics. Relational Model. Why Study the Relational Model? Linda Wu (CMPT )

Introduction to Data Management. Lecture #17 (SQL, the Never Ending Story )

Querying Data with Transact-SQL

Database Applications (15-415)

D B M G. SQL language: basics. Managing tables. Creating a table Modifying table structure Deleting a table The data dictionary Data integrity

ORACLE DATABASE 12C INTRODUCTION

CS2300: File Structures and Introduction to Database Systems

COGS 121 HCI Programming Studio. Week 03 - Tech Lecture

COSC344 Database Theory and Applications. Lecture 6 SQL Data Manipulation Language (1)

SQL: Part III. Announcements. Constraints. CPS 216 Advanced Database Systems

Outline. Textbook Chapter 6. Note 1. CSIE30600/CSIEB0290 Database Systems Basic SQL 2

Introduction to SQL. ECE 650 Systems Programming & Engineering Duke University, Spring 2018

Comp 5311 Database Management Systems. 4b. Structured Query Language 3

Chapter # 7 Introduction to Structured Query Language (SQL) Part I

CSIE30600 Database Systems Basic SQL 2. Outline

CS121 MIDTERM REVIEW. CS121: Relational Databases Fall 2017 Lecture 13

Midterm Review. Winter Lecture 13

Transcription:

Faloutsos 15-415 Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications C. Faloutsos Lecture#7 (cont d): Rel. model - SQL part3 General Overview - rel. model Formal query languages rel algebra and calculi Commercial query languages SQL QBE, (QUEL) Faloutsos 15-415 #2 Overview - detailed - SQL DML select, from, where, renaming, ordering, aggregate functions, nested subqueries insertion, deletion, update other parts: DDL, authorization, triggers embedded SQL Faloutsos 15-415 #3 1

Faloutsos 15-415 Reminder: our Mini-U db Faloutsos 15-415 #4 DML - insertions etc insert into student values ( 123, smith, main ) insert into student(ssn, name, address) values ( 123, smith, main ) Faloutsos 15-415 #5 DML - insertions etc bulk insertion: how to insert, say, a table of foreign-student s, in bulk? Faloutsos 15-415 #6 2

Faloutsos 15-415 DML - insertions etc bulk insertion: insert into student select ssn, name, address from foreign-student Faloutsos 15-415 #7 DML - deletion etc delete the record of smith Faloutsos 15-415 #8 DML - deletion etc delete the record of smith : delete from student where name= smith (careful - it deletes ALL the smith s!) Faloutsos 15-415 #9 3

Faloutsos 15-415 DML - update etc record the grade A for ssn=123 and course 15-415 update takes set grade= A where ssn= 123 and c-id= 15-415 (will set to A ALL such records) Faloutsos 15-415 #10 DML - view update consider the db-takes view: create view db-takes as (select * from takes where c-id= 15-415 ) view updates are tricky - typically, we can only update views that have no joins, nor aggregates even so, consider changing a c-id to 15-222... Faloutsos 15-415 #11 DML - joins so far: INNER joins, eg: select ssn, c-name from takes, class where takes.c-id = class.c-id Faloutsos 15-415 #12 4

Faloutsos 15-415 Equivalently: DML - joins select ssn, c-name from takes join class on takes.c-id = class.c-id Faloutsos 15-415 #13 Joins select [column list] from table_name [inner {left right full} outer ] join table_name on qualification_list where Faloutsos 15-415 #14 Reminder: our Mini-U db Faloutsos 15-415 #15 5

Faloutsos 15-415 Inner join o.s.: gone! Faloutsos 15-415 #16 Outer join Faloutsos 15-415 #17 Outer join select ssn, c-name from takes right outer join class on takes.cid=class.c-id Faloutsos 15-415 #18 6

Faloutsos 15-415 Outer join left outer join right outer join full outer join natural join Faloutsos 15-415 #19 Null Values null -> unknown, or inapplicable, (or ) Complications: 3-valued logic (true, false and unknown). null = null : false!! Faloutsos 15-415 #20 Overview - detailed - SQL DML select, from, where, renaming, ordering, aggregate functions, nested subqueries insertion, deletion, update other parts: DDL, authorization, triggers embedded SQL Faloutsos 15-415 #21 7

Faloutsos 15-415 Data Definition Language create table student (ssn char(9) not null, name char(30), address char(50), primary key (ssn) ) Faloutsos 15-415 #22 Data Definition Language create table r( A1 D1,, An Dn, integrity-constraint1, integrity-constraint-n) Faloutsos 15-415 #23 Data Definition Language Domains: char(n), varchar(n) int, numeric(p,d), real, double precision float, smallint date, time Faloutsos 15-415 #24 8

Faloutsos 15-415 Data Definition Language delete a table: difference between drop table student delete from student Faloutsos 15-415 #25 Data Definition Language modify a table: alter table student drop address alter table student add major char(10) Faloutsos 15-415 #26 Data Definition Language integrity constraints: primary key foreign key check(p) Faloutsos 15-415 #27 9

Faloutsos 15-415 Data Definition Language create table takes (ssn char(9) not null, c-id char(5) not null, grade char(1), primary key (ssn, c-id), check grade in ( A, B, C, D, F )) Faloutsos 15-415 #28 Referential Integrity constraints foreign keys - eg: create table takes( ssn char(9) not null, c-id char(5) not null, grade integer, primary key(ssn, c-id), foreign key ssn references student, foreign key c-id references class) Faloutsos 15-415 #29 Referential Integrity constraints foreign key ssn references student, foreign key c-id references class) Effect: expects that ssn to exist in student table blocks ops that violate that - how?? insertion? deletion/update? Faloutsos 15-415 #30 10

Faloutsos 15-415 Referential Integrity constraints foreign key ssn references student on delete cascade on update cascade,... -> eliminate all student enrollments other options (set to null, to default etc) Faloutsos 15-415 #31 Overview - detailed - SQL DML select, from, where, renaming, ordering, aggregate functions, nested subqueries insertion, deletion, update other parts: DDL, authorization, triggers embedded SQL Faloutsos 15-415 #32 Weapons for IC: assertions create assertion <assertion-name> check <predicate> triggers (~ assertions with teeth ) on operation, if condition, then action Faloutsos 15-415 #33 11

Faloutsos 15-415 Triggers - example define trigger zerograde on update takes (if new takes.grade < 0 then takes.grade = 0) Faloutsos 15-415 #34 Triggers - discussion more complicated: managers have higher salaries than their subordinates - a trigger can automatically boost mgrs salaries triggers: tricky (infinite loops) Faloutsos 15-415 #35 Overview - detailed - SQL DML select, from, where, renaming, ordering, aggregate functions, nested subqueries insertion, deletion, update other parts: DDL, authorization, triggers embedded SQL Faloutsos 15-415 #36 12

Faloutsos 15-415 Authorization grant <priv.-list> on <table-name> to <user-list> privileges for tuples: read / insert / delete / update privileges for tables: create, drop, index Faloutsos 15-415 #37 Authorization cont d variations: with grant option revoke <priv.-list> on <t-name> from <user_ids> Faloutsos 15-415 #38 Overview - detailed - SQL DML select, from, where, renaming, ordering, aggregate functions, nested subqueries insertion, deletion, update other parts: DDL, authorization, triggers embedded SQL; application development Faloutsos 15-415 #39 13

Faloutsos 15-415 Embedded SQL from within a host language (eg., C, VB ) EXEC SQL <emb. SQL stmnt> END-EXEC Q: why do we need embedded SQL?? Faloutsos 15-415 #40 Embedded SQL SQL returns sets; host language expects a tuple - impedance mismatch! solution: cursor, ie., a pointer over the set of tuples. example: Faloutsos 15-415 #41 Embedded SQL main(){ EXEC SQL declare c cursor for select * from student END-EXEC Faloutsos 15-415 #42 14

Faloutsos 15-415 Embedded SQL - ctn d EXEC SQL open c END-EXEC while(!sqlerror ){ } EXEC SQL fetch c into :cssn, :cname, :cad END-EXEC fprintf(, cssn, cname, cad); Faloutsos 15-415 #43 Embedded SQL - ctn d EXEC SQL close c END-EXEC } /* end main() */ Faloutsos 15-415 #44 Dynamic SQL main(){ /* set all grades to user s input */ char *sqlcmd= update takes set grade =? ; EXEC SQL prepare dynsql from :sqlcmd ; char inputgrade[5]= a ; EXEC SQL execute dynsql using :inputgrade; } /* end main() */ Faloutsos 15-415 #45 15

Faloutsos 15-415 Overview - detailed - SQL DML select, from, where, renaming, ordering, aggregate functions, nested subqueries insertion, deletion, update other parts: DDL, authorization, triggers embedded SQL; application development Faloutsos 15-415 #46 Overview concepts of SQL programs walkthrough of Create.java walkthrough of showall.java Faloutsos 15-415 #47 Outline of an SQL application establish connection with db server authenticate (user/password) execute SQL statement(s) process results close connection Faloutsos 15-415 #48 16

Faloutsos 15-415 Pictorially: andrew machine eg., sun4.andrew JDBC/ODBC dbclass.intro.cs.cmu.edu Create.java Create.class Windows NT box; With, say, ORACLE Server Faloutsos 15-415 #49 Create.java Purpose: to load the parent-child table legend: interesting observation very important point Faloutsos 15-415 #50 Walk-through Create.java Faloutsos 15-415 #51 17

Faloutsos 15-415 Walk-through Create.java Faloutsos 15-415 #52 Walk-through Create.java Faloutsos 15-415 #53 Walk-through Create.java rest of program: read input file insert one tuple at a time close connection Faloutsos 15-415 #54 18

Faloutsos 15-415 Walk-through Create.java Faloutsos 15-415 #55 Overview concepts of SQL programs walkthrough of Create.java walkthrough of showall.java Faloutsos 15-415 #56 Walk-through showall.java purpose: print all (parent, child) pairs Faloutsos 15-415 #57 19

Faloutsos 15-415 Walk-through showall.java Faloutsos 15-415 #58 Walk-through showall.java Faloutsos 15-415 #59 Conclusions Outline of an SQL application: establish connection with db server authenticate (user/password) execute SQL statement(s) (using cursors) process results close connection Faloutsos 15-415 #60 20