En guide till database teknik
Databaser lagra, organisera och bearbeta information på ett sätt som gör det enkelt för oss att gå tillbaka och hitta vad vi söker. Vi möter databaser, både enkla och komplexa, hela tiden, vare sig i form av kort arkivkataloger, finansiella poster, anställd kataloger och även telefonböcker. Men, vad är databaser inom ramen för en webbplats? I den här snabbguiden till modern databasteknik, får du en förståelse för hur databaser fungerar, gemensamma villkor att veta, en titt på SQL vs. NoSQL, och hur man avgör vilken databas är bäst för ditt webbprogram.
Obs: Om du vill veta ännu mer om den vida världen av data, kolla in våra data artiklar för djupare dyk in ämnen allt från bearbetning av naturligt språk och datadriven marknadsföring till strömmande data och maskininlärning.
En snabb översikt av modern databasteknik
Kalkylblad processen nummer, databaser processinformation — särskilt strukturerad information. Databaser kan vara utformade för att göra vad som helst med information – spåra, ordna och redigera data; samla in data och producera rapporter; eller vara grunden för information-rika, dynamiska webbplatser.
Ökande komplexitet enfilig mot multifil databaser
Ta telefonboken, till exempel: det har fått uppgifter som namn, adresser och telefonnummer, alla organiserade i samma format. Boken är tabellen i databasen termer, varje person är en post och deras namn, adress och telefonnummer är alla fält. Det sista namnet — hur boken är organiserad, alfabetiskt — är fältet nyckel, som sorterar poster. Eftersom det sista namnet valdes som nyckelfält, thats hur telefonboken sorteras — sortera efter telefonnummer eller husnummer inte skulle generera vad vi letade efter, och vi skulle aldrig hitta något av tusentals poster. Och det är en hörnsten i databasteknik — smart sortering.
Men en telefonbok är bara en platt, ENFILIG databas. När behöver du mer komplexa databaser med flera tabeller som kan interagera med varandra? Säg att du vill en försändelse statusuppdatering på en order som du placerat med en e-handelsplats. Webbplatsen har flera fil databaser för order, datum, betalningar, sändningssökning, lager, leverantörer och kunder. Genom att länka dessa tabeller tillsammans, om en fråga ställs om en orderns status, databasen kan skapa en rapport med data från tabeller: ”[kundens] beställning av [produkt] köpte med en [betalningsmetod] på [inköpsdatum] fraktas till [Adress] via [metod] Tack vare anländer [tracking datum] ”.
Det är i ett nötskal, en relationsdatabas.
Relationella databaser och system för databashantering: Building Powerful Data-Driven webbplatser grunden för modern databasteknik började på 1970-talet med de första ”relationsdata modellen”. Dess betoning var noggrann organisation. Idag, relationsdatabaser förblir viktigt att hur webbplatser byggs: någon webbplats som visar data från en databas måste ha a en server-side-scripting, (b) HTML & CSS, (c) SQL, ett databasspråk och (d) ett databashanteringssystem (DBMS).
Här är en snabb titt på hur påverkar både SQL och databashanteringssystem databasteknik:
relationsdatabaser består av två eller flera tabeller med anslutna information, alla med kolumner och rader. Dessa anslutna tabeller kallas databasobjekt, och för att skapa dem och hantera dem, behöver du en relationsdatabas management system (RDBMS). Relationsdatabaser tillåta relationsdatabas utvecklare att skapa och underhålla en databasprogram, inklusive verktyg för att:
- query data
- sortera och redigera data
- design i hela databasen struktur
- producera rapporter
- validera datapunkter och kontrollera om det finns inkonsekvenser
- och, de ofta inkludera ett inbyggt programmeringsspråk för att automatisera några av dessa funktioner, såsom SQL.
SQL: De språk av databasen Access SQL Structured Query Language () är ett standardiserat programmeringsspråk för att komma åt och manipulera databaser. I en RDBMS som MySQL, Sybase, Oracle eller IMB DM2 skriver SQL programmering som kan hantera data och stream databehandling. SQL är som en databass egen version av ett serverskript och ansvarar för:
- executing frågor, som är ”frågor” av databasen
- hämta data • redigering data: Infoga, uppdatera, ta bort eller skapa nya poster
- skapa visningar
- inställningen behörigheter
- skapa nya databaser SQL är ett standard programmeringsspråk, men har ett antal varianter — inklusive vissa databaser egna proprietära SQL filändelser.
Obs: När det gäller att skapa nya databaser från grunden upp, planera är nyckeln. På samma måste sätt du planera för framtiden för din webbplats när du väljer en programstack, hur databasen är uppbyggd från dag ett kommer att få stora konsekvenser för hälsa av din webbplats på vägen. Frågor att överväga är: vilken information du har? Hur ska det förvaras? Vilka uppgifter behöver din webbplats Hämta regelbundet, och hur?
Nosql-databaser: Icke-Relationella & Distributiv data
Relationsdatabaser är bra på att organisera och hämta strukturerade data, men vad händer när dina data är inkonsekvent, ofullständig eller massiva? I dessa fall behöver du en mer flexibel databaslösning. Som de typer och mängder av data som vi samlar in har exploderat, har nosql-databasen utvecklats för att lösa utmaningarna med Big Data. NoSQL betyder ”inte bara SQL”. Dessa databaser är icke-relationell och distribuerad. De avviker från traditionella relationsmodellen, behandlar frågan att de flesta moderna data skördas från webben inte är strukturerad information. NoSQL lånar flexibilitet, skalbarhet och mängd — stora fördelar ur business synvinkel, när man betänker att växande data är ett direkt resultat av en växande verksamhet.
Hur fungerar en nosql-databas? I stället för tabeller är nosql-databaser dokument-orienterade. Detta sätt, kan icke-strukturerade data (till exempel artiklar, bilder, sociala mediedata, videor, till exempel, en hela blogginlägg) lagras i ett enda dokument som lätt kan hittas men är inte nödvändigtvis kategoriseras i ett gäng förinställda fält. Det är mer intuitivt, men observera att lagra data i lösvikt som denna kräver
extra bearbetning ansträngning och mer lagringsutrymme än de mycket organiserade SQL data. Det är därför Hadoop — en öppen plattform — är så hjälpsam och ofta integrerat i databasplattformar.
Vill du lära dig mer om hur relationell och nosql-databaser arbete och som man kan vara rätt för dina behov? Vi har sammanställt en hel SQL vs. NoSQL-artikel som utforskar hur de varje fungerar och vad använder fall de är varje bästa anpassade till.
Gemensam databas termer att veta här är några stora databasfunktioner som är bra att veta när väger en databas mot en annan — saker som hur databaser växer, skydda mot fel, duplicera data för hastighet, säkerhet och tillgänglighet.
Skalbarhet som hur mycket förväntar du dina data att växa (och hur snart)? Behöver du en mycket skalbar databas som kommer att vara pålitlig även när mängden data du bearbetning växer exponentiellt? Blir en server nog, eller räknar ni behöver lägga till ytterligare sådana? Horisontell skalning sprider ut uppgifter för ett distribuerat nätverk av prisvärda maskinvara i stället för att koncentrera den i en massiv (och dyra) server.
Sharding
Relaterade till horisontell skalning, sharding är en teknik för att lagra stora databaser över flera servrar. Det uppnår detta genom att bryta uppdelningen olika rader i olika tabeller. Till exempel som en databas av kundernas namn lagrar kunder med efternamn A-M på en skärvan, medan N-Ö lagras på en annan. Sharding kan hjälpa till att minimera svarstider för frågor samtidigt också data lagras över ett stort antal kostnadseffektiva servrar.
Replikeringen
Gör din app behöver realtid tillgång för att uppdatera och synkronisera data? Replikering är processen att frekventa kopiera data från en databas till databaser på andra servrar. När data replikeras från appens primära servern, synkroniseras den med sekundär databasservrar, göra dessa uppgifter tillgängliga i realtid (och säkert, i händelse av en krasch). Frågor till sekundära databasen inte kommer att sakta nätverket, eller prestanda av app. latens latens hänvisar till den tid det tar att slutföra en ”rundtur” mellan databasservern och programservern. När en app frågar sin databas för data, är detta hur lång tid det tar servern att returnera data. Ju lägre latens, bättre, men låg latens kommer ofta till en kostnad till andra funktioner, som konsekvens och tillgänglighet.
Konsekvens
Vid skrivning till en databas, är det viktigt att ändringar i data inte bryter mot reglerna i databasen. Konsekvens säkerställer att transaktioner inte producera fel som kan göra hela databasen ogiltig. Ett fullt konsekvent system innebär att så snart du lyckats skriva en post till en databas kommer du också att kunna begära det. Detta är särskilt viktigt för saker som finansiella transaktioner. Konsekvens kommer en kostnad på hastighet och tillgänglighet, dock. Det är därför många nosql-databaser välja ett så småningom konsekvent modell som möjliggör snabbare läsning och skrivning.
Tillgänglighet
Avser huruvida systemet är snabbt svara på en förfrågan, även när fel uppstår. I databaser som är spridda över flera servrar, kan detta resultera i inaktuella eller felaktiga data visas, särskilt i ett så småningom konsekvent system. Beroende på ditt företagsbehov, dock kan något inaktuella data vara bättre att förseningar som förhindra att hela systemet fungerar.
Feltolerans
Misslyckanden är oundvikliga, men det finns gott om beredskapsplaner som du kan sätta för att säkerställa att data är fortfarande tillgänglig och din app inte krascha. Med ”ingen enskild felkälla” säkerställer att en app kan fortsätta att fungera utan avbrott, vanligen genom replikeringen eller redundans. Databaser göra detta annorlunda, med varierande grad av kostnads- och fotavtryck.
Nu när du har fått en översikt över databasteknik, som behöver du som hjälper dig att bygga och underhålla din databassystem? Relations- och icke-relationell databashanterare kan få extremt komplicerade och definitivt kräver underhåll. Medan vem som helst kan hantera en enda fil databas på egen hand i Microsoft Access, vill du hyra en kapabel databas arkitekt till hantera din RDBMS eller NoSQL databas management. Utforska databasadministratörer hos oss.