2.1 KiB
lec3
Relational Algebra and its relation to SQL
SELECT
Used to select rows from some table.
SELECT [...] FROM [...]
Relational symbol: sigma
Projection
Picks out the columns of a (set of) table(s)
PROJECTION [table...]
Relational symbol: pi
Union
Adds the rows of two tables into some new table. Removes duplicates from resultant table as well.
UNION table[table...]
Relational symbol:
Relational Algebra on paper
Even though conceptually this maps straight to SQL there is a handwritten way to express this on paper. The following is a plain english way of reading these pape operations.
/select_(concatenation of fields)[target table]
/project_(list of fields)[target table]
{resultant table} /union {resultant table}
Cartesian Product
We take the crossproduct of two relations(tables)
Take the N'th row of the first and combine linearly with the rows from the second table. The result should be a new table with R1_(rowcount) * R2_(rowcount). This result isn't something that we would particularly care about since there is so much data which is now mixed throughout.
SQL
Declarative language which mainly queries databases, and deals with schemas.
Data-Definition language (DDL)
- Create/modify/delete schemas
- define integrity contraints
- define views
- drop tables
Data Manipulation Language (DML)
- Queries and whatnot
Define a relation Schema
create table tableName (
fieldName type(argv...),
...
fieldName1 type(length) not null,
primary_key(fieldName,[...]),
foreign_key(fieldName,[...]) references otherTable
);
Contraints
not null
: Requires that the field not be null when data is being inserted.
primary key
: Can be used inline to show that some field is a primary key on its own.
Field Types
varchar(length)
: variable length string of characters. If we have 6
as a maxiumum then we may only end reserving 4
bytes(words) of space somewhere.
char(length)
: Fixed length string of characters. If we have 5
then we must have a string length of 5
.
numeric(p,d)
: Fixed-point number of p
digits with d
digits to the right of the decimal.