Doména v relačním datovém modelu je datový typ , tedy sada platných hodnot [1] .
Koncept datového typu je základní; každá hodnota, každá proměnná, každý parametr, každý čtený příkaz a zejména každý relační atribut je toho či onoho typu [2] .
Příkladem mohou být typy „integer“ (množina všech celých čísel), „string“ (množina všech řetězců), „číslo dílu“ (množina všech čísel dílů) atd. Když tedy řekneme, že atribut má relaci [1] [2] .
Analogicky s matematikou se datové typy dělí na skalární a neskalární . Hodnota neskalárního typu (neskalární hodnota) má mnoho uživatelsky viditelných komponent, zatímco hodnota skalárního typu (skalární hodnota) nikoli. Příklady neskalárního typu jsou typ vztahu a typ n-tice ; příkladem skalárního typu je celočíselný typ [2] .
Omezení implementace databázových systémů na počítačích vyžadují určité konvence v definici typů. Teoreticky je tedy typ INTEGER množina všech možných celých čísel, ale ve skutečnosti je INTEGER množina všech celých čísel, která mohou být reprezentována v příslušném počítačovém systému (protože samozřejmě existují taková celá čísla, která přesahují možnost reprezentace v libovolném počítačovém systému) [2] .
Je třeba rozlišovat mezi typem jako takovým (logický koncept) a formátem pro fyzickou reprezentaci hodnot tohoto typu v konkrétním počítačovém systému; typy jsou na úrovni logického modelu a fyzická reprezentace hodnot je na úrovni implementace [2] . Například operace definované pro typ "řetězec" nedávají smysl pro typ "číslo", i když čísla v konkrétní implementaci jsou fyzicky reprezentována řetězci. Hodnoty data jsou často fyzicky reprezentovány skutečným číslem , ale většina operací, které mají smysl pro typ čísla, nedává smysl pro typ data.
Relační datový model nepředepisuje povinnou podporu žádných předdefinovaných typů, s výjimkou logického typu (BOOLEAN), bez kterého se při provádění operací nelze obejít [3] . Obvykle je systémem podporována určitá množina typů (takové typy se nazývají základní, vestavěné nebo systémové), další typy může uživatel konstruovat (definovat) dodatečně (takové typy se nazývají uživatelem definované typy ) [2] .
Databáze | |
---|---|
Koncepty |
|
Objekty |
|
Klíče | |
SQL | |
Komponenty |