Relationele theorie is wiskunde gebaseerd op verzamelingenleer (set-theory) en predikatenlogica. Het centrale begrip uit die theorie is relatie. Een relatie kan voorgesteld worden als een tabel met een kopregel:
+--------+------------+------+
patient | patid | bdat |gender|
+========+------------+------+
| 100001 | 1963-04-05 | 1 |
| 100103 | 1985-12-22 | 2 |
| 100305 | 1954-06-30 | 2 |
| 100507 | 2003-03-04 | 1 |
+--------+------------+------+
Elke kolom (attribute) heeft een naam en is van een bepaald type. Het type bepaalt welke waarden in elke kolom valide ingevuld kunnen worden. De kopregel kan gelezen worden als het predikaat van de relatie. Elke regel (tuple) in de relatie bevat een ware propositie, die een invulling is van het predikaat van de relatie.
Relationele algebra beschrijft bewerkingen die je kunt uitvoeren met relaties, zoals project, select, cartesisch product, join, union en intersect.
Het relationele model is ontwikkeld door EJ Codd, werkzaam bij IBM in de 1960's en 1970's. In 1981 ontving hij hiervoor de Turing Award ("nobel prijs" voor informatica). De primaire literatuurreferentie is:
Codd, E.F. (1970). A relational model of data for large shared data banks.
Communications of the ACM 13 (6), 377-387.
http://www.acm.org/classics/nov95/toc.html
Het klassieke leerboek is: CJ Date. An Introduction to Database Systems, Eighth Edition 2004
SQL is een gestandaardiseerde taal (ANSI/ISO) waarin relationele ideeën verwerkt zijn, maar de taal is geen nauwkeurige implementatie van het relationele model.
Ondanks de standaard zijn databases die ontwikkeld zijn met verschillende producten (bv IBM DB2, Oracle, MS Access, MS SQLServer, MySQL, PostgreSQL) niet eenvoudig uitwisselbaar.
De SQL-mantra luidt: SELECT FROM WHERE
SELECT
de kolommen die je wilt hebben FROM
de tabellen waar ze uit moeten komen WHERE
alleen regels die voldoen aan bepaalde voorwaarden
Andere keywords:
(DDL) CREATE DROP
(DML) INSERT UPDATE DELETE
(DCL) GRANT REVOKE
Een goede inleiding in MySQL is: Paul Dubois, MySQL. 3rd ed. 2005
Datawarehousing is een gespecialiseerde toepassing van database technologie. In een datawarehouse worden gegevens uit verschillende operationele systemen samengebracht, met elkaar geïntegreerd, en beschikbaar gesteld voor nader onderzoek of rapportage.
IADB gebruikt gegevens van meer dan 50 apotheken, aangevuld met geneesmiddelinformatie van en regionale bevolkingsgevens van
Het vereenvoudigde datamodel van IADB zier er als volgt uit:
tabel popschat | |||
jaar | int | pk | kalenderjaar |
ltg | int | pk | leeftijdsgroep |
Ntot | int | totale populatie | |
Nman | int | aantal mannen | |
Nvrw | int | aantal vrouwen |
tabel patient | |||
patid | int | pk | anonieme persoons_identifier |
bdat | date | geboortedatum | |
gender | int | geslacht (1=man, 2=vrouw) |
tabel recept | |||
recno | int | pk | receptnummer (bevat verwijzing naar bronbestand) |
patid | int | fk | persoons_identifier |
afldat | date | afleverdatum | |
drugid | int | fk | identifier voor geneesmiddelprodukt |
aantal | float | aantal voorgeschreven eenheden | |
dagdos | float | aantal voorgeschreven eenheden dagelijks gebruik | |
cost | float | kosten |
table middel | |||
drugid | int | pk | geneesmiddelprodukt, incl sterkte en toedieningsvorm |
atc | char | atc-kode | |
dddb | float | aantal ddd's per eenheid produkt | |
name | char | produktnaam |