Det här är ett avsnitt i en
webbkurs om databaser
som finns fritt tillgänglig på adressen
http://www.databasteknik.se/webbkursen/.
Senaste ändring:
20 februari 2020.
Av Thomas Padron-McCarthy.
Copyright,
alla rättigheter reserverade, osv.
Skicka gärna kommentarer till
webbkursen@databasteknik.se.
Sök på databasteknik.se:
|
Den här listan innehåller några av de termer som används inom databasområdet. Även en del saker som inte tas upp i resten av webbkursen finns med och förklaras kort.
I den mån det finns allmänt spridda svenska termer (till exempel fråga för engelskans query), har de använts, men annars används de engelska termerna (till exempel commit). För svenska termer finns också den engelska termen med. Även om ordlistan nämner flera olika termer för samma sak, till exempel både den svenska och den engelska termen, är det inte säkert att båda finns som egna uppslagsord. Om man letar efter en term kan det därför vara bättre att använda webbläsarens sökfunktion (i många webbläsare: klicka på Edit och välj Find in This Page, eller tryck CTRL-F) än att bläddra sig fram i bokstavsordning.
En bra lista över svenska datatermer finns också hos Svenska datatermgruppen.
En annan ordlista med många datatermer finns hos tidningen Computer Sweden.
1:N-samband. Se ett-till-många-samband.
1NF. Se första normalformen.
2NF. Se andra normalformen.
2PC. Se tvåfas-commit.
2PL. Se tvåfaslåsning.
3NF. Se tredje normalformen.
4NF. Se fjärde normalformen.
5NF. Se femte normalformen.
3-schema-arkitekturen, 3-nivå-arkitekturen. Se tre-schema-arkitekturen.
Access. Se Microsoft Access.
ACID, ACID-transaktion, ACID-egenskaper
(engelska: ACID, ACID transaction).
Transaktioner bör ha ACID-egenskaperna,
dvs de ska vara atomära (A), konsistensbevarande (C), isolerade från
varandra (I) och hållbara (D).
De flesta databashanterare
garanterar automatiskt att transaktioner har dessa egenskaper.
Läs mer i kursavsnittet
Transaktioner.
ADO.NET. En uppsättning klasser i Microsofts .NET-miljö som kan användas för att låta ett program hantera data och kommunicera med databaser och andra datakällor.
Aktiv databas, aktiv databashanterare (engelska: active database, active DBMS).
En databashanterare där man inte bara
kan stoppa in data, och söka i dem, utan där man också kan ange regler
(oftast ECA-regler)
för att databashanteraren själv ska göra saker (till exempel ändra på data)
när vissa villkor är uppfyllda.
Nämns kort i kursavsnittet
Integritetsvillkor.
Aktiv regel (engelska: active rule, trigger). En regel i en aktiv databashanterare, för att databashanteraren själv ska göra saker (till exempel ändra på data) när vissa villkor är uppfyllda.
Andra normalformen (engelska: second normal form eller 2NF).
En av de
normalformer
som används i
relationsmodellen.
En tabell som är i 2NF ska vara i 1NF,
och dessutom måste varje icke-nyckelattribut vara
fullständigt funktionellt beroende av alla kandidatnycklar.
Läs mer i kursavsnittet
Normalformer och normalisering.
API (står för Application Program Interface). "Applikationsprogramsgränssnitt". Skiljelinjen, eller gränssnittet, mellan ett applikationsprogram och (till exempel) en databashanterare. API:et tillhandahålls av databashanteraren, och kan bestå av ett bibliotek med datatyper och funktioner som applikationsprogrammet kan använda för att kommunicera med databashanteraren.
Applikationsprogram (engelska: application program) eller tillämpningsprogram. Ett program som är avsett för ett specifikt ändamål, till exempel för att låta biljettförsäljarna på SJ boka tågresor. I databassammanhang tänker vi oss att alla data lagras i en databas som hanteras av databashanteraren, och applikationsprogrammet kommunicerar med databashanteraren, men applikationsprogrammet är enklare att använda för biljettförsäljaren. I det programmet kan man kanske klicka på knappar för att välja resmål. Det är lättare än att kommunicera med databashanteraren direkt, i värsta fall genom att skriva SQL-kommandon.
Applikationsprogrammerare (engelska: application programmer). En person som skriver applikationsprogram.
Atomär (engelska: atomic). Odelbar. Något som är atomärt går inte att dela upp i mindre delar. I databassammanhang brukar man tala om att transaktioner kan vara atomära, och att en databas kan innehålla atomära värden.
Atomärt värde (engelska: atomic value). Ett värde i en databas som man betraktar som odelbart, och inte delar upp eller tittar på delar av.
Attribut (engelska: attribute). Betyder "egenskap", och används både om kolumnerna i tabellerna i relationsmodellen, och om egenskaperna hos entiteterna i ER-modellen.
BCNF, Boyce-Codds normalform
(engelska: BCNF, Boyce-Codd's Normal Form).
En av de
normalformer
som används i
relationsmodellen.
En tabell som är i BCNF ska vara i 1NF,
och dessutom måste varje determinant vara en kandidatnyckel.
Läs mer i kursavsnittet
Normalformer och normalisering.
Begrepp (engelska: concept). Ungefär "typ av sak". (Det svenska ordet "koncept" betyder något annat!)
Konceptuell datamodell eller begreppsmässig datamodell (engelska: conceptual data model). En datamodell som beskriver verkligheten i termer av de saker som finns i den verkligheten. Den säger inget om hur de ska lagras i en databas. Exempel: ER-modellen.
Boyce-Codds normalform (engelska: Boyce-Codd's Normal Form). Se BCNF.
CLI (står för Call-Level Interface). "Anropsnivågränssnitt", ett gränssnitt som består av funktioner eller procedurer, och där interaktionen genom gränssnittet sker genom funktionsanrop. Till exempel är ODBC ett CLI.
Client/server-arkitektur, client/server-system (engelska: client/server architecture, client/server system Ett datorsystem som är uppdelat i ett program som gör själva arbetet och är igång hela tiden ("servern"), och ett eller flera program ("klienterna") som kan startas och avslutas oberoende av servern, och som kommunicerar med denna, ofta via ett datornät. Om systemet har mänskliga användare, så kör de klientprogrammen, och klientprogrammen brukar huvudsakligen bestå av användargränssnitt.
Commit (engelska: commit). Ett kommando till databashanteraren som betyder att en transaktion är färdig, och därefter ska finnas lagrad permanent i databasen. Motsatsen till abort. "Commit" används också om själva arbetet som databashanteraren gör när den avslutar en transaktion och ser till att den finns permanent lagrad.
Cracker. (Från engelskan. Kan kanske kallas knäckare på svenska.) En person som bryter sig in i datorsystem, eller tar sig förbi kopieringskoder av olika slag. Blandas ibland ihop med hacker.
Databas (engelska: database). En samling data som hör ihop på något sätt. För det mesta brukar man anta att den hanteras av en databashanterare och att den har ett schema. Ibland används ordet "databas" även för att beteckna det som vi här kallar för databashanterare.
Databasbaserad webbplats (engelska: database-backed web site). En webbplats som lagrar data i en databas, där "databas" används i betydelsen av data som hanteras av en databashanterare, och där åtminstone en del av de webbsidor som finns på webbplatsen är föränderliga och basers på innehållet i databasen. Ibland kan man också lägga in data i databasen via webbplatsen. (Se även WWW.)
Databashanterare, databashanteringssystem, DBHS (engelska: database management system, DBMS). Ett program eller ett system av program som kan hantera en eller flera databaser. De flesta databashanterare är generella, och kan hantera olika sorters databaser. Exempel på databashanterare är Oracle och Microsoft Access.
Databasbaserad webbplats (engelska: database-backed web site). En webbplats där delar av webbplatsens innehåll lagras i en databas. Webbsidorna finns inte fixa och färdiga någonstans, utan delar av innehållet hämtas ur en databas, ofta med vanliga SQL-frågor. Ofta kan man också göra en del ändringar i databasens innehåll via webben.
Databassystem (engelska: database system). Kombinationen av en databashanterare och en databas. Ibland används ordet "databassystem" i stället som synonym bara för databashanterare.
Datakatalog (engelska: data dictionary, data catalog). Databashanterarens lagrade meta-data om en databas.
Dataintegritet (engelska: integrity, data integrity). (Det svenska begreppet "personlig-integritet" är något annat!)
Datakälla (på engelska data source). I ODBC betraktas en databashanterare som en så kallad datakälla, och meningen är att alla datakällor ska se likadana ut för den programmerare som skriver ett applikationsprogram. Även i ADO.NET kallas databashanterarna för datakällor, men där ser programkoden olika ut för olika typer av databashanterare.
Datamodell (engelska: data model). Ett sätt att beskriva världen, som man kan använda till exempel när man bygger upp en databas. Exempel: relationsmodellen, där man beskriver världen med hjälp av tabeller. I industrin används ordet "datamodell" ibland för att beteckna det som vi här kallar för schema.
Dataoberoende (engelska: data independence). Möjligheten att ändra på strukturen hos en samling data, utan att man också måste ändra på de program som arbetar med dessa data. Det finns logiskt och fysiskt dataoberoende.
DB2. En vanligt förekommande kommersiell databashanterare från IBM.
DBA, databasadministratör (engelska: database administrator). En person eller en grupp av personer som är ansvariga för driften av ett databassystem.
DDL, datadefinitionsspråk (engelska: data definition language). Ett språk som används för att tala om för databashanteraren vilka data som ska kunna lagras i databasen.
Deklarativ. Att man anger någonting på ett deklarativt sätt betyder att man talar om vad som ska göras, men inte i detalj hur det ska göras. Motsatsen är procedurell.
Disclaimer. En mening eller ett stycke där man frånsäger sig ansvar. Av engelskans disclaim, som bland annat betyder "frånsäga sig". Uttrycket används ofta inom databranschen. Det svenska uttrycket "brasklapp" är besläktat.
Diskbaserad databas, diskbaserad databashanterare. En databas eller databashanterare vars data (huvudsakligen) lagras på disk, till skillnad från att lagras i datorns primärminne. Alla traditionella databashanterare är diskbaserade, men för speciella ändamål finns också primärminnesdatabaser.
Distribuerad databas (engelska: distributed database). En databas vars data är utspritt på flera olika datorer. (Notera att klient/server-modellen inte behöver innebära någon distribuerad databas. Alla data kan ju vara samlade på ett enda ställe, nämligen på servern.)
DML, datamanipuleringsspråk (engelska: data manipulation language). Ett språk som används för att styra databashanteraren när man vill lagra, ändra eller söka i de data som finns i databasen. Kallas även frågespråk.
Domän (engelska: domain). Den mängd av värden som ett attribut kan ha. Nästan, men inte riktigt, samma sak som "datatypen på en kolumn".
Drivrutin (på engelska driver). Ett bibliotek av funktioner som används för att kommunicera med en hårdvara eller mjukvara. I ODBC används en ODBC-drivrutin för att kommunicera med databashanterare av en viss typ. Olika databashanterare kommunicerar på olika sätt, men ODBC-drivrutinerna hanterar och döljer de olikheterna, så att alla databashanterare ser likadana ut för de program som använder sig av ODBC. ODBC-drivrutiner kan enkelt bytas, utan att applikationsprogrammet behöver skrivas om, kompileras om eller länkas om.
Drivrutinhanterare (på engelska driver manager). I ODBC är drivrutinhanteraren det delsystem som (förstås!) hanterar de olika drivrutinerna, men den tar dessutom emot funktionsanrop från applikationsprogrammen. Såväl drivrutinhanteraren som de olika drivrutinerna är funktionsbibliotek, men de flesta funktionerna i drivrutinhanteraren gör inte så mycket när de anropas, utan de anropar bara i sin tur motsvarande funktion i drivrutinen.
Dynamisk SQL-fråga (på engelska: dynamic SQL query). En SQL-fråga som man inte vet hur den ser ut redan när man skriver programmet, utan som på något sätt genereras under programkörningen. Motsatsen är en statisk SQL-fråga.
EER model (Enhanced Entity-Relationship Model). Se den utvidgade ER-modellen.
ESQL, Embedded SQL. "Inbäddad SQL". En variant av SQL som är avsedd att stoppas in i ett program, kallat "värdprogram", skrivet i ett konventionellt programmeringsspråk som C eller Ada. På det viset kan man anropa en databashanterare från programmet. Embedded SQL är standardiserat, och gör det möjligt att lägga in SQL-satser i programmet på ett mer integrerat sätt än med vanliga CLI-API:er som ODBC. Man skriver SQL-koden mitt bland den vanliga C-koden, men markerad med orden EXEC SQL. EXEC SQL-satserna översätts sen av en preprocessor till C-kod, huvudsakligen funktionsanrop, som kan kompileras med en vanlig C-kompilator.
Entitetstyp (engelska: entity type). I ER-modellen beskriver man världen med hjälp av två grundläggande byggblock: typer av saker, eller entiteter, och typer av samband mellan dessa saker.
ER-modellen, Entity-Relationship-modellen, entitets-sambands-modellen
(engelska: the Entity-Relationship model).
En
konceptuell datamodell
där man beskriver verkligheten genom att ange de
typer av entiteter (engelska: entities)
(ungefär "saker")
som finns i den verkligheten,
och vilka
typer av samband (engelska: relationships)
som finns mellan dessa.
Beskrivningen ritas oftast upp som ett
ER-diagram.
Läs mer i kursavsnittet
Datamodellering med ER-modellen.
ER-diagram, Entity-Relationship-diagram, entitets-sambands-diagram (engelska: ER diagram, E/R diagram, Entity-Relationship diagram). En beskrivning av verkligheten gjord enligt ER-modellen.
Ett-till-ett-samband, 1:1-samband (engelska: one-to-one relationship). En sambandstyp där en sak av något slag kan höra ihop med en sak av ett annat slag, och varje sak av det andra slaget kan höra ihop med en sak av det första slaget. Exempel: En person kan vid ett och samma tillfälle bara köra en bil, och varje bil kan bara köras av en person. Används främst i ER-modellen.
Ett-till-många-samband, 1:N-samband (engelska: one-to-many relationship). En sambandstyp där en sak av något slag kan höra ihop med flera saker av ett annat slag, men varje sak av det andra slaget kan bara höra ihop med en sak av det första slaget. Exempel: En person kan äga flera bilar, men varje bil kan bara ägas av en person. Om man vänder på det och börjar med bilarna blir det i stället ett många-till-ett-samband (N:1-samband). Används främst i ER-modellen.
Extension (engelska: extension). Se innehåll. (Jämför intension.)
Fjärde normalformen (engelska: fourth normal form eller 3NF). En av de normalformer som används i relationsmodellen. En tabell som är i 4NF ska vara i BCNF, och dessutom får den inte innehålla några icke-triviala flervärda beroenden. Fjärde normalformen har ganska liten praktisk betydelse när man konstruerar databaser, men den kan vara användbar för att analysera vad som är fel med en dåligt designad databas.
Flervärt beroende (engelska: multi-valued dependency). Ett flervärt beroende, A ->> B, är som ett vanligt funktionellt beroende, A -> B, men i stället för att varje värde på determinanten A hör samman med ett enda värde på B, så hör det samman med flera olika värden på B. Används i definitionen av fjärde normalformen.
Fragmentering (engelska: fragmentation). Hur data delas upp för att sedan placeras på olika platser i en distribuerad databas. Kallas numera oftast för sharding. Ett fragmenteringsschema beskriver hur uppdelningen ska ske. Fragmenteringstransparens betyder att databashanteraren gömmer detta för användaren, som kan använda data utan att behöva bry sig om hur de är uppdelade.
Fråga (engelska: query). En sökning i databasen. Den kan vara uttryckt i ett särskilt frågespråk som SQL, men det kan också vara ett program i till exempel C. Ibland kallar man alla operationer, alltså även till exempel att lägga in data i databasen, för "frågor".
Frågeoptimering (engelska: query optimization). När man ställer en fråga i ett deklarativt frågespråk, som SQL, till en databashanterare, så översätts frågan till de operationer som ska göras på databasen för att beräkna svaret, den så kallade exekveringsplanen. Det fungerar ungefär som när en kompilator översätter ett högnivåspråk till körbar maskinkod. Svaret på frågan kan oftast beräknas på flera olika sätt. Frågan kan ta mycket olika lång tid att köra beroende på vilket av sätten man väljer. Frågeoptimering innebär att relationsdatabashanteraren räknar ut det snabbaste sättet att beräkna svaret, med hänsyn tagen till databasens definition, lagringsstruktur och innehåll. Exakt hur man formulerar frågan spelar alltså ingen roll.
Frågespråk (engelska: query language). Ett språk som man använder för att göra sökningar i databasen, eller "ställa frågor till databashanteraren", kallas för frågespråk. Synonymer: datamanipuleringsspråk, DML.
Främmande nyckel (engelska: foreign key). Samma sak som referensattribut.
Fullständigt deltagande (engelska: total participation). Kravet att varje förekomst av en entitetstyp måste delta i en viss sambandstyp. Används i ER-modellen.
Fullständigt funktionellt beroende, ffb (engelska: full functional dependency, ffd).
Ett förhållande mellan två attribut eller attributkombinationer, A och B i en tabell.
Om B är funktionellt beroende av A,
och inget attribut kan tas bort ur A om det fortfarande ska vara ett funktionellt beroende,
så är B ffb av A.
Läs mer i kursavsnittet
Normalformer och normalisering.
Funktionellt beroende, fb (engelska: functional dependency, fd).
Ett förhållande mellan två attribut eller attributkombinationer, A och B i en tabell.
Om B är fb av A
så bestämmer A entydigt B,
dvs om värdena på A på två rader i tabellen är lika, så måste värdena på B också vara lika.
Läs mer i kursavsnittet
Normalformer och normalisering.
Fysiskt dataoberoende (engelska: physical data independence). Möjligheten att ändra på den fysiska strukturen hos en samling data, utan att man också måste ändra på de program som arbetar med dessa data. Exempel på den fysiska strukturen i en databas är vilka index som finns. Se även logiskt dataoberoende.
Första normalformen (engelska: first normal form eller 1NF).
En av de
normalformer
som används i
relationsmodellen.
En tabell som är i 1NF får bara innehålla atomära värden.
Läs mer i kursavsnittet
Normalformer och normalisering.
Gibi-, som i gibibyte. Av giga-binär. 230, dvs 1073741824. Alltså ungefär en miljard. Se även giga-.
Giga-, som i gigabyte, gigabit och gigahertz. 109, dvs en miljard. Ibland (men inte alltid) i datasammanhang betyder giga inte en miljard utan i stället 230, dvs 1073741824. För att minska förvirringen har man också hittat på prefixet gibi-.
Grant. Ett kommando i SQL som används för att ge en användare rättigheten att göra vissa saker med en databas. Se även motsatsen Revoke.
Gränssnitt (engelska: interface). En skiljelinje mellan två delar i ett system, till exempel mellan ett applikationsprogram och en databashanterare (se API), eller mellan ett system och dess omgivning, till exempel mänskliga användare. Till gränssnittet hör både var gränsen dragits, och hur kommunikationen över gränsen sker. All interaktionen mellan de två delsystemen sker genom gränssnittet. Gränssnittet kan till exempel bestå av ett antal klassdefinitioner, eller ett antal funktioner eller subrutiner som går att anropa. Gränssnittet mellan ett tekniskt system, som ett datorsystem, och en användare kallas användargränssnitt (engelska: user interface). Användargränssnittet till en bil består av ratt, växelspak och övriga reglage, och också av hastighetsmätaren och kontrollamporna. (Man kan argumentera för att en del andra saker, till exempel ljudet från motorn, ingår i användargränssnittet.) Användargränssnittet till en vanlig dator består av tangentbordet, musen och skärmen. Användargränssnittet till en databashanterare består av ett eller flera program, till exempel ett program där man kan skriva in SQL-frågor och få resultatet utskrivet på skärmen.
Hashtabell (engelska: hash table).
En lagringsstruktur som används i vissa databashanterare.
Hashtabeller kan hantera ganska stora datamängder,
och det går mycket snabbt hitta en post som man söker efter.
Nackdelar är att man inte kan söka efter intervall
(exempelvis efter alla namn som börjar med "Berg"),
och man inte snabbt kan få tillgång till posterna sorterade i ordning.
De vanligaste typerna av hashtabeller kräver dessutom att man
vet i förväg ungefär hur mycket data som ska lagras,
eller att man då och då dimensionerar om tabellen.
Läs mer i kursavsnittet
Grunder om lagringsstrukturer.
Den hierarkiska datamodellen. En äldre datamodell som går ut på att databasens data lagras i poster, som ordnas i hierarkier, dvs som i en sorts pyramider. Ett företag kan till exempel ha avdelningar, under varje avdelning finns ett antal anställda, och under varje anställd finns ett antal projekt som den anställde jobbar med. Men i den hierarkiska datamodellen blir det lite krångligt om flera anställda ska jobba med samma projekt.
Implementationsmodell eller implementeringsmodell (engelska: implementation data model). En datamodell som man kan använda i en verklig databashanterare, och alltså skapa eller realisera ("implementera") sin databas med. Den vanligaste implementationsmodellen numera är relationsmodellen.
Index (engelska: index). En fysisk lagringsstruktur som används för att snabbt hitta posterna i en fil eller annan lagringsstruktur, ungefär på samma sätt som man använder registret i en bok.
Information (engelska: information). Information är uppgifter av olika slag. Ibland skiljer man på data och information, där information är data som man gett en tolkning. Alltså är 23 ett exempel på data, medan det är information om vi vet att det är 23 grader varmt ute.
Inkonsistens (engelska: inconsistency). Inre motsägelse. Om en databas innehåller inkonsistenser är den inkonsistent (engelska: inconsistent), dvs inte konsistent. En inkonsistent databas är en databas som antingen
Interface. Se gränssnitt.
Innehåll, databasens innehåll (engelska: content, database content). De data som vid ett visst tillfälle råkar finnas i databasen, till skillnad från databasens schema. I stället för "innehåll" säger man ibland tillstånd (engelska: state) eller extension.
Inre join (engelska: inner join). Kallas ibland "vanlig" join. En operation i relationsalgebran som går ut på att man kombinerar de rader från två tabeller som passar ihop enligt något visst villkor. Till skillnad från en yttre join innehåller resultatet av en inre join bara de rader som gick att para ihop med minst en rad i den andra tabellen.
Instans (engelska: instance). "Förekomst" eller "exemplar". Talet 17 är en instans av klassen eller typen heltal.
Integritet. Se antingen dataintegritet eller personlig integritet.
Integritetsvillkor
(engelska: integrity constraint).
En regel som talar om vilka data som kan lagras i databasen,
till exempel regeln att varje anställd måste ha ett unikt nummer,
eller regeln att varje bil måste ha en och endast en person som ägare.
Läs mer i kursavsnittet
Integritetsvillkor.
IMS. Av Information Management System. En kommersiell databashanterare från IBM. IMS är en av de första databashanterarna, och den första versionen av IMS introducerades 1968. IMS följer den hierarkiska datamodellen.
Informix. En kommersiell databashanterare.
Ingres. En kommersiell databashanterare. Finns även i en gratisversion, ibland kallad "University Ingres".
Intension (engelska: intension). Se schema. (Jämför extension.)
InterBase. En kommersiell databashanterare från Borland.
Join. Kan kanske översättas med sammanslagning på svenska. En operation i relationsalgebran som går ut på att man kombinerar de rader från två tabeller som passar ihop enligt något visst villkor. Se även inre join och yttre join.
Kardinalitetsförhållande (engelska: cardinality ratio). Hur många saker som kan delta i en och samma instans av en sambandstyp. Används främst i ER-modellen. Se ett-till-ett-samband, ett-till-många-samband och många-till-många-samband.
Kartesisk produkt (engelska: Cartesian product). En operation i relationsalgebran som går ut på att man kombinerar raderna från två tabeller på alla sätt som går. Den kartesiska produkten av två tabeller som vardera har tusen rader, har alltså en miljon rader.
Kibi-, som i kibibyte. Av kilo-binär. 210, dvs 1024. Alltså ungefär tusen. Se även kilo-.
Kilo-, som i kilobyte, kilobit och kilohertz. 103, dvs tusen. Ibland (men inte alltid) i datasammanhang betyder kilo inte tusen utan i stället 210, dvs 1024. För att minska förvirringen har man också hittat på prefixet kibi-.
Klient/server-modellen (engelska: the client/server model). Ett sätt att konstruera ett databassystem, eller ett datasystem i allmänhet. Data lagras på ett centralt ställe, servern, som ofta är en kraftfull dator. En eller flera klienter, som ofta är enklare datorer, kommunicerar med servern, och hämtar data från denna.
Kolumn (engelska: column). I databassammanhang menar man för det mesta en kolumn i en tabell i relationsmodellen, även kallad attribut.
Konsistens (engelska: consistency) "Konsistens" betyder ungefär "utan inre motsägelser" eller "följer de uppställda reglerna". Konsistens innebär att om samma uppgift står på två ställen, till exempel vilken lön en viss person har, så ska det stå samma lön på båda ställena. I en databas brukar man vara mer specifik, och säga att alla integritetsvillkor ska vara uppfyllda. Ett integritetsvillkor är en begränsning av vilka data som får lagras i databasen, och att databasen är konsistent (engelska: consistent) innebär att alla data uppfyller integritetsvillkoren. (En del språkvårdare hävdar med stor bestämdhet att engelskans "consistency" ska översättas med "konsekvens" eller "logisk koherens", och att "konsistens" är fel. Se även faktarutan i avsnittet Transaktioner.) Motsatsen till konsistent är inkonsistent.
Kunskap (engelska: knowledge). Kunskap betyder ungefär "information som man tillgodogjort sig", men i datasammanhang talar man ibland också om kunskap i betydelsen anvisningar om beteende, exempelvis regler för hur datorn ska dra slutsatser. En term som var populär på 1980-talet var kunskapsbaserade system. Jämför data och information.
create procedure salary_statistics (dept_name varchar(10)) returns (min_salary integer, max_salary integer) as begin select min(salary), max(salary) from employee where dept = (select number from dept where name = :dept_name) into :min_salary, :max_salary; end;
Loggfil (engelska: log file eller log). Vissa databashanterare noterar alla ändringar som görs i databasen i en särskild fil, loggfilen. Om databashanteraren behöver göra rollback av en transaktion, kan den ta reda på vilka ändringar som gjorts genom att läsa i loggfilen. Loggfilen används även vid återhämtning.
Logiskt dataoberoende (engelska: logical data independence). Möjligheten att ändra på den logiska strukturen hos en samling data, utan att man också måste ändra på de program som arbetar med dessa data. Exempel på den logiska strukturen i en databas är vilka kolumner som finns i en tabell. Se även fysiskt dataoberoende.
Lås (engelska: lock).
Om flera transaktioner
arbetar med samma data, kan
databashanteraren använda lås
för att bara låta en transaktion i taget komma åt dessa data.
Läs mer i kursavsnittet
Transaktioner.
Mega-, som i megabyte, megabit och megahertz. 106, dvs en miljon. Ibland (men inte alltid) i datasammanhang betyder mega inte en miljon utan i stället 220, dvs 1048576. För att minska förvirringen har man också hittat på prefixet mebi-.
Meta-data (engelska: meta-data). Data om data. Används av databashanterare för att den ska veta vad det är för data som den hanterar. Meta-datat består av databasens schema (till exempel vilka tabeller som finns), men också av information om vilka data som just nu finns i databasen (till exempel hur många rader som varje tabell innehåller).
Microsoft Access (ofta bara kallad Access).
En vanligt förekommande kommersiell
databashanterare
från Microsoft.
Access har ett lättanvänt grafiskt användargränssnitt.
Den underliggande funktionaliteten, till exempel SQL-dialekten,
är inte lika avancerad som i en del andra databashanterare.
Läs mer i kursavsnittet
Introduktion till Microsoft Access.
Mimer. En kommersiell, svensk databashanterare. Se www.mimer.se.
Modell (engelska: model. Se datamodell.
Multidatabas (engelska: multidatabase). Flera databaser som på något sätt kopplats ihop så att man kan söka i alla på en gång. Databaserna som ingår är fristående, och kan fortfarande användas var för sig, men det går alltså att ställa frågor som söker i alla de ingående databaserna på en gång.
MySQL. En gratis, svensk databashanterare som ofta används när en webbplats behöver lagra data i en databas. Den är snabb och driftsäker, men har inte alla avancerade funktioner som en del andra databashanterare har. Se www.mysql.com.
Många-till-ett-samband, N:1-samband. Se i stället ett-till-många-samband.
Många-till-många-samband, N:M-samband (engelska: many-to-many relationship). En sambandstyp där en sak av något slag kan höra ihop med flera saker av ett annat slag, och varje sak av det andra slaget kan höra ihop med flera saker av det första slaget. Exempel: En person kan äga flera hus, och varje hus kan ägas gemensamt av flera personer. Används främst i ER-modellen.
Naturlig join (engelska: natural join). En operation i relationsalgebran som kopplar ihop rader i en tabell med raderna en annan tabell enligt villkoret att värdena i kolumner som heter likadant ska vara lika. Dubblettkolumnerna tas bort.
Navigering, navigera (engelska: navigation, navigate). Att söka sig fram i databasens data genom att skriva ett program som följer pekare eller andra referenser mellan de olika dataobjekten i databasen, ungerfär på samma sätt som ett vanligt datorprogram letar igenom en komplicerad datastruktur genom att följa pekare mellan olika dataobjekt.
Normalform (engelska: normal form).
En regel som förbjuder vissa typer av dum design i en databas.
Det finns flera olika normalformer, till exempel
BCNF.
Läs mer i kursavsnittet
Normalformer och normalisering.
NoSQL. Databaser som inte bygger på relationsmodellen.
Normalisering (engelska: normalisation).
En teori för (främst) relationsdatabaser som kan användas för att undvika
vissa typer av dum design i en databas,
bland annat när det gäller onödig dubbellagring av information.
Läs mer i kursavsnittet
Normalformer och normalisering.
Null, null-värde (engelska: null, null value). Ett speciellt värde, eller snarare brist på värde, som betyder att en uppgift saknas i databasen. Motsvarar en "tom ruta" i relationsmodellen. Om vi har en tabell över personer som kan logga in på vår dator, och en viss person har värdet null som telefonnummer i den tabellen, så kan det antingen betyda att personen inte har någon telefon, eller att hon har en telefon men vi känner inte till numret, eller att telefonnummer inte är tillämpliga på just den här typen av person - den här "personen" som kan logga in på datorn kanske inte alls är någon person, utan ett program som ska överföra data.
Nyckel (engelska: key). Normalt detsamma som kandidatnyckel, dvs en kolumn eller en kombination av kolumner i en tabell (eller motsvarande, till exempel attribut i ER-modellen) som alltid har ett unikt värde för varje rad i tabellen.
Nyckelvillkor (engelska: key constraint). Villkoret att en kandidatnyckel alltid måste ha unika värden för alla rader i en tabell.
Nätverksmodellen. En äldre datamodell som går ut på att databasens data lagras i poster, som länkas ihop med en sorts pekare i en sorts nätverk. Nätverksmodellen har inget med datornät att göra.
Objekt-relationell databas (engelska: object-relational database). Kallas ibland "andra generationens objektorienterade databaser". Läs mer i avsnittet om objektdatabaser.
ODBC. Står för Open Database Connectivity. En metod att låta program kommunicera med varandra med hjälp av SQL-frågor, och skicka data till varandra. Normalt är det ett applikationsprogram som kommunicerar med en databashanterare. Man lägger in SQL-satser i ett program skrivet i C eller C++. ODBC kommer från Microsoft men är en öppen standard och fungerar på många olika system och med många olika databashanterare. Nästan alla relationsdatabashanterare erbjuder möjligheter att ansluta till dem via ODBC.
Optimering (engelska: optimization). Se frågeoptimering.
Oracle. En vanligt förekommande kommersiell databashanterare. Se www.oracle.com.
Personlig integritet (engelska: privacy, privacy of information). (Det engelska ordet "integrity" betyder något annat!) Nämns kort i kursavsnittet Integritetsvillkor.
Personnummer. Ett unikt nummer som varje svensk medborgare, och person som vistas en längre tid i Sverige, tilldelas av den svenska staten. Personnummer är inte hemliga. Personnummer påminner om, men är inte riktigt samma sak som, det amerikanska social security number. Nämns kort i kursavsnittet Integritetsvillkor.
Placering (engelska: allocation). På vilken plats data placeras i en distribuerad databas. Ett placeringsschema beskriver var data ska placeras. Replikeringstransparens betyder att databashanteraren gömmer detta för användaren, som kan använda data utan att behöva bry sig om var de är placerade.
PostgreSQL. En gratis databashanterare. Den är mer avancerad än MySQL, men mindre känd. Se www.postgresql.org.
Primärminnesdatabas, primärminnesdatabashanterare. En databas eller databashanterare vars data (huvudsakligen) lagras i datorns primärminne, till skillnad från att lagras på disk. Används främst för speciella ändamål som kräver stor snabbhet, medan alla traditionella databashanterare är diskbaserade.
Primärnyckel (engelska: primary key).
Procedurell. Att man anger någonting på ett procedurellt sätt betyder att man talar om hur det ska göras, steg för steg, och inte bara vad ska göras. Motsatsen är deklarativ.
Progress. En kommersiell databashanterare.
Recursive closure. Se transitivt hölje.
Redundans (engelska: "redundancy"). Upprepning av data eller funktionalitet. Kan vara nyttig eller skadlig, avsiktlig eller oavsiktlig.
Referensattribut (engelska: reference attribute). Ett attribut (dvs en kolumn) i en tabell som refererar till (dvs "pekar ut rader i") en annan (eller ibland samma) tabell. Det är inga "pekare" av samma typ som man har i många programmeringsspråk, utan referensen består i att det står ett värde, och sen ska det stå samma värde på en rad i den refererade tabellen. Kallas även främmande nyckel (engelska: foreign key).
Referensintegritet (engelska: referential integrity). Om två tabeller är hopkopplade med referensattribut, så ska det värde som refereras till alltid existera: Om det står i tabellen Anställd att en viss anställd jobbar på avdelning nummer 17, så ska det också finnas en avdelning med nummer 17, i tabellen Avdelning.
Relation. En tabell av den typ som används i relationsmodellen. Den här sortens relationer har inget att göra med ER-modellens relationships. Det är också en vanlig missuppfattning att det är kopplingarna mellan tabellerna med hjälp av referensattribut som är relationer. Bland annat i den svenska versionen av Microsoft Access används ordet (felaktigt) på det viset.
Relationsalgebra (engelska: relational algebra).
Ett sätt att räkna med tabellerna i relationsmodellen,
så att man till exempel kan slå ihop två tabeller på olika sätt.
I vanlig algebra, som till exempel i uttrycket 2 + 3x + x2 - y,
räknar man med tal. Variablerna står för olika tal,
och resultatet av ett algebraiskt uttryck är ett annat tal.
I relationsalgebran räknar vi i stället med relationer,
dvs tabeller.
Varje variabel står för en relation,
och resultatet av ett uttryck är en ny relation.
Relationsalgebra är alltså ett sätt att räkna med relationer,
så att man får fram nya relationer.
Till exempel kan man slå ihop och kombinera relationer på olika sätt,
eller välja ut vissa rader eller kolumner.
Det är mycket ovanligt att man använder sig av
relationsalgebra som frågespråk i en databashanterare,
utan de flesta som arbetar med databaser använder ett deklarativt frågespråk,
vanligtvis
SQL.
Men det som sker inuti en relationsdatabashanterare uttrycks ofta
tydligast i relationsalgebra.
Därför är det bra att känna till relationsalgebra,
om man ska förstå hur en databashanterare arbetar internt.
Det är också vara svårt att formulera
avancerade frågor i SQL om man inte kan relationsalgebra.
Till exempel behöver man ibland använda explicit
yttre join i SQL.
Då måste man veta hur en yttre join fungerar.
Yttre join är en operation i relationsalgebran.
Relationsdatabas (engelska: relational database). En databas organiserad enligt relationsmodellen, dvs med alla data lagrade i tabeller. Det är en vanlig missuppfattning att det är kopplingarna mellan tabellerna med hjälp av referensattribut som kallas relationer.
Relationsdatabashanterare (engelska: relational database management system, relational DBMS, RDBMS). En databashanterare som organiserar sina data enligt relationsmodellen, dvs med alla data lagrade i tabeller.
Relationship. Det engelska ordet för samband, till exempel i ER-modellen. Har inget att göra med de relationer, dvs tabeller, som finns i relationsdatabaser.
Relationsmodellen (engelska: the relational model).
En datamodell
där man beskriver verkligheten genom att lagra data i tabeller.
Relationsmodellen är den överlägset vanligaste datamodellen i databaser idag.
Läs mer i kursavsnittet
Relationsmodellen.
Replikering, upprepning (engelska: replication). Hur data dubbellagras på olika platser i en distribuerad databas. Ett replikeringsschema beskriver hur dubbellagringen ska ske. Replikeringstransparens betyder att databashanteraren gömmer detta för användaren, som kan använda data utan att behöva bry sig om att de finns i flera kopior.
Revoke. Ett kommando i SQL som används för ta ifrån en användare rättigheten att göra vissa saker med en databas. Se även motsatsen Grant.
Rollback (engelska: rollback). Ett annat ord för abort. "Rollback" används också om själva arbetet som databashanteraren utför när den ändrar tillbaka de ändringar som hunnit göras i databasen av en transaktion som avbryts.
Schema, databasschema (engelska: schema, database schema). En beskrivning av vilka data som kan finnas i en databas, oberoende av vilka data (innehållet) som råkar finnas i databasen just nu. Exempel: I relationsmodellen, där man beskriver världen med hjälp av tabeller, består schemat huvudsakligen av vilka tabeller som finns i databasen, och vilka kolumner de har, men inte vilka värden som råkar finnas i tabellerna just nu. I stället för "schema" säger man ibland intension, åtminstone när man talar om schemat för en relation i relationsmodellen.
Schemaläggare (engelska: scheduler). Den del av en databashanterare som bestämmer vilket tidsschema som transaktionerna ska följa.
Semijoin ("halvjoin"). En variant av relationsalgebrans join-operation. Semijoin används ibland i distribuerade databaser
Sharding. Hur data delas upp för att sedan placeras på olika platser i en distribuerad databas. Se fragmentering.
Slutanvändare (engelska: end user). Den eller de personer som till slut ska använda ett databassystem, eller ett datorsystem i allmänhet.
Snapshot-databas (engelska: snapshot database). En databas vars innehåll beskriver världens utseende vid en enda tidpunkt. De flesta databaser man ser i exemplen i en databasbok brukar vara just snapshot-databaser. En snapshot-databas som är en relationsdatabas innehåller tabeller som man kan kalla snapshot-tabeller. Se även motsatsen, temporal databas.
Specialisering (engelska: specialization). Att göra om något, till exempel ett uttalande eller ett databasschema, så att det blir mer specifikt, dvs gäller för färre saker eller fall. Samtidigt blir det ofta mer detaljerat, och kanske också mer användbart. Se även motsatsen, generalisering.
SQL. Av Structured Query Language.
Ett deklarativt
frågespråk
som används i de flesta
databashanterare.
Hette från början SEQUEL, och uttalas fortfarande så av en del.
Läs mer i kursavsnittet
Introduktion till frågespråket SQL.
SQL Server (egentligen Microsoft SQL Server). En kommersiell databashanterare från Microsoft. SQL Server är Microsofts "stora" databashanterare, medan Access är tänkt som ett lättanvänt verktyg för mindre databaser. Uttrycket "SQL-server" refererar alltså inte till databashanterare i allmänhet.
Social security number eller SSN. Ett unikt nummer för amerikaner. Påminner om, men är inte riktigt samma sak som, svenska personnummer.
Statisk SQL-fråga (på engelska: static SQL query). En SQL-fråga som man vet hur den ser ut redan när man skriver programmet. Motsatsen är en dynamisk SQL-fråga.
Stored procedure. Se lagrad procedur.
Supernyckel (engelska: superkey). En kolumn, eller en kombination av kolumner, som alltid har ett unikt värde för varje rad i tabellen. (Man får ta med onödiga kolumner.) Se även kandidatnyckel.
Svag entitetstyp (engelska: weak entity type). En entitetstyp i ER-modellen där instanserna av den entitetstypen inte har en egen nyckel, och därför inte går att unikt identifera, utan hjälp av en annan entitetstyp.
Sybase. En kommersiell databashanterare.
Temporal databas (engelska: temporal database). En databas vars innehåll beskriver världens utseende vid olika tidpunkter, eller som innehåller en historik för när uppgifterna i databasen ändrades, eller båda dessa. Informationen i databasen har alltså en eller flera tidsdimensioner. En temporal databas som är en relationsdatabas innehåller tabeller som man kan kalla temporala tabeller. Se även motsatsen, snapshot-databas.
Tebi-, som i tebibyte. Av tera-binär. 240, dvs 1099511627776. Alltså ungefär en biljon. Se även tera-.
Tera-, som i terabyte. 1012, dvs en biljon. Ibland (men inte alltid) i datasammanhang betyder giga inte en biljon utan i stället 240, dvs 1099511627776. För att minska förvirringen har man också hittat på prefixet tebi-.
Tidsschema (engelska: schedule). En databashanterare kan köra en eller flera transaktioner samtidigt. Transaktionerna läser och skriver i databasen. Den ordning som läs- och skrivoperationerna görs i kallas tidsschema.
Tidsserie (engelska: time series). En serie av uppgifter som samlats in med med förutbestämda tidsintervall, och som man ofta vill beräkna någon form av tidsrelaterad statistik på. Exempel: Temperaturer som mäts och lagras varje timme, och där man vill beräkna medeltemperaturen per dygn.
Tillstånd (engelska: state). Se innehåll.
Transaktion (engelska: transaction).
En följd av operationer som hör ihop som en enhet.
De flesta databashanterare
erbjuder stöd för att gruppera operationer till transaktioner.
Se även ACID-transaktion.
Läs mer i kursavsnittet
Transaktioner.
Transparens eller genomskinlighet (engelska: transparence). Något som är transparent är något som inte märks, och som man inte behöver bry sig om. Till exempel kan en distribuerad databas, dvs en databas där databasens data är utspritt på flera olika datorer, ha "placeringstransparens". Det betyder att användaren inte behöver hålla reda på hur datat har delats upp på de olika datorerna, eftersom databashanteraren sköter det. Att något är transparent betyder (konstigt nog) ungefär samma sak som att det är en "svart låda".
Transitivt hölje, eller ibland rekursivt hölje (engelska: transitive closure, men ofta recursive closure). Om en sambandstyp i en databas är rekursiv, till exempel att anställda är chefer för varandra, kan man skapa hierarkier eller kedjor. En anställd kan vara chef för en annan anställd, som i sin tur kan vara chef för ytterligare en anställd, och så vidare. Operationen att stega sig igenom en sådan hierarki eller kedja, och (i det här exemplet) ta fram alla chefer som en viss anställd har över sig, och inte bara den närmaste chefen, kallas transitivt hölje. Eftersom vanlig SQL och vanlig relationsalgebra inte innehåller några mekanismer för rekursion eller repetition, går det inte att beräkna ett transitivt hölje utan hjälp av ytterligare mekanismer, till exempel ett generellt programmeringsspråk som man kan bädda in SQL-satser i.
Tredje normalformen (engelska: third normal form eller 3NF).
En av de
normalformer
som används i
relationsmodellen.
En tabell som är i 3NF ska vara i 2NF,
och dessutom får inget icke-nyckelattribut vara
fullständigt funktionellt beroende av något annat
icke-nyckelattribut.
Läs mer i kursavsnittet
Normalformer och normalisering.
Trivialt flervärt beroende (engelska: trivial multi-valued dependency). Ett flervärt beroende, A ->> B, där determinanten A och det utpekade attributet B tillsammans utgör hela tabellen. Används i definitionen av fjärde normalformen.
Trenivåarkitekturen (engelska: the three-level architecture). Se tre-schema-arkitekturen.
Trenivåschema (engelska: three-level schema). Hur man beskriver samma databas med tre olika scheman i tre-schema-arkitekturen.
Tre-schema-arkitekturen (engelska: the three-schema architecture).
Kallas även tre-nivå-arkitekturen (engelska: the three-level architecture).
Samma databas beskrivs på tre olika nivåer,
med tre olika scheman:
ett externt schema överst (närmast användaren)
ett logiskt schema i mitten,
och ett fysiskt schema underst (längst in i datorn).
Genom att man kan ändra i ett av dessa scheman utan att schemana ovanför
påverkas, får man bättre dataoberoende.
Läs mer i kursavsnittet
Introduktion till databaser och databashanterare.
Tupel (engelska: tuple). En rad i en tabell i relationsmodellen.
Tvåfas-commit (engelska: two-phase commit eller 2PC). När en transaktion ska göra commit i en distribuerad databas, dvs en databas där databasens data är utspritt på flera olika datorer, så måste dessa olika datorers arbete samordnas. Det kan göras med tvåfas-commit, som i korthet går ut på att en av de deltaganade datorerna fungerar som koordinator, och frågar alla de andra datorerna om de är klara att committa. Om alla svarar ja, skickar koordinatorn ut en commit-signal, och sen gör samtliga datorer commit på sin del av transaktionen.
Tvåfaslåsning (engelska: two-phase locking eller 2PL). Om man använder lås för att "isolera" transaktioner från varandra (bokstaven I i ACID-egenskaperna) duger det inte att låsa och låsa upp hur som helst. Man måste använda tvåfaslåsning, vilket betyder att när en viss transaktion låst upp något dataobjekt, så får den inte låsa några fler dataobjekt. Varianter av tvåfaslåsning används av många databashanterare.
Den utvidgade ER-modellen, EER-modellen
(engelska: the Enhanced Entity-Relationship Model, the EER model).
En variant av ER-modellen
där man lagt till arv, ungefär som i objektorienterad datamodellering.
Beskrivningen ritas oftast upp som ett
EER-diagram.
Läs mer i kursavsnittet
Datamodellering med ER-modellen.
WWW (står för World Wide Web) eller webben. klient/server-baserat informationssystem med hypertext, dvs text som innehåller länkar till andra texter. På norska: den verdensvide veven! Dokument som kallas webbsidor och är skrivna i språket HTML (Hypertext Markup Language) skickas från en webbserver (engelska web server) till en webbklient, även kallad webbläsare (engelska web browser). En samling webbsidor som hör ihop kallas en webbplats (engelska: web site).
Vy (engelska: view). En vy är ett sätt att se en databas. Olika användare kan betrakta samma databas genom olika vyer. I SQL är en vy en SQL-fråga som fått ett eget namn. När man tittar på en vy i SQL ser den ut som en tabell, men innehållet beräknas på nytt (genom att SQL-frågan körs) varje gång man tittar på den.
Åtgärd (engelska: action). I databassammanhang menar man oftast den del av en ECA-regel som beskriver vad databashanteraren ska göra om regelns villkorsdel blir sann. (Apropå "action": Medge att åtgärdsfilm är ett bra svenskt ord för det som brukar kallas actionfilm!)