Está en la página 1de 26

Integridad de datos

La exigencia de integridad de los datos garantiza la calidad de los datos de la base de


datos. Por ejemplo, si se especifica para un empleado el valor de identificador de
123, la base de datos no debe permitir que ningn otro empleado tenga el mismo
valor de identificador. Si tiene una columna employee_rating para la que se
prevean valores entre 1 y 5, la base de datos no debe aceptar valores fuera de ese
intervalo. Si en la tabla hay una columna dept_id en la que se almacena el nmero
de departamento del empleado, la base de datos slo debe permitir valores que
correspondan a los nmeros de departamento de la empresa.
Dos pasos importantes en el diseo de las tablas son la identificacin de valores
vlidos para una columna y la determinacin de cmo forzar la integridad de los
datos en la columna. La integridad de datos pertenece a una de las siguientes
categoras:
Integridad de entidad
Integridad de dominio
Integridad referencial
Integridad definida por el usuario

Integridad de datos

Leccin 06

Tipos de integridad de datos.Integridad de entidad :


La integridad de entidad define una fila como entidad nica para una tabla
determinada. La integridad de entidad exige la integridad de las columnas de los
identificadores o la clave principal de una tabla, mediante ndices y restricciones
UNIQUE, o restricciones PRIMARY KEY.
Integridad de dominio :
La integridad de dominio viene dada por la validez de las entradas para una columna
determinada. Puede exigir la integridad de dominio para restringir el tipo mediante
tipos de datos, el formato mediante reglas y restricciones CHECK, o el intervalo de
valores posibles mediante restricciones FOREIGN KEY, restricciones CHECK,
definiciones DEFAULT, definiciones NOT NULL y reglas.
Integridad referencial :
La integridad referencial protege las relaciones definidas entre las tablas cuando se
crean o se eliminan filas. En SQL Server 2005 la integridad referencial se basa en las
relaciones entre claves externas y claves principales o entre claves externas y claves
exclusivas, mediante restricciones FOREIGN KEY y CHECK. La integridad referencial
garantiza que los valores de clave sean coherentes en las distintas tablas. Para
conseguir esa coherencia, es preciso que no haya referencias a valores inexistentes y
que, si cambia el valor de una clave, todas las referencias a ella se cambien en
consecuencia en toda la base de datos.

Integridad de datos

Leccin 06

Tipos de integridad de datos.Integridad referencial :


Cuando se exige la integridad referencial, SQL Server impide a los usuarios:
Agregar o cambiar filas en una tabla relacionada si no hay ninguna fila asociada en la
tabla principal.
Cambiar valores en una tabla principal que crea filas hurfanas en una tabla
relacionada.
Eliminar filas de una tabla principal cuando hay filas relacionadas coincidentes.
Por ejemplo, en las tablas Sales.SalesOrderDetail y Production.Product de la base de datos
AdventureWorks, la integridad referencial se basa en la relacin entre la clave externa (ProductID) de la
tabla Sales.SalesOrderDetail y la clave principal (ProductID) de la tabla Production.Product. Esta
relacin garantiza que un pedido de ventas no pueda nunca hacer referencia a un producto que no existe en la
tabla Production.Product.

Integridad de datos

Leccin 06

Tipos de integridad de datos.Integridad definida por el usuario


La integridad definida por el usuario permite definir reglas de empresa especficas
que no pertenecen a ninguna otra categora de integridad. Todas las categoras de
integridad admiten la integridad definida por el usuario. Esto incluye todas las
restricciones de nivel de columna y nivel de tabla en CREATE TABLE, procedimientos
almacenados y desencadenadores.
Exigir la integridad de los datos.- Planear y crear tablas requiere identificar los
valores vlidos para las columnas y decidir cmo exigir la integridad de los datos en
las columnas. SQL Server 2005 proporciona los siguientes mecanismos para exigir la
integridad de los datos en una columna:
Restricciones PRIMARY KEY
Restricciones FOREIGN KEY
Restricciones UNIQUE
Restricciones CHECK
Definiciones DEFAULT
Permitir valores NULL

Integridad de datos

Leccin 06

Tipos de integridad de datos.Restricciones.Restricciones PRIMARY KEY :


Una tabla suele tener una columna o una combinacin de columnas cuyos valores
identifican de forma nica cada fila de la tabla. Estas columnas se denominan claves
principales de la tabla y exigen la integridad de entidad de la tabla. Puede crear una
clave principal mediante la definicin de una restriccin PRIMARY KEY cuando cree
o modifique una tabla.
Una tabla slo puede tener una restriccin PRIMARY KEY y ninguna columna a la que
se aplique una restriccin PRIMARY KEY puede aceptar valores NULL. Debido a que
las restricciones PRIMARY KEY garantizan datos nicos, con frecuencia se definen en
una columna de identidad.
Cuando especifica una restriccin PRIMARY KEY en una tabla, SQL Server 2005
Database Engine (Motor de base de datos de SQL Server 2005) exige la unicidad de
los datos mediante la creacin de un ndice nico para las columnas de clave
principal. Este ndice tambin permite un acceso rpido a los datos cuando se utiliza
la clave principal en las consultas. De esta forma, las claves principales que se eligen
deben seguir las reglas para crear ndices nicos.

Integridad de datos

Leccin 06

Tipos de integridad de datos.Restricciones.Restricciones PRIMARY KEY :


Si se define una restriccin PRIMARY KEY para ms de una columna, puede haber
valores duplicados dentro de la misma columna, pero cada combinacin de valores de
todas las columnas de la definicin de la restriccin PRIMARY KEY debe ser nica.
Como se muestra en la siguiente ilustracin, las columnas ProductID y VendorID de
la tabla Purchasing.ProductVendor forman una restriccin PRIMARY KEY
compuesta para esta tabla. As se garantiza que la combinacin de ProductID y
VendorID es nica.

Cuando trabaja con combinaciones, las restricciones PRIMARY KEY relacionan una tabla con
otra. Por ejemplo, para determinar los proveedores que suministran determinados productos,
puede utilizar una combinacin de tres elementos entre las tablas Purchasing.Vendor,
Production.Product y Purchasing.ProductVendor. Puesto que ProductVendor contiene las
columnas de ProductID y VendorID, se puede obtener acceso a las tablas Product y Vendor
mediante su relacin con ProductVendor.

Integridad de datos

Leccin 06

Tipos de integridad de datos.Restricciones.Restricciones FOREIGN KEY :


Una clave externa (FK) es una columna o combinacin de columnas que se utiliza
para establecer y exigir un vnculo entre los datos de dos tablas. Puede crear una clave
externa mediante la definicin de una restriccin FOREIGN KEY cuando cree o
modifique una tabla.
En una referencia de clave externa, se crea un vnculo entre dos tablas cuando las
columnas de una de ellas hacen referencia a las columnas de la otra que contienen el
valor de clave principal. Esta columna se convierte en una clave externa para la
segunda tabla.
Nota: Una restriccin FOREIGN KEY puede hacer referencia a columnas de tablas de
la misma base de datos o a columnas de una misma tabla. Se denominan tablas con
referencia a s mismas. Suponga, por ejemplo, una tabla de empleados con tres
columnas: employee_number, employee_name y manager_employee_number.
Dado que el responsable tambin es un empleado, hay una relacin de clave externa
desde la columna manager_employee_number a la columna employee_number.

Integridad de datos

Leccin 06

Tipos de integridad de datos.Restricciones.Restricciones FOREIGN KEY :


La tabla Sales.SalesOrderHeader de
la base de datos AdventureWorks
tiene un vnculo a la tabla
Sales.SalesPerson porque existe una
relacin lgica entre pedidos de
ventas y personal de ventas. La
columna SalesPersonID de la tabla
SalesOrderHeader coincide con la
columna de clave principal de la tabla
SalesPerson.
La
columna
SalesPersonID
de
la
tabla
SalesOrderHeader es la clave
externa para la tabla SalesPerson.
No es necesario que una restriccin FOREIGN KEY est vinculada nicamente a una restriccin PRIMARY
KEY de otra tabla; tambin puede definirse para que haga referencia a las columnas de una restriccin
UNIQUE de otra tabla. Una restriccin FOREIGN KEY puede contener valores NULL, pero si alguna columna
de una restriccin FOREIGN KEY compuesta contiene valores NULL, se omitir la comprobacin de los
valores que componen la restriccin FOREIGN KEY. Para asegurarse de que todos los valores de la restriccin
FOREIGN KEY compuesta se comprueben, especifique NOT NULL en todas las columnas que participan.

Integridad de datos

Leccin 06

Tipos de integridad de datos.Restricciones.Restricciones FOREIGN KEY :


Integridad referencial
Aunque el fin principal de una restriccin FOREIGN KEY es controlar los datos que
pueden almacenarse en la tabla de la clave externa; tambin controla los cambios
realizados en los datos de la tabla de la clave principal. Por ejemplo, si se elimina la fila de
un vendedor de la tabla Sales.SalesPerson y el identificador del vendedor se utiliza para
pedidos de ventas en la tabla Sales.SalesOrderHeader, se rompe la integridad relacional
entre ambas tablas: los pedidos del vendedor eliminado quedarn sin correspondencia en
la tabla SalesOrderHeader sin ningn vnculo con los datos de la tabla SalesPerson.
Con una restriccin FOREIGN KEY se evita esta situacin. Esta restriccin exige la
integridad referencial al garantizar que no se puedan realizar cambios en los datos de la
tabla de la clave principal si esos cambios anulan el vnculo con los datos de la tabla de la
clave externa. Si se intenta eliminar la fila de una tabla de la clave principal o cambiar un
valor de clave principal, la accin no progresar si el valor de la clave principal cambiado o
eliminado corresponde a un valor de la restriccin FOREIGN KEY de otra tabla. Para
cambiar o eliminar una fila de una restriccin FOREIGN KEY, debe antes eliminar o
cambiar los datos de clave externa de la tabla de clave externa, lo que vincula la clave
externa con otros datos de clave principal.

Integridad de datos

Leccin 06

Tipos de integridad de datos.Restricciones.Restricciones FOREIGN KEY :


Nmero de restricciones FOREIGN KEY en una tabla
SQL Server no establece un lmite predefinido en el nmero de restricciones
FOREIGN KEY que una tabla puede incluir (que hagan referencia a otras tablas) ni el
nmero de restricciones FOREIGN KEY pertenecientes a otras tablas que hagan
referencia a determinada tabla. No obstante, el nmero real de restricciones
FOREIGN KEY se ve limitado por la configuracin de hardware y el diseo de la base
de datos y la aplicacin. Se recomienda que una tabla no contenga ms de 253
restricciones FOREIGN KEY y que no sea referencia para ms de 253 restricciones
FOREIGN KEY. Tenga en cuenta el costo de exigir restricciones FOREIGN KEY
cuando disee la base de datos y las aplicaciones.

Integridad de datos

Leccin 06

Tipos de integridad de datos.Restricciones.Restricciones UNIQUE :


Puede utilizar restricciones UNIQUE para garantizar que no se escriben valores
duplicados en columnas especficas que no forman parte de una clave principal. Tanto
la restriccin UNIQUE como la restriccin PRIMARY KEY exigen la unicidad; sin
embargo, debe utilizar la restriccin UNIQUE y no PRIMARY KEY si desea exigir la
unicidad de una columna o una combinacin de columnas que no forman la clave
principal.
En una tabla se pueden definir varias restricciones UNIQUE, pero slo una restriccin
PRIMARY KEY.
Adems, a diferencia de las restricciones PRIMARY KEY, las restricciones UNIQUE
admiten valores NULL. Sin embargo, de la misma forma que cualquier valor incluido
en una restriccin UNIQUE, slo se admite un valor NULL por columna.
Es posible hacer referencia a una restriccin UNIQUE con una restriccin FOREIGN
KEY.

Integridad de datos

Leccin 06

Tipos de integridad de datos.Restricciones.Restricciones CHECK :


Las restricciones CHECK exigen la integridad del dominio mediante la limitacin de
los valores que puede aceptar una columna. Son similares a las restricciones
FOREIGN KEY porque controlan los valores que se colocan en una columna. La
diferencia estriba en la forma en que determinan los valores vlidos: las restricciones
FOREIGN KEY obtienen la lista de valores vlidos de otra tabla, mientras que las
restricciones CHECK determinan los valores vlidos a partir de una expresin lgica
que no se basa en datos de otra columna. Por ejemplo, es posible limitar el intervalo
de valores para una columna salary creando una restriccin CHECK que slo permita
datos entre 15.000 y 100.000 dlares. De este modo se impide que se escriban salarios
superiores al intervalo de salario normal.
Puede crear una restriccin CHECK con cualquier expresin lgica (booleana) que
devuelva TRUE (verdadero) o FALSE (falso) basndose en operadores lgicos. Para el
ejemplo anterior, la expresin lgica sera: salary >= 15000 AND salary <= 100000.

Integridad de datos

Leccin 06

Tipos de integridad de datos.Restricciones.Definiciones DEFAULT :


Cada columna de un registro debe contener un valor, aunque sea un valor NULL.
Puede haber situaciones en las que deba cargar una fila de datos en una tabla, pero no
conozca el valor de una columna o el valor ya no exista. Si la columna acepta valores
NULL, puede cargar la fila con un valor NULL. Pero, dado que puede no resultar
conveniente utilizar columnas que acepten valores NULL, una mejor solucin podra
ser establecer una definicin DEFAULT para la columna siempre que sea necesario.
Por ejemplo, es habitual especificar el valor cero como valor predeterminado para las
columnas numricas, o N/D (no disponible) como valor predeterminado para las
columnas de cadenas cuando no se especifica ningn valor.
Al cargar una fila en una tabla con una definicin DEFAULT para una columna, se
indica implcitamente a SQL Server 2005 Database Engine (Motor de base de datos de
SQL Server 2005) que cargue un valor predeterminado en la columna en la que no se
haya especificado ningn valor.

Integridad de datos

Leccin 06

Tipos de integridad de datos.Restricciones.Permitir valores NULL :


La aceptacin de valores NULL de una columna determina si las filas de una tabla
pueden contener un valor NULL en esa columna. Un valor NULL no es lo mismo que
cero (0), en blanco o que una cadena de caracteres de longitud cero, como "". NULL
significa que no hay ninguna entrada. La presencia de un valor NULL suele implicar
que el valor es desconocido o no est definido. Por ejemplo, un valor NULL en la
columna SellEndDate de la tabla Production.Product de la base de datos
AdventureWorks no implica que el artculo no tenga una fecha de venta final. El
valor NULL significa que se desconoce la fecha o que no se ha establecido.
Nota: Las columnas definidas con una restriccin PRIMARY KEY o una propiedad
IDENTITY no pueden aceptar valores NULL.

Integridad de datos

Leccin 06

Tipos de integridad de datos.Restricciones.Ejms. (Primary Key):


El siguiente comando CREATE TABLE crea la tabla Tabla1 y define la columna Col1
como clave primaria:
CREATE TABLE Tabla1
(
Col1 int PRIMARY KEY,
Col2 varchar(30)
)
Se puede definir la misma restriccin utilizando la definicin a nivel de tabla:
CREATE TABLE Tabla1
(Col1 int,
Col2 varchar(30),
CONSTRAINT tabla_pk PRIMARY KEY (Col1)
)
Se puede usar el comando ALTER TABLE para agregar una restriccin PRIMARY KEY
a una tabla existente:
ALTER TABLE Tabla1
ADD CONSTRAINT tabla_pk PRIMARY KEY (Col1)

Integridad de datos

Leccin 06

Tipos de integridad de datos.Restricciones.Ejms. (Foreign Key):


El siguiente comando CREATE TABLE crea la tabla Tabla1 y define la columna Col2 con una
restriccin FOREIGN KEY que apunta a la columna Empleado_ID que es clave primaria de la
tabla Empleados.
CREATE TABLE Tabla1
(Col1 int PRIMARY KEY,
Col2 int REFERENCES Empleados(Empleado_ID)
)
Se puede definir, adems la misma restriccin usando la restriccin FOREIGN KEY a nivel de
tabla:
CREATE TABLE Tabla1
(
Col1 int PRIMARY KEY,
Col2 int,
CONSTRAINT col2_fk FOREIGN KEY (Col2)
REFERENCES Empleados(Empleado_ID)
)
Se puede usar el comando ALTER TABLE para agregar una restriccin FOREIGN KEY a una tabla
existente:
ALTER TABLE Tabla1
ADD CONSTRAINT col2_fk FOREIGN KEY (Col2)
REFERENCES Empleados(Empleado_ID)

Integridad de datos

Leccin 06

Tipos de integridad de datos.Restricciones.Ejms. (UNIQUE):


Se pueden crear restricciones UNIQUE en el mismo modo que se crean restricciones
PRIMARY KEY o FOREIGN KEY:

Creando la restriccin al momento de crear la tabla ( como parte de la definicin


de la tabla)

Agregando la restriccin a una tabla existente, previendo que la o las columnas


comprendidas en la restriccin UNIQUE contengan solo valores no duplicados o
valores nulos. Una tabla puede aceptar mltiples restricciones UNIQUE.
Se pueden usar los mismos comandos Transact-SQL para crear restricciones UNIQUE
que los utilizados para crear restricciones PRIMARY KEY. Simplemente reemplace las
palabras PRIMARY KEY por UNIQUE. Al igual que con las restricciones PRIMARY
KEY las restricciones UNIQUE pueden ser modificadas o eliminadas una vez creadas.

Integridad de datos

Leccin 06

Tipos de integridad de datos.Restricciones.Ejms. (CHECK):


El siguiente comando CREATE TABLE crea una tabla Tabla1 y define la columna Col2 con un
restriccin CHECK que limita los valores que puede tomar la columna al rango comprendido
entre 0 y 100.
CREATE TABLE Tabla1
(Col1 int PRIMARY KEY,
Col2 int
CONSTRAINT monto_limite CHECK (Col2 BETWEN 0 AND 100),
Col3 varchar(30)
)
Tambin se puede definir la misma restriccin usando restriccin CHECK a nivel tabla:
CREATE TABLE Tabla1
(Col1 int PRIMARY KEY,
Col2 int ,
Col3 varchar(30),
CONSTRAINT monto_limite CHECK (Col2 BETWEN 0 AND 100)
)
Se puede utilizar el comando ALTER TABLE para agregar una retriccin CHECK a una tabla
existente:
ALTER TABLE Tabla1
ADD CONSTRAINT monto_limite CHECK (Col2 BETWEN 0 AND 100)

Integridad de datos

Leccin 06

Tipos de integridad de datos.Restricciones.Ejms. (DEFAULT ):


Por ejemplo, queremos que el valor por defecto del campo "autor" de la tabla "libros"
sea "Desconocido" y el valor por defecto del campo "cantidad" sea "0":
create table libros(
codigo int identity, t
itulo varchar(40),
autor varchar(30) not null default 'Desconocido',
editorial varchar(20),
precio decimal(5,2),
cantidad int default 0 );
Si al ingresar un nuevo registro omitimos los valores para el campo "autor" y
"cantidad", Sql Server insertar los valores por defecto; el siguiente valor de la
secuencia en "codigo", en "autor" colocar "Desconocido" y en cantidad "0".
Entonces, si al definir el campo explicitamos un valor mediante la clusula "default",
se ser el valor por defecto.

Integridad de datos

Leccin 06

Tipos de integridad de datos.Restricciones.Ejms. (NULL):


Tenemos nuestra tabla "libros". El campo "titulo" no debera estar vaco nunca,
igualmente el campo "autor". Para ello, al crear la tabla, debemos especificar que
dichos campos no admitan valores nulos:
create table libros(
titulo varchar(30) not null,
autor varchar(20) not null,
editorial varchar(15) null,
precio float );
Para especificar que un campo no admita valores nulos, debemos colocar "not null" luego de la
definicin del campo.
En el ejemplo anterior, los campos "editorial" y "precio" si admiten valores nulos.
Cuando colocamos "null" estamos diciendo que admite valores nulos (caso del campo
"editorial"); por defecto, es decir, si no lo aclaramos, los campos permiten valores nulos (caso del
campo "precio").
Si ingresamos los datos de un libro, para el cual an no hemos definido el precio podemos
colocar "null" para mostrar que no tiene precio:
insert into libros (titulo,autor,editorial,precio) values('El aleph','Borges','Emece',null);

ndices
Introduccin.- Los ndices son objetos de base de datos diseados para mejorar el
rendimiento de las consultas. En este punto veremos la estructura y el propsito de
los ndices y sus tipos y caractersticas. Se ver como determinar cuando un ndice
es necesario y apropiado, que tipo de ndice usar y como crearlos. Una vez que se
crean los ndices se deben mantener para maximizar la performance de las
consultas, para ello existen varias herramientas que asisten en la tarea de
administracin y mantenimiento de los ndices. La administracin comprende las
tareas de reconstruccin, renombrado, y eliminacin de ndices.
Arquitectura de los ndices
Los ndices estn estructurados para facilitar una respuesta rpida de conjuntos de
resultados. Los dos tipos de ndices que SQL Server soporta son agrupados y no
agrupados. Los ndices son aplicados a una o ms columnas en tablas o vistas.
Tablas indexadas son soportadas por todas las ediciones de SQL Server 2000, y
vistas indexadas son soportadas por las ediciones SQL Server Entreprise y SQL
Server Developer. Las caractersticas de un ndice afecta el uso de los recursos del
sistema y performance general. El Query Optimizer usar un ndice si este mejorar
la performance de la consulta.

Leccin 07
ndices
Propsito y estructura .Un ndice en SQL Server asiste al motor de base de datos en la ubicacin de los
registros, tal como un ndice en un libro ayuda a ubicar informacin rpidamente. Sin
ndices, una consulta deber buscar en todos los registros de la tabla en orden a
encontrar coincidencias. Un ndice de base de datos una o ms columnas de valores
de la tabla (llamadas clave del ndice) y punteros a los correspondientes registros de la
tabla. Cuando se ejecuta una consulta usando la clave del ndice, el Query Optimizer
utilizar el ndice para ubicar los registros que cumplen con la consulta.
Un ndice es estructurado por el SQL Server Index manager como un rbol
balanceado (B-tree). Un B-tree es anlogo a un rbol invertido con la raz del rbol
arriba, y los niveles hoja abajo, con niveles medios entre ambos. Cada objeto en la
estructura de rbol es un grupo de claves del ndice ordenadas llamadas pginas del
ndice.
Para un rendimiento ptimo, se crean sobre columnas que son comnmente usadas
en las consultas. Por ejemplo, los usuarios pueden consultar la tabla de Clientes en
base al apellido o al ID del cliente. Por lo tanto se deberan crear dos ndices para la
tabla: un ndice por apellido y otro por ID del cliente. Para ubicar eficientemente a los
registros, el Query Optimizer usa un ndice que concuerde con la consulta. El Query
Optimizer usar el ndice por el ID del cliente cuando se ejecute la siguiente consulta:
SELECT * FROM Clientes WHERE Cliente_ID = 798

Leccin 07
ndices
Tipos de ndices .Hay dos tipos de ndices: agrupados (clustered) y no agrupados (non clustered).
Ambos tipos de ndices son estructuras tipo B-tree. Un ndice agrupado contiene los
registros de la tabla a nivel hoja del B-tree. Un ndice no agrupado es una estructura
de ndice separada, independiente del ordenamiento fsico de los registros en la tabla.
Si existe un ndice agrupado en un tabla, un ndice no agrupado utilizar al ndice
agrupado para la bsqueda de los registros. En la mayora de los casos se crear antes
un ndice agrupado que los ndices no agrupados sobre una tabla.
ndices agrupados :
Puede haber solo un ndice agrupado por tabla o vista, dado que estos ndices
ordenan fsicamente la tabla o vista segn la clave del ndice agrupado. Este tipo de
ndices es particularmente eficiente para consultas, dado que los registros de datos
completos (en pginas de datos) son guardados a nivel de hoja del B-tree. El
ordenamiento y la ubicacin de los datos en un ndice agrupado es anlogo al de un
diccionario donde las palabras son ordenadas en forma alfabtica y las definiciones
aparecen junto a las palabras.

ndices
Tipos de ndices .-

Leccin 07

ndices agrupados :
Cuando se crea una restriccin PRIMARY KEY en un tabla que no contiene un ndice
agrupado, SQL Server crear uno y utilizar la columna de clave primaria como clave
para el ndice agrupado. Si ya existe un ndice agrupado SQL Server crear un ndice
no agrupado sobre la columna definida con una restriccin PRIMARY KEY. Una
columna definida como la clave primaria es un ndice muy til porque los valores de
la columna estn garantizados que son nicos. ndices sobre columnas de valores
nicos son de menor tamao que los ndices sobre columnas con valores duplicados y
generan estructuras de bsqueda ms eficientes.
Una columna definida con una restriccin UNIQUE genera automticamente un
ndice no agrupado.

Leccin 07
ndices
Tipos de ndices .ndices agrupados :
Para forzar el tipo de ndice a ser creado para una columna o columnas, se puede
especificar las clusulas CLUSTERED o NONCLUSTERED en los comandos CREATE
TABLE, ALTER TABLE o CREATE INDEX. Suponga que se crea una tabla Personas
que contiene las siguientes columnas: PersonaID, Nombre, Apellido y
NumDocumento. La columna PersonID se define con la restriccin PRIMARY KEY, la
columna NumDocumento con la restriccin UNIQUE. Para hacer un ndice agrupado
para la columna NumDocumento y un ndice no agrupado para la columna PersonID,
se crea la tabla usando la siguiente sintaxis:
CREATE TABLE dbo.Personas
(
PersonID smallint PRIMARY KEY NONCLUSTERED,
Nombre varchar(39),
Apellido varchar(40),
NumDocumento char(11) UNIQUE CLUSTERED
)

Leccin 07
ndices
Tipos de ndices .ndices agrupados :
Los ndices no se limitan a las restricciones. Se pueden crear ndices sobre cualquier
columna o combinacin de columnas en una tabla o vista. ndices agrupados
aseguran la unicidad internamente. Por lo que, si se crea un ndice agrupado sobre
columnas con valores no nicos SQL Server crea un nico valor sobre las columnas
duplicadas para servir de clave de ordenamiento secundaria. Para evitar el trabajo
adicional requerido para mantener valores nicos sobre columnas duplicadas,
generalmente se generan ndices agrupados sobre columnas con la restriccin
PRIMARY KEY.

También podría gustarte