Basisinformatie over databases. Databasemanagementsysteem. Databasekenmerken

Elke site-eigenaar weet dat om de site goed te laten werken, niet alleen bestanden met de paginacode nodig zijn, maar ook databases. Databasebeheersystemen (DBMS) worden gebruikt om te communiceren met databases. In dit artikel wil ik het hebben over databases en DBMS, over welke typen er bestaan ​​en hoe ze van elkaar verschillen.

Database

Een database is een specifieke set gegevens, die in de regel zijn gekoppeld door een verenigende functie of een eigenschap (of meerdere). Deze gegevens zijn bijvoorbeeld alfabetisch gesorteerd. De overvloed aan verschillende gegevens die in één database kunnen worden gestopt, leidt tot veel variaties op wat kan worden vastgelegd: persoonlijke gegevens van gebruikers, records, datums, bestellingen, enzovoort. Als u bijvoorbeeld een online winkel heeft, kan de database van uw site prijslijsten, een catalogus van goederen of diensten, rapporten, statistieken en klantinformatie bevatten.

Allereerst is het handig omdat informatie snel in de database kan worden ingevoerd en indien nodig net zo snel weer kan worden opgevraagd. Als aan het begin van de webontwikkeling alle benodigde gegevens in de paginacode moesten worden geschreven, is dat nu niet nodig - de benodigde informatie kan met behulp van scripts uit de database worden opgevraagd. Speciale algoritmen voor het opslaan en ophalen van informatie die worden gebruikt in databases maken het mogelijk om te vinden Nodige informatie letterlijk in een fractie van een seconde - en bij het werken in virtuele ruimte de snelheid van de bron is belangrijk als niets anders.

Ook de relatie van informatie in de database is van belang: een wijziging in één regel kan leiden tot significante wijzigingen in andere regels. Op deze manier met data werken is veel makkelijker en sneller dan wanneer de wijzigingen op slechts één plek in de database zouden plaatsvinden.

Dit betekent echter niet dat elke site een database moet hebben - bijvoorbeeld als u een site met visitekaartjes heeft en nee nieuwe informatie post je niet op de site, dan heb je gewoon geen database nodig. Meest makkelijke manier maak een eenvoudige site - maak.

Databasemanagementsysteem

Zoals je uit de naam kunt afleiden, is een databasebeheersysteem (of afgekort DBMS) software die wordt gebruikt om databases te maken en ermee te werken. Hoofdfunctie DBMS is gegevensbeheer (dat zowel extern als werkgeheugen). Het DBMS ondersteunt noodzakelijkerwijs databasetalen en is ook verantwoordelijk voor het kopiëren en herstellen van gegevens na eventuele fouten.

Met betrekking tot de classificatie van databases zijn er verschillende mogelijkheden.
U kunt de databases bijvoorbeeld delen door: datamodellen: hiërarchisch (hebben een boomstructuur), netwerk (vergelijkbaar in structuur met hiërarchisch), relationeel (gebruikt om relationele databases data), objectgeoriënteerd (gebruikt om objectmodel data) en object-relationeel (een soort samensmelting van relationele en object-georiënteerde typen databases).

Of, als de verdeling gaat volgens: waar bevindt de DBMS zich?, ze kunnen worden onderverdeeld in lokaal - het volledige DBMS bevindt zich op één computer en gedistribueerde - delen van het databasebeheersysteem bevinden zich op meerdere computers.

File-server, client-server en embedded - dit zijn de namen van het DBMS, indien gedeeld door manier om toegang te krijgen tot databases... Bestandsserver DBMS aan dit moment worden al als verouderd beschouwd; voornamelijk client-server (DBMS, die zich samen met de database op de server bevindt) en ingebed (niet vereist) aparte installatie) systemen.

De informatie die wordt opgeslagen in databases is niet beperkt tot alleen tekst- of grafische bestanden - moderne versies Het DBMS ondersteunt ook audio- en videobestandsindelingen.

In dit artikel zal ik me concentreren op DBMS, die worden gebruikt om informatie van verschillende webbronnen op te slaan.

Waarom zijn deze DBMS'en nodig? Naast hun hoofdfunctie - het opslaan en organiseren van een enorme hoeveelheid informatie - stellen ze u in staat om klantverzoeken snel te verwerken en verse en relevante informatie te verstrekken.

Dit geldt ook voor de wijzigingen die u aanbrengt - in plaats van de informatie in elk bestand van de site te wijzigen, kunt u deze in de database wijzigen, waarna de juiste informatie onmiddellijk op elke pagina wordt weergegeven.

Relationele DBMS en SQL

Relationele en object-relationele DBMS behoren tot de meest voorkomende systemen. Het zijn tabellen waarin elke kolom (een "veld" of "veld" genoemd) is geordend en een specifieke, unieke naam heeft. De volgorde van regels (ze worden "records" of "records" genoemd) wordt bepaald door de volgorde waarin informatie in de tabel wordt ingevoerd. In dit geval kan de verwerking van kolommen en rijen in willekeurige volgorde plaatsvinden. Tabellen met gegevens zijn door speciale relaties met elkaar verbonden, waardoor met gegevens van verschillende tafels je kunt werken - bijvoorbeeld combineren - met een enkele query.

Om relationele databases te beheren, gebruik speciale taal programmeren - SQL. De afkorting staat voor "Structured query language", vertaald in het Russisch "taal van gestructureerde zoekopdrachten".

De opdrachten die in SQL worden gebruikt, zijn onderverdeeld in die voor het manipuleren van gegevens, die voor het definiëren van gegevens en die voor het manipuleren van gegevens.

Het schema voor het werken met de database is als volgt:


MySQL

MySQL is een van de meest populaire en wijdverbreide DBMS die door veel bedrijven wordt gebruikt (bijvoorbeeld Facebook, Wikipedia, Twitter, LinkedIn, Alibaba en anderen). MySQL is een relationeel databasebeheersysteem met gratis software dat is gelicentieerd onder de voorwaarden van de GNU Public License. Doorgaans wordt dit databasebeheersysteem gedefinieerd als een goed, snel en flexibel systeem, aanbevolen voor gebruik in kleine tot middelgrote projecten. MySQL heeft veel verschillende voordelen. Het ondersteunt bijvoorbeeld: Verschillende types tabellen: zowel het bekende MyISAM en InnoDB, als het meer exotische HEAP en MERGE; bovendien groeit het aantal ondersteunde typen voortdurend. MySQL voert alle opdrachten snel uit - het is misschien wel de snelste database die momenteel bestaat. Een onbeperkt aantal gebruikers kan tegelijkertijd met dit databasebeheersysteem werken en het aantal rijen in tabellen kan gelijk zijn aan 50 miljoen.

Omdat MySQL in vergelijking met sommige andere DBMS minder functies ondersteunt, is het veel gemakkelijker om ermee te werken dan bijvoorbeeld met PostgreSQL, dat hieronder zal worden besproken.

De eerste versie van MySQL werd in 1995 uitgebracht en sindsdien zijn er verschillende volgende releases geweest, die elk aanzienlijke veranderingen met zich meebrachten.

Om met MySQL te werken, wordt niet alleen tekst, maar ook grafische modus gebruikt. Dit is mogelijk dankzij de phpMyAdmin-applicatie: je hoeft niet eens SQL-commando's te kennen om in de applicatie te werken, en je kunt je database rechtstreeks via je browser beheren.

In het algemeen kan worden opgemerkt dat MySQL de keuze is van diegenen die een DBMS nodig hebben voor een klein of middelgroot project, snel en gemakkelijk te gebruiken en zonder enige administratieve problemen.


PostgreSQL

Dit open source databasebeheersysteem is een object-relationeel type DBMS. Net als in het geval van MySQL is PostgreSQL gebaseerd op de SQL-taal, maar in tegenstelling tot MySQL ondersteunt PostgreSQL de SQL-2011-standaard. Dit DBMS heeft geen beperkingen voor de maximale grootte van de database of het maximale aantal records of indexen in een tabel.

Als we het hebben over de voordelen van PostgreSQL, dan is het natuurlijk de betrouwbaarheid van transacties en replicaties, de mogelijkheid van overerving en gemakkelijke uitbreidbaarheid. PostgreSQL ondersteunt verschillende extensies en programmeertaalopties zoals PL / Perl, PL / Python en PL / Java. Het is ook mogelijk om C-compatibele modules te laden.

Veel mensen wijzen erop dat dit DBMS, in tegenstelling tot MySQL, goede en gedetailleerde documentatie heeft, die op bijna alle vragen antwoord geeft.

Dat dit een grootschaliger DBMS is dan MySQL blijkt ook uit het feit dat PostgreSQL periodiek wordt vergeleken met dergelijke krachtig systeem gegevensbeheer zoals Oracle.

Dit alles stelt ons in staat om van PostgreSQL te spreken als een van de meest geavanceerde DBMS van dit moment.


SQLite

Op dit moment is het een van de meest compacte DBMS; het is ook insluitbaar en relationeel. Met SQLite kunt u alle gegevens in één bestand opslaan en onderscheidt het zich door zijn kleine formaat door benijdenswaardige prestaties. SQLite verschilt aanzienlijk van MySQL en PostgreSQL in zijn structuur: de engine en de interface van deze DBMS bevinden zich in dezelfde bibliotheek - en dit is wat u in staat stelt om alle queries zeer snel uit te voeren. Andere DBMS'en (MySQL, PostgreSQL, Oracle, enz.) gebruiken een client-serverparadigma wanneer communicatie plaatsvindt via een netwerkprotocol.

Een van de tekortkomingen is het ontbreken van een gebruikerssysteem en de mogelijkheid om de productiviteit te verhogen.

SQLite kan worden aanbevolen voor gebruik in projecten waar u de applicatie snel moet kunnen porten en waar schaalbaarheid niet nodig is.


Orakel

Dit DBMS is van het object-relationele type. De naam komt van de naam van het bedrijf dat dit systeem heeft ontwikkeld, Oracle. Samen met SQL gebruikt het DBMS een procedurele extensie genaamd PL / SQL, evenals de Java-taal.

Oracle is een systeem dat al meer dan twaalf jaar stabiel is, dus het is de keuze van grote bedrijven waarvoor betrouwbaarheid van disaster recovery, een gestroomlijnde back-upprocedure, schaalbaarheid en andere waardevolle functies belangrijk zijn. Bovendien biedt dit DBMS een uitstekende beveiliging en effectieve gegevensbescherming.

In tegenstelling tot andere DBMS'en zijn de kosten voor het kopen en gebruiken van Oracle vrij hoog, en dit vormt vaak een belangrijk obstakel voor het gebruik ervan in kleine bedrijven. Waarschijnlijk is dit ook de reden dat Oracle slechts op de 6e plaats staat in de 2016 DBMS-rating in Rusland.



MongoDB

Dit DBMS is anders omdat het is ontworpen om op te slaan hiërarchische structuren gegevens, en daarom wordt het documentgericht genoemd (het is een documentopslag zonder het gebruik van tabellen of schema's). MongoDB is open source.

Met behulp van een identifier kunt u snelle bewerkingen op een object uitvoeren; dit DBMS presteert ook goed in complexe interacties. Allereerst hebben we het over prestaties - in sommige gevallen zal een applicatie die is geschreven in MongoDB sneller werken dan dezelfde applicatie die SQL gebruikt, omdat MongoDB behoort tot de NoSQL DBMS-klasse en gebruikt in plaats van SQL een objectquery-taal, die veel lichter is dan SQL.

Deze taal heeft echter zijn eigen beperkingen en daarom moet MongoDB worden gebruikt in gevallen waarin er geen behoefte is aan complexe en niet-triviale selecties.

In plaats van een conclusie

Het kiezen van een DBMS is: belangrijk punt bij het maken van uw bron. Ga uit van uw taken en mogelijkheden, probeer en experimenteer om precies de optie te vinden die het meest geschikt is.

Relationele databases bouwen

Basisprincipes van het bouwen van relationele databases

Beschrijven van relationele gegevens

Tijdens het bouwen van een relationele database moeten verschillende taken worden opgelost. Eerst moet de structuur van de database voor het DBMS worden beschreven. Om dit te doen, gebruikt de ontwikkelaar een gegevensbeschrijvingstaal of een gelijkwaardige manier om de structuur te beschrijven (bijvoorbeeld grafische weergave). Vervolgens wordt de database naar een of ander fysiek medium geschreven en gevuld met gegevens. In deze sectie zullen we elk van deze taken behandelen, maar eerst zullen we kennis maken met relationele terminologie.

Terminologieoverzicht

Zoals vermeld in hoofdstuk 5, houding is een tabel met bepaalde eigenschappen.

    Relatierecords kunnen alleen enkele waarden hebben; meerdere waarden zijn niet toegestaan. Daarom is er slechts één waarde op het snijpunt van een rij en een kolom.

    Alle records in één kolom zijn van hetzelfde type. De ene kolom kan bijvoorbeeld de namen van klanten bevatten en de andere hun geboortedata. Elke kolom heeft unieke naam, en de volgorde van de kolommen is niet relevant. Relatiekolommen hebben een naam attributen. Elk attribuut heeft zijn eigen verbrand, wat een fysieke en logische beschrijving is van een reeks geldige waarden.

3. Een relatie kan geen twee identieke lijnen hebben en de volgorde van de lijnen is niet significant (Fig. 8.1). Relatiereeksen worden ook wel tupels.

Tekening 8.1 is een voorbeeld, of een enkele instantie, van een relationele structuur die informatie bevat over een patiënt in een kliniek. gegeneraliseerd formaat, GEDULDIG (Naam, GeboorteDatum, Geslacht, Rekeningnummer, Arts) - dit is de structuur van de relatie; zij is het die de meeste mensen bedoelen met de term houding.(Onthoud uit het hoofdstuk 5, dat het onderstrepingsteken het attribuut markeert dat de sleutel van de relatie is.) Als we een beperking op de mogelijke gegevenswaarden toevoegen aan de relatiestructuur, krijgen we relationeel schema(relationeel schema). Al deze termen worden gegeven in de tabel. 8.1.

Misverstanden over de term "sleutel"

Termijn toets is vaak een bron van verwarring omdat het verschillende betekenissen heeft in de ontwerp- en implementatiefase. In het ontwerpproces wordt een sleutel begrepen als een of meer kolommen die op unieke wijze een relatierij definiëren. Zoals we weten uit het hoofdstuk 5, elke relatie heeft minstens één sleutel, aangezien elke rij uniek is; in het uiterste geval is de sleutel een combinatie van alle kolommen van de relatie. Gewoonlijk heeft een sleutel één of twee kolommen.

Onder uitvoeringstermijn toets in een andere betekenis gebruikt. In de meeste relationele DBMS'en is een sleutel een kolom op basis waarvan het DBMS een index en andere gegevensstructuren vormt. Dit wordt gedaan om ervoor te zorgen dat snelle toegang naar de waarden uit de gegeven kolom. Deze sleutels hoeven niet uniek te zijn, en vaak zijn ze dat ook niet. Ze zijn alleen gemaakt om de prestaties te verbeteren. (Voor informatie over dergelijke datastructuren, zie Bijlage A.)

Denk bijvoorbeeld aan de relatie ORDER (Bestelnummer, Besteldatum, Klantnummer, Hoeveelheid). Vanuit oogpunt ontwerp, de sleutel tot deze relatie is: Bestelnummer, sinds toewijzing vetgedrukt betekent dat dit attribuut de relatietekenreeks op unieke wijze identificeert. Vanuit oogpunt implementatie, de sleutel kan een van de vier kolommen van deze relatie zijn. Dit kan bijvoorbeeld het attribuut zijn Besteldatum. V In dit geval zal het DBMS een gegevensstructuur creëren die snelle toegang biedt tot gegevens uit de relatie VOLGORDE tegen de waarde van de besteldatum. Hoogstwaarschijnlijk de specifieke waarde van het attribuut Besteldatum zal overeenkomen met veel lijnen. V In die zin zegt het definiëren van een attribuut als sleutel niets over de uniciteit ervan.

Soms, om onderscheid te maken tussen twee betekenissen van een woord toets, termen worden gebruikt logische sleutel(logische sleutel) en fysieke sleutel(fysieke sleutel). Een logische sleutel is een unieke identifier en een fysieke sleutel is een kolom waarop een index of andere gegevensstructuur is gemaakt om de prestaties te verbeteren.

Indexen

Aangezien de fysieke sleutel meestal een index is, verlaten sommigen de term toets de booleaanse sleutelwaarde, en achter de term inhoudsopgave- betekenis fysieke sleutel. V Dit is precies wat we in dit boek gaan doen: de term toets we zullen gebruiken in de betekenis "logische sleutel", en de term inhoudsopgave - in de betekenis van "fysieke sleutel".

V Er zijn drie overwegingen die pleiten voor het maken van indexen. Een daarvan is om snellere toegang tot tekenreeksen te bieden door de waarde van het geïndexeerde kenmerk. Een andere is om het gemakkelijker te maken om de strings op dit attribuut te sorteren. Bijvoorbeeld, v respect VOLGORDE het attribuut kan worden gedefinieerd als een sleutel Besteldatum, resulterend in rapporten, v welke bestellingen op datum zijn gesorteerd, wordt sneller gegenereerd.

Het derde doel van het bouwen van indexen is het waarborgen van uniciteit. Indexen hoeven niet uniek te zijn, maar wanneer een ontwikkelaar wil dat een kolom uniek is, maakt het DBMS een index voor die kolom. In de meeste relationele DBMS'en kan een kolom of groep kolommen uniek worden gemaakt door het trefwoord op te geven UNIEK.

Relationele database-implementatie

En in dit boek gebruiken we het relationele model om de structuur van de database te beschrijven. Daarom kunnen we vanaf het ontwerp van de database rechtstreeks naar de implementatie ervan gaan. We hoeven de structuur op geen enkele manier te transformeren in het stadium van implementatie: het enige dat moet worden gedaan, is de bestaande relationele structuur voor het DBMS te beschrijven.

Bij het implementeren van databases met behulp van niet-relationele databasebeheersystemen is de situatie anders. Wanneer we bijvoorbeeld een database implementeren op basis van het DL / I-model, moeten we de relationele structuur omzetten in een hiërarchische structuur en vervolgens de geconverteerde structuur beschrijven naar het DBMS.

Beschrijving van de structuur van de database voor het DBMS

Er zijn verschillende manieren waarop de structuur van de database voor het DBMS wordt beschreven. Deze methoden zijn afhankelijk van welk specifiek DBMS wordt gebruikt. Sommige producten genereren een tekstbestand dat de structuur van de database beschrijft. De taal die wordt gebruikt om een ​​dergelijke structuur te definiëren, wordt soms taal voor gegevensdefinitie(datadefinitietaal, DDL). Het tekst-DDL-bestand vermeldt de namen van de databasetabellen, specificeert de namen van de kolommen van deze tabellen en beschrijft hun inhoud, definieert de indexen en beschrijft ook andere structuren (beperkingen, veiligheidsmaatregelen). Listing 8.1 beschrijft een eenvoudige relationele database voor een hypothetische DBMS met behulp van een typische datadefinitietaal. Meer realistische voorbeelden met behulp van een standaard genaamd SQL worden gegeven in de hoofdstukken 12 en 13.

Voor sommige DBMS'en hoeft de databasestructuur niet te worden gedefinieerd met DDL in tekstformaat... Het meest voorkomende alternatief is: grafische manier het instellen van de databasestructuur. In Access 2002 krijgt de ontwikkelaar bijvoorbeeld een grafische structuur te zien in de vorm van een lijst, op de juiste plaatsen waar u de namen van de tabellen en kolommen moet invoeren. Een voorbeeld hiervan zagen we in hoofdstuk 2 (zie figuur 2.2).

In het algemeen, grafische hulpmiddelen gegevensbeschrijvingen zijn gebruikelijk in DBMS dat is ontworpen om op pc's te werken. Op servers en mainframes worden zowel grafische als tekstuele middelen gebruikt. Oracle en SQL Server kunnen bijvoorbeeld beide methoden gebruiken om gegevens te definiëren. In afb. 8 .2 gepresenteerd algemeen schema het proces van het beschrijven van gegevens voor een DBMS.

Op welke manier de gegevensstructuur ook wordt gedefinieerd, de ontwerper moet elke tabel een naam geven, de kolommen voor die tabel definiëren en het fysieke formaat van de gegevens in elke kolom beschrijven (bijvoorbeeld TEKST 10). Bovendien kan de ontwikkelaar, afhankelijk van de mogelijkheden van het DBMS dat wordt gebruikt, de beperkingen specificeren die het DBMS moet implementeren. Kolomwaarden kunnen bijvoorbeeld worden gedefinieerd als NIETNUL(niet leeg) of UNIEK(uniek). Bij sommige producten kunt u ook beperkingen instellen voor mogelijke waarden (attribuut Deel kan waarden minder aannemen 10 000, en het attribuut Kleur kan een van de waarden aannemen ["Rood" / Groen "/ Blauw"]). Ten slotte kunnen beperkingen voor de integriteit van externe sleutels worden geïntroduceerd. Hier is een voorbeeld van een dergelijke beperking: “De waarde van het attribuut Afdelingsnummer in de tafel MEDEWERKER moet gelijk zijn aan de waarde van het attribuut Afdelingsnummer in de tafel AFDELING".

In veel DBMS'en kan de ontwikkelaar ook wachtwoorden instellen en andere besturingselementen en beveiliging gebruiken. Zoals zal worden getoond in het hoofdstuk 11, er zijn veel verschillende beveiligingsstrategieën. In sommige strategieën zijn de objecten van controle gegevensstructuren (de tabel is bijvoorbeeld beveiligd met een wachtwoord), in andere zijn gebruikers (de eigenaar van het X-wachtwoord kan tabellen lezen en bijwerken T1 en T2).

Ruimte toewijzen op fysieke media

Naast het definiëren van de structuur van de database, moet de ontwikkelaar ruimte voor de database op fysieke media toewijzen. Nogmaals, specifieke acties zijn afhankelijk van welk DBMS wordt gebruikt. Wanneer persoonlijke basis Het enige wat u hoeft te doen is een directory aan de database toe te wijzen en deze een naam te geven. Daarna zal het DBMS automatisch ruimte toewijzen voor gegevensopslag.

Andere DBMS'en, vooral die welke zijn ontworpen voor servers en mainframes, zijn veeleisender. Om de prestaties en controle te verbeteren, moet u de distributie van informatie in de database over schijven en kanalen zorgvuldig ontwerpen. Afhankelijk van de specifieke kenmerken van de applicatieverwerking, kan het bijvoorbeeld beter zijn om bepaalde tabellen op dezelfde schijf te plaatsen. Omgekeerd kan het belangrijk zijn dat bepaalde tabellen niet op dezelfde schijf staan.

Denk bijvoorbeeld aan een orderobject bestaande uit tabellen BESTELLEN, BESTELLEN en PRODUCT. Stel dat de applicatie bij het verwerken van een bestelling één rij uit de tabel leest VOLGORDE, meerdere rijen uit de tabel ORDER_LINE en één rij tegelijk van de tafel PRODUCT voor elke rij uit de tabel ORDER_LINE. Vervolgens de rijen uit de tabel ORDER_LINE, gerelateerd aan dezelfde volgorde zijn meestal gegroepeerd, en de rijen in de tabel PRODUCT op geen enkele manier gegroepeerd. Deze situatie wordt geïllustreerd in Fig. 8.3.

Stel je nu voor dat een organisatie veel orders parallel verwerkt en dat ze twee schijven heeft, de ene groot en snel en de andere kleiner en langzamer. De ontwikkelaar moet bepalen waar de gegevens het beste kunnen worden opgeslagen. Misschien zullen de prestaties verbeteren als de tafel PRODUCT wordt opgeslagen op een grote, snel toegankelijke schijf en tabellen ORDER_LINE en VOLGORDE- op een kleinere en snellere schijf. Of misschien zijn de prestaties hoger als u gegevens uit tabellen plaatst VOLGORDE en ORDER_LINE voor voorgaande maanden naar een langzamere schijf en voor de huidige maand naar een snellere.

We kunnen deze vragen hier niet beantwoorden, omdat het antwoord afhangt van de hoeveelheid gegevens, de kenmerken van het DBMS en het besturingssysteem, de grootte en snelheid van schijven en kanalen, en de vereisten van de applicaties die deze database gebruiken. De grondgedachte is dat met al deze factoren rekening moet worden gehouden bij het toewijzen van ruimte voor een database op fysieke media.

Naast de locatie en hoeveelheid ruimte voor gebruikersgegevens, moet de ontwikkelaar mogelijk ook specificeren of deze ruimte indien nodig moet worden vergroot, en zo ja, met welke hoeveelheid. Meestal wordt de hoeveelheid van deze toename aangegeven als een vaste waarde of als een percentage van de oorspronkelijke ingenomen ruimte.

Bij het maken van een database moet de ontwikkelaar bestandsruimte toewijzen voor de databaselogboeken. Je leert over het bijhouden van een dagboek in de hoofdstukken 11-13; in dit stadium hoeft u alleen te weten dat het DBMS een logboek bijhoudt van wijzigingen in de database, dat vervolgens, indien nodig, kan worden gebruikt om de database te herstellen. Bestandsruimte voor logboeken wordt toegewezen tijdens de aanmaakfase van de database.

Een databaseonderhoudsplan ontwikkelen

Een database-onderhoudsplan is een schema van procedures die regelmatig moeten worden uitgevoerd. Deze procedures omvatten: back-up databases, waarbij de inhoud van het databaselogboek wordt leeggemaakt naar bestanden archiveren, controleren op schendingen van referentiële integriteit, optimaliseren van schijfruimte voor gebruikersgegevens en indexen, enz. We zullen deze problemen ook behandelen in hoofdstuk 11, maar houd er rekening mee dat er een database-onderhoudsplan moet worden gemaakt tijdens het aanmaakproces of kort daarna hem.

De database vullen met informatie

Nadat de database is beschreven en fysieke ruimte is toegewezen om deze op te slaan, kunt u beginnen met het vullen van de database met informatie. Hoe dit gebeurt, hangt af van de toepassingsvereisten en de mogelijkheden van het DBMS. In het beste geval zijn alle gegevens al in een formaat dat door een computer kan worden waargenomen, en heeft het DBMS de mogelijkheden en middelen om het importeren van gegevens van magnetische media te vereenvoudigen. In het ergste geval moeten alle gegevens handmatig worden ingevoerd via het toetsenbord met behulp van applicatieprogramma's die helemaal opnieuw zijn gemaakt door de ontwikkelaars. De meeste situaties waarin gegevensconversie nodig is, vallen tussen deze twee uitersten.

Wanneer de gegevens worden ingevoerd, is het noodzakelijk om hun juistheid te controleren. Deze controle is vervelend en arbeidsintensief, maar wel erg belangrijk. Vaak, vooral in grote databases, is het zinvol om speciale programma's te schrijven voor gegevensvalidatie. De voordelen van het gebruik van deze programma's zijn de tijd en het geld meer dan waard dat het ontwikkelingsteam heeft genomen om ze te maken. Deze programma's tellen het aantal rijen in verschillende categorieën, berekenen controlesommen, voeren validatiecontroles uit op gegevenswaarden en andere validatieprocedures.

Relationele gegevens manipuleren

We bespraken het ontwerp van relationele databases en de manieren waarop de structuur van de database wordt beschreven voor het DBMS. Als we het tot nu toe hebben over operaties met relaties, hebben we op een algemene en intuïtieve manier gedacht. Dit is prima wat het project betreft, maar om applicaties te implementeren, hebben we een duidelijke en consistente taal nodig die de verwerkingslogica uitdrukt. Dergelijke talen worden genoemd danshi manipulatietalen(datamanipulatietalen, DML).

Tot op heden zijn er vier strategieën voorgesteld voor het manipuleren van relationele gegevens. De eerste van de strategieën relationele algebra(relationele algebra), definieert operatoren die werken op relaties (ze zijn vergelijkbaar met operatoren van hogere algebra +, -, enz.). Met deze operators kunt u relaties manipuleren om te bereiken gewenste resultaat... Maar relationele algebra is moeilijk te gebruiken, deels omdat het procedureel is. Dit betekent dat bij gebruik van relationele algebra we moeten niet alleen dat weten wat we doen, maar ook wat? hoe het is gebeurd.

Relationele algebra wordt niet gebruikt in commerciële databasesystemen. Hoewel geen enkel commercieel succesvol databasebeheersysteem relationele algebra-tools bevat, zullen we ze hier bespreken omdat het u zal helpen de manipulatie van relationele gegevens beter te begrijpen en een basis te bieden voor het leren van SQL.

relationele calculus(relationele calculus) is de tweede strategie voor het manipuleren van relationele gegevens. De relationele calculus is niet procedureel; het is een taal die uitdrukt wat wat we willen doen, zonder te specificeren, hoe om dit te behalen. Onthoud de variabele van integratie in integraalrekening: deze variabele haalt waarden uit het bereik waarover de integratie plaatsvindt. Er is een vergelijkbare variabele in de relationele calculus. In de tupel-relationele calculus is het domein van deze variabele de tuples van de relatie, en in de domein-relationele calculus de domeinwaarden. De kern van de relationele calculus is een tak van de wiskunde die predikaatrekening wordt genoemd.

Tenzij je een relationele technologietheoreticus wilt worden, hoef je waarschijnlijk geen relationele calculus te studeren. Het wordt nooit gebruikt in commerciële databasesystemen en is niet nodig voor onze doeleinden. Daarom zullen we het in dit boek niet bespreken.

Hoewel de relationele calculus moeilijk te begrijpen en te gebruiken is, is het niet-procedurele karakter een voordeel. Daarom begonnen de ontwikkelaars van DBMS te zoeken naar andere niet-procedurele strategieën, wat leidde tot de opkomst van de derde en vierde categorie talen voor het manipuleren van relationele gegevens.

Transformatiegerichte talen zijn een klasse van niet-procedurele talen die een invoer die de vorm heeft van een relatie omzetten in een resultaat dat een enkele relatie is. Deze talen bieden gebruiksvriendelijke structuren waarmee u de acties kunt specificeren die met de verstrekte gegevens moeten worden ondernomen. SQUARE, SEQUEL en SQL zijn voorbeelden van op transformatie gerichte talen. SQL-taal zal in detail worden onderzocht in de hoofdstukken 9, 12 en 13.

De vierde categorie van relationele datamanipulatietalen zijn grafische talen. Deze categorie omvat: monster verzoek(Query-per-voorbeeld) en aanvraag via het formulier(Query-per-formulier). Producten die deze categorie ondersteunen zijn onder andere Approach (van Lotus) en Access. De gebruiker krijgt een grafische weergave van een of meer relaties te zien. De weergave kan de vorm hebben van een gegevensinvoerformulier, een spreadsheet of een andere structuur. Het DBMS zet de weergave om in een geschikte relatie en genereert query's (waarschijnlijk in SQL) namens de gebruiker. Daarna starten gebruikers de uitvoering van DML-instructies, maar ze weten er niets van. De vier categorieën van relationele datamanipulatietalen zijn:

    relationele algebra;

    relationele calculus;

    transformatiegerichte talen (bijvoorbeeld SQL);

    aanvraag per monster, aanvraag via het formulier.

Taalinterfaces voor gegevensmanipulatie

In deze sectie bekijken we vier soorten interfaces die informatie in een database manipuleren.

Gegevens manipuleren via formulieren

De meeste relationele databasebeheersystemen bieden hulpmiddelen voor het maken van formulieren. Sommige formulieren worden automatisch gegenereerd wanneer de tabel is gedefinieerd, andere moeten door de ontwikkelaar worden gemaakt. Hulp bij dit proces kan worden geboden door een intelligente assistent die bijvoorbeeld in Access aanwezig is. Het formulier kan de vorm hebben van een tabel (spreadsheet), die tegelijkertijd meerdere rijen van de relatie weergeeft. Er is een ander soort formulier, waarbij elke regel van de relatie afzonderlijk wordt gepresenteerd. In afb. 8.4 en 8.5 tonen voorbeelden van beide soorten formulieren voor de PATINT-tabel in Fig. 8.1. De meeste producten bieden enige flexibiliteit bij het verwerken van formulieren en rapporten. Rijen voor verwerking kunnen bijvoorbeeld worden geselecteerd op kolomwaarden en kunnen worden gesorteerd. Tabel op afb. 8.4 gesorteerd op de waarde van het veld Rekeningnummer.

Veel formulieren die standaard worden gegenereerd, bevatten gegevens van slechts één relatie. Als u gegevens uit twee of meer relaties wilt halen, moet u in de regel speciale formulieren maken met behulp van DBMS-tools. Met dergelijke tools kunt u zowel formulieren met meerdere tabellen als formulieren met meerdere regels maken. Aangezien het gebruik van deze tools sterk afhankelijk is van het specifieke DBMS, zullen we ze niet verder bespreken.

Taalinterface opvragen en bijwerken

Het tweede type interface naar de database is: taal van verzoeken en updates(query / update taal), of gewoon zoektaal(zoektaal). (Hoewel de meeste van deze talen zowel het opvragen als het bijwerken van gegevens toestaan, worden ze meestal querytalen genoemd.) In dit geval voert de gebruiker opdrachten in die aangeven welke acties op de database moeten worden ondernomen. Het DBMS decodeert deze commando's en voert de voorgeschreven acties uit. In figuur 8.6 is te zien welke programma's betrokken zijn bij de verwerking van de aanvraag.

De belangrijkste van alle querytalen is SQL. Om u een idee te geven van querytalen, overweeg dan de volgende SQL-instructie die een relatie afhandelt: GEDULDIG, getoond in afb. 8.1:

KIES naam. Geboortedatum VAN PATINT

WHERE Arts = "Heffing"

Deze operator extraheert uit de relatie GEDULDIG alle regels waar het attribuut Arts heeft de betekenis " Heffing". Attribuutwaarden Naam en Datum vanGeboorte van deze regels wordt het vervolgens in de tweede tabel geplaatst.

Opgeslagen procedures

In de loop van de tijd hebben databasegebruikers en ontwikkelaars ontdekt dat bepaalde reeksen SQL-commando's regelmatig moeten worden uitgevoerd. Het enige dat verandert, zijn de waarden die in de zin zijn opgegeven WAAR. Bij maandelijkse facturering worden bijvoorbeeld dezelfde SQL-instructies uitgevoerd, maar met een andere sluitingsdatum. Om aan deze behoefte tegemoet te komen, hebben DBMS-leveranciers zogenaamde opgeslagen procedures(opgeslagen procedures). Een dergelijke procedure is een set SQL-instructies die in een bestand worden opgeslagen en met één enkele opdracht kunnen worden gestart voor uitvoering. Parameters gespecificeerd in de aanbieding WAAR enzovoort, kan worden doorgegeven bij het aanroepen van een procedure. Een voorbeeld zou het volgende zijn:

DOE FACTURERING OPGESLAGEN_PROCEDURE VOOR BILLDATE = "1/1/2000"

Deze regel start de opgeslagen procedure genaamd FACTURATIE met parameterwaarde FACTUURDATUM, gelijk aan "1/1/2000".

Naarmate ontwikkelaars ervaring opdeden, kwam één probleem aan het licht. SQL is gemaakt als een gegevenssubtaal en er is geen poging gedaan om het te voorzien van alle elementen van een volwaardige programmeertaal. Sommige van deze elementen waren echter vereist om opgeslagen procedures te schrijven, en databaseleveranciers hebben uitgebreide versies van SQL gemaakt met extra mogelijkheden. Eén zo'n taal, PL/SQL, is ontwikkeld voor Oracle en een andere, TRANSACT-SQL genaamd, is ontwikkeld voor SQL Server. In hoofdstuk 12 en 13 leer je meer over deze talen.

Een speciaal type opgeslagen procedure - trekker(trigger) - aangeroepen door de DBMS wanneer aan de opgegeven voorwaarde is voldaan. In een applicatie die bestellingen verwerkt, moet een ontwikkelaar bijvoorbeeld een trigger maken die wordt geactiveerd wanneer de hoeveelheid van een artikel in het magazijn onder een bepaalde limiet komt (dat wil zeggen, het is tijd om een ​​artikel bij een groothandelsleverancier te bestellen). In hoofdstuk 12 en 13 leert u meer over opgeslagen procedures.

Interface voor applicatieprogrammering:

Het vierde type datatoegangsinterface is toegang via applicatieprogramma's die zijn geschreven in programmeertalen zoals COBOL, BASIC, Perl, Pascal en C++. Bovendien zijn sommige applicatieprogramma's geschreven in talen die zijn ingebed in het gebruikte DBMS. Van deze programmeertalen is dBASE de bekendste.

Er zijn twee interfacestijlen tussen toepassingsprogramma's en het DBMS. De eerste wordt gekenmerkt door het feit dat applicatieprogramma's subroutines aanroepen uit de bibliotheek met functies die bij het DBMS worden geleverd. Om bijvoorbeeld een rij uit een tabel te lezen, roept een toepassing de DBMS-leesfunctie aan en geeft deze parameters door die de gewenste tabel, vereiste kolommen, rijselectiecriteria, enzovoort aangeven.

In sommige gevallen wordt objectgeoriënteerde syntaxis gebruikt in plaats van functieaanroepen. De volgende toegangscode stelt de db-objectaanwijzer in op de momenteel geopende database en de db-objectaanwijzer rs verwijst naar tabelrijen GEDULDIG;

stel db = huidige dbC in)

set rs = db.OpenRecordsetCPATIENT ")

De laatste aanwijzer gebruiken je hebt toegang tot eigenschappen open die recordset en run zijn methoden. Bijvoorbeeld, het gebruik van de eigenschaprs. Verwijderingen toestaan u kunt bepalen of records uit een recordset kunnen worden verwijderd GEDULDIG. Methode Beweeg eerst verplaatst de cursor naar de eerste regel.

Ten tweede, meer oud type interface wordt soms gebruikt in DBMS dat is ontworpen voor mainframecomputers en servers. Hier heeft de DBMS-leverancier een reeks gegevenstoegangsopdrachten op hoog niveau gedefinieerd. Deze commando's, die betrekking hebben op databaseverwerking en geen deel uitmaken van een standaardtaal, zijn ingebed in de applicatiecode.

Het applicatieprogramma met ingebouwde commando's wordt overgebracht naar de precompiler die deel uitmaakt van het DBMS-pakket. Het vertaalt gegevenstoegangsverklaringen in correcte functieaanroepen en definieert gegevensgebieden die zullen worden gedeeld tussen toepassingsprogramma's en het DBMS. De precompiler voegt ook code in het programma in om de toegang tot deze gegevensregio's te ondersteunen. Het op deze manier verwerkte programma wordt overgebracht naar de taalcompiler. In afb. 8 .7 toont de interactie van programma's in dit proces.

Invoering

Hoofdstuk 1. Basisprincipes van databases

1.1 Databaseclassificatie

1.3 Modellen voor databasebeschrijving

1.4. Basisprincipes van desktopdatabases

1.5 Eisen en standaarden voor databases

Hoofdstuk 2. Werken met de database Microsoft Access

2.1. Basisprincipes van Microsoft Access Desktop-database

2.2. Werken met een Microsoft Access-database

Conclusie

Lijst met gebruikte literatuur

Invoering

De informatiestromen die in de wereld om ons heen circuleren, zijn enorm. In

ze hebben de neiging om in de loop van de tijd toe te nemen. Daarom, in elke organisatie zoals

groot of klein, er is een probleem van zo'n beheerorganisatie

gegevens die het meeste opleveren effectief werk... Sommige

organisaties gebruiken hiervoor archiefkasten, maar de meeste geven er de voorkeur aan

geautomatiseerde methoden - databases waarmee u efficiënt kunt opslaan,

structureren en ordenen van grote hoeveelheden data. En vandaag zonder bases

gegevens is het onmogelijk om het werk van de meeste financiële, industriële,

handels- en andere organisaties. Zonder databases zouden ze er gewoon in verdrinken

informatie lawine.

Er zijn veel goede redenen om te vertalen bestaande informatie Aan computer basis... Nu zijn de kosten van het opslaan van informatie in computerbestanden goedkoper dan op papier. Met databases kunt u informatie opslaan, structureren en ophalen

op de optimale manier voor de gebruiker. Dit onderwerp op dit moment relevant, omdat het gebruik van client / server-technologieën stelt u in staat om aanzienlijk geld te besparen, en vooral de tijd om te verkrijgen Nodige informatie, en vereenvoudigen ook de toegang en het onderhoud, omdat ze afhankelijk zijn van complexe gegevensverwerking en centralisatie van hun opslag. Bovendien kunt u op de computer alle gegevensformaten, tekst, tekeningen, handgeschreven gegevens, foto's, spraakopnamen, enz. opslaan.

Om zulke enorme hoeveelheden opgeslagen informatie te gebruiken, naast het ontwikkelen van

systeemapparaten, middelen voor gegevensoverdracht, geheugen, geld nodig

het bieden van een dialoog tussen mensen en computers, waardoor de gebruiker toegang kan krijgen tot

of beslissingen nemen op basis van opgeslagen gegevens. Om deze functies te bieden:

gemaakt gespecialiseerde middelen- databasebeheersystemen (DBMS).

Het doel van dit werk is om het concept van een database en een databasebeheersysteem te onthullen, en ook om na te denken over: specifiek voorbeeld werk van een desktop-DBMS.

1.1 Databaseclassificatie

De database is informatiemodel gebied, een verzameling onderling verbonden data die met zo'n minimale redundantie bij elkaar wordt opgeslagen dat deze optimaal kan worden gebruikt voor een of meer toepassingen. Gegevens (bestanden) worden opgeslagen in het externe geheugen en worden gebruikt als informatie invoeren: om problemen op te lossen.

DBMS is een programma waarmee te implementeren gecentraliseerd beheer gegevens die in de database zijn opgeslagen, toegang ertoe, up-to-date houden.

Databasebeheersystemen kunnen worden geclassificeerd op basis van de manier waarop gegevenskoppelingen tot stand worden gebracht, de aard van de functies die ze uitvoeren, de omvang van het gebruik, het aantal ondersteunde gegevensmodellen, de aard van de taal die wordt gebruikt om met de database te communiceren en andere parameters.

DBMS-classificatie:

· Volgens de uitgevoerde functies zijn de DBMS onderverdeeld in operationeel en informatief;

· Afhankelijk van het toepassingsgebied worden DBMS onderverdeeld in universeel en probleemgericht;

Volgens de gebruikte communicatietaal zijn DBMS onderverdeeld in gesloten, met hun eigen onafhankelijke talen communicatie van gebruikers met databases, en open, waarin een programmeertaal die is uitgebreid door operators van de taal voor gegevensmanipulatie, wordt gebruikt om met de database te communiceren;

· Afhankelijk van het aantal ondersteunde niveaus van gegevensmodellen, worden DBMS onderverdeeld in systemen met één, twee of drie niveaus;

Volgens de methode om verbanden te leggen tussen data, relationeel, hiërarchisch en netwerkbases gegevens;

· Volgens de manier om gegevensopslag te organiseren en de verwerkingsfuncties uit te voeren, zijn databases verdeeld in gecentraliseerd en gedistribueerd.

Gecentraliseerde databasesystemen met netwerktoegang suggereren twee hoofdarchitecturen - file-server of client-server.

Bestandsserver-architectuur. Veronderstelt de toewijzing van een van de netwerkmachines als de centrale ( hoofdserver bestanden) waar de gedeelde gecentraliseerde database is opgeslagen. Alle andere machines fungeren als werkstations. Databasebestanden worden in overeenstemming met gebruikersverzoeken overgebracht naar werkstations, waar ze voornamelijk worden verwerkt. Met een hoge intensiteit van toegang tot dezelfde gegevens, prestaties informatie Systeem valt.

Client-server-architectuur. Dit interactiemodel tussen computers in een netwerk is in feite een standaard geworden voor moderne DBMS. Elk van de computers die op het netwerk zijn aangesloten en die deze architectuur vormen, speelt een rol: de server is eigenaar en beheerder informatiebronnen systemen heeft de klant de mogelijkheid deze te gebruiken. Naast het opslaan van de gecentraliseerde database, zorgt de databaseserver voor het grootste deel van de gegevensverwerking. Een verzoek om gegevens van een client (werkstation) activeert het zoeken en ophalen van gegevens op de server. De geëxtraheerde gegevens worden via het netwerk van de server naar de client getransporteerd. De specificiteit van de client-server-architectuur is het gebruik van de SQL-querytaal.

De databaseserver is een DBMS dat aanvragen van alle werkstations gelijktijdig verwerkt. In de regel zijn de client en de server geografisch van elkaar gescheiden, in welk geval ze een gedistribueerd gegevensverwerkingssysteem vormen.

1.2. Functionaliteit van het DBMS

De kenmerken van het DBMS zijn:

· Productiviteit;

· Waarborgen van data-integriteit op databaseniveau;

· Zorgen voor gegevensbeveiliging;

· Het vermogen om te werken in omgevingen met meerdere gebruikers;

· De mogelijkheid om gegevens te importeren en exporteren;

· Toegang verlenen tot gegevens met behulp van de SQL-taal;

· De mogelijkheid om verzoeken samen te stellen;

· Beschikbaarheid van tools voor de ontwikkeling van toegepaste programma's.

De prestaties van het DBMS worden geschat:

· Tijdstip van uitvoering van verzoeken;

· Snelheid van het ophalen van informatie;

· Tijdstip van het importeren van databases uit andere formaten;

· Snelheid van bewerkingen (zoals bijwerken, invoegen, verwijderen);

· Tijdstip van het genereren van rapporten en andere indicatoren.

Gegevensbeveiliging wordt bereikt:

· Encryptie van applicatieprogramma's;

· Data encryptie;

· Gegevensbescherming met een wachtwoord;

· Beperking van de toegang tot de database (tot de tabel, tot het woordenboek, enz.).

Gegevensintegriteit waarborgen impliceert de beschikbaarheid van middelen om ervoor te zorgen dat de informatie in de database te allen tijde correct en volledig blijft. De integriteit van de gegevens moet worden gewaarborgd, ongeacht hoe de gegevens in het geheugen worden ingevoerd (interactief, door import of door speciaal programma). De momenteel gebruikte DBMS'en hebben de middelen om de gegevensintegriteit en betrouwbare beveiliging te waarborgen.

Het databasebeheersysteem beheert gegevens in extern geheugen, biedt betrouwbare gegevensopslag en ondersteunt de juiste databasetalen. Een belangrijke functie van het DBMS is de functie van het beheren van RAM-buffers. Gewoonlijk werken DBMS met databases grote maten, vaak groter dan het hoofdgeheugen van de computer. Ontwikkelde DBMS'en onderhouden hun eigen set RAM-buffers met hun eigen discipline om ze te vervangen.

De meest gebruikte databasebeheersystemen zijn Microsoft Access en Oracle.

De werkfasen in een DBMS zijn:

· Creëren van de databasestructuur, d.w.z. het definiëren van de lijst met velden waaruit elk tabelrecord bestaat, de typen en grootten van velden (numeriek, tekst, logisch, enz.), het definiëren van sleutelvelden om de noodzakelijke koppelingen tussen gegevens en tabellen te bieden;

Invoer en bewerking van gegevens in databasetabellen met behulp van het standaard standaardformulier in de vorm van een tabel en met behulp van schermformulieren, speciaal door de gebruiker gemaakt;

· Verwerken van de gegevens in de tabellen op basis van queries en op basis van het programma;

· Informatie-output vanaf een computer met rapporten en zonder rapporten.

De genoemde werkfasen worden geïmplementeerd met behulp van verschillende opdrachten.

Gecentraliseerde database biedt eenvoudig beheer, verbeterd gebruik van gegevens in het veld bij het uitvoeren van externe query's, meer hoge graad gelijktijdige verwerking, lagere verwerkingskosten.

Een gedistribueerde database impliceert het opslaan en uitvoeren van gegevensbeheerfuncties in meerdere knooppunten en het overbrengen van gegevens tussen deze knooppunten tijdens het uitvoeren van query's. In zo'n database kunnen niet alleen de verschillende tabellen worden opgeslagen op verschillende computers maar ook verschillende fragmenten van dezelfde tafel. Tegelijkertijd maakt het voor de gebruiker niet uit hoe de gegevensopslag is georganiseerd, hij werkt met zo'n database als met een gecentraliseerde.

1.3 Databasebeschrijvingsmodellen

Er zijn drie soorten modellen voor het beschrijven van databases: hiërarchisch, netwerk- en relationeel. Het belangrijkste verschil zit in de aard van de beschrijving van relaties en interacties tussen objecten en attributen van de database.

Hiërarchisch model gaat uit van het gebruik van boomstructuren voor de beschrijving van de database, bestaande uit een bepaald aantal niveaus. Een "boom" is een hiërarchie van elementen die knooppunten worden genoemd. Elementen worden opgevat als een lijst, verzameling, een set attributen, elementen die objecten beschrijven.

Een database is een verzameling van gestructureerde en onderling verbonden gegevens met betrekking tot een specifiek vakgebied.

Voor het creëren, opslaan, verwerken en collectief gebruik van informatie, speciale software systemen zogenaamde databasebeheersystemen (DBMS).

De belangrijkste functies van het DBMS zijn onder meer:

· Fysieke plaatsing van gegevens en hun beschrijvingen in het geheugen;

· Up-to-date houden van databases;

· Mechanismen voor het doorzoeken van de gevraagde gegevens;

· Toegang tot gegevens met gelijktijdige aanvraag van dezelfde gegevens door meerdere gebruikers (toepassingsprogramma's);

· Manieren om gegevens te beschermen tegen onjuiste updates en/of onbevoegde toegang.

Het belangrijkste kenmerk van een DBMS is de aanwezigheid van procedures voor het invoeren en opslaan van niet alleen de gegevens zelf, maar ook beschrijvingen van hun structuur.

Zorgvuldig database-ontwerp is de eerste en meest belangrijke stap basis creatie. Het vermijdt de kosten die gepaard gaan met het corrigeren van de structuur van de opgeslagen gegevens. Databaseontwerp begint met het analyseren van het vakgebied en het identificeren van de vereisten daarvoor van individuele gebruikers (medewerkers van de organisatie waarvoor de database is gemaakt). In de ontwerpfase worden informatieobjecten en hun kenmerken geïdentificeerd, worden de soorten gegevens bepaald die regelmatig moeten worden bijgewerkt en worden de manieren bepaald om informatie op het scherm en in rapporten te presenteren, worden vragen geformuleerd die regelmatig moeten worden beantwoord bij het zoeken naar gegevens. Dit helpt bij het specificeren van de vereisten voor de opgeslagen informatie. U kunt op elk moment de structuur van de informatie die in de database is opgeslagen, wijzigen door de structuur van tabellen en, dienovereenkomstig, formulieren en rapporten te corrigeren. De databasebeheerder (DBA) is verantwoordelijk voor het ontwerpen en onderhouden van de database.

DBMS gebruikt volgende modellen: en beschrijvingen:

· Infologisch;

· Datalogisch;

· Fysiek.

Architectuur met drie niveaus(infologische, datalogische en fysieke niveaus) stelt u in staat om de onafhankelijkheid van de opgeslagen gegevens te verzekeren van de programma's die ze gebruiken.

In eerste instantie wordt een gegeneraliseerde informele beschrijving gemaakt de basis die wordt gecreëerd gegevens. Deze beschrijving wordt het infologische datamodel genoemd en wordt uitgevoerd met behulp van natuurlijke taal, stroomdiagrammen, wiskundige formules, tabellen, grafieken en andere middelen. Het infologische model weerspiegelt het vakgebied waarvoor de database is ontworpen en is volledig onafhankelijk van fysieke parameters opslagomgevingen. De belangrijkste constructieve elementen van infologische modellen zijn entiteiten, relaties daartussen en hun eigenschappen (attributen). Een infologisch model zou pas moeten veranderen als veranderingen in de echte wereld veranderingen in het vakgebied en dus ook veranderingen in het model met zich meebrengen.


Een beschrijving die door databaseontwikkelaars is gemaakt vanuit een infologisch datamodel wordt een datalogisch datamodel genoemd. Het eindresultaat van datalogisch ontwerp is de beschrijving logische structuur databases in YOD - de taal voor het beschrijven van gegevens van een specifiek DBMS. Bij het maken van een datalogisch datamodel, een één-op-één correspondentie tussen de structuren van de databeschrijvingstaal en grafische symbolen informatie-eenheden en verbindingen daartussen.

De kern van elk DBMS is het concept van een gegevensmodel, dat wil zeggen een abstractie van gegevenspresentatie. Aanvankelijk waren twee concurrerende modellen, hiërarchische en genetwerkte, succesvol. Een hiërarchische database bestaat uit een geordende reeks bomen. IBM heeft Data Language One (DL/I) ontwikkeld en geïmplementeerd, die data modelleert in een hiërarchische vorm (boomweergave van data). Dit model is ontwikkeld in samenwerking met de industrie en bedoeld voor het opslaan en onderhouden van gegevens die hiërarchisch aan elkaar gerelateerd zijn, zoals kostenramingen en stuklijsten. Een typische vertegenwoordiger van een hiërarchische DBMS is IMS (Information Beheersysteem) van IBM, waarvan de eerste versie in 1968 verscheen.

Figuur 8.1 toont een voorbeeld van een hiërarchisch databaseschema. Het recordtype FACULTY is de voorouder (ouder of origineel) van de recordtypen AFDELING en DECANATE, en de records AFDELING en DECANATE zijn afstammelingen (kind of kind) van het record FACULTY.

Alle gevallen van een bepaald type voortgebrachte records die verwijzen naar één exemplaar van het originele record worden tweelingen genoemd. Het hiërarchische model implementeert een één-op-veel-relatie tussen de bron- en onderliggende records ouder record een willekeurig aantal kinderen kan overeenkomen. In een hiërarchische database is er een enkel hiërarchisch toegangspad naar elk record, beginnend bij de wortel van de boom, d.w.z. de volgorde van het doorkruisen van de boom is van boven naar beneden, van links naar rechts. In wezen is een hiërarchisch model een gerichte graaf.

Rijst. 8.1. Schema hiërarchisch model Database

In IMS-terminologie werd de term "segment" gebruikt in plaats van "record", en de term "databaserecord" werd gebruikt om naar de volledige segmentboom te verwijzen. In 1970 creëerde de CODASYL-groep die de normen voor de COBOL-taal ontwikkelde een model genaamd DBTG (Data Base Task Group). Het DBTG-model was klaar om zowel hiërarchische als netwerkgegevens weer te geven. Dit model was echter zeer complex en had niet veel succes.

Een typische vertegenwoordiger van systemen op basis van: netwerkmodel gegevens, is de IDMS (Integrated Database management systeem) ontwikkeld door Cullinet Software, Inc. De netwerkbenadering voor het organiseren van gegevens is een uitbreiding van de hiërarchische benadering. Net als in het hiërarchische model gaan relaties van ouder naar kind, maar deze keer wordt dit ondersteund meervoudige overerving... Het netwerkmodel staat meerdere bronrecords toe voor één voortgebracht record, samen met de mogelijkheid om records te hebben zonder het originele record (Figuur 8.2). Met andere woorden, in een netwerkmodel kan elk record deelnemen aan meerdere ouder-kindrelaties. Het netwerkmodel is een ongerichte graaf.

Rijst. 8.2. Schema van databasenetwerkmodel

De meeste databases die tegenwoordig worden gebruikt, zijn gebaseerd op het relationele model. Het hoofdidee van het relationele model is om een ​​willekeurige gegevensstructuur weer te geven in de vorm van tweedimensionale tabellen. De meest gebruikte relationele desktopdatabase die momenteel wordt gebruikt, is MS Access, waarvan een voorbeeld wordt besproken in paragraaf 6.3.3.

Het relationele model werd voor het eerst voorgesteld door E.F. EF Codd in 1970. Codd's idee van een datamodel werd later ontwikkeld door Christopher Date. Volgens Data bestaat het relationele model uit drie delen die verschillende aspecten van de relationele benadering beschrijven: het structurele deel, het manipulatiedeel en het integrale deel. Gegevens worden opgeslagen in tabellen. Kolommen in tabellen worden velden genoemd en rijen worden records genoemd. Elk veld kan slechts één type informatie bevatten. Query's zijn ontworpen om de gegevens in de database te manipuleren.

Codd definieerde de regels van het relationele model, die de "12 Codd Rules" worden genoemd. Later voegde Codd een "nul"-regel toe.

1. Relationele DBMS moet de database volledig kunnen beheren met behulp van koppelingen tussen gegevens.

2. Informatie regel: Alle informatie in een relationele database, inclusief tabel- en kolomnamen, moet strikt worden gedefinieerd als tabelwaarden.

3. Gegarandeerde toegang: elke databasewaarde moet gegarandeerd toegankelijk zijn via een combinatie van tabelnaam, primaire sleutel en kolomnaam.

4. Ondersteuning voor null-waarden: Het DBMS moet kunnen werken met null- (lege) waarden. Nul waarde Is een onbekende, onafhankelijke, niet van toepassing zijnde waarde, in tegenstelling tot de standaard- en normale waarden.

5. De actieve, online relationele catalogus - de beschrijving van de database en de inhoud ervan - moet op logisch niveau worden gedefinieerd door middel van tabellen waarop query's kunnen worden toegepast met behulp van DML (Data Manipulation Language).

6. Een uitputtende subset van de datataal: by minstens, moet een van de ondersteunde talen een goed gedefinieerde syntaxis hebben en op zichzelf staan. Het moet gegevensdefinitie en -manipulatie, integriteitsregels, autorisatie en transacties ondersteunen.

7. Regel voor het bijwerken van weergaven: alle theoretisch bijgewerkte weergaven kunnen via het systeem worden bijgewerkt.

8. Invoegen, bijwerken en verwijderen: het DBMS ondersteunt niet alleen gegevensquery's, maar ook invoegen, bijwerken en verwijderen.

9. Fysieke onafhankelijkheid data: de logica van applicatieprogramma's blijft hetzelfde bij verandering fysieke methoden gegevenstoegang en opslagstructuren.

10. Logische onafhankelijkheid van data: de logica van applicatieprogramma's blijft redelijkerwijs hetzelfde bij het wijzigen van tabelstructuren.

11. Integriteitsonafhankelijkheid: de databasetaal moet integriteitsbeperkingen kunnen definiëren. Ze moeten toegankelijk zijn vanuit de online directory en er mag niet omheen.

12. Distributie-onafhankelijkheid: de overdracht van een database van de ene computer naar de andere computer mag de verzoeken van applicatieprogramma's niet beïnvloeden. Een relationeel databasebeheersysteem mag niet afhankelijk zijn van de behoeften van een bepaalde klant.

13. Taalconsistentie op alle niveaus: een taal voor gegevenstoegang op laag niveau mag de beveiligings- en integriteitsregels die worden ondersteund door een taal op een hoger niveau niet negeren.

Na een relationeel datamodel te hebben voorgesteld, heeft E.F. Codd creëerde ook een hulpmiddel om gemakkelijk met relaties te werken - relationele algebra - een formeel systeem voor het manipuleren van relaties, waarvan de belangrijkste bewerkingen projectie, join, intersectie en unie zijn.

Relationele calculus is een ander formeel systeem dat relaties manipuleert. De relationele calculus is gebaseerd op eerste-orde logica. Net als relationele algebra-uitdrukkingen, worden relationele calculusformules gedefinieerd over relationele databaserelaties, en het resultaat van de berekening is ook een relatie.

Relationele algebra en relationele calculus hebben dezelfde expressieve kardinaliteit; dat wil zeggen, alle vragen die kunnen worden geformuleerd met behulp van relationele algebra kunnen ook worden geformuleerd met behulp van relationele calculus en vice versa. E.F. Codd was de eerste die dit in 1972 bewees. Dit bewijs is gebaseerd op een algoritme waarmee een willekeurige uitdrukking van de relationele calculus kan worden gereduceerd tot een semantisch equivalente uitdrukking van relationele algebra. Het algoritme wordt het "Codd Reduction Algorithm" genoemd.

Relationele databases hebben de volgende specifieke kenmerken.

Voor elk veld van de databasetabel is een gegevenstype gedefinieerd, dus het is onmogelijk in één veld verschillende records gegevens van verschillende typen invoeren.

· DBMS maakt het niet alleen mogelijk om gegevens in tabellen in te voeren, maar ook om de juistheid van de ingevoerde gegevens te controleren. Dit betekent niet alleen beperkingen op het type gegevens, maar ook de controle van toegestane waarden, het aantal ingevoerde tekens, enz. Het DBMS staat het opslaan van gegevens in het record die niet aan de opgegeven regels voldoen niet toe.

· Databasetabellen kunnen honderdduizenden records bevatten en het DBMS biedt handige manieren om de informatie die u nodig hebt uit deze set records te extraheren.

· Alle gegevens worden, ongeacht hun structuur en inhoud, in één bestand opgeslagen en de toegang tot deze gegevens gebeurt pagina voor pagina, zonder de beperkingen op computerbronnen te overschrijden.

· U kunt relaties tussen tabellen tot stand brengen en vervolgens query's gebruiken om gegevens uit verschillende tabellen te delen. De gegevens die zijn verkregen als resultaat van de zoekopdracht, worden ook weergegeven in de vorm van een tabel.

· Een selectieverzoek kan tegelijkertijd aan één of meerdere tafels worden gericht. De gegevens in de steekproef zijn dynamisch, d.w.z. wanneer herlancering de gewijzigde gegevens opvraagt, wordt de selectie gewijzigd.

· Door relaties tussen afzonderlijke tabellen tot stand te brengen, is het mogelijk om onnodige duplicatie van gegevens te voorkomen, computergeheugen te besparen en de snelheid van informatieverwerking te verhogen.

De meeste databases ondersteunen: gelijktijdig werken met een database van meerdere gebruikers, terwijl alle gebruikers gegarandeerd met up-to-date data werken.

Vergeleken met andere applicatiepakketten hebben de databases een ontwikkeld systeem van bescherming tegen ongeoorloofde toegang, dat naast: wachtwoord beveiliging bestand, de mogelijkheid voor elke gebruiker of gebruikersgroep om alleen die objecten te zien en te wijzigen waartoe gebruikers toegang hebben.

Bij het ontwerpen van een relationele database wordt veel aandacht besteed aan het proces van het normaliseren van tabellen. Het doel van normalisatie is om een ​​database-ontwerp te creëren waarin redundantie van informatie wordt geëlimineerd, dat wil zeggen dat elk kwantum aan informatie op slechts één plaats wordt opgeslagen. Het belangrijkste doel van normalisatie is om de mogelijke inconsistentie van opgeslagen gegevens te elimineren en geheugen te besparen. Het negeren van normalisatie maakt de databasestructuur verwarrend en de database zelf onbetrouwbaar.

Normalisatietheorie is gebaseerd op de aanwezigheid van een of andere relatie tussen de velden van de tabel. Er zijn twee soorten van dergelijke afhankelijkheden geïdentificeerd: functioneel en meerwaardig.

Veld B van de tabel hangt functioneel af van veld A van dezelfde tabel als en slechts als op een bepaald moment in de tijd voor elk van verschillende betekenissen veld A hoeft slechts één van de verschillende waarden van veld B te bestaan. Merk op dat hier wordt aangenomen dat velden A en B samengesteld kunnen zijn.

Veld B is vol functionele afhankelijkheid op een samengesteld veld A als het functioneel afhangt van A en niet functioneel afhankelijk is van een deelverzameling van het veld A.

Veld A vermenigvuldigt veld B van dezelfde tabel als er voor elke waarde van veld A een bepaalde reeks corresponderende waarden van B is.

Het normalisatieproces is een sequentiële transformatie van de oorspronkelijke database naar een genormaliseerde database door tabellen geleidelijk te converteren naar normale vormen (NF). Bovendien omvat elke volgende NF noodzakelijkerwijs de vorige, waardoor u het proces in fasen kunt opsplitsen en één keer kunt uitvoeren, zonder terug te keren naar de vorige fasen. In totaal relationele theorie Er zijn 6 normaalvormen: de eerste normaalvorm (1NF), de tweede normaalvorm (2NF), de derde normaalvorm (3NF), de Boyes-Codd normaalvorm (NFBK), de vierde normaalvorm (4NF) en de vijfde normaalvorm (5NF).

In wezen is een tabel in 2NF als deze in 1NF is en ook aan enkele aanvullende voorwaarden voldoet. Een tafel is in 3NF als deze in 2NF staat en bovendien aan andere aanvullende voorwaarden voldoet, etc.

Een tabel heeft de eerste normaalvorm (1NF) als en slechts als geen van zijn rijen meer dan één waarde in een van zijn velden bevat en geen van zijn sleutelvelden leeg is.

Een tabel heeft de tweede normaalvorm (2NF) als deze voldoet aan de definitie van 1NF en alle velden die niet in de primaire sleutel zijn opgenomen, functioneel volledig gerelateerd zijn aan de primaire sleutel.

Een tabel heeft de derde normaalvorm (3NF) als deze voldoet aan de definitie van 2NF en geen van zijn niet-sleutelvelden functioneel afhankelijk is van een ander niet-sleutelveld.

Codd en Boyes onderbouwden en stelden een striktere definitie voor 3NF voor, die er rekening mee houdt dat er meerdere sleutels in een tabel kunnen zitten. Een tabel is in Boyes-Codd normaalvorm (NFBK) als en slechts als een functionele afhankelijkheid tussen zijn velden wordt teruggebracht tot een volledige functionele afhankelijkheid van een mogelijke sleutel.

In de volgende normaalvormen (4NF en 5NF) wordt niet alleen rekening gehouden met functionele, maar ook meerwaardige afhankelijkheden tussen de velden van de tabel.

Momenteel biedt bijna elke fabrikant van DBMS zijn eigen softwareproduct aan. computerondersteund ontwerp... Dit zijn Oracle Designer (Oracle), Power Desinger (Sybase) en anderen. Demo versies van deze softwareproducten kunnen worden gedownload van de respectieve sites (www.oracle.com, www.sybase.com). Bovendien worden voor computerondersteund ontwerp oplossingen gepresenteerd van bedrijven die geen DBMS produceren. De meest voorkomende zijn: softwareproducten door AllFusion - AllFusion ERwin-gegevens Modeler en AllFusion Process Modeler (voorheen BPwin) (zie www.interface.ru).

Relationele talen bieden standaardbewerkingen voor het verwerken van relationele tabellen, maken het mogelijk om logische voorwaarden te formuleren die worden gebruikt bij ophaalbewerkingen, en controleren de integriteit (consistentie) van gegevens van onderling verbonden tabellen. Ze werken met gegevens zoals met verzamelingen en passen de basisbewerkingen van de verzamelingenleer erop toe. De invoer van een relationele operator is een reeks records uit een of meer relationele tabellen en de uitvoer is een reeks records van een nieuwe relationele tabel. Relationele talen hebben een ander procedureel niveau - de inhoud en volgorde van overgang van invoergegevens naar uitvoer.

Er zijn de volgende soorten relationele algebratalen:

· DBAse-achtige talen liggen dicht bij gestructureerde programmeertalen. Deze talen zorgen voor het creëren van een gebruikersinterface en typische gegevensverwerkingsoperaties;

Grafische relationele talen gericht op eindgebruikers;

SQL-achtige querytalen geïmplementeerd in de meeste multi-user en gedistribueerde systemen database management.

dBASe-achtige talen gebruiken databases dBASe, Paradox, FoxPro, Clipper, Rbase, etc.

Een typische vertegenwoordiger van een grafische relationele taal is de QBE-taal (Query By Voorbeeld), geïmplementeerd in een spreadsheetomgeving, in verschillende databases, bijvoorbeeld in MS Access, in een pakket Microsoft-query... Deze taal behoort tot talen voor gegevensmanipulatie en heeft de eenvoudigste syntactische constructies die gemakkelijk onder de knie kunnen worden door niet-programmeurs.

SQL (Structured Query Language) wordt gebruikt bij het werken met relationele databases in moderne DBMS (ORACLE, dBASE IY, dBASE Y, Paradox, Access, enz.). Voor individuele DBMS'en kan de syntaxis van de SQL-taalversies verschillen.

SQL is de standaard zoektaal geworden voor relationele bestandsserver- en client-serverdatabases en voor het beheer van gedistribueerde databases. Het is relationeel volledige taal, ontworpen om met databases te werken, query's voor gegevensselectie te maken, berekeningen uit te voeren en de integriteit van databases te waarborgen.

Database is een verzameling gegevens die is georganiseerd in overeenstemming met bepaalde regels en wordt bijgehouden in het computergeheugen, die de huidige toestand van een bepaald vakgebied kenmerkt en wordt gebruikt om te voldoen aan informatiebehoeften gebruikers.

Database is een verzameling gegevens die zijn opgeslagen in overeenstemming met een gegevensschema en gemanipuleerd in overeenstemming met de regels van tools voor gegevensmodellering.

Database is een verzameling onderling gerelateerde gegevens die samen zijn opgeslagen in een of meer computerbestanden.

Er zijn veel andere definities die eerder de subjectieve mening van bepaalde auteurs weerspiegelen over wat deze term in hun begrip betekent, maar er is geen algemeen aanvaarde enkele formulering. De volgende onderscheidende kenmerken worden het meest gebruikt: De database wordt opgeslagen en verwerkt in computersysteem... Elke niet-computeropslag van informatie (archieven, bibliotheken, archiefkasten, enz.) is dus geen database.

De gegevens in de database zijn logisch gestructureerd (gesystematiseerd) om ervoor te zorgen dat ze effectief kunnen worden doorzocht en verwerkt in een computersysteem.

Structureren impliceert expliciete nadruk onderdelen(elementen), koppelingen daartussen, evenals het typeren van elementen en koppelingen, waarbij bepaalde semantiek en toegestane bewerkingen gerelateerd zijn aan het type van het element (link).

Van de genoemde kenmerken is alleen de eerste streng, terwijl de andere verschillende interpretaties en verschillende beoordelingsgraden mogelijk maken. U kunt slechts tot op zekere hoogte voldoen aan de databasevereisten.

Veel experts wijzen op een veelgemaakte fout die bestaat in: misbruik de term database in plaats van de term databasemanagementsysteem. Deze begrippen dienen dan ook te worden onderscheiden.

Databases zijn nodig voor het opslaan en filteren van informatie, voor het verwerken en uitwisselen ervan. Over het algemeen is het toepassingsgebied vrij breed. Over de hele wereld gebruiken mensen databases, variërend van een eenvoudige amateurgebruiker tot 's werelds grootste bedrijven.

De database is de opslagplaats voor: een groot aantal gesystematiseerde gegevens waarmee u bepaalde handelingen kunt uitvoeren. Onder acties wordt verstaan: toevoegen, verwijderen, wijzigen, kopiëren, bestellen, enzovoort.

Alle gegevens in de database kunnen worden weergegeven als records of objecten.

Voor succesvol werk met een database is enige software nodig waarmee het mogelijk zou zijn om de database aan te maken en te beheren. Hiervoor zijn er Database Management Systemen (DBMS).

DBMS - een set van taal en softwaretools zorgen voor de creatie, het gebruik en het onderhoud van de database.

Er zijn twee soorten DBMS: lokaal en netwerk.

Lokaal zijn DBMS die op één computer draaien. Deze omvatten dBase, FoxPro, Microsoft Access, Paradox, enz.

Networked is een DBMS waarmee meerdere computers dezelfde DB kunnen gebruiken met behulp van client-servertechnologie. Voorbeelden van dergelijke DBMS zijn InterBase, Oracle, Microsoft SQL-server enzovoort, aangezien we ontleden algemene concepten, dan zal ik je iets vertellen over gegevensrelaties.

Er zijn 4 soorten gegevensrelaties:

1) Eén op één

2) Een op veel

3) Veel op één

4) Veel tot veel

Het soort één-op-één-relatie betekent dat elk record van het ene databaseobject zal verwijzen naar een enkel record van een ander object.

Een-op-veel betekent dat één record van een databaseobject overeenkomt met meerdere records van andere objecten.

Veel op één betekent dat meerdere records van databaseobjecten overeenkomen met één record van een ander object.

Veel-op-veel wordt tot stand gebracht tussen twee typen database-objecten.

Databasekenmerken

Een database is een in een computer geïmplementeerde informatiestructuur (model) die de toestand van objecten en hun relaties weergeeft.

Opgemerkt moet worden dat deze definitie niet de enige mogelijke is. In termen van definities lijkt informatica meestal niet op wiskunde met zijn volledige ondubbelzinnigheid. Als we het concept "database" benaderen met een puur aangepast punt bekijken, dan ontstaat er een andere definitie: een database is een verzameling opgeslagen operationele gegevens van een bepaalde onderneming. Het gaat erom welk aspect de afweging domineert; in dit hoofdstuk is de eerste definitie passender.

Ervaring met het gebruik van databases stelt ons in staat om te benadrukken: algemene set hun prestatiekenmerken:

* volledigheid - hoe completer de database, hoe groter de kans dat deze zal bevatten Nodige informatie(er mag echter geen overbodige informatie zijn);

* juiste organisatie- hoe beter de database is gestructureerd, hoe gemakkelijker het is om de benodigde informatie erin te vinden;

* relevantie - elke database kan nauwkeurig en volledig zijn als deze voortdurend wordt bijgewerkt, d.w.z. het is noodzakelijk dat de database op elk moment volledig overeenkomt met de staat van het object dat wordt weergegeven;

* bruikbaarheid - de database moet eenvoudig en gemakkelijk te gebruiken zijn en geavanceerde methoden hebben voor toegang tot elk deel van de informatie.

Volgens de mogelijkheden om relationele, hiërarchische en netwerkinformatiestructuren te organiseren, zijn er vergelijkbare soorten databases.

Basistypen databases

1) Hiërarchisch

2) Netwerk

3) Relationeel

Hiërarchische databases

Hiërarchische databases werden gebruikt in de vroege jaren '60. Ze zijn gebouwd in de vorm van een gewone boom. Gegevens zijn onderverdeeld in 2 categorieën: hoofd- en ondergeschikt. Eén type object is dus het hoofdtype en de rest, die zich op de lagere niveaus van de hiërarchie bevindt, is ondergeschikt. DB's die volgens dit principe zijn georganiseerd, zijn handig om te gebruiken in die gevallen waarin de informatie dienovereenkomstig is geordend.

Netwerkdatabases

Netwerkdatabases begonnen bijna gelijktijdig met hiërarchische te worden gebruikt. In deze databases kan elk object master of ondergeschikt zijn.

In gebruik is het nogal moeilijk om gegevensrepresentatie in deze vorm te implementeren, dus dit type werd ook verlaten.

Relationele databases

Het zijn relationele databases die worden gebruikt in Alledaagse leven... (van de Engelse relatie - relatie). Dit type database wordt vertegenwoordigd door verschillende onderling verbonden rechthoekige tabellen. Waarin er eigen velden, sleutels, records, attributen enzovoort zijn, enzovoort.