Databas och kalkylblad

Det är mycket sannolikt att du redan har använt kalkylprogram som Calligra Sheets, LibreOffice Calc eller Microsoft® Excel. I så fall undrar du nog: Eftersom både kalkylblad och databaser använder tabeller, varför ska jag då använda de senare?

Vid jämförelse av kalkylblad och databaser kan du stöta på följande saker som du senare kommer att se mer detaljerat:

Hur skiljer sig en databas från ett kalkylblad?

Utöka tabellen Kontakter genom att lägga till en kolumn (ett fält) Adress, så att den gradvis överskrider kapaciteten hos en mobiltelefon. Lägg till fler telefonnummer (kontor, hem) för varje person, och lägg till efternamn till namnen. För att göra det enklare antar vi följande:

  • tabellen är begränsad till två personer (självklart kan det finnas hundratals eller tusentals i en riktig databas)

  • att det inte finns två personer med samma för- och efternamn

Tabell 6.2. Kontakttabell

För- och efternamnTelAdress

Anna Johansson

699 23 43 12

Västerport 1, Grönköping

Stefan Andersson

711 19 77 21

Wadköping, Klockargränd 5

Anna Johansson

110 98 98 00

Västerport 1

Johansson, Anna

312 43 42 22

Grönköping, Västerport 1

STEFAN Andersson

231 83 02 04

Klockargränd 5, Wadköping


En sådan tabell kan både skapas i ett kalkylblad och i en databas. Det är förstås mycket enkelt att använda ett kalkylblad. Vilka problem stöter man på i detta stadium?

Datahänvisningsintegritet

Antag att du använder ett kalkylblad och måste ändra adressen för minst en person. Du har ett litet problem: du måste ofta ändra adressen på flera rader. Anna använder till exempel tre rader. Ett riktigt problem uppstår om du glömmer att ändra en av de tre raderna: adressen som hör ihop med personen blir tvetydig, på så sätt går dataintegriteten förlorad.

Förutom det finns det inget enkelt sätt att ta bort en vald person från tabellen, eftersom du måste komma ihåg att ta bort alla rader som hör ihop med honom eller henne.

Överflödig data

Detta hör direkt ihop med föregående problem. I fälten för- och efternamn, samt Adress, skrivs samma data in många gånger. Det är typiskt i kalkylblad, och ett ineffektivt sätt att lagra data eftersom databasen växer i onödan, och kräver på så sätt mer datorresurser (större datastorlek och långsammare åtkomst).

Hur kan du lösa problemen med en databas? Du kan dela information i mindre bitar genom att skapa ytterligare en tabell, Personer, med bara två kolumner: För- och efternamn samt Adress:

Tabell 6.3. Persontabell

För- och efternamnAdress

Anna Johansson

Västerport 1, Grönköping

Stefan Andersson

Klockargränd 5, Wadköping


Varje rad i tabellen Personer motsvarar en och samma person. Tabellen Kontakter är från och med nu i en relation till tabellen Personer.

Dataintegritet och giltighet

Observera sättet som data skrivs in i fälten För- och efternamn samt Adress. De som skriver in data kan göra misstag, eller ibland till och med vara vårdslösa. I vår exempeldata har vi både olika ordning när för- och efternamn skrivs in (Anna Johansson och Johansson, Anna, Stefan och STEFAN) och ännu fler sätt att skriva in samma adress. Du kan säkert tänka dig många andra varianter.

Ovanstående problem visar att vid sökning efter telefonnumret till en person vars adress till exempel är Västerport 1, Grönköping får du inte ett fullständigt resultat. Du får bara en rad istället för tre. Dessutom hittar du heller inte alla telefonnummer vid sökning efter värdet Anna Johansson i fältet För- och efternamn, eftersom Johansson, Anna inte stämmer med Anna Johansson.

Hur kan man lösa problemen genom att använda en databas? Det går att göra genom att ändra konstruktion av tabellen Personer genom att:

  1. Dela upp data i fältet För- och efternamn i två separata fält: Förnamn och Efternamn.

  2. Dela upp data i fältet Adress i tre separata fält: Gatuadress, Gatunummer och Postort.

  3. Garantera att datan är riktig: genom att försäkra dig om att inga fält är tomma, t.ex. måste alltid gatunummer skrivas in.

En ändrad tabell ser ut ungefär så här:

Tabell 6.4. Persontabell

NamnEfternamnGatuadressGatunummerPostort

Anna

Johansson

Västerport

1

Grönköping

Stefan

Andersson

Klockargränd

5

Wadköping

Villkor

    

nödvändigt fält

nödvändigt fält

nödvändigt fält

nödvändigt fält

nödvändigt fält


På grund av att villkoret nödvändigt fält introducerades kan vi vara säkra på att inskriven data är fullständig. I fallet med andra tabeller kan man förstås fortsätta att utesluta vissa fält när data skrivs in.

Begränsa datavisning

Kalkylblad visar alla rader och kolumner i tabellen, vilket är besvärligt i fallet med mycket stora datamängder. Du kan förstås filtrera och sortera rader i kalkylblad, men du måste vara extra försiktig när du gör det. Användare av kalkylblad löper risk att glömma att datavyn har filtrerats, vilket kan orsaka misstag. När du beräknar summor, kanske du tror att du har 100 rader med data, medan det i själva verket finns ytterligare 20 dolda rader.

Om du vill arbeta med en mindre delmängd av data, t.ex. för att skicka den till andra för redigering, kan du kopiera och klistra in i ett annat kalkylblad, och efter redigering klistra in ändrad data tillbaka i huvudkalkylbladet. Sådan manuell redigering kan orsaka dataförlust eller felaktiga beräkningar.

För att begränsa datavyn erbjuder databasprogram förfrågningar, formulär, och rapporter.

Ett mycket praktiskt sätt att begränsa är följande utökade version av tabellen Personer som tidigare beskrivits:

Tabell 6.5. Persontabell

NamnEfternamnGatuadressGatunummerPostortInkomst

Anna

Johansson

Västerport

1

Grönköping

23 000

Stefan

Andersson

Klockargränd

5

Wadköping

19 000


Låt oss anta att den nytillagda kolumnen Inkomst innehåller konfidentiell data. Hur kan du till exempel dela personernas kontaktinformation med arbetskollegor utan att avslöja deras inkomst? Det är möjligt om du bara delar en förfrågan och inte hela tabellen. Förfrågan kunde välja alla kolumner utom kolumnen Inkomst. I databasvärlden är en sådan förfrågan ofta känd som en vy.

Prestanda och kapacitet

Din dator är troligen rätt snabb, men du märker lätt att det inte hjälper med långsamma, stora kalkylblad. Deras låga effektivitet beror först av allt på avsaknaden av index som snabbar upp datasökningsprocessen (databaser erbjuder dem). Om du dessutom använder saker som systemets klippbord, kan till och med kopiering av data bli besvärlig med tiden.

Kalkylblad som innehåller stora datamängder kan ta enorm tid att öppna. Kalkylblad laddar mängder med data i datorns minne när de öppnas. Det mesta data som laddas är för tillfället troligen oanvändbar eller onödig för dig. I motsats till kalkylblad laddar databaser bara data från datorns lagringsmedia när den behövs.

I de flesta fall behöver du inte bekymra dig om hur databasen lagrar sina data. Det betyder att i motsats till kalkylblad, bryr sig inte databaser om:

  • Sekvensen av rader, eftersom du kan ordna rader efter dina behov. Dessutom kan du titta på samma data i många vyer med olika ordning.

  • Samma sak gäller för kolumner (fält) i tabellen.

Tillsammans med Begränsa datavisning beskriven i föregående stycke, utgör dessa kvaliteter fördelarna med databaser.

Datainmatning

De senaste utgåvorna av program för att skapa kalkylblad gör det möjligt för dig att skapa datainmatningsformulär. Sådana formulär är mest användbara om data inte kan visas bekvämt i en tabellvy, t.ex. om texten upptar för många rader eller om alla kolumner inte får plats på skärmen.

I det här fallet är själva sättet som kalkylblad fungerar problematiskt. Fält för datainmatning placeras fritt inne i kalkylbladet och är oftast inte säkrade mot användarens ingripande (avsiktligt eller av misstag).

Rapporter

Databaser möjliggör gruppering, begränsning och summering av data i form av en rapport. Kalkylblad skrivs ofta ut i form av små tabeller utan fullständig automatisk styrning av sidbrytningar och layout av fält.

Programmering

Program för att skapa databaser innehåller ofta fullständiga programmeringsspråk. Nyare kalkylblad har också den möjligheten, men dock består beräkningar i att ändra kalkylbladets fält och enkel datakopiering, oberoende av relevans och integritetsregler som nämnts i föregående stycken.

Databehandling i ett kalkylblad görs ofta via ett grafiskt användargränssnitt, som kan göra databehandlingens hastighet långsammare. Databaser har möjlighet att arbeta i bakgrunden, utanför grafiska gränssnitt.

Flera användare

Det är svårt att föreställa sig fleranvändning av ett kalkylblad. Även om det är tekniskt möjligt i fallet med de senaste programmen, kräver det mycket disciplin, uppmärksamhet och kunskap av användarna, och det kan inte alltid garanteras.

Ett klassiskt sätt att dela data som sparats i ett kalkylblad med andra är att skicka filen i sin helhet (oftast med e-post) eller tillhandahålla en fil med ett kalkylblad i ett datornätverk. Detta sätt att arbeta är ineffektivt för större grupper: data som kan behövas ett visst ögonblick kan för närvarande vara låst av någon annan.

Å andra sidan har databaser i huvudsak konstruerats med åtkomst av flera användare från början. Till och med i de allra enklaste versionerna är det möjligt att låsa på nivån av en viss tabellrad, vilket gör det möjligt att lätt dela data.

Säkerhet

Att säkra ett kalkylblad eller dess olika delar med ett lösenord är bara en symbolisk aktivitet. Efter en fil med kalkylbladet har tillhandahållits i ett datornätverk, kan var och en som kan kopiera filen försöka att knäcka lösenordet. Det är ibland inte så svårt eftersom lösenordet lagras i samma fil som kalkylbladet.

Funktioner för att låsa vid redigering eller kopiering av ett kalkylblad (eller en del av det) är lika enkla att knäcka.

Databaser (utom de som lagras i en fil istället för på en server) behöver inte vara tillgängliga i en enda fil. Du kommer åt dem via ett datornätverk, oftast genom att tillhandahålla ett användarnamn och lösenord. Du får bara åtkomst till de områden (tabeller, formulär och till och med utvalda rader och kolumner) som tilldelats dig genom att ställa in lämpliga åtkomsträttigheter.

Åtkomsträttigheter kan påverka möjlighet att redigera data, eller möjlighet att bara läsa data. Om viss data inte är tillgänglig för dig, skickas det inte ens till din dator, så det finns ingen möjlighet att göra en kopia av data på ett så enkelt sätt som i fallet med filer för kalkylblad.