Relationel datamodel i DBMS: Concepts & Eksempel

⚡ Smart opsummering

En relationel model repræsenterer en database som en samling af relationer, hvor hver relation er en tabel med rækker og kolonner. Den definerer kernekoncepter, integritetsbegrænsninger og opdateringsoperationer, der holder relationelle data konsistente og nemme at forespørge på.

  • 🗃️ Kerneidé: Data gemmes som relationer, og hver række er en tuple, der beskriver en virkelig enhed eller relation.
  • 🏷️ Nøglebegreber: Attribut, tuple, grad, kardinalitet, domæne og relationsnøgle beskriver tilsammen formen på en tabel.
  • 🛡️ Tre begrænsninger: Begrænsninger for domæne-, nøgle- og referentiel integritet holder enhver relation gyldig.
  • 🔑 Nøglelinktabeller: En primærnøgle identificerer entydigt en række, og en fremmednøgle refererer til en nøgle i en anden relation.
  • 🔄 Fire Operationer: Indsæt, opdater, slet og vælg handling på relationer uden at bryde de definerede begrænsninger.
  • Designregler: Én værdi pr. celle, unikke kolonnenavne, ingen dubletter af rækker og værdier hentet fra ét domæne.
  • 📈 Hvorfor den vinder: Enkelhed, strukturel uafhængighed, et forespørgselssprog på højt niveau og datauafhængighed.

Relationel datamodel i DBMS

Hvad er den relationelle model?

Relationsmodel (RM) repræsenterer databasen som en samling af relationer. En relation er intet andet end en værditabel. Hver række i tabellen repræsenterer en samling af relaterede dataværdier. Disse rækker i tabellen angiver en entitet eller relation i den virkelige verden.

Tabelnavnet og kolonnenavnene hjælper med at fortolke betydningen af ​​værdierne i hver række. Dataene repræsenteres som et sæt af relationer. I den relationelle model gemmes data som tabeller. Den fysiske lagring af dataene er dog uafhængig af den måde, dataene er logisk organiseret på.

Modellen blev foreslået af EF Codd i 1970 og er stadig grundlaget for næsten alle almindelige databaser, der er i brug i dag. Nogle populære relationelle databasestyringssystemer er:

  • DB2 og Informix Dynamic Server – IBM
  • Oracle og RDB – Oracle
  • SQL Server og Access – Microsoft

Relationsmodel Concepts i DBMS

  1. Egenskab: Hver kolonne i en tabel. Attributter er de egenskaber, der definerer en relation, f.eks. Student_Rollnr., NAME osv.
  2. Borde: I den relationelle model gemmes relationer i tabelformat. De gemmes sammen med deres enheder. En tabel har to egenskaber, rækker og kolonner. Rækker repræsenterer poster, og kolonner repræsenterer attributter.
  3. Tuple: Det er intet andet end en enkelt række i en tabel, som indeholder en enkelt post.
  4. Relationsskema: Et relationsskema repræsenterer navnet på relationen med dens attributter.
  5. Grad: Det samlede antal attributter i relationen kaldes relationens grad.
  6. Kardinalitet: Det samlede antal rækker i tabellen.
  7. Kolonne: Kolonnen repræsenterer værdisættet for en specifik attribut.
  8. Relationsinstans: En relationsinstans er et endeligt sæt af tupler i RDBMS-systemet. Relationsinstanser har aldrig duplikerede tupler.
  9. Relationsnøgle: Hver række har en, to eller flere attributter, hvilket kaldes relationsnøglen.
  10. Attributdomæne: Hver attribut har en foruddefineret værdi og et foruddefineret omfang, som kaldes attributdomænet.

Relationelle modelkoncepter illustreret på en tabel

Med ordforrådet på plads er den næste bekymring at holdeping dataene i disse relationer er gyldige, hvilket er integritetsbegrænsningernes opgave.

Relationel Integrity Begrænsninger

Relationelle integritetsbegrænsninger i DBMS refererer til betingelser, der skal være til stede for en gyldig relation. Disse relationelle begrænsninger er afledt af reglerne i den miniverden, som databasen repræsenterer.

Der findes mange typer integritetsbegrænsninger. Begrænsninger på relationsdatabasestyringssystemer er hovedsageligt opdelt i tre hovedkategorier:

  1. Domænebegrænsninger
  2. Nøglebegrænsninger
  3. Henvisende Integrity Begrænsninger

Domænebegrænsninger

Domænebegrænsninger kan overtrædes, hvis en attributværdi ikke vises i det tilsvarende domæne, eller hvis den ikke er af den korrekte datatype.

Domænebegrænsninger angiver, at inden for hver tuple skal værdien af ​​hver attribut være atomisk og hentes fra det korrekte domæne. Domæner er angivet som datatyper, som inkluderer standardtyper såsom heltal, reelle tal, tegn, boolske værdier og strenge med variabel længde.

Eksempel:

CREATE DOMAIN CustomerName
CHECK (value NOT NULL)

Det viste eksempel demonstrerer oprettelse af en domænebegrænsning, således at CustomerName ikke er NULL.

Nøglebegrænsninger

En egenskab, der unikt kan identificere en tupel i en relation, kaldes tabellens nøgle. Værdien af ​​attributten for forskellige tuples i relationen skal være unik.

Eksempel:

I den givne tabel er CustomerID en nøgleattribut i Customer-tabellen. Den har højst sandsynligt en enkelt nøgle for én kunde; CustomerID = 1 er kun for CustomerName "GoogleEn fuldstændig gennemgang af de forskellige nøgletyper er dækket i vejledningen til DBMS-nøgler.

Kunde ID Kundenavn Status
1 Google Aktiv
2 Amazon Aktiv
3 Apple Inaktiv

Henvisende Integrity Begrænsninger

Referentielle integritetsbegrænsninger i DBMS er baseret på konceptet om fremmednøgler. En fremmednøgle er en vigtig attribut for en relation, som der skal refereres til i andre relationer. En referentiel integritetsbegrænsning opstår, når en relation refererer til en nøgleattribut for en anden eller den samme relation. Dette nøgleelement skal findes i den refererede tabel.

Eksempel:

Referenceintegritet mellem kunde og Billrelationer

I ovenstående eksempel har vi to relationer, Kunde og BillIng.

Tuplen for CustomerID = 1 refereres to gange i relationen Billing. Så vi kender Kundenavn “Google" har et faktureringsbeløb på 300 USD.

Operationer i den relationelle model

Fire grundlæggende opdateringsoperationer udføres på den relationelle databasemodel: indsæt, opdater, slet og vælg.

  • Insert bruges til at indsætte data i relationen.
  • Slet bruges til at slette tupler fra bordet.
  • Modify giver dig mulighed for at ændre værdierne for nogle attributter i eksisterende tuples.
  • Vælg giver dig mulighed for at vælge et specifikt dataområde.

Når en af ​​disse operationer anvendes, må de integritetsbegrænsninger, der er angivet i det relationelle databaseskema, aldrig overtrædes.

indsatte Operation

Indsætningsoperationen giver værdier for attributterne for en ny tuple, som skal indsættes i en relation.

Indsætningsoperation, der tilføjer en ny tuple til en relation

Opdatering Operation

Du kan se, at CustomerName 'Apple' i relationstabellen nedenfor er opdateret fra Inaktiv til Aktiv.

Opdateringshandling, der ændrer en statusværdi i en tupel

Slette Operation

For at specificere sletning vælger en betingelse på relationens attributter den tuple, der skal slettes.

Sletteoperation, der fjerner en tuple fra en relation

I ovenstående eksempel er CustomerName “Apple” slettet fra tabellen.

Sletteoperationen kan krænke referentiel integritet, hvis den tuple, der slettes, refereres til af fremmednøgler fra andre tupler i samme database.

Type Operation

Vælg operation ved at vælge en specifik tupel

I ovenstående eksempel, Kundenavn "Amazon”Er valgt.

Relationsmodel vs. hierarkiske og netværksmodeller

Den relationelle model erstattede to tidligere tilgange, og kontrasten forklarer, hvorfor den blev dominerende. Tabellen nedenfor viser de tre side om side.

Aspect Relationsmodel Hierarkisk model Netværksmodel
Struktur Tabeller (relationer) Træ, forælder til barn Graf, mange til mange
Datatilgang Deklarativ, efter værdi Navigation, efter sti Navigation, via peger
Relationer Udenlandske nøgler Forældre-barn-links Sæt og pointere
Forespørgselssprog SQL Procedurekode Procedurekode
Fleksibilitet Høj Lav Medium

Fordi den relationelle model adresserer data efter værdi snarere end ved at navigere i fysiske links, er et højniveausprog som f.eks. SQL kan stille en forespørgsel uden at vide, hvordan dataene er gemt.

De bedste fremgangsmåder til at skabe en relationel model

  • Data skal repræsenteres som en samling af relationer.
  • Hver relation skal være tydeligt vist i tabellen.
  • Rækker skal indeholde data om forekomster af en enhed.
  • Kolonner skal indeholde data om enhedens attributter.
  • Celler i tabellen skal indeholde én værdi.
  • Hver kolonne skal have et unikt navn.
  • Ingen to rækker kan være identiske.
  • Værdierne for en attribut skal være fra det samme domæne.

Fordele ved den relationelle databasemodel

  • Enkelhed: En relationel datamodel i DBMS er enklere end hierarkiske modeller og netværksmodeller.
  • Strukturel uafhængighed: Den relationelle database beskæftiger sig kun med data og ikke med struktur, hvilket kan forbedre modellens ydeevne.
  • Nem at bruge: Den relationelle model er nem at bruge, da tabeller bestående af rækker og kolonner er naturlige og enkle at forstå.
  • Forespørgselsfunktion: Det gør det muligt for et forespørgselssprog på højt niveau som SQL at undgå kompleks databasenavigation.
  • Datauafhængighed: Strukturen af ​​en relationel database kan ændres uden at skulle ændre nogen applikation.
  • Skalerbar: Med hensyn til antallet af poster eller rækker og antallet af felter kan en database udvides for at forbedre dens brugervenlighed.

Ulemper ved den relationelle model

  • Få relationelle databaser har grænser for feltlængder, som ikke kan overskrides.
  • Relationelle databaser kan nogle gange blive komplekse, efterhånden som mængden af ​​data vokser, og relationerne mellem datastykker bliver mere komplicerede.
  • Komplekse relationelle databasesystemer kan føre til isolerede databaser, hvor information ikke kan deles fra ét system til et andet.

Ofte Stillede Spørgsmål

Grad er antallet af attributter eller kolonner i en relation. Kardinalitet er antallet af tupler eller rækker. Grad beskriver tabellens bredde, og kardinalitet beskriver dens højde.

En relation er et matematisk sæt, og et sæt indeholder ingen duplikerede medlemmer. Primærnøglen håndhæver dette, så hver tuple er entydigt identificeret, og ingen to rækker er identiske.

AI-modeller trænes ofte på funktioner, der hentes fra relationelle tabeller via SQL-joins og -aggregeringer. AI kan også oversætte et almindeligt engelsk spørgsmål til SQL, så ikke-tekniske brugere forespørger relationer direkte.

Ja. Med eksempeldata eller krav kan AI foreslå tabeller, primære og fremmednøgler samt en normal form. Outputtet skal stadig gennemgås, fordi normalisering afhænger af forretningsregler, som AI muligvis ikke kender.

De bruges i flæng i praksis. Formelt er en relation et sæt af tupler uden rækkefølge og uden dubletter, mens en tabel er dens fysiske billede, der kan vise rækker i en lagret rækkefølge.

Opsummer dette indlæg med: