Mysql

Inleiding Wat is een database? Openen van Mysql database administratie Tabellen en gegevens invoeren via Mysql

Inleiding

In dit hoofdstuk ga je leren wat een database is en welke begrippen daarmee samenhangen om uiteindelijk te kunnen werken met het programma Mysql.

Aan het einde van dit hoofdstuk :

  • Ben je bekend met de begrippen database, tabel/entiteit, veld/attribuut, sleutels en primaire sleutel/identifier.
  • Kun je een Mysql database maken.

De database

Start

Je hebt in je computer leven al veel met bestanden of documenten gewerkt. Microsoft Word ™, HTML-KIT ™, Firefox ™ zijn allen voorbeelden van documenten die programmacode bevatten die door het systeem zonder verdere bewerking uitgevoerd kunnen worden. Met deze programma's kun je documenten maken, wijzigen of lezen in een voor deze programma's geschikte structuur. De inhoud van deze documenten worden door de gebruiker van het programma aangemaakt. Een database is ook een document waarvan de structuur vooral gericht is voor de opslag van gegevens die een gelijke vorm hebben. Voorbeelden:

  • Voor een cd-verzameling heb je voor iedere CD in iedergeval: band/artiest, titel, release datum,uitgever
  • Accounts bij Facebook: Persoonsgegevens, foto's etc...
  • Bestellingen op het internet: klant, product, aantal, datum,...
Een database moet ook worden onsloten door een programma. Dit kan een programma op je eigen computer zijn b.v. Microsoft Access, maar het kan ook een service zijn die verleend wordt door een website applicatie die draait op een netwerkcomputer b.v. Facebook, Leerlingweb, Gmail.

Een database is dus een bestand waarin gegevens worden bewaard. Dit bestand heeft daarvoor een speciale structuur. Deze structuur is van belang om snel gegevens op te kunnen zoeken. Die structuur is te maken juist omdat de gegevens allemaal een gelijke vorm hebben.

Deze structuur kun je vergelijken met een ladenkast kunnen noemen. Om de ladenkast te ordenen gebruiken we ladenstickers. In technische termen noemen we dit tabellen. Ook kunnen we nog verder gaan in het ordeningsproces en een lade verder indelen in vakken, wat we hier velden noemen. De spullen die we in de vakken leggen noemen we dan gegevens.

Voor diegenen die wat visueler zijn aangelegd is hiernaast een afbeelding te zien van de verhouding van de begrippen. De database beslaat het hele plaatje en naarmate je dichter bij de kern komt, zal het begrip een beperktere reikwijdte hebben. Het organiseren van een database (vergelijk indeling kast) is van groot belang voor het snel kunnen opslaan en terugvinden van gegevens. Dit proces van zorgvuldig organiseren noemt men database modelleren. Voor je dit hoofdstuk verder bestudeert is het nodig om eerst het hoofdstuk database modelleren door te nemen en de daar aanwezige opdrachten te maken. Daar zie je dat een tabel overeenkomt met een entiteit en een veld met een attribuut.

Met deze begrippen hebben we een basis gelegd voor het introduceren van de programmeertaal Mysql.


Openen in Mysql

We gaan van start met het werken met Mysql databases. Mysql is een database structuur voorzien van een taal om deze database te bewerken. De commando's geschreven in mysql (structured query language) worden door een databasemagement programma uitgevoerd. Mysql wordt geleverd met een applicatie die als een service op een servercomputer wordt geplaatst. Er zijn echter ook (commandline) programma's die op een andere manier een Mysql database kunnen bewerken. Met Mysql commando's kunnen we databases, tabellen, velden en gegevens beheren. Om met Mysql te werken, moet de volgende link in de webbrowser intikken: http://websrv2021/phpmyadmin. (de link werkt alleen op school. Je zult thuis een eigen webserver voorzien van MySQL en PhP moeten gebruiken of installeren (b.v. xampp) ). Het onderstaande voorbeeld laat het beginscherm van phpmyadmin zien. Aan de linkerkant zie je verschillende namen staan. Dit zijn de verschillende databases die zijn aangemaakt. De getallen tussen de ronde haakjes geven aan hoeveel tabellen deze database bevat. Als voorbeeld hebben we de database garagebedrijf geselecteerd, deze database bevat 6 tabellen volgens de afbeelding.

Door op de link garagebedrijf te klikken, komen we volgens de afbeelding uit de eerste paragraaf uit bij de namen van de tabellen.

Nu zie je aan de linkerkant de tabelnamen staan. De gedetailleerde omschrijving staat aan de rechterkant. Het rechtermenu is telkens een detaillering van het linkermenu.

Klik nu eens op een tabelnaam aan de linkerkant. Je ziet dan rechts de inhoud van deze tabel.

Opdrachten
  1. Start phpmyadmin en bekijk de opbouw van databse "garagebedrijf" voor het bedrijf Nieuwenhuis. Vergelijk dit met het entiteit relatie model dat je in het hoofdstuk database modelleren hebt gemaakt. Maak een schema waarin je de databasenaam, tabel- en veldnamen koppelt aan de termen database, entiteit en attribuut.

Tabellen en gegevens invoeren

Het is natuurlijk veel leuker om zelf aan de slag te gaan met het opzetten van een database en het invoeren van gegevens. In het begin van het programma phpmadmin kun je een database aanmaken. Kijk of je hetzelfde scherm (zoals hieronder) ook kunt tonen op je eigen beeldscherm.

Vervolgens klik je op de aangemaakte database en geef je aan hoeveel tabellen je gaat aanmaken. In het voorbeeld moet de tabel cursist gemaakt worden. Deze bestaat uit drie veldnamen. Deze stap (het aanmaken van tabellen) kun je meerdere malen herhalen al naar gelang de gewenste structuur.

Direct na het invullen van een tabelnaam wordt gevraagd de velden te definieren. In dit schema zal phpmyadmin je nog meer vragen gaan stellen, waar we even nadruk leggen op bepaalde punten. Deze zijn van belang als je straks zelf tabellen gaat maken. In het voorbeeld hieronder is te zien dat er drie veldnamen worden ingevoerd: cursistid, cursistnaam en cursistadres. De andere opties zijn waarschijnlijk nog nietszeggend. De belangrijkste opties worden toegelicht. Als er niets vermeld staat, kun je het betreffende veld leeg laten zoals hieronder in het voorbeeld. Bekijk de afbeelding goed en lees de beschrijving in de onderstaande tabel.

bv. primary
Optie Omschrijving Voorbeeld (indien nodig) Opmerkingen(indien nodig)
Veld geef veldnaam op. (gebruik geen spaties!) bv. cursistid
gebruik duidelijke en korte namen en nooit spaties!
Type Geef datatype op. (Heb je gehad met php) Vele opties. Gebruik de belangrijkste die hier staan vermeld.
Lengte Hoeveel posities mag het woord en/of getallen innemen? bv. 3 (betekent bv. in volgorde: php of 483) Sommige typen kennen beperkingen!
Null Mag het veld leegblijven?
Index Leeglaten of primary. Primary betekent defineren als identifier (meerdere attributen kunnen same de identiteit van een record vastleggen b.v in de tabel leerlingklas in database docentenoog)! Unique: Er mogen geen records zijn met een gelijke inhoud voor dit veld. Vul alleen getallen in.
Type mag alleen INT zijn.
A_I Staat voor automatic increment (automatisch ophogen) Als type INT is geselecteerd en INDEX primary.
Getal zal dus automatisch worden opgehoogd.
Kan maar 1 veld zijn in de tabel.

Start phpmyadmin en maak de volgende opdrachten.

Opdrachten
  1. Je hebt enkele typen gezien zoals INT en VARCHAR. Zoek op internet (bv. op http://dev.mysql.com/doc/refman/5.0/en/index.html) of er beperkingen zijn aan de lengte en de waarde en zo ja, welke?
  2. Het volgende voorbeeeld laat 3 velden zien uit de tabel cursist. Wat betekent die streep? Waarom zijn cursistnaam en cursistadres hier varchar? Waarom mogen deze velden niet NULL zijn?
  3. Maak tot slot een database aan genaamd "test<eigen naam>" (b.v. testJohnVal) en zet daarin de tabelnamen die in de afbeelding van opdracht 3 staan. Stel de juiste type in en test uiteindelijk of je gegevens in kunt voeren.