Drie soorten logische databasemodellen. Algemene principes voor het classificeren van subdatabases

  1. het definiëren van gegevenstypen en modellen
  2. hiërarchische en netwerkmodellen
  3. relationeel model.

In taal hoog niveau redelijk ontwikkelde gegevenstypen worden ondersteund, waaronder eenvoudige, gestructureerde, referentie- en abstracte (objecten). Simpele typen zijn fundamenteel in relatie tot een computer en worden onderscheiden als geheel getal, reëel, logisch, letterlijk, enz. Gegevenstype is een reeks gegevensstructuren, bewerkingen die aan gegevens worden opgelegd en integriteitsbeperkingen, dat wil zeggen maatregelen die ervoor zorgen correcte werking operaties met dit type. Structureel type ontworpen om te worden opgebouwd uit een eindige verzameling basistypen complexe datastructuren. Laten we de drie belangrijkste benadrukken structureel type: record (structuur), array, bestand, recursieve structuur. Array– een verzameling gegevens van hetzelfde type. Bewerkingen van het werken met een array: creëren, de initiële waarden van array-elementen instellen, elementen selecteren op indexwaarden ( serienummer) en selectief bijwerken van elementen. Integriteitsbeperkingen houden in dat alle elementen van hetzelfde type zijn en dat de index een geheel getal is. Structuur(recordtype) – een verzameling elementen verschillende soorten. De structuur - medewerker bevat bijvoorbeeld elementen personeelsnummer, volledige naam, geboortedatum. De structuur wordt niet gebruikt pure vorm, maar voor het construeren van complexere typen, met name bestanden. Bestand– dit is een verzameling records met dezelfde structuur (een array van structuren). Het bestand wordt op de harde schijf opgeslagen en is bedoeld voor het opslaan van gegevens. Bestandsfuncties: aanmaken, aanwijzer naar begin van bestand instellen, naar einde van bestand schrijven nieuwe invoer, lees de informatie van de pointer en verkrijg een pointer naar het einde van het bestand. Recursief type– er wordt een superpositie van gegevenstypen gevormd om complexere structuren te verkrijgen, bijvoorbeeld bomen, ondersteund door middel van pointers.

Referentietype– Een pointer is een geheugenadres. Alle schijfruimte is verdeeld in pagina's (2, 4, 8, etc. kilobytes), en het geheugenadres is het paginanummer + het relatieve bytenummer binnen de pagina. Abstract type(object) is een geïnterpreteerd gestructureerd type met functies gedefinieerd op de elementen. Tegelijkertijd worden namen, typen elementen, functies (methoden) en regels (integriteitsbeperkingen) voor het toepassen van deze functies op de beschreven elementen bepaald. Om in het externe te handhaven schijf geheugen Complexere datastructuren op DBMS-niveau ondersteunen datamodellen, waaronder hiërarchisch, netwerk- en relationeel. Gegevensmodel is een reeks datastructuren en regels voor het genereren ervan, de bewerkingen daarop en integriteitsbeperkingen als een lijst van activiteiten gericht op het up-to-date houden van de database. Integriteit is de nauwkeurigheid en correctheid van gegevens in de database op elk moment. Integriteitsbeperking is een geheel van maatregelen gericht op het behoud van de integriteit van de database en de juistheid van de informatieselectie.

Hiërarchisch en netwerkdatamodel.

In de eerste fasen van de database-implementatie (jaren 50-80) werden DBMS'en van de eerste generatie op ES-computers op grote schaal gebruikt: hiërarchische en netwerk-DBMS'en.

Het hiërarchische model organiseert de structuur in de vorm van een geordende boom, de hoekpunten (knooppunten) komen overeen met entiteiten en worden recordtypen genoemd. Een recordtype kan uit verschillende elementen bestaan, en de boog die de typen verbindt wordt “bron-kind” genoemd en komt overeen met een één-op-veel-type (één exemplaar van het bronrecord komt overeen met nul, één of meer onderliggende records). Elk knooppunt is toegankelijk via een hiërarchisch pad: een reeks recordtypen vanaf de wortel van de boom. De bovenste piek is de wortel, de laatste is het blad, veel bomen zijn het bos. De recordtype-extensie is een tabel en de relatie-extensie is een reeks joins tussen tabelrijen. Elke tabelrij is een exemplaar van een recordtype. De integriteitsbeperking is dat een hoekpunt altijd slechts één boog bevat. Bewerkingen: gegevensopname (een exemplaar van een gegenereerd record kan niet bestaan ​​als er geen exemplaar van het originele record bestaat), dat wordt uitgevoerd langs een hiërarchisch pad (recordsleutels worden aangegeven); het verwijderen van gegevens (bij het verwijderen van een exemplaar van het originele record worden alle exemplaren van de gegenereerde exemplaren automatisch verwijderd, aangezien recordexemplaren worden geïmplementeerd met behulp van pointers); gegevens worden opgehaald langs een hiërarchisch pad door recordsleutels op te geven; gegevensupdate – wijzigingen in waarden worden alleen aangebracht voor geëxtraheerde records. Een exemplaar van een record heeft altijd een cel met een verwijzing naar de broer en naar de zoon. Verbindingen dus hiërarchisch model zijn gebaseerd op aanwijzingen. Om het conceptuele model te implementeren vakgebied u moet 6 hiërarchische structuren invoeren: materiaal - onderdeel - levering, magazijn - onderdeel - levering, plaats - leverancier - levering, materiaal - onderdeel - uitgifte, magazijn - onderdeel - uitgifte, klant - uitgifte.

Het voordeel van het hiërarchische model is de eenvoud en intuïtieve perceptie van informatie. Momenteel zoekmachines(boven relationele databases) zijn gebaseerd op de constructie van een navigatie-hiërarchische interface. Het nadeel van dit model is de kunstmatige en redundante benadering van het implementeren van veel-op-veel-relaties en het procedurele karakter van gegevensmanipulatieoperaties.

Laten we ons als voorbeeld een implementatie voorstellen op een hiërarchisch model van een “onderdelenmagazijn”-database.

Om de database “onderdelenmagazijn” op een hiërarchisch DBMS te implementeren, is het noodzakelijk om minimaal vier hiërarchische structuren (forest) te vormen. Omdat de relaties tussen leverancier en klantdeel veel-op-veel zijn, is redundantie vereist op het DB-modelniveau. De veel-op-veel-relatie wordt ontbonden door twee hiërarchieën.

Netwerkmodel.

Dit is een gerichte grafiek, waarvan de knooppunten soorten records bevatten, een grafiek van een willekeurig type, en een hoekpunt kan meerdere bogen bevatten. Het idee van een netwerkmodel werd voorgesteld door de CODASIL-vereniging. Kenmerken van het KODASIL-model:

  1. data-element – ​​basis benoemde eenheid
  2. aggregaat – een verzameling gegevens: array, structuur
  3. record – een benoemde verzameling elementen en/of gegevensaggregaten
  4. set – een benoemde verzameling records die een hiërarchische structuur met twee niveaus vormen, “door oorsprong gegenereerd”. Elk settype vertegenwoordigt een relatie tussen twee recordtypen. Elke setinstantie bevat één exemplaar van een "eigenaar"-item en nul, één of meer exemplaren van een "setlid".

Een netwerk is een verzameling hiërarchieën.

De integriteitsbeperking is dat in een bepaalde set-instantie een set-lidinstantie niet meer dan één exemplaar van een eigenaarrecord kan hebben. Op deze manier bestaat het netwerk uit een reeks één-op-veel-hiërarchieën. Bewerkingen: ophalen – een record kan worden opgehaald met een sleutel, vanuit het opgehaalde record is het mogelijk om naar ondergeschikte records te gaan; include - het kan in een eerder aangekondigde set zitten, of het kan worden opgenomen in de zogenaamde. een unieke set die nog geen eigenaar heeft; overschakelen – van de ene set naar de andere; verwijderen – niet het record wordt verwijderd, maar de verbindingen; wijzigen – verander de waarde van de argumenten in het geselecteerde item. Voordelen: eenvoudige implementatie van veel-op-veel-relaties.

Netwerk DBMS – IDMS –> NETWERK en SETOR.

Netwerkmodellen zijn goed voor implementatie technische communicatie(beschrijving elektrische netwerken, verwarmingsnetwerken) en worden gebruikt in technische berekeningen. Momenteel geïmplementeerd als eigen ontwikkelingen, of op een OO DBMS.

Een voorbeeld van een netwerkmodel van een database “onderdelenmagazijn”.

De database slaat dus exemplaren op van de recordtypen “stad”, “leverancier”, “levering”, “deel”, enz., die binnen bepaalde exemplaren van sets met elkaar in verband staan ​​door een één-op-veel-relatie. Deel 1 in het settype “deel - levering” is bijvoorbeeld de eigenaar van de instanties levering 2 en levering 6, en deel 2 in dit settype is de eigenaar van levering 1, 2, 7. Deel 1 en 2 zijn in verschillende bundels, dat wil zeggen in verschillende exemplaren van de set.

Vroege typen DBMS'en omvatten pseudo-relationele typen. Ze zijn wijdverspreid geworden op pc's, dit zijn de dBase-groepsystemen. Deze omvatten Clipper, FoxPro, FoxBase. In deze systemen wordt elke tabel (recordtype) opgeslagen apart bestand met de extensie dbf, bijvoorbeeld een apart bestand “Plaats”, een bestand “Leverancier”, etc. Tussen bestanden werden verbindingen gehandhaafd programma niveau V klant applicatie. Om dit te garanderen zijn voor elk bestand indexen gemaakt snelle toegang om records op sleutel te archiveren. Hierna gaan we verder relationeel model, die de referentiële integriteit tussen entiteiten handhaaft.

Relationeel datamodel.

Kenmerken van het model.

Edward Codd stelde het concept van het relationele model voor; hij stelde voor om de algebra van relaties als basis te nemen. Het relationele model is gebaseerd op het concept van verzamelingstheoretische relaties - dit is een subset van het cartesiaanse product van domeinen, en een domein is een reeks waarden die een attribuut aanneemt (een reeks stadsnamen, werknemersnamen). Een relatie (tabel) is een subset van het cartesiaanse product van een of meer domeinen.

Relatienaam
A1 A2 A3 A4 – attributen
A11 A12 A13 A14 – voorbeeld tupels
A21 A22 A23 A24
A31 A32 A33 A34

A11, A12 zijn attribuutwaarden.

Een relationele database is een reeks onderling verbonden relaties (tabellen), en de relaties tussen tabellen worden gespecificeerd via externe of secundaire sleutels, dat wil zeggen attributen van tabellen die in sommige andere opzichten primair zijn. Een lijst met attribuutnamen wordt een relatieschema genoemd. Elke relatie heeft een unieke naam. Eigenschappen van relaties: er zijn geen identieke tupels - alle records verschillen in de primaire sleutel; tupels zijn niet van boven naar beneden geordend; attributen zijn niet van links naar rechts geordend (in operations relationele algebra rijen en kolommen met relaties kunnen in elke volgorde en volgorde worden bekeken, ongeacht hun informatie-inhoud of betekenis); alle waarden zijn scalair en alle kolomelementen hebben dezelfde aard, aangezien ze op hetzelfde domein zijn gebouwd. Een relatie met dergelijke eigenschappen wordt genormaliseerd genoemd. In een relatie zijn een of meer attributen de sleutel, dat wil zeggen dat ze de tuple op unieke wijze karakteriseren. Belangrijkste eigenschappen: unieke identificatie van het monster, niet-redundantie (het verwijderen van een attribuut ontneemt het zijn uniciteitseigenschap). Samen met de semantische sleutel wordt een incrementeel (teller) gebruikt, bestaande uit één numeriek veld, dat automatisch wordt verhoogd.

Regels weergeven conceptueel model onderwerpgebied in een relationele database.

Figuur 5 toont het conceptuele model. Laten we het toewijzen aan relationeel.

  1. het in kaart brengen van entiteiten in relationele relaties die genormaliseerd zijn
  2. Associatietoewijzing omvat het gebruik van referentiële integriteit tussen tabellen. De associatierelatie 1:1, 1:M, M:1 wordt geïmplementeerd door een externe secundaire sleutel te plaatsen op de entiteit waarvan de associatiepijl afkomstig is. Deze sleutel komt overeen met de primaire sleutel waarnaar de pijl wijst. Voor veel-op-veel-relaties moet een kruistabel worden opgenomen als secundaire sleutel. primaire sleutels geassocieerde entiteiten.

  1. aggregatie wordt weergegeven met behulp van associaties, waarbij een afzonderlijke “deel”-tabel wordt gemaakt met een secundaire sleutel die deze koppelt aan de eigenarentabel (geheel)
  2. Generalisatietoewijzing wordt meestal bereikt door elk subtype in een afzonderlijke tabel in kaart te brengen met een secundaire sleutel die overeenkomt met de primaire sleutel van de supertypetabel. Voorbeeld: "klant" ( klantcode) voor subtypes “organisatie” ( OGRN, klantcode), “IP” ( TIN, klantcode).

Integriteit van het relationele model.

Integriteit van objecten (relaties) – de database staat niet toe dat enig attribuut van de primaire sleutel ongedefinieerde waarden aanneemt.

Referentiële integriteit – De database mag geen inconsistente externe sleutelwaarden (FK) bevatten. Als de relatie R2 enkele attributen heeft vreemde sleutel, die overeenkomt met de primaire sleutel (PK) van de relatie R1, dan moet elke FK-waarde gelijk zijn aan de PK-waarde. Voorbeeld: Alle materiaalcodes van de tabel “artikel” moeten als primaire sleutels aanwezig zijn in de materiaaltabel.


Deze concepten komen overeen met de beschrijving grafische weergave hiërarchisch model in de vorm van een gerichte graaf (omgekeerde boom).

Elk element van de hiërarchische structuur komt overeen met een databaseattribuut. Elk record in de database komt overeen met de enige manier, leidend van het hoofdknooppunt naar de bladattributen (bladeren). Het pad A;B3;C4 is bijvoorbeeld een record in de database. Indien onder A; begrijp attribuut – instituut nr. (bijvoorbeeld MIREA), en door B3; - attribuutgroepnummer (bijvoorbeeld VUS - 6.99), en onder C4; - attribuut studentnummer (bijvoorbeeld Ivanov), dan deze structuur is een beschrijving van de logische structuur van de MIREA-studentendatabase.

Er kunnen meerdere hoofdknooppunten in een database zijn.

Netwerkdatamodel.


In het netwerkmodel kan, met dezelfde basisconcepten (niveau, knooppunt, verbinding), elk element met elk ander element worden verbonden. Grafische weergave netwerk structuur wordt weergegeven in de volgende afbeelding:

Relationeel datamodel.

Het concept van een relationele database (uit de Engelse relatie) wordt in de eerste plaats geassocieerd met de naam van de Amerikaanse databasespecialist E. Codd.

Relationeel model is de organisatie van gegevens in de vorm van tweedimensionale tabellen. Elke tafel heeft de volgende eigenschappen:

elke kolom (attribuut of domein) heeft een unieke naam;

er zijn geen identieke rijen in de tabel;

alle elementen in een kolom hebben hetzelfde type en formaat;

de volgorde van rijen en kolommen is willekeurig.

Er kunnen meerdere tabellen in een database staan, maar elke tabel moet een unieke naam hebben.


De volgende figuur toont een voorbeeld van een relationeel model gebouwd op basis van relaties: STUDENT, SESSION, BEURSSCHAP.

Veld, d.w.z. een of meer domeinen waarvan de waarde op unieke wijze de corresponderende record identificeert, wordt een sleutel of sleutel genoemd. In tabel De toetsen 1 en 2 zijn het veld “cijferlijstnummer”. Om twee tabellen te koppelen, moet u de sleutel van de ene tabel in de sleutel van de andere tabel invoeren. Als u bijvoorbeeld tabellen 2 en 3 wilt koppelen, moet u in table. 3 en 2 gebruiken het attribuut “resultaat”. Als het niet in een van de tabellen stond, zou het moeten worden ingevoerd.

Het concept van een informatiemodel hangt nauw samen met de relationele benadering van databaseconstructie.

Infologisch model.

Het informatiemodel is primair gebaseerd op het concept van een informatieobject. Een informatieobject is een beschrijving van een echt object in de vorm van een reeks logisch gerelateerde details, of indicatoren, of anderszins informatie-elementen.

Veel informatie objecten vormt een klasse (of type) die een specifieke unieke naam krijgt.

Een informatieobject kan meerdere sleutels hebben, d.w.z. details die het duidelijk definiëren.


Een voorbeeld van het weergeven van een informatieobject in de vorm van een grafiek wordt weergegeven in de volgende afbeelding:

Groepering van details in informatieobjecten kan voorkomen op verschillende manieren, maar het is wenselijk dat het rationeel is, d.w.z. het minimaliseren van duplicatie van gegevens en het vereenvoudigen van de procedure voor de verwerking ervan. Rationaliteit wordt bereikt door de normalisatie van relaties.

Normalisatie van relaties is een formeel apparaat van beperkingen op de vorming van relaties, dat duplicatie van gegevens elimineert, de consistentie ervan verzekert en de arbeidskosten voor het onderhouden van gegevens (dat wil zeggen het invoeren en corrigeren ervan) verlaagt.

E. Codd identificeerde drie normale vormen van relaties en stelde een mechanisme voor om deze te verkrijgen.

Eerste normaalvorm. Een relatie bevindt zich in de eerste normaalvorm (1NF) als alle attributen ondeelbaar zijn. Bijvoorbeeld het kenmerk 'Volledige naam'. staat niet in 1 NF, omdat kan worden onderverdeeld in “Achternaam”, “Voornaam”, “Patroniem”, d.w.z. teruggebracht tot 1NF.

Om de tweede normaalvorm (2 NF) te definiëren, is het noodzakelijk om het concept te verduidelijken functionele afhankelijkheid. Een functionele attribuutafhankelijkheid is een afhankelijkheid waarbij, in een informatieobjectinstantie, elke sleutelwaarde overeenkomt met slechts één waarde van een niet-sleutel (dat wil zeggen beschrijvend) attribuut.


Een voorbeeld van een functionele relatie wordt weergegeven in de figuur:

Naast functioneel bestaat er ook het concept functioneel – volledige afhankelijkheid.

Functioneel volledige afhankelijkheid is dat elk niet-sleutelattribuut functioneel afhankelijk is van de sleutel, maar niet functioneel afhankelijk is van enig deel van de samengestelde sleutel.

Een relatie zal in 2NF zijn als deze in 1NF is en elk sleutelattribuut volledig functioneel afhankelijk is van de samengestelde sleutel.

Een voorbeeld van een t-asrelatie (in 2 NF) is de relatie student = (, achternaam, voornaam, patroniem, datum, groep) - die ook in 1 NF voorkomt.

Prestatieverhouding = ( nummer, achternaam, voornaam, patroniem, discipline, evaluatie) is in 1 NF en heeft een samengestelde sleutel nummer + discipline. Maar deze relatie ligt niet in 2 NF, omdat de attributen achternaam, voornaam en patroniem zijn niet volledig functioneel afhankelijk van de samengestelde sleutel van de relatie (met andere woorden: achternaam, voornaam en patroniem zijn functioneel afhankelijk van een deel van de samengestelde sleutel - het attribuut nummer en dit is functioneel een volledige afhankelijkheid).

Het concept van de derde normaalvorm is gebaseerd op het concept van transitieve en niet-transitieve afhankelijkheid.

Er bestaat een transitieve afhankelijkheid tussen twee beschrijvende (niet-sleutel) attributen als een ervan afhangt van de sleutel en het andere beschrijvende attribuut ervan afhangt (dat wil zeggen het eerste beschrijvende attribuut).

Een relatie heeft de derde normaalvorm (3 NF) als deze, hoewel deze zich in 2 NF bevindt, geen niet-sleutelattributen heeft die transitief afhankelijk zijn van de primaire sleutel.



Een voorbeeld van een transitieve afhankelijkheid voor de relatie “Student” is het attribuut “Hoofd”, dat wordt bepaald door het nummer “groep”.

In dit geval zal de achternaam "Prefect" vele malen worden herhaald in veel gevallen van het informatieobject "Student", wat onnodig geheugengebruik en problemen bij het corrigeren van gegevens veroorzaakt bij het vervangen van een prefect.

Om transitieve afhankelijkheid te elimineren, is het noodzakelijk om het oorspronkelijke informatieobject te ‘splitsen’. Als gevolg van het splitsen worden sommige attributen verwijderd uit het oorspronkelijke informatieobject - zie Fig.


Een voorbeeld van een grafische weergave van een informatiemodel dat informatieobjecten “Student”, “Sessie”, “Beurschap”, “Leraar” verbindt, wordt getoond in Fig.

Op basis van het informatiemodel worden conceptuele (logische), interne (fysieke) en externe databasemodellen gebouwd.

Conceptueel model bestaat uit vele exemplaren verschillende soorten gegevens gestructureerd in overeenstemming met de DBMS-vereisten voor logische structuur databases (d.w.z. dat is het in feite ook blanco sjablonen voor gegevensinvoer).

Intern model bestaat uit individuele kopieën van documenten die fysiek zijn opgeslagen op externe media.

Extern model ondersteunt privégegevensweergaven die vereist zijn voor een specifieke gebruiker.


©2015-2019 website
Alle rechten behoren toe aan hun auteurs. Deze site claimt geen auteurschap, maar biedt gratis gebruik.
Aanmaakdatum van de pagina: 02-04-2016

De kern van elke database is het datamodel. Een datamodel is een verzameling datastructuren en verwerkingsbewerkingen.

Volgens de methode om verbindingen tussen gegevens tot stand te brengen, maken ze onderscheid hiërarchisch, netwerk En relationeel model.

Hiërarchisch model Hiermee kunt u databases bouwen met een boomachtige structuur, waarbij elk knooppunt zijn eigen gegevenstype (entiteit) bevat. Op bovenste niveau boom in dit model is er één knooppunt - de wortel volgende niveau knooppunten die aan deze wortel zijn gekoppeld worden gelokaliseerd, vervolgens knooppunten die zijn gekoppeld aan knooppunten van het vorige niveau, enz. In dit geval kan elk knooppunt slechts één voorouder hebben.

Hiërarchische boomstructuur van het databasemodel

Zoek gegevens in hiërarchisch systeem begint altijd bij de wortel. Vervolgens wordt er van het ene niveau van de boom naar het andere afgedaald totdat het gewenste niveau is bereikt. Het verplaatsen door het systeem van het ene record naar het andere gebeurt met behulp van koppelingen.

Belangrijkste voordelen van het hiërarchische model- eenvoud van beschrijving van hiërarchische structuren van de echte wereld en snelle uitvoering van zoekopdrachten. Het is echter niet altijd handig om elke keer vanuit de root naar de benodigde gegevens te gaan zoeken, en er is geen andere manier om in de database door de database te bladeren. hiërarchische structuren Nee. Het aangegeven nadeel gefilmd in een netwerkmodel, waarbij (door ten minste In theorie) zijn verbindingen van alle informatieobjecten met iedereen mogelijk.

In dit model kan elke leraar veel (theoretisch alle) studenten lesgeven, en kan elke student van veel (theoretisch alle) leraren leren. Omdat dit in de praktijk uiteraard onmogelijk is, moeten we onze toevlucht nemen tot enkele beperkingen. Met behulp van hiërarchische en netwerk modellen versnelt de toegang tot informatie in de database. Omdat elk data-element echter verwijzingen naar een aantal andere elementen moet bevatten, zijn er aanzienlijke bronnen vereist in zowel het schijf- als het hoofdcomputergeheugen. Onvoldoende hoofdgeheugen vermindert uiteraard de snelheid van de gegevensverwerking. Bovendien worden dergelijke modellen gekenmerkt door de complexiteit van de implementatie van een databasebeheersysteem.



Het relationele model werd begin jaren zeventig van de twintigste eeuw ontwikkeld. Kabeljauw. De eenvoud en flexibiliteit van dit model trokken de aandacht van ontwikkelaars, en al in de jaren 80 van de twintigste eeuw. het is wijdverbreid geworden. Dus, relationele DBMS hebben bewezen de industriestandaard te zijn.

Het relationele model is gebaseerd op een systeem van concepten van relationele algebra, waarvan de belangrijkste tabel, rij, kolom, relatie en primaire sleutel zijn, en alle bewerkingen zijn in dit geval gereduceerd tot manipulaties met tabellen. In het relationele model wordt informatie weergegeven in de vorm van rechthoekige tabellen, die elk bestaan ​​uit rijen en kolommen en een naam hebben die uniek is binnen de database.

De tabel weerspiegelt een object uit de echte wereld - een entiteit, en elk van de rijen (records) weerspiegelt één specifiek exemplaar van een object - een exemplaar van de entiteit. Elke tabelkolom heeft een naam die uniek is voor die tabel. De kolommen zijn gerangschikt in de volgorde van hun namen die zijn aangenomen bij het maken van de tabel.

In tegenstelling tot kolommen hebben rijen geen namen, is hun volgorde in de tabel niet gedefinieerd en is hun aantal logischerwijs onbeperkt. Omdat de rijen in de tabel niet geordend zijn, is het niet mogelijk een rij op positie te selecteren. Het nummer in het bestand voor elke rij is niet kenmerkend, omdat de waarde ervan verandert wanneer rijen uit de tabel worden verwijderd. Logischerwijs is er geen eerste en laatste rij.

Relationele systemen elimineerde de noodzaak van complexe navigatie, omdat de gegevens daarin niet als een enkel bestand worden gepresenteerd, maar als onafhankelijke sets, en de bewerkingen van relationele algebra - toegepaste verzamelingenleer - worden gebruikt om gegevens te selecteren.

Elke tabel in een relationeel model moet een kolom (of een reeks kolommen) hebben waarvan de waarde elk van de rijen op unieke wijze identificeert. Deze kolom (of verzameling kolommen) wordt de primaire sleutel van de tabel genoemd.

Als een tabel voldoet aan de eis van een unieke primaire sleutel, wordt deze een relatie genoemd. In het relationele model moeten alle tabellen worden omgezet in relaties. De relaties van het relationele model zijn met elkaar verbonden. Relaties worden onderhouden door middel van externe sleutels.

Buitenlandse sleutel is een kolom (set kolommen) waarvan de waarde op unieke wijze de waarden van de primaire sleutel van een andere relatie (tabel) karakteriseert.

Van een relatie waarin een externe sleutel is gedefinieerd, wordt gezegd dat deze verwijst naar een overeenkomstige relatie waarin dezelfde verzameling kolommen de primaire sleutel is.

In het bovenstaande voorbeeld verwijst de relatie EMPLOYEE naar de relatie DEPARTMENT via de afdelingsnaam.

Het schema van een relationele tabel (relatie) is een verzameling veldnamen die het record vormen:

TABELNAAM (Veld 1, Veld 2, ..., Veld p).

Voor de tabellen in de afbeelding hebben we bijvoorbeeld de volgende schema's (primaire sleutels zijn cursief weergegeven):

WERKNEMER (pasnummer, volledige naam, functie, afdelingsnaam, telefoon);

DEPARTMENT (afdelingsnaam, afdelingslocatie, afdelingsdoel).

Het objectgeoriënteerde databasemodel begon te worden ontwikkeld in verband met de komst van objectgeoriënteerde programmeertalen in de jaren 90 van de twintigste eeuw. Dit soort databases slaat klassenmethoden en soms persistente klassenobjecten op, waardoor een naadloze integratie tussen gegevens- en applicatieverwerking mogelijk is.

De dominantie van het relationele model in moderne DBMS'en wordt bepaald door:

de aanwezigheid van een ontwikkelde theorie (relationele algebra);

de aanwezigheid van een apparaat om andere datamodellen te reduceren tot een relationeel model;

beschikbaarheid speciale middelen versnelde toegang tot informatie;

beschikbaarheid van gestandaardiseerde taal op hoog niveau query's naar de database, waardoor deze kunnen worden gemanipuleerd zonder kennis van de specifieke fysieke organisatie van de database in het externe geheugen.

SOORTEN RELATIES IN HET MODEL

In de praktijk wordt vaak gebruik gemaakt van verbindingen die tot stand komen verschillende soorten correspondenties tussen objecten van “gerelateerde” typen zijn één op één (1:1), één op veel (1:M), veel op veel (M:M).

Een één-op-één-relatie betekent dat elke instantie van het eerste object (A) overeenkomt met slechts één instantie van het tweede object (B), en omgekeerd, elke instantie van het tweede object (B) overeenkomt met slechts één instantie van het eerste voorwerp (A).

Een één-op-veel-relatie betekent dat elk exemplaar van één object (A) meerdere exemplaren van een ander object (B) kan hebben, en dat elk exemplaar van een tweede object (B) slechts één exemplaar van het eerste object (A) kan hebben. .

Een veel-op-veel-relatie betekent dat elke instantie van één object (A) kan corresponderen met meerdere instanties van een tweede object (B), en omgekeerd kan elke instantie van een tweede object (B) ook overeenkomen met meerdere instanties van het eerste voorwerp (A).

Voorbeeld. Laten we een set van de volgende informatieobjecten bekijken:

STUDENT (studentnummer, volledige naam, geboortedatum, groepsnummer);

BEURS (studentnummer, studiebeursbedrag);

GROEP (groepsnummer, specialiteit);

LERAAR (Lerarencode, volledige naam, functie).

Hier hebben de informatieobjecten STUDENT en BEURSSCHAP een één-op-één-relatie, aangezien elke student slechts één beurs kan hebben en elke beurs slechts aan één student kan worden toegewezen.

Informatieobjecten GROEP en STUDENT hebben een één-op-veel-relatie, omdat één groep veel studenten kan bevatten, terwijl elke student slechts in één groep kan studeren.

De informatieobjecten STUDENT en TEACHER zijn met elkaar verbonden door een veel-op-veel-relatie, omdat één leerling bij veel docenten kan studeren en één docent veel studenten les kan geven.

Annotatie

Hierin cursus werk beschrijft het ontwerp van een centrale stadsziekenhuisdatabase en de implementatie ervan in Oracle Datebase. Het vakgebied werd gepresenteerd, conceptuele, logische en fysieke datamodellen werden ontwikkeld. De benodigde tabellen, query's en rapporten zijn gemaakt met behulp van Oracle Datebase-tools. Cursussen bestaan ​​uit:

Inleiding 3

1. Onderwerpgebied 4

2. Conceptueel model 5

3.Logisch model databanken 7

4. Model van fysieke organisatie van gegevens 9

5. Implementatie van databases in Oracle 9

6.Tabellen maken 10

7. Query's maken 16

8. Conclusie 27

Referenties 28

Invoering

Een database is een enkele, ruime opslagplaats van verschillende gegevens en beschrijvingen van hun structuren, die, nadat ze afzonderlijk en onafhankelijk van applicaties zijn gedefinieerd, tegelijkertijd door veel applicaties worden gebruikt.

Naast gegevens kan de database ook tools bevatten waarmee elke gebruiker alleen kan werken met de gegevens die binnen zijn/haar competentie vallen. Als gevolg van de interactie van de gegevens in de database met de beschikbare methoden specifieke gebruikers wordt informatie gegenereerd die zij consumeren en op basis waarvan zij, binnen hun eigen competentie, gegevens invoeren en bewerken

Het doel van dit cursuswerk is het ontwikkelen en implementeren van een database voor centraal ziekenhuis, om de opslag, accumulatie en verstrekking van informatie over de activiteiten van het ziekenhuis te garanderen. Basis gemaakt gegevens zijn vooral bedoeld om de activiteiten van de belangrijkste afdelingen van het ziekenhuis te automatiseren.

Onderwerpgebied

Een vakgebied is een onderdeel echt systeem, wat van belang is voor dit onderzoek. Bij het ontwerpen van geautomatiseerde informatiesystemen wordt het vakgebied vertegenwoordigd door datamodellen van verschillende niveaus. Het aantal niveaus hangt af van de complexiteit van de problemen die worden opgelost, maar omvat in ieder geval conceptuele en logische niveaus.

In deze cursus is het onderwerp het werk van het centrale ziekenhuis, dat patiënten behandelt. De organisatiestructuur van het ziekenhuis bestaat uit twee afdelingen: de griffie en de ontvangstruimte. Aan de receptie worden afspraken gemaakt, doorverwezen, patiënten toegewezen aan afdelingen en verzekeringsnummers geregistreerd. De eerstehulpafdeling houdt op zijn beurt gegevens bij van opname en ontslag, diagnoses van patiënten en medische geschiedenis.

De database is ontworpen om gegevens op te slaan over patiënten, hun plaatsing, voorgeschreven medicijnen en behandelende artsen.


Conceptueel model

De eerste fase van het databaseontwerpproces bestaat uit het creëren van een conceptueel datamodel voor het deel van de onderneming dat wordt geanalyseerd.

Een conceptueel model is een model van een domein. De componenten van het model zijn objecten en relaties. Het conceptuele model dient als communicatiemiddel tussen verschillende gebruikers en is daarom ontwikkeld zonder rekening te houden met de specifieke kenmerken van de fysieke representatie van gegevens. Bij het ontwerpen van een conceptueel model moeten alle inspanningen van de ontwikkelaar voornamelijk gericht zijn op het structureren van gegevens en het identificeren van relaties daartussen, zonder rekening te houden met implementatiekenmerken en problemen met de verwerkingsefficiëntie. Het ontwerp van het conceptuele model is gebaseerd op een analyse van de gegevensverwerkingstaken die bij deze onderneming worden opgelost. Een conceptueel model bevat beschrijvingen van objecten en hun relaties die van belang zijn in het betreffende vakgebied. Relaties tussen objecten maken deel uit van het conceptuele model en moeten in de database worden weergegeven. Een relatie kan een willekeurig aantal objecten omvatten. Aan de andere kant kan elk object deelnemen aan een willekeurig aantal relaties. Daarnaast zijn er relaties tussen de attributen van een object. Er zijn relaties van de volgende typen: “één op één”, “één op veel”, “veel op veel”.

Meest populair model conceptueel ontwerp is het entiteit-relatiemodel (ER-model), het behoort tot de semantische modellen.

De belangrijkste elementen van het model zijn entiteiten, verbindingen daartussen en hun eigenschappen (attributen).

Een entiteit is een klasse objecten van hetzelfde type, waarvan de informatie in het model in aanmerking moet worden genomen.

Elke entiteit moet een naam hebben die wordt uitgedrukt door een enkelvoudig zelfstandig naamwoord. Elke entiteit in het model wordt weergegeven als een rechthoek met een naam.

Een attribuut is een kenmerk (parameter) van een entiteit.

Domein – een reeks waarden (gebied van attribuutdefinitie).

Entiteiten hebben sleutelkenmerken: een entiteitssleutel is een of meer kenmerken die deze entiteit op unieke wijze identificeren.

Een reeks entiteiten voor het centrale ziekenhuis (entiteitskenmerken worden tussen haakjes aangegeven, de belangrijkste kenmerken zijn onderstreept):

PATIËNTEN ( Patiëntcode, achternaam, voornaam, geboortedatum, polisnummer, afdelingscode);

BEHANDELING ( Patiëntcode, diagnose, ontslagdatum, dokterscode, kosten);

AFDELINGEN( Filiaalcode, naam afdeling, aantal afdelingen);

INKOMEN ( Patiëntcode opnamedatum, afdelingscode);

KAMERS ( Kamercode, aantal plaatsen, afdelingscode);

ARTSEN(Dokterscode achternaam, voornaam, geboortedatum, persoonsdossiernummer, afdelingscode);

Entiteit-relatiediagram voor districtsziekenhuis weergegeven in Figuur 1.


Logisch databasemodel

De versie van een conceptueel model die door een bepaald DBMS kan worden geleverd, wordt een logisch model genoemd. Het proces van het bouwen van een logisch databasemodel moet gebaseerd zijn op een specifiek datamodel (relationeel, netwerk, hiërarchisch), dat wordt bepaald door het type beoogde implementatie informatiesysteem DBMS. In ons geval wordt de database aangemaakt in de Oracle-omgeving en zal het een relationele database zijn.

Het relationele model wordt gekenmerkt door zijn eenvoud van datastructuur, gebruiksvriendelijke tabelweergave en de mogelijkheid om het formele apparaat van relationele algebra en relationele calculus te gebruiken om gegevens te manipuleren.

In relationele datamodellen worden objecten en relaties daartussen weergegeven met behulp van tabellen. Elke tabel vertegenwoordigt één object en bestaat uit rijen en kolommen. Een tabel in het relationele model wordt een relatie genoemd.

Attribuut (veld) – elke kolom in de tabel.

Tupels (records) zijn tabelrijen.

De tabellen zijn aan elkaar gekoppeld door middel van sleutelvelden.

Een sleutel is een veld waarmee u een record in een tabel op unieke wijze kunt identificeren. De sleutel kan eenvoudig zijn (bestaande uit één veld) of samengesteld (bestaande uit meerdere velden).

IN relationele databases gegevens logisch ontwerp leidt tot de ontwikkeling van een dataschema, dat wordt weergegeven in figuur 2.

Afb.2.
4. Model van fysieke gegevensorganisatie

Fysiek model data beschrijft hoe gegevens op een computer worden opgeslagen en biedt informatie over de structuur van records, hun volgorde en bestaande toegangspaden.

Het fysieke model beschrijft de typen, identificatiegegevens en bitbreedtes van de velden. Het fysieke datamodel weerspiegelt de fysieke plaatsing van gegevens op machinemedia, dat wil zeggen welk bestand, welke objecten, met welke attributen het bevat en wat de typen van deze attributen zijn.


©2015-2019 website
Alle rechten behoren toe aan hun auteurs. Deze site claimt geen auteurschap, maar biedt gratis gebruik.
Aanmaakdatum van de pagina: 26-04-2016

De aanwezigheid in een DBMS van een bepaalde, geldige datastructuur leidt tot het concept van gestructureerde databases, dat wil zeggen dat de gegevens in dergelijke databases moeten worden gepresenteerd als een reeks onderling verbonden elementen. Als we uitgaan van de mogelijkheid om nieuwe typen te genereren en van het dynamische proces van het tot stand brengen van verbindingen (tijdens het verschijnen van een object in de database), dan komen we bij het concept van ongestructureerde databases. Tussenliggende opties zijn ook acceptabel, deze worden een database met een gedeeltelijk deterministisch schema genoemd. Deze indeling van de database vanuit het oogpunt van de mate van structuur van de opgeslagen gegevens blijkt een essentieel punt te zijn bij het kiezen van een DBMS-drager voor IS-implementatie, aangezien een specifiek DBMS doorgaans een specifiek datamodel ondersteunt. Aan de andere kant moet er rekening mee worden gehouden dat voor elk van de bovengenoemde typen databases overeenkomstige datamodellen worden gebruikt, d.w.z. Er zijn een aantal datamodellen.

Momenteel zijn er drie hoofdtypen gestructureerde gegevensdatabases: logische datamodellen afhankelijk van de aard van de verbindingen die ze ondersteunen tussen data-elementen - netwerk, hiërarchisch en relationeel. De classificerende kenmerken in deze modellen zijn: de mate van stijfheid (fixatie) van de verbinding, een wiskundige weergave van de modelstructuur en acceptabele datatypen (zie Tabel 1.1). Geldige gegevenstypen zullen later in het onderzoek worden besproken. relationeel model.

Rijst. Figuur 1.8 illustreert de kenmerken van elk datamodel. Houd er bij het vergelijken van modellen rekening mee dat ze allemaal theoretisch gelijkwaardig zijn. De gelijkwaardigheid van modellen ligt in het feit dat ze door formele transformaties tot elkaar kunnen worden herleid. Een gedetailleerd bewijs van dit feit kan worden gevonden in de klassieke monografie van J. Martin over databases. De essentie van het bewijs is het loslaten van het principe van gegevensredundantie, dat wil zeggen dat het toegestaan ​​is om gegevens in weergavenodes te dupliceren. Vervolgens wordt de transformatie van het ene model in het andere verkregen door eenvoudigweg de hoekpunten van de overeenkomstige representatie in de keten van ‘netwerk-hiërarchisch-relationele’ modellen te verdubbelen.


Rijst. 1.8.

Algemene principes van DBMS-classificatie

Heel vaak worden DBMS'en geclassificeerd op basis van het type gegevensmodel dat ze ondersteunen. Bijgevolg wordt bij DBMS'en onderscheid gemaakt tussen netwerk, hiërarchisch en relationeel. In de gegevensverwerkingspraktijk worden DBMS'en echter gekenmerkt door hun vermogen om te ondersteunen bepaald type DB. In de zeer algemeen beeld De databank is onderverdeeld in:

  • factografisch, waarin een reeks feiten geïntegreerd wordt opgeslagen, mogelijk uit verschillende documenten;
  • documentaire, die gericht zijn op het opslaan van documenten;
  • documentair en feitelijk, die kenmerken van beide hebben.

Ja, DBMS CDS/ISIS primair gericht op het ondersteunen van werkzaamheden met een document dat bestaat uit een bepaald aantal categorieën geïndexeerd door thesaurus trefwoorden. ADABAS DBMS is zeer geschikt voor het organiseren van feitelijke databases, en ORACLE DBMS is zeer geschikt voor databases van gemengd type. Om verwarring bij het gebruik te voorkomen een bepaald model data, database, op zeldzame uitzonderingen na, is het raadzaam om te classificeren op basis van het type model dat in het DBMS wordt gebruikt. Merk op dat de classificatie van databases nog lang niet een voltooid onderzoeksgebied is: pogingen om nieuwe soorten databases te introduceren gaan door (actieve, deductieve, vage relationele, grafische databases, enz.).

In veel gevallen is het belangrijk voor IS-ontwikkelaars om DBMS'en (en databases) in te delen op basis van de aard van de verwerking: gecentraliseerd en gedistribueerd. Wanneer u gedistribueerde verwerking gebruikt, moet u letten op de aard van de transactieverwerking, omdat deze laatste hebben een aanzienlijke impact op de systeemprestaties. In het meest algemene geval wordt onder een transactie verstaan ​​een werkeenheid die de gebruiker uit de database nodig heeft, ongeacht de aard van de verwerking. Meestal wordt als gevolg van transactieverwerking een gebruikersverzoek geïmplementeerd om gegevens uit de database op te halen, of om de database bij te werken, of om een ​​andere actie op de database uit te voeren. Er wordt aangenomen dat de uitvoering van een verzoek gepaard gaat met de uitvoering van een reeks DBMS-acties binnen het systeem, gericht op het handhaven van de gegevensintegriteit, toegangscontrole, enz.

Er zijn verschillende conceptuele benaderingen van transactieverwerking bij gedistribueerde verwerking. De fundamentele vraag hier is niet alleen de vraag hoe, maar ook waar de transactieverwerking wordt gelokaliseerd: op computerbestanden eindgebruiker of op een speciale computer op het netwerk. De keuze voor het ene of het andere concept zal de reactietijd van het systeem op het verzoek van de gebruiker bepalen. De parameter “systeemresponstijd op gebruikersverzoeken” fungeert vaak als een bepalende of wenselijke parameter van het systeem dat wordt ontwikkeld. Bijvoorbeeld voor gedistribueerd systeem bij het boeken van vliegtickets voor 's werelds grootste luchtvaartmaatschappijen is deze parameter essentieel en wordt deze opgenomen in ontwerp oplossing niet langer dan 30-45 seconden.