Clau substituta
Una clau substituta o clau artificial en una base de senyes és un identificador únic per a una entitat en el món real o modelació o per a un objecte en la base de senyes. Al contrari que la clau natural, la clau substituta no deriva de les senyes d'una aplicació.
Definició
[editar | editar còdic]Hi ha a lo manco dos definicions d'una substituta:
- Substituta (1) – Hall, Owlett i Todd (1976)
- Una substituta representa una entitat en el món exterior. La substituta es genera internament pel sistema pero mai és visible per a l'usuari o l'aplicació.[1]
- Substituta (2) – Wieringa i De Jonge (1991)
- Una substituta representa un objecte en la pròpia base de senyes. La substituta es genera pel sistema i és invisible a l'usuari o l'aplicació.
La definició Substituta (1) fa referència al model de senyes més que a un model d'almagasenament i és l'utilisat en este artícul.
Una important diferència entre una substituta i una clau primària depén de si la base de senyes és actual o temporal. Si una base de senyes actual només almagasena informació vàlida actual, hi ha una correspondència un-a-un entre la substituta del món modelat i la clau primària de la base de senyes. En este cas, la substituta pot utilisar-se com a clau primària, resultant en el terme clau substituta. No obstant, en una base de senyes temporal, hi ha una relació de moltes-a-una entre claus primàries i la substituta. Des de que pot haver varis objectes de la base de senyes corresponent a una única substituta, no es pot utilisar la substituta com a clau primària; necessitant un atre atribut a afegir a la substituta per a identificar de forma única cada objecte.
Encara que Hall et al. (1976) no diu res sobre açò, uns atres han argumentat que una substituta deuria tindre les següents característiques:
- El valor és únic en el sistema i per lo tant, mai reutilisat
- El valor està generat pel sistema
- El valor no és manipulable ni per l'usuari ni per l'aplicació
- El valor no conté cap significat semàntic
- El valor no és visible per a l'usuari o l'aplicació
- El valor no es compon de varis valors de diferents dominis
Substitutes en la pràctica
[editar | editar còdic]En una base de senyes actual, la clau substituta pot ser la clau primària, generada pel sistema de gestió de bases de senyes i no deriva de les senyes de cap aplicació. L'única missió de la clau substituta és actuar com a clau primària. També és possible que una clau substituta existixca com a adició a una UUID generada per la base de senyes.
Freqüentment, una clau substituta és un número seqüencial (p.ej. una columna d'identitat de Sybase o SQL Server, un número de série en PostgreSQL o Informix, una SEQUENCE en Oracle o una columna definida en AUTO_INCREMENT en MySQL). Algunes bases de senyes proporcionen UUID com a tipo de senyes possible per a claus substitutes (p.ej. POSTRESQL UUID (anglés)).
Tindre una clau independent de totes les demés columnes, aïlla les relacions de la base de senyes dels canvis en els valors de l'informació o del disseny de la base de senyes (fent que siga més àgil) i garantisant la singularitat.
| ClaveSustituta | ClaveNegocio | NombreEmpleado | HorasPorSemana | Des de | - | 1 | BOS0120 | John Smith | 40 | 01-01-2000 | 31-12-2000 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 56 | P0000123 | Bob Brown | 25 | 01-01-1999 | 31-12-2011 | ||||||
| 234 | BOS0120 | John Smith | 35 | 01-01-2001 | 31-12-2009 |
Alguns dissenyadors de bases de senyes utilisen claus substitutes de forma sistemàtica sense tindre en conte l'idoneïtat d'atres claus candidates, mentres que uns atres usaran una clau ya existent en les senyes, si existix.
Una clau substituta també pot cridar-se una clau sintètica, un identificador d'entitat, una clau generada pel sistema, un número seqüencial de base de senyes, una clau tècnica, un identificador únic arbitrari. Alguns d'estos térmens descriuen la forma en la que es generen nous valors de substitució més que la naturalea del concepte de substitució.
Aproximacions de generació de substitutes inclouen:
- Universally Unique Identifier (UUIDs)
- Globally Unique Identifier (GUIDs)
- Identificador d'Objecte (OIDs)
- Columna d'identitat de Sybase o SQL Server
IDENTITYoIDENTITY(n,n) - Oracle
SEQUENCE, oGENERATED AS IDENTITY(des de la versió 12.1)[2] - Número de série en PostgreSQL o IBM Informix
- MySQL
AUTO_INCREMENT - Tipo de senya AutoNumber en Microsoft Access
AS IDENTITY GENERATED BY DEFAULTen IBM DB2- Columna Identity (implementat en DDL) en Teradata
- Taula Sequence quan la seqüència es calcula per mig d'un procediment i una taula de seqüència en camps: aneu, sequenceName, sequenceValue i incrementValue
Referències
[editar | editar còdic]- ↑ P A V Hall, J Owlett, S J P Todd, "Relations and Entities", Modelling in Data Base Management Systems (ed GM Nijssen), North Holland 1976.
- ↑ http://docs.oracle.com/database/121/SQLRF/statements_7002.htm#SQLRF01402
- Este artícul conté una traducció derivada de «Clave sustituta» de Wikipedia en castellà publicada baix la Llicència de documentació lliure de GNU i la Llicència Creative Commons Reconeiximent-CompartirIgual 4.0 Internacional.