Bioinformatica Datamodellering
Onderwerpen Doel van database-opslag Gestructureerd versus ongestructureerd Van gegevens naar datamodellering Stappenplan datamodellering Inventarisatie Selectie Optimalisatie Voorbeeld Veldeigenschappen
Doel van database-opslag Onderzoek genereert gigantische hoeveelheden data Genomics proteomics metabo[ln]omics Interessant voor verder/ander onderzoek Dus: beschikbaar stellen in opvraagbare vorm Maar: speld in hooiberg is makkelijker te vinden!
Gestructureerd v ongestructureerd De volgende twee slides bevatten precies dezelfde gegevens Waar heb je het meeste aan, en waarom?
Enzym Herkenningssite Eco17I (EcoRV) GATATC Eco24I (HgiJII) GRGCY^C Eco25I (HgiJII) GRGCYC Eco26I (HgiJII GRGCYC Eco31I GGTCTCN^ Eco31I ^NNNNNGAGACC Eco32I (EcoRV) GAT^ATC Eco35I (HgiJII) GRGCYC Eco38I (EcoRII) CCWGG Eco39I (AsuI) GGNCC Eco40I (EcoRII) CCWGG Eco41I (EcoRII) CCWGG Eco42I (Eco31I) GGTCTC Eco42I (Eco31I) GAGACC Eco43I (ScrFI) CCNGG Eco47I (AvaII) G^GWCC Eco47II (AsuI) GGNCC Eco47III AGC^GCT
Structuur is essentieel voor gericht opvragen van gegevens! Eco17I (EcoRV)GATATCEco24I (HgiJII)GRGCY^C Eco25I (HgiJII)GRGCYCEco26I(HgiJIIGRGCYC Eco31IGGTCTCN^Eco31I^NNNNNGAGACCEco32I (EcoRV)GAT^ATCEco35I (HgiJII)GRGCYC Eco38I (EcoRII)CCWGGEco39I (AsuI)GGNCC Eco40I (EcoRII)CCWGGEco41I (EcoRII)CCWGG Eco42I (Eco31I)GGTCTCEco42I (Eco31I)GAGACC Eco43I (ScrFI)CCNGGEco47I (AvaII)G^GWCC Eco47II (AsuI)GGNCCEco47IIIAGC^GCT Structuur is essentieel voor gericht opvragen van gegevens!
Van gegevens naar datamodellering willekeurig feit Informatie Gegeven(s) nodig om beslissing te kunnen nemen Doel van gegevensbeheer Gestructureerde opslag van gegevens om op juiste moment de juiste informatie te kunnen leveren Datamodellering Bepalen welke gegevens in welke structuur nodig zijn om aan informatiebehoefte te kunnen voldoen
Gegevensbeheer betekent afbeelden van de werkelijkheid in de computer Werkelijkheid bestaat uit objecten boom Object heeft kenmerken of attributen hoogte Specifieke boom heeft waarde 4.78 m 4.78m
Abstract object wordt beschreven met lijst kenmerken: objecttype boom: soort, hoogte, leeftijd, lokatie Concreet object wordt geidentificeerd door lijst waarden voor kenmerken: record Plataan, 4.78m, 7 jaar, NW-hoek plein
objecttype record tabel kolom soort hoogte locatie plataan 4.78 NW-hoek kolom Database: set samenhangende (gerelateerde) tabellen
Stappenplan datamodellering Doel Effectief en efficiënt opslaan van de gegevens die nodig zijn voor een bepaalde taak Drie stappen Inventarisatie Selectie Optimalisatie (normalisatie)
Inventariseren Brainstormen welke gegevens van belang kunnen zijn Ruim denken (strepen is beter dan vergeten) Uitgangspunten Papieren administratie (formulieren) Gesprekken met medewerkers Vragen die in het werk opkomen Gezond ‘boeren-’ verstand
Selecteren Elk gegeven kost tijd voor invoeren, wijzigen, etc. Essentie: het kiezen van de kenmerken nodig voor het werk Keuze gebaseerd op: relevantie (nodig, nuttig, aardig) beschikbaarheid hoeveelheid ruimte hoeveelheid werk (invoeren, onderhouden) Resultaat: platte tabel (nulde normaalvorm) Kolommen voor de kenmerken (velden) Regels voor de objecten (records)
Optimaliseren Datamodel efficiënter maken zonder dataverlies Principes bedacht door E.F. Codd Proces heet normaliseren Uitgangspunt nulde NV Achtereenvolgens Eerste normaalvorm Tweede normaalvorm Derde normaalvorm Enzovoorts Eerste is essentieel; hogere afhankelijk van grootte database en motivatie
Voorbeeld huisartsenpraktijk Kenmerken (nulde NV) Datum bezoek Naam patiënt Adres patiënt Plaats patiënt Naam huisarts Adres huisarts Telefoon huisarts Bloedgroep patiënt Kosten bezoek
Drie consulten van dezelfde patient Naam H.A. Kunnen Adres Gorterstraat 1 Plaats Deventer Bloedgroep O Huisarts J.A. Jansen Adres arts Brink 35 Tel.nr. arts 653781 Bezoekdatum 14/2/96 Kosten bezoek €120.58 Naam H.A. Kunnen Adres Gorterstraat 1 Plaats Devanter Bloedgroep O Huisarts J.A. Jansen Adres arts Brink 34 Tel.nr. arts 653781 Bezoekdatum 8/3/96 Kosten bezoek €100.00 Naam H.A. Kunnen Adres Gorterstraat 1 Plaats Deventer Bloedgroep P Huisarts J.A. Jansen Adres arts Brink 35 Tel.nr. arts 653781 Bezoekdatum 22/4/96 Kosten bezoek €80.20
Problemen bij de platte tabel: 1. Gegevens die in meer records nodig zijn en identiek zijn (repeterende groep) Redundantie 2. Gegevens die in meer records nodig zijn maar verkeerd worden ingetikt Inconsistentie
Naam H.A. Kunnen Adres Gorterstraat 1 Plaats Deventer Bloedgroep O Huisarts J.A. Jansen Adres arts Brink 35 Tel.nr. arts 653781 Bezoekdatum 14/2/96 Kosten bezoek €120.58 Bezoekdatum 8/3/96 Kosten bezoek €100.00 Huisarts J.A. Jansen Adres arts Brink 35
Foreign key relatie Primary key Patientnr 007 Artsnr 003 Bezoekdatum 14/2/96 Kosten bezoek €120.58 Patientnr 007 Artsnr 003 Bezoekdatum 14/3/96 Kosten bezoek €100.00 Artsnr 003 Huisarts J.A. Jansen Adres arts Brink 35 Tel.nr. arts 653781 Naam H.A. Kunnen Adres Gorterstraat 1 Plaats Deventer Bloedgroep O Primary key Foreign key relatie
Platte tabel = nulde normaalvorm Resultaat na afsplitsen repeterende groepen = eerste normaalvorm Eerste normaalvorm vereist, want… niet moeilijk weinig werk veel resultaat Overige normaalvormen facultatief
Voorbeeld Situatie Magazijn waar reagentia worden bewaard en uitgeleend/uitgegeven Mogelijke vragen en overzichten Wat is de actuele voorraad van reagens A? Wat zijn de risico’s van reagens B? Waar is reagens C opgeslagen? Hoeveel heeft afdeling X deze maand verbruikt? Welke reagentia moeten vrijdag besteld worden? ... Bijhouden Wie krijgt wat mee (waar is iets; budgettering) Informatie over de reagentia
Inventarisatiestap Naam reagens Naam klant Afdeling klant Lokatie reagens Veiligheidscategorie reagens Functie klant Hobby klant Kristalstructuur reagens Voorraad reagens Afhaalinformatie (datum, hoeveelheid) Verpakkingseenheid reagens Afbeelding reagens ...
Selectiestap Hobby klant Kristalstructuur reagens Afbeelding reagens Want weinig relevant, veel werk, ... Kristalstructuur reagens Want te weinig relevant, moeilijk te achterhalen Afbeelding reagens Want te weinig relevant, veel werk, veel opslagruimte
Resultaat na selectiestap: nulde normaalvorm Naam reagens Naam klant Afdeling klant Lokatie reagens Veiligheidscategorie reagens Functie klant Voorraad reagens Afhaaldatum Afhaalhoeveelheid Verpakkingseenheid reagens
Optimalisatiestap Hetzelfde reagens zal vaker worden afgehaald repeterende groep, lang afsplitsen Dezelfde klant zal vaker reagentia halen Op dezelfde dag zal vaker iets worden afgehaald Repeterende groep, kort niet afsplitsen
Resultaat na optimalisatie: eerste normaalvorm Hoofdtabel: afhaalinformatie (reagensnr, klantnr, datum, hoeveelheid) Hulptabel: reagentia (reagensnr, naam, lokatie, veiligheidscategorie, verpakkingseenheid, voorraad) Hulptabel: klanten (klantnr, naam, afdeling, functie)
Veldeigenschappen Veld (attribuut, kenmerk, kolom) Essentiële kenmerken: Veldnaam Inhoud (waarde) Overige eigenschappen Lengte Type (tekst, getal, datum) Verplicht/niet verplicht Uniek/niet uniek Sleutel/geen sleutel Controles (constraints) Op vorm (postcode: “9999 AA”) Op inhoud (temperatuur tussen 35 en 45 graden)