In de context van databaseontwerp is een referentietabel een tabel met daarin een opgesomde verzameling van alle mogelijke waarden van een bepaald veld of datatype. In een relationeel databasemodel van een magazijn kan de entiteit 'Artikel' bijvoorbeeld een veld 'Status' bevatten met een vooraf gedefinieerde verzameling van waarden zoals 'verkocht', 'gereserveerd' en 'uit voorraad'. In een puur ontworpen database zullen deze mogelijke waarden in een extra entiteit of referentietabel met de naam 'status' opgenomen worden om zo tot databasenormalisatie te komen.

De entiteit 'Status' heeft in dit geval geen ware vertegenwoordiging in de reële wereld, maar is eerder een uitzonderlijk geval, waarin een attribuut van een bepaalde database-entiteit naar een eigen tabel wordt afgestoten. Het voordeel van deze werkwijze is dat de interne functionaliteit en optionele condities binnen de database en de software, die gebruikmaakt van deze database veel gemakkelijker is te wijzigen en uit te breiden, wanneer er bijvoorbeeld nieuwe waarden aan referentietabel worden toegevoegd. In jargon kun je zeggen deze flexibiliteit 'hard-coding' voorkomt.