fan

oriktig repetition av information i resultatet av sökning i databas. – Fans orsakas av ogenomtänkt konfiguration av databasen eller ogenomtänkt utformning av sökningen (frågan). – Begreppet fan (engelskt uttal) definierades först 1996 av Thomas M Connolly (länk) och Carolyn Begg (länk) i boken Database systems. Det är en av två connection traps: den andra kallas för chasm. Felet definierades i förhållande till databaser av typen entity‑relationship, men det uppträder även i andra sammanhang. – Något förenklat exempel: ett företag har anställda och avdelningar. I en databas finns en tabell med företagets alla anställda och en annan tabell med företagets alla avdelningar. Om företaget gör en olyckligt formulerad sökning (med en join) efter anställda kan resultatet bli att varje anställd räknas som anställd i var och en av avdelningarna. Sökningen ”vet” inte att varje anställd tillhör bara en avdelning, eller vilken avdelning det i så fall skulle vara. I stället ”tror” sökningen att den som är anställd på företaget tillhör alla företagets avdelningar. Antalet anställda multipliceras därför i resultatet av sökningen; varje namn förekommer flera gånger. I mer komplicerade fall kan felet vara svårt att upptäcka: man ser bara att resultatet av sökningen inte kan stämma. – Man talar om en cartesisk produkt (cartesian product). Det innebär att i stället för att varje anställd knyts till en, och bara en, avdelning (som i en tabell med två spalter), vilket är det riktiga, så knyts varje anställd till var och en av avdelningarna (som i en flerspaltig tabell med de anställda på x‑axeln och avdelningarna på y‑axeln, eller omvänt, och ett kryss i varje ruta). – Uttrycket fan kommer av fan out, som kan översättas med sprida ut [i solfjäderform]. – För att undvika fans bör man lägga upp databasen (eller sökningen) på ett bättre sätt: företaget har avdelningar; avdelningarna har anställda. Hur man bör göra beror på syftet med databasen. (Observera att den del förklaringar på nätet av chasms i själva verket beskriver fans.)

[databaser] [fel] [ändrad 2 maj 2022]