Annons
För en programmerare eller en teknikentusiast är begreppet en databas något som man kan ta för givet. Du kanske har läst Christian's guide till hur MySQL fungerar för WordPress En steg-för-steg MySQL-tutorial för självvärda Wordpress-bloggareOm du är en bloggare är chansen stor att du använder WordPress. Det finns två sätt på vilka du kan använda WordPress, perfekt för dem med viss teknisk kunskap och de utan. Den första är att ... Läs mer , eller min artikel om användning SQLite-databasbläsare Lär dig SQL eller skapa en enkel databas med SQLite-databasbläsareHar du någonsin hittat dig själv i behov av en databas, men du har inte riktigt råd med Microsoft Access, och du har verkligen inte råd att installera och driva en Oracle-server hemma. Oavsett om ditt mål är ... Läs mer att lära sig att använda en enkel databas. Men för många människor är konceptet med en databas i sig lite främmande. SQL-samtal, frågor, tabeller, poster, nycklar - alla dessa termer och mer utgör området för databasdesign och databashantering, och det är inte så mycket som är enkelt med det.
Å andra sidan behöver inte begreppet en relationsdatabas - i den enklaste formen - verkligen vara alltför komplicerat. Innan du antar att detta inte är något du behöver veta ska du tänka på att nästan varje dag i ditt liv interagerar du med en databas av någon form. När du tar ut pengar från ATM, köper en artikel med ditt ofta shopparkort eller märker in på gymmet, fyller du faktiskt några bord eller bord i en databas.
Så varför ska du bry dig? Tja, för när du väl uppskattar hur en databas fungerar och hur data som verkar vara helt oberoende kan korreleras med andra data, kommer du att börja uppskatta - och förhoppningsvis vara mer försiktiga - om hur dessa sammankopplingar kan komma tillbaka till hemsökning du.
Hur visste det andra klädföretaget att skicka en katalog med formellt kläder mindre än två veckor efter att du just köpt en kostym? Hur visste bilhandlaren tre år efter att du köpte en bil, att garantin nästan är uppe och att skicka ett erbjudande om en utökad garanti? Det handlar om frågor, korrelationer mellan data och att göra något åt resultaten. Det är magin i en databas.
Hur en databas fungerar
Så om du är en databasadministratör eller en programmerare som kan skriva ett SQL-uttalande med stängda ögon kommer troligen att detta inlägg tråkigt. Men om du är helt ny med begreppet databaser, eller om du är nyfiken på hur de kan vara en del av ditt liv utan att du ens vet det, så är detta artikeln för dig.
För att förklara hur en databas fungerar kommer jag faktiskt att använda Excel. Excel är ett utmärkt verktyg för att skapa ett kalkylblad, men ett kalkylblad är helt enkelt en samling av vad som skulle kallas "tabeller" i en databas. En tabell är exakt hur det låter som, en tabell full av data som är organiserade efter fält.
I vårt exempel kommer vi att låtsas att detta är en databas för ett gym. Detta fiktiva gym har ett medlemskap, och vi kan låtsas att det enda bordet ovan är informationen som blir befolkad när en ny medlem anmäler sig till hälsoklubben. En del av registreringsprocessen väger in, så att klubben kan hjälpa dig att hitta nya sätt att hantera din vikt och din hälsa. Faktum är att hälsoklubben faktiskt har ett fantastiskt kafé med hälsokost på menyn, medlemmarna kan äta något av något hälsosamt direkt efter ett träningspass eller ta en drink precis innan.
Eftersom detta är en mycket högteknologisk klubb har de också lagt till en annan tabell i sin databas. Den här nästa tabellen lägger till nya uppgifter varje gång en medlem köper något på hälsokaféet. Denna transaktion (en annan databasterm för tillägg eller subtraktion av en post) sker direkt vid registret. Du kommer att märka att mellan de två tabellerna finns det några liknande data, som medlemsnamnet. Det finns också unika data, som transaktions-ID och datum och tid.
Den unika informationen hjälper till att hålla all information organiserad, medan den vanliga informationen mellan alla tabellerna är det som hjälper programmerare att ansluta-prickar, så att säga. Jag ska visa dig lite logik som går in på det på ett ögonblick, men först måste klubben lägga till den ständigt växande databasen. Uppenbarligen, när medlemmar kommer in i klubben eller lämnar klubben, måste de använda sin klubb-ID för att "märka" in och ut med den digitala skannern. Den här åtgärden fylls ut ännu annan tabell. Den här nya tabellen håller helt enkelt reda på när medlemmen checkade in och checkade ut från hälsoklubben.
Så där har du det. En mycket enkel databas som hälsoklubben satt ihop. Tre grundläggande bord med mycket unika användningsområden. Den ena är medlemskapsregistreringslistan, den andra är en post för inköp av hälsoklubbbutiker, och den tredje är inloggnings- och utloggningstider för varje medlem. Det här är alla till synes oberoende information, eller hur?
Tja, magin i en relationsdatabas är att du kan extrahera information från var och en av dessa tabeller och sedan korrelera dem tillsammans för att komma med riktigt intressanta data. Låt oss till exempel säga att klubben vill ta reda på vilken slags mat de tyngsta medlemmarna äter på caféet. De kunde lätt räkna ut detta genom att köra en "fråga" mot databasen och fråga medlemskapets anmälningstabell för medlemmarnas vikter över en viss vikt - låt oss säga 200 pund. Sedan skulle du be köpbordet för kafé för inköp av dessa människor som är över 200 pund.
När du kör en sådan "fråga" mot en databas ger den resultaten i en sorts "tillfällig" ny tabell. Så här ser ett så nytt bord ut. Det är en lista över vad klubbens tyngsta medlemmar köpte för att äta och dricka på hälsoklubbens café.
Frågespråket är faktiskt ganska enkelt för något av den här typen. I Microsoft Access, till exempel, om medlemstabellen kallas "medlemskap" och köpstabellen för kaféet är "köp", kan frågan se ut detta: "VÄLJ köp. medlem, köp.beskrivning, köp.dato FRÅN köp VAR medlemskap.namn == köp.namn OCH medlemskap.vikt> 200"
Nu, när du börjar titta på den information som samlas in i hela hälsoklubben, kan du se vilka typer av saker klubben kan räkna ut. Har människor som loggar in på vissa tider på dagen köper mer på caféet? Har människor i vissa åldersgrupper en tendens att checka in oftare vid vissa tider på dagen? All denna information hjälper ett företag att implementera saker som reklam eller marknadsföringskampanjer.
Andra typer av databaser
Nu när du vet hur en databas fungerar, vilka slags databaser kanske du stöter på under din vardag? Någon gång du besöker de flesta bloggar eller webbplatser och antingen publicerar en kommentar eller loggar in interagerar du med en databas. När det gäller WordPress ser databasen ut så här.
Som ni kan se finns det ett gäng tabeller - 15 i det här fallet - för att hålla alla typer av information som användarinformation, postinformation, kommentarer och mer. Detta är ryggraden i en WordPress-blogg, och många andra avancerade webbplatser har liknande databasunderlag.
När du öppnar en av dessa tabeller, till exempel inläggstabellen, kan du se att all information som visas på den faktiska webbsidan lagras precis inuti en databas.
Om du alls är en spelare har du antagligen interagerat med en databas. Vissa spel är mer beroende av en back-end-databas, och förmodligen är de mest databasintensiva spelen multiplayer-onlinespel. Om du till exempel är bekant med det massiva online-rymdspelet OGame, är det ett exempel på ett sådant onlinespel som är enormt beroende på en databas för att köra showen. Bara spelarlistan för någon av världarna är tydligt utformade precis som du kan förvänta dig i vilken databas som helst.
Speldatabaser innehåller allt från användarresultat och prestationer till aktuell statistik över spelobjekt eller interrelationer mellan karaktärer, objekt och mer. Många spel skulle inte vara möjliga alls om det inte var för backend-databasen för att köra showen.
En annan plats som du säkert har stött på en databas är när du handlar online. Se de snyggt formaterade produktresultaten som listas på Amazon efter att du har kört en fråga och letat efter en produkt?
Ja, de extraherades från en databas med hjälp av en fråga som exemplet som jag visade ovan (om än något mer komplicerat förstås). Och när du går vidare och bestämmer dig för att gå vidare med det Amazon-köpet, kan du vara säker på att dina köpdetaljer och historik innehåller ytterligare ett bord i Amazons massiva databas.
En annan plats du kanske inte misstänker beror på en databas är ditt eget datorregister. Detta kallas faktiskt en "hierarkisk" databas, eftersom som du kan se när du bläddrar i registret lagras informationen i mer av en hierarki än i ett relationellt format. Förutsättningen är dock densamma.
Människor kan faktiskt skriva upp frågor för att extrahera information från systemregistret som ser ut precis som databasfrågor, förutom att uppslagstabellen som används är ett nyckelnamn och "värdnamn" är de faktiska data som lagras i databasen för det nyckel.
Så du behöver inte riktigt veta hur man programmerar en databas eller ens hur man använder en, utan genom att vara medveten om mängden data som dessa databaser kan lagra och hur lätt de kan användas för att korrelera information som verkar mycket distinkta i den verkliga världen, kan du vara vaken mot vilken typ av information du kanske vill dela (eller inte dela) med företag.
Hjalp denna förklaring av databasdesign med att förstå hur de fungerar i ditt eget liv? Är du förvånad över hur lätt det är att ansluta-prickar för saker du gör varje dag? Dela dina egna tankar om databaser i kommentarerna nedan.
Bildkrediter: Symbolisk datautbyte via Shutterstock
Ryan har en kandidatexamen i elektroteknik. Han har arbetat 13 år inom automationsteknik, 5 år inom IT och är nu en applikationsingenjör. Tidigare chefredaktör för MakeUseOf, han talade på nationella konferenser om datavisualisering och har varit med på nationell TV och radio.