18.01.2013 Views

Koppelen 910Leon Willenborg en Nico Heerschap - CBS

Koppelen 910Leon Willenborg en Nico Heerschap - CBS

Koppelen 910Leon Willenborg en Nico Heerschap - CBS

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

In dit stuk bekijk<strong>en</strong> we drie wijz<strong>en</strong> van koppel<strong>en</strong>:<br />

• <strong>Koppel<strong>en</strong></strong> op e<strong>en</strong> (sam<strong>en</strong>gestelde) primaire sleutel (“join<strong>en</strong>”);<br />

• <strong>Koppel<strong>en</strong></strong> op e<strong>en</strong> (sam<strong>en</strong>gestelde) secundaire sleutel, zonder gebruik te mak<strong>en</strong> van koppelgewicht<strong>en</strong>;<br />

• <strong>Koppel<strong>en</strong></strong> op e<strong>en</strong> (sam<strong>en</strong>gestelde) secundaire sleutel, met gebruikmaking van koppelgewicht<strong>en</strong>.<br />

<strong>Koppel<strong>en</strong></strong> op e<strong>en</strong> primaire sleutel is eig<strong>en</strong>lijk de ideale manier van koppel<strong>en</strong>, omdat hier de e<strong>en</strong>hed<strong>en</strong><br />

e<strong>en</strong> e<strong>en</strong>duidige <strong>en</strong> unieke id<strong>en</strong>tificatie k<strong>en</strong>n<strong>en</strong>. In theorie kunn<strong>en</strong> er ge<strong>en</strong> dubbele voorkom<strong>en</strong>.<br />

In de praktijk zull<strong>en</strong> er echter toch foutjes insluip<strong>en</strong>. Zo kan het zijn dat er in één bestand (t<strong>en</strong><br />

onrechte) toch dubbele records voorkom<strong>en</strong>. 10 In dat geval moet er eerst ontdubbeld word<strong>en</strong>.<br />

Mocht<strong>en</strong> er veel duplicat<strong>en</strong> zijn dan hebb<strong>en</strong> we eig<strong>en</strong>lijk te mak<strong>en</strong> met e<strong>en</strong> koppelsleutel die niet<br />

erg betrouwbaar is. In dat geval zou m<strong>en</strong> beter kunn<strong>en</strong> kijk<strong>en</strong> naar alternatiev<strong>en</strong>, in de vorm van<br />

secundaire sleutels. Die moet<strong>en</strong> dan wel voorhand<strong>en</strong> zijn in de koppelbestand<strong>en</strong>.<br />

Indi<strong>en</strong> er ge<strong>en</strong> primaire sleutel geme<strong>en</strong>schappelijk aanwezig is in beide koppelbestand<strong>en</strong>, maar wel<br />

e<strong>en</strong> secundaire koppelsleutel, kan deze gebruikt word<strong>en</strong> om records te koppel<strong>en</strong>. We moet<strong>en</strong> hier<br />

echter van uitgaan dat er meer koppelfout<strong>en</strong> mogelijk zijn: koppeling<strong>en</strong> kunn<strong>en</strong> word<strong>en</strong> gemaakt<br />

terwijl ze niet terecht zijn, of gemist, terwijl ook dat niet de bedoeling is. We beschouw<strong>en</strong> voor<br />

deze situatie twee mogelijkhed<strong>en</strong>: er word<strong>en</strong> ge<strong>en</strong> of juist wel koppelgewicht<strong>en</strong> gebruikt om de<br />

sterkte van e<strong>en</strong> mogelijke koppeling weer te gev<strong>en</strong>.<br />

Welke methode m<strong>en</strong> wil kiez<strong>en</strong> hangt sterk af van de situatie. Te noem<strong>en</strong> zijn:<br />

- de kwaliteit van de koppelsleutels. Is de kwaliteit van de koppelvariabel<strong>en</strong> goed <strong>en</strong> sterk<br />

id<strong>en</strong>tificer<strong>en</strong>d dan zal m<strong>en</strong> eerder kiez<strong>en</strong> voor het “join<strong>en</strong>” (als dus e<strong>en</strong> goede unieke primaire<br />

sleutel aanwezig is) of e<strong>en</strong> methode zonder gewicht<strong>en</strong>;<br />

- de e<strong>en</strong>duidigheid <strong>en</strong> vergelijkbaarheid van de koppelsleutels. Zijn de koppelsleutels onderling<br />

sterk discriminer<strong>en</strong>d dan komt het gebruik van method<strong>en</strong> zonder gewicht<strong>en</strong> eerder in beeld<br />

dan e<strong>en</strong> methode met gewicht<strong>en</strong>;<br />

- de gew<strong>en</strong>ste kwaliteit van de koppeling<strong>en</strong>. De method<strong>en</strong> zonder koppelgewicht<strong>en</strong> hebb<strong>en</strong>,<br />

grofweg, betere performance <strong>en</strong> boet<strong>en</strong> in op kwaliteit, terwijl bij modell<strong>en</strong> met koppelgewicht<strong>en</strong><br />

juist e<strong>en</strong> betere kwaliteit <strong>en</strong> e<strong>en</strong> geringere performance te verwacht<strong>en</strong> is;<br />

- beschikbare hardware <strong>en</strong> software. In veel koppelsoftware is het gebruik van gewicht<strong>en</strong> vaak<br />

niet (goed) mogelijk <strong>en</strong>, zoals gezegd, zull<strong>en</strong> “join<strong>en</strong>” <strong>en</strong> e<strong>en</strong> methode zonder gewicht<strong>en</strong> beter<br />

perform<strong>en</strong> dan e<strong>en</strong> methode met gewicht<strong>en</strong>;<br />

- tijd, beschikbare capaciteit <strong>en</strong> k<strong>en</strong>nis. Is deze beperkt dan zal m<strong>en</strong> eerder kiez<strong>en</strong> voor het<br />

gebruik<strong>en</strong> van “join<strong>en</strong>” (als e<strong>en</strong> goede primaire sleutel aanwezig is) of e<strong>en</strong> methode zonder<br />

10 Overig<strong>en</strong>s is het meerdere ker<strong>en</strong> voorkom<strong>en</strong> van records met e<strong>en</strong>zelfde primaire sleutel niet per definitie<br />

fout. D<strong>en</strong>k bijvoorbeeld aan e<strong>en</strong> ban<strong>en</strong>bestand, of e<strong>en</strong> voertuig<strong>en</strong>bestand. E<strong>en</strong> persoon kan best meerdere<br />

ban<strong>en</strong> hebb<strong>en</strong>, of meerdere voertuig<strong>en</strong> bezitt<strong>en</strong>. Het gaat dan om foreign keys. In het persoonsbestand di<strong>en</strong>t<br />

iedere persoon e<strong>en</strong> e<strong>en</strong>duidig persoonsnummer te hebb<strong>en</strong> (BSN) Er zijn echter ook situaties dat de<br />

afzonderlijke records in e<strong>en</strong> bestand geacht word<strong>en</strong> betrekking te hebb<strong>en</strong> op verschill<strong>en</strong>de e<strong>en</strong>hed<strong>en</strong>,<br />

bijvoorbeeld person<strong>en</strong>. In zo’n geval moet<strong>en</strong> alle records in het bestand e<strong>en</strong> verschill<strong>en</strong>de sleutelwaarde<br />

hebb<strong>en</strong>. Het voorkom<strong>en</strong> van twee records met e<strong>en</strong>zelfde sleutelwaarde is dan e<strong>en</strong> fout.<br />

32

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!