Gegevensbestand. hoofdobjecten van de database. onderd. Zelfstandig werken op de computer. Computermodel voor het oplossen van het probleem

Relationele databasestructuur.

Databasetypen.

De belangrijkste kenmerken van het DBMS.

Het concept van een database, DBMS.

Plan

VOORWAARDEN: database, databasebeheersysteem (DBMS),

relationele DB, DB-record, DB-veld, DB-sleutelveld, DB-tabel, DB-query, DB-formulier, DB-rapport, DB-macro, DB-module.

Een van de belangrijkste gebieden van computergebruik in de moderne informatiemaatschappij is de opslag en verwerking van grote hoeveelheden informatie.

Database (DB ) is een gesystematiseerde opslag van informatie over een bepaald vakgebied, waartoe verschillende gebruikers toegang hebben om hun problemen op te lossen.

Verder, aan de hand van het voorbeeld van een van de meest voorkomende databasebeheersystemen - Microsoft Access maakt deel uit van de populaire Microsoft Office-suite - we maken kennis met de basisgegevenstypen, het maken van databases en het werken met databases.

Database- een georganiseerde verzameling van gegevens bestemd voor langdurige opslag in extern computergeheugen en permanent gebruik. Voor het opslaan van de database kan één computer worden gebruikt, evenals vele onderling verbonden computers.

Als verschillende delen van een database zijn opgeslagen op veel computers die zijn verbonden door een netwerk, dan wordt zo'n database genoemd gedistribueerde databank.

Databasemanagementsysteem(DBMS ) Is software waarmee u een database kunt maken, de daarin opgeslagen informatie kunt bijwerken en er gemakkelijk toegang toe kunt krijgen om te bekijken en te zoeken.

Momenteel zijn de meest voorkomende DBMS Microsoft Access, FoxPro, dBase... DBMS worden gedeeld door manier van organiseren databases op genetwerkt, hiërarchisch en relationele DBMS.

Belangrijkste kenmerken van het DBMS:

ü Updaten, aanvullen en uitbreiden van de database.

ü Hoge betrouwbaarheid van informatieopslag.

ü Weergave van volledige en betrouwbare informatie over aanvragen.

ü Middelen voor informatiebeveiliging in de database.

DB's zijn feitelijk en documentair.

De feitelijke databases bevatten beknopte informatie over de beschreven objecten, gepresenteerd in een strikt gedefinieerd formaat. De database van de bibliotheek bevat bibliografische informatie over elk boek: jaar van uitgave, auteur, titel, enz. , zal bijvoorbeeld de teksten van wetten bevatten; Moderne muziekdatabase - toetsen en bladmuziek van liedjes, achtergrondinformatie over componisten, dichters, uitvoerders, geluidsopnamen en videoclips. De documentaire database bevat dan ook uitgebreide informatie van verschillende aard: tekst, geluid, multimedia.

Voor het opslaan van de database kan één computer worden gebruikt, evenals vele onderling verbonden computers.

Als verschillende delen van een database zijn opgeslagen op veel computers die zijn verbonden door een netwerk, dan wordt zo'n database genoemd gedistribueerde database.

Bekend drie hoofdtypen: gegevens ordenen in DB en verbindingen daartussen:

· hiërarchisch (boomachtig),

· netwerk,

· relationeel .

In een hiërarchische database er is een volgorde van elementen in het record, één element wordt als het belangrijkste beschouwd, de rest is ondergeschikt. Het zoeken naar gegevens in een dergelijk systeem kan tijdrovend zijn vanwege de noodzaak om achtereenvolgens verschillende hiërarchische niveaus te doorlopen.

Voorbeeld: de hiërarchische database vormt een directory van bestanden die op schijf zijn opgeslagen.

Dezelfde database is de generieke stamboom.

Netwerk-DB verschilt in grotere flexibiliteit, heeft het de mogelijkheid om, naast verticale banden, horizontale banden aan te brengen.

Relationele databases(van de Engelse relatie - "relation") worden databases genoemd die informatie bevatten in de vorm van rechthoekige tabellen. In deze benadering wordt zo'n tabel een relatie genoemd. Elk tafel rij bevat informatie over een apart object het onderwerp dat wordt beschreven in de database , en iedereen kolom - bepaalde kenmerken (eigenschappen, attributen) deze objecten ... relationeel de database is in wezen een tweedimensionaal tafel... Er zijn vier hoofdtypen velden die in een relationele database worden gebruikt:

Numeriek,

· Symbolisch (woorden, teksten, codes, etc.),

· Datum (kalenderdata in de vorm "dag / maand / jaar"),

· Booleaans (heeft twee betekenissen: "ja" - "nee" of "waar" - "onwaar").

Het databasevenster bevat de volgende elementen:

ü Toetsen: "CREËREN", "OPEN", "CONSTRUCTEUR" enz. Knoppen openen een object in een specifiek venster of een bepaalde modus.

ü Objectknoppen. (Objectselectie stekels, tabs.) "Tafel", "Formulier" enz. De objectknoppen tonen een lijst met objecten die geopend of gesloten kunnen worden.

ü Lijst met objecten. Geeft een lijst weer van objecten die door de gebruiker zijn geselecteerd. In onze versie is de lijst nog leeg.

Belangrijkste database-objecten:

· tafel Is een object dat is ontworpen om gegevens op te slaan in de vorm van records (rijen) en velden (kolommen). Elke tabel wordt meestal gebruikt om informatie over één specifieke vraag op te slaan.

· Formulier Is een Microsoft Access-object in de eerste plaats voor gegevensinvoer. In het formulier kunt u besturingselementen plaatsen die worden gebruikt om gegevens in te voeren, weer te geven en te wijzigen in de velden van de tabel.

· Navraag - een object waarmee u de vereiste gegevens uit een of meer tabellen kunt halen.

· Verslag doen van - een Microsoft Access-databaseobject ontworpen om gegevens af te drukken.

· Macro's - automatiseer standaardacties.

· Modules - automatiseer complexe bewerkingen die niet door macro's kunnen worden beschreven.

Met dit artikel beginnen we een nieuwe cyclus gewijd aan databases, moderne technologieën voor toegang tot en verwerking van gegevens. Tijdens deze cyclus zijn we van plan om de meest populaire desktop- en serverdatabasebeheersystemen (DBMS), mechanismen voor gegevenstoegang (OLD DB, ADO, BDE, enz.) presentatie van gegevens). Daarnaast zijn we van plan aandacht te besteden aan methoden voor het publiceren van gegevens op internet, evenals aan populaire methoden voor het verwerken en opslaan van gegevens als OLAP (On-Line Analytical Processing) en het creëren van datawarehouses (Data Warehousing).

In dit artikel zullen we kijken naar de basisconcepten en principes die ten grondslag liggen aan databasebeheersystemen. We bespreken het relationele datamodel, het concept van referentiële integriteit en de principes van datanormalisatie, en data-ontwerptools. Vervolgens vertellen we u wat DBMS is, welke objecten in databases kunnen worden opgenomen en hoe deze objecten worden opgevraagd.

Basisconcepten van relationele databases

Laten we beginnen met de basisconcepten van DBMS en een korte inleiding tot de theorie van relationele databases - de meest populaire manier om gegevens tegenwoordig op te slaan.

Relationeel gegevensmodel

Relationeel gegevensmodel werd voorgesteld door Dr. E.F. Codd, een gerenommeerd database-onderzoeker, in 1969 toen hij bij IBM was. De basisconcepten van dit model werden voor het eerst gepubliceerd in 1970 (A Relational Model of Data for Large Shared Data Banks, CACM, 1970, 13 N 6).

Een relationele database is een datawarehouse dat een set tweedimensionale tabellen bevat. Een set tools voor het beheren van zo'n repository heet relationeel databasebeheersysteem (RDBMS)... Een RDBMS kan hulpprogramma's, toepassingen, services, bibliotheken, hulpprogramma's voor het maken van toepassingen en andere componenten bevatten.

Elke relationele databasetabel bestaat uit: snaren(ook wel genoemd records) en kolommen(ook wel genoemd marges). In deze cyclus zullen we beide termenparen gebruiken.

De rijen van de tabel bevatten informatie over de feiten die erin worden gepresenteerd (of documenten, of mensen, kortom, over objecten van hetzelfde type). Op het snijpunt van een kolom en een rij bevinden zich specifieke waarden van de gegevens in de tabel.

De gegevens in de tabellen voldoen aan de volgende principes:

  1. Elke waarde op het snijpunt van een rij en een kolom moet zijn atomair(dat wil zeggen, het kan niet worden opgesplitst in verschillende waarden).
  2. Gegevenswaarden in dezelfde kolom moeten van hetzelfde type zijn dat beschikbaar is voor gebruik in het gegeven DBMS.
  3. Elke record in de tabel is uniek, dat wil zeggen dat er geen twee records in de tabel zijn met een volledig identieke set waarden voor de velden.
  4. Elk veld heeft een unieke naam.
  5. De volgorde van de velden in de tabel is niet relevant.
  6. De volgorde van invoeren is ook niet relevant.

Ondanks het feit dat tabelrijen als ongeordend worden beschouwd, stelt elk databasebeheersysteem u in staat om rijen en kolommen in selecties eruit te sorteren op de manier die de gebruiker wil.

Omdat de volgorde van kolommen in een tabel niet relevant is, wordt er naar ze verwezen met hun naam, en deze namen zijn uniek voor een bepaalde tabel (maar hoeven niet uniek te zijn voor de hele database).

Dus nu weten we dat relationele databases uit tabellen bestaan. Om enkele theoretische concepten te illustreren en voorbeelden te maken, moeten we een soort database selecteren. Om te voorkomen dat we het wiel opnieuw moeten uitvinden, gebruiken we de NorthWind-database die bij Microsoft SQL Server en Microsoft Access wordt geleverd.

Laten we nu eens kijken naar de relaties tussen tabellen.

Sleutels en links

Laten we eens kijken naar een fragment van de tabel Klanten uit de NorthWind-database (we hebben er velden uit verwijderd die niet relevant zijn om de relaties tussen de tabellen te illustreren).

Omdat de rijen in de tabel ongeordend zijn, hebben we een kolom (of een set van meerdere kolommen) nodig om elke rij uniek te identificeren. Zo'n kolom (of reeks kolommen) heet hoofdsleutel (hoofdsleutel). De primaire sleutel van elke tabel moet voor elke rij unieke niet-lege waarden bevatten.

Als de primaire sleutel meer dan één kolom heeft, wordt deze genoemd samengestelde primaire sleutel (samengestelde primaire sleutel).

Een typische database bestaat meestal uit meerdere gerelateerde tabellen. Fragment van de tabel Orders.

Het veld Klant-ID in deze tabel bevat de identificatie van de klant die deze bestelling heeft geplaatst. Als we de naam moeten achterhalen van het bedrijf dat de bestelling heeft geplaatst, moeten we dezelfde waarde voor de klant-ID zoeken in het veld Klant-ID van de tabel Klanten en de waarde van het veld Bedrijfsnaam in de gevonden rij lezen. Met andere woorden, we moeten twee tabellen, Klanten en Bestellingen, koppelen via het veld Klant-ID. Een kolom die verwijst naar een record in een andere tabel die aan dat record is gekoppeld, heet vreemde sleutel (vreemde sleutel). Zoals u kunt zien, is in het geval van de tabel Orders de refererende sleutel de kolom CustomerID (Fig. 1).

Met andere woorden, een externe sleutel is een kolom of reeks kolommen waarvan de waarden overeenkomen met de bestaande primaire sleutelwaarden van een andere tabel.

Deze relatie tussen tabellen heet communicatie (relatie). De relatie tussen twee tabellen wordt tot stand gebracht door de externe sleutelwaarden van de ene tabel toe te wijzen aan de primaire sleutelwaarden van de andere.

Als elke klant in de tabel Klanten slechts één bestelling kan plaatsen, zijn de twee tabellen gerelateerd aan een relatie een op een (een-op-een relatie). Als elke klant in de tabel Klanten nul, één of veel bestellingen kan plaatsen, zouden de twee tabellen gerelateerd zijn aan de relatie een te veel (een-op-veel relatie) of de relatie meester-detail... Soortgelijke relaties tussen tabellen worden het vaakst gebruikt. In dit geval wordt de tabel met de refererende sleutel genoemd detail tabel en de tabel met de primaire sleutel die de mogelijke externe sleutelwaarden definieert, wordt genoemd hoofdtafel.

Een groep gerelateerde tabellen heet schema Gegevensbestand ( databaseschema). Informatie over tabellen, hun kolommen (namen, gegevenstype, veldlengte), primaire en externe sleutels, evenals andere database-objecten wordt genoemd metagegevens (metagegevens).

Elke manipulatie van gegevens in databases, zoals het selecteren, invoegen, verwijderen, bijwerken van gegevens, wijzigen of selecteren van metagegevens, wordt verzoek naar de databank ( vraag). Doorgaans worden query's geformuleerd in een taal die standaard kan zijn voor verschillende DBMS'en of specifiek kan zijn voor een specifiek DBMS.

Referentiële integriteit

We hebben hierboven al gezegd dat de primaire sleutel van elke tabel unieke niet-lege waarden voor deze tabel moet bevatten. Deze verklaring is een van de regels referentiële integriteit (referentiële integriteit). Sommige (maar niet alle) DBMS'en kunnen de uniciteit van primaire sleutels bepalen. Als het DBMS de uniciteit van primaire sleutels beheert, zal het DBMS bij het toewijzen van de primaire sleutel aan een waarde die al in een ander record staat, een diagnostisch bericht genereren, meestal met de zin schending van primaire sleutel... Dit bericht kan vervolgens worden doorgestuurd naar de applicatie, met behulp waarvan de eindgebruiker de gegevens manipuleert.

Als twee tabellen gerelateerd zijn door de relatie meester-detail, externe sleutel detail- tabellen mogen alleen die waarden bevatten die al aanwezig zijn onder de primaire sleutelwaarden meester- tafels. Als de juistheid van buitenlandse sleutelwaarden niet wordt gecontroleerd door het DBMS, kunnen we spreken van een schending van de referentiële integriteit. Als we in dit geval een record verwijderen uit de tabel Klanten waaraan ten minste één is gekoppeld detail- opnemen in de tabel Orders, zal dit ertoe leiden dat er in de tabel Orders records zullen zijn van bestellingen die door een onbekende zijn geplaatst. Als het DBMS de juistheid van de externe sleutelwaarden controleert, dan wanneer u probeert een externe sleutel een waarde toe te wijzen die niet behoort tot de waarden van de primaire sleutels van de hoofdtabel, of bij het verwijderen of wijzigen van hoofdtabelrecords die leiden tot een schending van referentiële integriteit, zal het DBMS een diagnostisch bericht genereren, meestal met de zin schending van buitenlandse sleutels, die later kan worden overgedragen naar de gebruikerstoepassing.

De meeste moderne DBMS'en, zoals Microsoft Access 97, Microsoft Access 2000 en Microsoft SQL Server 7.0, zijn in staat om de referentiële integriteitsregels af te dwingen, indien aanwezig, die in de database worden beschreven. Voor dit doel gebruiken dergelijke DBMS'en verschillende database-objecten (we zullen ze later bespreken). In dit geval worden alle pogingen om de referentiële integriteitsregels te schenden onderdrukt met het gelijktijdig genereren van diagnostische berichten of uitzonderingen ( database-uitzonderingen).

Inleiding tot gegevensnormalisatie

Het data-ontwerpproces is het definiëren van metadata in overeenstemming met de doelstellingen van het informatiesysteem waarin de toekomstige database zal worden gebruikt. Details over het analyseren van het domein, het maken van entiteit-relatiediagrammen ( ERD - entiteit-relatiediagrammen) en datamodellen vallen buiten het bestek van deze cyclus. Geïnteresseerden in deze kwesties kunnen bijvoorbeeld verwijzen naar het boek van C.J.Date "Introduction to Database Systems" ("Dialctics", Kiev, 1998).

In dit artikel bespreken we slechts één van de basisprincipes van datadesign: het principe normalisatie.

Normalisatie is een proces van gegevensreorganisatie door het elimineren van repetitieve groepen en andere tegenstrijdigheden in gegevensopslag om tabellen in een vorm te brengen die consistente en correcte bewerking van gegevens mogelijk maakt.

Normalisatietheorie is gebaseerd op het concept van normaalvormen. Een tabel heeft een bepaalde normaalvorm als deze aan een aantal eisen voldoet. In theorie zijn er vijf normaalvormen, maar in de praktijk worden meestal alleen de eerste drie gebruikt. Bovendien zijn de eerste twee normaalvormen in wezen tussenstappen voor het converteren van de database naar de derde normaalvorm.

Eerste normaalvorm

Laten we het normalisatieproces illustreren met een voorbeeld waarbij we gegevens uit de NorthWind-database gebruiken. Stel we registreren alle bestelde producten in onderstaande tabel. De structuur van deze tabel is als volgt (Fig. 2).

Om een ​​tabel te laten voldoen aan de eerste normaalvorm, moeten alle veldwaarden atomair zijn, en

alle records zijn uniek. Daarom is elke relationele tabel, inclusief de tabel OrderedProducts, per definitie al in de eerste normaalvorm.

Deze tabel bevat echter redundante gegevens, bijvoorbeeld dezelfde klantinformatie wordt herhaald in het record voor elk besteld product. Gegevensredundantie leidt tot afwijkingen van gegevenswijzigingen - problemen die optreden wanneer records worden toegevoegd, gewijzigd of verwijderd. Als u bijvoorbeeld gegevens in de tabel Bestelde Producten bewerkt, kunnen de volgende problemen optreden:

  • Het adres van een specifieke klant kan alleen in de database worden opgenomen als de klant minimaal één product heeft besteld.
  • Het verwijderen van een record voor een besteld product verwijdert tegelijkertijd informatie over de bestelling zelf en de klant die deze heeft geplaatst.
  • Als, God verhoede, de klant het adres heeft gewijzigd, moet u alle records van de door hem bestelde producten bijwerken.

Sommige van deze problemen kunnen worden opgelost door de database te converteren naar: tweede normaalvorm.

Tweede normaalvorm

Er wordt gezegd dat de relationele tabel in tweede normaalvorm als het in de eerste normale vorm is en de niet-sleutelvelden ervan volledig afhankelijk van de gehele primaire sleutel.

De tabel OrderedProducts heeft de eerste, maar niet de tweede normaalvorm, omdat de velden CustomerID, Address en OrderDate alleen afhankelijk zijn van het veld OrderID, dat deel uitmaakt van de samengestelde primaire sleutel (OrderID, ProductID).

Om van de eerste normaalvorm naar de tweede over te schakelen, moet u deze stappen volgen:

  1. Bepaal in welke delen de primaire sleutel kan worden gepartitioneerd, zodat sommige niet-sleutelvelden afhankelijk zijn van een van deze delen ( deze onderdelen hoeven niet in één kolom te staan!).
  2. Maak een nieuwe tabel voor elk dergelijk deel van de sleutel en de groep velden die ervan afhankelijk zijn en verplaats ze naar deze tabel. Het deel van de voormalige primaire sleutel wordt dan de primaire sleutel van de nieuwe tabel.
  3. Verwijder velden uit de oorspronkelijke tabel die zijn verplaatst naar andere tabellen dan de tabellen die externe sleutels worden.

Als u bijvoorbeeld de tabel OrderedProducts naar de tweede normaalvorm wilt brengen, verplaatst u de velden CustomerID, Address en OrderDate naar een nieuwe tabel (laten we het OrdersInfo noemen), waardoor het veld OrderID de primaire sleutel van de nieuwe tabel wordt (Afbeelding 3) .

Als gevolg hiervan zullen de nieuwe tabellen er als volgt uitzien. Tabellen die de tweede maar niet de derde normaalvorm hebben, bevatten echter nog steeds afwijkingen in de gegevenswijziging. Dit zijn ze bijvoorbeeld voor de tabel OrdersInfo:

  • Het adres van een specifieke klant kan nog steeds alleen in de database worden opgenomen als de klant minimaal één product heeft besteld.
  • Als u een orderrecord in de OrdersInfo-tabel verwijdert, wordt het record voor de klant zelf verwijderd.
  • Als de klant het adres heeft gewijzigd, moeten meerdere records worden bijgewerkt (hoewel dat er in de regel minder zijn dan in het vorige geval).

U kunt deze afwijkingen elimineren door naar: derde normaalvorm.

Derde normaalvorm

Er wordt gezegd dat de relationele tabel in derde normaalvorm als het in de tweede normaalvorm is en alle niet-sleutelvelden alleen afhankelijk zijn van de primaire sleutel.

De tabel OrderDetails is al in de derde normaalvorm. Het veld Hoeveelheid niet-sleutel is volledig afhankelijk van de samengestelde primaire sleutel (OrderID, ProductID). De tabel OrdersInfo heeft echter niet de derde normaalvorm, omdat deze een afhankelijkheid bevat tussen niet-sleutelvelden (deze heet transitieve afhankelijkheid- transitieve afhankelijkheid) - het veld Adres is afhankelijk van het veld Klant-ID.

Om van de tweede normaalvorm naar de derde te gaan, moet je deze stappen volgen:

  • Definieer alle velden (of veldgroepen) waarvan andere velden afhankelijk zijn.
  • Maak een nieuwe tabel voor elk dergelijk veld (of groep velden) en de groep velden die ervan afhankelijk zijn en verplaats ze naar deze tabel. Het veld (of groep velden) waarvan alle andere verplaatste velden afhankelijk zijn, wordt de primaire sleutel van de nieuwe tabel.
  • Verwijder de verplaatste velden uit de oorspronkelijke tabel, zodat alleen de velden overblijven die externe sleutels worden.

Om de tabel OrdersInfo naar de derde normale vorm te brengen, maakt u een nieuwe tabel Klanten en verplaatst u de velden Klant-ID en Adres erin. Laten we het veld Adres uit de oorspronkelijke tabel verwijderen en het veld Klant-ID verlaten - nu is het een externe sleutel (Fig. 4).

Dus, na het converteren van de originele tabel naar de derde normaalvorm, zijn er drie tabellen: Klanten, Bestellingen en Besteldetails.

De voordelen van normalisatie

Normalisatie verwijdert gegevensredundantie, waardoor u de hoeveelheid opgeslagen gegevens kunt verminderen en de hierboven beschreven afwijkingen kunt verwijderen. Na het omzetten van de hierboven besproken database naar de derde normaalvorm, zijn bijvoorbeeld de volgende verbeteringen duidelijk:

  • Adresgegevens van de klant kunnen in de database worden opgeslagen, ook als het alleen een potentiële klant is die nog geen bestellingen heeft geplaatst.
  • U kunt bestelde productinformatie verwijderen zonder angst voor het verwijderen van klant- en bestelgegevens.

Voor het wijzigen van het klantadres of de registratiedatum van de bestelling hoeft nu slechts één record te worden gewijzigd.

Hoe databases zijn ontworpen

Moderne DBMS'en bevatten doorgaans tools waarmee u tabellen en sleutels kunt maken. Er zijn ook hulpprogramma's die afzonderlijk van het DBMS worden geleverd (en die zelfs meerdere DBMS'en tegelijkertijd bedienen) waarmee u tabellen, sleutels en koppelingen kunt maken.

Een andere manier om tabellen, sleutels en relaties in een database te maken, is door een zogenaamd Data Definition Language (DDL)-script te schrijven; we zullen er later over praten.

Ten slotte is er een andere methode, die steeds populairder wordt, is het gebruik van speciale tools, CASE-tools genaamd (CASE staat voor Computer-Aided System Engineering). Er zijn verschillende soorten CASE-tools, maar entiteit-relatiediagrammen (E/R-diagrammen) worden het meest gebruikt om databases te maken. Met behulp van deze tools, de zogenaamde logisch een datamodel dat feiten en objecten beschrijft die erin moeten worden geregistreerd (in dergelijke modellen worden prototypes van tabellen entiteiten genoemd, en velden hun attributen). Na het tot stand brengen van relaties tussen entiteiten, het definiëren van attributen en het uitvoeren van normalisatie, een zogenaamde fysiek een databasespecifiek gegevensmodel dat alle tabellen, velden en andere databaseobjecten definieert. Daarna kunt u de database zelf of een DDL-script genereren om deze te maken.

Lijst met de momenteel meest populaire CASE-tools.

Tabellen en velden

Tabellen worden ondersteund door alle relationele DBMS'en en hun velden kunnen verschillende soorten gegevens bevatten. Meest voorkomende gegevenstypen.

Indexen

Eerder hebben we het gehad over de rol van primaire en externe sleutels. In de meeste relationele DBMS'en worden sleutels geïmplementeerd met behulp van objecten die indexen worden genoemd, die kunnen worden gedefinieerd als een lijst met recordnummers die aangeven in welke volgorde ze moeten worden weergegeven.

We weten al dat records in relationele tabellen ongeordend zijn. Niettemin heeft elk record op een bepaald tijdstip een goed gedefinieerde fysieke locatie in het databasebestand, hoewel het kan veranderen tijdens het bewerken van gegevens of als gevolg van de "interne activiteit" van het DBMS zelf.

Stel dat op een bepaald moment de records in de tabel Klanten in deze volgorde zijn opgeslagen.

Laten we zeggen dat we deze gegevens geordend willen krijgen op basis van het veld Klant-ID. Als we de technische details weglaten, kunnen we zeggen dat de index voor dit veld een reeks recordnummers is, in overeenstemming met welke ze moeten worden weergegeven, dat wil zeggen:

1,6,4,2,5,3

Als we de records op het adresveld willen ordenen, is de volgorde van de recordnummers anders:

5,4,1,6,2,3

Het opslaan van indexen vereist aanzienlijk minder ruimte dan het opslaan van verschillend gesorteerde versies van de tabel zelf.

Als we gegevens moeten vinden over klanten wiens CustomerID begint met de tekens "BO", kunnen we de index gebruiken om de locatie van deze records te vinden (in dit geval 2 en 5 (het is duidelijk dat de nummers van deze records in een rij in de index), en lees vervolgens de tweede en vijfde records, in plaats van de hele tabel door te nemen, zodat het gebruik van indexen de tijd voor het ophalen van gegevens verkort.

We hebben al gezegd dat de fysieke locatie van records kan veranderen tijdens het bewerken van gegevens door gebruikers, maar ook als gevolg van manipulaties met databasebestanden die door het DBMS zelf worden uitgevoerd (bijvoorbeeld gegevenscompressie, garbagecollection, enz. ). Als er tegelijkertijd overeenkomstige wijzigingen in de index zijn, wordt deze genoemd gesteund door en dergelijke indexen worden gebruikt in de meeste moderne DBMS'en. De implementatie van dergelijke indexen leidt ertoe dat elke verandering in de gegevens in de tabel een verandering in de bijbehorende indexen met zich meebrengt, en dit verhoogt de tijd die het DBMS nodig heeft om dergelijke bewerkingen uit te voeren. Daarom moet u, wanneer u zo'n DBMS gebruikt, alleen die indexen maken die echt nodig zijn, en u laten leiden door welke query's het vaakst zullen worden aangetroffen.

Beperkingen en regels

De meeste moderne server-side DBMS'en bevatten speciale objecten genaamd beperkingen(beperkingen), of de regels(reglement). Deze objecten bevatten informatie over de beperkingen die zijn opgelegd aan de mogelijke waarden van de velden. Met een dergelijk object kunt u bijvoorbeeld de maximum- of minimumwaarde voor een bepaald veld instellen, waarna het DBMS niet toestaat dat een record in de database wordt opgeslagen dat niet aan deze voorwaarde voldoet.

Naast de beperkingen die zijn gekoppeld aan het instellen van het bereik van gegevenswijzigingen, zijn er ook referentiële beperkingen (zo kan een hoofd-detailrelatie tussen de tabellen Klanten en Bestellingen worden geïmplementeerd als een beperking die vereist dat de waarde van het veld CustomerId ( buitenlandse sleutel) in de tabel Orders een van de reeds bestaande waarden zijn van het veld CustomerId van de tabel Klanten.

Houd er rekening mee dat niet alle DBMS's beperkingen ondersteunen. In dit geval kunt u, om vergelijkbare functionaliteit van de regels te implementeren, ofwel andere objecten gebruiken (bijvoorbeeld triggers), ofwel deze regels opslaan in clienttoepassingen die met deze database werken.

Vertegenwoordiging

Bijna alle relationele databases ondersteunen weergaven. Dit object is een virtuele tabel die gegevens levert uit een of meer echte tabellen. In werkelijkheid bevat het geen gegevens, maar beschrijft het alleen hun bron.

Vaak worden dergelijke objecten gemaakt om complexe query's in databases op te slaan. In feite is een weergave een opgeslagen verzoek.

Het maken van weergaven in de meeste moderne DBMS'en wordt uitgevoerd met speciale visuele middelen waarmee u de benodigde tabellen op het scherm kunt weergeven, verbindingen tussen de tabellen kunt maken, de weergegeven velden kunt selecteren, records kunt beperken, enz.

Vaak worden deze objecten gebruikt om de gegevensbeveiliging te waarborgen, bijvoorbeeld door gegevens mee te laten bekijken zonder directe toegang tot de tabellen. Bovendien kunnen sommige weergaveobjecten verschillende gegevens retourneren, bijvoorbeeld afhankelijk van de naam van de gebruiker, waardoor hij alleen de gegevens van belang kan ontvangen.

Triggers en opgeslagen procedures

Triggers en opgeslagen procedures, ondersteund in de meeste moderne server-side DBMS'en, worden gebruikt om uitvoerbare code op te slaan.

Een opgeslagen procedure is een speciaal soort procedure die wordt uitgevoerd door de databaseserver. Opgeslagen procedures zijn geschreven in een proceduretaal die afhankelijk is van het specifieke DBMS. Ze kunnen elkaar bellen, gegevens in tabellen lezen en wijzigen, en ze kunnen worden aangeroepen vanuit een clienttoepassing die met een database werkt.

Opgeslagen procedures worden vaak gebruikt bij het uitvoeren van veelvoorkomende taken (zoals het in evenwicht brengen van een balans). Ze kunnen argumenten aannemen, waarden, foutcodes en soms reeksen rijen en kolommen retourneren (soms dataset genoemd). Dit laatste type procedure wordt echter niet door alle DBMS'en ondersteund.

Triggers bevatten ook uitvoerbare code, maar in tegenstelling tot procedures kunnen ze niet worden aangeroepen vanuit een clienttoepassing of opgeslagen procedure. Een trigger is altijd gekoppeld aan een specifieke tabel en wordt uitgevoerd wanneer bij het bewerken van deze tabel een gebeurtenis optreedt waarmee deze is geassocieerd (bijvoorbeeld het invoegen, verwijderen of bijwerken van een record).

In de meeste DBMS'en die triggers ondersteunen, kunt u meerdere triggers definiëren om uit te voeren wanneer dezelfde gebeurtenis plaatsvindt, en de volgorde van de uitvoering bepalen.

Objecten voor het genereren van primaire sleutels

Heel vaak worden primaire sleutels gegenereerd door het DBMS zelf. Dit is handiger dan ze in de clienttoepassing te genereren, omdat bij werk met meerdere gebruikers het genereren van sleutels met behulp van een DBMS de enige manier is om dubbele sleutels te voorkomen en hun consistente waarden te verkrijgen.

Verschillende DBMS'en gebruiken verschillende objecten om sleutels te genereren. Sommige van deze objecten slaan een geheel getal op en de regels waarmee de volgende waarde wordt gegenereerd, meestal met behulp van triggers. Dergelijke objecten worden bijvoorbeeld ondersteund in Oracle (in dat geval worden ze sequenties genoemd) en in IB Database (in dat geval worden ze generatoren genoemd).

Sommige DBMS'en ondersteunen speciale typen velden voor primaire sleutels. Bij het toevoegen van records worden dergelijke velden automatisch ingevuld met opeenvolgende waarden (meestal gehele getallen). In het geval van Microsoft Access en Microsoft SQL Server worden dergelijke velden Identiteitsvelden genoemd en in het geval van Corel Paradox worden ze Autoincrement-velden genoemd.

Gebruikers en rollen

Het voorkomen van ongeautoriseerde toegang tot gegevens is een groot probleem dat op verschillende manieren kan worden aangepakt. De eenvoudigste is wachtwoordbeveiliging van ofwel de hele tabel of sommige van zijn velden (dit mechanisme wordt bijvoorbeeld ondersteund in Corel Paradox).

Momenteel is een andere methode van gegevensbescherming populairder: het maken van een lijst met gebruikers met namen (gebruikersnamen) en wachtwoorden (wachtwoorden). In dit geval behoort elk databaseobject toe aan een specifieke gebruiker, en deze gebruiker geeft andere gebruikers toestemming om gegevens van dit object te lezen of te wijzigen, of om het object zelf te wijzigen. Deze methode wordt gebruikt in alle server- en sommige desktop-DBMS (bijvoorbeeld Microsoft Access).

Sommige DBMS, voornamelijk aan de serverzijde, ondersteunen niet alleen een lijst met gebruikers, maar ook rollen. Een rol is een set privileges. Als een specifieke gebruiker een of meer rollen krijgt, en daarmee alle privileges die voor deze rol zijn gedefinieerd.

Databasequery's

Wijziging en selectie van gegevens, wijziging van metagegevens en enkele andere bewerkingen worden uitgevoerd met behulp van query's. De meeste moderne DBMS'en (en sommige hulpprogramma's voor het ontwikkelen van toepassingen) bevatten hulpprogramma's voor het genereren van dergelijke query's.

Een manier om gegevens te manipuleren wordt "query by example" (QBE) genoemd. QBE is een hulpmiddel voor het visueel koppelen van tabellen en het selecteren van velden om weer te geven in een queryresultaat.

In de meeste DBMS'en (met uitzondering van sommige desktopversies) resulteert de visuele constructie van een query met behulp van QBE in het genereren van de querytekst met behulp van een speciale querytaal SQL (Structured Query Language). U kunt uw query ook rechtstreeks in SQL schrijven.

Cursors

Vaak is het resultaat van een query een set rijen en kolommen (dataset). In tegenstelling tot een relationele tabel, is een dergelijke reeks rijen geordend en wordt hun volgorde bepaald door de oorspronkelijke query (en soms door de aanwezigheid van indexen). Daarom kunnen we de huidige rij in zo'n set bepalen en een aanwijzer ernaartoe, die een cursor (cursor) wordt genoemd.

De meeste moderne DBMS'en ondersteunen de zogenaamde bidirectionele cursors, waarmee u vooruit en achteruit kunt gaan in de resulterende dataset. Sommige DBMS'en ondersteunen echter alleen unidirectionele cursors, die alleen vooruit door de dataset gaan.

SQL-taal

Structured Query Language (SQL) is een niet-procedurele taal die wordt gebruikt voor het formuleren van databasequery's in de meeste moderne DBMS'en en is momenteel de industriestandaard.

Het niet-procedurele karakter van de taal betekent dat je erin kunt specificeren wat er met de database moet gebeuren, maar je kunt het algoritme van dit proces niet beschrijven. Alle algoritmen voor het verwerken van SQL-query's worden gegenereerd door het DBMS zelf en zijn niet afhankelijk van de gebruiker. De SQL-taal bestaat uit een reeks operators, die in verschillende categorieën kunnen worden onderverdeeld:

  • Data Definition Language (DDL) is een datadefinitietaal waarmee u objecten in databases kunt maken, verwijderen en wijzigen
  • Data Manipulation Language (DML) is een taal voor gegevensbeheer waarmee u gegevens in bestaande database-objecten kunt wijzigen, toevoegen en verwijderen
  • Data Control Languages ​​​​(DCL) - de taal die wordt gebruikt om gebruikersrechten te beheren
  • Transaction Control Language (TCL) - een taal voor het beheren van wijzigingen die zijn aangebracht door groepen operators
  • Cursor Control Language (CCL) - Operators voor het definiëren van een cursor, het voorbereiden van SQL-instructies voor uitvoering en enkele andere bewerkingen.

U leert meer over de SQL-taal in een van de volgende artikelen in deze serie.

Door de gebruiker gedefinieerde functies

Sommige DBMS'en staan ​​het gebruik van door de gebruiker gedefinieerde functies toe (UDF-User-Defined Functions). Deze functies worden meestal opgeslagen in externe bibliotheken en moeten worden geregistreerd bij de database, waarna ze kunnen worden gebruikt in query's, triggers en opgeslagen procedures.

Aangezien de door de gebruiker gedefinieerde functies in de bibliotheken zijn opgenomen, kunnen ze worden gemaakt met elke ontwikkelingstool waarmee u bibliotheken kunt maken voor het platform waarop het gegeven DBMS werkt.

Transacties

Een transactie is een groep bewerkingen op gegevens die ofwel allemaal tegelijk worden uitgevoerd of allemaal tegelijk worden geannuleerd.

Voltooiing (Commit) van een transactie betekent dat alle operaties die in de transactie zijn opgenomen met succes zijn voltooid en dat het resultaat van hun werk in de database is opgeslagen.

Het terugdraaien van een transactie betekent dat alle bewerkingen die al zijn uitgevoerd en die deel uitmaken van de transactie, worden teruggedraaid en dat alle databaseobjecten die door deze bewerkingen worden beïnvloed, in hun oorspronkelijke staat worden teruggebracht. Om de mogelijkheid om transacties terug te draaien te implementeren, ondersteunen veel DBMS het schrijven naar logbestanden, waarmee u de oorspronkelijke gegevens tijdens het terugdraaien kunt herstellen.

Een transactie kan uit meerdere geneste transacties bestaan.

Sommige DBMS'en ondersteunen twee-fasen commit, een proces waarmee transacties kunnen worden uitgevoerd op meerdere databases die tot hetzelfde DBMS behoren.

Om gedistribueerde transacties te ondersteunen (dat wil zeggen transacties via databases die door verschillende DBMS'en worden beheerd), zijn er speciale tools die transactiemonitors worden genoemd.

Gevolgtrekking

In dit artikel hebben we de basisconcepten besproken van het bouwen van een relationeel DBMS, de basisprincipes van gegevensontwerp en ook gesproken over welke objecten in databases kunnen worden gemaakt.

In het volgende artikel zullen we onze lezers kennis laten maken met de meest populaire desktop-DBMS'en: dBase, Paradox, Access, Visual FoxPro, Works en hun belangrijkste functies bespreken.

ComputerDruk 3 "2000

Post-relationele DBMS. Object-DBMS. Nadelen van relationele DBMS. Basisconcepten van objectgeoriënteerd DBMS.

Relationele databasebeheersystemen zijn beperkt. Ze zijn ideaal voor traditionele toepassingen zoals ticket- of hotelreserveringssystemen en banksystemen, maar hun toepassing in CAD, intelligente productiesystemen en andere op kennis gebaseerde systemen is vaak moeilijk. Dit komt voornamelijk door de primitiviteit van de datastructuren die ten grondslag liggen aan het relationele datamodel. Platte genormaliseerde relaties zijn universeel en theoretisch voldoende om gegevens in elk domein weer te geven. In onconventionele toepassingen verschijnen echter honderden, zo niet duizenden tabellen in de database en worden er voortdurend dure join-bewerkingen op uitgevoerd om de complexe gegevensstructuren die inherent zijn aan het domein opnieuw te creëren.

Een andere ernstige beperking van relationele systemen is hun relatief zwakke vermogen om de semantiek van de applicatie weer te geven ( semantiek- bij het programmeren - een systeem van regels voor de interpretatie van individuele taalconstructies. Semantiek bepaalt de semantische betekenis van de zinnen van de algoritmische taal ...). Het meest dat relationele DBMS'en bieden, is de mogelijkheid om beperkingen op de gegevensintegriteit te formuleren en te handhaven. Deze beperkingen en tekortkomingen van relationele systemen erkennend, ondernemen databaseonderzoekers talloze projecten op basis van ideeën die verder gaan dan het relationele datamodel.

Andere nadelen van relationele DBMS's zijn de volgende:

Inflexibiliteit van de structuur voor het ontwikkelen van databases,

· Moeilijkheden bij het bouwen van een conceptueel model voor objecten met meerdere relaties "veel-op-veel",

· Onnatuurlijke tabelpresentatie voor schaarse gegevensarrays.

Objectgericht databases zijn relatief nieuw, databasetheorie heeft niet zo'n goede wiskundige basis als relationele of boommodellen. Dit moet echter niet noodzakelijk worden gezien als een inherente zwakte van deze modelleringstechnologie. De eigenschappen die voor de meeste database-implementaties lijken te gelden, zijn:

1. Abstractie: Elk echt "ding" dat in de database is opgeslagen, is lid van een klasse. Een klasse wordt gedefinieerd als een verzameling eigenschappen, methoden, openbare en privégegevensstructuren en programma's die van toepassing zijn op objecten (instanties) van een bepaalde klasse. Klassen zijn niets meer dan abstracte gegevenstypen. Methoden zijn procedures die worden aangeroepen om een ​​of andere actie op een object uit te voeren (bijvoorbeeld zelf afdrukken of kopiëren). Eigenschappen zijn gegevenswaarden die aan elk object van de klasse zijn gekoppeld en het op de een of andere manier karakteriseren (bijvoorbeeld kleur, leeftijd).

2.inkapseling: De interne representatie van data en implementatiedetails van publieke en private methoden (programma's) maakt deel uit van de klassedefinitie en is alleen binnen die klasse bekend. Toegang tot objecten van een klasse is alleen toegestaan ​​via de eigenschappen en methoden van deze klasse of zijn ouders (zie hieronder "overerving"), en niet door gebruik te maken van kennis van de details van de interne implementatie.

3. Overerving (enkel of meervoudig): Klassen worden gedefinieerd als onderdeel van een klassenhiërarchie. De definitie van elke klasse op een lager niveau erft de eigenschappen en methoden van de bovenliggende klasse, tenzij deze expliciet niet-overerfbaar worden verklaard of door een nieuwe definitie worden gewijzigd. Met enkele overerving kan een klasse slechts één bovenliggende klasse hebben (dat wil zeggen, de klassenhiërarchie heeft een boomstructuur). Met meervoudige overerving kan een klasse afstammen van meerdere ouders (d.w.z. de klassenhiërarchie heeft een gerichte, niet-cyclische grafiekstructuur, niet noodzakelijk een boomstructuur).

4. Polymorfisme: Verschillende klassen kunnen dezelfde methode- en eigenschapsnamen hebben, zelfs als ze als verschillend worden beschouwd. Hiermee kunt u accessor-methoden schrijven die correct werken met objecten van totaal verschillende klassen, zolang de bijbehorende methoden en eigenschappen in deze klassen zijn gedefinieerd.

5. Berichten: Interactie met objecten wordt uitgevoerd door berichten te verzenden met de mogelijkheid om reacties te ontvangen.

Elk object, waarvan informatie is opgeslagen in de OODB, wordt beschouwd als behorend tot een klasse, en de koppelingen tussen de klassen worden tot stand gebracht met behulp van de eigenschappen en methoden van de klassen.

Het OODB-model bevindt zich op een hoger abstractieniveau dan relationele of boomgebaseerde databases, dus klassen kunnen worden geïmplementeerd op basis van een van deze modellen of op een ander. Aangezien het centrum van ontwikkeling niet datastructuren maar procedures (methoden) zijn, is het belangrijk dat een basismodel wordt gekozen dat voldoende sterkte, flexibiliteit en verwerkingsprestaties biedt.

Relationele databases, met hun strikte structuurdefinitie en beperkte reeks toegestane bewerkingen, zijn ongetwijfeld niet geschikt als basisplatform voor OODB's. Het M-taalsysteem met zijn flexibelere datastructuur en meer procedurele benadering van ontwikkeling lijkt meer geschikt om als basisplatform voor een OBSD te worden gebruikt.

Een DBMS is software waarmee gebruikers een database kunnen definiëren, creëren en onderhouden, en controle uitoefenen over de toegang ertoe.

Object-relationele DBMS'en zijn bijvoorbeeld Oracle Database en PostgreSQL; het verschil tussen object-relationeel en object-DBMS: de eerste zijn een bovenbouw over het relationele schema, terwijl de laatste in eerste instantie object-georiënteerd zijn.

Objecttoegang in relationele DBMS's 1) Het DBMS identificeert de pagina in het externe opslagapparaat die het vereiste record bevat. Indexmechanismen gebruiken of volledige tabelscans uitvoeren. Het DBMS leest deze pagina vervolgens van het externe opslagapparaat en kopieert het naar CACHE 2, het DBMS draagt ​​de gegevens opeenvolgend over van de CACHE naar de geheugenruimte van de toepassing. Hiervoor moeten mogelijk conversies worden uitgevoerd van SQL-gegevenstypen naar toepassingsgegevenstypen. Een applicatie kan veldwaarden in zijn geheugenruimte bijwerken. 3. De door de applicatie gewijzigde datavelden met behulp van de SQL-taal worden teruggestuurd naar de DBMS CACHE, waarbij het opnieuw nodig kan zijn om een ​​datatype-conversie uit te voeren. 4. Het DBMS slaat de bijgewerkte pagina op een extern opslagapparaat op en overschrijft deze vanuit de CACHE.

Objecttoegang in OODBMS. een. OODBMS vinden het op het externe opslagapparaat de pagina met het vereiste object, indien nodig met behulp van de index. De OODBMS leest vervolgens de vereiste pagina van het externe opslagapparaat en kopieert deze naar de paginacache van de toepassing, die zich in het geheugen van de toepassing bevindt. 2. OODBMS m Er kunnen verschillende conversies worden uitgevoerd: 1. vervanging van referenties (pointers) van het ene object naar het andere. 2. de introductie in de gegevens van het object van informatie die nodig is om te voldoen aan de eisen van de programmeertaal. 3. Het formaat wijzigen van de gegevenspresentatie die is gemaakt op verschillende hardwareplatforms of programmeertalen. 3. De applicatie implementeert toegang tot het object en update het indien nodig. 4. Wanneer de toepassing de aangebrachte wijzigingen permanent moet maken of de pagina een tijdje uit de cache naar de schijf moet verwijderen, moet de OODBMS, voordat de pagina naar een extern opslagapparaat wordt gekopieerd, de omgekeerde transformaties uitvoeren die vergelijkbaar zijn met de hierboven beschreven transformaties.



Ticketnummer 27

Economisch evenwicht, bedrijfsactiviteit van de onderneming. Het financiële saldo van de onderneming. Hefboomeffect. Analyse van het schuldniveau. Analyse van kasstromen in productieactiviteiten.

Bedrijfsactiviteit van de onderneming meestal gekenmerkt door de intensiteit van het geïnvesteerd (intern) kapitaal. In de productie is het kapitaal constant in beweging, het gaat van het ene stadium van de circulatie naar het andere: dat wil zeggen, de technologie D®T®… ®P® ... T®D wordt geïmplementeerd. "Geld, goederen

In de eerste fase investeert een onderneming bijvoorbeeld in vaste activa, productievoorraden, in de tweede fase gaan fondsen in de vorm van voorraden in productie en wordt een deel gebruikt om werknemers te betalen, belastingen, socialezekerheidsuitkeringen en andere uitgaven te betalen . Deze fase eindigt met het vrijgeven van afgewerkte producten. In de derde fase worden afgewerkte producten verkocht, het bedrijf ontvangt geld. Hoe sneller het kapitaal een circuit maakt, hoe meer producten het bedrijf zal ontvangen en verkopen met hetzelfde geïnvesteerde kapitaal. Een vertraging in het geldverkeer in elk stadium leidt tot een vertraging van de kapitaalomzet, vereist extra investeringen en kan een aanzienlijke verslechtering van het kapitaalgebruik veroorzaken.

De efficiëntie van het gebruik van het geïnvesteerde vermogen wordt beoordeeld door de volgende indicatoren te berekenen.

Onder een databank wordt verstaan ​​een verzameling databanken, alsmede software, taal en andere middelen die bedoeld zijn voor de gecentraliseerde accumulatie van gegevens en het gebruik ervan door middel van elektronische computers.

De databank omvat een of meerdere databases, een database-referentieboek, een databasebeheersysteem (DBMS), evenals een bibliotheek met query's en toepassingen.

De databank is ontworpen om grote hoeveelheden informatie op te slaan, snel de benodigde informatie en documenten te vinden.

Er wordt een databank gecreëerd in het abonneesysteem van welke hoedanigheid dan ook - van een personal computer tot een supercomputer. Maar zelfs de grootste databank is beperkt in zijn mogelijkheden. Daarom specialiseren de banken in het netwerk zich door informatie te verzamelen op bepaalde gebieden van wetenschap, technologie en producten. Databases en kennisbanken vormen de kern van de bank. Een database is een georganiseerde structuur voor het opslaan van informatie. Gegevens en informatie zijn onderling gerelateerde concepten, maar niet identiek, ik moet de discrepantie in deze definitie opmerken. Tegenwoordig maken de meeste databasebeheersystemen (DBMS) het mogelijk om niet alleen gegevens, maar ook methoden (dat wil zeggen softwarecode) in hun structuren te plaatsen, met behulp waarvan interacties met de consument of met andere software- en hardwaresystemen plaatsvinden. We kunnen dus zeggen dat moderne databases niet alleen gegevens opslaan, maar ook informatie.

BnD heeft speciale tools die het voor gebruikers gemakkelijker maken om met data te werken (DBMS).

Gecentraliseerd gegevensbeheer heeft voordelen ten opzichte van een conventioneel bestandssysteem:

- vermindering van redundantie van gegevensopslag;

- vermindering van de arbeidsintensiteit van de ontwikkeling, exploitatie en modernisering van IS;

Gemakkelijke toegang tot gegevens bieden als gebruikers

- aan professionals op het gebied van gegevensverwerking en aan eindgebruikers.

Basisvereisten voor BnD:

- de adequaatheid van de weergave van het vakgebied (volledigheid, integriteit en - consistentie van gegevens, relevantie van informatie;

- de mogelijkheid om te communiceren met gebruikers van verschillende categorieën, hoge efficiëntie van gegevenstoegang;

- gebruiksvriendelijkheid van interfaces, korte trainingstijd;

- zorgen voor geheimhouding en differentiërende toegang tot gegevens voor verschillende gebruikers;

- betrouwbaarheid van opslag en gegevensbescherming.

De definitie van de term databank wordt gegeven in de tijdelijke verordening betreffende de boekhouding en registratie van databases en databanken door de staat, goedgekeurd door het decreet van de regering van de Russische Federatie van 02.28.96 nr. 226, paragraaf 2 (SZ RF, 1996, nr. 12, artikel 1114)

Oorspronkelijk (begin jaren 60) werd een bestandsopslagsysteem gebruikt. Om voornamelijk technische problemen op te lossen, gekenmerkt door een kleine hoeveelheid gegevens en een aanzienlijke hoeveelheid berekeningen, werden de gegevens rechtstreeks in het programma opgeslagen. Er werd gebruik gemaakt van een consistente manier om de data te ordenen, er was hun hoge redundantie, de identiteit van de logische en fysieke structuren en de volledige afhankelijkheid van de data. Met de opkomst van economische en bestuurlijke taken (managementinformatiesysteem - MIS), gekenmerkt door grote hoeveelheden data en een klein aandeel berekeningen, bleek de gespecificeerde data-organisatie niet effectief te zijn. Het ordenen van gegevens was nodig, wat bleek te kunnen gebeuren volgens twee criteria: gebruik (informatie-arrays); opslag (databases). Aanvankelijk werden informatiearrays gebruikt, maar de superioriteit van databases werd al snel duidelijk. Het gebruik van bestanden om alleen gegevens op te slaan werd door McGree in 1959 voorgesteld. Er werden methoden ontwikkeld om (ook willekeurige) toegang te krijgen tot dergelijke bestanden, terwijl de fysieke en logische structuren al anders waren en de fysieke locatie van de gegevens kon worden gewijzigd zonder de logische weergave te veranderen.

In 1963 bouwde S. Bachmann de eerste industriële IDS-database met een netwerkdatamodel dat nog steeds werd gekenmerkt door dataredundantie en slechts voor één toepassing werd gebruikt. De gegevens zijn toegankelijk gemaakt met behulp van de juiste software. In 1969 werd een groep gevormd die de CODASYL-standaardset voor het netwerkgegevensmodel creëerde.

In feite begon moderne database-architectuur te worden gebruikt. Architectuur wordt opgevat als een soort (generalisatie) van een structuur waarin een element kan worden vervangen door een ander element, waarvan de kenmerken van de inputs en outputs identiek zijn aan het eerste element. Een belangrijke sprong voorwaarts in de ontwikkeling van databasetechnologie werd gegeven door het paradigma van het relationele datamodel, voorgesteld door M. Codd in 1970. Een paradigma wordt opgevat als een wetenschappelijke theorie belichaamd in een systeem van concepten die de essentiële kenmerken van de werkelijkheid weerspiegelen. Nu kunnen logische structuren worden verkregen uit dezelfde fysieke gegevens, d.w.z. dezelfde fysieke gegevens kunnen worden benaderd door verschillende toepassingen langs verschillende paden. Het werd mogelijk om de integriteit en onafhankelijkheid van data te waarborgen.

Aan het einde van de jaren 70 verschenen moderne DBMS die fysieke en logische onafhankelijkheid, gegevensbeveiliging en ontwikkelde databasetalen bieden. Het laatste decennium werd gekenmerkt door de opkomst van gedistribueerde en objectgeoriënteerde databases, waarvan de kenmerken worden bepaald door toepassingen van ontwerpautomatiseringstools en database-intellectualisering.

Het concept van een databasebeheersysteem is nauw verwant aan het concept van een database - het is een set softwaretools die is ontworpen om de structuur van een nieuwe database te creëren, deze te vullen met inhoud, de inhoud te bewerken en informatie te visualiseren. De visualisatie van database-informatie betekent de selectie van weergegeven gegevens in overeenstemming met een bepaald criterium, hun volgorde, ontwerp en daaropvolgende levering aan een uitvoerapparaat of verzending via communicatiekanalen.

Er zijn veel databasebeheersystemen in de wereld. Ondanks het feit dat ze verschillend kunnen werken met verschillende objecten en de gebruiker verschillende functies en hulpmiddelen kunnen bieden, vertrouwen de meeste DBMS op een enkele gevestigde set basisconcepten. Dit geeft ons de mogelijkheid om één systeem te beschouwen en de concepten, technieken en methoden ervan te generaliseren voor de hele klasse van DBMS.

Het DBMS organiseert de opslag van informatie zo dat het handig is:

bladeren,

bijvullen,

verandering,

zoek de informatie die je nodig hebt,

eventuele selecties maken,

sorteer in willekeurige volgorde.

Databaseclassificatie:

a) door de aard van de opgeslagen informatie:

Factografisch (archiefkasten),

Documentaire (archieven)

b) trouwens gegevens worden opgeslagen:

Gecentraliseerd (opgeslagen op één computer),

Gedistribueerd (gebruikt in lokale en wereldwijde computernetwerken).

c) volgens de structuur van de gegevensorganisatie:

Tabel (relationeel),

hiërarchisch,

Moderne DBMS maken het mogelijk om niet alleen tekst en grafische informatie op te nemen, maar ook geluidsfragmenten en zelfs videoclips.

Gebruiksgemak Met het DBMS kunt u nieuwe databases maken zonder te hoeven programmeren, maar met alleen ingebouwde functies. DBMS zorgt voor de juistheid, volledigheid en consistentie van gegevens en voor gemakkelijke toegang tot deze gegevens.

Populaire DBMS - FoxPro, Access voor Windows, Paradox. Voor minder complexe toepassingen worden in plaats van een DBMS, information retrieval systems (ISS) gebruikt, die de volgende functies vervullen:

opslag van een grote hoeveelheid informatie;

snel zoeken naar de benodigde informatie;

het toevoegen, verwijderen en wijzigen van opgeslagen informatie;

de output in een vorm die geschikt is voor een persoon.

Informatie in databases is gestructureerd in afzonderlijke records, die een groep gerelateerde gegevensitems worden genoemd. De aard van de relatie tussen records bepaalt twee hoofdtypen database-organisatie: hiërarchisch en relationeel.

Als er geen gegevens in de database staan ​​(lege database), dan is het nog steeds een volwaardige database. Dit feit heeft methodologische betekenis. Hoewel er geen gegevens in de database staan, staat er toch informatie in - dit is de structuur van de database. Het definieert de methoden om gegevens in te voeren en op te slaan in de database. De eenvoudigste "niet-computer" versie van de database is een zakelijke agenda, waarin voor elke kalenderdag een pagina is toegewezen. Zelfs als er geen enkele regel in staat, houdt het niet op een dagelijkse planner te zijn, omdat het een structuur heeft die het duidelijk onderscheidt van notitieboekjes, werkboeken en ander briefpapier.

Databases kunnen verschillende objecten bevatten, maar de belangrijkste objecten van elke database zijn de tabellen. De eenvoudigste database heeft ten minste één tabel. Dienovereenkomstig is de structuur van de eenvoudigste database identiek aan de structuur van de tabel.

Momenteel is er een snelle groei van het aantal e-commerce systemen (ECS). E-commerce heeft een aantal onderscheidende kenmerken die het sterk onderscheiden van alle eerder bekende methoden van klassieke handel vanwege de uitzonderlijke communicatieve kenmerken van internet.

E-commercesystemen moeten in staat zijn om zakelijke transacties over meerdere bedrijfsapplicaties te coördineren, stukjes informatie uit meerdere bronnen te extraheren en de informatie die ze nodig hebben tijdig en naadloos aan een klant te leveren - en dat allemaal op één verzoek van een webgebruiker .

SEC heeft een aantal specifieke eigenschappen die hen onderscheiden van klassieke handelssystemen (gewone winkels, supermarkten, beurzen, enz.). Tegelijkertijd moet met deze eigenschappen rekening worden gehouden bij het construeren en analyseren van modellen van processen in de SEC, aangezien de klassieke formulering van het optimalisatieprobleem van optimale besturing van een discreet systeem niet geschikt is. Dus de eigenschappen van de SEC: De bedrijfstijd is onbeperkt, in tegenstelling tot klassieke systemen, waar sprake is van een strikt gereguleerd werkschema. We kunnen stellen dat de bezoekersstroom gelijkmatig over de tijd is verdeeld. In tegenstelling tot klassieke systemen in SEC (dit is vooral typerend voor B2C-klassesystemen), komen bezoekers niet alleen voor aankopen, maar ook voor wat informatie: om kennis te maken met het assortiment, prijzen, betalingsvoorwaarden en levering van goederen.

Tegelijkertijd worden klassieke systemen gekenmerkt door een zodanige eigenschap dat bezoekers zeer waarschijnlijk koper worden. Daarom is het mogelijk om verschillende modellen en methoden te overwegen om de effectiviteit van het functioneren van de SEC te beoordelen: de verhouding van het aantal kopers tot het aantal bezoekers, de impact van de SEC en feedback op de inputstroom van aanvragen.

Het is typerend voor SEK dat veel bezoekers er meerdere keren komen om wat informatie in te winnen, en pas nadat ze aan alle voorwaarden tevreden zijn, een aankoop doen.

SEC kan tegelijkertijd een voldoende groot aantal bezoekers bedienen. Dit kenmerk wordt alleen beperkt door de software- en hardwaremogelijkheden van de SEC. Dat wil zeggen, in het geval van SEC zijn er vanuit het oogpunt van de gebruiker geen wachtrijen voor de service. Dit geldt met name voor volledig of gedeeltelijk geautomatiseerde SEC.

In SEC is het mogelijk dat een bezoeker die producten in een virtueel winkelmandje heeft getypt het systeem verlaat zonder een aankoop te doen (het is normaal dat alle producten in het systeem blijven, aangezien het simpelweg onmogelijk is ze te stelen). Als we een analogie trekken met klassieke handelssystemen, is het wederom moeilijk om een ​​situatie voor te stellen waarin een bezoeker, die een winkel binnenkomt, eerst een volle kar met goederen laadt, dan alles uitlaadt en de winkel verlaat. In SEC is dit geval mogelijk als de set controlefactoren niet optimaal (of suboptimaal) is

Met databasebeheersystemen kunt u grote hoeveelheden informatie combineren en verwerken, sorteren, selecties maken op basis van bepaalde criteria, enz.

Moderne DBMS maken het mogelijk om niet alleen tekst en grafische informatie op te nemen, maar ook geluidsfragmenten en zelfs videoclips. Gebruiksgemak Met het DBMS kunt u nieuwe databases maken zonder te hoeven programmeren, maar met alleen ingebouwde functies. DBMS zorgt voor de juistheid, volledigheid en consistentie van gegevens.

1.2 Relationele databases

Relationele DBMS (RDBMS; anders Relational Database Management System, RDBMS) is een DBMS dat relationele databases beheert.

Het begrip relationeel (Engelse relatie - relatie) wordt in verband gebracht met de ontwikkelingen van de bekende Engelse specialist op het gebied van databasesystemen Edgar Codd (Edgar Codd).

Deze modellen worden gekenmerkt door eenvoud van datastructuur, gebruiksvriendelijke tabelweergave en de mogelijkheid om het formele apparaat van algebra van relaties en relationele calculus te gebruiken voor gegevensverwerking.

Het relationele model richt zich op het organiseren van gegevens in de vorm van tweedimensionale tabellen. Elke relationele tabel is een tweedimensionale array en heeft de volgende eigenschappen:

- elk element van de tabel is één gegevenselement;

- alle kolommen in de tabel zijn homogeen, dat wil zeggen dat alle elementen in een kolom van hetzelfde type zijn (numeriek, symbolisch, enz.);

- elke kolom heeft een unieke naam;

- er zijn geen identieke regels in de tabel;

- de volgorde van rijen en kolommen kan willekeurig zijn.

De basisconcepten van relationele DBMS zijn: 1) attribuut; 2) relaties; 3) een tupel.

Een database is dus niets meer dan een verzameling tabellen. RDBS en record-georiënteerde systemen zijn georganiseerd rond de B-Tree-standaard of Indexed Sequential Access Method (ISAM) en zijn de standaardsystemen die in de meeste moderne softwareproducten worden gebruikt. Talen zoals SQL (IBM), Quel (Ingres) en RDO (Digital Equipment) worden gebruikt om een ​​combinatie van tabellen te bieden om relaties tussen gegevens te definiëren, die bijna volledig ontbreken in de meeste software-implementaties van B-Tree en ISAM, en de industriestandaard is nu de SQL-taal geworden, ondersteund door alle fabrikanten van relationele databasebeheersystemen.

De originele versie van SQL is een geïnterpreteerde taal voor het uitvoeren van bewerkingen op databases. De SQL-taal werd begin jaren 70 gecreëerd als interface voor interactie met databases op basis van de relationele theorie, die voor die tijd nieuw was. Echte applicaties zijn meestal geschreven in andere talen die SQL-code genereren en als ASCII-tekst naar het DBMS sturen. Er moet ook worden opgemerkt dat bijna alle echte relationele (en niet alleen relationele) systemen, naast de implementatie van de ANSI SQL-standaard, nu bekend in de laatste editie onder de naam SQL2 (of SQL-92), extra extensies bevatten, bijvoorbeeld ondersteuning voor client-server-architectuur of applicatie-ontwikkeltools.

De rijen van de tabel zijn opgebouwd uit velden die vooraf aan de database bekend zijn. De meeste systemen kunnen geen nieuwe gegevenstypen toevoegen. Elke rij in de tabel komt overeen met één record. De positie van deze regel kan veranderen samen met het verwijderen of invoegen van nieuwe regels.

Om een ​​element uniek te identificeren, moet het worden gekoppeld aan een veld of een reeks velden die de uniciteit van het element in de tabel garanderen. Dergelijke velden worden de primaire sleutel van de tabel genoemd en zijn vaak getallen. Als een tabel de primaire sleutel van een andere bevat, kunt u hiermee de relatie tussen de elementen van verschillende tabellen ordenen. Dit veld wordt een externe sleutel genoemd.

Aangezien alle velden van één tabel een constant aantal velden van vooraf bepaalde typen moeten bevatten, is het noodzakelijk om extra tabellen te maken, rekening houdend met de individuele kenmerken van de elementen, met behulp van externe sleutels. Deze benadering bemoeilijkt het creëren van complexe relaties in de database enorm. Een ander groot nadeel van relationele databases is de hoge complexiteit van het manipuleren van informatie en het veranderen van relaties.

Ondanks de weloverwogen nadelen van relationele databases, hebben ze een aantal voordelen:

indeling van tabellen door verschillende programma's;

uitgebreide "retourcode" voor fouten;

hoge snelheid van queryverwerking (SQL-commando SELECT; het resultaat van de selectie is een tabel die velden bevat die voldoen aan het opgegeven criterium);

het concept van objectdatabases is behoorlijk complex en vereist serieuze en langdurige training van programmeurs;

relatief hoge snelheid bij het werken met grote hoeveelheden data.

Bovendien zijn er al aanzienlijke fondsen geïnvesteerd in relationele DBMS over de hele wereld. Veel organisaties zijn er niet van overtuigd dat de kosten van migratie naar objectdatabases hun vruchten zullen afwerpen.

Daarom zijn veel gebruikers geïnteresseerd in een gecombineerde aanpak waarmee ze kunnen profiteren van de voordelen van objectdatabases zonder hun relationele databases volledig te verlaten. Dergelijke oplossingen bestaan. Als de overgang van een relationele database naar een objectdatabase te duur is, dan is het gebruik van deze laatste als uitbreiding en aanvulling op relationele databases vaak een voordeliger alternatief. Met compromissen kunt u een evenwicht vinden tussen objecten en relationele tabellen.

Object-relationele adapters - uh Bij deze methode wordt gebruik gemaakt van een zogenaamde object-relationele adapter, die softwareobjecten automatisch toewijst en opslaat in relationele databases. Een objectgeoriënteerde toepassing werkt als een gewone DBMS-gebruiker. Ondanks enige prestatievermindering, stelt deze optie programmeurs in staat zich volledig te concentreren op objectgeoriënteerde ontwikkeling. Bovendien hebben alle applicaties in de onderneming nog steeds toegang tot gegevens die in relationele vorm zijn opgeslagen.

Sommige object-DBMS'en, zoals GemStone van GemStone Systems, kunnen zelf fungeren als een krachtige object-relationele adapter, waardoor objectgeoriënteerde toepassingen toegang krijgen tot relationele databases.

Object-relationele adapters zoals Hewlett-Packard's Odapter voor Oracle Database kunnen met succes worden gebruikt op veel gebieden, zoals middleware die objectgeoriënteerde applicaties integreert met relationele databases.

Object-relationele gateways - p Bij gebruik van deze methode communiceert de gebruiker met de database met behulp van de OODBMS-taal, en de gateway vervangt alle objectgeoriënteerde elementen van deze taal door hun relationele componenten. Dit gaat weer ten koste van de prestaties. Een gateway moet bijvoorbeeld objecten converteren naar een set links, de originele identifiers (OID's) van de objecten genereren en deze doorgeven aan de relationele database. De gateway moet dan, elke keer dat de RDBMS-interface wordt gebruikt, de in de database gevonden OID vertalen naar het overeenkomstige object dat is opgeslagen in het RDBMS.

De prestatie van de twee hierboven besproken benaderingen hangt af van hoe de relationele database wordt benaderd. Elk RDBMS bestaat uit twee lagen: de datamanagerlaag en de opslagmanagerlaag. De eerste verwerkt instructies in de SQL-taal en de tweede koppelt de gegevens aan de database. Een gateway of adapter kan communiceren met zowel de gegevenslaag (dat wil zeggen, toegang krijgen tot het RDBMS met behulp van SQL) als de medialaag (procedureaanroepen op laag niveau). De prestaties zijn in het eerste geval veel lager (het OpenODB-systeem van Hewlett-Packard, dat als gateway kan fungeren, ondersteunt het bijvoorbeeld alleen op een hoog niveau).

Hybride DBMS - e Een andere oplossing is het creëren van hybride object-relationele DBMS'en die zowel traditionele tabelgegevens als objecten kunnen opslaan. Veel analisten zijn van mening dat de toekomst aan dergelijke hybride databases toebehoort. Toonaangevende leveranciers van relationele databases beginnen (of zijn van plan) objectgeoriënteerde tools aan hun producten toe te voegen. Sybase en Informix gaan met name ondersteuning voor objecten introduceren in de volgende versies van het DBMS. Onafhankelijke bedrijven zijn voornemens soortgelijke ontwikkelingen door te voeren. Zo bereidt het bedrijf Shores zich voor om Oracle8 uit te rusten met objectgeoriënteerde tools, die naar verwachting eind 1996 op de markt zullen komen.

Aan de andere kant erkennen leveranciers van objectdatabases zoals Object Design dat objectgeoriënteerde databases in de nabije toekomst relationele databases niet zullen vervangen. Dit dwingt hen om gateways te creëren om relationele en hiërarchische databases of verschillende soorten interfaces te ondersteunen, een typisch voorbeeld hiervan is de Ontos Integration Server object-relationele interface die wordt gebruikt in combinatie met zijn Ontos / DB OODB.

1.3 Multidimensionale databases

Een krachtige database met een speciale opslagorganisatie - kubussen, waarmee gebruikers grote hoeveelheden gegevens kunnen analyseren. Met een multidimensionale database kunt u snel werken met gegevens die zijn opgeslagen als een verzameling feiten, dimensies en vooraf berekende aggregaten.

In gespecialiseerde DBMS's die zijn gebaseerd op multidimensionale gegevensrepresentatie, worden gegevens niet georganiseerd in de vorm van relationele tabellen, maar in de vorm van geordende multidimensionale arrays:

Hypercubes - alle cellen die in de database zijn opgeslagen, moeten dezelfde dimensie hebben, dat wil zeggen, in de meest complete basis van metingen zijn

Polycubes - elke variabele wordt opgeslagen met zijn eigen reeks dimensies en alle bijbehorende verwerkingscomplexiteiten worden overgebracht naar de interne mechanismen van het systeem.

Het gebruik van multidimensionale databases in online analytische verwerkingssystemen heeft de volgende voordelen:

hoge performantie. Producten die tot deze klasse behoren, hebben meestal een multidimensionale databaseserver. Tijdens het analyseproces worden gegevens uitsluitend geselecteerd uit een multidimensionale structuur, en in dit geval is het zoeken en selecteren van gegevens veel sneller dan met een multidimensionaal conceptueel beeld van een relationele database, aangezien de multidimensionale database gedenormaliseerd is, pre- geaggregeerde indicatoren en biedt geoptimaliseerde toegang tot de gevraagde cellen

het ophalen en ophalen van gegevens is veel sneller dan met een multidimensionaal conceptueel beeld van een relationele database - de gemiddelde responstijd op een ad-hocquery bij gebruik van een multidimensionaal DBMS is gewoonlijk één tot twee ordes van grootte minder dan in het geval van een relationeel DBMS met een genormaliseerd gegevensschema

structuur en interfaces passen het beste bij de structuur van analytische queries. Deze methode is meer gerelateerd aan het mentale model van een persoon, aangezien de analist gewend is om met platte tafels te werken. Door een doorsnede van een kubus te maken met een tweedimensionaal vlak in de ene of de andere richting, is het gemakkelijk om de onderlinge afhankelijkheid van elk paar grootheden met betrekking tot de geselecteerde maat te verkrijgen. Hoe zijn bijvoorbeeld de productiekosten van een product (meting) in de loop van de tijd veranderd (meting) in de context van secties, werkplaatsen en productiefaciliteiten (een andere dimensie)

multidimensionale DBMS kan gemakkelijk omgaan met de taken van het opnemen van verschillende ingebouwde functies in het informatiemodel, terwijl de objectief bestaande beperkingen van de SQL-taal het uitvoeren van deze taken op basis van relationele DBMS nogal moeilijk en soms onmogelijk maken.

MOLAP kan alleen werken met hun eigen multidimensionale databases en is gebaseerd op propriëtaire technologieën voor multidimensionale DBMS, daarom zijn ze het duurst. Deze systemen bieden een volledige cyclus van OLAP-verwerking en bevatten, naast de servercomponent, hun eigen geïntegreerde clientinterface of gebruiken externe spreadsheetprogramma's om met de gebruiker te communiceren. Om dergelijke systemen te onderhouden, is een speciale staf van werknemers nodig om het systeem te installeren, te onderhouden en gegevensrepresentaties voor eindgebruikers te vormen.

Een ander nadeel van MOLAP-modellen is:

laat het werken met grote databases niet toe. Tegenwoordig is hun echte limiet 10-20 gigabyte. Bovendien, als gevolg van denormalisatie en eerder uitgevoerde aggregatie, komt 20 gigabyte in een multidimensionale database in de regel overeen (volgens Codd) met 2,5-100 keer minder volume van de oorspronkelijke gedetailleerde gegevens, dat wil zeggen in het beste geval enkele gigabytes.

in vergelijking met relationele gebruiken ze het externe geheugen zeer inefficiënt. De cellen van de hypercube worden erin opgeslagen in de vorm van logisch geordende arrays (blokken van vaste lengte), en het is zo'n blok dat de minimale geïndexeerde eenheid is. Hoewel multidimensionale DBMS'en geen blokken opslaan die geen specifieke waarde bevatten, lost dit het probleem slechts gedeeltelijk op. Omdat de gegevens in een geordende vorm worden opgeslagen, worden ongedefinieerde waarden niet altijd volledig verwijderd, en zelfs dan alleen als de gegevens kunnen worden georganiseerd in de grootst mogelijke aaneengesloten groepen door de sorteervolgorde te kiezen. De sorteervolgorde die het meest wordt gebruikt in zoekopdrachten komt echter mogelijk niet overeen met de volgorde waarin ze moeten worden gesorteerd om niet-bestaande waarden zoveel mogelijk te elimineren. Bij het ontwerpen van een multidimensionale database moet men dus vaak ofwel prestaties (en dit is een van de eerste voordelen en de belangrijkste reden om een ​​multidimensionaal DBMS te kiezen) of extern geheugen opofferen (hoewel, zoals opgemerkt, de maximale grootte van een multidimensionaal DBMS database is beperkt)

er zijn geen uniforme standaarden voor de interface, beschrijvingstalen en gegevensmanipulatie

ondersteunen geen gegevensreplicatie, die vaak als opstartmechanisme wordt gebruikt. Daarom is het gebruik van multidimensionale DBMS alleen gerechtvaardigd onder de volgende voorwaarden:

het volume aan initiële gegevens voor analyse is niet te groot (niet meer dan enkele gigabytes), dat wil zeggen dat het niveau van gegevensaggregatie vrij hoog is.

de set informatiedimensies is stabiel (aangezien elke verandering in hun structuur bijna altijd een volledige herstructurering van de hyperkubus vereist).

reactietijd van het systeem op ad-hocverzoeken is de meest kritische parameter.

vereist uitgebreid gebruik van complexe ingebouwde functies om cross-dimensionale berekeningen uit te voeren op cellen van de hypercube, inclusief de mogelijkheid om aangepaste formules en functies te schrijven.

2. Praktijkgedeelte

2.1 Verklaring van het probleem

2.1.1 Het doel van het oplossen van het probleem

Het management van Stroy-design LLC, dat activiteiten uitvoert met betrekking tot de reparatie van gebouwen, wil de berekeningen voor het berekenen van de kosten van de uitgevoerde werkzaamheden automatiseren om de klant snel een factuur te bezorgen. Dit helpt de afwikkelingstijden te verkorten, menselijke fouten te voorkomen en de klanttevredenheid over de geleverde diensten te vergroten. Daarom werd besloten om de kosten van het uitgevoerde werk te berekenen en een factuur te maken voor hun betaling, die de naam van het werk, de hoeveelheid uitgevoerde werkzaamheden, de prijs per productie-eenheid en de kosten van het werk zou moeten bevatten. De taak die maandelijks in de MS Excel softwareomgeving wordt opgelost heet "Berekenen van de kosten van uitgevoerde werkzaamheden".

Het doel van het oplossen van dit probleem is de tijdigheid van berekeningen van de kosten van werk voor het snel verstrekken van een gedetailleerde factuur aan klanten.

2.1.2 Probleemconditie

Operationele informatie invoeren dient als het document "Berekening van de kosten van uitgevoerd werk", dat de details bevat: de naam van het werk, de hoeveelheid uitgevoerd werk, de prijs per productie-eenheid (roebels), de kosten van het werk (roebels), de laatste twee details moeten worden berekend en berekend. Op basis hiervan wordt het volgende schermformulier gemaakt:

Naam
het werk

Eenheden
afmetingen

Volume
voerde uit
werken

Prijs
werkt, wrijven.

Q i

C i

zo


Voorwaardelijk permanente informatie (referentie) dient als prijslijst van de organisatie, met daarin de volgende gegevens (voorwaardelijke vorm): de naam van het werk, de prijs per productie-eenheid (roebels). Op basis hiervan wordt het volgende schermformulier gemaakt:

Prijslijst

Functietitel

Eenheidsprijs, wrijven.

Latijnse letters in de tabel geven de elementen van de bijbehorende rekenformules aan.

Als resultaat u zou een factuur moeten ontvangen met de volgende gegevens: naam van het werk, prijs per productie-eenheid (roebel), hoeveelheid uitgevoerd werk, kosten van het werk (roebel), rekeningnummer (automatisch ingevuld). De volledige naam en datum van de klant worden handmatig ingevoerd. Informatie wordt verstrekt in de volgende documenten:

De structuur van het resulterende document "Factuur"

LLC "Stroyservice"

ACCOUNT NUMMER.

datum

20__

Volledige naam van de klant


p / p

Naam
het werk

Eenheden
afmetingen

Volume
voerde uit
werken

Eenheidsprijs, wrijven.

Prijs
werkt, wrijven.

Batterij vervanging

pc.

Behangsticker

m 2

Leidingen vervangen

Parketvloeren

m 2

TOTAAL:

S ik

VAT:

N

WAARDE MET BTW:

SN

Ch. accountant

Bovendien moet de informatie in de tabellen voor analyse worden gepresenteerd in de vorm van diagrammen.

Organiseer in technologie koppelingen tussen tabellen voor het automatisch genereren van het factuurdocument met behulp van de functies VERT.ZOEKEN of ZOEKEN.

2.2. Computermodel voor het oplossen van het probleem

2.2.1. Informatiemodel voor het oplossen van het probleem

Het informatiemodel dat de relatie tussen de bron en de resulterende documenten weerspiegelt, wordt getoond in Fig. 2.


2.2.2. Analytisch model voor het oplossen van het probleem

Om het document te verkrijgen " Berekening van de kosten van uitgevoerde
werken »Het is noodzakelijk om de volgende indicatoren te berekenen:

    kosten van werk, roebels;

    btw, wrijven;

    bedrag inclusief btw, wrijven ..

    Berekeningen worden uitgevoerd volgens de volgende formules:

    S ik = C ik Q ik ,

    N = ΣS ik ∙ 0,18 ,

    SN = ΣS i + N,

    waar zo
    - prijs I het werk; C i
    - prijs per I de productie-eenheid; Q ik - beide uitgevoerd I het werk; N- btw;SN- Waarde met btw.

    2.2.3. MS Excel probleemoplossende technologie

    Het probleem oplossen door middel van MS Excel

    Bel Excel:

    druk op de "Start"-knop;

    selecteer de opdracht "Programma's" in het hoofdmenu;

    selecteer in het Microsoft Office-menu MS Excel.

    Hernoem "Blad 1" naar "Prijslijst":

    selecteer de opdracht "Naam wijzigen" in het contextmenu en druk op de linkermuisknop;

    druk op de "Enter"-toets.

    Voer de kop van de tabel "Prijslijst" in:

    typ op het toetsenbord "Prijslijst";

    4. Maak de titel op:


    Rijst. 2. Een voorbeeld van het selecteren van een groep cellen

    op de werkbalk, op het tabblad "Start", selecteer het gedeelte "Uitlijning" en klik op de knop.

    5. Formatteer cellen A2: B2 voor lange koppen:

    selecteer cellen A2: B2;

    voer de opdracht "Uitlijnen" uit in het gedeelte "Cellen opmaken" van het menu "Start" op de werkbalk;

    selecteer het tabblad "Uitlijning";

    zet in de groep met opties "Weergeven" het selectievakje van de optie "wrap by words" in (Fig. 3);


    Rijst. 3. Het afbreken van woorden instellen bij het binnengaan van een cel van lang

    koppen

    klik op de knop "OK".

    6. Voer in de cellen A2: B2 de informatie in die wordt getoond in Fig. 4.


    Rijst. 4. Namen van velden in de tabel "Prijslijst"

    7. Formatteer cellen A3: A8 om teksttekens in te voeren:

    selecteer cellen A3: A8;

    op de werkbalk, in het "Home"-menu, selecteer "Cells", waar in het "Format"-item, de opdracht "Format Cells" uitvoert;

    selecteer het tabblad "Nummer";

    selecteer het formaat "Tekst" (fig. 5);

    klik op de knop "OK".


    Rijst. 5. Keuze van celformaat

    8. Herhaal stap 9 voor het celbereik B3: B8, waarbij u het "Numerieke" formaat kiest.

    9. Voer de initiële gegevens in (afb. 6).


    Rijst. 6. Weergave van de "Prijslijst" tabel

    10. Geef een naam aan de celgroep:

    selecteer cellen A3: B8;

    selecteer de opdracht "Naam toewijzen" in het gedeelte "Gedefinieerde namen" van het menu "Formules" (Fig. 7);


    Rijst. 7. Weergave van het venster "Naam maken"

    klik op de knop "OK".

    11. Hernoem "Blad 2" naar "Berekening van de werkkosten" (vergelijkbaar met de stappen op p. 2).

    12. Maak een tabel "Berekening van de kosten van uitgevoerd werk" (vergelijkbaar met de acties van paragrafen 3 - 7, 8) (Fig. 8).


    Rijst. 8. Weergave van de tabel "Berekening van de werkkosten"

    13. Vul de kolommen "Naam werk" en "Prijs per productie-eenheid, wrijven." in:

    cel A3 actief maken;

    selecteer in het menu "Data" de opdracht "Data Validation", in het veld "Data Type" selecteer je "List";

    voer een waarde in het veld "Bron" in en markeer het bereik A3: A8 in de "Prijslijst" (Fig. 9);


    Rijst. 9. Opstellen van de lijst met betalers

    klik op de knop "OK";

    om de naam van een taak uit de lijst in elke cel van kolom A ("Taaknaam") in te voeren, maakt u cel A3 actief en plaatst u de cursor op de markering in de rechterbenedenhoek, klikt u met de linkermuisknop en sleept u deze naar cel A6 (Fig. 10);


    Rijst. 10. Zicht op het blad "Berekening van de werkkosten" bij het opstellen van de lijst

    druk in het veld "Selecteer een functie" op "VERT.ZOEKEN" (Fig. 11);


    Rijst. 11. Weergave van het eerste venster van de functiewizard

    klik op de knop "OK";

    voer de naam van de baan in het veld "Zoekwaarde" in door op cel A3 te klikken;

    druk op Enter";

    voer informatie in het veld "Tabel" in;

    gebruik de opdracht "Gebruik in formule" van het menu "Formules" door "Namen invoegen" te kiezen;

    selecteer "Naam:" "Prijslijst" (fig. 12);


    Rijst. 12. Een matrixnaam invoeren als argument voor een formule

    klik op de knop "OK";

    druk op Enter";

    voer informatie in - nummer 2 in het veld "Column_number";

    voer de informatie in - het nummer 0 in het veld "Interval_view" (Fig. 13);


    Rijst. 13. Weergave van het tweede venster van de functiewizard

    Klik op de knop "OK";

    14. Vul de kolom "Omvang uitgevoerde werkzaamheden" in.

    15. Voer de namen van de taken in cellen A4: A6 in:

    Maak cel A4 actief;

    Klik op de knop naast cel A4 en selecteer uit de voorgestelde lijst de naam van het werk - Batterijvervanging, stuks. Cel С4 - "Prijs per productie-eenheid, roebels." wordt automatisch ingevuld (afb. 14);


    Rijst. 14. Automatisch invullen van de prijs per productie-eenheid op naam

    vul op dezelfde manier cellen A5: A6 in, cellen C5: C6 worden ook automatisch ingevuld.

    16. Vul de kolom "Kosten van werk, roebel" in
    tabellen "Berekening van de kosten van uitgevoerd werk".
    Voor deze:

    voer de formule = B3 * C3 in cel D3 in;

    vermenigvuldig de formule die is ingevoerd in cel D3 voor de resterende cellen D4: D6 van deze kolom (met behulp van de autocomplete-functie).

    De lus wordt dus uitgevoerd, waarvan de regelparameter het regelnummer is.

    17. De ingevulde tabel ziet er als volgt uit (fig. 15).


    Rijst. 15. Resultaat van het invullen van de tabel "Berekeningen van de werkkosten"

    18. Hernoem "Blad 3" naar " Controleren ”(Vergelijkbaar met de stappen in item 2).

    19. Maak op het werkblad "Account" de vereiste tabel aan volgens de voorgaande paragrafen.

    20. Gebruik de functie ZOEKEN () om kruistabelkoppelingen te maken. Sorteer daarvoor echter de waarden van de tabel "Berekeningen van de kosten van uitgevoerd werk" in oplopende volgorde in de kolom "Naam van het werk". Voor deze:

    selecteer het celbereik A2: D6;

    selecteer het item "Sorteren en filteren" op de hoofdpagina en daar "Aangepast sorteren";

    selecteer in het uitklapvenster "Sorteren op" "Naam van de werken";

    klik op de knop "OK".

    gebruik de opdracht "Functie invoegen" van het menu "Formules";

    in het veld "Selecteer een functie" druk op "VIEW";

    klik op de knop "OK";

    voer de naam van de taak in het veld "Zoeken naar_waarde" in door op cel C9 te klikken;

    druk op Enter";

    voer de informatie in het veld Vector to View in, namelijk 'Bereken de kosten van het werk'! $ A $ 3: $ A $ 6;

    druk op Enter";

    voer de informatie in het veld "Gezochte vector", namelijk 'Berekening van de kosten van het werk'! $ C $ 3: $ C $ 6;

    druk op "Enter" (afb. 16);


    Rijst. 16. Weergave van het tweede venster van de Wizard van de VIEW-functie

    klik op de knop "OK";

    22. Herhaal de stappen vergelijkbaar met item 22 voor cellen D9: D12, E9: E12.

    23. Vul de kolom "TOTAAL" van de tabel als volgt in:

    voer in cel F13 de formule in = SOM (F9: F12).

    24. Vul de kolom "BTW" in. Voer hiervoor de formule = F13 * 0,18 in cel F14 in.

    25. Vul de kolom "BEDRAG MET BTW" in. Om dit te doen, voert u in cel F15 de formule in = F13 + F14.

    26. Als resultaat zou u de tabel moeten krijgen die wordt getoond in Fig. 17.


    Rijst. 17. Factuurvorm betaling verrichte werkzaamheden

    27. Om informatie over de kosten van elk type werk op de ontvangen bestelling te analyseren:

    maak het blad "Account" actief;

    selecteer het bereik C9: F12;

    selecteer de opdracht "Histogram" in het gedeelte "Grafieken" van het menu "Invoegen";

    selecteer het gewenste type histogram;

    hernoem het histogram naar "Kosten van elk type werk" (Fig. 18).


    Rijst. 18. Histogram "De kosten van elk type werk"

    2.3. Resultaten van een computerexperiment en hun analyse

    2.3.1. Resultaten van een computerexperiment

    Om de correctheid van het oplossen van het probleem te testen, vullen we de invoerdocumenten in en berekenen we de resultaten.

    Prijslijst

    Functietitel

    Eenheidsprijs, wrijven.

    Bad vervangen, st.

    Vervanging van leidingen, m

    Behangsticker, m2

    Parketvloer, m2

    Plafond witwassen, m2

    Berekening van de kosten van uitgevoerd werk

    Functietitel

    Omvang van het uitgevoerde werk

    Eenheidsprijs, wrijven.

    Kosten van werk, wrijven.

    Vervanging van batterijen, st.

    1000

    Vervanging van leidingen, m

    Behangsticker, m2

    1400

    Parketvloer, m2

    1200

    LLC "Stroy-design"

    ACCOUNT NUMMER.

    datum


    .
    .20

    Volledige naam van de klant

    P / p Nr.

    Functietitel

    Omvang van het uitgevoerde werk

    Eenheidsprijs, wrijven.

    Kosten van werk, wrijven.

    Vervanging van batterijen, st.

    1000

    Behangsticker, m2

    1400

    Vervanging van leidingen, m

    Parketvloer, m2

    1200

    TOTAAL:

    4560

    VAT:

    820,8

    WAARDE MET BTW:

    5380,8

    Als resultaat van het oplossen van het probleem vallen de met behulp van de computer verkregen lijsten samen met de testlijsten.

    2.3.2. Analyse van de verkregen resultaten

    Zo stelt de vorming van het resulterende document (tabel) "Factuur" u in staat om het probleem op te lossen - om de tijd voor het uitvoeren van berekeningen van de kosten van werk te verminderen, fouten veroorzaakt door de menselijke factor te elimineren en de mate van klanttevredenheid te verhogen. Het maken van verschillende diagrammen (histogrammen, grafieken) op basis van deze tabellen door middel van MS Excel maakt het niet alleen mogelijk om de resultaten van informatieverwerking visueel te presenteren voor analyse om beslissingen te nemen, maar ook om snel manipulaties uit te voeren op het gebied van ​​hun constructie ten gunste van de meest geschikte presentatie van de visualisatieresultaten volgens de gespecificeerde gebruikers (analist) parameters.

    De belangrijkste ideeën van moderne informatietechnologie zijn gebaseerd op het concept dat gegevens in databases moeten worden georganiseerd om de veranderende echte wereld adequaat weer te geven en te voldoen aan de informatiebehoeften van gebruikers. Deze databases worden gemaakt en werken onder de controle van speciale softwaresystemen die databasebeheersystemen (DBMS) worden genoemd.

    De toename van het volume en de structurele complexiteit van de opgeslagen gegevens, de uitbreiding van de kring van gebruikers van informatiesystemen hebben geleid tot het wijdverbreide gebruik van de meest handige en relatief eenvoudig te begrijpen relationele (tabelvormige) DBMS. Om gelijktijdige toegang te bieden tot de gegevens van meerdere gebruikers, vaak ver genoeg van elkaar en van de opslaglocatie van de databases, zijn netwerkversies van de database voor meerdere gebruikers gemaakt op basis van de relationele structuur. Daarin worden op de een of andere manier specifieke problemen van parallelle processen, data-integriteit (correctheid) en beveiliging, alsmede toegangsautorisatie opgelost.

    Het DBMS moet toegang bieden tot gegevens aan alle gebruikers, inclusief degenen die praktisch niet beschikken over en (of) niets willen weten over: de fysieke locatie van gegevens en hun beschrijvingen in het geheugen; zoekmechanismen voor de gevraagde gegevens; problemen die voortkomen uit het gelijktijdig opvragen van dezelfde gegevens door meerdere gebruikers (applicatieprogramma's); manieren om gegevensbescherming te waarborgen tegen onjuiste updates en (of) ongeoorloofde toegang; het up-to-date houden van databases en vele andere functies van het DBMS.

    Tegenwoordig blijven relationele databases de meest voorkomende, vanwege hun eenvoud en zichtbaarheid, zowel tijdens het creatieproces als op gebruikersniveau.

    Het belangrijkste voordeel van relationele databases is de compatibiliteit met de meest populaire querytaal SQL. Met een enkele query in deze taal kunt u meerdere tabellen samenvoegen tot een tijdelijke tabel en de vereiste rijen en kolommen eruit knippen (selectie en projectie). Omdat de tabelstructuur van een relationele database intuïtief is voor gebruikers, is SQL eenvoudig en gemakkelijk te leren. Het relationele model heeft een solide theoretische basis waarop de evolutie en implementatie van relationele databases is gebaseerd. In het kielzog van de populariteit veroorzaakt door het succes van het relationele model, is SQL de primaire taal geworden voor relationele databases.

    Tijdens het analyseren van de bovenstaande informatie kwamen de volgende tekortkomingen van het beschouwde databasemodel aan het licht: aangezien alle velden van één tabel een constant aantal velden van vooraf bepaalde typen moeten bevatten, is het noodzakelijk om extra tabellen te maken die rekening houden met de individuele kenmerken van de elementen met behulp van externe sleutels. Deze benadering maakt het erg moeilijk om complexe relaties in de database te creëren; hoge complexiteit van het manipuleren van informatie en het veranderen van verbindingen.

    In het praktische gedeelte werden MS Excel 2010-tools opgelost, de taak werd gesteld in relatie tot de voorwaardelijke onderneming - het bedrijf Stroy-design LLC, dat activiteiten uitvoert met betrekking tot de uitvoering van werkzaamheden aan de reparatie van gebouwen. Tabellen werden gebouwd volgens de gegeven gegevens in de opdracht. De berekening van de werkkosten voor de ontvangen bestelling is uitgevoerd, de berekeningsgegevens moeten in de tabel worden ingevoerd. Koppelingen tussen tabellen worden georganiseerd met behulp van de functies VERT.ZOEKEN of ZOEKEN om automatisch een factuur aan de klant te genereren om het uitgevoerde werk te betalen. Het document "Factuur voor het uitgevoerde werk" gevormd en ingevuld. De resultaten van het berekenen van de kosten van elk type werk op de ontvangen bestelling worden in grafische vorm weergegeven.

    Computeropleiding voor het vakgebied Informatica "/ A.N. Romanov, V.S. Toroptsov, DB Grigorovitsj, LA Galkina, A.Yu. Artemiev, N.I. Lobova, K.E. Michajlov, G.A. Zhukov, O.E. Krichevskaya, S.V. Yasenovsky, LA Vdovenko, BE Odintsov, G.A. Titorenko, G.D. Savichev en V.I. Gusev, SE Smirnov, V.I. Suvorov, G.V. Fedorova, GB Konyashin. - M.: VZFEI, 2000. Bijgewerkt op 24.11.2010. - Toegang via login en wachtwoord.

    Computeropleiding in de discipline "Informatiesystemen in de economie" / A.N. Romanov, V.S. Toroptsov, DB Grigorovitsj, LA Galkina, AV Mortvitsjev, BE Odintsov, G.A. Titorenko, LA Vdovenko, V.V. Braga, GD Savichev en V.I. Soevorov. - M.: VZFEI, 2005. Bijgewerkt op 15.10.2010. - URL:. Toegang via login en paswoord.

    DBMS-CONCEPT EN SOORTEN DATABASEMODELLEN VERZAMELING VAN SOCIOLOGISCHE GEGEVENS MET BEHULP VAN DATABASE-TECHNOLOGIEN. MAKEN VAN TABELLEN EN DB-FORMULIER 2013-11-05

In dit hoofdstuk belichten en karakteriseren we de belangrijkste klassen van DBMS.

De belangrijkste DBMS-classificatie is gebaseerd op het gebruikte databasemodel. Volgens dit criterium worden verschillende klassen van DBMS onderscheiden: hiërarchisch, netwerk, relationeel, object en andere. Sommige DBMS'en kunnen meerdere datamodellen tegelijk ondersteunen.

Eerdere DBMS'en, zoals hiërarchische en netwerk-, hebben een boomstructuur en zijn gebouwd volgens het "Ancestor - Child"-principe. Maar zulke systemen hebben de hunne al overleefd en worden steeds minder gebruikt.

Relationele DBMS'en hebben hiërarchische en genetwerkte DBMS'en vervangen.

Kenmerken van relationele DBMS

De eerste theoretische ontwikkelingen op het gebied van relationeel DBMS werden in de jaren 70 verkregen, terwijl tegelijkertijd de eerste prototypes van relationeel DBMS verschenen. Lange tijd werd het onmogelijk geacht om tot een effectieve implementatie van dergelijke systemen te komen. De geleidelijke opeenstapeling van methoden en algoritmen voor het organiseren en beheren van relationele databases leidde er echter toe dat in het midden van de jaren 80 relationele systemen de vroege DBMS's praktisch van de wereldmarkt verdreven.

De relationele benadering van het organiseren van een DBMS veronderstelt de aanwezigheid van een reeks onderling verbonden relaties (tweedimensionale tabellen). Een link is in dit geval een associatie van twee of meer relaties (tabellen). Een database die geen verbanden tussen relaties heeft, heeft een zeer beperkte structuur en kan niet relationeel worden genoemd. Query's op dergelijke databases retourneren een tabel die opnieuw kan deelnemen aan de volgende query. Gegevens in sommige tabellen zijn, zoals we al zeiden, gerelateerd aan gegevens in andere tabellen, vandaar de naam "relationeel".

De relationele benadering van het bouwen van een DBMS heeft een aantal voordelen: A. Ya. Baidak, A. A. Boelgakov. Moderne DBMS en hun toepassing in energietechniek [elektronische bron]. - Toegangsmodus: http: // masters. donntu.edu.ua/2010/etf/baydak/library/article2. htm. - Titel vanaf het scherm:

De aanwezigheid van een klein aantal abstracties die het relatief eenvoudig maken om de meeste gemeenschappelijke vakgebieden te modelleren en nauwkeurige formele definities mogelijk te maken, terwijl ze intuïtief blijven;

De aanwezigheid van een eenvoudig en tegelijkertijd krachtig wiskundig apparaat, voornamelijk gebaseerd op verzamelingenleer en wiskundige logica en dat een theoretische basis biedt voor een relationele benadering van het organiseren van databases;

Mogelijkheid van niet-navigatiegegevensmanipulatie zonder de noodzaak om de specifieke fysieke organisatie van databases in extern geheugen te kennen.

Het relationele model heeft een rigoureuze theoretische basis. Deze theorie heeft bijgedragen aan de creatie van de declaratieve SQL-taal, die nu de standaard is geworden voor het definiëren en manipuleren van relationele databases. Andere sterke punten van het relationele model zijn eenvoud, geschiktheid voor online transactieverwerkingssystemen (OLTP) en gegevensonafhankelijkheid. Vooral het relationele datamodel en relationele DBMS hebben echter bepaalde nadelen.

Het belangrijkste nadeel van relationele DBMS'en wordt beschouwd als inherent beperkt gebruik van deze systemen in gebieden die vrij complexe datastructuren vereisen. Een van de belangrijkste aspecten van het traditionele relationele gegevensmodel is de atomiciteit (uniekheid en ondeelbaarheid) van gegevens die zijn opgeslagen op de kruising van tabelrijen en kolommen. Deze regel werd gelegd in de basis van relationele algebra toen het werd ontwikkeld als een wiskundig gegevensmodel. Bovendien laat de specificiteit van de implementatie van het relationele model het niet toe om de echte verbanden tussen objecten in het beschreven onderwerpgebied adequaat weer te geven. Deze beperkingen belemmeren de effectieve implementatie van moderne applicaties, die al een enigszins andere benadering van het organiseren van gegevens vereisen, aanzienlijk.

Het basisprincipe van het relationele model is om dubbele velden en groepen te elimineren door middel van een proces dat normalisatie wordt genoemd. Platte genormaliseerde tabellen zijn veelzijdig, gemakkelijk te begrijpen en theoretisch voldoende om gegevens in elk vakgebied weer te geven. Ze zijn zeer geschikt voor opslag- en weergavetoepassingen in traditionele industrieën zoals bank- of boekhoudsystemen, maar hun toepassing in systemen die gebaseerd zijn op complexere datastructuren is vaak moeilijk. In wezen is dit te wijten aan de primitiviteit van de mechanismen voor gegevensopslag die ten grondslag liggen aan het relationele model Nikitin M. Is het tijdperk van relationele DBMS voorbij? [Elektronische bron]. - Toegangsmodus: http://www.cnews.ru/reviews/free/marketBD/articles/articles2. shtml. - Titel van het scherm.

Tegenwoordig zijn de volgende bekende fabrikanten van relationele DBMS: ORACLE, Informix, IBM (DB2), Sybase, Microsoft (MS SQL Server), Progress en anderen. In hun producten richten DBMS-fabrikanten zich op het werken op verschillende soorten computers (van mainframes tot portable) en op verschillende besturingssystemen (OS). Ook de fabrikanten van DBMS gingen niet voorbij aan producten die op desktopcomputers draaien, zoals dBase, FoxPro, Access en dergelijke. Deze DBMS zijn ontworpen om op een pc te werken en lokale problemen op één pc of een kleine groep pc's op te lossen. Vaak worden DBMS-gegevens gebruikt als een spiegelbeeld van een klein deel van een gemeenschappelijk bedrijfs-DBMS om de benodigde hardware- en resourcekosten voor het oplossen van kleine taken te minimaliseren.

Verschillende DBMS draaien op verschillende OS en hardware. De meest bekende van dergelijke besturingssystemen zijn UNIX, VAX, Solaris, Windows. Afhankelijk van de hoeveelheid gegevensopslag, het aantal gebruikers dat tegelijkertijd toegang heeft tot de gegevens, de complexiteit van de taken, worden verschillende DBMS'en op verschillende platforms gebruikt. Oracle DBMS op Unix, geïnstalleerd op een multiprocessor-server, maakt het bijvoorbeeld mogelijk problemen op te lossen bij het verstrekken van gegevens aan honderdduizenden gebruikers. Databasebeheersystemen [Elektronische bron]. - Toegangsmodus: http: // mathmod. aspu.ru/images/File/Ponomareva/TM10_About%20BD. pdf. - S. 2.

Momenteel zijn de meest interessante DBMS-georiënteerd op het Windows-besturingssysteem met behulp van het Intel-platform.