Czemu odpowiada pojęcie „dziedzina atrybutu” w relacyjnej bazie danych?
W modelu relacyjnym atrybut odpowiada kolumnie tabeli, a jego dziedzina to zbiór wartości, które wolno w tej kolumnie zapisać. Dziedzinę wyznacza przede wszystkim typ danych - INT dopuszcza liczby całkowite, a VARCHAR(50) napisy do 50 znaków - oraz dodatkowe ograniczenia, takie jak NOT NULL, CHECK czy ENUM('K','M'). Przykład: kolumna z oceną szkolną może mieć dziedzinę liczb od 1 do 6. Pilnowanie, by każda wartość należała do swojej dziedziny, nazywa się integralnością dziedzinową. Do zapamiętania słowniczek: relacja - tabela, krotka - wiersz, atrybut - kolumna, dziedzina - dozwolone wartości kolumny. Dziedzinę opisuje się już na etapie projektu bazy.
Problem z tym pytaniem najczęściej wynika z pomylenia pojęć modelu relacyjnego. Pojedynczy wiersz tabeli to krotka - jeden rekord, np. dane jednego ucznia. Cała tabela to relacja, czyli zbiór krotek o tych samych atrybutach. Klucz główny to atrybut albo zestaw atrybutów jednoznacznie identyfikujący każdą krotkę, np. kolumna id - ma on swoją dziedzinę, ale sam dziedziną nie jest. Dziedzina dotyczy pojedynczego atrybutu i mówi, jakie wartości mogą się w nim znaleźć. Gdy do kolumny typu INT trafia tekst, serwer odrzuci go albo zgłosi ostrzeżenie właśnie dlatego, że wartość wykracza poza dziedzinę. Pojęcia te pochodzą z teorii relacyjnych baz danych, a w praktyce zastępuje się je słowami tabela, wiersz i kolumna. Dziedzina nie ma takiego potocznego odpowiednika - najbliżej jest do niej typ danych kolumny wraz z ograniczeniami.