sql >> Database teknologi >  >> RDS >> Database

Den relationelle model

Relationsmodellen er den mest populære af de logiske datamodeller, og den er grundlaget for SQL-databaser.

Den Relationelle model er baseret på to simple koncepter:

  • tabeller
  • relationer

Den relationelle model går tilbage til 1969 og arbejdet af Edgar F. Codd, en engelsk datalog. Selvom vi som computerprogrammører er vant til at se med nysgerrighed på nye skinnende ting, er en teknologi, der kan være central i alt om computere i 50 år, bestemt værd at studere.

Det faktum, at modellen er baseret på tabeller, gør den meget intuitiv at bruge, fordi vi er vant til at bruge tabeller til at organisere tingene. Tænk for eksempel på et Excel-regneark.

Med SQL-baserede databaser, som PostgreSQL, Oracle, MySQL, SQLite og MS SQL Server og mange andre, kan de data, der analyseres ved hjælp af ER-modellen, modelleres ved hjælp af den relationelle model og næsten øjeblikkeligt transformeres til et SQL-databaseformat, som kan betragtes som en virkelighedsimplementering af relationsmodellen, men vi vil tale om dette i andre indlæg.

I dette indlæg vil jeg tale om teorien og de begreber, som den relationelle model er baseret på, ikke udtrykt i matematiske termer, men hvad den betyder i praksis.

Hvis du er studerende, vil du måske opdage, at det, jeg skriver her, ikke er det, der står i din lærebog, men måske kan du lettere læse det for at forstå de mere formelle begreber, der er udtrykt i dit undervisningsmateriale.

Tabeller

I en relationsmodel er en tabel er en samling af genstande.

Det er organiseret i rækker og kolonner:

Navn Alder
Flavio 36
Roger 7
Syd 6

Tuples

Hver post i tabellen kaldes en tuple . Du kan også bruge begreberne optag eller række .

En tupel repræsenterer en række i tabellen, sådan her:

Flavio 36

Attributter

En attribut er et enkelt element i tuplet.

I dette eksempel:

Flavio 36

"Flavio" er en egenskab. 36 er en anden egenskab.

Tuples er unikke

Hver tupel i tabellen er unik.

I den relationelle model kan vi ikke have duplikerede data, hvilket betyder, at hver række i tabellen skal være forskellige i mindst én attribut.

Relationsnøglen

Det, der sikrer, at en tuple er unik, er relationsnøglen .

Nøglen er én egenskab, der skal entydigt identificere en tupel.

Hvis relationsnøglen er et sæt attributter, skal den være ikke-redundant . Det betyder, at hvis vi fjerner en af ​​nøglens egenskaber, kan nøglen ikke garantere dens unikhed.

Hvis mere end én nøgle kan bestemmes, vil en af ​​disse nøgler blive identificeret som den primære nøgle .

Nøgleintegritetsbegrænsning

De(n) nøgleattribut(er) for enhver tuple i tabellen må aldrig være null , og må aldrig gentages .

Givet en nøgle skal vi være i stand til at pege på en bestemt tupel/række uden tvetydighed.

Domænebegrænsningerne

Hver egenskab har regler for, hvilken værdi den kan indeholde .

Hvis vi beslutter os for at gemme numre, kan vi f.eks. ikke gemme strenge. Og vi kan beslutte ikke at gemme strenge længere end 10 tegn for navne.

Vi kan også kalde denne type .

Referenceintegritetsbegrænsningen

Hvis en tabel indeholder reference til en sekundær tabel eller andre tupler i samme tabel, så skal vi overholde regler, der forhindrer referencen i at bryde.

Vi skal især undgå at bryde referencen ved at:

  • undgå at slette eller redigere den primære nøgle for posten, som vi peger på, i den anden tabel.
  • undgå at indsætte en ny post med en ikke-eksisterende nøgle at pege på i den anden tabel.
  • undgå at ændre nøglen til den post, vi peger på, uden at sikre, at den nye nøgle findes i den anden tabel.

Et DBMS (Data Base Management System) vil implementere foranstaltninger for at hjælpe os med at implementere referenceintegritet.


  1. Er der en automatisk ændringstidsstempeltype for Oracle-kolonner?

  2. Sådan laver du nemt CRUD ved hjælp af PHP og MySQL

  3. PGTune-alternativer - ClusterControl PostgreSQL-konfiguration

  4. Returner rækker, der kun indeholder ikke-alfanumeriske tegn i SQLite