Information Systems Engineering. SQL Structured Query Language DML Data Manipulation (sub)language

Size: px
Start display at page:

Download "Information Systems Engineering. SQL Structured Query Language DML Data Manipulation (sub)language"

Transcription

1 Information Systems Engineering SQL Structured Query Language DML Data Manipulation (sub)language 1

2 DML SQL subset for data manipulation (DML) includes four main operations SELECT - used for querying a database INSERT - used for adding tuples in a relation DELETE - used for eliminating tuples from a relation UPDATE - used for changing attributes values of tuples in a relation The SELECT statement in its various forms and clauses, implements the relational algebra operations Most DBMS s allow: The emission of single SQL statements The definition of parameterized sequences of statements known as stored procedures MIB - ESIN apm@feup 2

3 SELECT statement Basic form of a SELECT statement Implements a sequence of a relational selection and a projection It has the form SELECT L FROM R [WHERE C] The WHERE clause is optional L is a list of attributes from relation R An * can be used to denote all attributes of R C is a boolean condition It implements the relational operations L ( C (R)) Examples from the Movie World database: SELECT * FROM Movies WHERE studio_name = Disney AND year = 1990 SELECT title, length FROM Movies WHERE length > 120 MIB - ESIN apm@feup 3

4 The conditions The condition C from the WHERE clause Has operands that can be Attributes from relation R Constants Results of pre-defined functions Has operators that can be Comparisons (=, <>, <, >, <=, >=) Arithmetic (+, -, *, /, %) String concatenation (+ in SQL Server, can be ) Logic (OR, AND, NOT, BETWEEN, IN, LIKE) Some examples (year>1970 OR length<90) AND studio_name= MGM (year-1930)*(year-1930) <= 100 year BETWEEN 1939 AND 1945 genre IN ( Drama, SciFi, Comedy ) MIB - ESIN apm@feup 4

5 The operator LIKE LIKE verifies if a string matches a pattern The pattern can be specified using special constructions that represent generic sequences of characters (wild cards) _ - represents any single character % - represents any sequence of zero or more characters [...] - any single character within a range (ex: [a-f]) or set (ex: [abcxyz]) [^...] - any single character not within a range or set (exs: [^f-k], [^fghj]) Example: name LIKE Zh[ae]ng To represent characters that appear in the wildcards we need to precede them with another character specified in a ESCAPE clause Example: phone LIKE %415!-% ESCAPE! MIB - ESIN apm@feup 5

6 The NULL value Some attributes can have the value NULL NULL may be interpreted as unknown or inapplicable Arithmetic or other non-comparison operators between a NULL and other value results in NULL It includes some non expected results: 0*NULL = NULL, year - year is equal to NULL (and not 0) if year is NULL Comparisons between a NULL and other value results in the special boolean UNKNOWN To test if a value is NULL we can not use the = operator (the result would be UNKNOWN) We must use the special operator IS: year IS NULL (result is TRUE or FALSE) phone IS NOT NULL (idem) MIB - ESIN apm@feup 6

7 The UNKNOWN value Truth table for logical operations considering the UNKNOWN value x y x AND y x OR y NOT x TRUE TRUE TRUE TRUE FALSE TRUE UNKNOWN UNKNOWN TRUE FALSE TRUE FALSE FALSE TRUE FALSE UNKNOWN TRUE UNKNOWN TRUE UNKNOWN UNKNOWN UNKNOWN UNKNOWN UNKNOWN UNKNOWN UNKNOWN FALSE FALSE UNKNOWN UNKNOWN FALSE TRUE FALSE TRUE TRUE FALSE UNKNOWN FALSE UNKNOWN TRUE FALSE FALSE FALSE FALSE TRUE Rational We can think in the following values for FALSE=0, UNKNOWN=0,5 and TRUE=1 And in following operations AND min, OR max and NOT x 1-x MIB - ESIN apm@feup 7

8 Projection and renaming The LIST L in SELECT can be used to perform an extended projection operation The renaming of the output attributes is performed appending AS <new_name> We can specify expressions built with attributes and constants and output names with AS <new_name> Examples: SELECT title AS name, length AS duration FROM Movies WHERE studio_name= Paramount AND year=1990 SELECT title, length* AS duration, Hrs AS in_hours FROM Movies title duration in_hours Pretty Woman Hrs MIB - ESIN apm@feup 8

9 Storing results The results of a SELECT can be stored as a new table in the database There is an INTO clause for storing results in a new table: SELECT L [INTO S] FROM R [WHERE C] S is the name of the resultant relation (table) Sometimes the results of a SELECT can produce duplicate tuples To eliminate duplicates ( (...)) from the results of a SELECT statement we need to add the keyword DISTINCT after SELECT SELECT [DISTINCT] L FROM R Example: SELECT DISTINCT title FROM Movies WHERE studio_name = MGM MIB - ESIN apm@feup 9

10 Ordering results Ordering the tuples in the resultant relation can be accomplished with the ORDER BY clause (must be the last in a SELECT) SELECT L FROM R [WHERE C] [ORDER BY (<expr> [ASC DESC]) n ] <expr> can be an attribute name or an expression involving attributes By default the ordering is ascending but can be descending with the suffix DESC Examples: SELECT * FROM Movies WHERE studio_name = MGM ORDER BY length DESC, title SELECT * FROM R ORDER BY a+b DESC MIB - ESIN apm@feup 10

11 More than one relation in FROM In the FROM clause we can have more than one relation The statement performs a product between them The attributes in the SELECT list L can be from any relation The condition C in WHERE can be built with any of the relations attributes The result is a theta join with condition C Example - Consider the following schema Movies(title, year, length, genre, studio_name, producer_id) MovieExec(id, name, address, worth) Query: SELECT name FROM Movies, MovieExec WHERE title = Star Wars AND producer_id = id The result is the name of the producer of Star Wars MIB - ESIN apm@feup 11

12 Disambiguating Disambiguating attributes Example - Married Actors with Movie Executives Add the following relation to the two previous ones: Actor(name, address, gender, birthdate) name and address are common to MovieExec SELECT Actor.name, MovieExec.name FROM Actor, MovieExec WHERE Actor.address = MovieExec.address Using the same relation more than once Example - Married actors SELECT Actor1.name, Actor2.name FROM Actor Actor1, Actor Actor2 WHERE Actor1.address = Actor2.address AND Actor1.name < Actor2.name It is equivalent to R(Actor1.name,Actor2.name) ( A1,A5 ( A2=A6 A1<A5 ( M(A1,A2,A3,A4) (Actor) N(A5,A6,A7,A8) (Actor)))) MIB - ESIN apm@feup 12

13 Set operations Set operations (,, -) can be performed between the results of 2 queries (SELECT statements) The query results must have the same attributes and types The operations are noted as UNION, INTERSECT and EXCEPT Results don t have duplicates To retain duplicates in a union use UNION ALL Example (SELECT name, address FROM Actor WHERE gender = F ) INTERSECT (SELECT name, address FROM MovieExec WHERE worth > ) MIB - ESIN apm@feup 13

14 Subqueries Subqueries are SELECT statements inside other SELECT statement We can use subqueries in 3 circunstances: To produce a scalar value inside a condition C in a WHERE clause To produce a relation used in a WHERE clause (with operators IN, EXISTS, ALL or ANY) To produce a relation used in a FROM clause Subqueries are specified within parenthesis (SELECT L FROM R [WHERE C]) We can have many levels of subqueries MIB - ESIN apm@feup 14

15 Subqueries as scalar values It can be used in a WHERE clause, as if it were a constant The scalar is produced if the query produces only one tuple and we project only one attribute from it Example - The producer of a movie We have already seen that we can find him with the query: SELECT name FROM Movies, MovieExec WHERE title = Star Wars AND producer_id = id We could also formulate the following equivalent: SELECT name FROM MovieExec WHERE id = (SELECT producer_id FROM Movies WHERE title = Star Wars ) MIB - ESIN apm@feup 15

16 Relations as subqueries Conditions can include relations with some operators EXISTS R is a condition that is TRUE if R is not empty val IN R - is TRUE if val is equal to one of the tuples of R val <comparison> ALL R - is TRUE if the <comparison> is verified for every tuple in R val <comparison> ANY R - is TRUE if the <comparison> is verified for at least one tuple of R For the IN, ALL and ANY operators R must be a relation with nr. of attributes equal to sequence val Some equivalences: val IN R val = ANY R val NOT IN R val <> ALL R MIB - ESIN apm@feup 16

17 Example Find the producers of Harrison Ford s movies Assuming relation ActsIn(title, year, name) SELECT name FROM MovieExec WHERE id IN (SELECT producer_id FROM Movies WHERE (title, year) IN (SELECT title, year FROM ActsIn WHERE name = Harrison Ford ) ) Find movies with remakes SELECT title FROM Movies First WHERE year < ANY (SELECT year FROM Movies WHERE title = First.title) First.title is concretized with each title existing in the relation Movies MIB - ESIN apm@feup 17

18 Subqueries in FROM A subquery producing a relation can enter in the FROM clause of another SELECT These subqueries must have an appended name Example Reformulation of finding the producers of Harrison Ford s movies SELECT name FROM MovieExec, (SELECT producer_id FROM Movies, ActsIn WHERE Movies.title = ActsIn.title AND Movies.year = ActsIn.year AND name = Harrison Ford ) Prod WHERE id = Prod.producer_id MIB - ESIN apm@feup 18

19 JOINS as Relations in FROM (1) Product We can use a product of two relations as a relation in a FROM clause Theta join The construction is done with the CROSS JOIN operator: SELECT title, year, name FROM Movies CROSS JOIN ActsIn We can build a theta join as a new relation to use in a FROM clause Outer joins General form: R1 [INNER] JOIN R2 ON C where C is a condition using the attributes of R1 and R2 General form: R1 {LEFT RIGHT FULL} [OUTER] JOIN R2 ON C It adds to the result tuples that were not paired MIB - ESIN apm@feup 19

20 JOINS as Relations in FROM (2) Natural join The natural join implicitly equates attributes with the same name Only one of each pair of equated attributes is retained The natural join can be constructed with a theta join (how?) Some DBMSs support directly natural joins (SQL Server doesn t) When it is supported it has the general form: R1 NATURAL JOIN R2 Natural outer join An outer join applied after a natural join Some DBMSs don t support directly this form (SQL Server and others) General form: R1 NATURAL {FULL LEFT RIGHT} [OUTER] JOIN R2 MIB - ESIN apm@feup 20

21 Examples The studios each actor has worked for SELECT DISTINCT name, studio_name FROM Movies JOIN ActsIn ON Movies.title = ActIn.title AND Movies.year = ActsIn.year Actors and Movie Executives SELECT name, address FROM Actor NATURAL FULL JOIN MovieExec If the DBMS doesn t support natural outer joins: (SELECT Actor.name, Actor.address FROM Actor LEFT JOIN MovieExec ON Actor.name = MovieExec.name AND Actor.address = MovieExec.Address) UNION (SELECT Actor.name, Actor.address FROM Actor RIGHT JOIN MovieExec ON Actor.name = MovieExec.name AND Actor.address = MovieExec.Address) MIB - ESIN apm@feup 21

22 Aggregation SQL support five aggregation operations SUM, AVG, MIN, MAX, COUNT They can be applied to one attribute that makes sense To count all the tuples in the relation use COUNT(*) To count all non-null tuples in an attribute we use COUNT(A) We can take into account only non-duplicate values using DISTINCT inside the operator, like COUNT(DISTINCT A) (rarely makes sense for other operations) Examples SELECT AVG(worth) FROM MovieExec SELECT COUNT(*) FROM ActsIn SELECT COUNT(DISTINCT name) FROM ActsIn MIB - ESIN apm@feup 22

23 Grouping Grouping in SQL implements the relational algebra operator L It uses a new clause in the SELECT statement specified immediately after the WHERE clause SELECT L1 FROM R [WHERE C] [GROUP BY L2] After constructing a resultant relation from R and C the tuples are grouped in the values of attributes present in list L2 The final result will contain columns listed in L1 (which must also be present in L2) and aggregations of any attribute, taken by group, and also present in list L1 MIB - ESIN apm@feup 23

24 Examples Total length of movies produced by each studio SELECT studio_name, SUM(length) FROM Movies GROUP BY studio_name List of studios that have produced movies SELECT studio_name FROM Movies GROUP BY studio_name Total length of movies produced by each producer SELECT name, SUM(length) FROM MovieExec, Movies WHERE id = producer_id GROUP BY name MIB - ESIN apm@feup 24

25 NULLs, Aggregation and Grouping There are some special rules concerning NULL values NULLs are ignored in aggregation operations except when we use COUNT(*) The NULL value is treated as an ordinary value when the groups are formed in the GROUP BY clause (we can have a group of NULLs) Aggregation operations, except COUNTs, performed over empty relations (0 tuples) result in a value of NULL The COUNT aggregation operation performed over an empty relation results in 0 MIB - ESIN apm@feup 25

26 Examples Consider the relation R(A, B) defined as follows: A NULL B NULL Query SELECT A, COUNT(B) FROM R GROUP BY A (NULL, 0) Another query SELECT A, SUM(B) FROM R GROUP BY A (NULL, NULL) MIB - ESIN apm@feup 26

27 Conditions in groups After the group formation, we can eliminate some of them, specifying a condition, usually using the results performed by aggregations on the group That s the role of the HAVING clause specified after the GROUP BY clause Rules about the condition in the HAVING clause Can have aggregation operators that apply only to the tuples of each group Any attribute can be aggregated but only attributes present in the GROUP BY clause can appear without an aggregation operator General form: SELECT L1 FROM R [WHERE C1] [GROUP BY L2] [HAVING C2] MIB - ESIN apm@feup 27

28 Example Total length of movies produced by producers that have movies before 1930 SELECT name, SUM(length) FROM MovieExec, Movies WHERE id = producer_id GROUP BY name HAVING MIN(year) < 1930 MIB - ESIN apm@feup 28

29 All main clauses of a SELECT The full form of the SELECT statement is SELECT L1 [INTO Res] FROM R n [WHERE C1] [GROUP BY L2] [HAVING C2] [ORDER BY L3] The R s in FROM can be JOINs We can rename attributes (with AS) We can rename relations We can use subqueries in R s and C s We can eliminate duplicates (with DISTINCT) MIB - ESIN apm@feup 29

30 Database modifications (1) Adding tuples to a relation It s done with an SQL INSERT statement General form: INSERT INTO R(A 1,, A n ) VALUES (v 1, v n ) A tuple is created in R with value v i for attribute A i If an attribute is missing it is created with a default value The list A 1,, A n can be omitted if the values follow the order of the schema Example: INSERT INTO ActsIn VALUES ( The Maltese Falcon, 1942, Sydney Greenstreet ) MIB - ESIN apm@feup 30

31 Database modifications (2) It is possible to insert several tuples, obtaining them from a subquery: INSERT INTO Studio(name) SELECT DISTINCT name FROM Movies WHERE name NOT IN (SELECT name FROM Studio) Delete tuples from a relation The elimination of tuples from a relation is done with the SQL DELETE statement General form: DELETE FROM R WHERE C All tuples belonging to R and satisfying the condition C will be eliminated MIB - ESIN apm@feup 31

32 Database modifications (3) Updating tuples The values of tuples already present in a relation can be modified using the SQL UPDATE statement General form: UPDATE R SET <assignment> n [WHERE C] <assignment> A = expression, where A is an attribute of R The <assignment> n only applies to tuples satisfying the condition C if it exists Example: prepend Pres. to the names of studio s presidents UPDATE MovieExec SET name = Pres. + name WHERE id IN (SELECT pres_id FROM Studio) MIB - ESIN apm@feup 32

Set Operations, Union

Set Operations, Union Set Operations, Union The common set operations, union, intersection, and difference, are available in SQL. The relation operands must be compatible in the sense that they have the same attributes (same

More information

Information Systems Engineering. SQL Structured Query Language DDL Data Definition (sub)language

Information Systems Engineering. SQL Structured Query Language DDL Data Definition (sub)language Information Systems Engineering SQL Structured Query Language DDL Data Definition (sub)language 1 SQL Standard Language for the Definition, Querying and Manipulation of Relational Databases on DBMSs Its

More information

SQL queries II. Set operations and joins

SQL queries II. Set operations and joins SQL queries II Set operations and joins 1. Restrictions on aggregation functions 2. Nulls in aggregates 3. Duplicate elimination in aggregates REFRESHER 1. Restriction on SELECT with aggregation If any

More information

Relational Algebra. Spring 2012 Instructor: Hassan Khosravi

Relational Algebra. Spring 2012 Instructor: Hassan Khosravi Relational Algebra Spring 2012 Instructor: Hassan Khosravi Querying relational databases Lecture given by Dr. Widom on querying Relational Models 2.2 2.1 An Overview of Data Models 2.1.1 What is a Data

More information

Information Systems for Engineers. Exercise 10. ETH Zurich, Fall Semester Hand-out Due

Information Systems for Engineers. Exercise 10. ETH Zurich, Fall Semester Hand-out Due Information Systems for Engineers Exercise 10 ETH Zurich, Fall Semester 2017 Hand-out 08.12.2017 Due 15.12.2017 1. (Exercise 8.1.1 in [1]) Movies(title, year, length, genre, studioname, producercertnumber)

More information

Querying Data with Transact SQL

Querying Data with Transact SQL Course 20761A: Querying Data with Transact SQL Course details Course Outline Module 1: Introduction to Microsoft SQL Server 2016 This module introduces SQL Server, the versions of SQL Server, including

More information

Joins, NULL, and Aggregation

Joins, NULL, and Aggregation Joins, NULL, and Aggregation FCDB 6.3 6.4 Dr. Chris Mayfield Department of Computer Science James Madison University Jan 29, 2018 Announcements 1. Your proposal is due Friday in class Each group brings

More information

Information Systems Engineering. Other Database Concepts

Information Systems Engineering. Other Database Concepts Information Systems Engineering Other Database Concepts 1 Views In a database it is possible to create virtual tables called views Views are not stored in the database They are defined and computed from

More information

4. SQL - the Relational Database Language Standard 4.3 Data Manipulation Language (DML)

4. SQL - the Relational Database Language Standard 4.3 Data Manipulation Language (DML) Since in the result relation each group is represented by exactly one tuple, in the select clause only aggregate functions can appear, or attributes that are used for grouping, i.e., that are also used

More information

Simple SQL Queries (2)

Simple SQL Queries (2) Simple SQL Queries (2) Review SQL the structured query language for relational databases DDL: data definition language DML: data manipulation language Create and maintain tables CMPT 354: Database I --

More information

Querying Data with Transact-SQL

Querying Data with Transact-SQL Querying Data with Transact-SQL Course: 20761 Course Details Audience(s): IT Professional(s) Technology: Microsoft SQL Server 2016 Duration: 24 HRs. ABOUT THIS COURSE This course is designed to introduce

More information

SQL: Data Manipulation Language. csc343, Introduction to Databases Diane Horton Winter 2017

SQL: Data Manipulation Language. csc343, Introduction to Databases Diane Horton Winter 2017 SQL: Data Manipulation Language csc343, Introduction to Databases Diane Horton Winter 2017 Introduction So far, we have defined database schemas and queries mathematically. SQL is a formal language for

More information

CMP-3440 Database Systems

CMP-3440 Database Systems CMP-3440 Database Systems Relational DB Languages Relational Algebra, Calculus, SQL Lecture 05 zain 1 Introduction Relational algebra & relational calculus are formal languages associated with the relational

More information

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

Chapter 3: Introduction to SQL. Chapter 3: Introduction to SQL Chapter 3: Introduction to SQL Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Chapter 3: Introduction to SQL Overview of The SQL Query Language Data Definition Basic Query

More information

SQL: csc343, Introduction to Databases Renée J. Miller and Fatemeh Nargesian and Sina Sina Meraji. Winter 2018

SQL: csc343, Introduction to Databases Renée J. Miller and Fatemeh Nargesian and Sina Sina Meraji. Winter 2018 SQL: csc343, Introduction to Databases Renée J. Miller and Fatemeh Nargesian and Sina Sina Meraji Winter 2018 Introduction So far, we have defined database schemas and queries mathematically. SQL is a

More information

Relational Model, Relational Algebra, and SQL

Relational Model, Relational Algebra, and SQL Relational Model, Relational Algebra, and SQL August 29, 2007 1 Relational Model Data model. constraints. Set of conceptual tools for describing of data, data semantics, data relationships, and data integrity

More information

Relational Algebra and SQL

Relational Algebra and SQL Relational Algebra and SQL Relational Algebra. This algebra is an important form of query language for the relational model. The operators of the relational algebra: divided into the following classes:

More information

Chapter 3: Introduction to SQL

Chapter 3: Introduction to SQL Chapter 3: Introduction to SQL Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Chapter 3: Introduction to SQL Overview of the SQL Query Language Data Definition Basic Query

More information

SQL: Data Querying. B0B36DBS, BD6B36DBS: Database Systems. h p://www.ksi.m.cuni.cz/~svoboda/courses/172-b0b36dbs/ Lecture 4

SQL: Data Querying. B0B36DBS, BD6B36DBS: Database Systems. h p://www.ksi.m.cuni.cz/~svoboda/courses/172-b0b36dbs/ Lecture 4 B0B36DBS, BD6B36DBS: Database Systems h p://www.ksi.m.cuni.cz/~svoboda/courses/172-b0b36dbs/ Lecture 4 SQL: Data Querying Mar n Svoboda mar n.svoboda@fel.cvut.cz 20. 3. 2018 Czech Technical University

More information

Relational Databases

Relational Databases Relational Databases Jan Chomicki University at Buffalo Jan Chomicki () Relational databases 1 / 49 Plan of the course 1 Relational databases 2 Relational database design 3 Conceptual database design 4

More information

SQL Data Querying and Views

SQL Data Querying and Views Course A7B36DBS: Database Systems Lecture 04: SQL Data Querying and Views Martin Svoboda Faculty of Electrical Engineering, Czech Technical University in Prague Outline SQL Data manipulation SELECT queries

More information

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

Lecture 3 SQL. Shuigeng Zhou. September 23, 2008 School of Computer Science Fudan University Lecture 3 SQL Shuigeng Zhou September 23, 2008 School of Computer Science Fudan University Outline Basic Structure Set Operations Aggregate Functions Null Values Nested Subqueries Derived Relations Views

More information

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

SQL. Lecture 4 SQL. Basic Structure. The select Clause. The select Clause (Cont.) The select Clause (Cont.) Basic Structure. SL Lecture 4 SL Chapter 4 (Sections 4.1, 4.2, 4.3, 4.4, 4.5, 4., 4.8, 4.9, 4.11) Basic Structure Set Operations Aggregate Functions Null Values Nested Subqueries Derived Relations Modification of the Database

More information

Simple queries Set operations Aggregate operators Null values Joins Query Optimization. John Edgar 2

Simple queries Set operations Aggregate operators Null values Joins Query Optimization. John Edgar 2 CMPT 354 Simple queries Set operations Aggregate operators Null values Joins Query Optimization John Edgar 2 Data Manipulation Language (DML) to Write queries Insert, delete and modify records Data Definition

More information

5.2 E xtended Operators of R elational Algebra

5.2 E xtended Operators of R elational Algebra 5.2. EXTENDED OPERATORS OF RELATIONAL ALG EBRA 213 i)

More information

NULLs & Outer Joins. Objectives of the Lecture :

NULLs & Outer Joins. Objectives of the Lecture : Slide 1 NULLs & Outer Joins Objectives of the Lecture : To consider the use of NULLs in SQL. To consider Outer Join Operations, and their implementation in SQL. Slide 2 Missing Values : Possible Strategies

More information

Introduction to Databases, Fall 2005 IT University of Copenhagen. Lecture 2: Relations and SQL. September 5, Lecturer: Rasmus Pagh

Introduction to Databases, Fall 2005 IT University of Copenhagen. Lecture 2: Relations and SQL. September 5, Lecturer: Rasmus Pagh Introduction to Databases, Fall 2005 IT University of Copenhagen Lecture 2: Relations and SQL September 5, 2005 Lecturer: Rasmus Pagh Today s lecture What, exactly, is the relational data model? What are

More information

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

The SQL data-definition language (DDL) allows defining : Introduction to SQL Introduction to SQL Overview of the SQL Query Language Data Definition Basic Query Structure Additional Basic Operations Set Operations Null Values Aggregate Functions Nested Subqueries

More information

Database Systems. Basics of the Relational Data Model

Database Systems. Basics of the Relational Data Model Database Systems Relational Design Theory Jens Otten University of Oslo Jens Otten (UiO) Database Systems Relational Design Theory INF3100 Spring 18 1 / 30 Basics of the Relational Data Model title year

More information

Chapter 4: SQL. Basic Structure

Chapter 4: SQL. Basic Structure Chapter 4: SQL Basic Structure Set Operations Aggregate Functions Null Values Nested Subqueries Derived Relations Views Modification of the Database Joined Relations Data Definition Language Embedded SQL

More information

Chapter 3: Introduction to SQL

Chapter 3: Introduction to SQL Chapter 3: Introduction to SQL Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Chapter 3: Introduction to SQL Overview of the SQL Query Language Data Definition Basic Query

More information

Relational Database: The Relational Data Model; Operations on Database Relations

Relational Database: The Relational Data Model; Operations on Database Relations Relational Database: The Relational Data Model; Operations on Database Relations Greg Plaxton Theory in Programming Practice, Spring 2005 Department of Computer Science University of Texas at Austin Overview

More information

Course Modules for MCSA: SQL Server 2016 Database Development Training & Certification Course:

Course Modules for MCSA: SQL Server 2016 Database Development Training & Certification Course: Course Modules for MCSA: SQL Server 2016 Database Development Training & Certification Course: 20762C Developing SQL 2016 Databases Module 1: An Introduction to Database Development Introduction to the

More information

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

Carnegie Mellon Univ. Dept. of Computer Science Database Applications. General Overview - rel. model. Overview - detailed - SQL Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications Faloutsos Lecture#6: Rel. model - SQL part1 General Overview - rel. model Formal query languages rel algebra and calculi Commercial

More information

CS 582 Database Management Systems II

CS 582 Database Management Systems II Review of SQL Basics SQL overview Several parts Data-definition language (DDL): insert, delete, modify schemas Data-manipulation language (DML): insert, delete, modify tuples Integrity View definition

More information

DATABASE TECHNOLOGY - 1MB025

DATABASE TECHNOLOGY - 1MB025 1 DATABASE TECHNOLOGY - 1MB025 Fall 2004 An introductory course on database systems http://user.it.uu.se/~udbl/dbt-ht2004/ alt. http://www.it.uu.se/edu/course/homepage/dbastekn/ht04/ Kjell Orsborn Uppsala

More information

Chapter 4 SQL. Database Systems p. 121/567

Chapter 4 SQL. Database Systems p. 121/567 Chapter 4 SQL Database Systems p. 121/567 General Remarks SQL stands for Structured Query Language Formerly known as SEQUEL: Structured English Query Language Standardized query language for relational

More information

Querying Data with Transact-SQL

Querying Data with Transact-SQL Course 20761A: Querying Data with Transact-SQL Page 1 of 5 Querying Data with Transact-SQL Course 20761A: 2 days; Instructor-Led Introduction The main purpose of this 2 day instructor led course is to

More information

CSC Web Programming. Introduction to SQL

CSC Web Programming. Introduction to SQL CSC 242 - Web Programming Introduction to SQL SQL Statements Data Definition Language CREATE ALTER DROP Data Manipulation Language INSERT UPDATE DELETE Data Query Language SELECT SQL statements end with

More information

DATABASTEKNIK - 1DL116

DATABASTEKNIK - 1DL116 1 DATABASTEKNIK - 1DL116 Spring 2004 An introductury course on database systems http://user.it.uu.se/~udbl/dbt-vt2004/ Kjell Orsborn Uppsala Database Laboratory Department of Information Technology, Uppsala

More information

DATABASE TECHNOLOGY - 1MB025

DATABASE TECHNOLOGY - 1MB025 1 DATABASE TECHNOLOGY - 1MB025 Fall 2005 An introductury course on database systems http://user.it.uu.se/~udbl/dbt-ht2005/ alt. http://www.it.uu.se/edu/course/homepage/dbastekn/ht05/ Kjell Orsborn Uppsala

More information

Chapter 3: SQL. Chapter 3: SQL

Chapter 3: SQL. Chapter 3: SQL Chapter 3: SQL Database System Concepts, 5th Ed. See www.db-book.com for conditions on re-use Chapter 3: SQL Data Definition Basic Query Structure Set Operations Aggregate Functions Null Values Nested

More information

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

Silberschatz, Korth and Sudarshan See   for conditions on re-use Chapter 3: SQL Database System Concepts, 5th Ed. See www.db-book.com for conditions on re-use Chapter 3: SQL Data Definition Basic Query Structure Set Operations Aggregate Functions Null Values Nested

More information

The SQL database language Parts of the SQL language

The SQL database language Parts of the SQL language DATABASE DESIGN I - 1DL300 Fall 2011 Introduction to SQL Elmasri/Navathe ch 4,5 Padron-McCarthy/Risch ch 7,8,9 An introductory course on database systems http://www.it.uu.se/edu/course/homepage/dbastekn/ht11

More information

Ian Kenny. November 28, 2017

Ian Kenny. November 28, 2017 Ian Kenny November 28, 2017 Introductory Databases Relational Algebra Introduction In this lecture we will cover Relational Algebra. Relational Algebra is the foundation upon which SQL is built and is

More information

SQL - Data Query language

SQL - Data Query language SQL - Data Query language Eduardo J Ruiz October 20, 2009 1 Basic Structure The simple structure for a SQL query is the following: select a1...an from t1... tr where C Where t 1... t r is a list of relations

More information

Querying Data with Transact SQL Microsoft Official Curriculum (MOC 20761)

Querying Data with Transact SQL Microsoft Official Curriculum (MOC 20761) Querying Data with Transact SQL Microsoft Official Curriculum (MOC 20761) Course Length: 3 days Course Delivery: Traditional Classroom Online Live MOC on Demand Course Overview The main purpose of this

More information

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

Database Systems: Design, Implementation, and Management Tenth Edition. Chapter 7 Introduction to Structured Query Language (SQL) Database Systems: Design, Implementation, and Management Tenth Edition Chapter 7 Introduction to Structured Query Language (SQL) Objectives In this chapter, students will learn: The basic commands and

More information

Chapter 3: SQL. Database System Concepts, 5th Ed. Silberschatz, Korth and Sudarshan See for conditions on re-use

Chapter 3: SQL. Database System Concepts, 5th Ed. Silberschatz, Korth and Sudarshan See  for conditions on re-use Chapter 3: SQL Database System Concepts, 5th Ed. See www.db-book.com for conditions on re-use Chapter 3: SQL Data Definition Basic Query Structure Set Operations Aggregate Functions Null Values Nested

More information

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

WHAT IS SQL. Database query language, which can also: Define structure of data Modify data Specify security constraints SQL KEREM GURBEY WHAT IS SQL Database query language, which can also: Define structure of data Modify data Specify security constraints DATA DEFINITION Data-definition language (DDL) provides commands

More information

Oracle Database: SQL and PL/SQL Fundamentals NEW

Oracle Database: SQL and PL/SQL Fundamentals NEW Oracle Database: SQL and PL/SQL Fundamentals NEW Duration: 5 Days What you will learn This Oracle Database: SQL and PL/SQL Fundamentals training delivers the fundamentals of SQL and PL/SQL along with the

More information

Oracle Database 11g: SQL and PL/SQL Fundamentals

Oracle Database 11g: SQL and PL/SQL Fundamentals Oracle University Contact Us: +33 (0) 1 57 60 20 81 Oracle Database 11g: SQL and PL/SQL Fundamentals Duration: 5 Days What you will learn In this course, students learn the fundamentals of SQL and PL/SQL

More information

Relational Algebra. Procedural language Six basic operators

Relational Algebra. Procedural language Six basic operators Relational algebra Relational Algebra Procedural language Six basic operators select: σ project: union: set difference: Cartesian product: x rename: ρ The operators take one or two relations as inputs

More information

NESTED QUERIES AND AGGREGATION CHAPTER 5 (6/E) CHAPTER 8 (5/E)

NESTED QUERIES AND AGGREGATION CHAPTER 5 (6/E) CHAPTER 8 (5/E) 1 NESTED QUERIES AND AGGREGATION CHAPTER 5 (6/E) CHAPTER 8 (5/E) 2 LECTURE OUTLINE More Complex SQL Retrieval Queries Self-Joins Renaming Attributes and Results Grouping, Aggregation, and Group Filtering

More information

Oracle Database: SQL and PL/SQL Fundamentals Ed 2

Oracle Database: SQL and PL/SQL Fundamentals Ed 2 Oracle University Contact Us: Local: 1800 103 4775 Intl: +91 80 67863102 Oracle Database: SQL and PL/SQL Fundamentals Ed 2 Duration: 5 Days What you will learn This Oracle Database: SQL and PL/SQL Fundamentals

More information

NESTED QUERIES AND AGGREGATION CHAPTER 5 (6/E) CHAPTER 8 (5/E)

NESTED QUERIES AND AGGREGATION CHAPTER 5 (6/E) CHAPTER 8 (5/E) 1 NESTED QUERIES AND AGGREGATION CHAPTER 5 (6/E) CHAPTER 8 (5/E) 2 LECTURE OUTLINE More Complex SQL Retrieval Queries Self-Joins Renaming Attributes and Results Grouping, Aggregation, and Group Filtering

More information

Basic Structure Set Operations Aggregate Functions Null Values Nested Subqueries Derived Relations Views Modification of the Database Data Definition

Basic Structure Set Operations Aggregate Functions Null Values Nested Subqueries Derived Relations Views Modification of the Database Data Definition Chapter 4: SQL Basic Structure Set Operations Aggregate Functions Null Values Nested Subqueries Derived Relations Views Modification of the Database Data Definition Language 4.1 Schema Used in Examples

More information

QQ Group

QQ Group QQ Group: 617230453 1 Extended Relational-Algebra-Operations Generalized Projection Aggregate Functions Outer Join 2 Generalized Projection Extends the projection operation by allowing arithmetic functions

More information

Full file at

Full file at David Kroenke's Database Processing: Fundamentals, Design and Implementation (10 th Edition) CHAPTER TWO INTRODUCTION TO STRUCTURED QUERY LANGUAGE (SQL) True-False Questions 1. SQL stands for Standard

More information

Set theory is a branch of mathematics that studies sets. Sets are a collection of objects.

Set theory is a branch of mathematics that studies sets. Sets are a collection of objects. Set Theory Set theory is a branch of mathematics that studies sets. Sets are a collection of objects. Often, all members of a set have similar properties, such as odd numbers less than 10 or students in

More information

DATABASE DESIGN I - 1DL300

DATABASE DESIGN I - 1DL300 DATABASE DESIGN I - 1DL300 Fall 2010 An introductory course on database systems http://www.it.uu.se/edu/course/homepage/dbastekn/ht10/ Manivasakan Sabesan Uppsala Database Laboratory Department of Information

More information

Database Systems SQL SL03

Database Systems SQL SL03 Inf4Oec10, SL03 1/52 M. Böhlen, ifi@uzh Informatik für Ökonomen II Fall 2010 Database Systems SQL SL03 Data Definition Language Table Expressions, Query Specifications, Query Expressions Subqueries, Duplicates,

More information

RELATIONAL ALGEBRA II. CS121: Relational Databases Fall 2017 Lecture 3

RELATIONAL ALGEBRA II. CS121: Relational Databases Fall 2017 Lecture 3 RELATIONAL ALGEBRA II CS121: Relational Databases Fall 2017 Lecture 3 Last Lecture 2 Query languages provide support for retrieving information from a database Introduced the relational algebra A procedural

More information

SQL:Union, Intersection, Difference. SQL: Natural Join

SQL:Union, Intersection, Difference. SQL: Natural Join SQL:Union, Intersection, Difference Union UNION Intersection INTERSECT Difference EXCEPT Find all actors or directors

More information

SQL (Structured Query Language)

SQL (Structured Query Language) Lecture Note #4 COSC4820/5820 Database Systems Department of Computer Science University of Wyoming Byunggu Yu, 02/13/2001 SQL (Structured Query Language) 1. Schema Creation/Modification: DDL (Data Definition

More information

Relational Database Management Systems for Epidemiologists: SQL Part I

Relational Database Management Systems for Epidemiologists: SQL Part I Relational Database Management Systems for Epidemiologists: SQL Part I Outline SQL Basics Retrieving Data from a Table Operators and Functions What is SQL? SQL is the standard programming language to create,

More information

T-SQL Training: T-SQL for SQL Server for Developers

T-SQL Training: T-SQL for SQL Server for Developers Duration: 3 days T-SQL Training Overview T-SQL for SQL Server for Developers training teaches developers all the Transact-SQL skills they need to develop queries and views, and manipulate data in a SQL

More information

Database Systems SQL SL03

Database Systems SQL SL03 Checking... Informatik für Ökonomen II Fall 2010 Data Definition Language Database Systems SQL SL03 Table Expressions, Query Specifications, Query Expressions Subqueries, Duplicates, Null Values Modification

More information

In This Lecture. Yet More SQL SELECT ORDER BY. SQL SELECT Overview. ORDER BY Example. ORDER BY Example. Yet more SQL

In This Lecture. Yet More SQL SELECT ORDER BY. SQL SELECT Overview. ORDER BY Example. ORDER BY Example. Yet more SQL In This Lecture Yet More SQL Database Systems Lecture 9 Natasha Alechina Yet more SQL ORDER BY Aggregate functions and HAVING etc. For more information Connoly and Begg Chapter 5 Ullman and Widom Chapter

More information

Introduction to SQL. Select-From-Where Statements Multirelation Queries Subqueries

Introduction to SQL. Select-From-Where Statements Multirelation Queries Subqueries Introduction to SQL Select-From-Where Statements Multirelation Queries Subqueries 122 Why SQL? SQL is a very-high-level language. Say what to do rather than how to do it. Database management system figures

More information

Introduction SQL DRL. Parts of SQL. SQL: Structured Query Language Previous name was SEQUEL Standardized query language for relational DBMS:

Introduction SQL DRL. Parts of SQL. SQL: Structured Query Language Previous name was SEQUEL Standardized query language for relational DBMS: Introduction SQL: Structured Query Language Previous name was SEQUEL Standardized query language for relational DBMS: SQL The standard is evolving over time SQL-89 SQL-9 SQL-99 SQL-0 SQL is a declarative

More information

Lecture 6 - More SQL

Lecture 6 - More SQL CMSC 461, Database Management Systems Spring 2018 Lecture 6 - More SQL These slides are based on Database System Concepts book and slides, 6, and the 2009/2012 CMSC 461 slides by Dr. Kalpakis Dr. Jennifer

More information

High-Level Database Models. Spring 2011 Instructor: Hassan Khosravi

High-Level Database Models. Spring 2011 Instructor: Hassan Khosravi High-Level Database Models Spring 2011 Instructor: Hassan Khosravi Database Modeling and implemnation process Ideas High-Level Design Relational Database Schema Relational DBMS 4.2 The Entity/Relationship

More information

Database Usage (and Construction)

Database Usage (and Construction) Lecture 7 Database Usage (and Construction) More SQL Queries and Relational Algebra Previously Capacity per campus? name capacity campus HB2 186 Johanneberg HC1 105 Johanneberg HC2 115 Johanneberg Jupiter44

More information

INDEX. 1 Basic SQL Statements. 2 Restricting and Sorting Data. 3 Single Row Functions. 4 Displaying data from multiple tables

INDEX. 1 Basic SQL Statements. 2 Restricting and Sorting Data. 3 Single Row Functions. 4 Displaying data from multiple tables INDEX Exercise No Title 1 Basic SQL Statements 2 Restricting and Sorting Data 3 Single Row Functions 4 Displaying data from multiple tables 5 Creating and Managing Tables 6 Including Constraints 7 Manipulating

More information

Data Definition Language (DDL), Views and Indexes Instructor: Shel Finkelstein

Data Definition Language (DDL), Views and Indexes Instructor: Shel Finkelstein Data Definition Language (DDL), Views and Indexes Instructor: Shel Finkelstein Reference: A First Course in Database Systems, 3 rd edition, Chapter 2.3 and 8.1-8.4 Important Notices Reminder: Midterm is

More information

Missing Information. We ve assumed every tuple has a value for every attribute. But sometimes information is missing. Two common scenarios:

Missing Information. We ve assumed every tuple has a value for every attribute. But sometimes information is missing. Two common scenarios: NULL values Missing Information We ve assumed every tuple has a value for every attribute. But sometimes information is missing. Two common scenarios: Missing value. E.g., we know a student has some email

More information

Relational Algebra. ICOM 5016 Database Systems. Roadmap. R.A. Operators. Selection. Example: Selection. Relational Algebra. Fundamental Property

Relational Algebra. ICOM 5016 Database Systems. Roadmap. R.A. Operators. Selection. Example: Selection. Relational Algebra. Fundamental Property Relational Algebra ICOM 06 Database Systems Relational Algebra Dr. Amir H. Chinaei Department of Electrical and Computer Engineering University of Puerto Rico, Mayagüez Slides are adapted from: Introduction.

More information

MTA Database Administrator Fundamentals Course

MTA Database Administrator Fundamentals Course MTA Database Administrator Fundamentals Course Session 1 Section A: Database Tables Tables Representing Data with Tables SQL Server Management Studio Section B: Database Relationships Flat File Databases

More information

Querying Microsoft SQL Server 2014

Querying Microsoft SQL Server 2014 Querying Microsoft SQL Server 2014 Course: 20461 Course Details Audience(s): IT Professional(s) Technology: Microsoft SQL Server 2014 Duration: 40 Hours ABOUT THIS COURSE This forty hours of instructor-led

More information

SQL QUERIES. CS121: Relational Databases Fall 2017 Lecture 5

SQL QUERIES. CS121: Relational Databases Fall 2017 Lecture 5 SQL QUERIES CS121: Relational Databases Fall 2017 Lecture 5 SQL Queries 2 SQL queries use the SELECT statement General form is: SELECT A 1, A 2,... FROM r 1, r 2,... WHERE P; r i are the relations (tables)

More information

SQL functions fit into two broad categories: Data definition language Data manipulation language

SQL functions fit into two broad categories: Data definition language Data manipulation language Database Principles: Fundamentals of Design, Implementation, and Management Tenth Edition Chapter 7 Beginning Structured Query Language (SQL) MDM NUR RAZIA BINTI MOHD SURADI 019-3932846 razia@unisel.edu.my

More information

SIT772 Database and Information Retrieval WEEK 6. RELATIONAL ALGEBRAS. The foundation of good database design

SIT772 Database and Information Retrieval WEEK 6. RELATIONAL ALGEBRAS. The foundation of good database design SIT772 Database and Information Retrieval WEEK 6. RELATIONAL ALGEBRAS The foundation of good database design Outline 1. Relational Algebra 2. Join 3. Updating/ Copy Table or Parts of Rows 4. Views (Virtual

More information

Database Modifications and Transactions

Database Modifications and Transactions Database Modifications and Transactions FCDB 6.5 6.6 Dr. Chris Mayfield Department of Computer Science James Madison University Jan 31, 2018 pgadmin from home (the easy way) 1. Connect to JMU s network

More information

Database Languages. A DBMS provides two types of languages: Language for accessing & manipulating the data. Language for defining a database schema

Database Languages. A DBMS provides two types of languages: Language for accessing & manipulating the data. Language for defining a database schema SQL 1 Database Languages A DBMS provides two types of languages: DDL Data Definition Language Language for defining a database schema DML Data Manipulation Language Language for accessing & manipulating

More information

SQL Data Query Language

SQL Data Query Language SQL Data Query Language André Restivo 1 / 68 Index Introduction Selecting Data Choosing Columns Filtering Rows Set Operators Joining Tables Aggregating Data Sorting Rows Limiting Data Text Operators Nested

More information

AC61/AT61 DATABASE MANAGEMENT SYSTEMS DEC 2013

AC61/AT61 DATABASE MANAGEMENT SYSTEMS DEC 2013 Q.2 a. Define the following terms giving examples for each of them: Entity, attribute, role and relationship between the entities b. Describe any four main functions of a database administrator. c. What

More information

Computing for Medicine (C4M) Seminar 3: Databases. Michelle Craig Associate Professor, Teaching Stream

Computing for Medicine (C4M) Seminar 3: Databases. Michelle Craig Associate Professor, Teaching Stream Computing for Medicine (C4M) Seminar 3: Databases Michelle Craig Associate Professor, Teaching Stream mcraig@cs.toronto.edu Relational Model The relational model is based on the concept of a relation or

More information

ASSIGNMENT NO Computer System with Open Source Operating System. 2. Mysql

ASSIGNMENT NO Computer System with Open Source Operating System. 2. Mysql ASSIGNMENT NO. 3 Title: Design at least 10 SQL queries for suitable database application using SQL DML statements: Insert, Select, Update, Delete with operators, functions, and set operator. Requirements:

More information

Database System Concepts, 5th Ed.! Silberschatz, Korth and Sudarshan See for conditions on re-use "

Database System Concepts, 5th Ed.! Silberschatz, Korth and Sudarshan See   for conditions on re-use Database System Concepts, 5th Ed.! Silberschatz, Korth and Sudarshan See www.db-book.com for conditions on re-use " Data Definition! Basic Query Structure! Set Operations! Aggregate Functions! Null Values!

More information

Announcements (September 14) SQL: Part I SQL. Creating and dropping tables. Basic queries: SFW statement. Example: reading a table

Announcements (September 14) SQL: Part I SQL. Creating and dropping tables. Basic queries: SFW statement. Example: reading a table Announcements (September 14) 2 SQL: Part I Books should have arrived by now Homework #1 due next Tuesday Project milestone #1 due in 4 weeks CPS 116 Introduction to Database Systems SQL 3 Creating and

More information

SQL Overview. CSCE 315, Fall 2017 Project 1, Part 3. Slides adapted from those used by Jeffrey Ullman, via Jennifer Welch

SQL Overview. CSCE 315, Fall 2017 Project 1, Part 3. Slides adapted from those used by Jeffrey Ullman, via Jennifer Welch SQL Overview CSCE 315, Fall 2017 Project 1, Part 3 Slides adapted from those used by Jeffrey Ullman, via Jennifer Welch SQL Structured Query Language Database language used to manage and query relational

More information

Information Systems Engineering. Entity Relationship Model

Information Systems Engineering. Entity Relationship Model Information Systems Engineering Entity Relationship Model 1 Database Design Data Scenario ER Design Relational DBMS Relational Schema ER Design After the requirements analysis in terms of data needs, a

More information

Structured Query Language Continued. Rose-Hulman Institute of Technology Curt Clifton

Structured Query Language Continued. Rose-Hulman Institute of Technology Curt Clifton Structured Query Language Continued Rose-Hulman Institute of Technology Curt Clifton The Story Thus Far SELECT FROM WHERE SELECT * SELECT Foo AS Bar SELECT expression SELECT FROM WHERE LIKE SELECT FROM

More information

Information Systems Engineering

Information Systems Engineering Information Systems Engineering Database Design Data Scenario ER Design Entity Relationship Model Relational DBMS Relational Schema ER Design After the requirements analysis in terms of data needs, a high

More information

Relational Algebra and SQL. Basic Operations Algebra of Bags

Relational Algebra and SQL. Basic Operations Algebra of Bags Relational Algebra and SQL Basic Operations Algebra of Bags 1 What is an Algebra Mathematical system consisting of: Operands --- variables or values from which new values can be constructed. Operators

More information

20461: Querying Microsoft SQL Server 2014 Databases

20461: Querying Microsoft SQL Server 2014 Databases Course Outline 20461: Querying Microsoft SQL Server 2014 Databases Module 1: Introduction to Microsoft SQL Server 2014 This module introduces the SQL Server platform and major tools. It discusses editions,

More information

Relational Model: History

Relational Model: History Relational Model: History Objectives of Relational Model: 1. Promote high degree of data independence 2. Eliminate redundancy, consistency, etc. problems 3. Enable proliferation of non-procedural DML s

More information

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

Chapter 7. Introduction to Structured Query Language (SQL) Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel Chapter 7 Introduction to Structured Query Language (SQL) Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel 1 In this chapter, you will learn: The basic commands

More information

DATABASE TECHNOLOGY. Spring An introduction to database systems

DATABASE TECHNOLOGY. Spring An introduction to database systems 1 DATABASE TECHNOLOGY Spring 2007 An introduction to database systems Kjell Orsborn Uppsala Database Laboratory Department of Information Technology, Uppsala University, Uppsala, Sweden 2 Introduction

More information