You are on page 1of 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 Tipos de integridad de datos.Restricciones.-

Leccin 06

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 Tipos de integridad de datos.Restricciones.-

Leccin 06

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 Tipos de integridad de datos.Restricciones.-

Leccin 06

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 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.

Leccin 06

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 Tipos de integridad de datos.Restricciones.Restricciones FOREIGN KEY : Integridad referencial

Leccin 06

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 Tipos de integridad de datos.Restricciones.Restricciones FOREIGN KEY :

Leccin 06

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 Tipos de integridad de datos.Restricciones.-

Leccin 06

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 Tipos de integridad de datos.Restricciones.-

Leccin 06

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 Tipos de integridad de datos.Restricciones.-

Leccin 06

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 Tipos de integridad de datos.Restricciones.-

Leccin 06

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 Tipos de integridad de datos.Restricciones.-

Leccin 06

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 Tipos de integridad de datos.Restricciones.Ejms. (Foreign Key):

Leccin 06

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 Tipos de integridad de datos.Restricciones.Ejms. (UNIQUE):

Leccin 06

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 Tipos de integridad de datos.Restricciones.Ejms. (CHECK):

Leccin 06

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 Tipos de integridad de datos.Restricciones.-

Leccin 06

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 Tipos de integridad de datos.Restricciones.-

Leccin 06

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.

You might also like