Welke datamodellen worden gebruikt in de database. Basis databasemodellen. Typische interfacestructuur

Zoals opgemerkt, brengt het infologische model de echte wereld in kaart in enkele voor mensen begrijpelijke concepten die volledig onafhankelijk zijn van de parameters van de gegevensopslagomgeving. Er zijn veel manieren om dergelijke modellen te bouwen: grafiekmodellen, semantische netwerken, entiteit-relatiemodel, enz. De meest populaire hiervan is het entiteit-relatiemodel, dat in hoofdstuk 2 zal worden besproken.

Het infologische model moet in kaart worden gebracht in een computergericht datalogisch model, "begrijpelijk" door het DBMS. Tijdens de ontwikkeling van de theorie en praktisch gebruik databases, evenals computertechnologie Er zijn DBMS gemaakt die verschillende datalogische modellen ondersteunden.

Aanvankelijk begonnen hiërarchische datalogische modellen te worden gebruikt. De eenvoud van organisatie, de aanwezigheid van vooraf bepaalde relaties tussen entiteiten, de gelijkenis met fysieke datamodellen maakten het mogelijk om acceptabele prestaties van hiërarchische DBMS te bereiken op trage computers met zeer beperkt geheugen. Maar als de gegevens geen boomstructuur hadden, waren er veel problemen bij het construeren hiërarchisch model en de wens om de gewenste prestatie te bereiken.

Er zijn ook netwerkmodellen gemaakt voor computers met weinig middelen. Dit zijn vrij complexe structuren die bestaan ​​uit "sets" - bomen met twee niveaus genaamd. "Sets" zijn verbonden met behulp van "link records", kettingen vormend, enzovoort. Bij het ontwikkelen van netwerkmodellen werden veel "trucjes" uitgevonden die het mogelijk maakten om de prestaties van het DBMS te verbeteren, maar dit laatste aanzienlijk bemoeilijkten. De applicatieprogrammeur moet veel termen kennen, verschillende interne talen van het DBMS leren, de logische structuur van de database in detail weergeven om te navigeren tussen verschillende instanties, sets, records, enz. Een van de ontwikkelaars van de operatiekamer UNIX-systemen zei: "De netwerkbasis is de meest de goede weg gegevens kwijt."

De complexiteit van het praktische gebruik van hiërarchische en netwerk-DBMS noopte tot het zoeken naar andere manieren om gegevens te presenteren. Aan het einde van de jaren 60 verschenen DBMS'en op basis van geïnverteerde bestanden, die zich onderscheidden door hun eenvoud van organisatie en de aanwezigheid van een zeer handige talen data manipulatie. Dergelijke DBMS hebben echter een aantal beperkingen met betrekking tot het aantal bestanden voor het opslaan van gegevens, het aantal koppelingen ertussen, de lengte van het record en het aantal velden.

Relationele modellen zijn tegenwoordig het meest gangbaar en zullen in hoofdstuk 3 in detail worden besproken.

De fysieke organisatie van de data heeft een grote impact op de performance van de database. DBMS-ontwikkelaars proberen de meest productieve te creëren fysieke modellen data, waarmee gebruikers een of andere toolkit worden aangeboden om het model voor een specifieke database aan te passen. Een verscheidenheid aan manieren om de fysieke modellen van moderne industriële DBMS te corrigeren, staat ons niet toe om ze in deze sectie te beschouwen.

Database-organisatiemodellen

1. Hiërarchische benadering van database-organisatie. Hiërarchische databases hebben de vorm van bomen met arcs-links en nodes-data-elementen. De hiërarchische structuur veronderstelde ongelijkheid tussen de gegevens - sommige zijn strikt ondergeschikt aan andere. Dergelijke constructies voldoen natuurlijk duidelijk aan de eisen van vele, maar lang niet alle echte problemen.

2. Netwerk datamodel. In netwerkdatabases worden naast verticale koppelingen ook horizontale koppelingen geïmplementeerd. Er zijn echter veel hiërarchische tekortkomingen geërfd, en de belangrijkste is de noodzaak om datalinks op fysiek niveau duidelijk te definiëren en deze linkstructuur net zo duidelijk te volgen bij het opvragen van de database.

3. Relationeel model. Het relationele model is ontstaan ​​uit de wens om de database zo flexibel mogelijk te maken. Dit model bood een eenvoudig en efficiënt mechanisme voor het onderhouden van datalinks.

ten eerste, worden alle gegevens in het model weergegeven als tabellen en alleen tabellen. Het relationele model is het enige dat een uniforme representatie van data geeft. Zowel de entiteiten als de verbindingen van deze zelfde entiteiten worden op precies dezelfde manier in het model weergegeven: tafels . Toegegeven, deze benadering bemoeilijkt het begrip van de betekenis van de informatie die in de database is opgeslagen, en als gevolg daarvan de manipulatie van deze informatie.

Om de moeilijkheden van manipulatie te vermijden, kunt u: tweede element modellen is een relationeel complete taal (merk op dat de taal een integraal onderdeel is van elk datamodel, zonder dat het model niet bestaat). De volledigheid van de taal in de bijlage bij relationeel model betekent dat het elke bewerking moet uitvoeren relationele algebra of relationele calculus (de volledigheid van de laatste werd wiskundig bewezen door E.F. Codd). Bovendien moet de taal elke query beschrijven als bewerkingen op tabellen, niet hun rijen. Een van die talen is SQL.

derde element relationeel model vereist dat het relationele model enkele integriteitsbeperkingen handhaaft. Een dergelijke beperking stelt dat elke rij in een tabel een unieke identificatie moet hebben, genaamd hoofdsleutel . De tweede beperking wordt opgelegd aan de integriteit van koppelingen tussen tabellen. Er staat dat tabelattributen verwijzen naar: primaire sleutels andere tabellen moeten een van die primaire sleutelwaarden hebben.

4. Objectgericht model. Nieuwe toepassingsgebieden van computertechnologie, zoals: Wetenschappelijk onderzoek, computerondersteund ontwerp en automatisering van instellingen, eiste van databases de mogelijkheid om nieuwe objecten op te slaan en te verwerken - tekst, audio- en video-informatie, evenals documenten. De belangrijkste problemen van objectgeoriënteerde datamodellering vloeien voort uit het feit dat een dergelijk ontwikkeld wiskundig apparaat, waarop een algemeen objectgeoriënteerd datamodel zou kunnen worden gebaseerd, niet bestaat. Er is dus voor een groot deel nog geen objectgericht basismodel. Aan de andere kant stellen sommige auteurs dat een algemeen objectgeoriënteerd datamodel in de klassieke zin niet kan worden gedefinieerd vanwege de ongeschiktheid van het klassieke concept van een datamodel voor het objectgeoriënteerde paradigma. Ondanks de voordelen van objectgeoriënteerde systemen, is de implementatie complexe typen data, communicatie met programmeertalen, etc. - voor de nabije toekomst is de superioriteit van relationele DBMS gegarandeerd.

5.3.3 Gegevensmodellen en conceptuele modellering

Het is hierboven al vermeld dat het schema is gemaakt met behulp van een gegevensdefinitietaal. In feite is het gemaakt op basis van de gegevensdefinitietaal van een bepaald doel-DBMS, de taal van relatief laag niveau; met zijn hulp is het moeilijk om de gegevensvereisten zo te beschrijven dat het gemaakte schema begrijpelijk is voor gebruikers van verschillende categorieën. Om een ​​dergelijk begrip te krijgen, is het nodig om een ​​beschrijving van het schema op een hoger niveau te schrijven, dat we het datamodel zullen noemen. In dit geval zullen we onder het datamodel een geïntegreerde set van concepten begrijpen voor het beschrijven van data, relaties daartussen en beperkingen opgelegd aan data binnen een bepaald vakgebied.

Het model is een weergave van de objecten en gebeurtenissen van het onderwerpgebied, evenals de relaties daartussen. Het datamodel kan worden gezien als een combinatie van de volgende drie componenten.

Structureel deel, d.w.z. een set regels waarmee een database kan worden gebouwd.

· Het besturingsgedeelte, dat de soorten bewerkingen definieert die zijn toegestaan ​​met gegevens (dit omvat bewerkingen voor het bijwerken en extraheren van gegevens, evenals bewerkingen voor het wijzigen van de structuur van de database).

· Een reeks gegevensintegriteitsbeperkingen die ervoor zorgen dat de gegevens die worden gebruikt correct zijn.

Het doel van het bouwen van een datamodel is om de data op een begrijpelijke manier te presenteren. Als een dergelijke weergave mogelijk is, kan het datamodel eenvoudig worden toegepast bij het ontwerpen van een database. De volgende drie gerelateerde datamodellen kunnen worden gedefinieerd om de ANSI-SPARC-architectuur in kaart te brengen:

· extern model gegevens die representaties weergeven van elk type gebruiker dat in de organisatie bestaat;

· conceptueel model gegevens die een logische (of algemene) weergave van de gegevens weergeven, onafhankelijk van het type van het geselecteerde DBMS;

· intern model gegevens die het conceptuele schema weergeven op een specifieke manier die wordt begrepen door het geselecteerde doel-DBMS.

Er zijn veel datamodellen voorgesteld en gepubliceerd in de literatuur. Ze vallen in drie categorieën: objectgebaseerde datamodellen, recordgebaseerde datamodellen en fysieke datamodellen. De eerste twee worden gebruikt om gegevens op conceptueel en extern niveau te beschrijven, terwijl de laatste op intern niveau wordt gebruikt.

Objectgegevensmodellen. Bij het bouwen van objectgegevensmodellen worden concepten zoals entiteiten, attributen en relaties gebruikt. Essentie is apart element(medewerker, product, concept of evenement) van het vakgebied dat in de database moet worden vertegenwoordigd. Een attribuut is een eigenschap die een bepaald aspect van een object beschrijft en waarvan de waarde moet worden vastgelegd, en een relatie is een associatieve relatie tussen entiteiten. Hieronder vindt u enkele van de meest gewone types objectgegevensmodellen.

    • Entiteit-relatiemodel, of ER-model (Entiteit-relatiemodel).
    • semantisch model.
    • functioneel model.
    • Objectgeoriënteerd model.

Momenteel is het ER-model een van de belangrijkste methoden geworden conceptueel ontwerp databanken. Het objectgeoriënteerde model breidt de definitie van een entiteit uit om niet alleen de attributen te omvatten die de toestand van het object beschrijven, maar ook de acties die ermee verbonden zijn, d.w.z. zijn gedrag. In dit geval wordt gezegd dat het object staat en gedrag inkapselt.

Op records gebaseerde datamodellen. In het op records gebaseerde model bestaat de database uit verschillende records met een vast formaat die: verschillende soorten. Elk recordtype definieert een vast aantal velden, die elk een vaste lengte hebben. Er zijn drie hoofdtypen: logische modellen op records gebaseerde gegevens: relationeel gegevensmodel, netwerkgegevensmodel en hiërarchisch gegevensmodel.

De kern van elke database is het datamodel. Gegevensmodel is een grote verscheidenheid aan gegevensstructuren, integriteitsbeperkingen en bewerkingen voor gegevensmanipulatie. Met behulp van het datamodel kunnen objecten van het vakgebied worden gepresenteerd, de relatie daartussen. Gegevensmodel is een verzameling gegevensstructuren en hun verwerkingsactiviteiten. Modern DBMS is gebaseerd op het gebruik hiërarchisch, netwerk, relationeel en objectgericht datamodellen, een combinatie van deze modellen, of een deelverzameling daarvan.

Overweeg drie hoofdtypen gegevensmodellen: : hiërarchisch, netwerk, relationeel En objectgericht.

Hiërarchisch datamodel. De hiërarchische structuur is een verzameling elementen die volgens bepaalde regels met elkaar zijn verbonden. Objecten verbonden door hiërarchische relaties vormen een gerichte graaf (omgekeerde boom). De basisconcepten van de hiërarchische structuur omvatten: niveau, element (knooppunt), verbinding. Een hiërarchisch model organiseert gegevens in een boomstructuur. Knoop is een verzameling gegevensattributen die een object beschrijven. In een hiërarchisch boomdiagram zien knooppunten eruit als hoekpunten van een grafiek. Elk knooppunt op een lager niveau is verbonden met slechts één knooppunt, dat zich op een hoger niveau bevindt. Een hiërarchische boom heeft slechts één hoekpunt (de wortel van de boom), die niet ondergeschikt is aan een ander hoekpunt. Afhankelijke (slave) knooppunten bevinden zich op het tweede, derde en andere niveau. Het aantal bomen in de database wordt bepaald door het aantal wortelrecords.

netwerk datamodel.

Netwerk model betekent de weergave van gegevens in de vorm van een willekeurige grafiek. Het voordeel van netwerk- en hiërarchische datamodellen is de mogelijkheid van een efficiënte implementatie in termen van geheugenkosten en efficiëntie. Het nadeel van het netwerkgegevensmodel is de hoge complexiteit en rigiditeit van het databaseschema dat op zijn basis is gebouwd.

relationeel gegevensmodel. Het begrip relationeel (Engelse relatie - relatie) wordt in verband gebracht met de ontwikkelingen van de bekende Amerikaanse specialist op het gebied van databasesystemen E.F. kabeljauw. Deze modellen worden gekenmerkt door een eenvoudige gegevensstructuur, een gebruiksvriendelijke tabelvorm en de mogelijkheid om het apparaat van relationele algebra en relationele berekening te gebruiken om gegevens te verwerken.

In de taal van de wiskunde wordt de relatie op deze manier gedefinieerd. laat gegeven N stelt D1,D2, ...,Dn in. Dan is R een relatie over deze verzamelingen als R een verzameling geordende verzamelingen is van de vorm , waarbij d1 een element is met D1 , d2 een element is met D2 , ... , dn een element is met Dn. In dit geval, sets van de vorm worden tupels genoemd en de verzamelingen D1,D2, ...Dn worden domeinen genoemd. Elke tupel bestaat uit elementen die zijn geselecteerd uit hun domeinen. Deze elementen worden attributen genoemd en hun waarden worden attribuutwaarden genoemd.

Het relationele model is dus gericht op het organiseren van gegevens in de vorm van tweedimensionale tabellen, waarvan elk het volgende heeft: eigenschappen:

Elk tabelelement is één gegevenselement;

Alle kolommen in een tabel zijn homogeen, d.w.z. alle elementen in een kolom hebben hetzelfde type (teken, numeriek, etc.);

Elke kolom is unieke naam;

De tabel bevat geen identieke rijen.

Tabellen hebben rijen die overeenkomen met records (of tupels) en kolommen komen overeen met relatiekenmerken (domeinen, velden).

De volgende termen zijn equivalent:

houding, tabel, bestand (voor lokaalDB);

tupel,lijn, Vermelding;

attribuut, kolom, veld.

Objectgeoriënteerde databases combineren twee datamodellen, relationeel en netwerk, en worden gebruikt om grote databases met complexe datastructuren te creëren.

Een relationele database is een verzameling relaties die alle Nodige informatie en verbonden door verschillende links.

DB wordt overwogen genormaliseerd als aan de volgende voorwaarden is voldaan:

Elke tafel heeft een hoofdsleutel;

Alle velden van elke tabel zijn alleen afhankelijk van de hoofdsleutel;

Er zijn geen dubbele waardegroepen in de tabellen.

Om succesvol met databases met meerdere tabellen te werken, is het in de regel noodzakelijk om relaties tussen beide tot stand te brengen. In dit geval worden de termen "basistabel" (hoofd) en "subtabel" gebruikt. De relatie tussen tabellen wordt verkregen dankzij twee velden, waarvan één in de basistabel en de tweede in de ondergeschikte tabel. Deze velden kunnen een waarde hebben die wordt herhaald. Als de waarde in het gerelateerde veld van het record van de basistabel en in het veld van de ondergeschikte tabel hetzelfde zijn, dan worden deze records gerelateerd genoemd.

Er zijn vier soorten relaties tussen tabellen : een op een , één op veel, veel op één, veel op veel .

Houding een op een betekent dat elke invoer in een tabel komt overeen maar een records in een andere tabel.

Een op veel relatie betekent dat een het item uit de eerste tabel kan worden gekoppeld meerdere opnemen van een andere tafel.

Hoofdtafel is een tabel die bevat hoofdsleutel en maakt deel uit een in een relatie een te veel.

Externe sleutel is een veld met hetzelfde type informatie in een tabel vanaf de zijkant veel.

Praktisch werk

Elk databasesysteem implementeert een of ander gegevensmodel, die de regels definieert voor het genereren van typen gegevensstructuren die acceptabel zijn voor het systeem, mogelijke bewerkingen op dergelijke structuren, klassen van gegevensintegriteitsbeperkingen die door middel van het systeem kunnen worden weergegeven. Het datamodel definieert dus de grenzen van de verzameling van alle specifieke databases die met dit systeem kunnen worden gecreëerd.

Beschrijving van het geselecteerde vakgebied in termen van het datamodel stelt u in staat om een ​​databasemodel te krijgen. Gewoonlijk zijn er drie niveaus van databasemodellen.

mythologisch model geeft informatie weer over het onderwerp zonder zich te concentreren op een specifiek DBMS (of zelfs op het type DBMS dat bedoeld is om te gebruiken). In dit verband spreken sommige auteurs over het bestaan ​​van een infologisch model van het vakgebied, en niet over een database.

Datalogisch model van de database- een logisch niveaumodel, dat een weergave is van logische relaties tussen gegevenselementen, ongeacht hun inhoud en opslagomgeving. Dit model is gebouwd in termen van informatie-eenheden die zijn toegestaan ​​in het DBMS waarin de database wordt gemaakt. De fase waarin dit model wordt gemaakt, wordt datalogisch of logisch ontwerp.

Fysiek model van de database is gebouwd rekening houdend met de mogelijkheden voor het organiseren en opslaan van gegevens die worden geleverd door het DBMS en het gebruikte software- en hardwareplatform. Het definieert met name de gebruikte opslagapparaten en hoe de gegevens op het opslagmedium zijn georganiseerd.

Bij het ontwerpen van een database wordt eerst een infologisch model gebouwd, dan een datalogisch model en pas daarna een fysiek model. Deze stappen zullen in de volgende hoofdstukken in meer detail worden besproken.

Laten we echter terugkeren naar de overweging van datamodellen. Verschillende auteurs geven enigszins verschillende lijsten bestaande modellen gegevens. Het biedt bijvoorbeeld de volgende lijst met gegevensmodellen en tijdsperioden waarin de belangrijkste resultaten werden verkregen bij hun ontwikkeling:

  • hiërarchisch (Engels) hiërarchisch), eind jaren zestig en zeventig;
  • netwerk (Engels) netwerk), jaren 70;
  • relationeel (Engels) relationeel), jaren 70 en begin jaren 80;
  • "essentie-relatie" ( Engels entiteit-relatie), 1970;
  • uitgebreid relationeel (Engels) uitgebreid relationeel), jaren 80;
  • semantisch (Engels) semantisch), eind jaren zeventig en tachtig;
  • objectgericht (Engels) objectgeoriënteerd), eind jaren 80 - begin jaren 90;
  • object-relationeel ( Engels object-relationeel), eind jaren 80 - begin jaren 90;
  • semi-gestructureerd (Engels) semi-gestructureerd), sinds het einde van de jaren negentig. tot nu.

De eersten die verschenen waren datamodellen gebaseerd op grafentheorie - hiërarchisch en netwerk. Ze worden hieronder in meer detail besproken. Vervolgens kwam het relationele datamodel, ontwikkeld door Edgar Codd, gebaseerd op de wiskundige verzamelingenleer. Tot op heden is het de meest voorkomende, dus het zal in het meest gedetailleerd worden beschouwd. Kwesties met betrekking tot het relationele model en het logische ontwerp van relationele databases worden behandeld in de hoofdstukken 4 en 5.

Het entiteit-relatiemodel werd in 1976 door Peter Chen voorgesteld als een uniforme manier om een ​​vakgebied te beschrijven. Als onafhankelijk datamodel (volgens bovenstaande definitie) werd het niet ontwikkeld, maar werd het de basis voor het creëren infologische modellen DB. De infologische ontwerpfase wordt behandeld in hoofdstuk 6.

Het semantische model, evenals het "entity-relationship"-model, wordt gebruikt om infologische modellen te bouwen. Alleen in dit geval worden gebruikersgegevens weergegeven als een set semantische objecten. semantisch object is een benoemde set attributen die een afzonderlijk fenomeen adequaat beschrijft (object, fenomeen, enz.).

De objectgeoriënteerde en objectrelationele datamodellen zijn ontstaan ​​als gevolg van de verspreiding van de objectgeoriënteerde benadering in het programmeren. Objectmodel data suggereert om de database te beschouwen als een set objecten met de eigenschappen van inkapseling, overerving, enz. In 1989 werd het "Manifesto for Object-Oriented Database Systems" gepubliceerd en in 1991 werd het ODMG-consortium gevormd (van Engels Object Data Management Group), die de ontwikkeling van standaarden op zich nam. In 2000 werd The Object Data Standard: ODMG 3.0 gepubliceerd en in 2001 stopte de groep met haar activiteiten. Rond dezelfde tijd werd er actief gewerkt om het relationele model aan te passen aan de vereisten van een objectgeoriënteerde benadering van softwareontwikkeling, wat leidde tot de opkomst van een object-relationeel datamodel. Later werden objectextensies geïntroduceerd in de SQL-taalstandaard.

Semi-gestructureerde data verwijst naar data waarin enige structuur kan worden onderscheiden, maar het is niet strikt genoeg in vergelijking met: relationele structuren data (of structuren van andere traditionele datamodellen) . Het meest opvallende voorbeeld van semi-gestructureerde data zijn XML-documenten (van Engels uitbreidbare opmaaktaal - uitbreidbare opmaaktaal). Geldig (Engels) valid) Een XML-document moet voldoen aan een bepaald beschrijvingsformaat (schema), waarin de documentstructuur, geldige namen van elementen, attributen, enz. worden gespecificeerd. XML-indeling wordt veel gebruikt voor gegevensuitwisseling tussen applicaties en wordt ondersteund door veel DBMS'en.

De kern van elke database is het datamodel. Gegevensmodel - een reeks gegevensstructuren en hun verwerkingsactiviteiten .

Het DBMS is gebaseerd op het gebruik van een hiërarchisch, netwerk- of relationeel model, op een combinatie van deze modellen of op een deelverzameling daarvan.

Hiërarchisch datamodel.

De basisconcepten van de hiërarchische structuur omvatten: niveau, element, verbinding. Knoop het is een verzameling gegevensattributen die een object beschrijven. In een hiërarchisch boomdiagram worden knooppunten weergegeven door hoekpunten van de grafiek. Elk knooppunt op een lager niveau is verbonden met slechts één knooppunt op een hoger niveau. Een hiërarchische boom heeft slechts één hoekpunt (boomwortel), die niet ondergeschikt is aan een ander hoekpunt en zich op het bovenste (eerste) niveau bevindt (zie Fig. 5).

Rijst. 5. Hiërarchisch gegevensmodel

Elk database-item heeft slechts één (hiërarchisch) pad vanaf het root-item. Voor record C4 loopt het pad bijvoorbeeld door records A en B3.

Een voorbeeld van een hiërarchische structuur. Elke student studeert in een bepaalde (slechts één) groep, die behoort tot een bepaalde (slechts één) faculteit (zie Fig. 6).

Rijst. 6. Voorbeeld van hiërarchische gegevensorganisatie

netwerk datamodel

In een netwerkstructuur kan elk element met elk ander element worden verbonden (zie figuur 7).

Rijst. 7. Netwerkgegevensmodel

Een voorbeeld van een netwerkstructuur. Database met informatie over studenten die deelnemen aan onderzoekswerk (SRRS). Het is mogelijk dat één student deelneemt aan meerdere SRWS, evenals de deelname van meerdere studenten aan de ontwikkeling van één SRRS (zie figuur 8).

Rijst. 8. Voorbeeld netwerkorganisatie gegevens

Relationeel gegevensmodel

Deze modellen worden gekenmerkt door een eenvoudige gegevensstructuur, een gebruiksvriendelijke weergave en de mogelijkheid om het formele apparaat van relationele algebra te gebruiken.

Het relationele model is gericht op het organiseren van gegevens in de vorm van tweedimensionale tabellen. Elke relationele tabel (relatie) is tweedimensionale array en heeft de volgende eigenschappen::

Elk element van de tabel is één gegevenselement;

· alle kolommen in de tabel zijn homogeen, d.w.z. alle elementen in een kolom hebben hetzelfde type (numeriek, karakter, etc.) en lengte;

· elke kolom heeft een unieke naam;

· identieke lijnen niet in de tabel;

De volgorde van rijen en kolommen kan willekeurig zijn.

Voorbeeld. Een relationele tabel kan informatie weergeven over studenten die aan een universiteit studeren.

Een veld, waarvan elke waarde op unieke wijze de corresponderende record identificeert, wordt genoemd eenvoudige sleutel (sleutelveld). Als de records uniek worden gedefinieerd door de waarden van verschillende velden, heeft zo'n databasetabel: samengestelde sleutel.

Om twee relationele tabellen te koppelen, moet u de sleutel van de eerste tabel invoeren in de sleutel van de tweede tabel (de sleutels kunnen overeenkomen); in anders moet worden ingevoerd in de structuur van de eerste tabel externe sleutel- de sleutel van de tweede tafel.

Dezelfde gegevens kunnen in tabellen worden gegroepeerd verschillende manieren. De groepering van attributen in tabellen moet rationeel zijn, d.w.z. verdubbeling van gegevens tot een minimum te beperken en de procedures voor de verwerking ervan te vereenvoudigen.

Normalisatie van relaties - het formele apparaat van beperkingen op de vorming van relaties (tabellen), waarmee u duplicatie kunt elimineren, zorgt voor de consistentie van de relaties die zijn opgeslagen in de database, verlaagt de arbeidskosten voor het onderhouden (invoeren, corrigeren) van de database.

Er zijn vijf normale vormen van relaties. Deze formulieren zijn ontworpen om de informatieredundantie van de eerste naar de vijfde normaalvorm te verminderen. Daarom is elke volgende normale vorm moet voldoen aan de vereisten van het vorige formulier en sommige aanvullende voorwaarden. Bij praktisch databaseontwerp worden de vierde en vijfde vorm meestal niet gebruikt.

Overweeg de normalisatieprocedure aan de hand van het voorbeeld van het ontwerpen van een database met meerdere tabellen verkoop bevattende de volgende informatie:

· Informatie over kopers.

Datum van bestelling en hoeveelheid bestelde goederen.

· Orderafhandelingsdatum en verkochte hoeveelheid.

· Kenmerken van de verkochte goederen (naam, kosten, merk).

Tabel 2. Structuur van de tabel verkoop

tafel verkoop kan worden beschouwd als een database met één tabel. Het grootste probleem is dat het een aanzienlijke hoeveelheid repetitieve informatie bevat. Deze datastructuur is de oorzaak van de volgende problemen die optreden bij het werken met de database:

· Er moet veel tijd worden besteed aan het invoeren van repetitieve gegevens. Zo zul je voor alle bestellingen van één klant elke keer dezelfde klantgegevens moeten invoeren.

· Als het adres of telefoonnummer van een koper verandert, moeten alle records met informatie over de bestellingen van die koper worden gecorrigeerd.

· De aanwezigheid van herhaalde informatie leidt tot een ongerechtvaardigde vergroting van de database. Als gevolg hiervan neemt de snelheid van het uitvoeren van query's af. Bovendien worden repetitieve gegevens niet rationeel gebruikt schijfruimte computer.

· Eventuele abnormale situaties zullen veel tijd vergen om de vereiste informatie te verkrijgen.

Een informatie-logisch (infologisch) model wordt gebruikt om de relaties tussen database-objecten logisch weer te geven.

Er zijn drie soorten infologische databasemodellen:

· hiërarchisch;

netwerk;

relationeel.

Hiërarchisch model gegevens zijn boomstructuur, waarbij elk element (object) overeenkomt met slechts één verbinding met een element (object) meer dan hoog niveau. Een voorbeeld van een hiërarchisch model is: Windows-register, met de locatie van bestanden en mappen verschillende niveaus nesten op computerschijven, evenals een stamboom.

De voordelen van het hiërarchische model zijn eenvoud en snelheid. Een zoekopdracht naar een dergelijke database wordt snel verwerkt, aangezien het zoeken naar gegevens plaatsvindt langs een van de takken van de boom, aflopend van bovenliggende objecten naar onderliggende objecten of vice versa (het zoeken in de boom duurt langer om te verwerken).

Als de datastructuur meer is dan complexe relaties dan de gebruikelijke hiërarchie, worden andere modellen gebruikt om informatie te ordenen.

netwerkmodel data maakt het mogelijk om, om gerelateerde informatie te combineren, koppelingen van sommige elementen met andere, niet noodzakelijkerwijs bovenliggende elementen. Dit model is vergelijkbaar met het hiërarchische model en is een verbeterde versie ervan.

IN netwerkmodel gegevens kan elk element meer dan één bovenliggend element hebben, en grafische weergave model lijkt op een netwerk. Het maakt de complicatie van de "boom" mogelijk zonder het aantal links in de top te beperken.

Een kenmerk van hiërarchische en netwerkdatabases is een rigide recordstructuur en sets van relaties die vooraf, in de ontwerpfase, zijn ingesteld, en het veranderen van de databasestructuur vereist een herstructurering van de gehele database. Bovendien, aangezien de logica van de gegevensbemonsteringsprocedure afhankelijk is van: fysieke organisatie deze gegevens, dan is dit model toepassingsafhankelijk. Met andere woorden, als de datastructuur moet worden gewijzigd, moet mogelijk ook de applicatie worden gewijzigd.

Netwerkbases worden beschouwd als instrumenten van programmeurs. Dus om bijvoorbeeld een antwoord te krijgen op de vraag: "Welk product wordt het vaakst besteld door bedrijf X?", moet u enkele programmeercode: om door de database te navigeren. De uitvoering van gebruikersverzoeken kan vertraging oplopen en tegen de tijd dat de gevraagde informatie verschijnt, is deze niet langer relevant.

relationeel model vrij veelzijdig, het vereenvoudigt de structuur van de database enorm en maakt het gemakkelijker om ermee te werken. IN relationeel database alle gegevens, beschikbaar voor de gebruiker, georganiseerd in tabellen. Elke tabel heeft zijn eigen unieke naam die overeenkomt met de aard van de inhoud. Tabelkolommen genaamd velden, beschrijf bepaalde informatiekenmerken, bijvoorbeeld: achternaam, voornaam, geslacht, leeftijd, telefoonnummer, sociale status respondenten. De relationele tabelrijen bevatten records en informatie opslaan over één exemplaar van het gegevensobject dat in de tabel wordt weergegeven, zoals gegevens over één persoon. Identieke records mag niet in de tabel staan.



De belangrijkste vereiste voor een relationele database is dat de waarden van de velden (tabelkolommen) elementaire en ondeelbare informatie-eenheden zijn (dat wil zeggen, om een ​​adres vast te leggen, hebt u niet één, maar meerdere velden met ondeelbare informatie nodig - straat, huisnummer, appartementnummer). Dit maakt het mogelijk om het wiskundige apparaat van relationele algebra te gebruiken voor informatieverwerking. Meest populair relationele DBMS- Toegang, FoxPro, dBase, Oracle, enz.

Een relationele database bevat in de regel meerdere tabellen met verschillende informatie. De databaseontwikkelaar installeert relaties tussen afzonderlijke tabellen. Gebruik bij het maken van koppelingen sleutelvelden.

Zodra koppelingen tot stand zijn gebracht, wordt het mogelijk om query's, formulieren en rapporten te maken die gegevens uit verschillende gerelateerde tabellen bevatten.

Alle gegevens die beschikbaar zijn voor de gebruiker in een relationele database, zijn georganiseerd in de vorm van relationele tabellen, die een tweedimensionale array zijn, waarbij elke tabel zijn eigen unieke naam heeft die overeenkomt met de aard van de inhoud.

Momenteel gebruiken de meeste DBMS een tabellair (relationeel) gegevensmodel.

Voordelen van het relationele model:

・Eenvoudig en gemakkelijk te begrijpen eindgebruiker, aangezien de enige informatieve constructie een visuele tabel is.

· Volledige gegevensonafhankelijkheid. Het wijzigen van de structuur van de database vereist geen significante wijzigingen in het applicatieprogramma.

Nadelen van het relationele model:

· gebied niet altijd mogelijk om in de vorm van een set tabellen te presenteren.

· Lage snelheid queryverwerking in vergelijking met andere modellen, evenals de vereiste voor meer extern geheugen.

Een voorbeeld van een eenvoudige relationele basis gegevens kunnen de tabel "Respondenten" zijn, waarbij één rij (record) informatie is over een van de deelnemers aan de telefonische enquête.