Advertentie
Voor een programmeur of een technologieliefhebber is het concept van een database iets dat vanzelfsprekend is. Misschien heb je de handleiding van Christian gelezen over hoe MySQL werkt voor WordPress Een stapsgewijze MySQL-zelfstudie voor zelf-gehoste WordPress-bloggersAls je een blogger bent, is de kans groot dat je WordPress gebruikt. Er zijn twee manieren waarop u WordPress kunt gebruiken, ideaal voor mensen met wat technische knowhow en mensen zonder. De eerste is om ... Lees verder , of mijn artikel over het gebruik SQLite Database Browser Leer SQL of maak een eenvoudige database met SQLite Database BrowserHeb je ooit een database nodig gehad, maar je kunt Microsoft Access niet echt betalen, en je kunt het je zeker niet veroorloven om thuis een Oracle-server te installeren en te gebruiken. Of je doel nu is ... Lees verder om te leren hoe je een simpele database gebruikt. Voor veel mensen is het concept van een database echter een beetje vreemd. SQL-aanroepen, query's, tabellen, records, sleutels - al deze termen en meer vormen het gebied van databaseontwerp en databasebeheer, en er is niet veel eenvoudigs aan.
Aan de andere kant hoeft het concept van een relationele database - in de eenvoudigste vorm - niet echt overdreven ingewikkeld te zijn. Voordat je aanneemt dat dit niet iets is dat je moet weten, bedenk dan dat je bijna elke dag van je leven interactie hebt met een database van een of andere vorm. Wanneer u geld uit de geldautomaat haalt, een artikel koopt met uw frequente klantenkaart of zich aanmeldt bij de sportschool, vult u eigenlijk een tafel of tafels in een database in.
Dus waarom zou je erom geven? Welnu, want als je eenmaal begrijpt hoe een database werkt en hoe gegevens die volledig onafhankelijk lijken te zijn, kunnen worden gecorreleerd andere gegevens, zult u echt gaan waarderen - en hopelijk zijn er meer waarschuwingen - over hoe die onderlinge verbindingen weer kunnen rondspoken u.
Hoe wist dat andere kledingbedrijf je minder dan twee weken nadat je net een pak had gekocht een catalogus met formele kleding te sturen? Hoe wist de autodealer drie jaar nadat u een auto kocht, dat de garantie bijna op is en u een aanbod van verlengde garantie te sturen? Het draait allemaal om zoekopdrachten, correlaties tussen gegevens en iets doen aan de resultaten. Dat is de magie van een database.
Hoe een database werkt
Dus, als u een databasebeheerder bent of een programmeur die een SQL-statement met gesloten ogen kan schrijven, zal dit bericht u waarschijnlijk tot tranen vervelen. Maar als je helemaal nieuw bent in het concept van databases, of je bent benieuwd hoe ze een deel van je leven kunnen zijn zonder dat je het weet, dan is dit het artikel voor jou.
Om uit te leggen hoe een database werkt, ga ik Excel gebruiken. Excel is een uitstekend hulpmiddel om een spreadsheet te maken, maar een spreadsheet is gewoon een verzameling van zogenaamde "tabellen" in een database. Een tabel is precies zoals het klinkt, een tabel vol met gegevens die op veld zijn geordend.
In ons voorbeeld gaan we doen alsof dit de database is van een sportschool. Deze fictieve sportschool heeft een lidmaatschap en we kunnen doen alsof de enkele tabel hierboven de informatie is die wordt ingevuld wanneer een nieuw lid zich aanmeldt bij de healthclub. Een deel van het aanmeldingsproces is wegen, zodat de club u kan helpen met het bedenken van nieuwe manieren om uw gewicht en uw gezondheid te beheersen. In feite heeft de healthclub eigenlijk een geweldig café met gezonde voeding op het menu, leden kunnen een hapje eten van iets gezonds direct na een training of een drankje drinken vlak daarvoor.
Omdat dit een zeer hightech club is, hebben ze ook nog een tabel aan hun database toegevoegd. Deze volgende tabel krijgt nieuwe gegevens elke keer dat een lid iets koopt in het healthfood-café. Deze transactie (een andere databaseterm voor het optellen of aftrekken van een record) vindt direct in het register plaats. U zult merken dat er tussen de twee tabellen enkele vergelijkbare gegevens staan, zoals de naam van het lid. Er zijn ook unieke gegevens, zoals de transactie-ID en de datum en tijd.
De unieke gegevens helpen om alle informatie georganiseerd te houden, terwijl de gemeenschappelijke gegevens tussen alle tabellen programmeurs helpen om als het ware de puntjes met elkaar te verbinden. Ik zal je wat logica laten zien die daar zo op ingaat, maar eerst moet de club toevoegen aan de steeds groter wordende database. Het is duidelijk dat wanneer leden de club binnenkomen of de club verlaten, ze hun club-ID moeten gebruiken om in en uit te loggen met de digitale scanner. Deze actie is nog niet voltooid een andere tafel. Deze nieuwe tafel houdt eenvoudig bij wanneer het lid in- en uitgecheckt is bij de healthclub.
Dus daar heb je het. Een heel simpele database die de healthclub heeft samengesteld. Drie basistafels met zeer uniek gebruik. De ene is de aanmeldingslijst voor het lidmaatschap, de andere is een overzicht van aankopen in de healthclubwinkel en de derde is de aanmeld- en afmeldtijden van elk lid. Dit zijn allemaal schijnbaar niet-gerelateerde informatie, toch?
De magie van een relationele database is dat je informatie uit elk van deze tabellen kunt halen en ze vervolgens kunt correleren om echt interessante gegevens te krijgen. Laten we bijvoorbeeld zeggen dat de club wil weten wat voor soort voedsel de zwaarste leden in het café eten. Ze konden dit gemakkelijk achterhalen door een "query" uit te voeren in de database, waarbij ze de aanmeldtabel voor het lidmaatschap vragen naar de gewichten van leden boven een bepaald gewicht - laten we zeggen 200 pond. Dan zou je de aankooptafel van het café vragen voor de aankopen van die mensen die meer dan 200 pond wegen.
Wanneer u een dergelijke "query" uitvoert op een database, levert dit de resultaten op in een soort "tijdelijke" nieuwe tabel. Zo ziet zo'n nieuwe tafel eruit. Het is een lijst van wat de zwaarste leden van de club kochten om te eten en te drinken in het healthclub-café.
De querytaal is eigenlijk vrij eenvoudig, voor iets van deze aard. Als in Microsoft Access bijvoorbeeld de lidmaatschapstabel "lidmaatschap" wordt genoemd en de caféaankooptabel "aankoop", ziet de vraag er mogelijk uit dit: "SELECT purchase.member, purchase.description, purchase.date FROM purchase WHERE membership.name == purchase.name AND membership.weight> 200"
Wanneer u nu begint te kijken naar de informatie die door de hele healthclub is verzameld, kunt u zien wat voor soort dingen de club kan achterhalen. Kopen mensen die op bepaalde tijden van de dag inloggen meer in het café? Komen mensen van bepaalde leeftijdsgroepen vaker op bepaalde momenten van de dag inchecken? Al deze informatie helpt een bedrijf zaken als advertenties of marketingcampagnes te implementeren.
Andere soorten databases
Nu u weet hoe een database werkt, welke soorten databases kunt u in uw dagelijks leven tegenkomen? Welnu, elke keer dat u de meeste blogs of websites bezoekt en een opmerking plaatst of inlogt, heeft u interactie met een database. In het geval van WordPress ziet de database er ongeveer zo uit.
Zoals je kunt zien, zijn er een aantal tabellen - in dit geval 15 - met allerlei informatie zoals gebruikersgegevens, postinformatie, opmerkingen en meer. Dit is de ruggengraat van een WordPress-blog en veel andere geavanceerde sites hebben vergelijkbare database-back-ends.
Wanneer u een van die tabellen opent, zoals de posts-tabel bijvoorbeeld, kunt u zien dat alle informatie die op de daadwerkelijke webpagina wordt weergegeven, direct in een database wordt opgeslagen.
Als je helemaal een gamer bent, heb je waarschijnlijk interactie gehad met een database. Sommige games zijn sterker afhankelijk van een back-enddatabase en waarschijnlijk zijn de meest database-intensieve games multiplayer online games. Als je bijvoorbeeld bekend bent met de enorme online ruimtespel OGame, dan is dat een voorbeeld van zo'n online game die enorm afhankelijk is van een database om de show uit te voeren. Alleen de spelerslijst voor een van de werelden is duidelijk ingedeeld, net zoals je zou verwachten in een databasetabel.
Speldatabases bevatten alles, van gebruikersscores en prestaties tot actuele spelitemstatistieken of onderlinge relaties tussen personages, objecten en meer. Veel games zouden helemaal niet mogelijk zijn zonder de back-enddatabase om de show uit te voeren.
Een andere plaats waar u zeker een database tegenkomt, is wanneer u online winkelt. Zie je die mooi opgemaakte productresultaten die op Amazon worden vermeld nadat je een zoekopdracht hebt uitgevoerd op zoek naar een product?
Ja, die zijn uit een database gehaald met behulp van een query zoals het voorbeeld dat ik hierboven liet zien (zij het iets gecompliceerder natuurlijk). En als u doorgaat en besluit om verder te gaan met die Amazon-aankoop, kunt u er zeker van zijn dat uw aankoopgegevens en geschiedenis nog een andere tafel in de enorme database van Amazon vullen.
Een andere plaats waarvan u niet vermoedt dat het afhangt van een database, is uw eigen computerregister. Dit wordt eigenlijk een "hiërarchische" database genoemd, omdat, zoals u kunt zien wanneer u door het register bladert, de informatie in een meer hiërarchie wordt opgeslagen dan in een relationeel formaat. Het uitgangspunt is echter hetzelfde.
Mensen kunnen queries schrijven om informatie uit het systeemregister te halen die er precies zo uitziet als databasequery's, behalve de opzoektabel die wordt gebruikt, is een KeyName en de 'ValueName' zijn de daadwerkelijke gegevens die daarvoor in de database zijn opgeslagen sleutel.
U hoeft dus niet echt te weten hoe u een database moet programmeren of zelfs maar hoe u er een moet gebruiken, maar door op de hoogte te zijn van de hoeveelheden gegevens die deze databases kunnen opslaan en hoe gemakkelijk ze kan worden gebruikt om informatie te correleren die in de echte wereld erg verschillend lijkt, u kunt alert blijven op het type informatie dat u mogelijk wilt delen (of niet wilt delen) met ondernemingen.
Heeft deze uitleg van database-ontwerp geholpen om te begrijpen hoe ze in uw eigen leven werken? Ben je verbaasd hoe gemakkelijk het is om de punten te verbinden voor dingen die je elke dag doet? Deel uw eigen mening over databases in de opmerkingen hieronder.
Afbeeldingscredits: Symbolische gegevensuitwisseling via Shutterstock
Ryan heeft een BSc-graad in elektrotechniek. Hij heeft 13 jaar in automatiseringstechniek gewerkt, 5 jaar in IT en is nu een Apps Engineer. Hij was een voormalig hoofdredacteur van MakeUseOf, hij sprak op nationale conferenties over datavisualisatie en was te zien op nationale tv en radio.