Vad är en datatyp?

2010-05-15

    När man sparat information om till exempel en person i en tabell delar man upp informationen i kolumner. För information om en person kan de olika kolumnerna till exempel vara; Namn, Födelseår, Telefonnummer och Kön. För att databashanteraren på bästa sätt ska kunna lagra informationen talar man om vilken datatyp respektive kolumn har.

    Datatypen talar om huruvida kolumnen innehåller ett heltal, en text, ett datum och så vidare. Alla databashanterare erbjuder olika datatyper och har ibland olika namn på samma datatyper.

    Nästan alla datatyper är olika varianter på heltal, text, datum, boolean och decimaltal. Utöver dessa finns till exempel datatyper för tider, identifikation, geografi och geometri. Av dessa är nog boolean den som man inte instinktivt vet vad det är. Det är ett värde som är antingen sant eller falskt.

    I exemplet med persontabellen ovan skulle namnet vara en text och födelseår ett heltal. För telefonnummer och kön blir det lite knepigare att bombsäkert säga vilka datatyper det ska vara utan att veta något mer om hur de ska användas.

    Man skulle kunna spara telefonnummer som en heltal om man struntar i var det ska delas i riktnummer och lokalnummer. Heltalen lagrar inte några inledande nollor eller blanksteg så det kan bli problem om man vill sortera telefonnumren. Ett annat alternativ är att spara telefonnumret som en text med bindestreck mellan nummerdelarna. Det finns säkert någon databas som har en egen datatyp för att representera telefonnummer. Det finns ett alternativ som utnyttjar relationer i databasen. Man kan lagra alla telefonnummer i en egen tabell och låta dem referera tillbaka till persontabellen. På så sätt kan man hantera ett en person har flera telefonnummer och man kan strunta i hur ett telefonnummer ska representeras när man funderar på persontabellen.

    Kön kan också representeras på lite olika sätt. Man kan ha en boolean som talar om huruvida personen är man (sant=man, falskt=kvinna). Man skulle kunna ha en liten text där det står ‘man’ eller ‘kvinna’, fast då blir det svårt att översätta applikationen som använder informationen till flera språk. Texthantering är dessutom betydligt långsammare än booleansk algebra. Du kan säkert komma på flera andra sätt att representera kön i en tabell.

    Datatyper används alltså för att tala om för databashanteraren vilka begränsningar som gäller för varje liten del av informationen som ska behandlas.