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.