En enkel definition av en databasdomän är den datatyp som används av en kolumn i en databas. Denna datatyp kan vara en inbyggd typ (som ett heltal eller en sträng) eller en anpassad typ som definierar begränsningar för data.
Datainmatning och domäner
När du anger data i ett onlineformulär av något slag, oavsett om det är ditt namn och e-post eller en jobbansökan, lagrar en databas dina uppgifter bakom kulisserna. Den databasen utvärderar dina bidrag baserat på en uppsättning kriterier.
Om du till exempel anger ett postnummer, förväntar sig databasen att hitta fem nummer (eller fem nummer följt av ett bindestreck sedan fyra nummer för ett komplett amerikanskt postnummer). Om du anger ditt namn i ett postnummerfält ger databasen dig ett felmeddelande.
Det beror på att databasen testar din post mot den domän som definierats för postnummerfältet. En domän är i grunden en datatyp som kan inkludera valfria begränsningar.
Varje typ av databas ger ett sätt att definiera en uppsättning begränsningar och regler som styr tillåten data, även om den inte kallar den en domän. Se din databas dokumentation för mer information.
Förstå en databasdomän
För att förstå en databasdomän, låt oss överväga några andra aspekter av en databas:
- Ett databasschema definierar en uppsättning attribut, även kallade kolumner eller fält. En tabell som heter "Kontaktinformation" kan innehålla attribut för förnamn, efternamn, jobbtitel, gatuadress, stad, stat, postnummer, telefonnummer och e-post.
- Varje attribut innehåller en domän som definierar tillåtna värden, eventuellt inklusive dess datatyp, längd, värden och andra detaljer.
Domänen för ett attribut ZipCode kan till exempel ange en numerisk datatyp, till exempel ett heltal, vanligtvis kallat ett INT eller ett INTEGER, beroende på databasen. Eller så kan en databasdesigner välja att definiera det istället som ett tecken, vanligtvis kallat CHAR. Attributet kan definieras ytterligare för att kräva en specifik längd, eller om ett tomt eller okänt värde tillåts.
När du samlar alla element som definierar en domän får du en anpassad datatyp, även kallad en "användardefinierad datatyp" eller en UDT.
Vad är domänintegritet?
De tillåtna värdena för ett attribut etablerar domänintegritet, vilket säkerställer att all data i ett fält innehåller giltiga värden.
Domänintegritet definieras av:
- Datatypen, som heltal, tecken eller decimal.
- Tillåten längd på data.
- Omfånget som definierar de övre och nedre gränserna.
- Alla begränsningar eller begränsningar för tillåtna värden. Ett amerikanskt postnummerfält kan till exempel tvinga fram ett komplett postnummer eller en fullständig niosiffrig kod.
- Typen av NULL-stöd (om ett attribut kan ha ett okänt eller NULL-värde).
- Standardvärdet, om det finns.
- Datumformatmålaren, om tillämpligt (till exempel dd/mm/åå eller mm/dd/åååå).
Skapa en domän
För databaser som använder Structured Query Language eller en variant av SQL, använd kommandot CREATE DOMAIN SQL.
Exekveringssatsen skapar till exempel ett ZipCode-attribut av datatypen CHAR med fem tecken. Ett NULL eller okänt värde är inte tillåtet. Dataintervallet måste ligga mellan 00000 och 99999. Det skapar ett ZipCode-attribut av datatypen CHAR med fem tecken. Ett NULL, eller okänt värde, är inte tillåtet.
CREATE DOMAIN ZipCode CHAR(5) NOT NULL CHECK (VALUE >='00000' AND VALUE <='99999')
Dessa databasbegränsningar skickar ett fel till en applikation som fungerar som front-end till din databas när begränsningen överträds, så programmera in en subrutin för att fånga fel i ditt program för att kontrollera förnuftet innan programmet tycker att det är korrekt lagt till information i databasen.