Ingres (database)

Uit Wikipedia, de vrije encyclopedie
Ingres Database
Logo
Ontwikkelaar(s) Ingres Corporation
Recentste versie 11.0 (30 mei 2019)[1] Bewerken op Wikidata
Status Actief
Besturingssysteem Multiplatform
Geschreven in C
Categorie Relationele database
Licentie(s) GPLv2
Website (en) Productpagina
Portaal  Portaalicoon   Informatica
Vrije software

Ingres (uitgesproken als /iŋ-'grεs/) is een commercieel ondersteunde opensource-relationeledatabase ontwikkeld om grote commerciële applicaties te ondersteunen. Ingres is volledig open source en kan rekenen op een wereldwijd groeiende groep medewerkers die deze software onderhouden, uitbreiden en gebruikersvriendelijker maken, maar Ingres Corporation controleert deze ontwikkeling en zorgt voor officiële releases en professionele ondersteuning van deze releases.

Ingres profileert zich nu voornamelijk als een stabiel opensource-alternatief tegenover andere databases.

Geschiedenis[bewerken | brontekst bewerken]

De Ingres-database was eerst ontwikkeld als een onderzoeksproject in de Berkeley Universiteit van Californië, van het begin van de jaren zeventig tot het begin van de jaren tachtig. In deze periode was de code verkrijgbaar onder de BSD-licentie, zoals vele andere projecten van Berkeley.

Vanaf het midden van de jaren tachtig zijn er op basis van Ingres verschillende commerciële databases ontwikkeld, zoals Sybase, Microsoft SQL Server en PostgreSQL. Deze laatste twee zijn nu enkele van de meest populaire databases voor commerciële applicaties.

Eigenschappen[bewerken | brontekst bewerken]

Ingres voldoet aan de ACID-regels, zodat de database niet verstrikt kan raken in een situatie waarbij meerdere transacties tegelijk willen schrijven op een enkel tupel.

Versie 10[bewerken | brontekst bewerken]

Ingres 10 is op de markt gekomen op 12 oktober 2010.[2] Deze release is bedoeld als stand-alone product, niet als upgrade voor oudere versies. Er is vooral gesleuteld aan het transparant migreren vanuit andere databasetoepassingen. Deze versie is ondersteund door het bedrijf zelf.

Updates[bewerken | brontekst bewerken]

Aan versie 10 zijn enkele verbeteringen toegevoegd. Deze houden in dat er makkelijke migratie kan gebeuren vanuit MySQL, Oracle, SQL Server en Sybase. Hiervoor zijn zowel nieuws SQL-types, functies en synchronisatiemethodes toegevoegd. Ook worden er per gebruiker 'snapshots' genomen van deze database. Op deze manier kunnen er geen gebruikers geblokkeerd worden door query's van anderen. Enkel wanneer dezelfde rij tegelijk wordt aangepast zal er een blokkade voorkomen.[3]

Installatie[bewerken | brontekst bewerken]

Ingres kan als client of als server worden geïnstalleerd. Enkel de serverversie zal databases met zich geassocieerd hebben. De databases geassocieerd met deze servers kunnen wel bereikt worden via de clients.[4]

Een manier om te werken met Ingres is om clients te installeren op elke ervan gebruikmakende computer, die dan communiceert met de server, die geïnstalleerd staat op een van de servers van het bedrijf.

Een installatie kan gezien worden als een verzameling van serverprocessen, gedeeld geheugen en semaforen om te communiceren tussen processen. Je kan deze ook bekijken als een verzameling gegevens op een harde schijf die gebruikt kan worden om de server te verhuizen, of, in geval van nood, om de server opnieuw op te kunnen starten.

Identificatie van instanties[bewerken | brontekst bewerken]

Bij installatie zal een instantienaam en een aantal poortnummers worden bepaald. De instantienaam bestaat uit twee tekens en moet beginnen met een letter. Deze code zal gebruikt worden om te berekenen op welke poorten de Ingres Servers zal luisteren. Standaard zal er gebruikgemaakt worden van de code 'll', welke zal luisteren naar de poorten 21064 tot 21071.

Het is ook mogelijk meer dan een enkele instantie op dezelfde computer te installeren. In dat geval moet elke instantie een andere, unieke naam krijgen, zodat alle communicatie met de juiste instantie kan verlopen. Het is wel mogelijk verscheidene namen te verbinden met dezelfde instantie. De gegevens van elke instantie worden van de andere gescheiden in een aparte mappenstructuur.

Naam Doel
II_SYSTEM De gedeelde bestanden en configuratie zijn hierin opgeslagen.
II_DATABASE De primaire gegevens van de instantie zijn hier opgeslagen (de databases zelf).
II_CHECKPOINT Dit wordt gebruikt om reservekopieën (back-ups) op te slaan
II_JOURNAL Hier worden de verschillende transacties opgeslagen, zodat gecontroleerd kan worden wie wat heeft toegevoegd en om back-ups te maken.
II_DUMP Alle 'dumps' kunnen hier worden gemaakt zodat back-ups en herstel van de database kan worden uitgevoerd.
II_WORK Hier worden tijdelijke bestanden opgeslagen, tijdens het uitvoeren van query's op de server.

Databases[bewerken | brontekst bewerken]

In één installatie van Ingres Database kunnen verschillende databases aanwezig zijn, die ook simultaan kunnen worden gebruikt. Dit aantal kan gelimiteerd worden in de configuratie van de server. Deze databases zijn niet beperkt in groei; ze mogen groter worden totdat de harde schijf waar de installatie zich bevindt vol raakt. De installatie zelf maakt ook gebruik van databases om zichzelf te configureren.[4]

Meerdere datalocaties[bewerken | brontekst bewerken]

Als het gaat om belangrijke data is het nuttig om de informatie op meerdere locaties tegelijk op te slaan. Standaard zal de data worden opgeslagen in II_DATABASE, maar er kan ook gebruikgemaakt worden van de andere paden die voor Ingres gedefinieerd zijn.

Publiek/Privaat[bewerken | brontekst bewerken]

De databases kunnen bij het aanmaken zowel publiek als privaat zijn gespecificeerd. Publiek zal ervoor zorgen dat elke verbonden Ingres-gebruiker over de database kan beschikken tenzij specifiek geweigerd; private databases zijn alleen toegankelijk indien uitdrukkelijk toegestaan.

Unicode[bewerken | brontekst bewerken]

Databases kunnen specifieke tekencoderingen gebruiken, zodat niet de volledige Unicode-tekenset hoeft te worden ondersteund, maar enkel de subset die nodig is voor de database. Dit is om de database niet onnodig groot te maken.

Gedistribueerde databases[bewerken | brontekst bewerken]

Er kan gebruikgemaakt worden van databases die verdeeld zijn over verschillende servers. Dit gebeurt via de IngresSTAR[5] server. Deze ondersteunt zowel gedistribueerde opslag als toegang en verwerking.

Het gedistribueerde gebruik is volledig transparant voor de gebruikers, maar zal wel zorgen voor beperkingen in het gebruik van query's.

Externe link[bewerken | brontekst bewerken]