Redundancy Normaalvormen

Vergelijkbare documenten
SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd.

[TOETS SQL INLEIDING]

SQL datadefinitietaal

In deze appendix wordt bekeken wat er moet gebeuren voordat

Data Definition Language

Cursus Access voor Beginners Hoofdstuk 2

Normaliseren versie 1.1

Normaliseren voor Dummies

Sparse columns in SQL server 2008

Informatie & Databases

SQL manipulatietaal. We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database.

Query SQL Boekje. Fredrik Hamer

Workshop 3x. Normaliseren. Normaliseren. Hiëarchische database ODBMS. Relationele database. Workshop 14 oktober A. Snippe ICT Lyceum 1

12. Meer dan één tabel gebruiken en sub-queries

hoofdstuk 9 referentiële integriteit waarborgen overige constraints 9.1 Referentiële integriteit relationele databases 9.1

Het omzetten van een ER-diagram naar SQL

DATAMODEL SQL. Middelbare School. Versie 1.0 Datum 30 oktober 2010 Auteur Mark Nuyens, studentnummer: Groep TDI 1

Vragen hoofdstuk 1: Resultaat

Datamodelleren en databases 2011

Databases - Inleiding

Entiteit Zaken en gebeurtenissen waarvan gegevens moeten worden vastgelegd worden een entiteit genoemd: b.v. mens, voorstelling, auto.

SQL STATEMENTS. Deze kolom kan grote stukken tekst aan en is bedoeld om tekst erin de plaatsen. Geheel getal, bijvoorbeeld 8, 63, 835 NUMERIC

Structured Query Language (SQL)

databases & SQL - antwoorden

DBMS. DataBase Management System. Op dit moment gebruiken bijna alle DBMS'en het relationele model. Deze worden RDBMS'en genoemd.

2 Specificatie In deze tabel staat voor welk crebotraject de leereenheid is gemaakt Crebotraject code: 95311

6. Het maken van een database

Een database voor MEDIAGROEP DE CASE OBJECTTYPEN EN LABELTYPEN

9 Werken met meer tabellen (zie ook query s)

2 Specificatie In deze tabel staat voor welk crebotraject de leereenheid is gemaakt Crebotraject code: 95311

Oefening 1. Bedenk een voorbeeld van een vreemde sleutel die naar de eigen relatie verwijst.

Databases en SQL Foundation (DBSQLF.NL)

SQL & Relationele datamodellen in interactieve media

Relationele databases

TECHNISCHE UNIVERSITEIT EINDHOVEN. Faculteit Wiskunde en Informatica

Groepswerk Technieken voor Datamodellering

SQL & Datamodelleren

BTW Code conversie Legal Eagle Boekhouding versie 2.18.x naar Sdu uitgevers

BTW Code conversie Legal Eagle Boekhouding versie 2.18.x naar Sdu uitgevers

opstarthandleiding mysqlworkbench November 2012 Fons van Kesteren HVA- CMD- V1 Datamodelleren

DBMS SQL. Relationele databases. Sleutels. DataBase Management System. Inleiding relationele databases. bestaan uit tabellen.

Normaalvormen. DB kent vijf normaalvormen, elke strenger dan de vorige De eerste drie zijn veelgebruikt. ax 2 + bx + c =0

Hoofdstuk: 1 Principes van databases

Toon TITEL, JAAR en PLATVORM van GAMES die voor het jaar 2000 uitkwamen op Nintendo 64

BTW Code Conversie Legal Eagle Standaard versie 2.18.x naar Sdu uitgevers

BTW Code Conversie Legal Eagle Integratie Zonder Export versie 2.18.x naar Sdu uitgevers

EXAMEN juni 2016 Gegevensbanken

Les 10 : Aanmaken van een database (deel2).

Databases SQL - meerdere tabellen

Database ontwerp Normaliseren.

Problemen bij invoer gegevens en veel voorkomende fouten bij gebruik Web-BVB

BTW Code Conversie Legal Eagle Integratie Met Export versie 2.18.x naar Sdu uitgevers

2.2 Een tabel ontwerpen

Bijlage Inlezen nieuwe tarieven per verzekeraar

BTW Code Conversie Legal Eagle Integratie Met Export versie 2.18.x naar Sdu uitgevers

Inleiding Databases en Data Base Management Systems Tabellen Wat is SQL?... 5

Inhoud. Voorwoord Belangrijkste kenmerken van dit boek De opzet van dit boek Over de auteur Woord van dank

Systeemontwikkeling, Hoofdstuk 4, Tabellen maken in MS Access 2010

Koppeling met een database

Les 15 : updaten van gegevens in de database (deel2).

Correctievoorschrift HAVO Informatica. Tijdvak 1 Woensdag 24 mei uur. College-examen schriftelijk.

Relaties tussen twee tabellen definiëren

EXAMEN juni 2018 Gegevensbanken

1. * Database worden vaak gebruikt in Client-Server architectuur.

SQL.

1.1 Een database ontwerpen voor een webliografie

Zelftest SQL. Document: n0453test.fm 19/04/2012. ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium

H 1 Databases en databasesystemen (10 punten) a. Veel van de huidige databases zijn gebaseerd op een drie-laags systeemarchitectuur:

PROGRAMMA Vak: informatica..

Databank - Basis 1. Inhoud. Computervaardigheden en Programmatie. Hoofdstuk 4 Databank - Basis. Terminologie. Navigeren door een Venster

SQL Aantekeningen 3. Maarten de Rijke 22 mei 2003

Uitleg: In de bovenstaande oefening zie je in het eerste blokje een LEES en een SCHRIJF opdracht. Dit is nog lesstof uit het tweede trimester.

Les S-01: De basisbeginselen van SQL

U ziet de progressie van de download aan de groene blokjes in het balkje helemaal onder aan de pagina.

Handleiding enquetemaken.be

Les 11 : Basis SQL (deel2).

8. De invoer van gegevens

Als particuliere verkoper kun je tweedehands artikelen aanbieden in de volgende winkels:

INVOER INSTRUCTIE INDEX BEVOLKINGSREGISTERS REGIONAAL ARCHIEF NIJMEGEN

Tips & Trucs ArchiCAD : Instellingen Kozijnstaat wijzigen (NL+)

Handleiding upc artbox

HANDLEIDING MBO CARD 2017

Inhoud. Voorwoord 1 Belangrijkste kenmerken van dit boek 1 De opzet van dit boek 1 Over de auteurs 2 Woord van dank 2

Les 2 Eenvoudige queries

Informatie verwerking en databases RDBMS en tabellen... 8 SQL SELECT... 8 SQL WHERE SQL INSERT SQL UPDATE SQL DELETE...

Normaliseren. Er zijn 5 stappen in het normaliseren, maar meestal worden alleen de eerste 3 uitgevoerd.

AFO Leveranciers

Structured Query Language

Scorepunten worden toegekend met inachtneming van de volgende regels:

Cursus Analyse voor Web Applicaties 1. Webdesign / Web Programmeren Analyse voor web applicaties SDM methode + Basis UML

S-Connect Magento Order

Normaliseren van tabellen Praktische oefeningen

voorbeeldexamen I-Tracks Databases and SQL Foundation Voorbeeldexamen DBSQLF Uitgave juni 2006

F. TRUYEN - Informatiekunde QBE. MS Access

Depersonaliseren. Onderdeel van het boek Testdata management Geschreven door Bert Nienhuis DATPROF. Depersonaliseren

Introductie (relationele) databases

AccessFIX bestand herstel software biedt een effectieve oplossing voor beschadigde MS Access data en het herstellen van verwijderde tabellen.

1. Milieuklacht Handleiding opladen XML in mkros Werken met Refertes... 5

1. Inleiding Inleiding SQL Inleiding Database, databaseserver en databasetaal Het relationele model...

Menu item Mijn Account Onder mijn account kun je je bestelling(en) en adres gegevens bekijken en aanpassen.

Transcriptie:

IN2 Week 3: Normaliseren en koppelingen

Relationeel model Functionele Afhankelijkheid Sleutels l Redundancy Normaalvormen Koppelingen (Joins) Indexen Onderwerpen in deze les

IN2 31 3.1 Definities

Definitie relatie Een relatie is een tabel, waarbij de volgorde van de rijen of de kolommen er niet toe doet, maar waarbij iedere rij maar één keer voorkomt. Binnen een kolom heeft iedere veld een vergelijkbare betekenis Relation (Engels) Relatie (Ned); Relatietabel Relationship p( (Engels) Relatie (Ned); Relationeel verband In een relationele database zijn de gegevens dus ondergebracht in tabellen. 3.1.1 Relationele model

Bij functionele afhankelijk is binnen één tabel de ene attribuut af te leiden uit een andere. Voorbeeld 1: In één tabel weergeven van postcode en plaatsnaam betekent dat de plaatsnaam functioneel afhankelijk is van de postcode. Voorbeeld 2: Bij een cijferadministratie is het cijfer functioneel afhankelijk van De student-id-code, de vakcode en de periode. Opmerking: Functionele afhankelijkheid betekent niet automatisch dat het binnen de set tabellen te herleiden is. Het cijfer bijvoorbeeld is ingevoerd via het beeldscherm en is mogelijk afgelezen van het tentamen. 3.1.2 Functionele afhankelijkheid

Determinant Een determinant is een attribuut dat de waarde van een ander attribuut bepaalt. Product Prijs Tafel 125 In bovenstaande voorbeeld bepaalt het product de prijs. Product is hier de determinant. Andersom kan niet, want er kunnen meerdere producten zijn met een gelijke prijs. 3.1.3 Functionele afhankelijkheid

Product Prijs Aantal Totaalprijs Scharnier 2.50 5 12.50 Deur 225 1 225 Hier is Totaalprijs direct afhankelijk van Prijs en Aantal. Vermenigvuldigen van de eerste twee levert de derde op. (Prijs is functioneel afhankelijk van Product, zodat Totaalprijs ook functioneel afhankelijk is van Product) 3.1.4 Functionele afhankelijkheid

Product Prijs Scharnier 2.50 Deur 225 Product Aantal Totaalprijs Scharnier 5 12.50 Deur 1 225 Hier is Totaalprijs afhankelijk van Product en Aantal. Via Product kunnen we in een andere tabel Prijs bepalen, waaruit we dan weer Totaalprijs bepalen. 3.1.5 Functionele ahankelijkheid

Product Aantal Totaalprijs Scharnier 5 12.50 Deur 1 225 Hier wordt Totaalprijs direct ingevoerd door een gebruiker. Deze leest Prijs uit een (papieren) lijst en vermenigvuldigt deze met Aantal dat in de tabel staat. 3.1.6 Functionele afhankelijkheid

Student Vak Cijfer 1234567 Meca 56 1245365 Wisk 89 In bovenstaand voorbeeld is Cijfer functioneel afhankelijk van Student en Vak In onderstaand voorbeeld is Prijs alleen functioneel afhankelijk van Dictaat Student Dictaat Prijs 1234567 Meca 56 1245365 Wisk 89 3.1.7 Functionele afhankelijkheid

Een sleutel identificeert een rij uniek. Een sleutel kan bestaan uit een enkele kolom, maar ook uit meerdere kolommen. In het extreme geval bestaat een sleutel uit alle kolommen. Voorbeeld (één kolom per sleutel) Bij een tabel met studentennamen legt de ID-Code de studentnaam vast. ID-Code Naam Voorl Voorv 1234567 Wetering KJ K.J. van der 1243543 Mouse M. 3.1.8 Sleutels

Voorbeeld (meerdere kolommen per sleutel) Bij een tabel met cijferresultaten zijn meer kolommen nodig om een sleutel vast te leggen (Studenten kunnen tentamens maken over meerdere vakken op verschillende tijdstippen) ID-Code Vakcode Datum Cijfer 1234567 Wisk 28-Feb-2005 2005 90 1243543 Meca 12-Mar-2005 76 3.1.10 Sleutels

Redundancy is de meervoudige opslag van één soort gegevens. Code Product Code Product Totaalprijs S20 Sh Scharnier S20 Sh Scharnier 12.50 D20 Deur D20 Deur 225 In bovenstaande tabellen zijn zowel Code als Product in beide tabellen opgenomen. Als de omschrijving i van product S20 wijzigt moet hij in beide tabellen gewijzigd worden. We streven ernaar redundancy te voorkomen, behalve bij sleutelwaarden. Deze hebben we namelijk nodig om tabellen te koppelen 3.1.11 Redundancy

IN2 32 3.2 Normaalvormen

Naam adres product aantal Totaalprijs folders Jansen.. Scharnier 40 1250 Deuren Jansen... Scharnier 40 1250 Ramen Wetering Deur 23 225 Deuren Als we deze tabel gebruiken als min of meer enige tabel in de database, lopen we tegen een aantal problemen op. 3.2.1 Lastige tabel

Een tabel staat in eerste normaalvorm als: alle kolommen een unieke naam hebben alle elementen in dezelfde kolom zijn van dezelfde soort alle velden bevatten één waarde (dus geen arrays, maar wel sets) er staan geen gelijke rijen in de tabel 3.2.2 Eerste normaalvorm

Een tabel staat in tweede normaalvorm als: Alle attributen die niet in de sleutel zijn opgenomen, afhankelijk zijn van de hele sleutel. 3.2.3 Tweede normaalvorm

Student Vak Cijfer 1234567 Meca 56 1245365 Wisk 89 Sleutel: (Student,Vak) FA (Student,vak) Cijfer Tweede normaalvorm Alle attributen (Cijfer) die niet in de sleutel zijn opgenomen, zijn afhankelijk van de hele sleutel (Student,Vak). Student Dictaat Prijs 1234567 Meca 56 1245365 Wisk 89 Sleutel: (Student,Dictaat) FA (Diktaat) Prijs Eerste normaalvorm Prijs is alleen afhankelijk van Dictaat en niet van Student. 3.2.4 Tweede normaalvorm

Een tabel staat in derde normaalvorm als: het in tweede normaalvorm is en geen transitieve afhankelijkheden kent. 3.2.5 Derde normaalvorm

Student Vak Cijfer Sleutel: (Student,Vak) 1234567 Meca 56 FA (Student,vak) Cijfer Student bepaalt niet Cijfer 1245365 Wisk 89 Derde normaalvorm Het verband Student->Cijfer t is niet automatisch, ti omdat een student t meerdere vakken kan volgen, elk met een eigen cijfer. Student Klas Richting 1234567 E1A Elektro 1245365 W1A WTB Sleutel: (Student) FA (Student) Klas FA (Klas) Richting Tweede normaalvorm Omdat een student maar in één klas zit, is er een transitieve afhankelijkheid (Student Richting). 3.2.6 Derde normaalvorm

Student Klas Richting ( ) 1234567 E1A Elektro 1245365 W1A WTB Sleutel: (Student) FA (Student) Klas FA (Klas) Richting Tweede normaalvorm Student Scriptie Cijfer 1234567 Meca 56 1245365 Wisk 89 Sleutel: (Student) FA (Student) Scriptie Derde normaalvorm Een student maakt maar één scriptie en daarom lijkt het op het bovenste voorbeeld. Scriptie Cijfer ligt echter niet vast, (meerdere studenten kunnen eenzelfde vak als scriptie nemen, maar krijgen niet automatisch hetzelfde cijfer) 3.2.7 Derde normaalvorm

Een tabel staat in Boyce-Codd normaalvorm als: elke determinant een kandidaatsleutel is. 3.2.8 Boyce-Codd normaalvorm

Klant Product Prod. deskundige 123 Computer Counter, K. 435 Aardbeien Steenwol, J. 357 Vlakgom Eraser, L. 123 Aardbeien Mest, K. Kandidaatsleutels: Klant, Product Klant,Prod. deskundige Deskundige Product Determinant: Prod. deskundige bepaalt Product 3.2.9 Boyce-Codd normaalvorm

Een tabel staat in vierde normaalvorm als: hij in Boyce-Codd normaalvorm staat en geen meerwaardige afhankelijkheden kent. 3.2.10 Vierde normaalvorm

Klant Product Folder 123 Kaas Tuinieren 123 Monitor Kaasrecepten 123 Keyboard Foutloos schrijven 123 Vlakgom Fouten herstellen Klant 123 heeft zowel producten besteld als folders aangekruist. De folders hebben geen directe relatie tot de producten (Voor sommige productcategorieën zijn geen folders en voor andere zijn er meer). Als bijv. kaas wordt verwijderd, verdwijnt ook de registratie voor de folder Tuinieren. 3.2.11 Vierde normaalvorm

Klant Product Folder 123 Kaas Tuinieren 123 Kaas Kaasrecepten 123 Kaas Foutloos schrijven 123 Kaas Fouten herstellen (Deel van complete tabel, alleen Kaas is vermeld) Door een combinatie te maken van alle producten met alle folders kan het voornoemde probleem voorkomen worden, maar krijg je het probleem dat je voor het verwijderen van één product of folder meerdere rijen uit de tabel moet verwijderen. 3.2.12 Vierde normaalvorm

Een tabel staat in Domein/Sleutel normaalvorm als: elke randvoorwaarde bij de relatie een logisch gevolg is van de definitie van sleutel en domein Domein: Beschrijving i van alle mogelijke waarden van een attribuut Fysiek: Semantisch: Verzameling mogelijke waarden De betekenis van die waarden 3.2.13 Domein/Sleutel NV (DKNF)

Bepaal de randvoorwaarden Leg eventuele restricties ti op attributen t vast in het domein van die attributen dit kan soms met een restrictie in de definitie, maar vaker is dat niet mogelijk, maar wel snel te controleren. Test of er attributen zijn die niet direct van de sleutel afhangen en plaats deze in een aparte tabel. 3.2.14 DKNF

Een eerste indicatie dat een normalisatie nodig is, kan je krijgen door te testen of een rij binnen een tabel meerdere grootheden definieert en of je meer dan één ding kwijtraakt als je een regel verwijdert. Het tweede indicatie is dat het pas mogelijk is de ene grootheid in te voeren als je ook de andere invoert. Een derde indicatie is optreden van redundantie. Treedt dit op, dan kunnen door middel van het splitsen van tabellen de tabellen op een hoger normalisatieniveau gebracht worden. 3.2.15 Controleren op normalisatie

Eerste Tweede Derde BCNF Vierde Vijfde DKNF Correcte tabelvorm Attributen afhankelijk van hele sleutel Geen transitieve afhankelijkheid Determinanten zijn kandidaatssleutels Geen meerwaardige afhankelijkheid Joinafhankelijkheid Domein/Sleutel afhankelijkheid Bij iedere normaalvorm moet eerst aan de eisen van de lagere vormen zijn voldaan. 3.2.16 Trefwoorden normalisatie

IN2 33 3.3 Verbanden

Als twee attributen elkaar functioneel bepalen Als twee attributen eenzelfde item op unieke wijze identificeren Twee attributen met een één op één-verband komen ten minste in één tabel samen voor, tenzij gebruik gemaakt wordt van een triviale sleutel Landcode B D E NL Land Belgie Duitsland Spanje Nederland 3.3.1 Eén op één verband

Als één attribuut het andere bepaalt, maar niet andersom. Postcode Plaats 3513 EX Utrecht 3434 CN Nieuwegein 3430 BG Nieuwegein 3.3.2 Veel op één-verband

Als beide attributen elkaar niet bepalen Klantnummer Product 123 Kaas 432 Computer 123 Computer 3.3.3 Fveel op veel-verband

Inner Join Rijen uit de eerste tabel worden gekoppeld aan rijen uit de tweede tabel als het koppelelement in beide tabellen voorkomen Left Join Rijen uit de eerste tabel worden gekoppeld aan rijen uit de tweede tabel waarbij alle rijen uit de eerste tabel worden gebruikt, ongeacht of ze een koppelrij uit de tweede tabel hebben Cross Join Rijen uit de eerste tabel worden gekoppeld aan rijen uit de tweede tabel waarbij alle combinaties die met het koppelelement gemaakt kunnen worden in het resultaat voorkomen 3.3.4 Koppelen van bestanden

3.3.5 Koppelen van bestanden

Hierbij willen we voor de staat een code gebruiken en Staat in een aparte tabel onderbrengen, gerefereerd door de code. Merk op dat Mount McLoughlin mist. Deze komt wel voor in tabel Locatie, maar niet in tabel Vulkaan 3.3.6 Koppelen van bestanden

Dit is een bestellijst t met codes Hier staat het interval waartussen De codes kunnen liggen Select bestelling.ordernummer, productcodes.categorie From bestelling Inner Join productcodes On (bestelling.productcode>=productcodes.mincode) & (bestelling.productcode<=productcodes.maxcode) Dit is het eindresultaat Resultaattabel heeft minder informatie dan bestelling 3.3.7 Koppelen via een interval

Create Table staat Select Distinct staat From combinatie Het lijkt nu of de staat Oregon twee maal voorkomt, maar het blijkt dat de tweede met een nul is geschreven. Dit is dus fout. Bij een opsplitsing als dit komen dergelijke fouten direct aan het licht. Het is zaak ze meteen te verbeteren. Doe dit bij voorkeur in de originele tabellen, waarna je een nieuwe join moet uitvoeren. Update Locatie Set staat="oregon" Where staat="0regon" " 3.3.8 Splitsen tabel

Na correctie van de tabel Locatie hebben we een nieuwe koppeling gelegd en opnieuw de statenlijst uit tabel Combinatie gehaald We voegen nu een nieuwe kolom in met een unieke numerieke code Alter Table staat Add Column staatcode Int Unsigned Auto_increment Primary Key 3.3.8 Na correctie van tabel Locatie

De staatcode plaatsen we met een join in een tabel Create Table eindtabel Select combinatie.naam, combinatie.hoogte, combinatie.jaar, staat.staatcode From combinatie Inner Join staat on combinatie.staat=staat.staat 3.3.9 Plaatsen van deze code in tabel

Splitsen op de voorgaande manier mag alleen als de velden binnen een kolom met dezelfde waarden ook dezelfde achtergrond hebben. Eerste voorbeeld: Plaatsnamen kunnen dezelfde naam hebben, maar hoeven niet dezelfde te zijn (bijvoorbeeld 4x Rijswijk). Tweede voorbeeld: In de vorige tabel zijn drie jaartallen 1000 opgenomen. Ze zijn gelijk en beschrijven elk een jaartal. Het zijn echter drie verschillende gebeurtenissen met een gelijk resultaat. 3.3.10 Splitsen tabel

3.3.11 Combineren twee tabellen

Als we de On-clausule vergeten, krijgen we een combinatie van alle kolommen in beide tabellen. 3.1.12 Foutieve join

Willen we vanuit de resultaattabel de oorspronkelijke tabellen weer terugconstrueren, dan gebruiken we de volgende instructies: Resultaat vakinf Create Table vakinf Select Distinct sid,vak From resultaat Resultaat actinf Create Table actinf Select Distinct sid,act From resultaat 3.1.13 Opsplitsen resultaat

IN2 34 3.4 Gebruik van Indexen

Indexen versnellen het zoeken in lange tabellen, door een extra gesorteerde kolom toe te voegen. Hierdoor hoeven we niet verder te zoeken als we een waarde vinden die hoger is dan de gezochte(n). Vooral bij gebruik van Joins bewijzen indexen diensten 3.4.1 Nut van Indexen

Indexen hebben weinig of een tegengesteld effect als: 1. Er veel schrijfacties zijn ten opzichte van de leesacties 2. Als een select meer dan een derde van de rijen oplevert 3. Als er weinig rijen zijn 4. In sommige gevallen van wildcarding 3.4.2 Wanneer geen index gebruiken?

Soorten Indexen: Primary Key (kolomlijst) Unique [Index naam] (kolomlijst) Index [Index naam] (kolomlijst) Primary Key en Unique kunnen alleen gebruikt worden op kolommen met een unieke waarde, waarbij primary Key maar één keer gebruikt kan worden binnen een tabel. Bij Index kunnen meer elementen met dezelfde waarde voorkomen in dezelfde geïndexeerde kolom. 3.4.3 Welke indexen

Create Table Plaatsnaam (bcode int unsigned, ecode int unsigned, plaats varchar(30), Index (plaats)) Primary Key en Unique kunnen hier niet omdat meer plaatsen met dezelfde naam kunnen voorkomen. 3.4.4 Declareren index

Dezelfde index, maar later toegevoegd Alter Table Plaatsnaam Add Index (plaats) 3.4.5 Declareren Index

Alter Table Plaatsnaam Drop Index indexnaam Alter Table Plaatsnaam Drop Primary Key 3.4.6 Verwijderen Index

Dit kan gebruikt worden op Char en Varchar om te voorkomen dat een onnodig lang gedeelte wordt geïndexeerd. Alter Table Plaatsnaam Add Index (plaats(10)) Bij een vergelijking met wildcards (LIKE) kan een index bij de volgende specificatie bruikbaar zijn: Where plaats Like "ame%" maar de index is niet bruikbaar bij: Where plaats Like "%rt" 3.4.7 Indexeren op gedeeltelijke kolom