Post on 18-Aug-2018
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• D. D. L.
––DataData––DefinitionDefinition––LanguageLanguage..
D. D. L. Definición de Datos
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• D. D. L.
––DataData »» LenguajeLenguaje––DefinitionDefinition »» de Definicide Definicióónn––LanguageLanguage »» de Datosde Datos
D. D. L. Definición de Datos
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• D. D. L.–Permite crear, modificar y eliminar las estructuras para almacenar los datos (Metadata).
–Permite definir el esquema de la B.D.
D. D. L. Definición de Datos
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• D. D. L.–Bases de Datos
• Tablas (relaciones o entidades)–Columnas (atributos)–Claves:
» Primarias (atributo determinante)» Foráneas (claves externas, claves de otras tablas)
» Únicas (claves candidatas)–Índices, etc.
• Vistas (consultas almacenadas)
D. D. L. Definición de Datos
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• Los comandos para definir datos son:
––CREATECREATE, crear.
––ALTERALTER, modificar o alterar.
––DROPDROP, eliminar o descartar.
D. D. L. Definición de Datos
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
CREATE CREATE DATABASEDATABASE
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• CREATE DATABASE–Crea una nueva Base de Datos. –En InformiX existen varios “espacios”para almacenar las B. D., DBSpaces.
–Hay que especificar en cual, sino se crea en el “espacio” del root (rootdbs), de capacidad muy limitada.
D. D. L. Crear Base de Datos
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• CREATE DATABASE–Crear una nueva Base de Datos. CREATE DATABASECREATE DATABASE nombre_BDININ nombre_espacio
––Ejemplo:Ejemplo:
CREATE DATABASECREATE DATABASE BD_3IX_apeININ btdbs
D. D. L. Crear Base de Datos
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• CREATE DATABASE–Al crear un base de datos el usuario que ejecute la instrucción CREATE... se le asigna permisos como DBA (Administrador de la BD)
–Ningún usuario (excepto informix) pude utilizar la BD, hasta que se asignen permisos.
D. D. L. Crear Base de Datos
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
CREATE CREATE TABLETABLE
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• CREATE TABLE–Crea una nueva tabla (relación o entidad)–Para cada atributo se puede especificar:
• Nombre » Obligatorio• Tipo de dato » Obligatorio• Dominio• Restricciones
D. D. L. Creación de Tablas
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• CREATE TABLE–Tipos de restricciones:
•De clave•Atributos de ingreso obligatorio•De integridad:
–De dominio–Referencial
D. D. L. Creación de Tablas
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• CREATE TABLE–Sintaxis:CREATE TABLECREATE TABLENOM_TABLA (
ATRIB1 TIPO_DATO,ATRIB2 TIPO_DATO,ATRIB3 TIPO_DATO,.....);
D. D. L. Creación de Tablas
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• Tipos de Datos– El gestor de base de datos soporta las
siguientes categorías de tipos de datos:
• de caracteres• de números• de tiempo
• para objetos grandes
D. D. L. Creación de Tablas
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• Tipos de datos de caracteres– CHAR ( largo )– NCHAR ( largo )
• caracteres especiales del idioma estándar• largo: entre 1 y 32767
– VARHAR (máximo, reserva)– NVARCHAR (máximo, reserva)
• caracteres especiales del idioma estándar• máximo: entre 1 y 255. Tamaño máximo de la
cadena• reserva: entre 0 y 255. Tamaño reservado para la
cadena
D. D. L. Creación de Tablas
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• Tipos de datos numéricos– Tipo de Datos Numéricos Exactos
• INTEGER– -2.147.483.647 a 2.147.483.647
• SMALLINT– -32.767 a 32.767
• SERIAL ( n )– n: comienzo de la serie– integer autonumérico
D. D. L. Creación de Tablas
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
D.D.L. Tipos de Datos
• Tipos de datos numéricos– Tipo de Datos Numéricos Exactos
• DECIMAL ( p , s )–p: cantidad de dígitos–s: cantidad de decimales
• MONEY ( p , s )–símbolo monetario
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• Tipos de datos numéricos– Tipo de Datos Numéricos Aproximados
• DECIMAL ( p )– p: precisión del número real, un integer positivo
• FLOAT ( p )– p: de 1 a 32 dígitos significantes, 16 por defecto
• SAMLLFLOAT– 8 dígitos significantes
D.D.L. Tipos de Datos
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• Tipos de datos de tiempo– DATE
• fecha• formato (dd / mm /aaaa)
D.D.L. Tipos de Datos
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• Tipos de datos de tiempo– DATETIME
• fecha y hora• formato (aaaa-mm-dd hh:mm:ss.fff)
DATETIME Year To Year (1 a 9999)Month To Month (1 a 12)Day To Day (1 a 31-28)Hour To Hour (0 a 23)Minute To Minute (0 a 59)Second To Second (0 a 59)Fraction To Fraction (1 a 5)
3 - 1 milésima de segundo
D.D.L. Tipos de Datos
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• Tipos de datos de tiempo– INTERVAL
• almacena una unidad de tiempoINTERVAL Year(p) To Year
Month(p) To MonthDay(p) To DayHour(p) To HourMinute(p) To MinuteSecond(p) To SecondFraction(p) To Fraction
p: cantidad máxima de dígitos máximo 9
D.D.L. Tipos de Datos
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• Tipos de datos de objetos grandes– TEXT
• almacena caracteres hasta 2 31 bytes
– BYTE• almacena hasta 231 bytes
D.D.L. Tipos de Datos
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
D.D.L.Caso de Estudio
• Caso de Estudio:–En un supermercado las cajerascajeras realizan la facturación de los productosproductos a los clientesclientes.
–Los productosproductos pertenecen a distintos tipos (Alimentos, Carnes, etc.) y tienen distintos % de I.V.A. (básico, mínimo, eximidos)
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
D.D.L. – Caso de Estudio
CI-Caj
NombreeMail
Teléfonosdirección
Cajeras
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
D.D.L. – Caso de Estudio
CI-Caj
NombreeMail
Teléfonosdirección
**Cajeras
calle
esquinanombre
apellido
número
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
D.D.L. – Caso de Estudio
CI-Caj
CI-Clinúmero
NombreeMail
Teléfonosdirección**
Clientes
NombreeMail
Teléfonosdirección
**Cajeras
calle
esquinanombre
apellido
número
Dirección y nombreson atributos estructuradostambien en Clientes, peropor razones de espacio y
claridad los dejaremos comoatributos simples en el DER
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
D.D.L. – Caso de Estudio
CI-Caj ID-ProdDescripción
Precio
CI-Clinúmero
IVATipo-Producto
Productos
NombreeMail
Teléfonosdirección**
Clientes
NombreeMail
Teléfonosdirección
**Cajeras
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
D.D.L. – Caso de Estudio
CI-Caj ID-ProdDescripción
Precio
CI-Clinúmero
IVATipo-Producto
Productos
NombreeMail
Teléfonosdirección**
Clientes
NombreeMail
Teléfonosdirección
**Cajeras
MismosAtributos
Generalizamos
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
D.D.L. – Caso de Estudio
CI-Caj ID-ProdDescripción
Precio
CI-CliCI
NombreeMail
Teléfonos
número
dirección
Son
Personas **
IVATipo-Producto
Productos
NombreNombreeMaileMail
TelTelééfonosfonosdireccidireccióónn**
Clientes
NombreNombreeMaileMail
TelTelééfonosfonosdireccidireccióónn
**Cajeras
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
D.D.L. – Caso de Estudio
CI-Caj ID-ProdDescripción
Precio
CI-CliCI
NombreeMail
Teléfonos
número
dirección
Son
Personas
Cajeras Productos
**
ID-IVAPorcentaje
IVAs
Clientes
Tipo-ProductoIVA
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
D.D.L. – Caso de Estudio
CI-Caj ID-ProdDescripción
Precio
CI-CliCI
NombreeMail
Teléfonos
número
dirección
Son
Personas
Cajeras Productos
**
ID-IVAPorcentaje
IVAs
Clientes
T
Tipo-Producto
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
D.D.L. – Caso de Estudio
CI-Caj ID-ProdDescripción
Precio
CI-CliCI
NombreeMail
Teléfonos
número
dirección
Son
Personas
Cajeras Productos
**
ID-IVAPorcentaje
IVAs
Clientes
T
N
1
Todos los productos tienenun IVA asociado.
Tipo-Producto
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
D.D.L. – Caso de Estudio
CI-Caj ID-ProdDescripción
Precio
CI-CliCI
NombreeMail
Teléfonos
número
dirección
Son
Personas
FacturanCajeras Productos
**
ID-IVAPorcentaje
IVAs
Clientes
T
CantidadFechaHora
N N
N
1
Tipo-Producto
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
D.D.L. – Caso de Estudio
CI-Caj ID-ProdDescripciónPrecio
CI-CliCI
NombreeMail
Teléfonos
número
dirección
Son
Personas
FacturanCajeras Productos
**
ID-IVAPorcentaje
IVAs
Compran
Clientes
T
N N
N
1
N
1
CantidadFechaHora
Tipo-Producto
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
D.D.L. – Caso de Estudio
•Esquema Relacional:–Pasaje a Tablas:Personas (CI, nombre, apellido, calle,
número, esquina, email, teléfonos*)Cajeras (CI-Caj)Clientes (CI-Cli, número)Productos (ID-Prod, descripción, precio,
tipo)IVAs (ID-IVA, porcentaje)
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
D.D.L. – Caso de Estudio
•Esquema Relacional:–Pasaje a Tablas:Personas (CI, nombre, apellido, calle,
número, esquina, email, teléfonos*)Cajeras (CI-Caj)Clientes (CI-Cli, número)Productos (ID-Prod, descripcion, precio,
tipo)IVAs (ID-IVA, porcentaje)
Per-Tel(CI, teléfono)
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
D.D.L. – Caso de Estudio
•Esquema Relacional:–Pasaje a Tablas:Personas (CI, nombre, apellido, calle,
número, esquina, email, teléfonos*)Cajeras (CI-Caj)Clientes (CI-Cli, número)Productos (ID-Prod, descripcion, precio,
tipo)IVAs (ID-IVA, porcentaje)
Per-Tel(CI, teléfono)
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
D.D.L. – Caso de Estudio
•Esquema Relacional:–Pasaje a Tablas:Personas (CI, nombre, apellido, calle,
número, esquina, email)Cajeras (CI-Caj)Clientes (CI-Cli, número)Productos (ID-Prod, descripcion, precio,
tipo)IVAs (ID-IVA, porcentaje)
Per-Tel(CI, teléfono)
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
D.D.L. – Caso de Estudio
•Esquema Relacional:–Pasaje a Tablas:Per-Tel (CI, teléfono)
Facturan (CI-Caj, ID-Prod, fecha, hora, cantidad)
Compran (CI-Caj, ID-Prod, fecha, hora, CI-Cli)
Tienen (ID-Prod, ID-IVA)
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
D.D.L. – Caso de Estudio
•Esquema Relacional:–Pasaje a Tablas:Per-Tel (CI, teléfono)
Facturan (CI-Caj, ID-Prod, fecha, hora, cantidad)
Compran (CI-Caj, ID-Prod, fecha, hora, CI-Cli)
Tienen Tienen ((IDID--ProdProd, ID, ID--IVA)IVA) N a 1 con totalidadN a 1 con totalidad
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
D.D.L. – Caso de Estudio
•Esquema Relacional:–Pasaje a Tablas:Per-Tel (CI, teléfono)
Facturan (CI-Caj, ID-Prod, fecha, hora, cantidad)
Compran (CI-Caj, ID-Prod, fecha, hora, CI-Cli)
Tienen Tienen ((IDID--ProdProd, ID, ID--IVA)IVA) N a 1 con totalidadN a 1 con totalidad
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
D.D.L. – Caso de Estudio
•Esquema Relacional:–Pasaje a Tablas:Productos (ID-Prod, descripción, precio, IDID--IVAIVA, , tipotipo)
Tienen Tienen ((IDID--ProdProd, ID, ID--IVA)IVA) N a 1 con totalidadN a 1 con totalidad
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
D.D.L. – Caso de Estudio
• CREATE TABLECREATE TABLECREATE TABLE PERSONAS (CI INTEGER NOT NULL,NOMBRE VARCHAR(20,10) NOT NULL,APELLIDO VARCHAR(20,10) NOT NULL,CALLE VARCHAR(20,10),NUMERO INTEGER,ESQUINA VARCHAR(20,10),EMAIL VARCHAR(30,20),PRIMARYPRIMARY KEYKEY(CI) );
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
D.D.L. - Caso de Estudio
• CREATE TABLECREATE TABLECREATE TABLE CLIENTES(CI_CLI INTEGER NOT NULL,NUMERO INTEGER NOT NULL,
PRIMARY KEYPRIMARY KEY(CI_CLI) );
CREATE TABLECREATE TABLE CAJERAS(CI_CAJ INTEGER NOT NULL,
PRIMARY KEYPRIMARY KEY (CI_CAJ) );
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
D.D.L. - Caso de Estudio
• CREATE TABLE
CREATE TABLECREATE TABLE PRODUCTOS(ID_PROD INTEGER NOT NULL,DESCRIPCION VARCHAR(20,10) NOT NULL,PRECIO DECIMAL(7,2) NOT NULL,ID_IVA INTEGER,TIPO VARCHAR(17,12),PRIMARY KEYPRIMARY KEY (ID_PROD) );
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
D.D.L. - Caso de Estudio
• CREATE TABLE
CREATE TABLECREATE TABLE IVAS(ID_IVA INTEGER NOT NULL,PORCENTAJE DECIMAL(4,4) NOT NULL,
PRIMARY KEYPRIMARY KEY (ID_IVA) );
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
D.D.L. - Caso de Estudio
• CREATE TABLE
CREATE TABLECREATE TABLE PER_TEL(CI INTEGER NOT NULL,TELEFONO CHAR(9) NOT NULL,
PRIMARY KEYPRIMARY KEY (CI,TELEFONO));
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
D.D.L. - Caso de Estudio
• CREATE TABLE
CREATE TABLECREATE TABLE FACTURAN(CI_CAJ INTEGER NOT NULL,ID_PROD INTEGER NOT NULL,FECHA DATETIME YEAR TO MINUTE
NOT NULL,CANTIDAD DECIMAL (6,3) NOT NULL,
PRIMARY KEYPRIMARY KEY (CI_CAJ, ID_PROD, FECHA));
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
D.D.L. - Caso de Estudio
• CREATE TABLE
CREATE TABLECREATE TABLE COMPRAN(CI_CAJ INTEGER NOT NULL,ID_PROD INTEGER NOT NULL,FECHA DATETIME YEAR TO MINUTE
NOT NULL,CI_CLI INTEGER NOT NULL,PRIMARY KEYPRIMARY KEY (CI_CAJ, ID_PROD, FECHA));
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
ALTER ALTER TABLETABLE
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
D.D.L. Modificar Tablas
• ALTER TABLE–La definición de una tabla se puede modificar mediante el comando ALTER TABLEALTER TABLE (alterar o modificar tabla).
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• ALTER TABLE– Las acciones posibles para modificar las definiciones de una tabla incluyen:
• agregar o eliminar una columna.
• modificar la definición de una columna.
• agregar o eliminar restricciones de la tabla.
D.D.L. Modificar Tablas
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• ALTER TABLE–– AGREGAR:AGREGAR: ADDADD–Por ejemplo, si queremos añadir a la relación PERSONAS un atributo para almacenar la FECHA de NACIMIENTO, podemos usar la orden:
ALTER TABLE PERSONAS
ADDADD FECHA_NAC DATE;
D.D.L. Agregar un atributo
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• ALTER TABLE–– MODIFICAR:MODIFICAR: MODIFYMODIFY–Por ejemplo, si queremos MODIFICAR la entidad PERSONAS el TAMAÑO o LARGO del atributo APELLIDO, podemos usar la orden:ALTER TABLE PERSONAS MODIFYMODIFYAPELLIDO VARCHAR(15,10);
D.D.L. Modificar el tipo de dato
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• ALTER TABLE–– MODIFICARMODIFICAR: : MODIFYMODIFY– Cuando se agrega una columna a una tabla, ésta admite valores nulos (NULLNULL).
– Se puede agregar una restricción a lascolumnas para que no admitan valores nulos(NOTNOT NULLNULL), siempre y cuando la columnano contenga algún valor NULLNULL.
D.D.L. Modificar Tablas
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• ALTER TABLE–– MODIFICARMODIFICAR:: MODIFYMODIFY–Por ejemplo, si queremos AGREGAR la restricción de NOT NULL al atributoFECHA_NAC de la relación PERSONAS podemos usar la orden:
ALTER TABLE PERSONAS MODIFYMODIFYFECHA_NAC DATE NOTNOT NULLNULL;
D.D.L. Ingreso Obligatorio
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• ALTER TABLE–– MODIFICARMODIFICAR:: MODIFYMODIFY
–Poner un valor por defecto, cuando no se asigna uno:
ALTER TABLE PRODUCTOS MODIFYMODIFY
TIPO VARCHAR(17,12) DEFAULTDEFAULT ‘Alimentos’
D.D.L. Valor por defecto
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• ALTER TABLE–– MODIFICARMODIFICAR:: MODIFYMODIFY
– También se pueden agregar a la hora de crearla tabla:
CREATE TABLE PRODUCTOS(.....TIPO VARCHAR(17,12) DEFAULTDEFAULT ‘Alimentos’,....);
D.D.L. Valor por defecto
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• ALTER TABLE–– MODIFICARMODIFICAR:: MODIFYMODIFY– Verificar que los valores estén en determinadodominio.
– Por ejemplo, asegurarse que los valores posiblesdel atributo TIPO de la tabla PRODUCTO sean:• Alimentos, Carnes, Quesos y Fiambres, Lacteos, Limpieza, Kiosco, Bebidas, Bebidas Alcoholicas
D.D.L. Restricción de Dominio
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• ALTER TABLE–– MODIFICARMODIFICAR:: MODIFYMODIFY
ALTER TABLE PRODUCTOS MODIFYMODIFY TIPO CHAR(17) CHECKCHECK (TIPO ININ (‘Alimentos’, ‘Carnes’, ‘Quesos y Fiambres’, ‘Lacteos’, ‘Limpieza’, ‘Kiosco’, ‘Bebidas’, ‘BebidasAlcoholicas’ ));
D.D.L. Restricción de Dominio
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• ALTER TABLE
– También se pueden agregar a la hora de crearla tabla:
CREATE TABLE CAJERAS (
CI_CAJ INTEGER NOT NULL,
QUEBRANTO INTEGER CHECKCHECK
(QUEBRANTO BETWEENBETWEEN 100 ANDAND 9000 ),
PRIMARY KEY (CI_CAJ));
D.D.L. Restricción de Dominio
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
CONSTRAINTSCONSTRAINTS
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
D. D. L.Claves
• ALTER TABLE–Para que el SGBD controle:
• las claves primarias (PRIMARYPRIMARY KEYKEY)• las claves foráneas (FOREIGNFOREIGN KEYKEY)• las claves candidatas (UNIQUEUNIQUE KEYKEY)
–hay que indicar a través de CONSTRAINTSCONSTRAINTS que atributo(s) pertenecen a cada uno.
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• ALTER TABLE–– PRIMARYPRIMARY KEYKEY
• Controla que el valor de un atributo (o la combinación de atributos) sea único para todas las filas de una tabla.
ALTER TABLE PRODUCTOS ADDADD
CONSTRAINTCONSTRAINT PRIMARYPRIMARY KEYKEY (ID_PROD)
CONSTRAINTCONSTRAINT PK_PROD;
D. D. L.Clave Primaria
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• ALTER TABLE–– PRIMARYPRIMARY KEYKEY
• Controla que el valor de un atributo (o la combinación de atributos) sea único para todas las filas de una tabla.
ALTER TABLE PRODUCTOS ADDADD
CONSTRAINTCONSTRAINT PRIMARYPRIMARY KEYKEY (ID_PROD)
CONSTRAINTCONSTRAINT PK_PROD;
D. D. L.Clave Primaria
Indicar un nombre paraeste CONSTRAINT.Opcional.
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• ALTER TABLE–– FOREIGNFOREIGN KEYKEY
• Controla que el valor de un atributo (o la combinación de atributos) exista en otra tabla (el valor).
• Este atributo (o la combinación de atributos) debe ser clave primaria en la otra tabla (CLAVECLAVE EXTERNAEXTERNA).
D. D. L.Clave For ánea
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• ALTER TABLE– En la tabla PRODUCTOS se hace referencia a ID_IVA que debe existir (el valor) en la tabla IVAs.
ALTER TABLE PRODUCTOS ADDADD
CONSTRAINTCONSTRAINT FFOOREIGREIGNN KEYKEY (ID_IVA)
REFERENCESREFERENCES IVAS (ID_IVA)CONSTRAINTCONSTRAINT FK_PROD;
D. D. L.Clave For ánea
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• ALTER TABLE– En la tabla PRODUCTOS se hace referencia a ID_IVA que debe existir (el valor) en la tabla IVAs.
ALTER TABLE PRODUCTOS ADDADDCONSTRAINTCONSTRAINT FFOOREIGREIGNN KEYKEY (ID_IVA)
REFERENCESREFERENCES IVAS (ID_IVA)
CONSTRAINTCONSTRAINT FK_PROD;
Atributo (listade atributos) de latabla que es claveen otra tabla.
D. D. L.Clave For ánea
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• ALTER TABLE– En la tabla PRODUCTOS se hace referencia a ID_IVA que debe existir (el valor) en la tabla IVAs.
ALTER TABLE PRODUCTOS ADDADDCONSTRAINTCONSTRAINT FFOOREIGREIGNN KEYKEY (ID_IVA)
REFERENCESREFERENCES IVAS (ID_IVA)
CONSTRAINTCONSTRAINT FK_PROD;
Indicar en que tablay el nombre del o losatributos en esa tabla.
D. D. L.Clave For ánea
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• ALTER TABLE– En la tabla PRODUCTOS se hace referencia a ID_IVA que debe existir (el valor) en la tabla IVAs.
ALTER TABLE PRODUCTOS ADDADDCONSTRAINTCONSTRAINT FFOOREIGREIGNN KEYKEY (ID_IVA)
REFERENCESREFERENCES IVAS (ID_IVA)
CONSTRAINTCONSTRAINT FK_PROD;
Indicar un nombre paraeste CONSTRAINT.Opcional.
D. D. L.Clave For ánea
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• ALTER TABLE•También en la tablas CAJERAS y CLIENTES se hacen referencia a un mismo atributo (CI) de la tabla PERSONAS como, CI_CAJ y CI_CLI, ambos deben existir (los valores) en la tabla PERSONAS.
D. D. L.Clave For ánea
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• ALTER TABLEALTER TABLE CAJERAS ADDADD CONSTRAINTCONSTRAINTFFOOREIGREIGNN KEYKEY (CI_CAJ)
REFERENCESREFERENCES PERSONAS (CI)CONSTRAINTCONSTRAINT FK_CI_CAJ;
ALTER TABLE CLIENTES ADDADD CONSTRAINTCONSTRAINTFFOOREIGREIGNN KEYKEY (CI_CLI)
REFERENCESREFERENCES PERSONAS (CI)CONSTRAINTCONSTRAINT FK_CI_CLI;
D. D. L.Clave For ánea
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• ALTER TABLE•También en la relaciones FACTURAN y COMPRAN se hacen referencia a las claves de las entidades que están vinculadas.
• Se debe agregar una constraint para cada entidad vinculada en la relación.
D. D. L.Clave For ánea
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• ALTER TABLEALTERALTER TABLETABLE FACTURAN ADDADDCONSTRAINTCONSTRAINT FFOOREIGREIGNN KEYKEY (CI_CAJ)
REFERENCESREFERENCES CAJERAS (CI_CAJ)
CONSTRAINTCONSTRAINT FK_CI_CAJ_FACT;
ALTERALTER TABLETABLE FACTURAN ADDADDCONSTRAINTCONSTRAINT FFOOREIGREIGNN KEYKEY (ID_PROD)
REFERENCESREFERENCES PRODUCTOS (ID_PROD)
CONSTRAINTCONSTRAINT FK_ID_PROD_FACT;
D. D. L.Clave For ánea
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• ALTER TABLEALTER TABLE COMPRAN ADDADD
CONSTRAINTCONSTRAINT FFOOREIGREIGNN KEYKEY (CI_CLI)
REFERENCESREFERENCES CLIENTES (CI_CLI)
CONSTRAINTCONSTRAINT FK_CI_CLI_COMP;
D. D. L.Clave For ánea
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• ALTER TABLEALTER TABLE COMPRAN ADDADD
CONSTRAINTCONSTRAINT FFOOREIGREIGNN KEYKEY
(CI_CAJ, ID_PROD, FECHA)REFERENCESREFERENCES FACTURAN(CI_CAJ, ID_PROD, FECHA)CONSTRAINTCONSTRAINT FK_FACT_COMP;
D. D. L.Clave For ánea
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• ALTER TABLE– En la tabla CLIENTES el atributo NÚMERO es único.
–– UNIQUEUNIQUE KEYKEY• Controla que un atributo (o la combinación de atributos) tenga un único valor (CLAVECLAVECANDIADATACANDIADATA).
ALTER TABLE CLIENTESADDCONSTRAINTCONSTRAINT UNIQUEUNIQUE (NUMERO)CONSTRAINTCONSTRAINT UK_CLIUK_CLI;
D. D. L.Clave Única
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• ALTER TABLE–– ELIMINARELIMINAR:: DROPDROP
• Agregamos un nuevo atributo– edad
ALTERALTER TABLETABLE PERSONAS
ADDADD EDAD INTEGER;
• No era necesario...
ALTERALTER TABLETABLE PERSONAS
DROPDROP EDAD;
D. D. L.Eliminar un Atributo
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
DROP DROP TABLETABLE
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• DROP TABLE
–Si ya no se necesita una tabla, podemos eliminarla junto con su definición con la orden:
•DROP TABLE
DROPDROP TABLETABLE nombre_tabla
D. D. L.Eliminar Tablas
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• DROP TABLE
– Si la tabla a eliminar tiene la clave primaria o alguna clave secundaria referenciada poralguna clave externa de otra tabla, se deberáneliminar también estos Constraints
DROPDROP TABLETABLE PRODUCTOS CASCADE CONSTRAINTS;
D. D. L.Eliminar Tablas
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• Para habilitar Constraints:SETSET CONSTRAINTS FK_PROD ENABLEDENABLED;
• Para deshabilitar Constraints:SETSET CONSTRAINTS FK_PROD DISABLEDDISABLED;
D. D. L.Activar – Desactivar Constraints
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
• Renombrar: RENAMERENAME
• Para cambiar el nombre de un atributo:RENAMERENAME COLUMNCOLUMN
TABLA ATRIB TOTO NOM_NUEVO• Para cambiar el nombre de una tabla:
RENAMERENAME TABLETABLE nombre_tabla_vieja TOTOnombre_tabla_nueva;
D. D. L.Renombrar
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
CASO DE CASO DE ESTUDIOESTUDIO
CREATE TABLECREATE TABLE
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
CREATE TABLE PERSONAS (CI INTEGER NOT NULL,NOMBRE VARCHAR(20,10) NOT NULL,APELLIDO VARCHAR(15,10) NOT NULL,CALLE VARCHAR(20,10),NUMERO INTEGER,ESQUINA VARCHAR(20,10),EMAIL VARCHAR(30,20),FECHA_NAC DATE NOT NULL,PRIMARY KEY(CI) CONSTRAINT PK_PERSONAS);
CREATE PERSONAS
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
CREATE TABLE PER_TEL(CI INTEGER NOT NULL,TELEFONO CHAR(9) NOT NULL,FOREIGN KEY (CI) REFERENCES PERSONAS (CI)
CONSTRAINT FK_CI,PRIMARY KEY (CI,TELEFONO) CONSTRAINT
PK_PER_TEL);
CREATE PER_TEL
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
CREATE TABLE CLIENTES(
CI_CLI INTEGER NOT NULL,
NUMERO INTEGER NOT NULL,
UNIQUE (NUMERO) CONSTRAINT UK_CLI,
FOREIGN KEY (CI_CLI) REFERENCES PERSONAS (CI)
CONSTRAINT FK_CI_CLI,
PRIMARY KEY(CI_CLI) CONSTRAINT PK_CLIENTES);
CREATE CLIENTES
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
CREATE TABLE CAJERAS(
CI_CAJ INTEGER NOT NULL,
QUEBRANTO INTEGER CHECK (QUEBRANTO
BETWEEN 100 AND 9000 ),
FOREIGN KEY (CI_CAJ) REFERENCES PERSONAS (CI)
CONSTRAINT FK_CI_CAJ,
PRIMARY KEY (CI_CAJ) CONSTRAINT PK_CAJERAS);
CREATE CAJERAS
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
CREATE TABLE IVAS(ID_IVA INTEGER NOT NULL,PORCENTAJE DECIMAL(4,4) NOT NULL,PRIMARY KEY (ID_IVA) CONSTRAINT PK_IVAS);
CREATE IVAS
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
CREATE TABLE PRODUCTOS(ID_PROD INTEGER NOT NULL,DESCRIPCION VARCHAR(20) NOT NULL,PRECIO DECIMAL(7,2) NOT NULL,ID_IVA INTEGER DEFAULT 3,TIPO VARCHAR(17) CHECK (TIPO IN
(‘Alimentos’, ‘Carnes’, ‘Quesos y Fiambres’, ‘Lacteos’, ‘Limpieza’, ‘Kiosco’, ‘Bebidas’, ‘Bebidas Alcoholicas’)),
FOREIGN KEY (ID_IVA) REFERENCES IVAS (ID_IVA) CONSTRAINT FK_PROD,
PRIMARY KEY (ID_PROD) CONSTRAINT PK_PRODUCTOS);
CREATE PRODUCTOS
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
CREATE TABLE FACTURAN(CI_CAJ INTEGER NOT NULL,ID_PROD INTEGER NOT NULL,FECHA DATETIME YEAR TO MINUTE NOT NULL,CANTIDAD DECIMAL (6,3) NOT NULL,FOREIGN KEY (CI_CAJ) REFERENCES CAJERAS (CI_CAJ)
CONSTRAINT FK_CI_CAJ_FACT,FOREIGN KEY (ID_PROD) REFERENCES PRODUCTOS (ID_PROD)
CONSTRAINT FK_ID_PROD,PRIMARY KEY (CI_CAJ, ID_PROD, FECHA) CONSTRAINT
PK_FACTURAN);
CREATE FACTURAN
Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
CREATE TABLE COMPRAN(CI_CAJ INTEGER NOT NULL,ID_PROD INTEGER NOT NULL,FECHA DATETIME YEAR TO MINUTE NOT NULL,CI_CLI INTEGER NOT NULL,FOREIGN KEY (CI_CAJ, ID_PROD, FECHA) REFERENCES FACTURAN
(CI_CAJ, ID_PROD, FECHA) CONSTRAINT FK_FACT_COMP,FOREIGN KEY (CI_CLI) REFERENCES CLIENTES (CI_CLI)
CONSTRAINT FK_CI_CLI_COMP,PRIMARY KEY (CI_CAJ, ID_PROD, FECHA) CONSTRAINT
PK_COMPRAN);
CREATE COMPRAN