Database
Een database, ook wel databasesysteem genoemd , is een systeem voor elektronisch gegevensbeheer . De belangrijkste taak van een database is om grote hoeveelheden gegevens efficiënt , consistent en permanent op te slaan en om de vereiste subsets in verschillende, op behoeften gebaseerde vormen van representatie voor gebruikers en applicatieprogramma's te bieden .
Een bestand bestaat uit twee delen: het toedienen software , genaamd het databasemanagementsysteem (DBMS) en de hoeveelheid data die moet worden toegediend, de databank (DB) in engere zin, ook wel de " gegevensbank ". De beheersoftware regelt de gestructureerde opslag van de gegevens intern en regelt alle lees- en schrijftoegang tot de database. Een database systeem biedt een database taal voor het opvragen en beheren van de gegevens.
De meest voorkomende vorm van database is een relationele database . De structuur van de gegevens wordt bepaald door een databasemodel .
Er moet onderscheid worden gemaakt tussen de hier beschreven term database (bestaande uit DBMS en data) en database-applicaties: Deze laatste zijn computerprogramma's (vaak behorend tot de applicatiesoftware ) die hun individueel benodigde gegevens beheren en opslaan met behulp van een databasesysteem. [1] [2] Voorbeelden: orderbeheer, bestellen, klanten- en adresbeheer, facturatie.
In taalkundig gebruik wordt soms (en conceptueel onjuist) gegevens die niet met databasesystemen worden beheerd, een "database" genoemd: een reeks thematisch verwante bestanden .
verhaal
Op basis van problemen met de verwerking van gegevens in eenvoudige bestanden, werd in de jaren zestig het concept ingevoerd om gegevens te beheren via een aparte softwarelaag tussen het besturingssysteem (bestandsbeheer) en het applicatieprogramma. Dit concept ging de ongewenste ontwikkeling tegen dat dataopslagapparaten in de vorm van bestanden meestal voor een speciale toepassing zijn ontworpen en een aanzienlijk deel van de dagelijkse gang van zaken wordt belast met het kopiëren, mixen en herstructureren van bestanden.
Een van de eerste grote DBMS was IMS met de taal DL/I ( Data Language One ). De databases die ermee werden beheerd waren hiërarchisch gestructureerd. Tegelijkertijd definieerde CODASYL een model voor netwerkachtige gestructureerde databases.
Edgar F. Codd boekte in de jaren zestig en zeventig aanzienlijke vooruitgang met zijn onderzoek aan het IBM Almaden Research Center . Codd ontwikkelde de fundamenten van het eerste experimentele relationele databasesysteem , System R. [3] De Berkeley Group volgde met Ingres en de zoektaal QUEL.
Oracle (toen nog onder de bedrijfsnamen SDL en RSI ) exploiteerde de resultaten van System R en leidde SQL tot commercieel succes. IBM volgde met SQL/DS en DB2 . In de jaren tachtig vervingen relationele databasesystemen hiërarchische en netwerkachtige systemen en de meeste overheden, bedrijven, instituten en middelgrote bedrijven schakelden hun IT over op databasesystemen.
Terwijl in de jaren negentig enkele commerciële fabrikanten van databasesoftware de markt domineerden (namelijk IBM, Informix , dBASE , Microsoft SQL Server en Oracle), werden open source databasebeheersystemen in de jaren 2000 steeds belangrijker. Bovenal behaalden MySQL en PostgreSQL aanzienlijke marktaandelen. Als reactie daarop begonnen de toonaangevende commerciële fabrikanten royaltyvrije versies van hun databasesoftware aan te bieden. Sinds ongeveer 2001 is het belang van NoSQL- systemen toegenomen door het gebrek aan schaalbaarheid van relationele databases.
Een stamboom van de databasesystemen is te vinden als Genealogy of Relational Database Management Systems [4] bij het Hasso Plattner Institute .
betekenis
Databasesystemen zijn tegenwoordig een centraal onderdeel van bedrijfssoftware . Ze vormen een cruciaal onderdeel van veel bedrijven en autoriteiten.Het vermogen van een bedrijf om te handelen hangt af van de beschikbaarheid , volledigheid en juistheid van de gegevens. Databeveiliging is dan ook een belangrijk en wettelijk verplicht onderdeel van de IT van een bedrijf of een instantie.
Onderdelen van een databasesysteem
Het databasesysteem is het uitgevoerde DBMS samen met de in de database te beheren gegevens. Een database zorgt zowel voor de permanente opslag als voor de consistentie van de gebruikersgegevens van een instelling en biedt de database applicaties met behulp van de DBMS-interfaces voor het opvragen, evalueren, wijzigen en beheren van deze gegevens.
Databasemanagementsysteem
Het databasebeheersysteem (DBMS) is de gebruikte software die is geïnstalleerd en geconfigureerd voor het databasesysteem. Het DBMS definieert het databasemodel, moet een groot deel van onderstaande eisen borgen en is bepalend voor de functionaliteit en snelheid van het systeem. Databasebeheersystemen zijn zelf zeer complexe softwaresystemen.
Voor databasebeheersysteem wordt (zelden) de term databasebeheersysteem (DBMS) gebruikt.
De afkorting RDBMS voor een relationeel databasebeheersysteem is gebruikelijk .
Database
In theorie betekent een logisch gerelateerde database onder Database (Engelse database). Deze database wordt beheerd door een draaiend DBMS en opgeslagen op niet-vluchtige opslagmedia, onzichtbaar voor applicatiesystemen en gebruikers. Om een efficiënte toegang tot de database te garanderen, beheert het DBMS meestal een geheugenhiërarchie die met name ook een snel tussengeheugen ( bufferpool ) omvat. Om de consistentie van de database te behouden, moeten alle applicatiesystemen zich tot het DBMS wenden om de database te kunnen gebruiken. Alleen administratieve activiteiten, zoals gegevensback-up, hebben directe toegang tot het geheugen. De logische opbouw van de op te slaan data wordt tijdens de datamodellering als datamodel ontwikkeld en gedefinieerd en in zijn definitieve vorm opgeslagen in en volgens de syntaxregels van het DBMS. Voor dit doel creëert, gebruikt en beheert het DBMS een "systeemcatalogus" ( datadictionary ) met meta-informatie over de database, bijvoorbeeld over de structuur, de gegevensvelden (naam, lengte, formaat ...), toegangsregels, integriteitsvoorwaarden , enz.
Individuele DBMS-fabrikanten gebruiken iets andere termen voor wat er precies wordt bedoeld met een database: ofwel alle gegevens die worden beheerd door een draaiend DBMS of de instantie , of alleen de gegevens die inhoudelijk bij elkaar horen. Bij gedistribueerde databases zijn er ook meerdere databases in het model op verschillende systemen die met elkaar verbonden zijn.
Voorbeelden
- Alle banken en verzekeraars werken met databasesystemen, meestal met relationele DBMS. Alle klant- en accountinformatie, boekingen en andere gegevens worden gestructureerd opgeslagen in het databasesysteem. In deze operationele omgeving hebben gegevensbescherming en gegevensbeveiliging een hoge prioriteit. Databasesystemen worden hier gebruikt voor de dagelijkse gang van zaken ( OLTP ), maar ook periodiek of ad-hoc voor elk ander doel (zoals in marketing , controlling , boekhouding en vele andere gebieden; zie ook OLAP ).
- In feite werken alle middelgrote bedrijven en grote bedrijven voor resourceplanning met ERP- systemen, waarvan het datagedeelte beschikbaar is in de vorm van databasesystemen.
- Dit artikel in de versie die beschikbaar is op Wikipedia wordt beheerd door een databasesysteem ( Wikipedia-technologie ), samen met alle andere artikelen die daar staan.
- Marktonderzoeksinstituten verzamelen hun eigen data en data van derden in datawarehouses .
Functies van een DBMS
De belangrijkste functies van de huidige databasebeheersystemen zijn:
- Opslag, overschrijven en verwijderen van gegevens
- Beheer van de metadata
- De veiligheid van gegevens voorzorgsmaatregelen
- Gegevensbescherming voorzorgsmaatregelen
- Data Integrity Voorzorgsmaatregelen
- Bediening door meerdere gebruikers mogelijk maken via het transactieconcept
- Optimalisatie van zoekopdrachten
- Activeer triggers en opgeslagen procedures
- Verstrekken van kengetallen over techniek en werking van het DBMS
Dataveiligheid
Het RDBMS slaat de relationele gegevens op een opslagmedium op . Naast de feitelijke gegevens wordt ook informatie over de dataschema's en toegangsrechten van gebruikers opgeslagen. Deze laatste zijn belangrijk om de gegevensbeveiliging te garanderen. Dit omvat zowel bescherming tegen gegevensverlies als bescherming tegen ongeoorloofde toegang. De metadata van een DBMS wordt ook wel de datadictionary of catalogus van het systeem genoemd.
Een ander belangrijk aspect van databases is het maken van back-ups van de gegevensvoorraad door back-ups . In de praktijk is dit vaak een prestatieprobleem dat niet mag worden verwaarloosd, aangezien gegevens tijdens een back-up slechts in zeer beperkte mate kunnen worden gewijzigd.
Transacties
Een ander belangrijk onderdeel van gegevensbeveiliging is het transactieconcept , dat gegevens beschermt tegen race-omstandigheden door parallelle toegang door meerdere gebruikers. Anders kunnen gegevens door verschillende gebruikers tegelijkertijd worden gewijzigd. Het resultaat van de wijzigingen zou dan afhankelijk zijn van toeval of gegevens zouden inconsistent kunnen worden. In eenvoudige bewoordingen blokkeren transacties tijdelijk de toegang tot gegevens door andere gebruikers totdat een transactie wordt beëindigd door een vastlegging of totdat de aangebrachte wijzigingen ondoeltreffend worden gemaakt door een terugdraaiing . De gegevens zijn dan weer vrij voor andere transacties.
Data-integriteit
Door middel van constraints kan de integriteit van de gegevens worden gewaarborgd. Dit zijn regels in het beheersysteem die beschrijven hoe gegevens kunnen worden gewijzigd. De belangrijkste vertegenwoordiger in relationele databasesystemen is de externe sleutelbeperking . Dit voorkomt dat gegevens worden verwijderd die nog steeds vereist zijn door een andere tabel, dat wil zeggen waarnaar wordt verwezen via een externe sleutel . Zie hoofdartikel referentiële integriteit .
Andere integriteitsvoorwaarden regelen bijvoorbeeld of duplicaten zijn toegestaan of welke inhoud afzonderlijke gegevensvelden mogen bevatten ("gebiedsintegriteit", inclusief het controleren op toegestane lege inhoud).
Zoekopdracht optimalisatie

Het DBMS biedt een databasetaal zodat gegevens kunnen worden opgevraagd en gewijzigd. Een vraag naar het databasesysteem wordt eerst vertaald in de logische bewerkingen van relationele algebra. Vervolgens worden zogenaamde database- operators geselecteerd die daadwerkelijk de logische bewerking op de data uitvoeren. De keuze van operators en de volgorde waarin ze worden uitgevoerd, wordt de query-optimizer genoemd die een uitvoeringsplan bouwt. De optimizer is een bijzonder complex onderdeel van de databasesoftware en heeft een grote invloed op de efficiëntie van het totale systeem.
Indexen spelen een belangrijke rol bij het optimaliseren van zoekopdrachten. Ze worden gebruikt om snel een specifieke dataset te vinden. Welke gegevens een index krijgen, wordt bepaald met het databaseschema, maar kan later door een databasebeheerder worden aangepast.
Toepassingsondersteuning
Om databasetoepassingen te ondersteunen, bieden databasesystemen triggers en opgeslagen procedures . Een trigger activeert een actie in de database wanneer een bepaalde gebeurtenis heeft plaatsgevonden, vaak tijdens invoeg- of wijzigingsbewerkingen. Opgeslagen procedures worden gebruikt om scripts in de database uit te voeren. Omdat opgeslagen procedures worden uitgevoerd binnen het databasesysteem, zijn ze vaak de meest efficiënte manier om gegevens te manipuleren. Databases die triggers en opgeslagen procedures ondersteunen , worden ook wel actieve databases genoemd.
talen
Een database biedt een interface, een databasetaal voor de volgende doeleinden:
- Opvragen en manipuleren van gegevens ( DML )
- Beheer van de database en definitie van de datastructuren ( DDL )
- Autorisatiecontrole ( DCL )
In het relationele DBMS zijn deze categorieën gecombineerd in één taal ( SQL ), maar in andere systemen is er een scheiding in de vorm van verschillende talen.
Mogelijkheid voor meerdere gebruikers
Autorisaties worden beheerd voor toegang tot de gegevens. De bijbehorende bewerking kan niet worden uitgevoerd zonder autorisatie.
Voor de (pseudo-) gelijktijdige toegang van meerdere applicaties of gebruikers regelt het DBMS concurrentiesituaties.
- Er worden sluizen (Engl. Locks) beheerd.
- Systeemlogboeken ( logboeken of logbestanden ) worden beheerd.
- De database is transactiegericht .
Deze groep eisen onderscheidt databasesystemen in engere zin van functioneel uitgebreide bestandssystemen.
Fouten in een database die optreden als gevolg van illegale parallelle databasetoegang, worden afwijkingen genoemd bij bewerkingen voor meerdere gebruikers .
Verschillende vormen van databasesystemen
Databasemodel
De basis voor het structureren van de gegevens en hun onderlinge relaties is het databasemodel , dat is gedefinieerd door de DBMS-fabrikant. Afhankelijk van het databasemodel moet het databaseschema worden aangepast aan bepaalde structureringsopties:
- hiërarchisch : de gegevensobjecten kunnen alleen in een bovenliggende en onderliggende relatie tot elkaar staan.
- netwerkachtig : De data-objecten zijn in netwerken met elkaar verbonden.
- relationeel : de gegevens worden regel voor regel beheerd in tabellen. Er kan elke relatie tussen gegevens zijn. Ze worden bepaald door de waarden van bepaalde tabelkolommen.
- objectgeoriënteerd : de relaties tussen gegevensobjecten worden beheerd door het databasesysteem zelf. Objecten kunnen eigenschappen en gegevens van andere objecten erven.
- Documentgericht : De op te slaan objecten worden opgeslagen als documenten met mogelijk verschillende attributen, dwz zonder de vereiste van structurele gelijkheid.
Er zijn een aantal gemengde en ondergeschikte vormen, zoals het object-relationele model.
Uitlijning
Er wordt een klassiek onderscheid gemaakt tussen het afstemmen van het systeem op veel kleine zoekopdrachten ( OLTP ) en langetermijnevaluaties ( OLAP ). Het komt echter vrij vaak voor dat hetzelfde systeem aan beide eisen moet voldoen en bijvoorbeeld overdag voor OLTP en 's nachts voor OLAP-gebruik wordt "gedraaid". Een databasebeheerder werkt vervolgens verschillende configuraties uit (hoofdgeheugen van de server, aantal processen, optimalisatiestrategie voor toegang, enz.).
Zie ook
- Digital Bibliography & Library Project (DBLP): bibliografische directory met een focus op databasesystemen en logisch programmeren.
- Lijst met databasebeheersystemen
- ingebed databasesysteem
- Databron
- Databasebeveiliging
- Tekst generatie
literatuur
- Ramez Elmasri, Shamkant B. Navathe: Basisprincipes van databasesystemen. 3e editie van de basiscursus editie. Pearson Studium, München et al. 2005, ISBN 3-8273-7153-8 .
- Andreas Heuer, Gunter Saake : databanken. Concepten en talen. 2e, bijgewerkte en uitgebreide editie. mitp-Verlag, Bonn 2000, ISBN 3-8266-0619-1 .
- Alfons Kemper , André Eickler: Databasesystemen. Een introductie. 7e, bijgewerkte en uitgebreide editie. Oldenbourg Verlag, München et al. 2009, ISBN 978-3-486-59018-0 .
- Thomas Kudraß (red.): Zakboekdatabases . Fachbuchverlag Leipzig in Carl.Hanser-Verlag, München 2007, ISBN 978-3-446-40944-6 .
- T. William Olle: de Codasyl-benadering van databasebeheer. Wiley, Chichester 1978, ISBN 0-471-99579-7 .
- Gottfried Vossen : datamodellen, databasetalen en databasebeheersystemen. 5e, gecorrigeerde en aangevulde druk. Oldenbourg Verlag, München et al. 2008, ISBN 3-486-27574-7 .
web links
- Federaal Bureau voor Informatiebeveiliging: juiste selectie van databasesoftware
- Database-wiki aan de Hogeschool van Keulen
- Databases begrijpen, een portaal over databases, databasetheorie en databasepraktijk
Individueel bewijs
- ↑ it-visions [1] woordenlijst trefwoord "databasesysteem"
- ↑ it-infothek [2] Basisprincipes van de databasetoepassing
- ^ EF Codd: een relationeel gegevensmodel voor grote gedeelde databanken. ( Memento van 12 juni 2007 in het Internetarchief ) In: Mededelingen van de ACM . 13-6-1970. Vereniging voor computermachines, pp. 377-387
- ^ Genealogie van relationele databasebeheersystemen: [3] bij het Hasso Plattner Institute .