Download Chapter 1: Information Technology - Rensselaer Polytechnic Institute

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Oracle Database wikipedia , lookup

Open Database Connectivity wikipedia , lookup

Concurrency control wikipedia , lookup

Microsoft Jet Database Engine wikipedia , lookup

Extensible Storage Engine wikipedia , lookup

Database wikipedia , lookup

Entity–attribute–value model wikipedia , lookup

Clusterpoint wikipedia , lookup

Relational algebra wikipedia , lookup

Database model wikipedia , lookup

Relational model wikipedia , lookup

Transcript
Rensselaer Polytechnic Institute
CSCI-4380 – Database Systems
David Goldschmidt, Ph.D.

What is a Database?
 A collection of organized information
that persists over a long period of time
 Such information (or data) is managed
by a DataBase Management System

DBMS:
 Software used to create and manage large
amounts of data efficiently and securely

A typical DBMS is expected to:
 Provide a means by which users can create




databases and specify their schemas
Give users the ability to query the database
(and efficiently return results)
Store huge amounts of data
Support durability and reliability, recovering
from failures and errors
Control user access to data (i.e. security)

Database schemas abstract elements of the
real world; to do so, we use a data model

A data model describes:
 Structure of the data
 Operations on the data (reads and writes)
 Constraints on the data

Transactional (and other) databases must
meet the ACID test:
 Atomicity: all-or-nothing execution
 Consistency: relationships between data
elements must adhere to defined constraints
 Isolation: each transaction appears as if it occurs
without other database activity
 Durability: the data itself is durable in the sense
that the data must never be lost


A relation is a two-dimensional data
structure that consists of a set of attributes
and (zero or more) tuples or rows of data
attribute1
firstname
attribute2
lastname
attribute3
office
attribute4
nuttiness
Mark
Goldberg
AE 108
6
Mukkai
Krishnamoorthy
Lally 305
30
Sibel
Adali
Lally 313
6
Each attribute takes only simple values
 i.e. strings, numbers, boolean values, dates, etc.

The relation schema consists of:
 The name of the relation
 The set of attributes
 The name (and type) of each attribute
 Other constraints
 An example:
Profs( firstname, lastname, office, nuttiness )

A relation contains a set of tuples
 Each tuple contains values for all the attributes
in the relation schema that are drawn from the
domain of that attribute

Example tuples:
( 'Mark', 'Goldberg', 'AE 108', 6 )
( 'Mukkai', 'Krishnamoorthy', 'Lally 305', 30 )
( 'Sibel', 'Adali', 'Lally 313', 6 )

A key for a relation is a set of attributes
such that no pair of tuples has the same
value for the key

Examples:
 Social Security Number
 RIN (Rensselaer ID Number)
 First and last name (would this one work???)
Profs( firstname, lastname, office, nuttiness )

In practice, keys are used to improve
efficiency of queries using such keys
 And note that not all keys provide “uniqueness”

Since relations may have multiple keys,
a primary key is selected
 The primary key might be a separate
(unused?) numeric field

To store a relation, we can use SQL to create
a table in a relational database system

Example attribute (data) types include:
 CHAR, VARCHAR, TEXT
 BIT, INT, INTEGER, FLOAT, DOUBLE, REAL
 DECIMAL, NUMERIC
 DATE, DATETIME, TIMESTAMP
 BLOB, MEDIUMBLOB, LONGBLOB
create table tablename
(
attribute1_name attribute1_type,
attribute2_name attribute2_type,
...
attributeN_name attributeN_type,
constraints
);
create table student
(
id int,
name varchar(255),
major char(4),
gender char(1),
dob date,
constraint student_pk primary key (id)
);

Removing a table from the schema:
drop table tablename;
truncate table tablename;

Adding a new attribute to a table:
alter table tablename
add attributename attributetype;

Removing an attribute from a table:
alter table tablename
drop attributename;

Relational algebra consists of a set of simple
operators that can be used to query the
database

Each operator takes as input two relations
and produces as output a relation
 Think of a relation as a set of tuples
 The input and output relations all must
have the same schema

Given two relations R and S that have
the same schema, set operators include:
 Union:
▪ R  S  { tuples that are in R or S (or both) }
 Intersection:
▪ R  S  { tuples that are in both R and S }
 Set difference:
▪ R – S  { tuples that are in R but not in S }

The projection of a relation R on
attributes A1, A2, ..., An is given by:

A ,...,A
(R)
= { t | t is a tuple in R and t only
contains values for attributes A1, A2, ..., An iff the
schema of R contains attributes A1, A2, ..., An }
1
n
 We use projection to remove existing attributes
from R (by selecting a subset of them)

Find and select all tuples from relation R
that satisfy some set of conditions
 Forms the basis of querying a database
 The selection C (R) is based on Boolean
condition C over attributes of relation R
 Example conditions include:
▪ A = e, A > e, A >= e, A < e, A <= e, A <> e
▪ A1 = A2, A1 <> A2
▪ Any combination of conditions using AND, OR, NOT

Selection selects a subset of tuples in
relation R (with the schema unchanged)


(R)
= { t | t is a tuple in R and t satisfies the
condition C on relation R }
C
 Selection conditions can only refer to
attributes in the given relation R
 For conditions spanning multiple relations, we
first must combine those relations (i.e. join)

Download and install both the Oracle and
MySQL database packages noted on the
course Web site

Design a full schema
to store information
about celebrities,
including:
 Basic information
 Relationships (e.g. marriages, flings, etc.)
 Issues (e.g. drugs, affairs, addictions, etc.)