Informatica Samenvatting Hoofdstuk 7 Databases

Samenvatting Hoofdstuk 7 Database

 

7.1 Relationele Database

Gegevensgeoriënteerde machines

  • Grote hoeveelheden gegevens beheren
  • Bewerkingen (=toevoegen/veranderen/verwijderen/raadplegen)
    • Programma= database management system (dbms)
      • Maakt gebruikt van vraagtaal Structured Query Language (SQL)
        • = taal → communicatie in een database
          • SQL is meest gebruikte vraagtaal
          • MS Access gebruikt SQL maar kan ook andere functie uitvoeren hierom is SQL in MS Access deels aangepast.
        • Programma + gegevens= database system
        • Ordenen
          • Vroeger: Hiërarchisch model (vb met personen)
            • Één-op-één relatie= één persoon die hoger in hiërarchie staat één persoon onder zich heeft
            • Één-op-veel relatie= één persoon die hoger in hiërarchie staat meerdere personen onder zich heeft
            • Veel-op-veel relatie= veel personen die hoger in hiërarchie staan die meerdere personen onder zich hebben

 

  • Voordeel: goed voor simpele databases
  • Nadeel: voor complexere databases wordt het een chaos
  • 1970: Relationeel model
    • Geïntroduceerd → wiskundige E.F. Codd (in dienst bij IBM)
      • In artikel: ‘A Relational Model of Data for Shared Data’
    • Relatie tussen verschillende kolommen → hierom naam: “relationeel”
    • Heading= 1e rij v/d tabel. Staan de veldnamen
    • Record= 1 rij
    • Sleutel= rij die door unieke kolomna(a)m(en) kan worden opgezocht

 

  • Voordeel: Model is gebaseerd op een wiskundige theorie waardoor het heel logisch is.
  • Nadeel:
    • Redundantie= het meerdere malen opnemen van dezelfde informatie.
    • Hinconsistentie= wanneer de gegevens niet meer kloppen in een database.

7.2 Informatiemodellering

Ofwel → stappenplan van invoeren informatiesystemen

Automatisering begon ’70 grote organisaties en ’80 voor kleinere organisaties (personal computer)

 

Doelgerichte totstandkoming → informatiesysteem (o.l.v. projectteam)

  1. Formuleren informatiebehoeften + beschrijving bruikbaarheid → informatie
  2. Schetsen v/d functie om zo in informatiebehoeften te kunnen voorzien
  3. In praktijk brengen (computer materiaal aangeschaft/geschreven)
  4. Evaluatie

7.3 SQL (Structured Query Language)

Strokendiagram= tabellen verschijnen als stroken met een veldnaam

  • Een kolom kan verbanden met andere tabellen leggen. Zie onderstaand vb.

(wanneer een teamcode, score of boete moet worden geraadpleegd wordt gebruikt gemaakt van het lidnr. in tabel “LEDEN”)

SQL zoekopdrachten

  • Opbouw:

SELECT

FROM

ORDER BY

WHERE

 

 

 

 

 

  • Voorbeeld:

SELECT DISTINCT naam

FROM leden

ORDER BY naam DESC;

 

 

 

 

 

 

 

 

 

 

 

 

7.4 Samengestelde voorwaarden

  • Wanneer je bij WHERE meerdere voorwaarden wil ingeven
    • AND (operator)

Dan worden alleen de rijen waarvoor beide zoekresultaten gelden getoond

  • OR (operator)

Dan worden de rijen waarvoor één v/d zoekresultaten telt getoond

LET OP! Wanneer je AND en OR in een Query hebt staan geld AND als een wiskundige x en OR als een +. Je voert dus eerst AND uit en daarna pas OR.

  • IN (operator)

Zelfde als OR alleen dan eenvoudiger

  • Wanneer je bij WHERE voorwaarden wilt specificeren
    • LIKE (operator)

Bijv.:

SELECT naam

FROM leden

WHERE naam LIKE ‘J*’;

Alle achternamen die met een J beginnen worden nu getoond

  • NOT (operator)

Als je bepaalde veldnamen wilt uitsluiten

SELECT woonplaats

FROM leden

WHERE NOT woonplaats = ‘Den Bosch’;

Of

SELECT woonplaats

FROM leden

WHERE woonplaats <> ‘Den Bosch’;

  • IS NULL (operator)

Als je velden wilt tonen waarin niks staat

SELECT naam

FROM leden

WHERE naam IS NULL

 

7.5 Combineren van tabellen

Koppelen van tabellen= join in het Engels

Dit gebeurt in de WHERE stap. Hier stel je de veldnaam die in beide tabellen overeenkomt  gelijk bijv. het lidnr.: WHERE leden.lidnr = scores.lidnr

 

7.6 Functies

AVGBerekent gemiddelde
COUNTTelt aantal waarden/rijen in een kolom/tabel
MAXBepaald grootste waarde
MINBepaald kleinste waarde
SUMBepaald som van getallen

AS (component)

  • De veldnaam wordt standaard na een optelling (bijv.) Expr1000, deze kun je veranderen door AS en daarachter de nieuwe veldnaam toe te voegen

Vb.: SELECT SUM(gewonnen) AS totaal_gewonnen

GROUP BY betekend dat je de verschillende waarde groepeert wanneer je bijvoorbeeld een hoeveelheid  wilt weten van het aantal vrouwen en mannen in een stad. Dan groepeer je dus de categorie mannen en vrouwen. Dan krijg je dus 2 rijen Den Bosch met 1 rij mannen en het aantal en 1 rij vrouwen en het aantal.

 

LET OP! GROUP BY dient uitsluitend kolomnamen uit SELECT te bevatten

 

HAVING of WHERE

HAVING gebruik je bij groepen en WHERE bij rijen die op zichzelf staan.

Een ander verschil is dat je in HAVING wel een functie mag gebruiken en in WHERE niet

 

7.8 Subquery

Subquery = subselect

Vb.

  • SELECT voornaam, naam

FROM leden

WHERE lidnr IN

(SELECT lidnr

FROM scores

WHERE gewonnen =

(SELECT MAX(gewonnen)

FROM scores));

Expressie= uitdrukking. In dit geval een uitdrukking als veldnaam of functie.

De Select in een subquery mag maar 1 “expressie” bevatten

 

7.9

  • Gegevens toevoegen

INSERT INTO leden

VALUE

 

 

  • Gegevens verwijderen

DELETE FROM leden

WHERE lidnr = 1;

  • LET OP! Wanneer je de regel met WHERE vergeet worden alle rijen gewist
  • DROP TABLE leden; wordt de gehele tabel leden gewist

 

  • Gegevens wijzigen

UPDATE leden

SET adres = ‘hoevenlaan 3’

WHERE lidnr= 1;

 

Unieke index

→ Door een unieke index te maken voorkom je dubbele waarden en wordt de tabel dus efficiënter gebruikt

CREATE UNIQUE INDEX lidnr

ON                         leden (lidnr);

 

Nog een samenvatting lezen klik hier!

Geef een reactie