logo

Relationeel model in DBMS

EF Codd stelde het relationele model voor om gegevens te modelleren in de vorm van relaties of tabellen. Na het ontwerpen van het conceptuele model van de database met behulp van ER-diagram , moeten we het conceptuele model omzetten in een relationeel model dat met elk willekeurig model kan worden geïmplementeerd RDBMS taal zoals Oracle SQL, MySQL, enz. Dus we zullen zien wat het relationele model is.

Het relationele model gebruikt een verzameling tabellen om zowel gegevens als de relaties tussen die gegevens weer te geven. Elke tabel heeft meerdere kolommen en elke kolom heeft een unieke naam. Tabellen worden ook wel relaties genoemd. Het relationele model is een voorbeeld van een recordgebaseerd model. Op record gebaseerde modellen worden zo genoemd omdat de database is gestructureerd in records met een vast formaat van verschillende typen. Elke tabel bevat records van een bepaald type. Elk recordtype definieert een vast aantal velden of attributen. De kolommen van de tabel komen overeen met de attributen van het recordtype. Het relationele datamodel is het meest gebruikte datamodel en een grote meerderheid van de huidige databasesystemen is gebaseerd op het relationele model.



Wat is het relationele model?

Het relationele model geeft weer hoe gegevens worden opgeslagen in relationele databases. Een relationele database bestaat uit een verzameling tabellen, die elk een unieke naam krijgen. Beschouw een relatie STUDENT met de attributen ROLL_NO, NAME, ADDRESS, PHONE en AGE weergegeven in de tabel.

Tafel Student

ROLL_NO NAAM ADRES TELEFOON LEEFTIJD
1 RAM DELHI 9455123451 18
2 RAMESJ GURGAON 9652431543 18
3 SIJIT ROHTAK 9156253131 twintig
4 ZEKER DELHI 18



object tegen json in Java

Belangrijke terminologieën

  • Attribuut: Attributen zijn de eigenschappen die een entiteit definiëren. bijvoorbeeld; ROLL_NO , NAAM ADRES
  • Relatieschema: Een relatieschema definieert de structuur van de relatie en vertegenwoordigt de naam van de relatie met zijn attributen. bijvoorbeeld; STUDENT (ROLL_NO, NAME, ADDRESS, PHONE en AGE) is het relatieschema voor STUDENT. Als een schema meer dan één relatie heeft, wordt dit Relationeel Schema genoemd.
  • Tupel: Elke rij in de relatie staat bekend als een tupel. De bovenstaande relatie bevat 4 tupels, waarvan er één wordt weergegeven als:
1 RAM DELHI 9455123451 18
  • Relatie-instantie: De verzameling tupels van een relatie op een bepaald tijdstip wordt een relatie-instantie genoemd. Tabel 1 toont de relatie-instantie van STUDENT op een bepaald tijdstip. Het kan veranderen wanneer er een invoeging, verwijdering of update in de database plaatsvindt.
  • Rang: Het aantal attributen in de relatie staat bekend als de mate van de relatie. De STUDENT de hierboven gedefinieerde relatie heeft graad 5.
  • Kardinaliteit: Het aantal tupels in een relatie staat bekend als kardinaliteit . De STUDENT de hierboven gedefinieerde relatie heeft kardinaliteit 4.
  • Kolom: De kolom vertegenwoordigt de reeks waarden voor een bepaald attribuut. De kolom ROLL_NO wordt geëxtraheerd uit de relatie STUDENT.
ROLL_NO

1

2

nfa naar dfa

3



4

  • NULL-waarden: De waarde die niet bekend of niet beschikbaar is, wordt een NULL-waarde genoemd. Het wordt weergegeven door een lege ruimte. bijvoorbeeld; TELEFOON van STUDENT met ROLL_NO 4 is NULL.
  • Relatiesleutel: Dit zijn in feite de sleutels die worden gebruikt om de rijen uniek te identificeren of die ook helpen bij het identificeren van tabellen. Dit zijn van de volgende typen.
    • Hoofdsleutel
    • Kandidaat sleutel
    • Supersleutel
    • Vreemde sleutel
    • Alternatieve sleutel
    • Samengestelde sleutel

Beperkingen in relationeel model

Bij het ontwerpen van het relationele model definiëren we enkele voorwaarden waaraan moet worden voldaan voor de gegevens in de database. Deze worden beperkingen genoemd. Deze beperkingen worden gecontroleerd voordat een bewerking (invoegen, verwijderen en bijwerken) in de database wordt uitgevoerd. Als er sprake is van overtreding van een van de beperkingen, mislukt de bewerking.

Domeinbeperkingen

Dit zijn beperkingen op attribuutniveau. Een attribuut kan alleen waarden aannemen die binnen het domeinbereik liggen. bijvoorbeeld; Als een beperking AGE>0 wordt toegepast op de STUDENT-relatie, zal het invoegen van een negatieve waarde van AGE resulteren in een mislukking.

Sleutelintegriteit

Elke relatie in de database moet ten minste één set attributen hebben die een tupel op unieke wijze definieert. Deze set attributen wordt sleutels genoemd. bijvoorbeeld; ROLL_NO in STUDENT is de sleutel. Geen twee studenten kunnen hetzelfde rolnummer hebben. Een sleutel heeft dus twee eigenschappen:

  • Het moet uniek zijn voor alle tupels.
  • Het mag geen NULL-waarden hebben.

Referentiële integriteit

Wanneer een attribuut van een relatie alleen waarden kan aannemen van een ander attribuut van dezelfde relatie of een andere relatie, wordt dit aangeroepen referentiële integriteit . Stel dat we 2 relaties hebben

kaart in Java

Tafel Student

ROLL_NO NAAM ADRES TELEFOON LEEFTIJD FILIAALCODE
1 RAM DELHI 9455123451 18 CS
2 RAMESJ GURGAON 9652431543 18 CS
3 SIJIT ROHTAK 9156253131 twintig ECE
4 ZEKER DELHI 18 HET

Tabeltak

FILIAALCODE BRANCH_NAME
CS COMPUTERTECHNOLOGIE
HET INFORMATIE TECHNOLOGIE
ECE ELEKTRONICA EN COMMUNICATIE-ENGINEERING
CV CIVIELE TECHNIEK

BRANCH_CODE van STUDENT kan alleen de waarden aannemen die aanwezig zijn in BRANCH_CODE van BRANCH, wat referentiële integriteitsbeperking wordt genoemd. De relatie die verwijst naar een andere relatie heet REFERENCING RELATION (STUDENT in dit geval) en de relatie waarnaar andere relaties verwijzen heet REFERENCED RELATION (BRANCH in dit geval).

Anomalieën in het relationele model

Een anomalie een onregelmatigheid is of iets dat afwijkt van de verwachte of normale toestand. Bij het ontwerpen van databases identificeren we drie soorten afwijkingen: Invoegen, Bijwerken en Verwijderen.

Invoegafwijking in verwijzingsrelatie

We kunnen geen rij in REFERENCING RELATION invoegen als de waarde van het verwijzende attribuut niet aanwezig is in de attribuutwaarde waarnaar wordt verwezen. bijvoorbeeld; Het invoegen van een student met BRANCH_CODE ‘ME’ in de STUDENT-relatie resulteert in een fout omdat ‘ME’ niet aanwezig is in BRANCH_CODE van BRANCH.

Anomalie bij verwijderen/bijwerken in relatie waarnaar wordt verwezen:

We kunnen een rij uit REFERENCED RELATION niet verwijderen of bijwerken als de waarde van REFERENCED ATTRIBUTE wordt gebruikt in de waarde van REFERENCING ATTRIBUTE. bijvoorbeeld; als we proberen een tupel uit BRANCH te verwijderen met BRANCH_CODE 'CS', resulteert dit in een fout omdat naar 'CS' wordt verwezen door BRANCH_CODE van STUDENT, maar als we proberen de rij uit BRANCH te verwijderen met BRANCH_CODE CV, wordt deze verwijderd omdat de waarde niet wordt gebruikt door naar de relatie te verwijzen. Het kan op de volgende manier worden afgehandeld:

opteller volledige opteller

Aan Cascade verwijderen

Het verwijdert de tupels uit REFERENCING RELATION als de waarde die wordt gebruikt door REFERENCING ATTRIBUTE wordt verwijderd uit REFERENCING RELATION. bijvoorbeeld; Want als we een rij verwijderen uit BRANCH met BRANCH_CODE ‘CS’, worden de rijen in de STUDENT-relatie met BRANCH_CODE CS (in dit geval ROLL_NO 1 en 2) verwijderd.

Bij Update Cascade

Het zal het REFERENCING ATTRIBUTE in REFERENCING RELATION bijwerken als de attribuutwaarde die wordt gebruikt door REFERENCING ATTRIBUTE wordt bijgewerkt in REFERENCING RELATION. Als we bijvoorbeeld een rij bijwerken van BRANCH met BRANCH_CODE ‘CS’ naar ‘CSE’, worden de rijen in de STUDENT-relatie met BRANCH_CODE CS (in dit geval ROLL_NO 1 en 2) bijgewerkt met BRANCH_CODE ‘CSE’.

Supersleutels

Elke set attributen waarmee we unieke rijen (tupels) in een bepaalde relatie kunnen identificeren, staat bekend als supersleutels. Uit deze supersleutels kunnen we altijd een geschikte subset kiezen die als primaire sleutel kan worden gebruikt. Dergelijke sleutels staan ​​bekend als kandidaatsleutels. Als er een combinatie is van twee of meer attributen die als primaire sleutel worden gebruikt, noemen we dit een samengestelde sleutel.

Codd-regels in relationeel model

Edgar F Codd stelde het relationele databasemodel voor waarin hij regels stelde. Nu staan ​​deze bekend als de regels van Codd. Wil elke database de perfecte zijn, dan moet deze aan de regels voldoen.

Voor meer informatie, zie Codd-regels in relationeel model .

Voordelen van het relationele model

  • Eenvoudig model: Relationeel Model is eenvoudig en gemakkelijk te gebruiken in vergelijking met andere talen.
  • Flexibel: Relationeel model is flexibeler dan enig ander aanwezig relationeel model.
  • Zeker: Relationeel model is veiliger dan enig ander relationeel model.
  • Nauwkeurigheid van de gegevens: Gegevens zijn nauwkeuriger in het relationele gegevensmodel.
  • Data-integriteit: In het relationele model wordt de integriteit van de gegevens behouden.
  • Bewerkingen kunnen eenvoudig worden toegepast: Het is beter om bewerkingen in het relationele model uit te voeren.

Nadelen van het relationele model

  • Relationeel databasemodel is niet erg goed voor grote databases.
  • Soms wordt het moeilijk om de relatie tussen tabellen te vinden.
  • Vanwege de complexe structuur is de responstijd voor vragen hoog.

Kenmerken van het relationele model

  • Gegevens worden weergegeven in rijen en kolommen die relaties worden genoemd.
  • Gegevens worden opgeslagen in tabellen met onderlinge relaties, het relationele model genoemd.
  • Het relationele model ondersteunt de bewerkingen zoals gegevensdefinitie, gegevensmanipulatie en transactiebeheer.
  • Elke kolom heeft een aparte naam en vertegenwoordigt attributen.
  • Elke rij vertegenwoordigt een enkele entiteit.