SlideShare una empresa de Scribd logo
1 de 18
3. Restricciones de las Bases de
Datos


  3.1 Tipos de restricciones de integridad.
  3.2 Uso de restricciones.
  3.3 Caso de pruebas para restricciones.
Definición




                                Ayudan a mantener la
                                    consistencia
                                 semántica en la BD



                                  Aseguran que los
                                 usuarios autorizados
                                   no provoquen la
                                      pérdida de
                                consistencia de datos.



Elaborado por :Luz Alondra Katt Morales
Definición


                                           Entidad


                                           Dominio


                                          Referencial


                               Definida por el usuario


Elaborado por :Luz Alondra Katt Morales     http://msdn.microsoft.com/es-es/library/ms184276.aspx
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.

En esta no está permitido que algún componente de la clave primaria acepte
valores nulos.
Las razones de esta regla son:

   Las tuplas en las relaciones base representan entidades en la realidad.

   Las entidades en la realidad son identificables por definición.

   Sus contrapartes en la base de datos también deben ser identificables.

   Los valores de la clave primaria sirven como identificadores en la base de datos.

   Los valores de clave primaria no pueden ser nulos.


Elaborado por :Luz Alondra Katt Morales           http://msdn.microsoft.com/es-es/library/ms184276.aspx
                     http://juanin.bligoo.com/content/view/606209/Integridad-en-las-Bases-de-Datos.html
Integridad de Entidad - unicidad
La restricción UNIQUE asegura que todos los valores en una columna sean
distintos.

Por ejemplo, en la siguiente instrucción,
CREATE TABLE Customer
(SID integer Unique,
Last_Name varchar (30),
First_Name varchar(30));
D
La columna “SID” no puede incluir valores duplicados, mientras dicha
restricción no se aplica para columnas “Last_Name” y “First_Name”.




Elaborado por :Luz Alondra Katt Morales   http://sql.1keydata.com/es/sql-constraint.php
Integridad de Entidad – Clave Primaria
MySQL:
CREATE TABLE Customer
(SID integer,
Last_Name varchar(30),
First_Name varchar(30),
PRIMARY KEY (SID));
                                        Oracle:
                               CREATE TABLE Customer
                              (SID integer PRIMARY KEY,
                                Last_Name varchar(30),
                                First_Name varchar(30));
                                                                       SQL Server:
                                                         CREATE TABLE Customer
                                                        (SID integer PRIMARY KEY,
                                                            Last_Name varchar(30),
                                                           First_Name varchar(30));


Elaborado por :Luz Alondra Katt Morales
                                          http://sql.1keydata.com/es/sql-constraint.php
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.
                     Dato              Longitud         Descripción
               Bit                1 byte            Valores true/false
               Byte               1 byte            Entero entre 0 y
                                                    255
               Counter            4 bytes           Campo ID (long)
               Currency           8 bytes           Numérico
               Datetime           8 bytes           Fecha
               Text               1 byte/caracter   De 0 a 255
                                                    caracteres


Elaborado por :Luz Alondra Katt Morales   http://msdn.microsoft.com/es-es/library/ms184276.aspx
Integridad de Dominio – No nulo
NOT NULL
En forma predeterminada, una columna puede ser NULL. Si no desea permitir
un valor NULL en una columna, querrá colocar una restricción en esta columna
especificando que NULL no es ahora un valor permitido.

Por ejemplo, en la siguiente instrucción,

CREATE TABLE Customer
(SID integer NOT NULL,
Last_Name varchar (30) NOT NULL,
First_Name varchar(30));


Las columnas “SID” y “Last_Name” no incluyen NULL, mientras que
“First_Name” puede incluir NULL.



Elaborado por :Luz Alondra Katt Morales
                                          http://sql.1keydata.com/es/sql-constraint.php
Integridad de Dominio – Check
La restricción CHECK asegura que todos los valores en una columna cumplan
ciertas condiciones.

Por ejemplo, en la siguiente instrucción,
CREATE TABLE Customer
(SID integer CHECK (SID > 0),
Last_Name varchar (30),
First_Name varchar(30));


La columna “SID” sólo debe incluir enteros mayores a 0.




Elaborado por :Luz Alondra Katt Morales
                                          http://sql.1keydata.com/es/sql-constraint.php
Integridad de Dominio – Llave Foranea
MySQL:
CREATE TABLE ORDERS
(Order_ID integer,
Order_Date date,
Customer_SID integer,
Amount double,
Primary Key (Order_ID),
Foreign Key (Customer_SID) references CUSTOMER(SID));

                                           Oracle:
                                 CREATE TABLE ORDERS
                               (Order_ID integer primary key,
                                      Order_Date date,
                      Customer_SID integer references CUSTOMER(SID),
                                      Amount double);
                                                                                 SQL Server:
                                                                   CREATE TABLE ORDERS
                                                                (Order_ID integer primary key,
                                                                        Order_Date datetime,
                                           Customer_SID integer references CUSTOMER(SID),
                                                                              Amount double);

Elaborado por :Luz Alondra Katt Morales
                                            http://sql.1keydata.com/es/sql-constraint.php
Integridad Referencial
protege las relaciones definidas entre las tablas cuando se crean o se eliminan
filas. 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.
                       No se podrá introducir un valor en la tabla
                       relacionada si antes no ha sido introducida en la
                       tabla principal.

                       No se puede eliminar un registro de una tabla
                       principal si existen registros coincidentes en la
                       tabla relacionada.

                       No se puede cambiar un valor de la clave
                       primaria en la tabla principal si el registro tiene
                       registros relacionados.


Elaborado por :Luz Alondra Katt Morales      http://msdn.microsoft.com/es-es/library/ms184276.aspx
Integridad Referencial

Por ejemplo, en las tablas Sales.SalesOrderDetail y Production.Product de la
base de datos AdventureWorks2008R2, la integridad referencial se basa en la
relación entre la clave externa (ProductID) de la tabla Sales.SalesOrderDetail y
la clave principal (ProductID) de la tabla Production.Product. Esta relación
garantiza que un pedido de ventas no pueda nunca hacer referencia a un
producto que no existe en la tabla Production.Product.




Elaborado por :Luz Alondra Katt Morales   http://msdn.microsoft.com/es-es/library/ms184276.aspx
Integridad definida por el usuario

La integridad definida por el usuario permite definir reglas de empresa específicas
que no pertenecen a ninguna otra categoría de integridad. Todas las categorías
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.




Elaborado por :Luz Alondra Katt Morales   http://msdn.microsoft.com/es-es/library/ms184276.aspx
Constraints

CREATE TABLE parent
( id INT NOT NULL, PRIMARY KEY (id) ) ENGINE=INNODB;

CREATE TABLE child
( id INT, parent_id INT, INDEX par_ind (parent_id),
FOREIGN KEY (parent_id) REFERENCES parent(id) ON DELETE CASCADE )
ENGINE=INNODB;



        ALTER TABLE yourtablename ADD [CONSTRAINT symbol] FOREIGN
        KEY [id] (index_col_name, ...) REFERENCES tbl_name
        (index_col_name, ...) [ON DELETE {RESTRICT | CASCADE | SET
        NULL | NO ACTION}] [ON UPDATE {RESTRICT | CASCADE | SET
        NULL | NO ACTION}]




Elaborado por :Luz Alondra Katt Morales   http://dev.mysql.com/doc/refman/5.0/es/innodb-foreign-
                                          key-constraints.html
Constraints – NOT NULL

Name                           Null                Type
CATEGORIAID NOT                NULL               CHAR (18)
UBICACIÓN                                         CHAR (18)
NOMBRECATEGORÍA                                    CHAR(18)

Modificamos la restricción de la tabla.

ALTER TABLE CATEGORIA
MODIFY(UBICACIÓN NOT NULL);
CATEGORIAID NOT NULL CHAR(18)
UBICACIÓN NOT NULL CHAR(18)
NOMBRECATEGORÍA CHAR(18)




Elaborado por :Luz Alondra Katt Morales
                                          http://es.scribd.com/doc/13991883/Creacion-y-Uso-de-Constraints
Constraints

Insertamos valores a nuestra tabla.
INSERT INTO CATEGORIAVALUES ('AL12', ,'ALIMENTOS');

ERROR:Error starting at line 1 in command:
INSERT INTO CATEGORIAVALUES ('AL12',,'ALIMENTOS')
Error at Command Line:2
Column:15Error report:SQL
Error: ORA-00936: falta una expresión00936. 00000 - "missing
expression"*Cause:*Action:




Elaborado por :Luz Alondra Katt Morales
                                          http://es.scribd.com/doc/13991883/Creacion-y-Uso-de-Constraints
Constraints - UNIQUE

Name           Null                                Type
RUCDNICTE      NOT NULL                             CHAR(18)
DIRECCION                                          CHAR(18)
EMAIL                                               CHAR(18)
TELEFONO1                                          CHAR(18)
RAZONSOCNOMBRE                                     CHAR(18)
TELEFONO2                                          CHAR(18)

En este caso realizamos dos restricciones UNIQUE a los campos de Email
yRazonSocial.

ALTER TABLE CLIENTEMODIFY (CONSTRAINT UNMAIL UNIQUE(EMAIL))

Insertamos algunas filas a nuestra tabla.
INSERT INTO CLIENTEVALUES('43918908','LOSALIZOS
212','arzame@yahoo.es','8762412','ArmandoZamora','976457238');
1 rows inserted
Elaborado por :Luz Alondra Katt Morales
                                          http://es.scribd.com/doc/13991883/Creacion-y-Uso-de-Constraints
Constraints - UNIQUE

INSERT INTO CLIENTEVALUES
('439874232','EL SOL 12', 'arzame@yahoo.es', '9878712', 'ArmandoSanchez',
'976897638');

ERROR:Error starting at line 1 in command:INSERT INTO
CLIENTEVALUES('439874232','EL SOL
#212','arzame@yahoo.es','9878712','ArmandoSanchez','976897638')

Error report:SQL Error: ORA-00001: restricción única (SYSTEM.XPKCLIENTE)
violada00001. 00000 - "unique constraint (%s.%s) violated"*Cause: An
UPDATE or INSERT statement attempted to insert a duplicatekey.

For Trusted Oracle configured in DBMS MAC mode, you may seethis message if
a duplicate entry exists at a different level.*Action: Either remove the unique
restriction or do not insert the key



 Elaborado por :Luz Alondra Katt Morales
                                           http://es.scribd.com/doc/13991883/Creacion-y-Uso-de-Constraints

Más contenido relacionado

La actualidad más candente

Introducción a las Bases de Datos
Introducción a las Bases de DatosIntroducción a las Bases de Datos
Introducción a las Bases de DatosEvelynUBA
 
Lenguajes de bases de datos
Lenguajes de bases de datosLenguajes de bases de datos
Lenguajes de bases de datosralbarracin
 
Modelo Relacional
Modelo RelacionalModelo Relacional
Modelo Relacionalomarzon
 
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)Sergio Sanchez
 
Sistemas Gestores de Bases de Datos
Sistemas Gestores de Bases de DatosSistemas Gestores de Bases de Datos
Sistemas Gestores de Bases de Datosalexmerono
 
Seguridad en Base de Datos
Seguridad en Base de DatosSeguridad en Base de Datos
Seguridad en Base de Datosmyriam sarango
 
Diapositivas sobre BD (Base de Datos)
Diapositivas sobre BD (Base de Datos)Diapositivas sobre BD (Base de Datos)
Diapositivas sobre BD (Base de Datos)angeljlp08
 
HISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOSHISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOSdfgdfgs
 
Unidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacionUnidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacionLuiS YmAY
 
12 reglas de codd
12 reglas de codd12 reglas de codd
12 reglas de coddenriquesyso
 
Unidad 1. Fundamentos de Base de Datos
Unidad 1. Fundamentos de Base de DatosUnidad 1. Fundamentos de Base de Datos
Unidad 1. Fundamentos de Base de Datoshugodanielgd
 

La actualidad más candente (20)

Comandos ddl
Comandos ddlComandos ddl
Comandos ddl
 
NORMALIZACIÓN
NORMALIZACIÓN  NORMALIZACIÓN
NORMALIZACIÓN
 
Introducción a las Bases de Datos
Introducción a las Bases de DatosIntroducción a las Bases de Datos
Introducción a las Bases de Datos
 
Lenguajes de bases de datos
Lenguajes de bases de datosLenguajes de bases de datos
Lenguajes de bases de datos
 
Lenguaje SQL
Lenguaje SQLLenguaje SQL
Lenguaje SQL
 
Modelo Relacional
Modelo RelacionalModelo Relacional
Modelo Relacional
 
Normalizacion
NormalizacionNormalizacion
Normalizacion
 
Tipos de bases de datos
Tipos de bases de datosTipos de bases de datos
Tipos de bases de datos
 
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
 
Objeto SqlDataAdapter
Objeto SqlDataAdapterObjeto SqlDataAdapter
Objeto SqlDataAdapter
 
Sistemas Gestores de Bases de Datos
Sistemas Gestores de Bases de DatosSistemas Gestores de Bases de Datos
Sistemas Gestores de Bases de Datos
 
Indices en oracle
Indices en oracleIndices en oracle
Indices en oracle
 
Seguridad en Base de Datos
Seguridad en Base de DatosSeguridad en Base de Datos
Seguridad en Base de Datos
 
Diapositivas sobre BD (Base de Datos)
Diapositivas sobre BD (Base de Datos)Diapositivas sobre BD (Base de Datos)
Diapositivas sobre BD (Base de Datos)
 
HISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOSHISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOS
 
Unidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacionUnidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacion
 
Gestores de base de datos
Gestores de base de datosGestores de base de datos
Gestores de base de datos
 
12 reglas de codd
12 reglas de codd12 reglas de codd
12 reglas de codd
 
Unidad 1. Fundamentos de Base de Datos
Unidad 1. Fundamentos de Base de DatosUnidad 1. Fundamentos de Base de Datos
Unidad 1. Fundamentos de Base de Datos
 
Sql
SqlSql
Sql
 

Similar a Restricciones bd

04-SQLBuenaPresentaciónyConceptos.pdf
04-SQLBuenaPresentaciónyConceptos.pdf04-SQLBuenaPresentaciónyConceptos.pdf
04-SQLBuenaPresentaciónyConceptos.pdfssuser78e8eb
 
DDL - Lenguaje de definición de datos
DDL - Lenguaje de definición de datosDDL - Lenguaje de definición de datos
DDL - Lenguaje de definición de datosvargasaldanajohanna
 
Integridad
IntegridadIntegridad
Integridad99909
 
Investigacion alter, create y integridad referencial
Investigacion alter, create y integridad referencialInvestigacion alter, create y integridad referencial
Investigacion alter, create y integridad referencial500y
 
Sql manipulacion de tabla
Sql manipulacion de tablaSql manipulacion de tabla
Sql manipulacion de tabladmonges
 
Ddl-Lenguaje de definición de datos
Ddl-Lenguaje de definición de datosDdl-Lenguaje de definición de datos
Ddl-Lenguaje de definición de datosvargasaldanajohanna
 
Guia n7 lenguaje de definicion de datos en sql server 2012
Guia n7 lenguaje de definicion de datos en sql server 2012Guia n7 lenguaje de definicion de datos en sql server 2012
Guia n7 lenguaje de definicion de datos en sql server 2012Johan Silva Cueva
 
Integridad Y Seguridad Completo
Integridad Y Seguridad CompletoIntegridad Y Seguridad Completo
Integridad Y Seguridad CompletoDrakonis11
 
SQL: DDL, DML y SQL
SQL: DDL, DML y SQLSQL: DDL, DML y SQL
SQL: DDL, DML y SQLCarmen Soler
 
Diapositivas de tablas y tipos de datos
Diapositivas de tablas y tipos de datosDiapositivas de tablas y tipos de datos
Diapositivas de tablas y tipos de datosTAPIA SILVA EVELINA
 
DDL oracle - base de datos
DDL oracle - base de datosDDL oracle - base de datos
DDL oracle - base de datosLuis Bando
 
Constraints (restricciones).pptx
Constraints (restricciones).pptxConstraints (restricciones).pptx
Constraints (restricciones).pptxNahumNegrete
 
ManualPracticoSQL.pdf
ManualPracticoSQL.pdfManualPracticoSQL.pdf
ManualPracticoSQL.pdfJenny29068
 

Similar a Restricciones bd (20)

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
 
DDL - Lenguaje de definición de datos
DDL - Lenguaje de definición de datosDDL - Lenguaje de definición de datos
DDL - Lenguaje de definición de datos
 
Sql 04 tablas
Sql 04 tablasSql 04 tablas
Sql 04 tablas
 
Integridad
IntegridadIntegridad
Integridad
 
Bases de datos sql
Bases de datos  sqlBases de datos  sql
Bases de datos sql
 
Bdii 09 ddl_new
Bdii 09 ddl_newBdii 09 ddl_new
Bdii 09 ddl_new
 
Guía de Sql - Lissette Torrealba
Guía de Sql  - Lissette TorrealbaGuía de Sql  - Lissette Torrealba
Guía de Sql - Lissette Torrealba
 
Unidad IV SQL
Unidad IV SQLUnidad IV SQL
Unidad IV SQL
 
Investigacion alter, create y integridad referencial
Investigacion alter, create y integridad referencialInvestigacion alter, create y integridad referencial
Investigacion alter, create y integridad referencial
 
Sql manipulacion de tabla
Sql manipulacion de tablaSql manipulacion de tabla
Sql manipulacion de tabla
 
Ddl-Lenguaje de definición de datos
Ddl-Lenguaje de definición de datosDdl-Lenguaje de definición de datos
Ddl-Lenguaje de definición de datos
 
Guia n7 lenguaje de definicion de datos en sql server 2012
Guia n7 lenguaje de definicion de datos en sql server 2012Guia n7 lenguaje de definicion de datos en sql server 2012
Guia n7 lenguaje de definicion de datos en sql server 2012
 
Integridad Y Seguridad Completo
Integridad Y Seguridad CompletoIntegridad Y Seguridad Completo
Integridad Y Seguridad Completo
 
SQL: DDL, DML y SQL
SQL: DDL, DML y SQLSQL: DDL, DML y SQL
SQL: DDL, DML y SQL
 
Diapositivas de tablas y tipos de datos
Diapositivas de tablas y tipos de datosDiapositivas de tablas y tipos de datos
Diapositivas de tablas y tipos de datos
 
DDL oracle - base de datos
DDL oracle - base de datosDDL oracle - base de datos
DDL oracle - base de datos
 
Constraints (restricciones).pptx
Constraints (restricciones).pptxConstraints (restricciones).pptx
Constraints (restricciones).pptx
 
Fundamentos sql server2
Fundamentos sql server2Fundamentos sql server2
Fundamentos sql server2
 
ManualPracticoSQL.pdf
ManualPracticoSQL.pdfManualPracticoSQL.pdf
ManualPracticoSQL.pdf
 

Más de Alondra Katt

Más de Alondra Katt (9)

Katt_tarea2.4.pptx
Katt_tarea2.4.pptxKatt_tarea2.4.pptx
Katt_tarea2.4.pptx
 
Valores
ValoresValores
Valores
 
Instrucciones
InstruccionesInstrucciones
Instrucciones
 
Conceptos basicos
Conceptos basicosConceptos basicos
Conceptos basicos
 
Nivel cognitivo
Nivel cognitivoNivel cognitivo
Nivel cognitivo
 
Aprendizaje procedimental
Aprendizaje procedimentalAprendizaje procedimental
Aprendizaje procedimental
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
Diccionario dedatos
Diccionario dedatosDiccionario dedatos
Diccionario dedatos
 
Consultas avanzadas
Consultas avanzadasConsultas avanzadas
Consultas avanzadas
 

Restricciones bd

  • 1. 3. Restricciones de las Bases de Datos 3.1 Tipos de restricciones de integridad. 3.2 Uso de restricciones. 3.3 Caso de pruebas para restricciones.
  • 2. Definición Ayudan a mantener la consistencia semántica en la BD Aseguran que los usuarios autorizados no provoquen la pérdida de consistencia de datos. Elaborado por :Luz Alondra Katt Morales
  • 3. Definición Entidad Dominio Referencial Definida por el usuario Elaborado por :Luz Alondra Katt Morales http://msdn.microsoft.com/es-es/library/ms184276.aspx
  • 4. 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. En esta no está permitido que algún componente de la clave primaria acepte valores nulos. Las razones de esta regla son: Las tuplas en las relaciones base representan entidades en la realidad. Las entidades en la realidad son identificables por definición. Sus contrapartes en la base de datos también deben ser identificables. Los valores de la clave primaria sirven como identificadores en la base de datos. Los valores de clave primaria no pueden ser nulos. Elaborado por :Luz Alondra Katt Morales http://msdn.microsoft.com/es-es/library/ms184276.aspx http://juanin.bligoo.com/content/view/606209/Integridad-en-las-Bases-de-Datos.html
  • 5. Integridad de Entidad - unicidad La restricción UNIQUE asegura que todos los valores en una columna sean distintos. Por ejemplo, en la siguiente instrucción, CREATE TABLE Customer (SID integer Unique, Last_Name varchar (30), First_Name varchar(30)); D La columna “SID” no puede incluir valores duplicados, mientras dicha restricción no se aplica para columnas “Last_Name” y “First_Name”. Elaborado por :Luz Alondra Katt Morales http://sql.1keydata.com/es/sql-constraint.php
  • 6. Integridad de Entidad – Clave Primaria MySQL: CREATE TABLE Customer (SID integer, Last_Name varchar(30), First_Name varchar(30), PRIMARY KEY (SID)); Oracle: CREATE TABLE Customer (SID integer PRIMARY KEY, Last_Name varchar(30), First_Name varchar(30)); SQL Server: CREATE TABLE Customer (SID integer PRIMARY KEY, Last_Name varchar(30), First_Name varchar(30)); Elaborado por :Luz Alondra Katt Morales http://sql.1keydata.com/es/sql-constraint.php
  • 7. 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. Dato Longitud Descripción Bit 1 byte Valores true/false Byte 1 byte Entero entre 0 y 255 Counter 4 bytes Campo ID (long) Currency 8 bytes Numérico Datetime 8 bytes Fecha Text 1 byte/caracter De 0 a 255 caracteres Elaborado por :Luz Alondra Katt Morales http://msdn.microsoft.com/es-es/library/ms184276.aspx
  • 8. Integridad de Dominio – No nulo NOT NULL En forma predeterminada, una columna puede ser NULL. Si no desea permitir un valor NULL en una columna, querrá colocar una restricción en esta columna especificando que NULL no es ahora un valor permitido. Por ejemplo, en la siguiente instrucción, CREATE TABLE Customer (SID integer NOT NULL, Last_Name varchar (30) NOT NULL, First_Name varchar(30)); Las columnas “SID” y “Last_Name” no incluyen NULL, mientras que “First_Name” puede incluir NULL. Elaborado por :Luz Alondra Katt Morales http://sql.1keydata.com/es/sql-constraint.php
  • 9. Integridad de Dominio – Check La restricción CHECK asegura que todos los valores en una columna cumplan ciertas condiciones. Por ejemplo, en la siguiente instrucción, CREATE TABLE Customer (SID integer CHECK (SID > 0), Last_Name varchar (30), First_Name varchar(30)); La columna “SID” sólo debe incluir enteros mayores a 0. Elaborado por :Luz Alondra Katt Morales http://sql.1keydata.com/es/sql-constraint.php
  • 10. Integridad de Dominio – Llave Foranea MySQL: CREATE TABLE ORDERS (Order_ID integer, Order_Date date, Customer_SID integer, Amount double, Primary Key (Order_ID), Foreign Key (Customer_SID) references CUSTOMER(SID)); Oracle: CREATE TABLE ORDERS (Order_ID integer primary key, Order_Date date, Customer_SID integer references CUSTOMER(SID), Amount double); SQL Server: CREATE TABLE ORDERS (Order_ID integer primary key, Order_Date datetime, Customer_SID integer references CUSTOMER(SID), Amount double); Elaborado por :Luz Alondra Katt Morales http://sql.1keydata.com/es/sql-constraint.php
  • 11. Integridad Referencial protege las relaciones definidas entre las tablas cuando se crean o se eliminan filas. 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. No se podrá introducir un valor en la tabla relacionada si antes no ha sido introducida en la tabla principal. No se puede eliminar un registro de una tabla principal si existen registros coincidentes en la tabla relacionada. No se puede cambiar un valor de la clave primaria en la tabla principal si el registro tiene registros relacionados. Elaborado por :Luz Alondra Katt Morales http://msdn.microsoft.com/es-es/library/ms184276.aspx
  • 12. Integridad Referencial Por ejemplo, en las tablas Sales.SalesOrderDetail y Production.Product de la base de datos AdventureWorks2008R2, la integridad referencial se basa en la relación entre la clave externa (ProductID) de la tabla Sales.SalesOrderDetail y la clave principal (ProductID) de la tabla Production.Product. Esta relación garantiza que un pedido de ventas no pueda nunca hacer referencia a un producto que no existe en la tabla Production.Product. Elaborado por :Luz Alondra Katt Morales http://msdn.microsoft.com/es-es/library/ms184276.aspx
  • 13. Integridad definida por el usuario La integridad definida por el usuario permite definir reglas de empresa específicas que no pertenecen a ninguna otra categoría de integridad. Todas las categorías 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. Elaborado por :Luz Alondra Katt Morales http://msdn.microsoft.com/es-es/library/ms184276.aspx
  • 14. Constraints CREATE TABLE parent ( id INT NOT NULL, PRIMARY KEY (id) ) ENGINE=INNODB; CREATE TABLE child ( id INT, parent_id INT, INDEX par_ind (parent_id), FOREIGN KEY (parent_id) REFERENCES parent(id) ON DELETE CASCADE ) ENGINE=INNODB; ALTER TABLE yourtablename ADD [CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name, ...) REFERENCES tbl_name (index_col_name, ...) [ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION}] [ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION}] Elaborado por :Luz Alondra Katt Morales http://dev.mysql.com/doc/refman/5.0/es/innodb-foreign- key-constraints.html
  • 15. Constraints – NOT NULL Name Null Type CATEGORIAID NOT NULL CHAR (18) UBICACIÓN CHAR (18) NOMBRECATEGORÍA CHAR(18) Modificamos la restricción de la tabla. ALTER TABLE CATEGORIA MODIFY(UBICACIÓN NOT NULL); CATEGORIAID NOT NULL CHAR(18) UBICACIÓN NOT NULL CHAR(18) NOMBRECATEGORÍA CHAR(18) Elaborado por :Luz Alondra Katt Morales http://es.scribd.com/doc/13991883/Creacion-y-Uso-de-Constraints
  • 16. Constraints Insertamos valores a nuestra tabla. INSERT INTO CATEGORIAVALUES ('AL12', ,'ALIMENTOS'); ERROR:Error starting at line 1 in command: INSERT INTO CATEGORIAVALUES ('AL12',,'ALIMENTOS') Error at Command Line:2 Column:15Error report:SQL Error: ORA-00936: falta una expresión00936. 00000 - "missing expression"*Cause:*Action: Elaborado por :Luz Alondra Katt Morales http://es.scribd.com/doc/13991883/Creacion-y-Uso-de-Constraints
  • 17. Constraints - UNIQUE Name Null Type RUCDNICTE NOT NULL CHAR(18) DIRECCION CHAR(18) EMAIL CHAR(18) TELEFONO1 CHAR(18) RAZONSOCNOMBRE CHAR(18) TELEFONO2 CHAR(18) En este caso realizamos dos restricciones UNIQUE a los campos de Email yRazonSocial. ALTER TABLE CLIENTEMODIFY (CONSTRAINT UNMAIL UNIQUE(EMAIL)) Insertamos algunas filas a nuestra tabla. INSERT INTO CLIENTEVALUES('43918908','LOSALIZOS 212','arzame@yahoo.es','8762412','ArmandoZamora','976457238'); 1 rows inserted Elaborado por :Luz Alondra Katt Morales http://es.scribd.com/doc/13991883/Creacion-y-Uso-de-Constraints
  • 18. Constraints - UNIQUE INSERT INTO CLIENTEVALUES ('439874232','EL SOL 12', 'arzame@yahoo.es', '9878712', 'ArmandoSanchez', '976897638'); ERROR:Error starting at line 1 in command:INSERT INTO CLIENTEVALUES('439874232','EL SOL #212','arzame@yahoo.es','9878712','ArmandoSanchez','976897638') Error report:SQL Error: ORA-00001: restricción única (SYSTEM.XPKCLIENTE) violada00001. 00000 - "unique constraint (%s.%s) violated"*Cause: An UPDATE or INSERT statement attempted to insert a duplicatekey. For Trusted Oracle configured in DBMS MAC mode, you may seethis message if a duplicate entry exists at a different level.*Action: Either remove the unique restriction or do not insert the key Elaborado por :Luz Alondra Katt Morales http://es.scribd.com/doc/13991883/Creacion-y-Uso-de-Constraints