SQL VOOR BIOLOGEN © 2011 M.L. Hekkelman CMBI Radboud UMC.
-
Upload
willem-kok -
Category
Documents
-
view
217 -
download
2
Transcript of SQL VOOR BIOLOGEN © 2011 M.L. Hekkelman CMBI Radboud UMC.
SQL VOOR BIOLOGEN© 2011 M.L. Hekkelman
CMBI Radboud UMC
Wat is SQL
SQL = Structured Query Language Bedacht in de jaren ’70 bij IBM als tool
voor managers Gebruikt in RDBMS
RDBMS = Relational Data Base Management System
Data opslag
X_aa01,C. Elegans,13.5
X_aa02,C. Elegans,12.4
X_aa03,S. Cerevisiae,113.9
X_aa04,S. Cerevisiae,93.6
…
Data opslag
Meting Organisme Resultaat
X_aa01 C. Elegans 13,5
X_aa02 C. Elegans 12,4
X_aa03 S. Cerevisiae 113,9
X_aa04 S. Cerevisiae 93,6
Data opslag
Tabel Experiment
Meting Tekst
Organisme Tekst
Resultaat Getal
Data opslag
Meting Organisme Resultaat
X_aa01 C. Elegans 13,5
X_aa02 C. Elegans 12,4
X_aa03 S. Cerevisiae 113,9
X_aa04 S. Cerevisiae 93,6
Redunante data!
Data opslag
Meting Organisme_nr
Resultaat
X_aa01 1 13,5
X_aa02 1 12,4
X_aa03 2 113,9
X_aa04 2 93,6
Nr Naam
1 C. Elegans
2 S. Cerevisiae
Tabel Experiment
Tabel Organisme
Data opslag
Tabel Experiment
Meting Tekst
Organisme_nr
Getal
Resultaat Getal
Tabel Organisme
Nr Getal
Naam Tekst
Data opslag
Tabel Experiment
Meting Tekst
Organisme_nr
Getal
Resultaat Getal
Tabel Organisme
Nr Getal
Naam Tekst
Meting is de unieke sleutel voor tabel Experiment
Nr is de unieke sleutel voor tabel Organisme
Meting en Nr noemen we Primary Keys Organisme_nr is een Foreign Key
SQL – De taal
SQL definitie bestaat uit drie onderdelen:
Data Definition Language (DDL)tabellen definiëren
Data Manipulation Language (DML)data toevoegen aan tabellen
Data Control Language (DCL)transacties
SQL – Data Definition Language CREATE TABLE Organisme (
nr INTEGER PRIMARY KEY,naam VARCHAR
);
CREATE TABLE Experiment (meting VARCHAR PRIMARY KEY,organisme_nr INTEGER REFERENCES
Organism(nr),resultaat NUMERIC(4,1)
);
SQL – Data Manipulation Language
INSERT INTO Organism (nr, naam) VALUES (1, 'C. Elegans',2, 'S. Cereviciae'
);
SELECT naam FROM Organism WHERE nr = 1;
DELETE FROM Organism WHERE nr = 1;
Ontsluiten van de data
Data in een relationele databank kan gebruikt worden in andere programma’s.
Taal Methode
Perl DBD/DBI
Java JDBC, Hibernate
Python DB-API
Diverse Windows applicaties
ODBC
Perl DBI
#!/usr/bin/perluse DBI;
my $dbh = DBI->connect("DBI:Pg:dbname=mydb","joe", "secret", {'RaiseError' => 1});
my $sth = $dbh->prepare("SELECT nr, naam FROM Organisme");$sth->execute();
while(my $ref = $sth->fetchrow_hashref()) { print "$ref->{'nr'} is een $ref->{'naam'}\n";}
$dbh->disconnect();
Alternatieven voor SQL
Excel sheets Makkelijk en bekend Riskant door automatische data interpretatie (datum) Beperkte hoeveelheid data
Kaartenbak programma’s als FileMaker Makkelijk in gebruik voor niet programmeurs Niet geschikt voor grote hoeveelheden data Niet echt bruikbaar vanuit een script
Full Text indexeringssoftware als MRS (en Lucene?) Snel voor zeer grote datasets Niet relationeel Geen echte datatypes, vooral gericht op tekst
Referenties
PostgreSQL Tutorial:http://www.postgresql.org/docs/9.0/static/tutorial.html
Perl DBI: http://www.perl.com/pub/1999/10/DBI.html