rocio contreras aguila primer semestre 2010. para poder ejecutar esto sql server nos permite definir...

26
Rocio Contreras Aguila Primer Semestre 2010

Upload: emygdio-callejo

Post on 14-Apr-2015

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Rocio Contreras Aguila Primer Semestre 2010. Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir

Rocio Contreras AguilaPrimer Semestre 2010

Page 2: Rocio Contreras Aguila Primer Semestre 2010. Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir

Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir la Integridad Referencial, como:

PRIMARY KEY FOREIGN KEY UNIQUE CHECK DEFAULT

Page 3: Rocio Contreras Aguila Primer Semestre 2010. Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir

Una tabla suele tener una columna o una combinación 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 definición de una restricción PRIMARY KEY cuando cree o modifique una tabla.

Page 4: Rocio Contreras Aguila Primer Semestre 2010. Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir

Una tabla sólo puede tener una restricción PRIMARY KEY y ninguna columna a la que se aplique una restricción 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.

Page 5: Rocio Contreras Aguila Primer Semestre 2010. Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir

Cuando especifica una restricción PRIMARY KEY en una tabla, el motor de la base de datos exige la unicidad de los datos mediante la creación de un índice único para las columnas de clave principal.

Este índice también permite un acceso rápido a los datos cuando se utiliza la clave principal en las consultas. Aparte de los índices que podamos crear de acuerdo al análisis que realicemos de nuestras consultas posteriores.

Page 6: Rocio Contreras Aguila Primer Semestre 2010. Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir

Si se define una restricción PRIMARY KEY para más de una columna, puede haber valores duplicados dentro de la misma columna, pero cada combinación de valores de todas las columnas de la definición de la restricción PRIMARY KEY debe ser única.

Page 7: Rocio Contreras Aguila Primer Semestre 2010. Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir

Ejemplo:

Page 8: Rocio Contreras Aguila Primer Semestre 2010. Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir
Page 9: Rocio Contreras Aguila Primer Semestre 2010. Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir

Una clave foránea(FK) es una columna o combinación de columnas que se utiliza para establecer y exigir un vínculo entre los datos de dos tablas.

Puede crear una clave externa mediante la definición de una restricción FOREIGN KEY cuando cree o modifique una tabla o al asignar la relación en el diagrama.

Page 10: Rocio Contreras Aguila Primer Semestre 2010. Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir

En una referencia de clave externa, se crea un vínculo 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

Page 11: Rocio Contreras Aguila Primer Semestre 2010. Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir

No es necesario que una restricción FOREIGN KEY esté vinculada únicamente a una restricción PRIMARY KEY de otra tabla; también puede definirse para que haga referencia a las columnas de una restricción UNIQUE de otra tabla.

Una restricción FOREIGN KEY puede contener valores NULL, pero si alguna columna de una restricción FOREIGN KEY compuesta contiene valores NULL, se omitirá la comprobación de los valores que componen la restricción FOREIGN KEY.

Page 12: Rocio Contreras Aguila Primer Semestre 2010. Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir

Una restricción 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.

Page 13: Rocio Contreras Aguila Primer Semestre 2010. Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir

Aunque el fin principal de una restricción FOREIGN KEY es controlar los datos que pueden almacenarse en la tabla de la clave externa; también controla los cambios realizados en los datos de la tabla de la clave principal.

Si forzamos la acrualización en ambas tablas evitamos que al eliminar la clave principal de una aparezca como foránea si ya no existe.

Page 14: Rocio Contreras Aguila Primer Semestre 2010. Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir

Se recomienda crear un índice en la clave foránea por:

Los cambios en las restricciones PRIMARY KEY se comprueban con restricciones FOREIGN KEY en las tablas relacionadas.

Estas columnas se usan en criterios de combinación en JOINS entre tablas.

Page 15: Rocio Contreras Aguila Primer Semestre 2010. Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir

Puede utilizar restricciones UNIQUE para garantizar que no se escriben valores duplicados en columnas específicas que no forman parte de una clave principal.

Tanto la restricción UNIQUE como la restricción PRIMARY KEY exigen la unicidad

Se debe utilizar la restricción UNIQUE y no PRIMARY KEY si desea exigir la unicidad de una columna o una combinación de columnas que no forman la clave principal.

Page 16: Rocio Contreras Aguila Primer Semestre 2010. Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir

En una tabla se pueden definir varias restricciones UNIQUE, pero sólo una restricción PRIMARY KEY.

Para modificar una restricción UNIQUE, deberá eliminar la restricción UNIQUE existente y, a continuación, volver a crearla con la nueva definición.

Page 17: Rocio Contreras Aguila Primer Semestre 2010. Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir

Ejemplo:

Descripcion varchar(150) NOT NULL UNIQUE NONCLUSTERED

Nota: clustered = agrupado

Page 18: Rocio Contreras Aguila Primer Semestre 2010. Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir

Las restricciones CHECK exigen la integridad del dominio mediante la limitación de los valores que puede aceptar una columna.

Este constraint actúa cuando el usuario emplea una instrucción INSERT o UPDATE.

Page 19: Rocio Contreras Aguila Primer Semestre 2010. Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir

Son similares a las restricciones FOREIGN KEY porque controlan los valores que se insertan en una columna.

La diferencia está en que las restricciones FOREIGN KEY obtienen la lista de valores válidos de otra tabla, mientras que las restricciones CHECK determinan los valores válidos a partir de una expresión lógica que no se basa en datos de otra columna.

Page 20: Rocio Contreras Aguila Primer Semestre 2010. Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir

ALTER TABLE <Nombre de la tabla> ADD CONSTRAINT <Nombre del

Constraint> CHECK <Regla a validar> GO

Page 21: Rocio Contreras Aguila Primer Semestre 2010. Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir

Implementar un check constraint que verifique que las tumbas tengan un cupo máximo en el caso de Panteones

ALTER TABLE TipoTumbasADD CONSTRAINT CK_TT_V1CHECK (cupos < 20)GO

Page 22: Rocio Contreras Aguila Primer Semestre 2010. Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir

Implementar un check constraint que verifique que los sectores tengan más de un cupo y menos de 500

ALTER TABLE SectoresADD CONSTRAINT CK_SectoresCHECK (cupo > 1 and cupo<=500)GO

Page 23: Rocio Contreras Aguila Primer Semestre 2010. Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir

Estos constraints trabajan al momento de utilizar la función INSERT y asignan un valor automáticamente a la columna que no se le asignó.

Cada columna de un registro debe contener un valor, aunque sea un valor NULL.

Page 24: Rocio Contreras Aguila Primer Semestre 2010. Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir

ALTER TABLE <Nombre de la tabla>ADD CONSTRAINT <Nombre del

constraint>DEFAULT <Valor En forma

predeterminada>FOR <columna>GO

Page 25: Rocio Contreras Aguila Primer Semestre 2010. Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir

Asignar un valor en forma predeterminada a la tabla Tipo_Tumbas de forma que el campo capacidad por defecto sea 1

ALTER TABLE Tipo_TumbasADD CONSTRAINT DF_TTumbaDEFAULT 1FOR capacidadGO

Page 26: Rocio Contreras Aguila Primer Semestre 2010. Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir

Aplicar las restricciones que correspondan al modelo de datos del ejercicio CEMENTERIO de forma tal que los datos que se puedan validar con Check o Default queden implementados.

Entregar Script.