Dus wat is een database eigenlijk? [MakeUseOf Explains]
Voor een programmeur of een technologie-liefhebber is het concept van een database iets dat echt als vanzelfsprekend kan worden beschouwd. Misschien heb je Christian's handleiding gelezen over hoe MySQL werkt voor WordPress A Stap voor stap MySQL-zelfstudie voor bloggers met een zelf gehoste WordPress Een stapsgewijze MySQL-zelfstudie voor bloggers met een zelfhosting Wordpress Als je een blogger bent, is de kans zijn dat u WordPress gebruikt. Er zijn twee manieren waarop u WordPress kunt gebruiken, ideaal voor mensen met technische kennis en mensen zonder. De eerste is om ... Lees meer, of mijn artikel over het gebruik van SQLite Database Browser Leer SQL of maak een eenvoudige database met SQLite Database Browser Leer SQL of maak een eenvoudige database met SQLite Database Browser Heb je weleens een database nodig, 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 uw doel nu is ... Lees meer om te leren hoe u een eenvoudige database kunt gebruiken. Voor veel mensen is het concept van een database zelf 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 heel veel dat eenvoudig is.
Aan de andere kant hoeft het concept van een relationele database - in de eenvoudigste vorm - niet echt ingewikkeld te zijn. Voordat u aanneemt dat dit niet iets is dat u moet weten, moet u er rekening mee houden dat u vrijwel elke dag van uw leven een database met een of andere vorm gebruikt. Als u geld uit de pinautomaat haalt, een artikel koopt met uw frequente klantenkaart of een badge in de sportschool, dan vult u een aantal tafels of tafels in een database..
Dus waarom zou het je iets kunnen schelen? Welnu, want als je eenmaal begrijpt hoe een database werkt en hoe gegevens die volledig onafhankelijk lijken te zijn, kunnen worden gecorreleerd met andere gegevens, zul je echt waarderen - en hopelijk wees je voorzichtiger - hoe die interconnecties terug kunnen komen om je te achtervolgen.
Hoe wist dat andere kledingbedrijf je een catalogus met formele kleding te sturen minder dan twee weken nadat je net een pak had gekocht? Hoe wist de autohandelaar drie jaar nadat u een auto had gekocht, of de garantie bijna was en om u een aanbod van een verlengde garantie te sturen? Het gaat allemaal om vragen, 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-instructie met uw ogen dicht kan schrijven, zal dit bericht u waarschijnlijk tot tranen vervelen. Maar, als je helemaal onbekend bent met het concept van databases, of je bent nieuwsgierig 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 eigenlijk Excel gebruiken. Excel is een uitstekende tool om een spreadsheet te maken, maar een spreadsheet is gewoon een verzameling van wat zou worden genoemd “tafels” in een database. Een tabel is precies hoe het klinkt, een tabel vol met gegevens die per veld zijn georganiseerd.
In ons voorbeeld gaan we doen alsof dit de database van een sportschool is. Deze fictieve sportschool heeft een lidmaatschap en we kunnen doen alsof de enkele tabel hierboven de informatie is die wordt gevuld wanneer een nieuw lid zich aanmeldt bij de healthclub. Een deel van het aanmeldingsproces is een afweging, zodat de club je kan helpen met het bedenken van nieuwe manieren om je gewicht en je gezondheid te beheren. In feite heeft de gezondheidsclub eigenlijk een geweldig café met gezondheidsvoeding op het menu, leden kunnen een hapje eten van iets gezonds direct na een training, of een drankje pakken vlak voordat.
Omdat dit een zeer high-tech club is, hebben ze ook een andere tabel aan hun database toegevoegd. In de volgende tabel worden nieuwe gegevens toegevoegd telkens wanneer een lid iets koopt in het healthfood-café. Deze transactie (een andere databaseterm voor het optellen of aftrekken van een record) vindt plaats direct bij het register. U zult merken dat er tussen de twee tabellen een aantal vergelijkbare gegevens zijn, 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 is wat programmeurs helpt om verbinding te maken met de puntjes, om zo te zeggen. Ik zal je wat logica laten zien die daar in een ogenblik op ingaat, maar eerst moet de club toevoegen aan zijn steeds groeiende database. Het is duidelijk dat wanneer leden lid worden van de club of de club verlaten, ze hun club-id moeten gebruiken “insigne” in en uit met behulp van de digitale scanner. Deze actie vult nog een ander tafel. Deze nieuwe tabel houdt eenvoudig bij wanneer het lid ingecheckt en uitgecheckt is van de gezondheidsclub.
Dus daar heb je het. Een heel eenvoudige database die de healthclub heeft samengesteld. Drie basistabellen met zeer unieke toepassingen. Een daarvan is de aanmeldingslijst voor leden, de andere is een record van aankopen in de health clubwinkel en de derde is de inlog- en uitlogtijd van elk lid. Dit zijn allemaal schijnbaar ongerelateerde informatie, toch??
Welnu, de magie van een relationele database is dat je informatie uit elk van deze tabellen kunt extraheren en ze vervolgens kunt correleren om heel interessante gegevens te vinden. Laten we bijvoorbeeld zeggen dat de club wil uitzoeken wat voor soort voedsel de zwaarste leden in het café eten. Ze zouden dit gemakkelijk kunnen achterhalen door een “vraag” tegen de database, vraag de lidmaatschapstoewijzingstabel voor de gewichten van leden boven een bepaald gewicht - laten we zeggen 200 pond. Dan zou je de café-inkooptafel vragen om de aankopen van die mensen die meer dan 200 pond wegen.
Wanneer je zo een “vraag” tegen een database biedt het de resultaten in een soort van “tijdelijk” nieuwe tafel. Dit is hoe zo'n nieuwe tafel eruit ziet. Het is een lijst van wat de zwaarste leden van de club hebben gekocht om te eten en te drinken in het health club cafe.
De query-taal is eigenlijk vrij eenvoudig, voor iets van deze aard. In Microsoft Access bijvoorbeeld, als de lidmaatschapstabel wordt aangeroepen “lidmaatschap” en de café-inkooptabel is “aankoop”, de zoekopdracht kan er als volgt uitzien: “SELECT purchase.member, purchase.description, purchase.date FROM purchase WHERE membership.name == purchasing.name AND membership.weight> 200”
Als je nu kijkt naar de informatie die door de healthclub is verzameld, kun je zien wat voor soort dingen de club kan bedenken. Hebben mensen die op bepaalde momenten van de dag inloggen, de neiging meer in het café te kopen? Tonen mensen van bepaalde leeftijden vaker op bepaalde tijden van de dag in? Al deze informatie helpt een bedrijf dingen zoals advertentiecampagnes of marketingcampagnes te implementeren.
Andere soorten databases
Nu u weet hoe een database werkt, welke soorten databases kunt u tegenkomen in uw dagelijks leven? Wel, altijd wanneer je de meeste blogs of websites bezoekt en een reactie plaatst of je aanmeldt, heb je interactie met een database. In het geval van WordPress ziet de database er ongeveer zo uit.
Zoals u ziet, zijn er een hoop tafels - 15 in dit geval - om allerlei soorten informatie te bewaren, zoals gebruikersgegevens, postinformatie, opmerkingen en meer. Dit is de ruggengraat van een WordPress-blog en veel andere geavanceerde sites hebben vergelijkbare back-ends van de database.
Wanneer u een van die tabellen opent, zoals de berichtentabel, kunt u zien dat alle informatie die op de daadwerkelijke webpagina wordt weergegeven, direct in een database wordt opgeslagen.
Als je een gamer bent, heb je waarschijnlijk een interactie met een database gehad. Sommige games zijn meer afhankelijk van een back-enddatabase en waarschijnlijk zijn de meest database-intensieve games multiplayer online games. Als je bijvoorbeeld bekend bent met het enorme online ruimtespel OGame, is dat een voorbeeld van een dergelijk online spel dat enorm afhankelijk is van een database om de show uit te voeren. Alleen de spelerslijst voor een van de werelden is duidelijk ingedeeld zoals je zou verwachten in elke databasetabel.
Gamedatabases bevatten alles van gebruikerscores en prestaties tot actuele spelitestatistieken of onderlinge relaties tussen personages, objecten en meer. Veel games zouden helemaal niet mogelijk zijn als de back-end-database de show niet zou draaien.
Een andere plaats waar u zeker een database tegenkomt, is wanneer u online winkelt. Bekijk die mooi geformatteerde productresultaten die op Amazon worden vermeld nadat u een zoekopdracht uitvoert waarbij u op zoek bent naar een product?
Yup, die werden geëxtraheerd uit een database, met behulp van een zoekopdracht zoals het voorbeeld dat ik hierboven liet zien (zij het iets ingewikkelder natuurlijk). En als je doorgaat en besluit om verder te gaan met die Amazon-aankoop, kun je er zeker van zijn dat je aankoopgegevens en geschiedenis een nieuwe tafel vormen in de enorme database van Amazon.
Een andere plaats waarvan u niet vermoedt dat deze afhankelijk is van een database, is uw eigen computerregister. Dit wordt eigenlijk a genoemd “hiërarchische” database, want zoals u kunt zien wanneer u door het register bladert, wordt de informatie in een grotere hiërarchie opgeslagen dan in een relationele indeling. Het uitgangspunt is echter hetzelfde.
Mensen kunnen zelfs query's opstellen om informatie uit het systeemregister te extraheren die er net zo uit ziet als databasequery's, behalve de zoekopdracht “tafel” die wordt gebruikt is een KeyName en de “VALUENAME” zijn de feitelijke gegevens die in de database voor die sleutel zijn opgeslagen.
U hoeft dus niet echt te weten hoe u een database moet programmeren of zelfs hoe u er een kunt gebruiken, maar door u bewust te zijn van de hoeveelheden gegevens die deze databases kunnen opslaan en hoe gemakkelijk ze kunnen worden gebruikt om informatie te correleren die erg lijkt anders in de echte wereld, kunt u alert blijven op het type informatie dat u mogelijk wilt delen (of niet delen) met bedrijven.
Heeft deze uitleg van databaseontwerp geholpen bij het begrijpen hoe ze in je eigen leven werken? Ben je verbaasd hoe gemakkelijk het is om de stippen te verbinden voor dingen die je elke dag doet? Deel uw eigen gedachten over databases in de opmerkingen hieronder.