1 11/3/05cs360 windows programming databases and data representation

20
1 Databases and Data Representation

Upload: norah-bryan

Post on 12-Jan-2016

213 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 1 11/3/05CS360 Windows Programming Databases and Data Representation

1

Databases and Data Representation

Page 2: 1 11/3/05CS360 Windows Programming Databases and Data Representation

2

Databases and Data Representation

Database Management System (DBMS) Provides efficient, convenient, and safe multi-

user storage of and access to massive amounts of persistent data

Provides a programming interface that allows a user or program too - Create new databases and specify their structureo - Query and modify the data

Early DBMSs were ad hoc, with no two the same Now one approach predominates: relational

databases and SQL (Structured Query Language)

Page 3: 1 11/3/05CS360 Windows Programming Databases and Data Representation

3

Databases

A "relation" is a table of data

1 Shereen CS360-01 12

2 Doug CS300-01 11

3 Chris CS445-01 15

4 Josh CS120-02 23

Page 4: 1 11/3/05CS360 Windows Programming Databases and Data Representation

4

Databases

The columns are known as "attributes"

1 Shereen CS360-01 12

2 Doug CS300-01 11

3 Chris CS445-01 15

4 Josh CS120-02 23

LectID Name Course Students

Page 5: 1 11/3/05CS360 Windows Programming Databases and Data Representation

5

Databases

The rows are called "tuples"

1 Shereen CS360-01 12

2 Doug CS300-01 11

3 Chris CS445-01 15

4 Josh CS120-02 23

LectID Name Course Students

Page 6: 1 11/3/05CS360 Windows Programming Databases and Data Representation

6

Databases

It is allowable for some values to be missing

1 Shereen CS360-01 12

2 Doug CS300-01 11

3 Chris CS445-01

4 Josh CS120-02 23

LectID Name Course Students

Page 7: 1 11/3/05CS360 Windows Programming Databases and Data Representation

7

Databases

We can add, remove, or update tuples

1 Shereen CS360-01 12

2 Doug CS300-01 11

3 Chris CS445-01 15

4 Josh CS120-02 23

5 Mike CS120-02 19

LectID Name Course Students

Page 8: 1 11/3/05CS360 Windows Programming Databases and Data Representation

8

Databases

Each attribute has an underlying domain, or data type

1 Shereen CS360-01 12

2 Doug CS300-01 11

3 Chris CS445-01 15

4 Josh CS120-02 23

5 Mike CS120-02 19

LectID Name Course Students

int string string int

Page 9: 1 11/3/05CS360 Windows Programming Databases and Data Representation

9

Databases

The structure of the table is referred to as its schemao Lecturers(LectID, Name, Course, Students)

1 Shereen CS360-01 12

2 Doug CS300-01 11

3 Chris CS445-01 15

4 Josh CS120-02 23

5 Mike CS120-02 19

LectID Name Course Students

Page 10: 1 11/3/05CS360 Windows Programming Databases and Data Representation

10

Primary Key

Every table must have a primary keyo No two tuples can have the same LectID

o LectID cannot be null

1 Shereen CS360-01 12

2 Doug CS300-01 11

3 Chris CS445-01 15

4 Josh CS120-02 23

5 Mike CS120-02 19

LectID Name Course Students

Page 11: 1 11/3/05CS360 Windows Programming Databases and Data Representation

11

Tables

Suppose that we want to add data about lecturers offices

1 Shereen CS360-01 12

2 Doug CS300-01 11

3 Chris CS445-01 15

4 Josh CS120-02 23

5 Mike CS120-02 19

Name Course StudentsLectID

Page 12: 1 11/3/05CS360 Windows Programming Databases and Data Representation

12

Tables

But suppose that lecturers can have more than one office.

We can’t add additional rows for the same lecturers without violating the primary key constraint, so we use another table.

1 Shereen CS360-01 12

2 Doug CS300-01 11

3 Chris CS445-01 15

4 Josh CS120-02 23

5 Mike CS120-02 19

Name Course StudentsLectID Building Room

Page 13: 1 11/3/05CS360 Windows Programming Databases and Data Representation

13

Multiple Tables

Solution: Add a new table

1 Shereen CS360-01 12

2 Doug CS300-01 11

3 Chris CS445-01 15

4 Josh CS120-02 23

5 Mike CS120-02 19

Name Course StudentsLectID

Shereen Strain 203C

Josh Marsh 324

Josh Strain 202

Doug Strain 201

Building Room

Page 14: 1 11/3/05CS360 Windows Programming Databases and Data Representation

14

Relationships

Better to store LectID

1 Shereen CS360-01 12

2 Doug CS300-01 11

3 Chris CS445-01 15

4 Josh CS120-02 23

5 Mike CS120-02 19

Name Course StudentsLectID

1 Strain 203C

4 Marsh 324

4 Strain 202

2 Strain 201

Building RoomLectID

Page 15: 1 11/3/05CS360 Windows Programming Databases and Data Representation

15

Relationships

Better to store LectID

1 Shereen CS360-01 12

2 Doug CS300-01 11

3 Chris CS445-01 15

4 Josh CS120-02 23

5 Mike CS120-02 19

Name Course StudentsLectID

1 1 Strain 203C

2 4 Marsh 324

3 4 Strain 202

4 2 Strain 201

Building RoomLectID

Foreign key

Primary key

Page 16: 1 11/3/05CS360 Windows Programming Databases and Data Representation

16

SQL Queries

SELECT returns tuples that satisfy some condition

SELECT Name, Course FROM Lecturers WHERE Students > 15

1 Shereen CS360-01 12

2 Doug CS300-01 11

3 Chris CS445-01 15

4 Josh CS120-02 23

5 Mike CS120-02 19

Name Course StudentsLectID

Josh CS120-02

Mike CS120-01

Name Course

Page 17: 1 11/3/05CS360 Windows Programming Databases and Data Representation

17

SQL Queries

SELECT *

FROM Lecturers

WHERE Students > 15

Attributes

Relations

Tuples

Page 18: 1 11/3/05CS360 Windows Programming Databases and Data Representation

18

SQL Queries

SELECT *

FROM Lecturers

WHERE Students > 15

OR Name = ‘Shereen’

Page 19: 1 11/3/05CS360 Windows Programming Databases and Data Representation

19

SQL Queries

Wildcards:o % matches any number of characters

o _ matches any single character

o [] matches any single character in set or range

o [^] matches any single character not in set or range

Page 20: 1 11/3/05CS360 Windows Programming Databases and Data Representation

20

Database Management Systems

Many examples of DBMSso Oracle

o SQL Server

o MySQL http://dev.mysql.com/