Relationele algebra in databases: bewerkingen, voorbeelden

Inhoudsopgave:

Relationele algebra in databases: bewerkingen, voorbeelden
Relationele algebra in databases: bewerkingen, voorbeelden
Anonim

Over het algemeen zijn databasesystemen uitgerust met een zoektaal die gebruikers kan helpen bij het opvragen van instanties. Er zijn twee van dergelijke typen - relationele algebra en relationele calculus. De eerste is een procedurele querytaal die relatie-instanties als invoer neemt en voorbeeldrelaties als uitvoer uitvoert. Gebruikt hiervoor unaire of binaire calculus. Relationele algebra wordt recursief uitgevoerd en tussenresultaten worden behandeld als relaties.

relationele algebra
relationele algebra

Cartesiaans product (Χ)

Combineert informatie uit twee verschillende relaties in één.

Notatie – r Χ s, waar r en s verhoudingen zijn en hun output zal worden gedefinieerd als

r Χ s={qt | q ∈ r en t ∈ s}.

Conclusie. Stelt een relatie in die alle boeken en artikelen toont die met de zelfstudie zijn geschreven.

Bewerking hernoemen (ρ).

De relatie van relationele algebra zijn de resultaten, maar zonder enige naam. Met de hernoemingsbewerking kunt u de uitvoerwaarde wijzigen, aangegeven door de kleine Griekse letter ρ.

Aanduiding – ρ x (E), waar het resultaat van de uitdrukking E wordt opgeslagen met de naamx.

Extra bewerkingen:

  • kruispunt instellen;
  • opdracht;
  • natuurlijke verbinding.

Relationele calculus

Dit is een niet-procedurele zoektaal, wat betekent dat het je vertelt wat je moet doen, maar niet uitlegt hoe je het moet implementeren. De relationele calculus bestaat in twee vormen:

  • correlatieberekening van een tupel;
  • variabelebereiken filteren.

Notatie - T/State: Retourneert alle T-tupels die aan een voorwaarde voldoen. Resultaat. Retourneert tupels met een naam. TRC kan worden gekwantificeerd. U kunt existentiële (∃) en universele kwantoren (∀) gebruiken. Conclusie. De bovenstaande query geeft hetzelfde resultaat als de vorige.

Domein relationele calculus DRC

De filtervariabele gebruikt het attribuutdomein in plaats van tuple integer-waarden (zoals gedaan in de hierboven genoemde TRC).

Notatie – {a 1, een 2, een 3, …, een | P (a 1, een 2, een 3, …, een)}, waarbij a1, a2 attributen zijn en P staat voor formules gebouwd met interne waarden.

Conclusie. Stelt het artikel, de pagina en het onderwerp van de TutorialsPoint-relatie in, waarbij onderwerp de database is.

Net als TRC kan DRC ook worden geschreven met existentiële en universele kwantoren. DRC omvat ook relationele algebra-operators. De sterkte van de uitdrukking van berekening, calculus en correlatie van relaties tussen punten is equivalent.

relationeelrelationeel algebra datamodel
relationeelrelationeel algebra datamodel

Variaties en schema's van relationele calculus en algebra

Het ER-model biedt, wanneer het in diagrammen wordt geconceptualiseerd, een goed overzicht van essentiële relaties die gemakkelijker te begrijpen zijn. Schematische weergaven kunnen worden toegewezen aan een relationeel schema, d.w.z. ze kunnen samen met elkaar worden gemaakt. Het is niet mogelijk om alle ER-beperkingen in een relationeel model te importeren, maar er kan wel een benaderende structuur worden gegenereerd. Er zijn verschillende processen en algoritmen beschikbaar voor het converteren van grafieken naar dit systeem. Sommige zijn geautomatiseerd, andere worden handmatig gemaakt. ER-diagrammen bestaan voornamelijk uit de volgende criteria:

  • entity en zijn attributen;
  • link, wat een associatie is tussen de bovenstaande waarden.

Vergelijking van objecten en relaties vindt plaats op verschillende manieren en schema's. Een entiteit is bijvoorbeeld een object in de echte wereld met enkele attributen. Het matchingproces, het algoritme is als volgt:

  • maak een tabel voor elk object;
  • attributen moeten tabelvelden worden met bijbehorende gegevenstypen;
  • declareer een primaire sleutel.

Een relatie is een associatie tussen entiteiten. Het compilatieproces is als volgt:

  • maak een tabel voor relaties;
  • voeg primaire sleutels van alle deelnemende entiteiten toe als tabelvelden met de juiste gegevenstypen;
  • als de relatie een attribuut heeft, stel dan elk attribuut in als tabelveld;
  • combineer de primaire sleutel waaruit alles bestaatde rest voor deelnemende objecten;
  • specificeer alle beperkingen voor externe sleutels.

Weergave van zwakke verzamelingen en hiërarchische objecten vindt plaats volgens een bepaald systeem. Allereerst is het noodzakelijk om de essentiële fundamenten en definities van deze waarden te begrijpen. Een zwakke functieset is er een waaraan geen primaire sleutel is gekoppeld. Het weergaveproces is als volgt:

  • maak een tabel voor een zwakke set objecten;
  • voeg alle attributen toe aan het schema als een veld;
  • specificeer de primaire sleutel voor identificatie;
  • stel alle beperkingen voor externe sleutels in.

Weergave van hiërarchische objecten op basis van specialisatie of generalisatie van de taal van relationele algebra vindt plaats in de vorm van opeenvolgende entiteiten. Het algoritme is als volgt:

  • tabellen maken voor alle hogere objecten op een lager niveau;
  • primaire sleutels toevoegen;
  • implementeer op een laag niveau alle andere attributen van objecten op een lager niveau;
  • declareer de primaire sleutels van de tabel;
  • stel beperkingen voor externe sleutels in.
Relationele algebra-bewerkingen
Relationele algebra-bewerkingen

Bestaande opties voor het beschrijven, opslaan en wijzigen van informatie

SQL is een programmeertaal voor relationele databases. Het is ontwikkeld over algebra en correlatieberekening van tupels. SQL wordt geleverd als een pakket met alle belangrijke DBMS-distributies. Bevat zowel gegevens als talen om ze te manipuleren. Door relationele algebra SQL-gegevensdefinitie-eigenschappen te gebruiken, kunt u het databaseschema ontwerpen en wijzigen,terwijl de beheer- en aanpassingseigenschappen, evenals gegevenswijzigingen, u in staat stellen informatie op te slaan en op te halen die in het systeem is geïnstalleerd. Gebruikt de volgende reeks opdrachten om structuur en systeem te definiëren:

  • creëert nieuwe databases, tabellen en views van een DBMS.
  • gooit commando's.
  • verandert het databaseschema.
  • dit commando voegt een attribuut toe aan een stringobject.

SQL is uitgerust met een Data Manipulation Language (DML). Het wijzigt de database-instantie door informatie in te voegen, bij te werken en te verwijderen. DML is verantwoordelijk voor het wijzigen van alle gegevens. SQL bevat de volgende reeks opdrachten in de DML-sectie:

  1. SELECT is een van de basisquerycommando's. Het is analoog aan de projectiebewerking van relationele algebra. Het selecteert attributen op basis van de voorwaarde die wordt beschreven in de WHERE-clausule.
  2. FROM - Deze sectie neemt een naam als argument waaruit de attributen moeten worden geselecteerd/geprojecteerd. Als er meer dan één naam wordt gegeven, komt dit item overeen met het Cartesiaanse product.
  3. WHERE - Deze sectie specificeert het predikaat of de voorwaarden waaraan moet worden voldaan om het geprojecteerde attribuut te kwalificeren.

Er zijn ook commando's:

  • insert;
  • waarden wijzigen;
  • verwijder.
Relationele algebra in databases
Relationele algebra in databases

Relationele algebra-query's maken

Bij het construeren van een zoekopdracht is het de taak om een structuur van bewerkingen te vinden die tot de juiste uitvoer zal leiden. De basisbewerkingen van relationele algebra zijn eenvoudigoperaties met een of twee relaties als operanden. De gecombineerde effecten van de sequentie bepalen het uiteindelijke resultaat. Omdat het systeem van relationele algebra in databases vrij eenvoudig is, kunnen veel tussenresultaten worden verkregen voordat de uiteindelijke uitvoer wordt bereikt, ze worden ook gebruikt als operanden die nieuwe ontvangen gegevens produceren.

Voor de meeste operators maakt de volgorde van de zoekopdrachten en de uitvoering ervan niet uit, wat betekent dat dezelfde uitvoer kan worden bereikt door tussenliggende gegevens op verschillende manieren vorm te geven en te combineren. In de praktijk is het doorzoeken van databases vrij eenvoudig. Het systeem voor het uitvoeren van bewerkingen en tussenresultaten wordt bepaald door de query-optimizer. Bij het formuleren van vragen, vereisten, moet je eerst kiezen welke relaties nodig zijn om tot een antwoord te komen en vervolgens bewerkingen en tussenresultaten specificeren. De structuur van een relationele algebra-query in een resultatendatabase kan worden weergegeven als een diagram. Requirements optimizers proberen de uitvoering zo efficiënt mogelijk te organiseren. In de praktijk betekent dit meestal dat ze tussentijdse resultaten zo snel mogelijk proberen te minimaliseren. Veelvoorkomende voorbeelden van relationele algebra helpen hierbij.

Voorbeeld 1.

Informatiebehoefte: informatie over voertuigen van het modeljaar 1996 waar tijdens de inspectie gebreken zijn geconstateerd voor 1999.

Eerst wordt informatie over de auto's weergegeven om de waarden van alle attributen van de relatie te begrijpen. Informatie over inspecties wordt opgeslagen in de tabel "Inspectie" en indien gedetecteerdstoringen worden opgenomen in de tabel "Probleem". Deze drie tabellen zijn dus nodig om de vereiste informatie te krijgen.

Alleen auto's uit 1996 zijn interessant. Het modelbereik van het voertuig wordt weergegeven als de waarde van het ingestelde kenmerk in de rij van de voertuiginformatietabel. Het eerste tussenresultaat bestaat uit tuples die de varianten uit 1996 vertegenwoordigen.

Dus alleen rijen die deze periode beslaan zijn nodig. U moet een selectie gebruiken om ze te extraheren. Nu zijn er auto's en keuringen die nodig waren. De strings worden vervolgens aaneengeschakeld met behulp van de aaneenschakelingsbewerking. Ze moeten worden samengevoegd door een gemeenschappelijk registernummer, aangezien dit de enige gemeenschappelijke kolom is, wordt een natuurlijke samenvoeging gebruikt.

Om erachter te komen of er problemen waren tijdens de controles, moet u probleemregels aan de controle koppelen. Nadat u controlerijen aan auto's hebt gekoppeld, kunt u dit resultaat koppelen aan de foutentabel. De aansluiting moet gebaseerd zijn op het gemeenschappelijke registratienummer en de geverifieerde datum. Dit zijn de enige gemeenschappelijke kolommen in de tabellen, dus er wordt een natuurlijke join gebruikt.

Relationele algebra is een taal
Relationele algebra is een taal

Rekenopties zonder tussenresultaten

Voorbeeld 2.

Vereiste informatie: naam van de bestuurder voor modeljaar 1995 of oudere voertuigen die niet zijn getest voor 2000. De naam staat in de tabel "Driver". Wetshandhavingsinstanties worden beschreven in de tabel "Inspectie en auto's in een kantinewagen". DusDeze drie tabellen zijn dus nodig. Eerst moet u de auto's achterhalen die voor het jaar 2000 niet zijn gekeurd. Het is niet mogelijk om dit probleem op te lossen met alleen de inspecties die in de tabel worden vermeld, omdat deze gegevens bevatten over de inspecties die zijn uitgevoerd en niet over de inspecties die niet zijn uitgevoerd. Dit probleem wordt opgelost door aanvullende auto's te zoeken die vóór het jaar 2000 zijn gecontroleerd. In feite zijn alleen hun registratienummers nodig.

Er zijn andere voorbeelden dan de bovenstaande die laten zien hoe je informatie kunt wijzigen of vinden. Queryvarianten kunnen worden geoptimaliseerd met speciale bewerkingen. Om het zoeken en vinden van gegevens zo gemakkelijk en eenvoudig mogelijk te maken, is er zelfs een relationeel rekenmodel.

Waar informatie is beveiligd en beschermd

Het relationele datamodel van relationele algebra wordt opgeslagen in bestandsformaten die records bevatten. Op fysiek niveau is de feitelijke informatie op een bepaald apparaat in een elektromagnetisch formaat vastgelegd. Deze opslagapparaten kunnen worden onderverdeeld in drie categorieën:

  1. Primair. Deze categorie omvat geheugen dat direct toegankelijk is voor de CPU. Registers, snel geheugen (cache) en hoofdgeheugen (RAM) zijn direct toegankelijk voor de centrale, aangezien ze zich allemaal op het moederbord of chipset bevinden. Deze opslag is meestal erg klein, ultrasnel en onstabiel. Een constante stroomvoorziening is vereist om de toestand te behouden. Als het mislukt, gaan alle gegevens verloren.
  2. Secundair. Wordt gebruikt om informatie voor de toekomst op te slaangebruik of back-up. Omvat geheugenapparaten die geen deel uitmaken van de processorchipset of het moederbord, zoals magnetische schijven, optische schijven (dvd's, cd's, enz.), harde schijven, flashdrives en magnetische banden.
  3. Tertiair. Wordt gebruikt om enorme hoeveelheden gegevens op te slaan. Aangezien dergelijke opslagapparaten zich buiten het computersysteem bevinden, zijn ze het langzaamst in termen van snelheid. Deze opslaggadgets worden voornamelijk gebruikt om een back-up van het hele systeem te maken. Optische schijven en magneetbanden worden veel gebruikt als tertiaire opslag.

Speciale relationele algebra-bewerkingen zijn belangrijk voor de efficiëntie van query's.

Opslagstructuur

Het computersysteem heeft een goed gedefinieerde geheugenhiërarchie. De CPU heeft directe toegang tot het hoofdsysteem en tot ingebouwde registers. De toegangstijd tot het hoofdgeheugen is duidelijk minder dan de processorsnelheid. Om deze discrepantie te minimaliseren, wordt een cache geïntroduceerd. De cache biedt de snelste toegangstijden en bevat de gegevens die het vaakst worden gebruikt door de CPU.

Het geheugen met de snelste toegang is het duurst. Grote opslagapparaten bieden weinig snelheid en zijn goedkoper, maar ze kunnen enorme hoeveelheden gegevens opslaan in vergelijking met een processorregister of cache.

Magnetische en harde schijven zijn de meest voorkomende secundaire opslagapparaten in de huidige computersystemen. Ze worden magnetisch genoemdmetalen basis. Deze schijven worden verticaal op de spindel geplaatst. De lees/schrijfkop beweegt ertussen en wordt gebruikt om zo'n plek eronder te magnetiseren of te verwijderen. Het kan worden herkend als 0 (nul) of 1 (één).

Harde schijven worden geformatteerd in een goed gedefinieerde volgorde voor efficiënte gegevensopslag. Het heeft veel concentrische cirkels die paden worden genoemd. Elke track is verder onderverdeeld in sectoren, waarin doorgaans 512 bytes aan gegevens worden opgeslagen.

SQL relationele algebra
SQL relationele algebra

Bestandsbewerkingen

Bewerkingen op het relationele algebra-taalsysteem en zijn database kunnen grofweg in twee categorieën worden ingedeeld:

  • update;
  • zoeken.

De eerste categorie verandert gegevenswaarden door in te voegen, te verwijderen of bij te werken. Aan de andere kant bewerken zoekbewerkingen geen informatie, maar extraheren ze deze na optionele voorwaardelijke filtering. Bij beide soorten operaties speelt selectie een belangrijke rol. Naast het maken en verwijderen van een bestand, kunnen er verschillende bewerkingen op worden uitgevoerd:

  1. Open - bestaat in een van de twee lees- of schrijfmodi. In het eerste geval staat het besturingssysteem niemand toe de gegevens te wijzigen. Met andere woorden, de gegevens worden alleen gelezen. Bestanden die in de leesmodus zijn geopend, kunnen tussen meerdere objecten worden gedeeld. In de schrijfmodus kunt u de gegevens wijzigen. Bestanden kunnen worden gelezen, maar niet worden gedeeld.
  2. Sluiten is de belangrijkste bewerking vanuit het oogpunt van het besturingssysteem, omdat het alle vergrendelingen verwijdert(indien in gedeelde modus), slaat gegevens op (indien gewijzigd) op secundaire media en geeft alle buffers en handlers vrij die aan het bestand zijn gekoppeld.
  3. Indexeren is een informatiestructuurmethode voor het efficiënt extraheren van records uit de bestanden van een systeem op basis van enkele attributen waar het systeem is geïmplementeerd. Gedefinieerd op basis van attributen.

Indexeren kan van het volgende type zijn:

  1. Primair wordt gedefinieerd in het geordende gegevensbestand. Het informatiebestand is georganiseerd in het sleutelveld.
  2. Secundaire index gegenereerd op basis van een veld dat een kandidaatsleutel is en een unieke waarde heeft in elke record of geen sleutel met dubbele waarden.
  3. Clustering wordt gedefinieerd in een geordend gegevensbestand, in een niet-sleutelveld.
relationele algebra relationele calculus
relationele algebra relationele calculus

Een databasebeheersysteem of DBMS verwijst naar een technologie voor het opslaan en ophalen van gebruikersinformatie met maximale efficiëntie, samen met passende beveiligingsmaatregelen. Een nadere bestudering van dit probleem leidt tot de conclusie dat relationele algebra een taal is van operatoren die relaties als argumenten nemen en ze als resultaat teruggeven.

Aanbevolen: