sql >> Databasteknik >  >> RDS >> Database

Relationsmodellen

Relationsmodellen är den mest populära av de logiska datamodellerna, och den ligger till grund för SQL-databaser.

Relationsmodellen bygger på två enkla koncept:

  • tabeller
  • relationer

Relationsmodellen går tillbaka till 1969 och arbetet av Edgar F. Codd, en engelsk datavetare. Även om vi som datorprogrammerare är vana vid att se med nyfikenhet på nya glänsande saker, är en teknik som kan vara central i allt om datorer i 50 år definitivt värd att studera.

Det faktum att modellen är baserad på tabeller gör den väldigt intuitiv att använda, eftersom vi är vana vid att använda tabeller för att organisera saker. Tänk på ett Excel-kalkylblad, till exempel.

Med SQL-baserade databaser, som PostgreSQL, Oracle, MySQL, SQLite och MS SQL Server och många andra, kan data som analyseras med hjälp av ER-modellen modelleras med hjälp av relationsmodellen och nästan omedelbart omvandlas till ett SQL-databasformat, vilket kan betraktas som en verklig implementering av relationsmodellen, men vi kommer att prata om detta i andra inlägg.

I det här inlägget vill jag prata om teorin och de begrepp som relationsmodellen bygger på, inte uttryckt i matematiska termer utan vad den innebär i praktiken.

Om du är student kanske du upptäcker att det jag skriver här inte är det som står i din lärobok, men du kanske kan läsa den lättare för att förstå de mer formella begreppen som uttrycks i ditt läromedel.

Tabell

I en relationsmodell, en tabell är en samling föremål.

Den är organiserad i rader och kolumner:

Namn Ålder
Flavio 36
Roger 7
Syd 6

Tuples

Varje post i tabellen kallas en tuppel . Du kan också använda termerna spela in eller rad .

En tupel representerar en rad i tabellen, så här:

Flavio 36

Attribut

Ett attribut är ett enda föremål i tupeln.

I det här exemplet:

Flavio 36

"Flavio" är ett attribut. 36 är ett annat attribut.

Tuples är unika

Varje tuppel i tabellen är unik.

I relationsmodellen kan vi inte ha dubbletter av data, vilket innebär att varje rad i tabellen måste vara olika i minst ett attribut.

Relationsnyckeln

Det som säkerställer att en tuppel är unik är relationsnyckeln .

Nyckeln är ett attribut som måste identifiera unikt en tuppel.

Om relationsnyckeln är en uppsättning attribut måste den vara icke-redundant . Det betyder att om vi tar bort ett av nyckelns attribut kan nyckeln inte garantera dess unika karaktär.

Om mer än en nycklar kan fastställas kommer en av dessa nycklar att identifieras som den primära nyckeln .

Nyckelintegritetsbegränsning

De nyckelattribut(en) för alla tupel i tabellen får aldrig vara null , och får aldrig upprepa .

Med en nyckel måste vi kunna peka på en specifik tupel/rad utan tvetydighet.

Domänbegränsningarna

Varje attribut har regler om vilket värde det kan ha .

Om vi ​​bestämmer oss för att lagra nummer kan vi till exempel inte lagra strängar. Och vi kanske beslutar att inte lagra strängar som är längre än 10 tecken för namn.

Vi kan också kalla denna typ .

Referensintegritetsbegränsningen

Om en tabell innehåller referenser till en sekundär tabell, eller andra tuplar i samma tabell, måste vi följa regler som förhindrar att referensen går sönder.

I synnerhet måste vi undvika att bryta referensen genom att:

  • undvika att ta bort eller redigera primärnyckeln för posten som vi pekar på i den andra tabellen.
  • undvik att infoga en ny post med en icke-existerande nyckel att peka på i den andra tabellen.
  • undvik att ändra nyckeln för posten vi pekar på, utan att säkerställa att den nya nyckeln finns i den andra tabellen.

Ett DBMS (Data Base Management System) kommer att implementera åtgärder för att hjälpa oss att implementera referensintegritet.


  1. Vad är NoSQL och hur används det?

  2. Vad är MariaDB Enterprise och hur man hanterar det med ClusterControl?

  3. Fönsterfunktioner:last_value(ORDER BY ... ASC) samma som last_value(ORDER BY ... DESC)

  4. Binära data i MySQL