Wat is een database?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Arjan Kapteijn

Arjan Kapteijn

25/10/2007 16:32:00
Quote Anchor link
Ja, denk daar maar eens over na... ik probeer mensen die er geen verstand van hebben uit te leggen wat een database is maar ik vind het nog knap lastig...

7.0 Werken met databases

Stel je bent bezig met het ontwikkelen van een webwinkel, waar haal je dan die producten vandaan? Een hele grote array, met daarin meerdere kleine arrays is natuurlijk niet de meest ideale oplossing. Het vergt een hoop tijd om zodoende je producten te kunnen onderhouden en zeg nou eens eerlijk, echt eenvoudig werkt dat met die arrays niet.

Gelukkig is het vrij eenvoudig om PHP te koppelen aan een database, dat kan Microsoft SQL, Oracle, PostgreSQL of MySQL zijn. Maar via ODBC kan je hem ook aan Microsoft Access hangen... van mijn part hang je hem aan IBM DB2 of DB++... de mogelijkheden zijn eindeloos. Een van de betere databases is zonder meer PostgreSQL maar de meest gebruikte database is toch wel MySQL. In mijn handleiding ga ik verder met MySQL maar eerst ga ik eens duidelijk proberen te maken wat een database is.

7.1. Wat is een database?

Een database word gebruikt om op een gestructureerde manier gegevens op te slaan zodat we daar vervolgens informatie uit kunnen halen. Je kunt een database vergelijken met een Microsoft Excel bestand. De database bestaat uit meerdere tabellen, de Excel werkbladen, met daarin meerdere kolommen. Vervolgens word daar de gegevens aan toegevoegd als een nieuwere rij.

Die kolommen met gegevens worden opgeslagen als een bepaald type, enkele van de meest gebruikte types: (moet nog uitleg bij)

- int,
- varchar
- text
- datetime
- enum & set

Waarom slaan we gegevens op in een database? Enkele voordelen (moet nog onderbouwd worden)

- Het is veiliger (Je kunt precies aangeven welke gebruiker welke rechten krijgt)
- Het is sneller
- Het is efficienter, met een goede database voorkom je dat gegevens dubbel opgeslagen worden (hoe schrijf je dat? Consistent toch?)
- eehmmm

Vervolgens wil ik een verwijzing maken naar http://www.phphulp.nl/php/tutorials/3/150/259/

Punt is, sommige dingen zijn zo standaard dat je er bijna niet meer bij nadenkt. Iemand nog suggesties?
 
PHP hulp

PHP hulp

30/04/2024 02:57:49
 
Jacco Engel

Jacco Engel

25/10/2007 16:34:00
Quote Anchor link
Je kunt een vergelijking trekken met een soort van archiefkast?
 
Robert Deiman

Robert Deiman

25/10/2007 16:40:00
Quote Anchor link
Je zegt niet wat een database is, maar je zegt wat je ermee kan.

Beter zou (denk ik) zijn:

Eeb database, (anders ook wel gegevensbank of databank genoemd) is een digitaal opgeslagen archief, ingericht met het oog op flexibele raadpleging en gebruik. Databases spelen een belangrijke rol voor het archiveren en actueel houden van gegevens bij onder meer de overheid, financiële instellingen en bedrijven, in de wetenschap, en worden op kleinere schaal ook privé gebruikt.

Een database is meer dan een gedigitaliseerd archief, een essentiële toevoeging is dat de gegevens in een database zodanig zijn opgeslagen dat deze gegevens optimaal doorzoekbaar zijn. Daarvoor worden gegevens bijvoorbeeld opgesplitst in (of uitgebreid met) onderdelen waarop (naar verwachting) gezocht zal worden, bijvoorbeeld persoonsgegevens kunnen worden opgesplitst in voornaam, tussenvoegsel, achternaam, adres, woonplaats, postcode, telefoonnummer etc. In het relationele model worden deze onderdelen in een aparte kolom gezet, maar wel in dezelfde rij, zodat het duidelijk is dat deze onderdelen bij elkaar horen. Soms is het praktisch om gegevens uit te breiden om de doorzoekbaarheid te vergroten, bijvoorbeeld door langere teksten in één of meerdere categorieën te zetten of er trefwoorden aan toe te kennen.

De doorzoekbaarheid van de gegevens wordt hier mee vergroot omdat bij zoekopdrachten als "toon alle personen met postcode tussen 3000 en 4000" alleen in het veld "postcode" hoeft te worden gezocht en alle andere gegevens niet geëvalueerd hoeven te worden. Er zijn nog meerdere methoden om de zoeksnelheid te vergroten.

(bron:wikipedia)
Jacco schreef op 25.10.2007 16:34:
Je kunt een vergelijking trekken met een soort van archiefkast?


Ja en nee.
Ja -> Het is inderdaad een manier om data te kunnen bewaren, maar -> Standaard is een database zelf NIET zo logisch geördend als een archiefkast. (database doorgaans op id)

Nee -> Zoeken in een archiefkast gaat maar op 1 type data. Of op naam (meestal) of op datum. Je hebt in een archiefkast niet op naam EN datum. Bovendien kan een database grote verschillende typen gegevens bevatten (gebruiker, winkelwagentje, rekeningen, e-mail enz.) waar dat bij archiefkasten of gescheiden is, of alles voor een user bij elkaar staat.
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
 
- wes  -

- wes -

25/10/2007 16:51:00
Quote Anchor link
Of trek een vergelijking met bijv telekekst oid. Iets wat iedereen wel kent. Ook geordernd , maar wel unique records als pagina te bereiken
 
Frank -

Frank -

25/10/2007 16:51:00
Quote Anchor link
Ik zou zeggen, pluis Wikipedia eens door en focus ook even op het begrip DBMS.
Quote:
A DBMS is a complex set of software programs that controls the organization, storage, management, and retrieval of data in a database.


Een vergelijking met Excel vind ik niet op zijn plaats, je mist daarin de structuur, het enkelvoudig opslaan van een gegeven en een vraagtaal om de gegevens weer op te halen. Het is een totaal andere toepassing.

ENUM en SET zijn slechte voorbeelden van datatypes, dat zijn al specifieke MySQL-datatypes. Een DECIMAL of FLOAT lijken mij handiger om te vermelden.

Dat je in het artikel met MySQL aan de slag gaat, is een prima keuze, maar zorg er wel voor dat je geen brakke/onmogelijke SQL gaat gebruiken. Een kleine tip over STRICT-mode kan wellicht geen kwaad, maar zal voor een beginner hocus pocus zijn.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
- SanThe -

- SanThe -

25/10/2007 16:54:00
Quote Anchor link
Ik zou voor de Wikipedia uitleg gaan in de post van Robert_Deiman. Die vergelijking met Excel is, wat mij betreft, onzinnig. Excel is een rekenblad. Dat er daarnaast ook enige database-achtige informatie in kan is eerder een (duur betaald) goedkoop aftreksel van een database.
 
Onbekend Onbekend

Onbekend Onbekend

25/10/2007 16:57:00
Quote Anchor link
ik wilde bijna al gaan typen omg n00b weet je wel wat google is? whehehe :P
 
Gerben Jacobs

Gerben Jacobs

25/10/2007 17:00:00
Quote Anchor link
Spiderpig schreef op 25.10.2007 16:57:
ik wilde bijna al gaan typen omg n00b weet je wel wat google is? whehehe :P


Ik zou het eigenlijk wel een slimme vraag vinden. Liever iemand die eerst het hele idee achter een database concept wil weten dan één of andere echte noob die zo maar wat doet en om de 2 seconden hier iets posts. Zouden meer mensen moet doen!
 
Arjan Kapteijn

Arjan Kapteijn

25/10/2007 17:02:00
Quote Anchor link
Het archiefkasten verhaal vind ik zelf niet echt zo'n goed idee, het maakt de situatie er niet eenvoudiger op. Ik denk dat ik het gewoon niet moet gaan vergelijken. Alhoewel dat van teletext mij ook wel aanspreekt, maar of dat het duidelijker maakt.

En Frank, ik wil ze gewoon nette query's aanleren. SELECT blabla FROM tabel WHERE blabla = 'test' dus ;). Ik heb voor MySQL gekozen omdat dat simpelweg meer gebruikt word op internet (kijk naar de voorbeeld scriptjes) en de meeste hosters bieden nog geen PostgreSQL.
 
Robert Deiman

Robert Deiman

25/10/2007 17:05:00
Quote Anchor link
Vergeet niet dat wat Arjan ook al zei he!! Het gaat er dus om om aan zogenaamde "noobs" (niets ten nadele van je studenten Arjan) uit te leggen wat een database precies is.
Google geeft wel definities, maar hij wil dus weten of zijn uitleg geschikt zou zijn voor leken op dat gebied. Ik denk van niet, omdat het eigenlijk niet de goede uitleg is. Maar het moet op een manier uitlegbaar zijn zodat iedereen het snapt. De opmerking Google vind ik dus eigenlijk op dit topic niet van toepassing.


Arjan Kapteijn schreef op 25.10.2007 17:02:
Het archiefkasten verhaal vind ik zelf niet echt zo'n goed idee, het maakt de situatie er niet eenvoudiger op. Ik denk dat ik het gewoon niet moet gaan vergelijken. Alhoewel dat van teletext mij ook wel aanspreekt, maar of dat het duidelijker maakt.

En Frank, ik wil ze gewoon nette query's aanleren. SELECT blabla FROM tabel WHERE blabla = 'test' dus ;). Ik heb voor MySQL gekozen omdat dat simpelweg meer gebruikt word op internet (kijk naar de voorbeeld scriptjes) en de meeste hosters bieden nog geen PostgreSQL.


Frank zegt toch ook dat op zich MySQL wel een goede keuze is ;) Is eigenlijk voor het eerst dat hij niet zegt dat je PostgreSQL moet gebruiken (of niet frank :P)

Maar kan je niet wat met de uitleg van Wikipedia? Eigenlijk is een database niets anders dan een grote verzameling gegevens, waar je door (indien een relationele database) heel gemakkelijk en snel in kan zoeken, en waarbij je geen redundante (dubbele) gegevens kan/ mag hebben, om ook de opslag zo klein mogelijk te houden.
Dus behalve dat je snel kan zoeken zijn het relatief ook kleinere bestandjes die je gebruikt voor je database (dubbele winst ;)) in vergelijking met bijvoorbeeld Excel, of nog erger een tekstbestand.
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
 
Arjan Kapteijn

Arjan Kapteijn

25/10/2007 17:07:00
Quote Anchor link
Vergis je er inderdaad niet in hoe moeilijk het is om mensen zonder voorkennis dit soort dingen uit te leggen :P.
 
Onbekend Onbekend

Onbekend Onbekend

25/10/2007 17:08:00
Quote Anchor link
maar google linkt naar pagina's waar op staan wat een database is, arjan is die pagina nou aan het maken :).. als hij dat niet doet kunnen wij ook niet vragen of hij weet wat google is
 
Frank -

Frank -

25/10/2007 17:11:00
Quote Anchor link
Er is voor het begrip 'database' geen goede vergelijking, het is een uniek product. Neem maar eens een datamodel met een stuk of 20 tabellen (dat is dus nog simpel en overzichtelijk) en zie de onderlinge relaties. Ik zou niet weten hoe je dit op een andere manier zou moeten doen, archiefkasten en Excel-sheets kunnen hier al niet mee uit de voeten.

En wat ik al zei, MySQL is een logische keuze als je kijkt naar het aanbod bij de hostingproviders. Ik ben alleen altijd wat bang voor de meest vreemde GROUP BY-queries en de MyISAM-engine die 100% onbetrouwbaar is. Daar zul je in 99,99% van de gevallen geen last van hebben, maar die ene keer dat je er wel last van hebt...

Please, please, please, een klein linkje naar de pgSQL-installer? ;)
 
Arjan Kapteijn

Arjan Kapteijn

25/10/2007 17:18:00
Quote Anchor link
Ik laat het 'een van de betere..' in ieder geval staan en een linkje is geen probleem ;).
 
Onbekend Onbekend

Onbekend Onbekend

25/10/2007 17:24:00
Quote Anchor link
ik dacht al: waaroms schrijft die n00b met een hoofdletter en ?, doen n00bs toch nooit.. xD
 
Frank -

Frank -

25/10/2007 17:24:00
Quote Anchor link
Toch nog even een kleine poging om pgSQL er door te drukken:
Het is eenvoudiger om van pgSQL naar MySQL over te stappen, dan andersom. In pgSQL wordt je gedwongen om correcte SQL te gebruiken en dit zal in 99 van de 100 gevallen ook in andere databases werken. Waaronder dus MySQL. (uitgezonderd de specifieke functies)

Ook het gebruik van pipes || om 2 waardes aanelkaar te plakken, werkt in MySQL, mits je de configuratie goed hebt ingesteld.

Wanneer je van pgSQL overstapt op MySQL, hoef je niks af te leren, alleen wat bij te leren (specifieke functies). Andersom zul je een hoop moeten afleren, dit geldt ook voor de overstap van MySQL naar vele andere databases. MySQL staat dingen toe die helemaal niet kunnen.

Een cursus die pgSQL gebruikt, is eenvoudig toe te passen op MySQL. In PHP zul je alleen wel de gigantische stap van mysql_functie_naam() naar pg_functie_naam() moeten maken... Tenzij je PDO gebruikt.

Succes!

Edit: Vergeet dit artikel niet wanneer je de cursus voor MySQL schrijft. Dan kun je deze valkuilen proberen te voorkomen.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
PHP erik

PHP erik

25/10/2007 19:09:00
Quote Anchor link
Misschien moet je eens kijken naar wat men noemt 'Logica'/Verzamelingenleer. Dus verzamelingen, relaties, dat soort dingen. A is element uit B. A is een deelverzamling van B. Etc. Want Logica is de basis van een database. Als je verzamelingen gaat maken en relaties gaat leggen dan zie je dat een tabel een verzameling is en een relatie een relatie tussen tabellen, en dan zie je ook het nut ervan. Ik zou er in ieder geval even naar kijken, misschien doe je wat inspiratie op.

Verder lijkt het mij belangrijk te kijken naar de doelgroep bij het schrijven van je verhaal. Bedenk dat er waarschijnlijk meer applicaties zijn die een database gebruiken dan websites. Als je het verhaal neutraal en hoogwaardig wil houden (m.a.w. als je ze iets universeels wil leren), dan kun je eigenlijk niet voor MySQL kiezen. Het ligt er dus een beetje aan wat je doel en doelgroep is.
Gewijzigd op 01/01/1970 01:00:00 door PHP erik
 
Klaasjan Boven

Klaasjan Boven

25/10/2007 19:12:00
Quote Anchor link
IK zou zeggen een bibliotheek met verschillende kasten (tabellen) verschillende manieren om de data te ordenen (auteur, Titel, kleur boek,enz..) en een bewaarder (de bibliothekaris) die doordat hij het zaakje handig heeft ingericht snel een boek of cd kan pakken(indexen)
Uiteraard kan een cd niet in een boekenkast of andersom, ja soms past het wel maar je vind het nooit terug( datatypes, constraints)
De bibliothecaris weet echter nog meer, hij weet ook welke boeken "bij elkaar" horen ( de koper van dit produkt kocht ook.... Oftewel een beetje het Foreign Key idee)
En de bibliothecaris is erg zuinig op zijn verzamelig en zorgt dat deze niet in de war raakt (datacorruptie voorkomen door constraints)

En dan pas ermee aan het werk want daar leer je het het beste van
 
Arjan Kapteijn

Arjan Kapteijn

25/10/2007 19:13:00
Quote Anchor link
Het doel is dat ze begrijpen wat een database is en er uiteindelijk ook eenvoudige dingen mee kunnen doen. Ze zijn op dit moment bezig met een webwinkel, dat ziet er dan ongeveer zo uit. Dat gehannes met arrays is natuurlijk niet handig dus de bedoeling is dat ze die producten gewoon netjes uit een tabel trekken. Wellicht zelfs een stapje verder en een formuliertje om producten toe te voegen, wijzigen en te verwijderen... maar dat is een beetje afhankelijk van persoon tot persoon.

Het zijn overigens op 2 of 3 man na jongens die 6 weken geleden nog geen regel PHP hebben geschreven.
 
PHP erik

PHP erik

25/10/2007 19:15:00
Quote Anchor link
Jongens van welk niveau & leeftijd? Ik denk dat MySQL wel een redelijke keuze is in dit geval als je let op de dingen die Frank zei.
 
Arjan Kapteijn

Arjan Kapteijn

25/10/2007 19:15:00
Quote Anchor link
4e jaars HBO'ers (Minor e-business), meeste dus ergens rond de 20~25.
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.