SlideShare a Scribd company logo
1 of 21
Unidad V :- Integridad de
   datos.



Se analizará el sublenguaje DDL (Data
Definition Language) para la creación
de la integridad entre las tablas de una
base de datos.
                                           1
3.- Integridad referencial

Cuando examinamos la integridad de los datos
estamos tratando de asegurar de que los datos
de la BD sean correctos, tanto de un punto de
vista literal ( sin errores ), como desde un punto
de vista del negocio por ejemplo teléfonos
correctas, precios mayores a cero, domicilios con
datos.




M.C. Daniel Esparza Soto                         2
3.- Integridad referencial

Existen los siguientes mecanismos para hacer cumplir la
integridad de datos:
a.- Integridad por procedimientos: Significa que se
puede usar estructuras programáticas y objetos
separados para hacer cumplir la integridad de los datos.
Frecuentemente esto se realiza a nivel del programa de
aplicaciones. Sin embargo, esto significa que si realiza
cualquier modificiación fuera de ese progama, la regla de
integridad no se puede cumplir.
b.- Integridad declarativa: Los mecanismos para hacer
cumplir la integridad estan declarados como parte de la
definición de las tablas en la BD y se convierten en parte
integral de estos objetos.
M.C. Daniel Esparza Soto                                     3
DDL(Data Definition Language)

3.- Integridad referencial:
       - Llave primaria (Primary Key).
       - Propiedad de identidad (Identity)
       - Llave externa (Foreign Key).
       - Llave única (Unique Constraint).
       - Restricción de comprobación (Check
       Constraint).
       - Restricción de valor predefinido (Default
       Constraint).

 M.C. Daniel Esparza Soto                            4
3.- Integridad referencial: Llave
primaria.
Se usa para validar que no se repitan campos en
una tabla. Cada una de las columnas que se usan
deben estar definidas con el atributo NOT NULL y
solamente puede existir una restricción de llave
primaria en una tabla. Se le conoce como
PRIMARY KEY.
- Al crear la tabla:
NomColumna TipoDato NOT NULL,
CONSTRAINT ‘Nom_PK’ PRIMARY KEY ( Col1, Col2,... N )
- Modificando la tabla:
ALTER TABLE nomTabla ADD
CONSTRAINT ‘Nom_PK’ PRIMARY KEY ( Col1, Col2,... N )

M.C. Daniel Esparza Soto                          5
3.- Integridad referencial: Llave
primaria.
Ejemplo:
Create table Empleados (
Emp int not null ,
Nombre Char(50)not null ,
CONSTRAINT pk_empleados PRIMARY KEY (Emp) )

Create Table ESTADOS(
EDO int not null ,
Nombre Char(50)not null)

Alter Table Estados Add
CONSTRAINT pk_Estados PRIMARY KEY ( edo )   6
M.C. Daniel Esparza Soto
Propiedad Identidad

La propiedad identidad en una columna permite
que su valor sea incrementado automaticamente
por el servidor. Las columnas tipo Integer son
las unicas que pueden tener definida esta
propiedad. Al momento de insertar un registro ,
esta columna debe de omitir su valor.

Declaración:
CREATE TABLE nomtabla(
Columna TipoDato Not Null
IDENTITY( ValorInicial, Incremento ) ,
.... )
M.C. Daniel Esparza Soto                          7
Propiedad Identidad

Ejemplo:
CREATE TABLE EMPRESAS (
CLAVE INT IDENTITY(1,2) NOT NULL ,
NOMBRE VARCHAR(2)
)
Al momento de insertar se omite la columna
identidad:

INSERT EMPRESAS (NOMBRE)
VALUES(‘CASA’)
M.C. Daniel Esparza Soto                     8
3.- Integridad referencial: Llave Externa.

Esta restricción protege la integridad referencial
entre tablas. Se crea una llave externa en una
tabla para hacer referencia a la llave primaria o a
una llave unica de otra tabla.
Esto restringe la modificación de datos contra la
tabla que contiene la llave primaria siempre y
cuando haya filas relacionadas en las tablas que
tienen la llave externa.
También impide que se añadan o actualicen
datos en la tabla que contiene la llave externa
con datos no validados en la tabla que hace
referencia.
M.C. Daniel Esparza Soto                              9
3.- Integridad referencial: Llave Externa.

- Al crear la tabla:
NomColumna TipoDato NOT NULL,
CONSTRAINT ‘Nom_FK’ FOREIGN KEY (Col1)
REFERENCES NomTablaExterna ( ColExt1, ColExt2,... N )
- Modificando la tabla:
ALTER TABLE nomTabla ADD
CONSTRAINT ‘Nom_FK’ FOREIGN KEY (Col1)
REFERENCES NomTablaExterna ( ColExt1, ColExt2,... N )




M.C. Daniel Esparza Soto                          10
|




M.C. Daniel Esparza Soto   11
3.- Integridad referencial: Llave Externa.

Create table MUNICIPIOS(
MPIO int not null ,
Nombre Char(50)not null ,
EDO int not null ,
CONSTRAINT FK_Municipios_Estados FOREIGN KEY
(EDO) REFERENCES ESTADOS ( edo ) )




M.C. Daniel Esparza Soto                       12
3.- Integridad referencial: Llave única.

Esta restricción permite crear índices únicos igual
que con las llaves primarias, pero con un poco
mas de flexibilidad:
a.- Una tabla puede contener mas de una llave
única a diferencia de la llave primaria que
solamente soporta una sola.
b.- Las columnas que contenga esta restricción
puede tener el atributo NOT NULL.




M.C. Daniel Esparza Soto                          13
3.- Integridad referencial: Llave única.

- Al crear la tabla:
NomColumna TipoDato NOT NULL,
CONSTRAINT Nom_UC UNIQUE( Col1, Col2,... N )
- Modificando la tabla:
ALTER TABLE nomTabla ADD
CONSTRAINT Nom_UC UNIQUE( Col1, Col2,... N )




M.C. Daniel Esparza Soto                       14
3.- Integridad referencial: Llave única.

Ejemplo:
Create Table Clientes(
Emp int not null,
Nombre Char(50) not null ,
RFC Char(13) null,
Curp Char(20) null,
SEXO CHAR(1) )

Alter Table Clientes
Add CONSTRAINT Clientes_UC UNIQUE ( RFC ),
Add CONSTRAINT Clientes2_UC UNIQUE ( curp )
M.C. Daniel Esparza Soto                      15
3.- Integridad referencial: Restricción de
comprobación.
Esta restricción proporciona un mecanismo para
hacer cumplir la integridad de dominio de las
columnas, teniendo más de una restricción de
comprobación en una misma columna. Estas
restricciones se realizan durante las inserciones
y actualizaciones. Dentro de la restricción se
puede hacer referencia a otras columnas como
parte del cumplimiento de las condiciones.




M.C. Daniel Esparza Soto                            16
3.- Integridad referencial: Restricción de
comprobación.
- Al crear la tabla:
NomColumna TipoDato NOT NULL,
CONSTRAINT Nom_CC CHECK( Condición )
- Modificando la tabla:
ALTER TABLE nomTabla ADD
CONSTRAINT Nom_CC CHECK( Condición )




M.C. Daniel Esparza Soto                 17
3.- Integridad referencial: Restricción de
comprobación.
- Al crear la tabla:
NomColumna TipoDato NOT NULL,
CONSTRAINT Nom_CC CHECK( Condición )
- Modificando la tabla:
ALTER TABLE nomTabla ADD
CONSTRAINT Nom_CC CHECK( Condición )


- Ejemplo:
Alter Table Clientes Add
CONSTRAINT Clientes_Sexo_CC CHECK ( SEXO IN ('F','M') )


M.C. Daniel Esparza Soto                              18
3.- Integridad referencial: Restricción de
valor predefinido.
Inserta un valor predefinido en las tablas al
momento de insertarse un valor nulo en un
campo con esta restricción.
- Al crear la tabla:
NomColumna TipoDato NOT NULL,
CONSTRAINT Nom_DC DEFAULT ( Valor ) FOR Col1
- Modificando la tabla:
ALTER TABLE nomTabla ADD
CONSTRAINT Nom_DC DEFAULT ( Valor ) FOR Col1



M.C. Daniel Esparza Soto                        19
3.- Integridad referencial: Restricción de
valor predefinido.
Alter Table Clientes Add
CONSTRAINT Clientes_Sexo_DC DEFAULT ( 'F' )
FOR SEXO




M.C. Daniel Esparza Soto                      20
Eliminaciones

-- crear la tabla
create table prueba( clave int , nombre varchar(10) )
-- agregar un campo
alter table prueba add domicilio varchar(20)
-- modificar el tipo de dato
alter table prueba alter column domicilio varchar(200)
-- eliminar la columna
alter table prueba drop column domicilio
-- eliminar a tabla
drop table prueba
-- eliminar una restricción
Alter table nombre_tabla drop constraint nombre_restricc.
M.C. Daniel Esparza Soto                                21

More Related Content

What's hot

Sql manipulacion de tabla
Sql manipulacion de tablaSql manipulacion de tabla
Sql manipulacion de tabladmonges
 
Primeros Pasos Aplicacion Java conexión BD Mysql
Primeros Pasos Aplicacion Java conexión BD MysqlPrimeros Pasos Aplicacion Java conexión BD Mysql
Primeros Pasos Aplicacion Java conexión BD MysqlEmerson Garay
 
Unidad 6 Lenguaje Sql 2
Unidad 6 Lenguaje Sql 2Unidad 6 Lenguaje Sql 2
Unidad 6 Lenguaje Sql 2Sergio Sanchez
 
Comandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-lizComandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-lizBolivar Castillo
 
Sentencias SQL Update y Delete
Sentencias SQL Update y DeleteSentencias SQL Update y Delete
Sentencias SQL Update y DeleteEmerson Garay
 
DDL oracle - base de datos
DDL oracle - base de datosDDL oracle - base de datos
DDL oracle - base de datosLuis Bando
 
Sql basico parte_i_
Sql basico parte_i_Sql basico parte_i_
Sql basico parte_i_Luis Jherry
 
Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos josecuartas
 
Trabajando con sql (parte 1)
Trabajando con sql (parte 1)Trabajando con sql (parte 1)
Trabajando con sql (parte 1)Juan Vade
 
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)Sergio Sanchez
 
Comandos utilizados en sql
Comandos utilizados en sqlComandos utilizados en sql
Comandos utilizados en sqlByron Eras
 
Breve resumen sobre consultas básicas en MySQL
Breve resumen sobre consultas básicas en MySQLBreve resumen sobre consultas básicas en MySQL
Breve resumen sobre consultas básicas en MySQLTotus Muertos
 
Como realizar consultas en sql (Unidad 3)
Como realizar consultas en sql (Unidad 3)Como realizar consultas en sql (Unidad 3)
Como realizar consultas en sql (Unidad 3)Orlando Verdugo
 
Unidad vi vii dml select
Unidad vi vii dml selectUnidad vi vii dml select
Unidad vi vii dml selectOrlando Verdugo
 

What's hot (18)

Bdii 09 ddl_new
Bdii 09 ddl_newBdii 09 ddl_new
Bdii 09 ddl_new
 
Sql manipulacion de tabla
Sql manipulacion de tablaSql manipulacion de tabla
Sql manipulacion de tabla
 
Primeros Pasos Aplicacion Java conexión BD Mysql
Primeros Pasos Aplicacion Java conexión BD MysqlPrimeros Pasos Aplicacion Java conexión BD Mysql
Primeros Pasos Aplicacion Java conexión BD Mysql
 
Unidad 6 Lenguaje Sql 2
Unidad 6 Lenguaje Sql 2Unidad 6 Lenguaje Sql 2
Unidad 6 Lenguaje Sql 2
 
Comandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-lizComandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-liz
 
Sentencias SQL Update y Delete
Sentencias SQL Update y DeleteSentencias SQL Update y Delete
Sentencias SQL Update y Delete
 
DDL oracle - base de datos
DDL oracle - base de datosDDL oracle - base de datos
DDL oracle - base de datos
 
Sql basico parte_i_
Sql basico parte_i_Sql basico parte_i_
Sql basico parte_i_
 
SENTENCIAS DE SQL SERVER
SENTENCIAS DE SQL SERVERSENTENCIAS DE SQL SERVER
SENTENCIAS DE SQL SERVER
 
Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos
 
Trabajando con sql (parte 1)
Trabajando con sql (parte 1)Trabajando con sql (parte 1)
Trabajando con sql (parte 1)
 
Aprenda SQL Server
Aprenda SQL ServerAprenda SQL Server
Aprenda SQL Server
 
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
 
Comandos utilizados en sql
Comandos utilizados en sqlComandos utilizados en sql
Comandos utilizados en sql
 
Breve resumen sobre consultas básicas en MySQL
Breve resumen sobre consultas básicas en MySQLBreve resumen sobre consultas básicas en MySQL
Breve resumen sobre consultas básicas en MySQL
 
Como realizar consultas en sql (Unidad 3)
Como realizar consultas en sql (Unidad 3)Como realizar consultas en sql (Unidad 3)
Como realizar consultas en sql (Unidad 3)
 
Unidad vi vii dml select
Unidad vi vii dml selectUnidad vi vii dml select
Unidad vi vii dml select
 
Clase 3 El lenguaje DML de SQL
Clase 3 El lenguaje DML de SQLClase 3 El lenguaje DML de SQL
Clase 3 El lenguaje DML de SQL
 

Viewers also liked

Unidad v integridad relacional
Unidad v  integridad relacionalUnidad v  integridad relacional
Unidad v integridad relacionalOrlando Verdugo
 
Normalizacion de Base de Datos
Normalizacion de Base de DatosNormalizacion de Base de Datos
Normalizacion de Base de DatosErnesto
 
Normalizacion base de datos
Normalizacion base de datosNormalizacion base de datos
Normalizacion base de datosGabriela Bartoli
 
Unidad iii normalizacion
Unidad iii normalizacionUnidad iii normalizacion
Unidad iii normalizacionOrlando Verdugo
 
Normalización de Bases de Datos (Hasta Boyce-Codd)
Normalización de Bases de Datos (Hasta Boyce-Codd)Normalización de Bases de Datos (Hasta Boyce-Codd)
Normalización de Bases de Datos (Hasta Boyce-Codd)Ariel Tonatiuh Espindola
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de DatosVictor Chavez
 
MODELO ENTIDAD RELACIÓN
MODELO ENTIDAD RELACIÓNMODELO ENTIDAD RELACIÓN
MODELO ENTIDAD RELACIÓNdhmorales
 
Reglas de integridad bd relacional
Reglas de integridad bd relacionalReglas de integridad bd relacional
Reglas de integridad bd relacionalDenisse C
 
Normalización de una base de datos
Normalización de una base de datosNormalización de una base de datos
Normalización de una base de datosReimer Xavier
 

Viewers also liked (17)

Unidad v integridad relacional
Unidad v  integridad relacionalUnidad v  integridad relacional
Unidad v integridad relacional
 
Unidad ii diseño de bd
Unidad ii diseño de bdUnidad ii diseño de bd
Unidad ii diseño de bd
 
Unidad iv ddl
Unidad iv ddlUnidad iv ddl
Unidad iv ddl
 
Diapositivas de SOR II
Diapositivas de SOR IIDiapositivas de SOR II
Diapositivas de SOR II
 
Normalizacion de Base de Datos
Normalizacion de Base de DatosNormalizacion de Base de Datos
Normalizacion de Base de Datos
 
Normalizacion base de datos
Normalizacion base de datosNormalizacion base de datos
Normalizacion base de datos
 
Unidad iii normalizacion
Unidad iii normalizacionUnidad iii normalizacion
Unidad iii normalizacion
 
Normalización de Bases de Datos (Hasta Boyce-Codd)
Normalización de Bases de Datos (Hasta Boyce-Codd)Normalización de Bases de Datos (Hasta Boyce-Codd)
Normalización de Bases de Datos (Hasta Boyce-Codd)
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de Datos
 
MODELO ENTIDAD RELACIÓN
MODELO ENTIDAD RELACIÓNMODELO ENTIDAD RELACIÓN
MODELO ENTIDAD RELACIÓN
 
Normalizacion
NormalizacionNormalizacion
Normalizacion
 
Reglas de integridad bd relacional
Reglas de integridad bd relacionalReglas de integridad bd relacional
Reglas de integridad bd relacional
 
Normalización de una base de datos
Normalización de una base de datosNormalización de una base de datos
Normalización de una base de datos
 
Examen diagnostico de diseño de bd
Examen diagnostico de diseño de bdExamen diagnostico de diseño de bd
Examen diagnostico de diseño de bd
 
Guia normalización
Guia normalizaciónGuia normalización
Guia normalización
 
Almacen de datos
Almacen de datosAlmacen de datos
Almacen de datos
 
Guía de ejercicios de normalizacion
Guía de ejercicios de normalizacionGuía de ejercicios de normalizacion
Guía de ejercicios de normalizacion
 

Similar to Unidad v integridad relacional

Tablas y tipos de datos
Tablas y tipos de datosTablas y tipos de datos
Tablas y tipos de datosDILMER OLIVERA
 
CreacióN De Objetos En MySQL
CreacióN De Objetos En MySQLCreacióN De Objetos En MySQL
CreacióN De Objetos En MySQLalexmerono
 
ManualPracticoSQL.pdf
ManualPracticoSQL.pdfManualPracticoSQL.pdf
ManualPracticoSQL.pdfJenny29068
 
EJERCICIO SENTENCIAS SQL_Completo.pdf
EJERCICIO SENTENCIAS SQL_Completo.pdfEJERCICIO SENTENCIAS SQL_Completo.pdf
EJERCICIO SENTENCIAS SQL_Completo.pdfBLANCAGESTRADARENTER
 
Constraints (restricciones).pptx
Constraints (restricciones).pptxConstraints (restricciones).pptx
Constraints (restricciones).pptxNahumNegrete
 
Tablas y tipos de datos
Tablas y tipos de datosTablas y tipos de datos
Tablas y tipos de datosSuarezJhon
 
TODO SOBRE BASE DE DATOS CON MICROSOFT SQL SERVER
TODO SOBRE BASE DE DATOS CON MICROSOFT SQL SERVERTODO SOBRE BASE DE DATOS CON MICROSOFT SQL SERVER
TODO SOBRE BASE DE DATOS CON MICROSOFT SQL SERVERSaulTapiaAlmidon
 
Sesión 12 -Diseño de BD_Ciclo_3.pptx
Sesión 12 -Diseño de BD_Ciclo_3.pptxSesión 12 -Diseño de BD_Ciclo_3.pptx
Sesión 12 -Diseño de BD_Ciclo_3.pptxJohn McClane
 
Ejemploddl dml-ok
Ejemploddl dml-okEjemploddl dml-ok
Ejemploddl dml-okBB
 
Sentencias Sql
Sentencias SqlSentencias Sql
Sentencias Sqlfer951
 
Manual practico para sql ingieneria de sistemas
Manual practico para sql ingieneria de sistemas  Manual practico para sql ingieneria de sistemas
Manual practico para sql ingieneria de sistemas Crhis
 
Manual practico SQL
Manual practico SQLManual practico SQL
Manual practico SQLAna Aguirre
 
04-SQLBuenaPresentaciónyConceptos.pdf
04-SQLBuenaPresentaciónyConceptos.pdf04-SQLBuenaPresentaciónyConceptos.pdf
04-SQLBuenaPresentaciónyConceptos.pdfssuser78e8eb
 

Similar to Unidad v integridad relacional (20)

Tablas y tipos de datos
Tablas y tipos de datosTablas y tipos de datos
Tablas y tipos de datos
 
CreacióN De Objetos En MySQL
CreacióN De Objetos En MySQLCreacióN De Objetos En MySQL
CreacióN De Objetos En MySQL
 
ManualPracticoSQL.pdf
ManualPracticoSQL.pdfManualPracticoSQL.pdf
ManualPracticoSQL.pdf
 
EJERCICIO SENTENCIAS SQL_Completo.pdf
EJERCICIO SENTENCIAS SQL_Completo.pdfEJERCICIO SENTENCIAS SQL_Completo.pdf
EJERCICIO SENTENCIAS SQL_Completo.pdf
 
Constraints (restricciones).pptx
Constraints (restricciones).pptxConstraints (restricciones).pptx
Constraints (restricciones).pptx
 
Tablas y tipos de datos
Tablas y tipos de datosTablas y tipos de datos
Tablas y tipos de datos
 
TODO SOBRE BASE DE DATOS CON MICROSOFT SQL SERVER
TODO SOBRE BASE DE DATOS CON MICROSOFT SQL SERVERTODO SOBRE BASE DE DATOS CON MICROSOFT SQL SERVER
TODO SOBRE BASE DE DATOS CON MICROSOFT SQL SERVER
 
Sesión 12 -Diseño de BD_Ciclo_3.pptx
Sesión 12 -Diseño de BD_Ciclo_3.pptxSesión 12 -Diseño de BD_Ciclo_3.pptx
Sesión 12 -Diseño de BD_Ciclo_3.pptx
 
DDL
DDLDDL
DDL
 
Comandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-lizComandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-liz
 
Ejemploddl dml-ok
Ejemploddl dml-okEjemploddl dml-ok
Ejemploddl dml-ok
 
Sentencias Sql
Sentencias SqlSentencias Sql
Sentencias Sql
 
Manual practico para sql ingieneria de sistemas
Manual practico para sql ingieneria de sistemas  Manual practico para sql ingieneria de sistemas
Manual practico para sql ingieneria de sistemas
 
Manual practico SQL
Manual practico SQLManual practico SQL
Manual practico SQL
 
Manual practicosql
Manual practicosqlManual practicosql
Manual practicosql
 
Manual practico SQL
Manual practico SQLManual practico SQL
Manual practico SQL
 
Manual practico-sql
Manual practico-sqlManual practico-sql
Manual practico-sql
 
Unidad 6 Lenguaje Sql
Unidad 6 Lenguaje SqlUnidad 6 Lenguaje Sql
Unidad 6 Lenguaje Sql
 
04-SQL.pdf
04-SQL.pdf04-SQL.pdf
04-SQL.pdf
 
04-SQLBuenaPresentaciónyConceptos.pdf
04-SQLBuenaPresentaciónyConceptos.pdf04-SQLBuenaPresentaciónyConceptos.pdf
04-SQLBuenaPresentaciónyConceptos.pdf
 

More from Orlando Verdugo

More from Orlando Verdugo (6)

Unidad ii diseño de bd
Unidad ii diseño de bdUnidad ii diseño de bd
Unidad ii diseño de bd
 
Unidad i intro a base de datos
Unidad i intro a base de datosUnidad i intro a base de datos
Unidad i intro a base de datos
 
Blogs para ganar_dinero
Blogs para ganar_dineroBlogs para ganar_dinero
Blogs para ganar_dinero
 
Como ganar-dinero-en-linea
Como ganar-dinero-en-lineaComo ganar-dinero-en-linea
Como ganar-dinero-en-linea
 
Ejercicoo matematico
Ejercicoo matematicoEjercicoo matematico
Ejercicoo matematico
 
Ejercicoo matematico
Ejercicoo matematicoEjercicoo matematico
Ejercicoo matematico
 

Unidad v integridad relacional

  • 1. Unidad V :- Integridad de datos. Se analizará el sublenguaje DDL (Data Definition Language) para la creación de la integridad entre las tablas de una base de datos. 1
  • 2. 3.- Integridad referencial Cuando examinamos la integridad de los datos estamos tratando de asegurar de que los datos de la BD sean correctos, tanto de un punto de vista literal ( sin errores ), como desde un punto de vista del negocio por ejemplo teléfonos correctas, precios mayores a cero, domicilios con datos. M.C. Daniel Esparza Soto 2
  • 3. 3.- Integridad referencial Existen los siguientes mecanismos para hacer cumplir la integridad de datos: a.- Integridad por procedimientos: Significa que se puede usar estructuras programáticas y objetos separados para hacer cumplir la integridad de los datos. Frecuentemente esto se realiza a nivel del programa de aplicaciones. Sin embargo, esto significa que si realiza cualquier modificiación fuera de ese progama, la regla de integridad no se puede cumplir. b.- Integridad declarativa: Los mecanismos para hacer cumplir la integridad estan declarados como parte de la definición de las tablas en la BD y se convierten en parte integral de estos objetos. M.C. Daniel Esparza Soto 3
  • 4. DDL(Data Definition Language) 3.- Integridad referencial: - Llave primaria (Primary Key). - Propiedad de identidad (Identity) - Llave externa (Foreign Key). - Llave única (Unique Constraint). - Restricción de comprobación (Check Constraint). - Restricción de valor predefinido (Default Constraint). M.C. Daniel Esparza Soto 4
  • 5. 3.- Integridad referencial: Llave primaria. Se usa para validar que no se repitan campos en una tabla. Cada una de las columnas que se usan deben estar definidas con el atributo NOT NULL y solamente puede existir una restricción de llave primaria en una tabla. Se le conoce como PRIMARY KEY. - Al crear la tabla: NomColumna TipoDato NOT NULL, CONSTRAINT ‘Nom_PK’ PRIMARY KEY ( Col1, Col2,... N ) - Modificando la tabla: ALTER TABLE nomTabla ADD CONSTRAINT ‘Nom_PK’ PRIMARY KEY ( Col1, Col2,... N ) M.C. Daniel Esparza Soto 5
  • 6. 3.- Integridad referencial: Llave primaria. Ejemplo: Create table Empleados ( Emp int not null , Nombre Char(50)not null , CONSTRAINT pk_empleados PRIMARY KEY (Emp) ) Create Table ESTADOS( EDO int not null , Nombre Char(50)not null) Alter Table Estados Add CONSTRAINT pk_Estados PRIMARY KEY ( edo ) 6 M.C. Daniel Esparza Soto
  • 7. Propiedad Identidad La propiedad identidad en una columna permite que su valor sea incrementado automaticamente por el servidor. Las columnas tipo Integer son las unicas que pueden tener definida esta propiedad. Al momento de insertar un registro , esta columna debe de omitir su valor. Declaración: CREATE TABLE nomtabla( Columna TipoDato Not Null IDENTITY( ValorInicial, Incremento ) , .... ) M.C. Daniel Esparza Soto 7
  • 8. Propiedad Identidad Ejemplo: CREATE TABLE EMPRESAS ( CLAVE INT IDENTITY(1,2) NOT NULL , NOMBRE VARCHAR(2) ) Al momento de insertar se omite la columna identidad: INSERT EMPRESAS (NOMBRE) VALUES(‘CASA’) M.C. Daniel Esparza Soto 8
  • 9. 3.- Integridad referencial: Llave Externa. Esta restricción protege la integridad referencial entre tablas. Se crea una llave externa en una tabla para hacer referencia a la llave primaria o a una llave unica de otra tabla. Esto restringe la modificación de datos contra la tabla que contiene la llave primaria siempre y cuando haya filas relacionadas en las tablas que tienen la llave externa. También impide que se añadan o actualicen datos en la tabla que contiene la llave externa con datos no validados en la tabla que hace referencia. M.C. Daniel Esparza Soto 9
  • 10. 3.- Integridad referencial: Llave Externa. - Al crear la tabla: NomColumna TipoDato NOT NULL, CONSTRAINT ‘Nom_FK’ FOREIGN KEY (Col1) REFERENCES NomTablaExterna ( ColExt1, ColExt2,... N ) - Modificando la tabla: ALTER TABLE nomTabla ADD CONSTRAINT ‘Nom_FK’ FOREIGN KEY (Col1) REFERENCES NomTablaExterna ( ColExt1, ColExt2,... N ) M.C. Daniel Esparza Soto 10
  • 12. 3.- Integridad referencial: Llave Externa. Create table MUNICIPIOS( MPIO int not null , Nombre Char(50)not null , EDO int not null , CONSTRAINT FK_Municipios_Estados FOREIGN KEY (EDO) REFERENCES ESTADOS ( edo ) ) M.C. Daniel Esparza Soto 12
  • 13. 3.- Integridad referencial: Llave única. Esta restricción permite crear índices únicos igual que con las llaves primarias, pero con un poco mas de flexibilidad: a.- Una tabla puede contener mas de una llave única a diferencia de la llave primaria que solamente soporta una sola. b.- Las columnas que contenga esta restricción puede tener el atributo NOT NULL. M.C. Daniel Esparza Soto 13
  • 14. 3.- Integridad referencial: Llave única. - Al crear la tabla: NomColumna TipoDato NOT NULL, CONSTRAINT Nom_UC UNIQUE( Col1, Col2,... N ) - Modificando la tabla: ALTER TABLE nomTabla ADD CONSTRAINT Nom_UC UNIQUE( Col1, Col2,... N ) M.C. Daniel Esparza Soto 14
  • 15. 3.- Integridad referencial: Llave única. Ejemplo: Create Table Clientes( Emp int not null, Nombre Char(50) not null , RFC Char(13) null, Curp Char(20) null, SEXO CHAR(1) ) Alter Table Clientes Add CONSTRAINT Clientes_UC UNIQUE ( RFC ), Add CONSTRAINT Clientes2_UC UNIQUE ( curp ) M.C. Daniel Esparza Soto 15
  • 16. 3.- Integridad referencial: Restricción de comprobación. Esta restricción proporciona un mecanismo para hacer cumplir la integridad de dominio de las columnas, teniendo más de una restricción de comprobación en una misma columna. Estas restricciones se realizan durante las inserciones y actualizaciones. Dentro de la restricción se puede hacer referencia a otras columnas como parte del cumplimiento de las condiciones. M.C. Daniel Esparza Soto 16
  • 17. 3.- Integridad referencial: Restricción de comprobación. - Al crear la tabla: NomColumna TipoDato NOT NULL, CONSTRAINT Nom_CC CHECK( Condición ) - Modificando la tabla: ALTER TABLE nomTabla ADD CONSTRAINT Nom_CC CHECK( Condición ) M.C. Daniel Esparza Soto 17
  • 18. 3.- Integridad referencial: Restricción de comprobación. - Al crear la tabla: NomColumna TipoDato NOT NULL, CONSTRAINT Nom_CC CHECK( Condición ) - Modificando la tabla: ALTER TABLE nomTabla ADD CONSTRAINT Nom_CC CHECK( Condición ) - Ejemplo: Alter Table Clientes Add CONSTRAINT Clientes_Sexo_CC CHECK ( SEXO IN ('F','M') ) M.C. Daniel Esparza Soto 18
  • 19. 3.- Integridad referencial: Restricción de valor predefinido. Inserta un valor predefinido en las tablas al momento de insertarse un valor nulo en un campo con esta restricción. - Al crear la tabla: NomColumna TipoDato NOT NULL, CONSTRAINT Nom_DC DEFAULT ( Valor ) FOR Col1 - Modificando la tabla: ALTER TABLE nomTabla ADD CONSTRAINT Nom_DC DEFAULT ( Valor ) FOR Col1 M.C. Daniel Esparza Soto 19
  • 20. 3.- Integridad referencial: Restricción de valor predefinido. Alter Table Clientes Add CONSTRAINT Clientes_Sexo_DC DEFAULT ( 'F' ) FOR SEXO M.C. Daniel Esparza Soto 20
  • 21. Eliminaciones -- crear la tabla create table prueba( clave int , nombre varchar(10) ) -- agregar un campo alter table prueba add domicilio varchar(20) -- modificar el tipo de dato alter table prueba alter column domicilio varchar(200) -- eliminar la columna alter table prueba drop column domicilio -- eliminar a tabla drop table prueba -- eliminar una restricción Alter table nombre_tabla drop constraint nombre_restricc. M.C. Daniel Esparza Soto 21