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

SQL - dubbele gegevens

marientje
6 antwoorden
  • hallo allemaal,

    even een vraagje

    ik heb op school een toets over SQL maken -> query maken etc.
    maar ik kreeg een tabel 'klanten', waarin oa de volgende kolommen in voorkwamen: voornaam, tussenvoegsel, achternaam, volledigenaam
    dus bijv: Jan,(leeg),Janssen, Jan Janssen

    maar valt dit niet onder 'dubbele gegevens' ?
    je hebt de voornaam achternaam en dan ook nog eens een keer apart de volledige naam?

    als dit inderdaad het geval is, kan je dit dan onderbouwen met iets uit een boek of van internet, want een welles nietes discussie voeren met die docent heeft geen zin, ik heb dus 'harde feiten' nodig
  • Herhaling van gegevens leidt altijd tot vervuiling van de database. Je kunt bijvoorbeeld een rij krijgen met jan, jansen, jan janssen. De tweede mist een s, de derde niet. Dit is een ander record dan wat jij opgeeft. Zoek je nu op jan janssen, dan krijg je twee resultaten, die eigenlijk hetzelfde moeten zijn.
  • Naast vervuiling zit er ook het nadeel van het onnodig groot maken van een database. Zeker bij grote databases met miljoenen records kunnen dit soort grappen zorgen voor onnodige ruimtebeslag en performanceverlies. Overigens zie ik dit soort grappen geregeld bij databases in Access die op de werkvloer worden bijgehouden, vaak vindt men zo'n extra veld handiger dan in een formulier/query even netjes de twee losse velden samen te voegen.

    In dit artikel vindt je de nodige theorie voor het opzetten van een database:

    [quote:f693c3dd42]Elk gegeven wordt op slechts één plaats in één tabel vast gelegd, en wel op het juiste daartoe bestemde niveau.[/quote:f693c3dd42]

    [quote:f693c3dd42]Afgeleide gegevens die nodig zijn voor beheer van de database, het functioneren van de omgeving (het programma) waarin de database wordt gebruikt of voor analysedoeleinden en (dus) uit de tabellen kunnen worden afgeleid, worden niet in de database opgenomen.
    [/quote:f693c3dd42]

    Lijkt me duidelijk dat jouw case dus niet kan. Als dit een vakdocent op het gebied van databases is, dan moet hij gauw eens naar een opfriscursus. Dit was namelijk een van de eerste dingen die ik enige tijd geleden leerde op een beginnerscursus MS Access.
  • dank je voor jullie reacties,
    tja mijn docent is een geval apart
    hij was elektromontuer, werd wiskunde docent en langzamerhand ook nog informaticadocent, en zoals elke leraar weet hij het beter

    dank zij zijn 'grap' had ik een 4,8, de opdracht was een query te maken die waarvan de uitkomst gelijk was aan wat je op een blaadje al kon zien; je moest dus alleen zelf query's maken.
    de uitkomst was telkens een volledige naam, en ik zocht me rot om er achter te komen hoe je gegevens kan combineren tot een naam, ik kon me niet herinneren dat ooit te hebben gehad, maar wat bleek, er zat een kolom volledige naam helemaal achteraan in de tabel, hadk nog een paar minuten om het nog iets te maken.
    want de opbouw was zoiets als dit:
    1 jan janssen woonplaats bla bla gegeven3 volledigenaam
    2 piet van pieterz woonplaats bla bla gegeven3 volledigenaam

    dus op het eerste gezicht leek me dat er geen kolom was waar de volledige naam is stond en probeerde dus de achternaam en de voornaam te combineren, maar is dat trouwens mogelijk, dat je twee verschillende gegevens uit de tabel tot een resultaat samen voegt; zoiets als get voornaam + get achternaam = samengesteldeuitkomst, bijvoorbeeld <- kverzin maar iets?
  • dat je de laatste kolom niet ziet zegt waarschijnlijk meer over jezelf dan over de leraar, maar goed…

    2 strings aan elkaar plakken kan maar hangt af van de taal waarin je werkt:

    MySQL kent CONCAT: SELECT CONCAT(first_name, second_name) FROM users;

    Algemeen SQL kent de || -operator daarvoor maar die werkt dan weer niet met MySQL.

    PHP kent de . voor string-concatenatie;

    Java kent gewoon de + daarvoor.

    Het is dus afhankelijk van de taal waarin je werkt. Misschien moet je je eerst eens wat meer verdiepen in SQL en wrappers daarvoor.
  • [quote:915546b85b="marientje"]dat je de laatste kolom niet ziet zegt waarschijnlijk meer over jezelf dan over de leraar, maar goed…
    [/quote:915546b85b]
    :lol:
    ik zou het theoretisch kunnen hebben gezien
    maar het waren meer dan 30 kolommen en volledige naam was ong. nr. 29 ( letterlijk, niet als voorbeeld)
    en achternaam,voornaam tusselvoegsel stonden vooraan als nr 2,3 en 4.
    daarom keek ik er sowieso al overheen

    ook leek het me sterk dat er dubbele info in zou staan, dus theoretisch heb geef ik je ook wel gelijk, ik hád het kunnen zien

    en dat combineren hebben we nog nooit gehad…

Beantwoord deze vraag

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