Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

Text bestanden en gewone database

Anoniem
None
15 antwoorden
  • Bij gegevensverwerking, wanneer pas je tekst bestanden toe als soort van 'database' en waneer een echte mysql/postgresql etc database
    het gaan om 2 velden in een 'tabel'
    in een text bestand gescheiden met een ;

    hoeveel regels zijn er eigelijk toegstaan in een text bestand wil je geen echte database willen toepassen?
  • Een tekstbestand is veel gevoeliger voor beschadiging, en het werkt trager. Maar dat merk je pas bij grotere databases. Er wordt wel een grens aangehouden van 1000 records of zo. Het hangt ook een beetje van de omstandigheden af. Hoe bedrijfszeker moet het zijn etc.
  • Bedenk je ook hoevaak je de gegevens gaat wijzigen (en door wie) en op welke verschillende manieren je de data gaat opvragen (selecties, sorteringen).

    Als het alleen gaat om recht-toe-recht-aan inlezen van een bulk vaste data, dan volstaat een tekstbestand idd vaak ook. Maar hoe meer je te maken krijgt met eerdergenoemde zaken, hoe meer een database zich leent voor de taak.

    Een rule of thumb heb ik niet voor je.
  • bedankt voor het reageren!
    er zullen wellicht meerdere mensen tegelijkertijd deze tekstbestanden aan gaan roepen.
    dat kan gebeuren wanneer men dingen wil gaan wijzigen in de bestanden
    of wanneer er een zoekactie is gestart naar bepaalde gevraagde regels binnen in de tekstbestanden
    je zoekt via php naar overeengekomen woorden in het bestand en dat word op het scherm getoont … dat soort acties dus.
  • ondanks dat gaat het maar om 2 soorten gegevens in de bestanden , gescheiden door ;

    Variabele 1; variabele2, variabele3, variabele4;

    en ga zo maar door
    maarja wanneer er samen meot worden gewerkt zou het denk ik missscien fout gaan als er dingen worden gewijzigd
  • Je moet de bestanden natuurlijk wel (f)locken voor je gaat wijzigen. Maar het blijft oppassen met race conditions.
  • wat zijn race conditions en zou je tekst database aanraden in deze situatie ?
  • Ik zou in dit geval niet beginnen aan een eigen textdatabase. De dingen die je wil, daar is een database juist voor ontworpen en deze neemt alle locking zorgen voor je weg. Bovendien is het zoeken door en sorteren op gegevens ook eenvoudiger.
    Ik raad dus aan om een database te gebruiken. Overigens zou je (misschien) ook gebruik kunnen maken van sqlite (http://www.sqlite.org/) als je niet de beschikking hebt over een dbserver; even nakijken in je php configuratie cq navragen bij je hoster.
  • het is onderdeel van m'n afstuderen en ik heb al aangegeven dat het systeem misschien vertraagd zou kunnen worden als deze tekstbestanden met de tijd steeds groter worden, maar als tegenargument krijg ik dat dat in de praktijk wel mee zal vallen.
    En ook vind ik dat het bij dataopslag ook mis zou kunnen gaan -datacorruptie bijvoorbeeld- maar ik krijg weer als tegenargument dat dat ook met databases het geval zou kunnen zijn.
    En wie weet wat er allemaal mis kan gaan wanneer er meerdere gebruikers tegelijkertijd in de tekst databases zitten te werken en dingen zitten aan te passen

    Maar het lijkt mij eigelijk dat je bij databases meer controlle hebt op de data dan met tekst databases.
    Daarbij is er (niet door mijzelf maar door degene die liever met tekst bestanden werkt) al een soort van zoekfunctie in perl ontworpen om de tekstbestanden te doorlopen op overeenkomsten met gebruikersinvoer.

    Aangezien ik eigelijk altijd met databases aan de slag ben gegaan en nooit een tekst database heb gehad moet ik zelf ook naar goede argumenten zoeken om toch liever voor een database te kiezen, alleen ken ik de verdere nadelen aan tekst databases nog niet voldoende.

    En degene die liever met tekst bestanden werkt is nogal vasthoudend aan de eigen ideeen.
  • Een race condition ontstaat wanneer twee (of meer) mensen tegelijkertijd hetzelfde gaan doen. De ene opent het bestand, en gaat het vervolgens locken. In de tussentijd kunnen anderen het bestand echter nog steeds benaderen. Waardoor er toch twee mensen tegelijkertijd de bestanden proberen te wijzigen. Met mogelijke corruptie van data tot gevolg.

    Als je in perl werkt, kun je ook eens kijken naar DB::csv. Daarmee kun je csv (tekst) bestanden benaderen als alsof het een sql database is.

    Als studieobject is platte tekst natuurlijk wel interessant. Je leert er waarschijnlijk best veel van. Juist door de bestaande beperkingen en gevaren. En vooral ook kijken naar principes als ACID en transacties.

    Kijk ook eens naar DBM.
  • bedankt voor de tips !![quote:08e1348183="gerben"]ACID
    DBM.[/quote:08e1348183]
    waar staan ze voor ?
  • Wel eens van google gehoord? ;)

    Bijvoorbeeld:
    http://www.unix.org.ua/orelly/perl/perlnut/ch12_01.htm
    http://databases.about.com/od/specificproducts/a/acid.htm
  • daarom vraag ik het juist, google geeft diverse en verschillende zoekresultaten terug bij dit soort afkortingen, wist ff niet meer waar ik het zoeken moest
    uitgetypte afkortingen helpen beter :P
  • [quote:4b54664114="sjemmie"]het is onderdeel van m'n afstuderen en ik heb al aangegeven dat het systeem misschien vertraagd zou kunnen worden als deze tekstbestanden met de tijd steeds groter worden, maar als tegenargument krijg ik dat dat in de praktijk wel mee zal vallen.
    [/quote:4b54664114]
    [quote:4b54664114="sjemmie"]
    En ook vind ik dat het bij dataopslag ook mis zou kunnen gaan -datacorruptie bijvoorbeeld- maar ik krijg weer als tegenargument dat dat ook met databases het geval zou kunnen zijn.
    [/quote:4b54664114]
    Corruptie die optreedt vanwege falende hardware daar kun je softwarematig weinig aan doen.
    Bij een echte relationele database moet ACID er voor zorgen dat hoe dan ook de database altijd "correct" blijft ongeacht wat er gebeurt (bijv. applicatiecrash)
    Atomiciteit
    Consistentie
    Integriteit
    Duurzaamheid
    [quote:4b54664114="sjemmie"]
    En wie weet wat er allemaal mis kan gaan wanneer er meerdere gebruikers tegelijkertijd in de tekst databases zitten te werken en dingen zitten aan te passen

    Maar het lijkt mij eigelijk dat je bij databases meer controlle hebt op de data dan met tekst databases.
    [/quote:4b54664114]
    Inderdaad, je moet dit soort problemen met je eigen formaat dus allemaal zelf implementeren, terwijl als je gebruik maakt van een bestaande database het algoritme al geimplementeerd is.
    [quote:4b54664114="sjemmie"]
    Daarbij is er (niet door mijzelf maar door degene die liever met tekst bestanden werkt) al een soort van zoekfunctie in perl ontworpen om de tekstbestanden te doorlopen op overeenkomsten met gebruikersinvoer.[/quote:4b54664114]
  • bedankt voor alle reacties

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.