SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
Bases de Datos Unidad VII Lenguaje SQL “ Lenguaje de Definición de Datos (DDL) –  Restricciones” Sergio Sánchez Rios. Ingeniero en Informática – Licenciado en Informática Docente Jornada Parcial Universidad Viña del Mar
Lenguaje de Definición de Datos (DDL) Introducción ,[object Object],[object Object],[object Object],[object Object],[object Object]
Lenguaje de Definición de Datos (DDL) Introducción Los cinco tipos de restricciones son: CHECK FOREING KEY PRIMARY KEY UNIQUE NOT NULL Restricciones
Lenguaje de Definición de Datos (DDL) Restricción - UNIQUE La restricción  UNIQUE  asegura que una columna o un grupo de columnas no permitirán valores repetidos – en otras palabras, se impone la unicidad de los valores en la columna o el conjunto. Una restricción UNIQUE se puede utilizar en cualquier columna que no sea parte de una restricción PRIMARY KEY, que también impone valores únicos.  Además, las restricciones UNIQUE se pueden usar en columnas que permitan valores nulos, mientras que las restricciones PRIMARY KEY no pueden. Los valores nulos son ignorados por la restricción UNIQUE. Una columna con una restricción UNIQUE puede referenciarse con una restricción FOREIGN KEY. Se permiten varias restricciones UNIQUE con tal que el numero total de restricciones  es 249 no agrupadas (UNIQUE a una columna)  y 1 agrupada (UNIQUE aun conjunto de columnas).
Lenguaje de Definición de Datos (DDL) Restricción - UNIQUE Para crear una restricción UNIQUE en una tabla, se usa el comando CREATE TABLE o ALTER TABLE. Nomenclatura para creación UNIQUE en CREATE TABLE: UNIQUE no agrupado nombre_columna tipo_dato [Opcional: NOT NULL] UNIQUE CLUSTERED  Ejemplo 1: Cree una tabla llamada Ejemplo_UNICO definida por la siguiente tupla:  Ejemplo_UNICO (codigo: numeric, nombre: nvarchar (20)). Colocando el Campo codigo con una Restricción UNIQUE y NOT NULL. CREATE TABLE Ejemplo_UNICO ( codigo numeric NOT NULL UNIQUE CLUSTERED, nombre nvarchar(20) )  Compruebe la restricción UNIQUE insertando dos filas utilizando el mismo código.
Lenguaje de Definición de Datos (DDL) Restricción - UNIQUE Nomenclatura para creación UNIQUE en CREATE TABLE: UNIQUE agrupado En este caso la restricción no es por una columna en particular, sino que por un conjunto de columnas. Por lo tanto la restricción se coloca después de haber definido todos los campos de la tabla y antes de cerrar la instrucción CREATE TABLE. Se utiliza para crear esta restricción la instrucción  CONSTRAINT. Nomenclatura: CONSTRAINT nombre_restriccion UNIQUE NONCLUSTERED (campo1, …, campoN) NOTA: el nombre de la restricción UNIQUE se recomienda por norma que comience con UQ_nombre_restriccion.
Lenguaje de Definición de Datos (DDL) Restricción - UNIQUE Nomenclatura para creación UNIQUE en CREATE TABLE: UNIQUE agrupado Ejemplo 2: Crear la tabla Ejemplo_UNICO_GR basada en la siguiente tupla: Eemplo_UNICO_GR (rut : numeric, digito: char(2),nombre: nvarchar(20)). El rut y digito deben ser no nulos y además en conjunto deben ser unicos. CREATE TABLE Ejemplo_UNICO_GR( rut numeric NOT NULL, digito char(2) NOT NULL, nombre nvarchar(20), CONSTRAINT UQ_rut_digito UNIQUE NONCLUSTERED (rut,digito) )  Compruebe la restricción UNIQUE agrupada, dos filas con los mismos valores en el campo rut y digito.
Lenguaje de Definición de Datos (DDL) Restricción - UNIQUE Nomenclatura para creación UNIQUE en ALTER TABLE: UNIQUE no agrupado y agrupado Para ambos casos de UNIQUE se utiliza la misma nomenclatura. Nomenclatura NO AGRUPADO ALTER TABLE nombre_tabla ADD CONSTRAINT UQ_nombre_restriccion UNIQUE CLUSTERED (nombre_campo) Nomenclatura AGRUPADO ALTER TABLE nombre_tabla ADD CONSTRAINT UQ_nombre_restriccion UNIQUE NONCLUSTERED (campo1, …., campoN)
Lenguaje de Definición de Datos (DDL) Restricción - UNIQUE Nomenclatura para creación UNIQUE en ALTER TABLE: Ejemplo 3: Crear una tabla Ejemplo_UNICO_ALT basada en la siguiente tupla: Ejemplo_UNICO_ALT (rut: numeric, digito: char(2), nombre: nvarchar(20)). Donde rut y digito serán no nulos.  Luego de crear la tabla agregue las siguientes restricciones rut y digito deben ser en conjunto únicos, además el nombre debe también ser único. CREATE TABLE Ejemplo_UNICO_ALT ( rut numeric NOT NULL, digito char(2) NOT NULL, nombre nvarchar(20) ) Acá se crea la tabla luego de esto realice las restricciones con ALTER TABLE.
Lenguaje de Definición de Datos (DDL) Restricción - UNIQUE Nomenclatura para creación UNIQUE en ALTER TABLE: Ejemplo 3: /* ACA SE REALIZAN ALTERACIONES A LA TABLA Ejemplo_UNICO_GR*/ ALTER TABLE Ejemplo_UNICO_ALT ADD CONSTRAINT UQ_rut_digito_ALT UNIQUE NONCLUSTERED (rut, digito) ALTER TABLE Ejemplo_UNICO_ALT ADD CONSTRAINT UQ_nombre_ALT UNIQUE CLUSTERED (nombre) Compruebe las siguientes restricciones ingresando dos registros con distinto rut y digito y el mismo nombre. Y otros dos registros con nombre distinto y el rut y digito iguales. NOTA: EN LA BASE DE DATOS NO PUEDEN EXISTIR DOS RESTRICCIONES CON EL MISMO NOMBRE, AUNQUE SEAN DE TABLAS DISTINTAS.
Lenguaje de Definición de Datos (DDL) Restricción - UNIQUE Borrar una restricción UNIQUE creada . Para borrar una restricción UNIQUE se debe utilizar la instrucción ALTER TABLE con su opción DROP. Nomenclatura ALTER TABLE nombre_tabla DROP CONSTRAINT UQ_nombre_restriccion Ejemplo 4: Borre de la restricción UQ_nombre_ALT de la tabla Ejemplo_UNICO_ALT. ALTER TABLE Ejemplo_UNICO_ALT DROP COSNTRAINT UQ_nombre_ALT
Lenguaje de Definición de Datos (DDL) Restricción – PRIMARY KEY La restricción PRIMARY KEY se usa para especificar la clave primaria de una tabla, la columna o conjunto de columnas que identifican unívocamente a una fila. Debido a que identifica a una fila la clave primaria nunca puede ser NULL, esto es la que lo diferencia de la restricción UNIQUE. Para la definición de la restricción PRIMARY KEY se pueden utilizar las instrucciones CREATE TABLE y ALTER TABLE. Nomenclatura para CREATE TABLE: nombre_campo tipo_dato PRIMARY KEY Ejemplo 1: Crea una Tabla denominada Ejemplo_Clave_PR, basada en la siguiente tupla: Ejemplo_Clave_PR (codigo: numeric, nombre: nvarchar(20)). Colocando el campo codigo como clave primaria.
Lenguaje de Definición de Datos (DDL) Restricción – PRIMARY KEY Ejemplo 1:  CREATE TABLE Ejemplo_Clave_PR ( codigo numeric PRIMARY KEY, nombre nvarchar(20) ) Además usando CREATE TABLE se le puede asignar un nombre a la restricción PRIMARY KEY (IDEAL) , usando la siguiente nomenclatura: Para cuando se coloca al lado del campo: nombre_campo tipo_dato CONSTRAINT PK_nombre_clave PRIMARY KEY Para cuando se coloca antes de cerrar el CREATE TABLE CONSTRAINT PK_nombre_clave PRIMARY KEY (columna o columnas)  Compruebe si se cumple la restricción de clave primaria ingresando dos filas con el mismo código.
Lenguaje de Definición de Datos (DDL) Restricción – PRIMARY KEY Nomenclatura para ALTER TABLE: ALTER TABLE nombre_tabla ADD CONSTRAINT PK_nombre_clave PRIMARY KEY (columna o columnas) Nomenclatura para BORRAR una clave primaria: ALTER TABLE nombre_tabla DROP CONSTRAINT PK_nombre_clave  NOTA: EN LA BASE DE DATOS NO PUEDEN EXISTIR DOS RESTRICCIONES CON EL MISMO NOMBRE, AUNQUE SEAN DE TABLAS DISTINTAS. NOTA: Por nomenclatura al dar un nombre a una clave primaria es ideal comenzar con la letras PK
Lenguaje de Definición de Datos (DDL) Restricción – FOREIGN KEY Una restricción FOREIGN KEY define una  clave externa,  que identifica una relación entre dos tablas.  La columna o columnas clave externa de una tabla referencia a una clave candidata – una o varias columnas – de otra tabla. Cuando se inserta una fila en la tabla con la restricción FOREIGN KEY, los valores que se van a introducir en la columna o columnas que se han definido como clave externa se comprueban frente a los valores de la clave candidata de la tabla referenciada. Si ninguna fila de la tabla referenciada se ajusta a los valores de la clave externa, la nueva fila no se puede insertar.  La restricción FOREIGN KEY también se comprueba cuando se realizan actualizaciones y borrados en la tabla referenciada o la tabla que posee la clave externa. Una clave externa sólo puede referenciar columnas que tengan las restricciones PRIMARY KEY o UNIQUE en la tabla referenciada.
Lenguaje de Definición de Datos (DDL) Restricción – FOREIGN KEY Una clave externa sólo puede referenciar columnas que tengan las restricciones PRIMARY KEY o UNIQUE en la tabla referenciada. Además, el tipo de dato y el tamaño de la columna o columnas de la clave externa, también debe  coincidir con el de la columna o columnas referenciadas. Esta restricción FOREIGN KEY se puede asignar utilizando la sentencia CREATE TABLE y ALTER TABLE. Nomenclatura en CREATE TABLE (Siempre se agrega antes de finalizar la creación de la tabla): CONSTRAINT FK_nombre_clave_ajena FOREIGN KEY (columna o columnas  que guardaran los valores de la clave ajena) REFERENCES  nombre_tabla_referencia (columna o columna que poseen datos a validar)
Lenguaje de Definición de Datos (DDL) Restricción – FOREIGN KEY Ejemplo 5: Crear las siguientes tablas basadas en las tuplas: Colegio (codigo_col: numero,nombre:nvarchar(20)) Alumno (rut: numero, digito: char(2), nombre: nvarchar(20), colegio: numero) Restricciones: Colegio clave primaria codigo_col y Alumno clave primaria rut y digito. Además en alumno colegio es una clave externa que se debe verificar en Colegio. Paso 1: Crear las Tablas CREATE TABLE COLEGIO( codigo_col numeric, nombre nvarchar(20) NOT NULL, CONSTRAINT PK_colegio PRIMARY KEY (codigo_col) )
Lenguaje de Definición de Datos (DDL) Restricción – FOREIGN KEY Ejemplo 5:  Paso 1: Crear las Tablas CREATE TABLE ALUMNO( rut numeric, digito char(2), nombre nvarchar(20) NOT NULL, colegio numeric NOT NULL, CONSTRAINT PK_alumno PRIMARY KEY (rut,digito), CONSTRAINT FK_alumno_colegio FOREIGN KEY (colegio) REFERENCES COLEGIO (codigo_col) )
Lenguaje de Definición de Datos (DDL) Restricción – FOREIGN KEY Ejemplo 5:  Paso 2: Comprobación de la RESTRICCION DE CLAVE FORANEA Ingrese dos colegios: (1,’ESCUELA DEL SABER’) (2,’ESCUELA 2’) Ingrese dos alumnos colocando en el campos colegio uno de los dos colegios antes ingresado. Luego ingrese un tercer alumno haciendo referencia al código de colegio 3.
Lenguaje de Definición de Datos (DDL) Restricción – FOREIGN KEY Nomenclatura en ALTER TABLE (para cuando se desea crear una clave externa después de haber creado la tabla): ALTER TABLE nombre_tabla ADD CONSTRAINT FK_nombre_clave_ajena FOREIGN KEY (columna o columnas para recepción de clave ajena) REFERENCES nombre_tabla_referencia (columna o columnas de referencia)  Nomenclatura para borrar una clave ajena: ALTER TABLE nombre_tabla DROP CONSTRAINT FK_nombre_restriccion
Lenguaje de Definición de Datos (DDL) Restricción – CHECK La restricción CHECK se usa para restringir los valores permitidos de una columna o unos valores específicos. Los valores de una columna que se van a introducir o actualizar se confirman. Se puede agregar esta restricción utilizando las instrucciones CREATE TABLE o ALTER TABLE. Nomenclatura CREATE TABLE: CONSTRAINT CK_nombre_restriccion CHECK  (condiciones) Ejemplo 6: Crear una Tabla Ejemplo_CH basandose en la siguiente tupla: Ejemplo_CK (codigo: numeric, nombre: nvarchar(20)). Donde codigo es la clave primaria y solo puede aceptar valores entre 1 y 100.
Lenguaje de Definición de Datos (DDL) Restricción – CHECK Ejemplo 6: CREATE TABLE Ejemplo_CK ( codigo numeric, nombre nvarchar(20), CONSTRAINT PK_codigo PRIMARY KEY (codigo), CONSTRAINT CK_codigo_condicion CHECK (codigo > 0 and codigo <  101)  ) Para probar la realidad de la restricción ingrese un registro a la tabla Ejemplo_CK con un codigo con valor mayor que 100.
Lenguaje de Definición de Datos (DDL) Restricción – CHECK Nomenclatura para ALTER TABLE (en el caso de que se cree una restricción después de haber creado la tabla): ALTER TABLE nombre_tabla ADD CONSTRAINT CK_nombre_restriccion CHECK (condiciones) Nomenclatura para Borrar una restricción CHECK: ALTER TABLE nombre_tabla DROP CONSTRAINT CK_nombre_restriccion
Bibliografía ,[object Object],[object Object],[object Object],[object Object],[object Object]

Contenu connexe

Tendances

Estados de un proceso
Estados de un procesoEstados de un proceso
Estados de un procesoi92almaa
 
Comandos básicos para bases de datos mysql y workbench
Comandos básicos para bases de datos mysql y workbenchComandos básicos para bases de datos mysql y workbench
Comandos básicos para bases de datos mysql y workbenchRobedgar MX
 
Vistas en mySql
Vistas en mySqlVistas en mySql
Vistas en mySqlEduardo Ed
 
Bases de datos my sql
Bases de datos my sqlBases de datos my sql
Bases de datos my sqlevavivez
 
SQL - DML and DDL Commands
SQL - DML and DDL CommandsSQL - DML and DDL Commands
SQL - DML and DDL CommandsShrija Madhu
 
Sql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datosSql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datosjosecuartas
 
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
 
Presentation slides of Sequence Query Language (SQL)
Presentation slides of Sequence Query Language (SQL)Presentation slides of Sequence Query Language (SQL)
Presentation slides of Sequence Query Language (SQL)Punjab University
 
Comandos utilizados en sql
Comandos utilizados en sqlComandos utilizados en sql
Comandos utilizados en sqlByron Eras
 
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
 
3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registros3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registrosMeztli Valeriano Orozco
 
2 manipulacion de datos..
2 manipulacion de datos..2 manipulacion de datos..
2 manipulacion de datos..alithu1
 

Tendances (20)

Estados de un proceso
Estados de un procesoEstados de un proceso
Estados de un proceso
 
Comandos básicos para bases de datos mysql y workbench
Comandos básicos para bases de datos mysql y workbenchComandos básicos para bases de datos mysql y workbench
Comandos básicos para bases de datos mysql y workbench
 
Vistas en mySql
Vistas en mySqlVistas en mySql
Vistas en mySql
 
Sentencias sql
Sentencias sqlSentencias sql
Sentencias sql
 
Bases de datos my sql
Bases de datos my sqlBases de datos my sql
Bases de datos my sql
 
SQL - DML and DDL Commands
SQL - DML and DDL CommandsSQL - DML and DDL Commands
SQL - DML and DDL Commands
 
Sql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datosSql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datos
 
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)
 
Lenguaje SQL
Lenguaje SQLLenguaje SQL
Lenguaje SQL
 
Couch db
Couch dbCouch db
Couch db
 
Hilos En Java
Hilos En JavaHilos En Java
Hilos En Java
 
NoSQL: Introducción a las Bases de Datos no estructuradas
NoSQL: Introducción a las Bases de Datos no estructuradasNoSQL: Introducción a las Bases de Datos no estructuradas
NoSQL: Introducción a las Bases de Datos no estructuradas
 
Presentation slides of Sequence Query Language (SQL)
Presentation slides of Sequence Query Language (SQL)Presentation slides of Sequence Query Language (SQL)
Presentation slides of Sequence Query Language (SQL)
 
Taller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL proceduralTaller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL procedural
 
Sql commands
Sql commandsSql commands
Sql commands
 
Ejemplo de Trigger en Mysql
Ejemplo de Trigger en MysqlEjemplo de Trigger en Mysql
Ejemplo de Trigger en Mysql
 
Comandos utilizados en sql
Comandos utilizados en sqlComandos utilizados en sql
Comandos utilizados en sql
 
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
 
3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registros3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registros
 
2 manipulacion de datos..
2 manipulacion de datos..2 manipulacion de datos..
2 manipulacion de datos..
 

En vedette

Unidad 6 Lenguaje Sql 2
Unidad 6 Lenguaje Sql 2Unidad 6 Lenguaje Sql 2
Unidad 6 Lenguaje Sql 2Sergio Sanchez
 
Reglas de integridad bd relacional
Reglas de integridad bd relacionalReglas de integridad bd relacional
Reglas de integridad bd relacionalDenisse C
 
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESSINTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESSitsl
 

En vedette (6)

Restricciones bd
Restricciones bdRestricciones bd
Restricciones bd
 
INTEGRIDAD DE DATOS
INTEGRIDAD DE DATOSINTEGRIDAD DE DATOS
INTEGRIDAD DE DATOS
 
Unidad 6 Lenguaje Sql 2
Unidad 6 Lenguaje Sql 2Unidad 6 Lenguaje Sql 2
Unidad 6 Lenguaje Sql 2
 
Reglas de integridad bd relacional
Reglas de integridad bd relacionalReglas de integridad bd relacional
Reglas de integridad bd relacional
 
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESSINTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
 
control de concurrencia
control de concurrenciacontrol de concurrencia
control de concurrencia
 

Similaire à Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)

Similaire à Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado) (20)

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
 
Tablas y tipos de datos
Tablas y tipos de datosTablas y tipos de datos
Tablas y tipos de datos
 
Tablas y tipos de datos en microsoft sql server
Tablas y tipos de datos en microsoft sql serverTablas y tipos de datos en microsoft sql server
Tablas y tipos de datos en microsoft sql server
 
Sql manipulacion de tabla
Sql manipulacion de tablaSql manipulacion de tabla
Sql manipulacion de tabla
 
Trabajando con sql (parte 1)
Trabajando con sql (parte 1)Trabajando con sql (parte 1)
Trabajando con sql (parte 1)
 
Constraints (restricciones).pptx
Constraints (restricciones).pptxConstraints (restricciones).pptx
Constraints (restricciones).pptx
 
Unidad v integridad relacional
Unidad v  integridad relacionalUnidad v  integridad relacional
Unidad v integridad relacional
 
Unidad v integridad relacional
Unidad v  integridad relacionalUnidad v  integridad relacional
Unidad v integridad relacional
 
TABLAS Y TIPOS DE DATOS
TABLAS Y TIPOS DE DATOSTABLAS Y TIPOS DE DATOS
TABLAS Y TIPOS DE DATOS
 
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
 
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
 
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
 
Consultas sql
Consultas sqlConsultas sql
Consultas sql
 
Tablas y tipos de datos
Tablas y tipos de datosTablas y tipos de datos
Tablas y tipos de datos
 
1 lab-2 -tablas-y-restricciones
1 lab-2 -tablas-y-restricciones1 lab-2 -tablas-y-restricciones
1 lab-2 -tablas-y-restricciones
 
Bdii 09 ddl_new
Bdii 09 ddl_newBdii 09 ddl_new
Bdii 09 ddl_new
 
Sql basico parte_i_
Sql basico parte_i_Sql basico parte_i_
Sql basico parte_i_
 
4. sql (autoguardado)
4. sql (autoguardado)4. sql (autoguardado)
4. sql (autoguardado)
 
Unidad 6 Lenguaje Sql
Unidad 6 Lenguaje SqlUnidad 6 Lenguaje Sql
Unidad 6 Lenguaje Sql
 

Plus de Sergio Sanchez

Unidad 5 TransformacióN Er A Relacional NormalizacióN
Unidad 5 TransformacióN Er A Relacional   NormalizacióNUnidad 5 TransformacióN Er A Relacional   NormalizacióN
Unidad 5 TransformacióN Er A Relacional NormalizacióNSergio Sanchez
 
Unidad 4 Modelo De Datos Para La ImplementacióN
Unidad 4 Modelo De Datos Para La ImplementacióNUnidad 4 Modelo De Datos Para La ImplementacióN
Unidad 4 Modelo De Datos Para La ImplementacióNSergio Sanchez
 
Unidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos ConceptualUnidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos ConceptualSergio Sanchez
 
Unidad 2 Modelo De Datos
Unidad 2 Modelo De DatosUnidad 2 Modelo De Datos
Unidad 2 Modelo De DatosSergio Sanchez
 
Unidad 1 IntroduccióN A Las Bases De Datos
Unidad 1 IntroduccióN A Las Bases De DatosUnidad 1 IntroduccióN A Las Bases De Datos
Unidad 1 IntroduccióN A Las Bases De DatosSergio Sanchez
 
Unidad 3.1 Prueba De Sistemas
Unidad 3.1 Prueba De SistemasUnidad 3.1 Prueba De Sistemas
Unidad 3.1 Prueba De SistemasSergio Sanchez
 
Unidad 2.3 Prueba De Programas
Unidad 2.3 Prueba De ProgramasUnidad 2.3 Prueba De Programas
Unidad 2.3 Prueba De ProgramasSergio Sanchez
 
Unidad 2.2 Escribiendo El Programa
Unidad 2.2 Escribiendo El ProgramaUnidad 2.2 Escribiendo El Programa
Unidad 2.2 Escribiendo El ProgramaSergio Sanchez
 
Unidad 2.1 DiseñO De Sistemas
Unidad 2.1 DiseñO De SistemasUnidad 2.1 DiseñO De Sistemas
Unidad 2.1 DiseñO De SistemasSergio Sanchez
 
Unidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosUnidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosSergio Sanchez
 
Unidad 1.2 B Metodos Agiles 1
Unidad 1.2 B Metodos Agiles  1Unidad 1.2 B Metodos Agiles  1
Unidad 1.2 B Metodos Agiles 1Sergio Sanchez
 
Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos Tradicionales
Unidad 1.2 A IntroduccióN A Los Proceso De Software   Modelos TradicionalesUnidad 1.2 A IntroduccióN A Los Proceso De Software   Modelos Tradicionales
Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos TradicionalesSergio Sanchez
 
Unidad 1.1 Que Es La Ing. De Software
Unidad 1.1 Que Es La Ing. De SoftwareUnidad 1.1 Que Es La Ing. De Software
Unidad 1.1 Que Es La Ing. De SoftwareSergio Sanchez
 
Unidad 10 Mad Diagrama De Clases
Unidad 10 Mad Diagrama De ClasesUnidad 10 Mad Diagrama De Clases
Unidad 10 Mad Diagrama De ClasesSergio Sanchez
 
Unidad 9 Patrones De DiseñO
Unidad 9 Patrones De DiseñOUnidad 9 Patrones De DiseñO
Unidad 9 Patrones De DiseñOSergio Sanchez
 
Unidad 8 Diagramas De InteraccióN
Unidad 8 Diagramas De InteraccióNUnidad 8 Diagramas De InteraccióN
Unidad 8 Diagramas De InteraccióNSergio Sanchez
 
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso Reales
Unidad 7 Mad Modelado DiseñO    Contratos Y Casos De Uso RealesUnidad 7 Mad Modelado DiseñO    Contratos Y Casos De Uso Reales
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso RealesSergio Sanchez
 
Unidad 6 Mad Modelado Analsis Diagrama De Secuencia Del Sistema
Unidad 6 Mad Modelado Analsis    Diagrama De Secuencia Del SistemaUnidad 6 Mad Modelado Analsis    Diagrama De Secuencia Del Sistema
Unidad 6 Mad Modelado Analsis Diagrama De Secuencia Del SistemaSergio Sanchez
 
Unidad 5 Mad Modelado Analisis Modelo Conceptual
Unidad 5 Mad Modelado Analisis   Modelo ConceptualUnidad 5 Mad Modelado Analisis   Modelo Conceptual
Unidad 5 Mad Modelado Analisis Modelo ConceptualSergio Sanchez
 
Unidad 4 Mad Modelado Analisis Casos De Uso
Unidad 4 Mad Modelado Analisis Casos De UsoUnidad 4 Mad Modelado Analisis Casos De Uso
Unidad 4 Mad Modelado Analisis Casos De UsoSergio Sanchez
 

Plus de Sergio Sanchez (20)

Unidad 5 TransformacióN Er A Relacional NormalizacióN
Unidad 5 TransformacióN Er A Relacional   NormalizacióNUnidad 5 TransformacióN Er A Relacional   NormalizacióN
Unidad 5 TransformacióN Er A Relacional NormalizacióN
 
Unidad 4 Modelo De Datos Para La ImplementacióN
Unidad 4 Modelo De Datos Para La ImplementacióNUnidad 4 Modelo De Datos Para La ImplementacióN
Unidad 4 Modelo De Datos Para La ImplementacióN
 
Unidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos ConceptualUnidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos Conceptual
 
Unidad 2 Modelo De Datos
Unidad 2 Modelo De DatosUnidad 2 Modelo De Datos
Unidad 2 Modelo De Datos
 
Unidad 1 IntroduccióN A Las Bases De Datos
Unidad 1 IntroduccióN A Las Bases De DatosUnidad 1 IntroduccióN A Las Bases De Datos
Unidad 1 IntroduccióN A Las Bases De Datos
 
Unidad 3.1 Prueba De Sistemas
Unidad 3.1 Prueba De SistemasUnidad 3.1 Prueba De Sistemas
Unidad 3.1 Prueba De Sistemas
 
Unidad 2.3 Prueba De Programas
Unidad 2.3 Prueba De ProgramasUnidad 2.3 Prueba De Programas
Unidad 2.3 Prueba De Programas
 
Unidad 2.2 Escribiendo El Programa
Unidad 2.2 Escribiendo El ProgramaUnidad 2.2 Escribiendo El Programa
Unidad 2.2 Escribiendo El Programa
 
Unidad 2.1 DiseñO De Sistemas
Unidad 2.1 DiseñO De SistemasUnidad 2.1 DiseñO De Sistemas
Unidad 2.1 DiseñO De Sistemas
 
Unidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosUnidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De Requerimientos
 
Unidad 1.2 B Metodos Agiles 1
Unidad 1.2 B Metodos Agiles  1Unidad 1.2 B Metodos Agiles  1
Unidad 1.2 B Metodos Agiles 1
 
Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos Tradicionales
Unidad 1.2 A IntroduccióN A Los Proceso De Software   Modelos TradicionalesUnidad 1.2 A IntroduccióN A Los Proceso De Software   Modelos Tradicionales
Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos Tradicionales
 
Unidad 1.1 Que Es La Ing. De Software
Unidad 1.1 Que Es La Ing. De SoftwareUnidad 1.1 Que Es La Ing. De Software
Unidad 1.1 Que Es La Ing. De Software
 
Unidad 10 Mad Diagrama De Clases
Unidad 10 Mad Diagrama De ClasesUnidad 10 Mad Diagrama De Clases
Unidad 10 Mad Diagrama De Clases
 
Unidad 9 Patrones De DiseñO
Unidad 9 Patrones De DiseñOUnidad 9 Patrones De DiseñO
Unidad 9 Patrones De DiseñO
 
Unidad 8 Diagramas De InteraccióN
Unidad 8 Diagramas De InteraccióNUnidad 8 Diagramas De InteraccióN
Unidad 8 Diagramas De InteraccióN
 
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso Reales
Unidad 7 Mad Modelado DiseñO    Contratos Y Casos De Uso RealesUnidad 7 Mad Modelado DiseñO    Contratos Y Casos De Uso Reales
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso Reales
 
Unidad 6 Mad Modelado Analsis Diagrama De Secuencia Del Sistema
Unidad 6 Mad Modelado Analsis    Diagrama De Secuencia Del SistemaUnidad 6 Mad Modelado Analsis    Diagrama De Secuencia Del Sistema
Unidad 6 Mad Modelado Analsis Diagrama De Secuencia Del Sistema
 
Unidad 5 Mad Modelado Analisis Modelo Conceptual
Unidad 5 Mad Modelado Analisis   Modelo ConceptualUnidad 5 Mad Modelado Analisis   Modelo Conceptual
Unidad 5 Mad Modelado Analisis Modelo Conceptual
 
Unidad 4 Mad Modelado Analisis Casos De Uso
Unidad 4 Mad Modelado Analisis Casos De UsoUnidad 4 Mad Modelado Analisis Casos De Uso
Unidad 4 Mad Modelado Analisis Casos De Uso
 

Dernier

Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...OLGAMILENAMONTAEZNIO
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx Emialexsolar
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxPaolaCarolinaCarvaja
 
Análisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfAnálisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfcastrodanna185
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETGermán Küber
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.marianarodriguezc797
 
La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2montoyagabriela340
 
Carta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfCarta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfangelinebocanegra1
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidaddanik1023m
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfJoseAlejandroPerezBa
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfOBr.global
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...RaymondCode
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfalejandrogomezescoto
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfodalistar77
 
La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....Aaron Betancourt
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosLCristinaForchue
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSLincangoKevin
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfymiranda2
 

Dernier (20)

Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx E
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docx
 
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier FolchBEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
 
Análisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfAnálisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdf
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.
 
La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2
 
Carta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfCarta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdf
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidad
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
 
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura SilvaBEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdf
 
La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
 

Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)

  • 1. Bases de Datos Unidad VII Lenguaje SQL “ Lenguaje de Definición de Datos (DDL) – Restricciones” Sergio Sánchez Rios. Ingeniero en Informática – Licenciado en Informática Docente Jornada Parcial Universidad Viña del Mar
  • 2.
  • 3. Lenguaje de Definición de Datos (DDL) Introducción Los cinco tipos de restricciones son: CHECK FOREING KEY PRIMARY KEY UNIQUE NOT NULL Restricciones
  • 4. Lenguaje de Definición de Datos (DDL) Restricción - UNIQUE La restricción UNIQUE asegura que una columna o un grupo de columnas no permitirán valores repetidos – en otras palabras, se impone la unicidad de los valores en la columna o el conjunto. Una restricción UNIQUE se puede utilizar en cualquier columna que no sea parte de una restricción PRIMARY KEY, que también impone valores únicos. Además, las restricciones UNIQUE se pueden usar en columnas que permitan valores nulos, mientras que las restricciones PRIMARY KEY no pueden. Los valores nulos son ignorados por la restricción UNIQUE. Una columna con una restricción UNIQUE puede referenciarse con una restricción FOREIGN KEY. Se permiten varias restricciones UNIQUE con tal que el numero total de restricciones es 249 no agrupadas (UNIQUE a una columna) y 1 agrupada (UNIQUE aun conjunto de columnas).
  • 5. Lenguaje de Definición de Datos (DDL) Restricción - UNIQUE Para crear una restricción UNIQUE en una tabla, se usa el comando CREATE TABLE o ALTER TABLE. Nomenclatura para creación UNIQUE en CREATE TABLE: UNIQUE no agrupado nombre_columna tipo_dato [Opcional: NOT NULL] UNIQUE CLUSTERED Ejemplo 1: Cree una tabla llamada Ejemplo_UNICO definida por la siguiente tupla: Ejemplo_UNICO (codigo: numeric, nombre: nvarchar (20)). Colocando el Campo codigo con una Restricción UNIQUE y NOT NULL. CREATE TABLE Ejemplo_UNICO ( codigo numeric NOT NULL UNIQUE CLUSTERED, nombre nvarchar(20) ) Compruebe la restricción UNIQUE insertando dos filas utilizando el mismo código.
  • 6. Lenguaje de Definición de Datos (DDL) Restricción - UNIQUE Nomenclatura para creación UNIQUE en CREATE TABLE: UNIQUE agrupado En este caso la restricción no es por una columna en particular, sino que por un conjunto de columnas. Por lo tanto la restricción se coloca después de haber definido todos los campos de la tabla y antes de cerrar la instrucción CREATE TABLE. Se utiliza para crear esta restricción la instrucción CONSTRAINT. Nomenclatura: CONSTRAINT nombre_restriccion UNIQUE NONCLUSTERED (campo1, …, campoN) NOTA: el nombre de la restricción UNIQUE se recomienda por norma que comience con UQ_nombre_restriccion.
  • 7. Lenguaje de Definición de Datos (DDL) Restricción - UNIQUE Nomenclatura para creación UNIQUE en CREATE TABLE: UNIQUE agrupado Ejemplo 2: Crear la tabla Ejemplo_UNICO_GR basada en la siguiente tupla: Eemplo_UNICO_GR (rut : numeric, digito: char(2),nombre: nvarchar(20)). El rut y digito deben ser no nulos y además en conjunto deben ser unicos. CREATE TABLE Ejemplo_UNICO_GR( rut numeric NOT NULL, digito char(2) NOT NULL, nombre nvarchar(20), CONSTRAINT UQ_rut_digito UNIQUE NONCLUSTERED (rut,digito) ) Compruebe la restricción UNIQUE agrupada, dos filas con los mismos valores en el campo rut y digito.
  • 8. Lenguaje de Definición de Datos (DDL) Restricción - UNIQUE Nomenclatura para creación UNIQUE en ALTER TABLE: UNIQUE no agrupado y agrupado Para ambos casos de UNIQUE se utiliza la misma nomenclatura. Nomenclatura NO AGRUPADO ALTER TABLE nombre_tabla ADD CONSTRAINT UQ_nombre_restriccion UNIQUE CLUSTERED (nombre_campo) Nomenclatura AGRUPADO ALTER TABLE nombre_tabla ADD CONSTRAINT UQ_nombre_restriccion UNIQUE NONCLUSTERED (campo1, …., campoN)
  • 9. Lenguaje de Definición de Datos (DDL) Restricción - UNIQUE Nomenclatura para creación UNIQUE en ALTER TABLE: Ejemplo 3: Crear una tabla Ejemplo_UNICO_ALT basada en la siguiente tupla: Ejemplo_UNICO_ALT (rut: numeric, digito: char(2), nombre: nvarchar(20)). Donde rut y digito serán no nulos. Luego de crear la tabla agregue las siguientes restricciones rut y digito deben ser en conjunto únicos, además el nombre debe también ser único. CREATE TABLE Ejemplo_UNICO_ALT ( rut numeric NOT NULL, digito char(2) NOT NULL, nombre nvarchar(20) ) Acá se crea la tabla luego de esto realice las restricciones con ALTER TABLE.
  • 10. Lenguaje de Definición de Datos (DDL) Restricción - UNIQUE Nomenclatura para creación UNIQUE en ALTER TABLE: Ejemplo 3: /* ACA SE REALIZAN ALTERACIONES A LA TABLA Ejemplo_UNICO_GR*/ ALTER TABLE Ejemplo_UNICO_ALT ADD CONSTRAINT UQ_rut_digito_ALT UNIQUE NONCLUSTERED (rut, digito) ALTER TABLE Ejemplo_UNICO_ALT ADD CONSTRAINT UQ_nombre_ALT UNIQUE CLUSTERED (nombre) Compruebe las siguientes restricciones ingresando dos registros con distinto rut y digito y el mismo nombre. Y otros dos registros con nombre distinto y el rut y digito iguales. NOTA: EN LA BASE DE DATOS NO PUEDEN EXISTIR DOS RESTRICCIONES CON EL MISMO NOMBRE, AUNQUE SEAN DE TABLAS DISTINTAS.
  • 11. Lenguaje de Definición de Datos (DDL) Restricción - UNIQUE Borrar una restricción UNIQUE creada . Para borrar una restricción UNIQUE se debe utilizar la instrucción ALTER TABLE con su opción DROP. Nomenclatura ALTER TABLE nombre_tabla DROP CONSTRAINT UQ_nombre_restriccion Ejemplo 4: Borre de la restricción UQ_nombre_ALT de la tabla Ejemplo_UNICO_ALT. ALTER TABLE Ejemplo_UNICO_ALT DROP COSNTRAINT UQ_nombre_ALT
  • 12. Lenguaje de Definición de Datos (DDL) Restricción – PRIMARY KEY La restricción PRIMARY KEY se usa para especificar la clave primaria de una tabla, la columna o conjunto de columnas que identifican unívocamente a una fila. Debido a que identifica a una fila la clave primaria nunca puede ser NULL, esto es la que lo diferencia de la restricción UNIQUE. Para la definición de la restricción PRIMARY KEY se pueden utilizar las instrucciones CREATE TABLE y ALTER TABLE. Nomenclatura para CREATE TABLE: nombre_campo tipo_dato PRIMARY KEY Ejemplo 1: Crea una Tabla denominada Ejemplo_Clave_PR, basada en la siguiente tupla: Ejemplo_Clave_PR (codigo: numeric, nombre: nvarchar(20)). Colocando el campo codigo como clave primaria.
  • 13. Lenguaje de Definición de Datos (DDL) Restricción – PRIMARY KEY Ejemplo 1: CREATE TABLE Ejemplo_Clave_PR ( codigo numeric PRIMARY KEY, nombre nvarchar(20) ) Además usando CREATE TABLE se le puede asignar un nombre a la restricción PRIMARY KEY (IDEAL) , usando la siguiente nomenclatura: Para cuando se coloca al lado del campo: nombre_campo tipo_dato CONSTRAINT PK_nombre_clave PRIMARY KEY Para cuando se coloca antes de cerrar el CREATE TABLE CONSTRAINT PK_nombre_clave PRIMARY KEY (columna o columnas) Compruebe si se cumple la restricción de clave primaria ingresando dos filas con el mismo código.
  • 14. Lenguaje de Definición de Datos (DDL) Restricción – PRIMARY KEY Nomenclatura para ALTER TABLE: ALTER TABLE nombre_tabla ADD CONSTRAINT PK_nombre_clave PRIMARY KEY (columna o columnas) Nomenclatura para BORRAR una clave primaria: ALTER TABLE nombre_tabla DROP CONSTRAINT PK_nombre_clave NOTA: EN LA BASE DE DATOS NO PUEDEN EXISTIR DOS RESTRICCIONES CON EL MISMO NOMBRE, AUNQUE SEAN DE TABLAS DISTINTAS. NOTA: Por nomenclatura al dar un nombre a una clave primaria es ideal comenzar con la letras PK
  • 15. Lenguaje de Definición de Datos (DDL) Restricción – FOREIGN KEY Una restricción FOREIGN KEY define una clave externa, que identifica una relación entre dos tablas. La columna o columnas clave externa de una tabla referencia a una clave candidata – una o varias columnas – de otra tabla. Cuando se inserta una fila en la tabla con la restricción FOREIGN KEY, los valores que se van a introducir en la columna o columnas que se han definido como clave externa se comprueban frente a los valores de la clave candidata de la tabla referenciada. Si ninguna fila de la tabla referenciada se ajusta a los valores de la clave externa, la nueva fila no se puede insertar. La restricción FOREIGN KEY también se comprueba cuando se realizan actualizaciones y borrados en la tabla referenciada o la tabla que posee la clave externa. Una clave externa sólo puede referenciar columnas que tengan las restricciones PRIMARY KEY o UNIQUE en la tabla referenciada.
  • 16. Lenguaje de Definición de Datos (DDL) Restricción – FOREIGN KEY Una clave externa sólo puede referenciar columnas que tengan las restricciones PRIMARY KEY o UNIQUE en la tabla referenciada. Además, el tipo de dato y el tamaño de la columna o columnas de la clave externa, también debe coincidir con el de la columna o columnas referenciadas. Esta restricción FOREIGN KEY se puede asignar utilizando la sentencia CREATE TABLE y ALTER TABLE. Nomenclatura en CREATE TABLE (Siempre se agrega antes de finalizar la creación de la tabla): CONSTRAINT FK_nombre_clave_ajena FOREIGN KEY (columna o columnas que guardaran los valores de la clave ajena) REFERENCES nombre_tabla_referencia (columna o columna que poseen datos a validar)
  • 17. Lenguaje de Definición de Datos (DDL) Restricción – FOREIGN KEY Ejemplo 5: Crear las siguientes tablas basadas en las tuplas: Colegio (codigo_col: numero,nombre:nvarchar(20)) Alumno (rut: numero, digito: char(2), nombre: nvarchar(20), colegio: numero) Restricciones: Colegio clave primaria codigo_col y Alumno clave primaria rut y digito. Además en alumno colegio es una clave externa que se debe verificar en Colegio. Paso 1: Crear las Tablas CREATE TABLE COLEGIO( codigo_col numeric, nombre nvarchar(20) NOT NULL, CONSTRAINT PK_colegio PRIMARY KEY (codigo_col) )
  • 18. Lenguaje de Definición de Datos (DDL) Restricción – FOREIGN KEY Ejemplo 5: Paso 1: Crear las Tablas CREATE TABLE ALUMNO( rut numeric, digito char(2), nombre nvarchar(20) NOT NULL, colegio numeric NOT NULL, CONSTRAINT PK_alumno PRIMARY KEY (rut,digito), CONSTRAINT FK_alumno_colegio FOREIGN KEY (colegio) REFERENCES COLEGIO (codigo_col) )
  • 19. Lenguaje de Definición de Datos (DDL) Restricción – FOREIGN KEY Ejemplo 5: Paso 2: Comprobación de la RESTRICCION DE CLAVE FORANEA Ingrese dos colegios: (1,’ESCUELA DEL SABER’) (2,’ESCUELA 2’) Ingrese dos alumnos colocando en el campos colegio uno de los dos colegios antes ingresado. Luego ingrese un tercer alumno haciendo referencia al código de colegio 3.
  • 20. Lenguaje de Definición de Datos (DDL) Restricción – FOREIGN KEY Nomenclatura en ALTER TABLE (para cuando se desea crear una clave externa después de haber creado la tabla): ALTER TABLE nombre_tabla ADD CONSTRAINT FK_nombre_clave_ajena FOREIGN KEY (columna o columnas para recepción de clave ajena) REFERENCES nombre_tabla_referencia (columna o columnas de referencia) Nomenclatura para borrar una clave ajena: ALTER TABLE nombre_tabla DROP CONSTRAINT FK_nombre_restriccion
  • 21. Lenguaje de Definición de Datos (DDL) Restricción – CHECK La restricción CHECK se usa para restringir los valores permitidos de una columna o unos valores específicos. Los valores de una columna que se van a introducir o actualizar se confirman. Se puede agregar esta restricción utilizando las instrucciones CREATE TABLE o ALTER TABLE. Nomenclatura CREATE TABLE: CONSTRAINT CK_nombre_restriccion CHECK (condiciones) Ejemplo 6: Crear una Tabla Ejemplo_CH basandose en la siguiente tupla: Ejemplo_CK (codigo: numeric, nombre: nvarchar(20)). Donde codigo es la clave primaria y solo puede aceptar valores entre 1 y 100.
  • 22. Lenguaje de Definición de Datos (DDL) Restricción – CHECK Ejemplo 6: CREATE TABLE Ejemplo_CK ( codigo numeric, nombre nvarchar(20), CONSTRAINT PK_codigo PRIMARY KEY (codigo), CONSTRAINT CK_codigo_condicion CHECK (codigo > 0 and codigo < 101) ) Para probar la realidad de la restricción ingrese un registro a la tabla Ejemplo_CK con un codigo con valor mayor que 100.
  • 23. Lenguaje de Definición de Datos (DDL) Restricción – CHECK Nomenclatura para ALTER TABLE (en el caso de que se cree una restricción después de haber creado la tabla): ALTER TABLE nombre_tabla ADD CONSTRAINT CK_nombre_restriccion CHECK (condiciones) Nomenclatura para Borrar una restricción CHECK: ALTER TABLE nombre_tabla DROP CONSTRAINT CK_nombre_restriccion
  • 24.