🎧 New: AI-Generated Podcasts Turn your study notes into engaging audio conversations. Learn more

Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Full Transcript

DATABASES EN DATABASESYSTEMEN ENKELE BASISCONCEPTEN Data: losse gegevens en feiten, zonder context betekend data niets en heeft dus ook geen waarde. Voorbeelden van data: Rotterdam, 1882,vissershuis,monet. Informatie: data + betekenis, hier wordt een context aan de data gegeven zodat hij betekenis k...

DATABASES EN DATABASESYSTEMEN ENKELE BASISCONCEPTEN Data: losse gegevens en feiten, zonder context betekend data niets en heeft dus ook geen waarde. Voorbeelden van data: Rotterdam, 1882,vissershuis,monet. Informatie: data + betekenis, hier wordt een context aan de data gegeven zodat hij betekenis krijgt en dus ook waarde. vb. informatie: In het museum Boijmans van Beuningen te Rotterdam bevindt zich het schilderij ‘Vissershuis’ dat in 1882 door Monet werd geschilderd.’ Database: een verzameling van persistente data, de database is een computersysteem dat deze data beheerd. Een database zal informatie opslaan op een logische wijze en in een bepaalde structuur Persistente data = data blijft opgeslagen in het permanent geheugen. Dus ook na het uitschakelen. Databasesysteem is een computersysteem dat is opgezet voor het beheer van databases. vb. van database over de inhoud van een wijnkelder Welke data je in de databank steekt hangt af van de noden van het bedrijf en waarvoor je de databank wilt gebruiken. Het opslaan van data is niet gratis dus in theorie wil je enkel dat opslaan wat je denkt nodig te zullen hebben. Alle data in de database moeten het doel van deze database dienen. Het is belangrijk dat deze databank up to date wordt gehouden, als dit niet gebeurd zal de databank niet meer in overeenstemming zijn met de realiteit. GEGEVENSBEHEER DOOR DE EEUWEN HEEN § § § § Codex van Hammoerabi (2000 voor Christus) eerste registratie van data ‘Fysice akroasis’ van Aristoteles (384-322 voor Christus) ordening, structureren van data ‘Analytical engine’ van Charles Babbage (1830) geautomatiseerde registratie van data machineacties programmeren data ordenen via vooraf gedefinieerde structuur Magneetband- en magneetschijfgeheugens (1960-1970) 1 § eerste databasesystemen: ‘tweelagen’-systeemarchitectuur, structuur voor de opslag (interne laag) en voor het verwerken (logische laag) Magneetbanden: sequentieel (1 voor 1) doorzoeken Magneetschijven: kan men efficiënter adresseren ‘Drielagen’-systeemarchitectuur (1970-1980) eerste ‘moderne’ databasesystemen met extra laag, de externe laag. Deze kan de data op verschillende manieren weergeven. • Het relationeel databasemodel (Codd, 1970) • DB2, eerste relationeel databasesysteem (IBM, 1983) DATABASESYSTEEM In een databasesysteem onderscheiden we 3 componenten § Hardware § Data § Software Daarnaast is het ook belangrijk om de gebruikers van het systeem te beschouwen Opm: de terminal wordt databaseclient genoemd ook wel een HARDWARE Central Processing Unit (CPU): één of meerdere processoren die zorgen voor het uitvoeren van de software-instructies. De processorsnelheid zegt hoeveel berekeningen per seconde uitgevoerd kunnen worden (3 gigahertz, iedere nanoseconde kunnen er 3 instructies uitgevoerd worden) Geheugen: om redenen van efficiëntie en implementeerbaarheid is het hiërarchisch georganiseerd: § Primair geheugen: rechtstreeks aanspreekbaar door CPU, snelst toegankelijk. databasebuffers • Statisch RAM-random access memory: cache geheugen, gebruikt om uitvoering van programma’s te versnellen • Dynamisch RAM: werkgeheugen, tijdelijke opslag programmacode. Trager dan statisch RAM. à Dit geheugen is een databuffer, data die hierin wordt opgeslagen staat tijdelijk klaar voor gebruik, na het afsluiten van de pc zal deze data verdwijnen (de data is volatiel). Sommige databases zijn in een databuffer opgeslagen, indien het snel moet gaan. Er wordt wel een kopie op permanent geheugen geplaatst. Een speciale vorm van geheugen is het flashgeheugen. Hier wordt EEPROM-technologie gebruikt (Electrically Erasable Programmable Read-Only Memory. Vb digitale fototoetellen, mp3-spelers,… § Secundair geheugen (harde schijf): het geheugen waar de persistente data wordt opgeslagen, is veel groter dan het primair geheugen. • Magneetschijfgeheugens: 1 of meer roterende schijven die langs 1 of 2 zijden beschrijfbaar zijn. o Primaire bestandorganisatie: manier waarop een database fysiek wordt opgeslagen, al dan niet geordend o Secundaire bestandorganisatie: doel de toegang tot fysiek opgeslagen data te optimaliseren door extra data bij te houden over bvb de locatie en verbanden tussen gegevens. Vb indexen 2 • • CD-rom en DVD-geheugens: kunnen worden samengebracht in een soort van jukeboxsysteem. Ze hebben minder goede schrijffaciliteiten en worden dus gebruikt voor gegevens die enkel geraadpleegd moeten worden. Magneetbandgeheugens: gebruikt voor archivering en back-up. Werken alleen efficiënt bij sequentiële toegang. Ook hierbij kan een jukeboxsysteem worden toegepast om de capaciteit te vergroten. Opm: buffergrootte: Het primair geheugen gaat altijd een volledige pagina uit het secundair geheugen inladen, dit is omdat secundaire data werkt als een cd en er fysiek iets verplaats moet worden, dit kost het meeste tijd (het inlezen zelf is zeer snel) dus het is best om zoveel mogelijk data in 1 keer in te laden è de buffergrootte moet dus altijd tenminste 1 pagina kunnen inladen. DATA Records: Een database wordt meestal gestructureerd opgeslagen als en collectie van records. Elk record is opgebouwd uit 1 of meer velden die data kunnen bevatten. Recordtype: de velden zijn hierin vastgelegd d.m.v. een naam en datatype. Het datatype legt de toegelaten waarden en operatoren voor het veld vast. Bestanden: hierin worden records opgeslagen van verschillende bestandtypen. Een databasesysteem kan instaan voor meerdere databases. Voorbeeld van een databasesysteem en de verschillende delen hiervan 3 een recordtype: een volledige tabel, deze tabel kan uit iedere combinatie van kolommen bestaan maar voor iedere kolom moeten alle rijen gegeven zijn een record: een kolom, dit is 1 type van informatie, een recordtype bestaat altijd uit een aantal kolommen wat een database een database maakt is het feit dat de kolommen aan elkaar gelinkt zijn, aan de record artiest is namelijk de record naam, voornaam, geboren en gestorven verbonden die meer informatie geven, door deze links wordt data met elkaar verbonden en krijgt het dus een context (en wordt het dus informatie) Het veld eigenaar in het eerste recordtype is een vreemde sleutel CHAR(n): karakterstrings van lengte n INTEGER: gehele getallen REAL: reële getallen Een database is een geïntegreerd geheel. Data die in de reële wereld samenhangen brengen we onder in dezelfde database en de verbanden geven we zo goed mogelijk weer. Daarbij wordt overlap tot een minimum gehouden om overtollige data te vermijden. SOFTWARE Het databasemanagementsysteem (DBMS): de software- component van een databasesysteem die instaat voor het beheer van de databases. Iedere keer als we de data willen opzoeken, toevoegen, wijzigen of verwijderen gaan we dit doen door het databasemanagement systeem Toepassingsprogramma’s: zorgt voor verbinding met het DBMS en de toegang tot de relevante databases, vertaalt gebruikersacties naar databaseoperaties die dan worden doorgestuurd naar de DMBS. Na uitvoering stuurt de DBMS de resultaten door naar het toepassingsprogramma. Dit moet ook de fouten opvangen bij de interactie. § § Online: verwerking opdrachten real-time. Batch-toepassing: verwerkt op een meer geschikt tijdstip. Tools: vergemakkelijken en automatiseren van de taken voor databasebeheer. Vb automatisch back-up systeem, importeren/exporteren vanuit bestanden, conversie naar ander dataformaat, prestatiemonitoring Communicatiesoftware: zorgt voor de correcte overdracht van data en instructies over het netwerk indien databasesysteem verspreid is over verschillende computers die met een telecommunicatienetwerk verbonden zijn. Vb client-serverconfiguratie. 4 Datawarehousing: een database die bedoeld is voor data-analyse. Hier wordt vaak ook de geschiedenis bijgehouden van de verschillende records (dit wordt niet gedaan in een DBMS). Naast de tijdsdimensie worden ook geografische dimensie en productdimensie (hiërarchische onderverdeling) bijgehouden. Data warehouse word opgebouwd door 1 of meerdere databases op regelmatige tijdstippen te importeren en integreren. Software voor data-analyse: doel zinvolle verbanden in data vinden die voorheen niet bekend waren. Rapportgeneratoren: genereren automatische rapporten over de inhoud van een database of datawarehouse. GEBRUIKERS Gebruiker: elke persoon die op een of andere manier interactie heeft met het databasesysteem. Als er verschillende gebruikers zijn worden er gebruikersprofielen aangemaakt. Belangrijkste gebruikersprofielen: (meestal meer dan 1 van ieder type maar niet per se noodzakelijk) § § § § § Data-administrator (DA): verantwoordelijk voor de data, hogere kaderfunctie. Speelt een belangrijke rol bij het ontwerp van een database en bij grote conversies of aanpassingen aan db. • Welke data • In welk formaat • In welke database • Beslist wie toegang krijgt, de gebruikersprofielen, beveiliging, verwerking en beveiliging van data • Beslist prioriteiten gebruikers Database-administrator (DBA): technisch verantwoordelijk voor implementatie en onderhoud van databases. Verantwoordelijk voor: • Herstel na falen (back-up en restore) • Consistentie van databases • Observatie en controle van prestaties en goed functioneren In een grote onderneming meestal verdeeld over meerdere personen. Pleegt nauw overleg met de DA’s en volgt zijn beslissingen strikt op. Toepassingsontwikkelaar ontwikkeling van toepassingsprogamma’s. • Om software te testen moet hij beschikken over een werkkopie van de databases. Gewone eindgebruiker: mensen die werken met de databases. Werkt via toepassingsprogramma’s, eenvoudige query’s, voorspelbaar/optimaliseerbaar. Geavanceerde eindgebruiker: complexere instructies, minder routinematig gebruik, niet voorspelbaar/optimaliseerbaar. Opm: gewone gebruikers krijgen meestal voorrang omdat een analyse vaak niet onmiddellijk moet werken DATABASEMANAGEMENTSYSTEEM HOOFDFUNCTIONALITEIT Belangrijkste taken van een DBMS zijn de definitie, manipulatie en constructie van databases. Definitie: databasestructuur en semantische regels worden vastgelegd. Semantische regels zijn nodig voor de integriteit te garanderen. Integriteit houd in dat de data correct en consistent is over de hele database. Men gebruikt integriteitsrestricties om ervoor te zorgen dat geen inconsistenties kunnen ontstaan. Vb een schilderij kan als datum van creatie niet een datum hebben nadat de schilder is gestorven. 5 Manipulatie: er moeten noodzakelijke operatoren gecreëerd worden (in een datamanipulatietaal). § § § § data data data data toevoegen aanpassen verwijderen opzoeken de voorschriften voor de definitie en manipulatie van databases zijn vastgelegd in een zogenaamd data(base)model Constructie: mogelijk maken om een gepaste primaire bestandorganisatie op te zetten. De databasestructuur van bij de definitie moet worden omgezet naar een recordstructuur. ANDER FUNCTIONALITEIT VAN HET DMBS Delen van dezelfde data: iedere gebruiker moet de volledige database kunnen gebruiken alsof hij de enigste gebruiker is. Er moet dus simultane toegang mogelijk zijn. Bv bij het boeken van een bepaald zitje op het vliegtuig gebeurd een dubbele boeking omdat ze op hetzelfde moment boeken. beveiliging van de data: beschermen tegen ongeoorloofd gebruik (authorisatie) en fysiek falen (dataverlies beperken). Optimaal systeemgedrag: efficiënte secundaire bestandsorganisatie is noodzakelijk vb indexering Administratie en controle: aanpassen secundaire bestandsorganisatie aan de behoeften, bijhouden en analyseren van prestatiestatistieken, beheer van gebruikersprofielen, back-ups maken, aanleggen logbestanden en onderhoud. ARCHITECTUUR De structuur van een DMBS kent 3 lagen. De belangrijkste reden is dataonafhankelijkheid. Je kunt de ene laag veranderen zonder dat de andere lagen belemmerd worden of crashen. (opm: vroeger was er enkel een 2-lagen structuur en was er geen externe laag) interne laag deze laag beschrijft de databaserecords: structuur, manier van opslag en toegangspaden. Structuur wordt vastgelegd in recordtypes, manier van opslag wordt bepaald door primaire bestandsorganisatie en toegangspaden door secundaire bestandsorganisatie. 6 Records van hetzelfde type kunnen een vaste of variabele lengte hebben. Het kan variabel zijn door deze redenen: § § § 1 of meer recordvelden hebben een datatype met domeinwaarde van een variabele lengte. vb. naam kan datatype VARCHAR hebben. 1 of meer recordvelden zijn meerwaardig. Een domeinwaarde is een collectie van een vast of variabel aantal elementen. Vb. Artiest die een meerwaardig veld Hobby kan associëren met datatype SET(VARCHAR) waarvan elke waarde een verzameling hobby’s voorstelt. 1 of meer velden zijn optioneel. Vb. velden Geboren en Gestorven leeg laten. File header: manier van opslag van veel voorkomende recordtypes worden beschreven. Elk record kan dan worden voorafgegaan door een recordtype-indicator die verwijst naar die beschrijving. Bij een recordtype met vaste lengte wordt deze lengte ook vastgelegd in de file header. Voordeel vaste lengte: vereenvoudigde recordtoegang Nadeel vaste lengte: inefficiënt gebruik geheugen. Voorbeeld vaste recordlengte Voor de unieke identificatie van de records werd elk recordtype uitgebreid met een prefix-veld dat vastgelegd is door de primaire bestandorganisatie. Voor een betere toegankelijkheid werd voor elk recordtype ook een index gedefinieerd. <veldwaarde, referentie> veldwaarde: een waarde die voorkomt in het veld waarover de index is gedefinieerd. Referentie: een pointer naar de geheugenplaats waar een record met die veld-waarde is opgelagen. à secundaire bestandsorganisatie Bij een recordtype van variabele lengte is een bijkomende techniek nodig om het einde van recordvelden aan te duiden = separatorkarakters 7 Naam, Voornaam en Hobby hebben variabele lengte, hobby is meerwaardig en Geboren en gestorven zijn optioneel Elk record werd gekenmerkt met een veldnaamindicator (V0,V1,V2,…). Aan het einde van elk veld plaatsen we een separatorkarakter einde_waarde en bij het laatste veld een einde_record. Voor meerwaardige velden is er ook een separator einde_waarde. Opslagdetails over bestandsorganisatie worden niet beschreven in de interne laag, ook geen details over toegang tot fysieke pagina’s. Deze worden buiten de architectuur van de DMBS gehouden. Hier zie je dat ieder record een aantal tekens heeft dat gebruikt wordt (de vaste lengte). Je wint tijd omdat het systeem weet hoeveel tekens er moeten zijn en dit altijd hetzelfde is. Wel is het zo dat omdat niet alle tekens gebruikt worden de database groter is (en dus trager) als hij vast is dan als hij variabel is. Een vaste database wint dus tijd met de structuur die altijd hetzelfde is maar verliest tijd door de grote veroorzaakt door niet gebruikte tekens terwijl een variabele database tijd verliest door zijn flexibele structuur en tijd wint door simpelweg kleiner te zijn en minder tekens te hebben de logische laag (gemeenschappelijke laag) Abstracte voorstelling van een database. Houdt alle fysieke opslagdetails verborgen zodat alle aandacht gaat naar abstracte beschrijving van entiteiten, verwantschappen, operatoren en integriteitsbeperkingen. De abstracte beschrijving gebeurt volgens voorschriften van het gebruikte databasemodel = databaseschema. Databaseschema legt operatoren voor definitie en manipulatie vast. Dit bepaald dus het soort toepassingen dat de DBMS kan ondersteunen. Naast structurele aspecten, gedrags-en integriteitsaspecten behandelen we op de logische laag ook gemeenschappelijke faciliteiten voor beveiliging, falen en herstel en het delen van database door verschillende gebruikers. 8 De externe laag (individuele laag) Deze laag staat het dichts bij toepassingsontwikkelaars en eindgebruikers. Hier worden de externe views op de database gedefinieerd. View: is een kijk op de database die bepaalt hoe het wordt gezien door een beperkte groep van eindgebruikers Hier zal men door middel van bevragingssoftware de database kunnen bevragen en verschillende views kunnen krijgen van de database afhankelijk van welke software men gebruikt en wat men vraagt. SQL zou zich in deze laag bevinden. De eerste view is ontworpen voor ontwikkelaars die werken met de COBOL-programmeertaal. Schilderij wordt voorgesteld als tentoonstellingsitem en enkel Naam en Artiest zijn zichtbaar. De tweede en derde zijn voor ontwikkelaars die werken met Java. De tweede gaat ook over schilderij, de derde is een andere kijk op artiest waarbij een nieuw veld leeftijd is toegevoegd. Niet alle views moeten gespecifieerd zijn voor een programmeertaal. Als het databasemodel een eigen DDL (Data Definition Language) heeft, gebruiken we deze. Mappings De feitelijke data bevind zich in de fysieke opslag. In de 3 lagen werken we met intermediaire beschrijvingen. De omzettingsprocessen van de data en operaties tussen de 3 lagen beschrijven we a.d.h.v. mappings. (rode pijlen). De correspondentie tussen de interne en fysieke laag wordt buiten de architectuur gehouden omdat deze sterk systeemafhankelijk is. Voor elke view in de externe laag is er een externe/logische mapping gedefinieerd. Daardoor kunnen velden een andere naam krijgen, kunnen er nieuwe afgeleide velden worden toegevoegd of velden verborgen gehouden worden. Tussen de logische en interne laag is er maar 1 mapping. Opnieuw zijn verschillen mogelijk: extra interne velden, andere veldnamen,…) 9 DATAONAHANKELIJKHEID Deze drie lagen zijn nodig omdat ze zo onafhankelijk van elkaar zijn, je kan de ene laag veranderen zonder dat het een impact heeft op een andere laag. Voordeel; gemakkelijker onderhoud. Fysieke dataonafhankelijkheid: de interne beschrijving van de database en de logische/interne mapping kunnen worden aangepast zonder dat dit een gevolg heeft op de logische beschrijving (en dus ook de views in de externe laag). Aanpassing van de interne beschrijving kan nuttig zijn wanneer de fysieke opslag moet worden gereorganiseerd. Door de fysieke onafhankelijkheid worden e primaire en secundaire bestandsorganisatie afgeschermd van de logische database. Logische dataonafhankelijkheid: de logische beschrijving en de externe/logische mappings kunnen worden aangepast zonder dat dit een impact heeft op de diverse views. Aanpassingen aan de logische beschrijving kunnen nodig zijn wanneer en recordtype moet worden hernoemd, aangepast of verwijderd of een nieuw recordtype moe worden aangemaakt. WANNEER GEBRUIK JE EEN DATABASESYSTEEM? Voordelen: § § De systeemontwikkelaar zich niet te bekommeren om de implementatie van de faciliteiten die in het dbms zijn voorzien: • Databasedefinitie (integriteitsbewaking) • Databaseconstructie (primaire bestandsorganisatie) • Databasemanipulatie (CRUD- operatoren) • Delen van dezelfde data (geïsoleerd gebruik door gelijktijdige gebruikers) • Beveiliging van de data (tegen ongeoorloofd gebruik en tegen fysiek falen) • Optimaal systeemgedrag (optimale responstijden kunnen garanderen) • Administratie en controle Hoe meer dbms-faciliteiten vereist zijn, hoe beter het is om te kiezen voor een databasesysteem. Nadelen: soms veel overbodige dbms-faciliteiten. Deze kunnen een overlast en prestatieverlies met zich meebrengen. Het kan soms voordeliger zijn om voor implementatie van een eenvoudiger, op maat gemaakt systeem te kiezen. Het vergt veel opslagcapaciteit en je hebt dure licentie- & opleidingkosten. Een eigen, eenvoudiger, op maat ontworpen, opslagsysteem implementeren, kan voordelig zijn wanneer: § § § Weinig of geen dbms-faciliteiten vereist Uitgebreide eisen die niet kunnen worden voldaan wanneer een volwaardig dbms wordt gebruikt (snelheid (toepassingen in productieomgevingen, telecommunicatie,...), compactheid van code en compactheid van opgeslagen data (toepassingen op mobiele apparaten,...)) Budgettaire beperkingen (zelfontwikkelde opslagsystemen vragen ook extra investeringen; grondige kosten-batenanalyse aangewezen) Aandachtspunten: § § Toepassingen kunnen evolueren Kostprijs 10

Use Quizgecko on...
Browser
Browser