interne structuur van een database

Pagina: 1
Acties:

  • MicroWhale
  • Registratie: Februari 2000
  • Laatst online: 08:16

MicroWhale

The problem is choice

Topicstarter
In het kader van een product wat ik aan het ontwikkelen ben, moet ik weten hoe de interne structuur van een database eruit ziet. Dus hoe tabellen, indices, constraints enzo opgeslagen worden om deze op een efficiënte manier weer te gebruiken. Dit is niet nodig omdat ik het graag na zou willen maken, maar meer om te zien hoe het in elkaar zit en om dit te analyseren.

Ik heb al heel wat rondgekeken op internet en kan niet echt een uiteenzetting vinden die me uitlegt hoe het precies in elkaar zit. Ik kan me ook voorstellen dat bedrijven zoals oracle niet prijs willen geven welke technieken hiervoor precies gebruikt worden omdat dat de kern van hun business is. Ik zoek daarom naar een algemene uiteenzetting van welke technieken er gebruikt worden om bovenstaande informatie op te slaan. Weet iemand van jullie waar ik deze informatie kan vinden?

Het enige belangrijke is dat je vandaag altijd rijker bent dan gisteren. Als dat niet in centen is, dan wel in ervaring.


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 14:17

mulder

ik spuug op het trottoir

Je zou allicht kunnen beginnen met een Wiki :)

oogjes open, snaveltjes dicht


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Hoewel er een flinke "common-base" zal zijn, zijn er bij iedere DB wel een aantal verschillen en is er niet een "dé" manier is om gegevens op te slaan. Heb je het over "generieke" RDBM-sen zoals MySQL, MSSQL enzovoorts, of over specifieke databases voor specifieke doeleinden? Heb je het over "platte" databases, relationele, multi-dimensionele, hiëarchische databases of...?

Kijk misschien hier even: http://en.wikipedia.org/wiki/Database#Database_Internals

/edit: Damn you Don :P

Overigens: Waarom zou je moeten weten voor je product hoe een DB intern werkt? Het is toch juist goed dat je je daar niet druk over hoeft te maken als je met een DB aan te slag gaat? Zou wat worden...

[ Voor 41% gewijzigd door RobIII op 18-04-2006 14:55 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • MicroWhale
  • Registratie: Februari 2000
  • Laatst online: 08:16

MicroWhale

The problem is choice

Topicstarter
ik wil geen tabellen ofzo maken, ik wil weten hoe een database intern werkt. Over hoe eea naar de gebruiker toe werkt, weet ik voldoende.

Die wiki geeft al een aardig beeld over hoe die info is opgeslagen. Het lijkt erop dat (voor bijvoorbeeld een RDBMS) alle informatie opgeslagen wordt in bestanden waarop dan, afhankelijk van het model, een binary-, hash- of anderssoortige tree op gemaakt wordt om hier snel informatie uit te halen.

Ik had verwacht dat er misschien één bepaald model 'standaard' zou zijn en dat hierin dan een aantal vaste technieken gebruikt werden.

Het enige belangrijke is dat je vandaag altijd rijker bent dan gisteren. Als dat niet in centen is, dan wel in ervaring.


  • MicroWhale
  • Registratie: Februari 2000
  • Laatst online: 08:16

MicroWhale

The problem is choice

Topicstarter
Overigens: Waarom zou je moeten weten voor je product hoe een DB intern werkt? Het is toch juist goed dat je je daar niet druk over hoeft te maken als je met een DB aan te slag gaat? Zou wat worden...
hierbij neem je aan dat ik een product bouw OP / OM een bestaande database...

Het enige belangrijke is dat je vandaag altijd rijker bent dan gisteren. Als dat niet in centen is, dan wel in ervaring.


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Logos schreef op dinsdag 18 april 2006 @ 15:06:
[...]


hierbij neem je aan dat ik een product bouw OP / OM een bestaande database...
Ja, want dat geef je zelf aan:
Logos schreef op dinsdag 18 april 2006 @ 14:47:
Dit is niet nodig omdat ik het graag na zou willen maken, maar meer om te zien hoe het in elkaar zit en om dit te analyseren.
Hieruit haal ik toch écht dat je het niet wil namaken (en dus blijft "op/om" over...)

De informatie uit die WIKI is overigens véél te summier om er iets zinnigs over te kunnen zeggen. Zo worden tabellen lang niet altijd in losse bestanden opgeslagen, en zo weet je nog steeds niet hoe een index wordt opgeslagen (en al helemaal niet op "binair bestandsniveau", waar het juist het belangrijkst is om disk I/O tot een minimum te beperken) en zo zijn er nog -tig voorbeelden van dingen die je dient te weten als het om "interne structuur van een database" gaat.

Kortom: Je vraagstelling is onduidelijk. Mogen we misschien weten waarom je precies wil weten hoe het "onder de motorkap" werkt? Dan kunnen we je waarschijnlijk al beter in de juiste richting wijzen. Mijn idee so far is dat je iets aan het onderzoeken geslagen bent wat of totaal overbodig is om te weten, of waarvan je geen idee hebt wat het is.

[ Voor 10% gewijzigd door RobIII op 18-04-2006 15:12 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Ik ben op dit moment veel aan het lezen over concurrency control in databases. Een van de boeken waar ik tegen aan gelopen ben is: Database Management Systems
Ik vind dit zelf een heel aardig boek waarin veel verschillende onderwerpen redelijk goed aan bod komen. Verder is het boek goed te lezen (dus niet te droog).

en verder:Expert One on One Oracle. Ook een zeer uitgebreid boek over Oracle zijn interne structuren.

Maar ik denk dat iedere database leverancier op zijn eigen manier een database in elkaar zet. Als iedereen hetzelfde er mee om zou gaan, zou er ook geen behoefte zijn naar zoveel verschillende databases.

[ Voor 21% gewijzigd door Alarmnummer op 18-04-2006 15:16 ]


  • MicroWhale
  • Registratie: Februari 2000
  • Laatst online: 08:16

MicroWhale

The problem is choice

Topicstarter
RobIII schreef op dinsdag 18 april 2006 @ 15:10:
[...]

Ja, want dat geef je zelf aan:

[...]

Hieruit haal ik toch écht dat je het niet wil namaken (en dus blijft "op/om" over...)

De informatie uit die WIKI is overigens véél te summier om er iets zinnigs over te kunnen zeggen. Zo worden tabellen lang niet altijd in losse bestanden opgeslagen, en zo weet je nog steeds niet hoe een index wordt opgeslagen (en al helemaal niet op "binair bestandsniveau", waar het juist het belangrijkst is om disk I/O tot een minimum te beperken) en zo zijn er nog -tig voorbeelden van dingen die je dient te weten als het om "interne structuur van een database" gaat.

Kortom: Je vraagstelling is onduidelijk. Mogen we misschien weten waarom je precies wil weten hoe het "onder de motorkap" werkt? Dan kunnen we je waarschijnlijk al beter in de juiste richting wijzen. Mijn idee so far is dat je iets aan het onderzoeken geslagen bent wat of totaal overbodig is om te weten, of waarvan je geen idee hebt wat het is.
iets breder denken: het zou ook om iets compleet nieuws kunnen gaan, dus nog een optie. dit is meteen de reden waarom ik er niet veel over kwijt wil/kan.

Ik ben hier al langer mee bezig, maar ik heb nog nooit onderzocht of hetgeen ik heb gemaakt al ooit verzonnen was. Nu het concrete vormen aan begint te nemen, wordt dit soort onderzoek steeds meer noodzakelijk. Er is een mogelijkheid dat het zich al in een DBMS bevindt, maar dat kan ik dus blijkbaar niet echt makkelijk onderzoeken.

Het enige belangrijke is dat je vandaag altijd rijker bent dan gisteren. Als dat niet in centen is, dan wel in ervaring.


  • MicroWhale
  • Registratie: Februari 2000
  • Laatst online: 08:16

MicroWhale

The problem is choice

Topicstarter
Alarmnummer schreef op dinsdag 18 april 2006 @ 15:14:
Ik ben op dit moment veel aan het lezen over concurrency control in databases. Een van de boeken waar ik tegen aan gelopen ben is: Database Management Systems
Ik vind dit zelf een heel aardig boek waarin veel verschillende onderwerpen redelijk goed aan bod komen. Verder is het boek goed te lezen (dus niet te droog).

en verder:Expert One on One Oracle. Ook een zeer uitgebreid boek over Oracle zijn interne structuren.

Maar ik denk dat iedere database leverancier op zijn eigen manier een database in elkaar zet. Als iedereen hetzelfde er mee om zou gaan, zou er ook geen behoefte zijn naar zoveel verschillende databases.
Thomas Kyte... die vent is echt vet actief. Misschien moet ik hem toch maar eens een mailtje sturen. :)

Ik denk dat je op dat laatste punt wel gelijk hebt ja, het ligt er maar net aan wat voor data je op welke manier nodig hebt. Het is dan beter om bekende technieken dynamisch beschikbaar te maken zodat het systeem daar de beste uit kan kiezen.

bedankt voor de tips

Het enige belangrijke is dat je vandaag altijd rijker bent dan gisteren. Als dat niet in centen is, dan wel in ervaring.


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 14:02
De basis van practisch elke database zijn B-trees of B+ trees. Andere datastructuren (zoals hash tables en skip lists) zijn vaak experimenteel.

Hiermee worden zowel tabellen als indices geïmplementeerd. Om constraints toe te passen worden bestaande of nieuwe indices gebruikt. Views worden meestal geïmplementeerd door de query plans op te slaan (en niet door de data in een view expliciet op te slaan; dit kan wel, maar maakt de database veel groter en updates van de echte tables trager).

In de wijze waarop isolation en durability gegarandeerd worden zijn meer verschillen. Mogelijke technieken zijn journalling (wat op zichzelf lastig te combineren is met isolatie van concurrente transacties), versioning of een combinatie van beide. Op dit gebied zijn ook veel gepatenteerde technieken.

[ Voor 7% gewijzigd door Soultaker op 18-04-2006 16:11 ]


  • Sammy
  • Registratie: Maart 2000
  • Laatst online: 16-02 22:25
Heb net een vak aan de uni afgerond over precies dit onderwerp. Gebruikte boek Database System Implementation. Zeker een aanrader als je echt wilt weten hoe het zit, van disk-controller tot experimentele index-structuren. Overigens is soultaker redelijk spot-on, hoewel multi-dimensional indices met andere technieken ook steeds meer in opkomst zijn IMO (R-trees ed.).

  • MicroWhale
  • Registratie: Februari 2000
  • Laatst online: 08:16

MicroWhale

The problem is choice

Topicstarter
pffff dat wordt veel lezen. En de prijzen van die boeken zijn ook niet om over naar huis te schrijven :'(
hoe groot is de kans dat die boeken ook in de bieb te vinden zijn? ik schat vrijwel 0.

voor dat laatste (2-dimensionale indices) gebruiken we hier zelf quad-trees. Die werken op zich prima, al hebben ze niet de vrijheid en flexibiliteit van R-trees. ook hiervoor bedankt :)

Het enige belangrijke is dat je vandaag altijd rijker bent dan gisteren. Als dat niet in centen is, dan wel in ervaring.


  • Sammy
  • Registratie: Maart 2000
  • Laatst online: 16-02 22:25
je kiest ook wel even een onderwerp uit ;)
En de prijzen van die boeken zijn ook niet om over naar huis te schrijven :'(
Special voor jou dan . Hier bestel ik mijn boeken vaak, 2e hands, alleen maar positieve ervaringen.
voor dat laatste (2-dimensionale indices) gebruiken we hier zelf quad-trees. Die werken op zich prima, al hebben ze niet de vrijheid en flexibiliteit van R-trees. ook hiervoor bedankt :)
Ik geloof dat Postgres een heel aardige implementatie van R-trees heeft.

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 10-12-2025
Eerlijk gezegd: de kosten van de boeken zijn praktisch 0, in vergelijking met de waarde die jouw tijd heeft als jij goed genoeg bent om met iets revolutionairs op database gebied te komen.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • mOrPhie
  • Registratie: September 2000
  • Laatst online: 20-02 15:15

mOrPhie

❤️❤️❤️❤️🤍

Ik wil nog even toevoegen dat het voor jezelf heel verstandig is eerst 'ns te bedenken welke onderwerpen je wilt gaan onderzoeken. "Hoe ze worden opgeslagen en vervolgens weer efficient worden gebruikt" is gewoon veel te globaal. Bij opslaan heb je te maken met datatypes, character sets, pagesizes, *trees en bij het ophalen heb je concurrency, locking (readwrite), queueing. En ga zo maar door. Dus voordat je in een boek duikt is het verstandig uit te zoeken welk onderwerp je je op wil gaan richten, zodat je per boek in de index kan zien of dat onderwerp wordt aangesneden. Dat scheelt je geld en een boel leeswerk. Voorbereiden is de helft van de tijd. ;)

Een experimentele community-site: https://technobabblenerdtalk.nl/. DM voor invite code.


  • ATS
  • Registratie: September 2001
  • Laatst online: 12-02 13:46

ATS

Logos schreef op dinsdag 18 april 2006 @ 16:17:
hoe groot is de kans dat die boeken ook in de bieb te vinden zijn? ik schat vrijwel 0.
Mwah, elke zichzelf respecterende universiteit die informatica aanbiedt zal dat wel in zijn bibliotheek hebben lijkt me zo. In een algemene, openbare bibliotheek geef ik je inderdaad niet veel kans.

My opinions may have changed, but not the fact that I am right. -- Ashleigh Brilliant

Pagina: 1