HOOFDSTUK 1 Informatie, Informatiesystemen en ICT : samenvatting ICT -> op primaire/secundaire activiteiten van een organisatie. In het verleden : vooral secundaire activiteiten/inzet in functionele deelgebieden die het productieproces ondersteunen. H1 : ICT neemt aansluiting bij bedrijfskundige beslissingen 1.1 informatie 1 : rol van informatie bij bedrijfskundige beslissingen nemen van beslissingen : afhankelijk van beschikken over juiste informatie rol van informatie bij het nemen van beslissingen : DIKAR model data informatie kennis actie resultaat Bv. Hoe marktaandeel van en bepaald product verhogen met het nemen van beslissingen 2 : wat is informatie data = ruwe feiten die een bepaald fenomeen, concept of gebeurtenis beschrijven. Heeft geen verdere betekenis of interpretatie. Informatie = data die een specifieke betekenis heeft in een specifieke context. onderscheid tussen deze twee is relatief en subjectief Kennis = begrijpen van een bepaald onderwerp, onder meer door gebruik van bepaalde hoeveelheden informatie, ervaring en expertise ; een soort “know how”. 3: informatie als een model van de reële wereld informatiesysteem = soort informatie-spiegel van de reële wereld waarin we leven. = d.m.v. data en informatie. Partiële afspiegeling die we voorstellen met symbolen of tekens. Informatie en IS maken een model van de reële wereld = abstract = bepaalde aspecten wel opgenomen en beschouwd / bepaald niet. = minder partieel en complex = uitgedrukt in tekens en symbolen + sneller/ efficiëntere berekening op basis van informatie-spiegel ipv reële wereld bv. voorraad VW= als model correct is, anders geen voordeel. Zie figuur 1.2 4 : data representatie Reële wereld voorstellen door middel van symbolen of tekens = model leesbaar voor mensen en computers. Categorie 1 Gericht op mensen en verwerking door mensen. Bv getallen van de voorraad, clouds (= visuele weergaven van de inhoud van bv. een website, tekst, waarbij termen die meer voorkomen op de pagina of tekst groter worden weergegeven dan andere) Categorie 2 Gericht op verwerking door machines of computers. Werken met binaire data representaties, of tegenwoordig QR codes. Hier wordt onderscheid gemaakt tussen gestructureerde data, semi -gestructureerde data en ongestructureerde data Gestructureerde data : enkelvoudige datatypes( getallen en strings ) of geaggregeerde datatypes (arrays en records). Enkelvoudige datatypes : bevatten een enkel stuk data. Bv prijs van product. Veel voorkomende zijn : Integer : een geheel getal. Aantal bytes bepaald hoe groot het getal is. Real : rationeel/komma- getal. Intern voorgesteld als geheel getal met exponent. Datum : een datatype met specifieke syntax om datum op te slaan: ( YYYY-DD-MM) String : tekenreeks of stuk tekst Structuren van data - relationele tabellen - Boomstructuur Geaggregeerde datatypes : lijst of arrays = geeft meerdere enkelvoudige waarden weer. Zijn van hetzelfde enkelvoudige datatype. Om te verwijzen naar een plaats in de lijst worden indices gebruikt. records : gegevens opslaan die niet van hetzelfde enkelvoudige datatype zijn. Bv. personeelsfiche = array van records Welke gegevens in welk record : attributen ( kan enkelvoudige waarden hebben / verwijzen naar record in andere tabel) Combinatie om naar bepaald record te verwijzen : sleutel : homogene informatie Horizontale homogeniteit : elk record bevat dezelfde attributen. Verticale homogeniteit : elk veld voor alle records bevat hetzelfde type informatie. : gegevens op hiërarchische manier weergeven. Productie-omgevingen, om bijvoorbeeld een Bill-of-Material (BOM) weer te geven + Voor bepaalde types verwerking zeer goede en performante algoritmes gekend => zo worden data efficiënt gesorteerd , en zo zoekopdrachten makkelijk uitvoeren. Verschillende elementen = knopen knoop die op het hiërarchisch bovenliggend niveau ligt dan een andere knoop = de ouder van die andere knoop genoemd. Elke knoop heeft één ouder. Begint bij een wortelknoop. Enkel deze knoop heeft geen ouder. Elke knoop kan verschillende kind-knopen hebben = lagergelegen knopen die een relatie (of tak) hebben met de bovenliggende knoop. Alle knopen die dezelfde ouderknoop hebben = broers of zussen genoemd. Knopen die geen kind-knopen hebben = bladeren genoemd. Structuur van data niet altijd met relationele tabellen of boomstructuren. ongestructureerde data audio, video,… = een lange rij bits gerepresenteerd in computer. = BLOB ( binary large object) semi -gestructureerde data teksten, documenten en e-mails. Bij e-mails wel enige structuur ( afzender, ontvanger , onderwerp), tekst geen. eXtensible Markup Language ( XML) = taal leesbaar door mensen + computers. Opmaaktaal = voegt tags toe aan data. Zo is er structuur en betekenis bij de data. Document met veel tekst = XML document bestaat uit boomstructuur van elementen, die uit andere elementen bestaan. Indien data zeer fijn geschreven wordt = gestructureerd Hoeveelheid structuur = bepaald mogelijke verwerking van de data. Bij weinig structuur – additionele verwerking afgeleid en toegevoegd bovenop de initiële data representatie. - toevoegen van gestructureerde data aan ongestructureerde data. Bv tags bij MP3 bestand. Door data representatie = enorme waaier van informatie tegenwoordig beschikbaar. Veel aandacht voor interne en externe transacties. Intern : voorraadbewegingen Extern : verkoop aan externe leverancier. hierbij veel gedragsgerelateerde informatie beschikbaar door aanwezigheid ICT in smartphones, auto’s , etc… beperkingen : bv: ongestructureerde data. ( pc kan niet alle gele auto’s weergeven want herkent geen voorwerpen) bv:tactic knowledge ( ontastbare kennis = moeilijk of niet expliciteerbaar of communiceerbaar/ overdraagbaar) opgebouwd door ervaring. 5 : verwerking verwerking van data = informatie. Vaak geen moeilijke verwerkingen, wel grote hoeveelheden! 1. 2. 3. 4. Uit grote hoeveelheid data, precies het relevante stuk selecteren. Aggregeren van data. Bv bedrag aan verkopen, per verkoper. Sorteren van data op één of meerdere criteria. Recent : business intelligence/ data mining = moeilijker 6. kwaliteit van data en informatie Kwaliteit van informatie en data wordt beschreven adhv volgende kenmerken. Correctheid : fouten-vrij zijn van data en informatie. Bij complexe en grotere hoeveelheid data is die moeilijker. Accuraatheid : Data heeft verschillende graden van nauwkeurigheid afhv van de toepassing. Volledigheid : 1. Bepaald stuk informatie kan ontbreken bij sommige records. 2. Niet alle records die nodig zijn, zijn aanwezig. Relevantie : Informatie relevant voor eindgebruiker? Voldoet informatie aan noden? Beknoptheid : Voor overzicht en bruikbaarheid. Er is veel informatie beschikbaar, men moet juiste informatie kunnen lokaliseren. Beschikbaarheid : Is er toegang tot de informatie wanneer het nodig is, waar ze nodig is, van op” bepaalde locatie. Up-to-date : werkelijkheid evolueert, dus soms kan informatie verouderd zijn. Frequentie :beschrijft de informatie de juiste tijdsperiode? Soms bv informatie over dagelijks, soms maandelijkse aankopen nodig.. Vorm : manier waarop gepresenteerd wordt. Grafische weergave is bijvoorbeeld duidelijker. 7. Syntax en semantiek twee aspecten van informatie die behoren tot semiotiek (= bestudeert tekens en tekensystemen) focus : tekens in natuurlijke taal weergeven. Soms ook tekensysteem : daarom semiotiek. Syntax : beschrijft formalisme om een boodschap weer te geven. Fout in de syntax in een computerprogramma = niet uitvoeren van het programma. Soms correcte syntax, maar geen betekenis ! Semantiek : beschrijft de betekenis van een boodschap overgebracht tijdens een communicatieve daad. Bij informatie : betekenis van informatie bv. concept klant. Momenteel : toekomstige eindgebruikers van het informatiesysteem bepalen de semantiek. + definities sluiten aan bij noden en wensen van de eindgebruiker - definities van deze concepten kunnen verschillen tussen verschillende informatiesystemen - als twee systemen met elkaar worden geïntegreerd, kunnen bepaalde producten niet overeenkomen door verschillende definities. - interpretatieproblemen waardoor foutieve conclusies worden genomen. 1.2 definitie informatiesystemen definitie + typologieën van informatiesystemen. Typologieën = classificeren IS’ en op basis van karakteristieken qua beslissingsondersteuning. Doel van typologieën is : - diversiteit IS illustreren - bedrijfskundige doen inzien ; heeft een bedrijf alle IS die nodig zijn, moeten er bijgebouwd worden? In praktijk : IS niet van 1 soort in 1 classificatie. Bevatten aspecten van meerdere IS’en . 1. Definitie Informatiesystemen Enge, technische definitie “nformatiesystemen systemen zijn die informatie produceren als output door data te verzamelen, te verwerken, op te slaan, te analyseren en te verspreiden voor een bepaald doel” IS slaat input uit reële wereld op en verwerkt tot output voor een doel van een gebruiker. 2 functies. 1. opslaan van gegevens ( statisch) 2. verwerken van gegevens via processen. ( dynamisch) Gebruiker is onderdeel van, en neemt beslissingen die reële wereld impacteren : feedback van het systeem. Hoe meer IS worden ingevoerd, hoe meer beslissingen worden genomen op basis van hun output => digitalisering neemt toe. = gebruiker wordt automatische beslisser. Zie afbeelding 1.9 Brede socio-technische definitie “een informatiesysteem is een combinatie van mensen, hardware, software, communicatietechnologie, databronnen, procedures en bedrijfsprocessen die instaat voor het verzamelen, opslaan, verwerken en verspreiden van communicatie voor een bepaald doel” Nadruk op de omgeving van software en hardware. Vult de enge definitie aan met organisatorische en menselijke aspecten. Een informatiesysteem bevat : - hardware ( pc’s, servers , smartphones, netwerken, ..) - software ( programma’s) - data - bedrijfsprocessen/ procedures - mensen bepaalde acties worden manueel uitgevoerd. = geautomatiseerde+ manuele delen van IS. Eind jaren 90 : eiland-automatisering = elk departement beschikt over eigen IS maar onvoldoende integratie tussen IS van andere departementen. OPLOSSING : bedrijfsprocessen een sequentie, selectie/iteratie van activiteiten over departementen heen. Zeer gestructureerd ; elke stap vooraf bepaald, ontworpen en neergeschreven in stroomschema’s of BPMN-modellen. Manueel of geautomatiseerd Voordelen + zorgen voor integratie over de departementen heen. Optimaliseren werking van het ganse proces. + Leidt tot hogere transparantie. Men moet informatie hebben over andere departementen. Door invoering bedrijfsprocessen : Business Process Re-engineering ( BPR) Nieuwe manier van denken over organisaties = grotere efficiëntiewinsten. 2. typologie op basis van de informatie-regel Eerste typologie : betrekking op de tol die IS spelen in opslag van data + verwerking tot informatie. Invoer en opslag van gestructureerde data = in Transaction Processing Systems TPS. Invoer en opslag van semi- en ongestructureerde data = Enterprise Collaboration Systems ECS. Verwerking van data = Management Information Systems MIS en Decision Support Systems DSS. Presentatie met gebruik van portalen. Transaction Processing Systems TPS gericht op opslaan, verwerken en rapporteren van repetitieve transacties van organisatie. (bv. verkopen, betaling, aankoop) aggregatieniveau van data in TPS : niveau van 1 transactie. Dus zéér gedetailleerde informatie werking van organisatie. Werking van TPS = CRUDS ( create, reade, update , delete, search) Zeer hoge performantie vereisten TPS: veel transacties. Real time verwerking : van zodra in reële wereld = onmiddellijk in IS Op piekmomenten : soms te weinig verwerkingscapaciteit. Vroeger : Batch-verwerking. ( niet in real time, maar opgespaard in groepen) Nadeel: tijdspiegel niet actueel. Bedrijfskritisch : zonder TPS geen functionering van organisatie. Vooral voor werknemers die rechtstreeks zijn betrokken met transacties. TPS data aanleveren aan andere IS, die hogere aggregatieniveaus van data manipuleren. Qua ICT : TPS ondersteund door een database voor gestructureerde date, voor semiwordt verwerkt in CMS. Enterprise Collaboration Systems (ECS) / Office Automation Systems ( OAS) inter-departementele IS die communicatie en samenwerking tussen teams ondersteunen. Gericht op semi- gestructureerde informatie en recent ongestructureerde informatie. Veel internet-gebaseerde IS. ; e-mail, blogs,… Verwerking ECS = netrekking op creëren, lezen, updaten en verwijderen, zoeken van documenten. Voorbeeld ECS : intranet. = netwerk binnen organisatie waarbij data, documenten,… worden gedeeld. Indien klanten hiertoe toegang hebben = extranet Qua ICT = gebaseerd op Content Management System : CMS en Document Management System : DMS. Management Informatiesystemen ( MIS ) groter beslissingsondersteundend karakter dan TPS produceren vooraf gedefinieerde rapporten bv. op periodieke basis, of ad hoc basis. Vooraf gedefinieerde rapporten = vooraf bepaald welke data geaggregeerd word en hoe gepresenteerd in rapport. MIS is gericht op ondersteuningen van beslissingen = gestructureerde beslissingen. In geval van ad hoc ( eenmalig rapport) =/= MIS maar OLAP. Aggregatieniveau : van laag naar hoog. verwerkingscapaciteit minder hoog dan ->IS. Veel in realtime, sommige in Batch. Timing varieert : periodiek, bij bepaalde status, … Invoer : Data uit TPS = aggregeren en presenteren. lezen, zoeken, aggregeren en sorteren van data. Minder bedrijfskritisch dan TPS = vooral voor middenmanagement. Qua ICT : MIS = rapport of formulier in database met gestructureerde informatie evt grafiek. Decision Support Systemen ( DSS) ondersteunt complexe niet routinematige bedrijfskundige beslissingen. Ad hoc karakter : informatieverwerking die moeilijker te definiëren is qua timing/info. Meer interactief : tussen gebruiker en systeem: probleem bekijken vanuit verschillende hoeken en oplossing vinden. Verwerking niet beperkt tot een relatief eenvoudige aggregatie. Model gebaseerde verwerking : verschillende scenario’s met elkaar vergelijken. Sensitiviteitsanalyse : analyseren van impact op wijziging variabele op doelvariabele. Verwerkingscapaciteit : eenvoudige modellen : realtime ( interactief karakter!) Meer geavanceerde berekeningen : limiet beschikbare rekencapaciteit hardware Informatie van TPS en MIS + gegevens andere bronnen. Qua ICT : vroeger : gegevens TPS en MIS kopiëren naar rekenblad of databank. Recent : gebruik maken van data warehouses. Portalen IS dat onderdeel is van intranet en extranet van organisatie + gepersonaliseerde en geïntegreerde toegang biedt tot achterliggende IS binnen en buiten organisatie. Gepersonaliseerd : vorm van authenticatie ( bv wachtwoord). Informatie wordt afgestemd op gebruiker : enkel wat relevant is voor gebruiker. gebruiker kan portalen zelf aanpassen of informatie plaatsen op het portaal. Biedt geïntegreerde toegang tot andere IS. Louter tonen van achterliggende data op hetzelfde scherm. veel voorkomend portaal : dashboard. Key performance indicators (KPIs) worden grafisch voorgesteld. 3.Typologie qua impact : strategische informatiesystemen Informatiesystemen die competitieve positie organisatie beïnvloeden. Sterkere positie op markt door het bezit van een informatiesysteem . 4. Typologie qua integratie : departementeel tot inter-organisatorisch. Betrekking op context of omvang van IS. 1. Eilanden van indormatiesystemen enkel data en informatie met betrekking op 1 departement. ( bv HRM) Beperkte integratie hier = moeilijk integreren. 2. informatiesysteem is bedrijfsomspannend bevat data en informatie of meerdere/alle departementen van organisatie = inter-organisatorisch. Bv. Enterprise Resource Planning (ERP) : bevatten alle processen en data van een (deel)bedrijf. 3. Inter-organisatorische informatiesystemen Werken tussen meerdere organisaties. Bv. elektronische veiling. 5. Andere soorten informatiesystemen Embedded systems : ICT/software zit in fysiek product. ( bv. software in auto) Process control systems : systemen/software die industriële processen aansturen en beheren. ( bv. software in robots.) veel soorten typologieën besproken = overlappend ! 1.3 ICT Databanken aan basis van TPS. = opslaan gestructureerde data ( minder voor semi- en on-..) = antwoord op beperkingen van het opslaan van data in bestanden of files. = door besturingssyteem gegevens wegschrijven in extern geheugen in vorm van bestand of file. = functionaliteit op gebied van beveiliging. = verwerking : CRUDS operaties, geen complexe algoritmische verwerking. 2 Beperkingen : Integratie Elke applicatie slaat data op in specifiek bestand voor dat programma. Vaak dezelfde gegevens ( redundant). Naarmate redundantie stijgt = update anomalieën. ( men vergeet in een kopie een verandering te wijzigen waardoor de data in inconsistente status komt). Gelijktijdigheid Veel gebruikers tegelijkertijd. Als meerdere tegelijk gegevens willen taanpassen kan het zijn dat men de wijzigingen van de vorige overschrijft. Men kan niet toelaten dat 1 iemand maar tegelijk in een bestand schrijft want tabel vaak voor 100000 gebruikers. Meerdere applicaties moeten data opslaan in dezelfde databank en zo kan men redundantie vermijden. Relationele databanken : data opslaan in tabellen. => meest gebruikte type database. Rij = record Kolommen = attributen/eigenschappen van de klant Elke rij heeft unieke sleutel die de rij uniek identificeert. ( bv. klantennummer) Verbanden leggen door sleutel van een rij op te slagen in een kolom van een andere tabel. Vroeger : Hiërarchische databanken = gestructureerde data in vorm van bomen opslagen Daarna : Netwerk databanken= data in de vorm van netwerk opslagen ( knooppunt) Hierna : Relationele databanken. Nieuwe types = geografische semantiek, multimedia databanken,.. Databank : data zelf programmatuur die toelaat dat er gecentraliseerde en geïntegreerde toegang tot de data is que lezen, schrijven, opvragen en verwijdering van gegevens = Databank management system DBMS Zie figuur 1.1 2. Data warehousing jaren 70’ : vanaf onstaan DSS = veel performantie nodig op op dit model te verwerken. Verwerking in real time niet mogelijk op databanken die TPS ondersteunen. Begin jaren 90’ : Databank warehouses aanmaken om probleem op te lossen. Soort databank gericht op beslissingsondersteuning waarin gegevens van TPS worden gekopieerd. Vele soorten verwerking zonder de performantie van de TPS te impacteren. Kopiëren van gegevens van databanken van TPS naar data warehouse in batch : Extraction, transformation and load. ( ETL) Extraction : ophalen van gegevens uit de databanken van de TPS. Houdt aspecten van technische integratie in want gegevens van verschillende databanken. Ook worden hier foutencontroles gedaan; sommige manueel of automatisch eruit gehaald, sommige wordt niet verder gekopieerd naar data warehouse. Transformation : Data wordt geconverteerd + men kijkt naar het aggregatieniveau van data. Load : Kopiëren van getransformeerde gegevens naar het eigenlijke data warehouse. Zo actueel mogelijk om beslissingen te maken. Men kan 1 centraal warehouse hebben, of specifieke “data marts”. Het bevat meestal historische en actuele data. Na aanmaakt van warehouse : verschillende vormen van verwerking mogelijk. -Data mining Toepassen van geavanceerde statische of wiskundige technieken op data. Verborgen verbanden ontdekken. -online analytical processing OLAP Grote hoeveelheid data wordt interactief ondervraagt vanuit verschillende perspectieven. Data moet worden opgeslagen in een soort multi-dimensionale kubus. Ondervraging moet in real time gebeuren en het gaat over ad hoc ondervragingen. Technieken zijn : consolidatie : aggregatie. Data wordt opgerold op 1 of meerdere dimensies. Drill down : desaggregeren van data. Geaggregeerde data wordt gedetailleerder op 1 of meerdere dimensies. Slicing and dicing : analyseren van data vanuit verschillende perspectieven. Mogelijkheid om een gekozen perspectief te creëren en in isolatie van andere perspectieven te analyseren. 4. Reflectie informatiesystemen : beslissingsondersteunend perspectief. “ hoe bestudeerd men data, informatie en informatiesystemen op zinvolle wijze op een abstract, niet-technisch niveau.” informatiesystemen : informatiespiegel. IS is een digitale gespiegelde afbeelding van reële wereld waarop verwerking kunnen worden toegepast. Enorm gegroeid qua nieuwe soorten data, als niveau van frequentie en detail. Ook nadelen verbonden aan informatiesystemen. privacy : is het wenselijk dat zoveel aspecten van het gedrag van het gedrag en transacties van mensen worden gedigitaliseerd en voor verdere bewerking beschikbaar zijn ? Information overload : moeilijk om uit grote hoeveelheden informatie, de juiste te selecteren. Is brengen grote complexiteit met zich mee. Enterprise architectuur : integratieaspecten van al deze verschillende informatiesystemen, alsook beheerding van de aanzienlijke complexiteit die ermee samenhangt. een van de belangrijkste problemen van bedrijfsinformatica. (semantische integratie van informatie en data ook een aspect van integratie) 5. Informatie, modellen en wetenschap We zagen toepassingen van ICT in bedrijfskundige context. Maar ook economie en bedrijfskunde heeft grote invloed. Men kan steeds actuelere en preciezere modellen maken door de toegenomen verwerkingscapaciteit en de grotere hoeveelheid data en informatie die beschikbaar is. HOOFDSTUK 2 Bouwblokken van Infomatiesystemen : samenvatting 2 soorten bouwblokken. 1. de technologie (ICT) waarmee geautomatiseerde informatiesystemen worden gebouwd. : samenhang hardware, software en netwerken in verschillende tijdsperioden. 2. Methodologieën die in de systeemontwikkeling worden gebruikt. : Combinaties van processen, technieken en andere items. 2.1 Deel systeemontwikkeling 1. Methodologieën Vroeger : elke programmeur gebruikten andere manieren om systemen te bouwen, en vaak werd een probleem meerdere malen opgelost. Men moest manier vinden om systemen te bouwen die wetenschappelijk bewezen tot goede resultaten zou leiden = Methodologie Systeemontwikkeling : gebied dat zich richt op bouwen van informatiesystemen. 2. Enkele definities Processen : Gaat in hoofdzaak over de volgorde waarin bepaalde activiteiten of fases moeten worden uitgevoerd. Vb. Watervalmodel, iteratieve processen. Sofware producten : resultaten van zo’n activiteit. Bv document met vereisten en modellen, software. Techniek : beschrijft hoe een activiteit moet worden uitgevoerd. Bv. Interviewtechnieken : vereisten bepalen. Technieken voor datamodellering : hoe een goed model maken van data? Procesmodellering : Hoe een goed model maken van een proces? Model : product van een activiteit, qua vorm vaak een semi-formeel grafisch model. Bv. Bij data-modellering wordt gebruik gemaakt van Entity Relationship-model. (ER) Proces modellering : BPMN model. Semi formele modellen : weergegeven in grafische notaties en niet in natuurlijke taal. Bij software : UML ( unified modeling language) : standaard in theorie en praktijk. Tools : Voor het uitvoeren van alle activiteiten. Geautomatiseerde hulpmiddelen/software om activiteit doen uitvoeren. Bv. tekenprogramma’s Methodologieën kunnen uit alle bovenstaande elementen bestaan. 3. Watervalmodel = procesmodel dat rond 1970 werd voorgesteld door Royce maar nog steeds veel wordt gebruikt. = Sequentieel uitvoeren van de fasen project managment, analyse, ontwerp, programmeren, testen en onderhoud. Kenmerken sequentieel uitvoeren van 6 activiteiten : strict volgen de fasen na elkaar. Document gebaseerd : Op het einde van elke fase wordt een product gemaakt dat een formeel akkoord moet krijgen van alle belanghebbende. Bv document met handtekening. Lange tijd tussen begin en einde van project : Weinig/ geen feedback van eindgebruiker aan ontwikkelaar. Project management Bouwen van een IS : project. Het is in zeker mate uniek. Hierdoor altijd bepaalde risico’s mee verbonden die door project management onder controle moeten worden gehouden. -> bedrijfskundige aard ( geld, tijd..) of technische ( beveiliging, …) Men plant en volgt projecten op. 3 indicatoren : Kost, tijd en kwaliteit (enerzijds omvang, anderzijds kwaliteitsfactoren.) Analyse fase : met document ! Bepalen wat het IS moet doen : de vereisten volledig, consistent en ondubbelzinnig in kaart brengen en neerschrijven in document : vereistenspecificatie. Hét sleutelmoment/kantelpunt waar bedrijfskundige(informatie) en ICT (technologie) elkaar raken = Men vertrekt vanuit de vereiste om het IS op te bouwen. Stap 1 Alles vereisten verzamelen. Bv : interviews, vragenlijsten brainstormsessies bij belanghebbende, eindgebruikers. MAAR belanghebbende kennen soms de mogelijkheden van ICT niet waardoor ze suboptimale eisen hebben. DUS analist denkt mee en krijgt actievere rol want ken wel genoeg van ICT = Co creatie. 2 soorten vereisten functionele = proces vereisten : Bij welke gebeurtenissen moet het IS iets doen. Data vereisten : Over welke dingen moeten gegevens worden bijgehouden. Niet functionele = Performantie : Met welke snelheid moet het IS werken. Onderhoudbaarheid : Hoe flexibel moet het IS zijn. Herbuikbaarheid : Hoe worden delen van het IS herbruikt in andere IS Stap 2 De vereisten worden gemodelleerd in semi-formele, grafische notaties. Voordelen hiervan: - complexiteitsreductie : Complexiteit wordt verdeeld in kleinere stukken waardoor het stapvoor-stap kan worden aangepakt. - Fouten elimineren : Notatie van modellen zorgen ervoor dat bepaalde fouten niet worden gemaakt. - communicatie met eindgebruiker : grafische voorstelling zorgt voor vereenvoudigde en compactere weergave. Ontwerp Bouw van IS dat voldoet aan de vereisten die vastgelegd werden in de analysefase. -hoog ontwerp niveau : welke subsystemen kunnen we onderscheiden. - laag niveau ontwerp van software : welke algoritmes, hoe benoem ik variabelen hoe goed onderhoudbaar/herbruikbaar, ... Er bestaan technieken en principes voor ontwerpen van een IS, maar geen optimaal ontwerp. Men moet dus zelf het meest geschikte kieze. Op het einde ook document dat ondertekend moet worden door de belanghebbende. Programmeren / implementatiefase Ontwerp zodanig programmeren in een programmeertaal dat software van hoge kwaliteit ontstaat. ( denk aan niet functionele vereisten! ) - keuze programmeertaal : meestgebruikte zijn .NET-programmeertalen. - Technische vragen : welke instructies, declarering variabelen. Bouwen van software is een manuele aangelegenheid : vaak niet geautomatiseerd. Het gebruiken van tools en hergebruik van bibliotheken die bepaalde standaard fucntionaliteiten bevatten kan het wel vergemakkelijken. Kloof ICT en bedrijfskundige in deze fase. Testen Zeer belangrijk! Verificatie : Correspondeert het systeem met de vereistenspecificatie zoals deze in de analysefase werd opgesteld. “werkt het systeem correct”. Validatie : beantwoordt het systeem aan de informatiebehoeften van de eindgebruiker in de realiteit. Onderhoud Alle wijzigingen aan het systeem nadat het in gebruik is genomen. 4 soorten onderhoud : 1. Perfectief onderhoud : nieuwe functionaliteit toevoegen. 2. Adaptief onderhoud : wijzigingen om software naar een ander platform te brengen. 3. Correctief onderhoud : corrigeren van fouten tijdens programmeren. 4. Preventief onderhoud : wijzigt de functionaliteit van de software niet, maar herstelt de structuurdegradatie. 2 Wetten ivm onderhoud. - Law of continuing change/ wet van de voortdurende verandering : Het nut van de software over tijd daalt, tenzij er in antwoord op de wijzigende gebruikersvereiste onderhoud wordt gevoerd. - Law of increasing complexity/ wet van toenemende complexiteit : Bij vele wijzigingen zal de structuur van een programma achteruit gaan. Men moet regelmatig software herstructureren ( preventief onderhoud ! ) Watervalmodel : nuancering - De fasen volgen elkaar in sequentie op door het document gebaseerde karakter : => doorlooptijd is zeer lang zo mogelijkheid om soms overlappingen toe te staan. - Bij kleine projecten is het niet nodig om alle vereisten op papier te zetten, en steeds formeel een handtekening te vragen. -Men kan niet steeds alle behoeften in het begin van het project vaststellen. => systeem in verschillende cycli bouwen = iteratief ontwikkelingsmodel ( Boehm) risico’s worden teruggedrongen door de tussentijdse feedback voorkomt men dat men een systeem bouwt dat niet overeen stemt met wat de eindgebruiker wil. 2.2 Deel ICT 1. Periode 1 : jaren ’60-‘70 pioniersjaren van de beleidsinformatica. IBM 360, UNIVAC I , ARPA-net … Toepassingen in organisaties waren eerder een bijproduct van technologische ontwikkelingen. Informatiesysteemarchitectuur Ontwikkeld in isolatie, geen integratie met andere systemen. Centralisatie : alles gebeurd van uit 1 machine. = één laag of one tier architectuur. Hardware Main frame computers : alle taken van het IS worden hierdoor uitgevoerd. Eindgebruikers gebruikten thin clients of dumb terminals. Men kon iets doorgeven en het mainframe zorgde voor de verwerking en de opmaak van de output. Naarmate het gebruik toenam : kleine, goedkopere mini-computers. Software Gebruikte programmeertaal : COBOL ( Common Business Oriented Language) Specifiek voor zakelijke omgevingen ; makkelijk te lezen en schrijven. Software ook zeer gecentraliseerd : Alle functionaliteiten bevond zich in 1 programma. 1 laag architectuur. Gegevens worden rechtstreeks opgeslagen op de harde schijf. Men kon geen informatie uitwisselen. Na introductie databank wel.. Programma’s vooral voor specifieke organisaties ontworpen en niet aangeboden. Netwerken Weinig spraken van een netwerk. Men begon met het ARPAnet, maar deze kon slechts op enkele mainframes worden aangesloten. Netwerken waren steeds bekabeld. Informatie Nog niet digitaal beschikbaar dus moest telkens manueel worden verzameld en ingegeven worden achteraf : batch verwerking. Vaak in gestructureerde vorm. Informatiesystemen Transaction Processing Systems : gestructureerde informatie Management Information Systems : steeds manueel, dus enkel voor zeer gestandaardiseerde rapporten. Systemen enkel binnen de grens van de afdeling/organisatie. Standaardisatie De verschillende mainframes waren niet compatibel en software was enkel te gebruiken op 1 mainframe. Ook netwerkprotocollen verschilden van elkaar. Integratie-systemen Bij introductie van databank konden applicaties op eenzelfde mainframe gegevens delen. ARPAnet : enkel in onderzoek. Niet tussen organisaties. Integratie- business/IT Grote kloof tussen programmeurs en bedrijfskundige 2. Periode 2 : jaren ‘80 Meer en meer computers in organisaties door meer opportuniteiten en lagere kosten. Informatiesysteemarchitectuur Decentralisatie : verspreiden van verwerkingscapaciteit over verschillende machines. Vaak nog wel in combinatie met gecentraliseerde PCs. Client server architectuur : server beschikt over bepaalde diensten die gebruikt worden door clients die communiceren over een computernetwerk. Client stuur sevice request naar server, waarop deze luister. Fat/thick client : client voert zelf relatief veel taken uit. Thin client : client voert zelf relatief weinig taken uit. Two tier architectuur. Hardware Wet van Moore : Jaarlijk een verdubbeling van het aantal transistoren = sneller ! Betaalbaarder : PC met persoonlijke werkzaamheden. Software Object georiënteerde talen : derde generatie programmeertaal. Object : digitale representatie van iets in de reële wereld : antropomorfisme. Deze bevatten data/attributen en procedures/methoden. Klasse : beschrijft algemene kenmerken(attributen) van een object. Objecten zijn instanties van een bepaalde klasse Instanties : concreet maken van de kenmerken ve klasse door bepaalde waarden toe te kennen aan attributen. Communicatie tussen objecten : messages /berichten. ontvanger reageert door methode uit te voeren met de naam vh bericht. Resultaat wordt teruggezonden. => enige manier om data te verkrijgen. Encapsulatie : attributen zijn niet rechtstreeks toegankelijk. Vb. Java, .NET Meer en meer relationele databanken gebruiken Maatwerk en Pakketten. Netwerken ARPAnet verbond vele universiteiten Andere netwerken naar zelfde model : CSNET, BITNET, NSFNET ( 5 supercomputers) Informatie Data verzameling wordt uitgebreider Men kon data verzamelen voor eigen gebruik; hierdoor vernieuwde presentatie bv streepjescode Vorm informatie verbeterde numerieke data : grafieken Tekstuele data : WYSIWYG Steeds meer semi-gestructureerde data Informatiesystemen Toename : in real-time verwerking Grafische mogelijkheden. Bv bij MIS WYSIWYG. Enterprise collaboration systems ECS en Decision Support systems DSS. Efficiënter maken van interne bedrijfsprocessen door automatisering Standaardisatie Weinig : steeds verschillende netwerkprotocollen en specifieke hardware en software. Automatiseringseilanden : initiatieven voor automatisering waren niet op elkaar afgestemd. Verdieping : hardware Computer bestaat uit verschillende componenten Moederbord : basis van computer waaraan men verschillende componenten kan aansluiten. Het bied communicatiepaden/bussen tussen de verschillende componenten. Het type aansluiting(sockets) bepalen welk type componenten gebruikt kunnen worden. Componenten kunnen apart toegevoegd worden maar zijn vaak geïntegreerd. Invoer apparaten : gegevens en instructies toevoegen en omzetten in een formaat dat computer kan begrijpen. (Bv. muis, toetsenbord) Uitvoer apparaten : verwerkte gegevens weergeven in een formaat dat voor de eindgebruiker te begrijpen is ( Bv. Scherm, printer) Processor of central processing Unit CPU :Verwerking van instructies vervat in een programma. Bestaat uit een control unit : zorgt ervoor dat data die verwerkt moet worde en de instructie om op de data uit te voeren in de registers van de processor geladen wordt. artithmetic-logic unit ALU : voert basisberekeningen uit zoals optellen, aftrekken,… geheugenregisters: kleine snelle geheugeneenheden. Nodig om de miljoenen bewerkingen uit te voeren. Snelheid van de processor wordt door een aantal factoren bepaald: Kloksnelheid : hoeveel keer per seconde kan een stuk data verzet worden of een instructie worden uitgevoerd. Uitgedrukt in GHz(Gigahertz) Woordlengte: het aantal bits dat tegelijkertijd door de processor kan verwerkt worden. Aantal kernen : processor met meerde kernen ( multi-core) worden meer processoren op 1 chip verwerkt om meer te kunnen verwerken zonder de individuele snelheid van kernen te moeten verhogen. Primair geheugen on Random Access Memory (RAM-geheugen) : gegevens die de processor nodig heeft voor verwerkingen op te slagen. Gebruikt voor tijdelijke instructies van actieve programma’s met daar bijhorende gegevens op te slaan. Secundair geheugen : gegevens die bewaard moeten worden voor de toekomst. Bv. Harde schijft. Trager dan het primair geheugen maar wel goedkoper. Servers : computers die worden gebruikt om aan cliënten aan te bieden. Komen niet rechtstreeks in contact met eindgebruiker, en daarom worden componenten geminimaliseerd of weggelaten. Ze worden in klein formaat gebouwd en samen gestoken in 1 server rek. Het samen plaatsen van serverekken: Data centers. Zo kan bv de nood aan specifieke infrastructuur (koeling) om servers draaiende te houden gecentraliseerd worden. ( betere schaalbaarheid en minder kosten) Blade servers: zeer smalle computers met enkel hoogstnoodzakelijke componenten om schaalbaarheid nog beter te verbeteren. ( IBM, HP) Bits : weergave van beide soorten geheugen : kan waarde hebben van 0 tot 1. Op een computerchip worden bits opgeslagen in miljoenen transistoren. Zo kunnen computers veel kleiner worden gemaakt. Byte : groepering van een afgesproken aantal bits. vaak 8, er kunnen 2^8 combinaties uit gevormd worden. Belangrijke tekensets zijn : ASCII : American national Standard Code for Information Interchange. Gebruikt slechts 7 bits. Later Exntended ASCII die 8 bits per byte voorschreef. EBCDIC: Extented Binary Code Decimal Interchange Code. Ontwikkeld door IBM voor gebruikt op mainframe computers. Gebruikt 8 bits-bytes. Unicode : doel is alle gebruikte schriften te kunnen weergeven. Telt 32 bits. Ook afbeeldingen worden opgeslagen met bits : bitmap met rasters van pixels. Verdieping software Eerste generatie programmeertaal : machinetaal. Beschrijft welke instructies op welke data uitgevoerd moeten worden door de CRY. Programmeur moet alle instructies voor ALU en control unit ingeven in numerieke vorm. Programma’s voor een machinetaal moeten specifiek voor een bepaald type processor worden geschreven. => deze worden niet meer gebruikt want teveel fouten. Tweede generatie : assembly talen. Korte tekstcodes ter vervanging van numerieke instructies. Zo makkelijker instructies onthouden en vorige programma’s begrijpen. Nog wel zeer complex en processor afhankelijk. Assembly broncode wordt door een assembler vertaald naar machinecode. Zo kunnen de computers de instructies nog wel begrijpen . Derde generatie: procedurele talen Niet langer meer per processor-instructie een programmeer-instructie. Een programmeerinstructie vertaald zich in verschillende proces-instructies. Ze zijn dus een abstractie van de individuele processor-instructies. De instructies zijn broncode die worden opgeslagen in een bronbestand. De vertaalde code wordt opgeslagen in een object file. Deze object file wordt ij het uitvoeren van het programma in primair geheugen opgeslagen en bevat instructies voor de processor. Vertaling broncode naar object file: complexer dan bij een assembler. Twee types vertalers. 1. Compiler : zelfde manier als assembler. Hele broncode wordt ingelezen en vertaald naar machine taal in object file. 2.Interpreter : zet instructie per instructie om in machinetaal. Geen object file, maar het bronbestand word als programma verspreid. Vierde generatie : niet –procedurele talen Enkel het gewenste resultaat moet worden opgegeven. Men moet niet langer de procedure volgen. Vijfde generatie : Natuurlijke taal programmeertalen Trachten de programmeur in natuurlijke taal de functie van een programma op te laten geven. Vertaalprogramma’s zeer complex, dus nog niet doorbroken. Verdieping : Modilariteit Vanuit modulariteitsperspectief bestaat software uit modules. Module : deel van het systeem die een duidelijke rand of interface heeft met de rest van het systeem. Interface : ingang-uitgaan model waarbij invloeden van de omgeving op de module leiden tot bepaalde effecten die door de module in de omgeving veroorzaakt worden. In software is module : afgescheiden deel met de naam van de module, die de functie of verantwoordelijkheid beschrijft en gebruikt wordt om de module aan te roepen. Applicatie of programma : bestaat uit modules. Hiervoor programmeertaal die constructen bevat. Construct : instructie in die programmeertaal waarbij een module wordt aangemaakt. Bv. pascal, procedures, units. Met deze constructen wordt een artefact opgebouwd. Bestaat uit een modulaire structuur met aantal modules en interacties ertussen. Blackbox, white box perspectief Black box : kan worden aangeroepen zonder dat de aanroeper kennis heeft van de binnenkant van de module. Het is complex reducerend . White box : als module een foutief resultaat produceert moeten de instructies worden worden nagekeken. Bij het oproepen in een taal zoals Pascal systeemnetwerkdiagram : boom van functies. Artefacts die minder modulair zijn : lage granulariteit of bestaat uit 1 grote module ( monolithische structuur) Voordelen modulariteit Hergebruik : ze kunnen in andere apps gebruikt worden zonder opnieuw te ontwikkelen ( soms Not invented here-syndrome) Evolueerbaarheid : flexibiliteit en aanpasbaar tijdens de onderhoudsfase. Periode 3 : jaren ‘90 Informatiesysteemarchitectuur Meer gedecentraliseerde architecturen : gedistribueerde verwerking op meerdere hardware en software. Hardware : servers en clients. Servers : krachtige toestellen waar bv databanken op draaien. Clients zijn laptops, … toestellen die diensten vragen. Software : systemen die allemaal via het internet met elkaar verbonden zijn. 4 lagen architectuur. Laag 1 : databank laag. Biedt toegang tot opgeslagen gegevens en dat applicaties deze gegevens kunnen lezen wanneer dit nodig is. Vaak relationele databanken met SQL als taal. Laag 2 : bevat de applicaties. Hier worden bewerkingen uitgevoerd die specifiek voor de applicatie op het toepassingsdomein zijn. Laag 3 : bevat user interface. Zo kunnen eindgebruikers toegang krijgen tot de applicatie op de applicatie-server. Het bevat verschillende elementen die door servers worden geleverd. Ze zorgen vaak enkel voor de weergave. THIN CLIENT. Veel applicaties worden via het web aangeboden. Toenemende automatisatie. Verschillende software objecten kunnen over hardware machines worden verdeeld. Hardware Performantie van bestaande systemen verbeterd. PC’s worden kleiner (laptops, PDA’s) GSM wordt in gebruik genomen. Software Grote nadruk op software pakketten. ERP pakketten ( enterprise resource planning) : planning voor de aankoop van grondstoffen aanmaken op basis van de productieplanning. => hield geen rekening met capaciteit van machines of personeel. MRP II (manufacturing Resource Planning II) Houden ook de kosten en opbrengsten bij. grootste voordeel : integratie = modules uit elke afdeling van een organisatie. Internt ERP vaak zeer grote relationele databanken. Best ‘vanilla’ gebruikt : zonder aanpassingen want deze zijn duur. Programmeertalen : meer en meer object-geörienteerde programmeertalen. Jave en .NET Complexiteit : informatiesystemen integreren ( Y2K bug) Netwerken Internet : men kon op computers met elkaar communiceren vanuit gescheiden netwerk GSM netwerk met masten. Informatie Veel semi-gestructureerde data : e-mails, smsen, websites. Content Managment Systems CMS. Ongestructureerde data kan worden opgeslagen dor verwerkingssnelheid en opslagscapaciteit. Meer en meer gedrags-georiënteerde data. ( bv locatie, laatst bezocht) Informatiesystemen Veel meer in real-time en grote volumes bij bestaande IS. DDS : naast alle operationele databanken ECS: electronische documenten steeds belangrijker => DMS ( document management systems) richten zich specifiek op websites. Inter-organisatorische informatiesystemen. Onderling meer conctact met andere. Invloed op strategische positie en outsourcing. Standaardisatie Van tekst gebaseerde interface naar vensters in user interfaces. 2 dominante programmeertalen : JAVA en .NET. specifieke talen voor bepaalde lagen. HyperText Markup Language ( HTML): data representeren als een netwerk van knopen door links. WWW geeft hypertext aan door een URL ( uniform resource locator) UML (unified modeling language) : documenteren en visualiseren. Manier om gemeenschappelijke concepten van object-georiënteerde systemen te modelleren. Unified process : methodologie voor ontwikkelen van software. Periode 4: jaren 2000 Informatiesysteemarchitectuur ubiquitous computing : op elk moment en overal kan verwerking gebeuren toekomst : internet of things ( bv espresso apparaten aansluiten) centraal : zoekmachines veel automatisatie maar manueel werk blijft bestaan Hardware grote variatie van mobiele hardware met geavanceerde user interfaces en eigen processoren. Servers : toename verwerkingscapaciteit door krachtigere processoren die wereldwijd aan elkaar gekoppeld zijn voor complexe berekeningen te doen. Big data = enorme hoeveelheid gegevens die geproduceerd worden bij data warehousing en steeds grondigere analyse. Software SOA ( service-Oriented Architecturen) bestaande uit web services : modules die wereldwijd met andere webs over het internet kunnen communiceren. modulaire bouwblokjes voor software die een beeld suggereren van software op basis van hergebruik geassembleerd wordt uit web services tegen lage kost en aan hoge snelheid. Opkomst web services : alternatief voor pakketten ( leesbaarder! ) Relationele databanken spelen nog steeds grote rol maar er ontstaan nieuwe types. Open software : broncode is publiek beschikbaar. Uitbesteding : cloud computing. Deel van een informatiesysteem wordt verkocht. Iaas / infrastructure as a service : toegang tot hardware Paas / platform as service : servers die worden gebruikt en up to date gehouden Saas / software as service : google docs, … Netwerken Mobiel netwerk: altijd en overal internet Informatie Nieuwe presentaties bv QR codes Meer en meer ongestructureerde informatie waar structuur aan word herkent. Steeds meer gedrag georiënteerde informatie. Semantiek toevoegen aan informatie : HR/XML .. Informatiesystemen DSS : toename rekencapaciteit TPS : in real time beursacties verwerken ECS: meer functionaliteit in tekstverwerkers, rekenbladen … Soorten beginnen te versmelten. Bv DSS en TPS. Steeds meer inter-organisatorische systemen Commoditizatie : hardware en netwerkverbindingen worden zo goedkoop dat ze quase alomtegenwoordig beschikbaar zijn. 2.3 Conclusies 1. Informatiesysteemarchitectuur Gecentraliseerde architecturen => gedecentraliseerde architectuur Te weinig informatie digitaal beschikbaar => information overload 1 soort, op 1 plaats => draagbare en niet-draagbare op elk moment en overal manueel => digitalisatie en automatisatie 2. Hardware en netwerken Enorme toename van performantie, vandaag nog steeds uitdagingen Periode 1,2 : mainframes en PC Periode 3,4 : vooruitgang netwerken 3. Software Veel minder technische vooruitgang dan die van hardware en netwerken 1. Programmeertalen : nog veel kenmerken van vroeger 2. Relationele databanken nog steeds dominant 3. Pakketten vereisen dat de eindgebruiker zich moet aanpassen aan het pakket. Hiervoor vaak niet flexibel genoeg. Momenteel opkomst : SOA ( service-oriented architecturen) : optimale compromis Y2K probleem en wet van toenemende complexiteit : toename vraag naar flexibiliteit en hoe complexer, hoe moeilijker men hier dus aan kan beantwoorden. 4. Informatie Verbreding van alle soorten informatie ( gestructureerde /ongestructureerde /semi/ transactie-gerelateerde / gedrags-gerelateerde ) Vorm : tekstuele maar ook grafische presentatie Information overload, sommige informatie nog steeds niet digitaal beschikbaar Semantiek van data- en procesmodellen nog steeds bepaald door eindgebruikers in de analyse fase van het watervalmodel : laatste jaren opkomst semantische standaarden XBRL en HR XLM( niet in op alle domeinen zijn er standaarden : vaak integratieproblemen hierdoor) 5.Informatiesystemen Toegenomen performantie : vebreding TPS en MIS, ECS en DSS( vooral bij DSS “big data” of “data warehousing”) Batch verwerking => real time verwerking door toegenomen performantie van hardware en netwerken Informatie systemen per departemens => organisatie-brede informatiesystemen ( bv ERP of inter-organisatorische informatiesystemen) Strategische aard : 1st : IS verhoogde efficiëntie interne bedrijfsprocessen 2 : IS voor competitief voordeel te behalen : voor extern belanghebbende 3: ICT = commodity 6.Intergratie jaren ’60 : alle applicaties binnen een organisatie op zelfde mainframe, maar niet geïntegreerd (geen eigen bestanden, niet dezelfde gegevens tegelijkertijd bewerken) Opkomst databank : eerste stap naar integratie Belangrijker : opkomst bedrijfsprocessen, ERP Incompatibele eilandapplicaties => 1 bedrijf omspannend standaardpakket Internet speelt grote rol : door web services communiceren de bouwblokjes van software Toch nog steeds niet doel bereikt 7.Standaardistie Hardware en netwerken : duidelijke standaardisatie Internet :alle soorten en merken hardware kunnen gekoppeld worden. Software : programmeertalen beperkt , standaardnotatie voor object-georiënteerde programmeertalen en modelleren van processen. Opkomst pakketten Web services en opkomst SOA’s = niet noodzakelijk tegenvb van standaardisatie maar opkomst nieuwe technische standaarden Semantiek : minder gestandaardiseerd Gevolg standaardisatie = commoditizatie ( omdat die verschillen tussen hardware,software,netwerken en IS wegwerken, is het niet meer een alomtegenwoordig/gratis goed) ?? HOOFDSTUK 3 Practicum : SQL 1.Introductie SQL : structured query language = taal om data in relationele databanken aan te maken ,bewerken en opvragen = declaratieve taal voor DataBase Management Systems ( DBMS) vb: Micrososft Acces 1. Onderdelen van SQL Data definition language DDL Commando’s die toelaten om de tabellen in een database aan te maken en aan te passen. Vb : CREATE TABLE, ALTER TABLE, DROP TABLE Data manipulation language DML Commando’s die zorgen voor de invoer en bewerking van data in de database. Vb : INSERT, UPDATE, DELETE Data Query language DQL Om bepaalde data op te vragen SELECT ( enige commando in DQL) Data Control Language DCL Om toegangsrechten van gebruikers tot de data vast te leggen. Transaction Control Commands TCL Om groepen van commando’s die samen uitgevoerd moeten worden op te slaan. 2. Verklaring Syntax Bij het verklaren van de syntax van SQL commando’s worden volgende afspraken gevolgd : Commando’s in hoofdletters; letterlijk overnemen Naam van variabele in kleine letters ; invullen om zo concrete en uitvoerbare opdrachten te verkrijgen. Optionele delen van de syntax tussen vierkante haakjes plaatsen Op het einde van elk commando : punt komma schrijven om aan te tonen dat het commando beëindigd is. 2. Data Definition Language = gedeelte van SQL dat gebruikt wordt om de structuur van data in de database aan te maken. De structuur van data wordt op drie manieren beschreven: 1.Definiëren van tabellen. Per tabel het commando : CREATE TABLE gebruiken. In dit commando wordt de tabelnaam vastgelegd die beschrijft welke data de tabel bevat en de lijst van attributen die elk record van de tabel moet bevatten. CREATE TABLE tabelnaam (attributenlijst) ; 2. Het definiëren van datatype dat voor een bepaald attribuut moet worden gebruikt. Vb : Type Verklaring Int ( lengte) Een Integer (geheel getal) Lengte geeft aantal bytes weer die in het geheugen gereserveerd worden voor 1 waarde van dit attribuut. Varchar ( lengte) String Double ( lengte, decimalen) Kommagetal, met het aantal gereserveerde bytes en het aantal decimalen. Date Datum in het formaat YYYY-MM-DD Blob Een Binary Large Object 3. Per attribuut bijkomende constrains of beperkingen opleggen. Deze beperken de waarde die aan het attribuut gegeven kan worden. Primary key: welk attribuut van een record zorgt voor de identificatie. 2 records kunnen niet dezelfde waarde voor een attribuut hebben. Ofwel apart id-attribuut aanmaken. Bestaan attribuut gebruiken. Combinatie van verschillende attributen gebruiken. Elke tabel moet 1 primary key constraint hebben. Aangegeven door PRIMARY KEY achter het datatype van de parameter/lijst attributen te plaatsen. Foreign key : Om naar records van een andere tabel te verwijzen. Verbanden tussen tabellen maken. Een attribuut dat een foreign key is verwijst naar primary key van andere tabel. Weergegeven door toe te voegen achter attributenlijst : FOREIGN KEY (attribuut) REFERENCES tabelnaam (primary key) Beperking opleggen aan dat attribuut : enkel verwijzen naar bestaande waarden van de primarykey. NOT NULL : parameter mag niet worden leeggelaten UNIQUE : moet uniek zijn, geen twee records met dezelfde waarde. Zie voorbeeld pg 74. 3. Manipulation language Commando’s worden gebruikt om data in te voeren (INSERT) , aan te passen (UPDATE) en te verwijderen (DELETE). De definitie van een tabel moet gekend zijn bij het ingeven van de data. Vb blz 75.1. INSERT INTO tabelnaam ( attributenlijst) VALUES (waardenlijst) Om gegevens te verwijderen : DELETE commando. Rijen opgeven die verwijderd moeten worden. Vb blz 75.2. DELETE FROM tabelnaam WHERE voorwaarde ; Gegevens aanpassen : UPDATE. Alle rijen die aan de voorwaarde voldoen worden aangepast en krijgen de nieuwe waarden die in het commando worden opgegeven. Vb blza 76.1 UPDATE tabelnaam SET attribuut = waarde WHERE voorwaarde; 4. Data query Language Bevat SELECT commando om gegevens uit de tabellen op te vragen. Specifiek gebruik hiervan is Query. : opzetten van queries is nodig om juist die data te selecteren die bruikbaar is om een bepaalde bedrijfskundige vraag te beantwoorden. 1. Selectie en projectie met welke verschillende opties kunnen gegevens uit een tabel worden opgevraagd. Meest eenvoudige commando SELECT * FROM tabelnaam ; Resultaat : geeft alle records in de tabel (rijen) alle attributen (kolommen) weer. Via projectie kan het aantal attributen beperkt worden. Attribuutnamen die getoond worden, worden expliciet opgenomen in de query. SELECT klantNaam FROM verkopen ; Geeft enkel de klantennamen uit de tabel verkopen weer. Via selectie kunnen resultaten ook beperkt worden. Door toevoeging van een WHERE-zin wordt voorwaarde gespecifieerd. Uitkomst is TRUE of FALSE. Voor elke rij die weergegeven kan worden, wordt de VW getest. Indien het de conditie TRUE oplevert, wordt het resultaat opgenomen. Meeste voorwaarde met vergelijkingsoperatoren : =,>,<,=<,=> en <>. Zie BLZ 77! IS NULL = records selecteren waar een bepaald attribuut leeg is. IS NOT NULL = records selecteren waarvan een bepaald attribuut niet leeg is. IN = selecteert waar de waarde van attribuut voorkomt in een bepaalde groep waarden. LIKE = geen exacte string vergelijken, maar een patroon. Patroon wordt uitgedrukt door % te gebruiken. BETWEEN = waarden binnen een bepaald bereik selecteren. AND, OR en NOT kunnen gebruikt worden om combinaties van condities te maken. 2. Sorteren van resultaten door toevoeging ORDER BY + attribuut : laat de volgorde van de records bepalen. ASC / DESC : records in oplopende of aflopende waarden rangschikken. Meerdere attributen kunnen worden opgegeven om binnen een set van records met dezelfde waarden nogmaals een sortering uit te voeren. Bv eerst op klanten naam en die met dezelfde klantennaam op productnaam. Zie vb 1 BLZ 78. 3. Aggregaat functies informatie van verschillende records samen vatten. COUNT : Telt het aantal records waarvan het opgegeven attribuut niet leeg is. Vaak weergegeven met * om alle attributen van een record aan te duiden. DISTINCT : aantal verschillende waarden voor dat attribuut tellen. Bij kolommen met numerieke functies kan men volgende aggregaat-functies gebruiken: SUM(attribuut) : som van de opgegeven waarden van een attribuut AVG(attribuut) : gemiddelde van de opgegeven waarden van het attribuut MAX(attribuut) : retourneert de maximale waarden van het attribuut. MIN(attribuut): retourneert de minimale waarde van het attribuut. 4. Groeperen van records GROUP BY : records groeperen op basis van hun attribuut-waarden. GROUP BY : alle records met dezelfde waarde voor alle attributen. SELECT ProductNaam , SUM ( aantal) FROM verkopen GROUP BY productNaam ; een samenvatting van de waarden van een bepaalde groep records bekomen worden. Hier groepeert men de records per productnaam en berekend men per groep het aantal verkochte goederen. HAVING : restricties opleggen aan groepen. Enkel in combinatie met GROUP BY en moet er net achter geplaats worden. Als resultaat ook FALSE of TRUE. Bij de conditie HAVING wordt het best getest na het groeperen. Bij WHERE gebeurd de conditie getest voor het groeperen. VB blza 79.2 5. Joining Alle voorgaande commando’s worden uitgevoerd op 1 tabel. Nadelig want : data redundantie : heel vaak dezelfde data opgeslagen, bij update moet men op verschillende plaatsen updaten. Oplossing = gegevens splitsen over meerdere tabellen. Om informatie over gegevens uit verschillende tabellen op te vragen voegt men meerdere tabellen samen door “join”. Equi join : records uit meerdere tabellen worden samengevoegd op basis van gelijke waarden tussen een of meerdere velden in beide tabellen. = Als primaire key van een bepaalde tabel wordt gebruikt als foreign key in een andere tabel. SELECT kolomnamen FRIL tabel1, tabel2 WHERE tabel1.kolom1 = tabel2.kolom 2 Indien attribuutnaam in verschillende kolommen voorkomt, moet men verduidelijken welke men juist bedoeld. Hiervoor kan de naam van de tabel worden toegevoegd, gescheiden door een punt. 6. Methode voor het opstellen van Queries welke tabellen zijn nodig? Welke joins moeten worden uitgevoerd? Welke records zijn er nodig? (selectie) Is een groepering van records nodig? Welke restricties gelden op groepsniveau? Welke attributen zijn gevraagd? ( projectie) Moet een bepaalde sortering toegepast worden? Zie voorbeeld oefening.