Citater fra C.J.Date "An Introduction to Database Systems" kapitel 3:

3 Introduktion til relationelle databaser

3.2 Relationelle systemer

Et relationelt database styringssystem (RDBMS) er et system, hvor som minimum:

  1. Brugeren opfatter dataene som tabeller.
  2. De operationer brugeren har til rådighed genererer nye tabeller på grundlag af gamle, og operationerne omfatter som minimum SELECT (også kaldet RESTRICT), PROJECT og JOIN. [52]

Formålet med SELECT operationen er at udtrække specificerede rækker fra en tabel. [52]

Med PROJECT operationen udtrækkes specificerede kolonner fra en tabel. [53]

Med JOIN operationen sammensættes to tabeller på basis af fælles værdier i en fælles kolonne i de to tabeller. [53]

Resultatet af hver af de tre operationer er en ny tabel. Dette er den relationelle egenskab man kalder closure, og det betyder, at output fra den ene operation kan være input til den næste. [54]

Alle operationer er mængde-orienterede (en hel tabel ad gangen) i modsætning til række-orienterede (en record ad gangen). [54]

Tabeller udgør den logiske struktur i et relationelt system - ikke den fysiske struktur. Tabeller repræsenterer en abstraktion af den måde, data er lagret fysisk. [55]

Hele informationsindholdet i databasen er repræsenteret på en og samme måde, nemlig som eksplicitte dataværdier. Denne repræsentationsmetode er den eneste metode, der er til rådighed i en relationel database. I særdeleshed er der ingen pointere, som forbinder den ene tabel med andre. [55]

Alle dataværdier er atomare (eller skalarer). Det betyder, at hvert tabelelement indeholder nøjagtig én dataværdi, og aldrig en gruppe af flere værdier. [55]

3.3 Om terminologi

Ordet relation er blot den matematiske betegnelse for en tabel. [56]

Relationelle systemer er baseret på det, man kalder den relationelle datamodel. Den relationelle model er i sig selv en abstrakt teori om data baseret på visse matematiske aspekter (især mængdelære og prædikatslogik). [56]

Den formelle relationelle model anvender overhovedet ikke begrebet "record" - i stedet bruges betegnelsen "tuple", som oprindelig blev defineret præcist af Codd. [57]

3.4 Den relationelle model

Den relationelle model kan opfattes som en måde at se på data på. Den relationelle model beskæftiger sig med tre aspekter af data: datastruktur, dataintegritet og datamanipulation. [57]

En kolonne eller en kombination af kolonner (attributter) i en tabel udgør primærnøglen. En kolonne eller en kombination af kolonner kan udgøre en fremmednøgle, som refererer en primærnøgle i en anden tabel [i sjældne tilfælde også samme tabel]. [58]

Den relationelle model er en teori. [58]

3.5 Optimering

Relationelle sprog som f.eks. SQL omtales ofte som non-procedurale, fordi brugerne blot specificerer hvad de ønsker - ikke hvordan man skal nå frem til resultatet. Arbejdet med at "navigere" rundt i databasens lagrede data, for at kunne besvare brugernes ønsker, udføres automatisk af systemet og ikke manuelt af brugeren. Relationelle systemer omtales derfor undertiden som systemer med automatisk navigation. [58]

Beslutningen om, hvordan en given forespørgsel skal omsættes til automatisk navigation, udføres af en meget vigtig komponent i DBMS kaldet optimeringen. [59]

3.6 Kataloget

Ethvert DBMS skal indeholde en katalogfunktion. Kataloget er det sted, hvor de forskellige skemaer (eksterne, begrebsmæssige og interne) og alle de tilhørende konverteringer (mappings) opbevares. [60]

En af de rare egenskaber ved relationelle systemer er, at i sådan et system består kataloget selv af tabeller. Som en konsekvens kan brugeren lave forespørgsler på kataloget på samme måde som de laver forespørgsler på deres data. [61]

3.7 Basistabeller og Views

De oprindelige tabeller kaldes basistabeller. En tabel, som fremkommer ved hjælp af et eller andet relationelt udtryk kaldes en afledt tabel. [62]

Relationelle systemer understøtter normalt én bestemt slags afledt tabel, kaldet et view, som også har et navn. Et view er således en navngiven tabel, som ikke har nogen selvstændig eksistens; men det er derimod defineret på basis af en eller flere andre navngivne tabeller (basistabeller eller andre views). [62]

3.8 SQL sproget

De fleste relationelle produkter understøtter en eller anden dialekt af det relationelle standardsprog SQL. [65]

SQL bruges til at formulere relationelle operationer (d.v.s. operationer, som definerer og manipulerer data på relationel form). [65]

SQL består af operationer til såvel datadefinition som datamanipulation. [65-66]

Indlagt 25. april 1997