Post on 23-Jan-2016
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L.D.D.L. (Lenguaje de Definición Datos)(Lenguaje de Definición Datos)
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
D. D. L.DataDataDefinitionDefinitionLanguageLanguage.
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
D. D. L.DataData - Lenguaje- LenguajeDefinitionDefinition - de - de DefiniciónDefinición
LanguageLanguage - de Datos- de Datos
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
D. D. L.Permite crear, modificar y eliminar las estructuras de los datos (Metadata).
Permite definir como será la B.D.
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
D. D. L. Estructuras:
Bases de DatosTablas (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)
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
Los comandos para definir datos son:CREATECREATE, crear.ALTERALTER, modificar o alterar.
DROPDROP, eliminar o descartar.
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
CREATE CREATE DATABASEDATABASE
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
CREATE DATABASECrea una nueva Base de Datos.
En informix existen varios “espacios” para almacenar las B.D.
Hay que especificar en cual, sino se crea en el “espacio” del root (rootdbs), de capacidad muy limitada.
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
CREATE DATABASE Crear una nueva Base de Datos. CREATE DATABASE CREATE DATABASE nombre_BDIN IN nombre_espacio
Ejemplo:Ejemplo:
CREATE DATABASECREATE DATABASE BD_2INX_apeININ datosdbs
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
CREATE DATABASEAl 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 (exepto root de informix) pude utilizar la BD, hasta que se asignen permisos.
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
CREATE TABLECREATE TABLE
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
CREATE TABLECrea una nueva relación o entidad.
Para cada atributo se puede especificar:NombreTipo de dato DominioRestricciones
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
CREATE TABLETipos de restricciones:
de clavede integridad de tablasde integridad referencial
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
CREATE TABLEEjemplo:CREATE TABLECREATE TABLE NOM_TABLA(
ATRIB1 TIPO_DATO,ATRIB2 TIPO_DATO,ATRIB3 TIPO_DATO,.....);
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
Tipos de Datos El gestor de base de datos soporta las
siguientes categorias de tipos de datos:tipos de datos de caracterestipos de datos de númerostipos de datos de tiempotipos de datos para objetos grandes
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
Tipos de datos de caracteres char (largo) nchar (largo)
solo mayúsculas largo: entre 1 y 32767
varchar (máximo, reserva) nvarchar (máximo, reserva)
solo mayúsculasmáximo: entre 1 y 255. Tamaño máximo
de la cadenareserva: entre 0 y 255. Tamaño reservado
para la cadena
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
Tipos de datos numéricos Tipo de Datos Númericos 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
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
Tipos de datos numéricos Tipo de Datos Númericos Exactos
decimal (p,s) p: cantidad de digitos s: cantidad de decimales
money(p,s) símbolo monetario
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
Tipos de datos numéricos Tipo de Datos Númericos Aproximados
decimal(p) p: precisión del número real, un integer
positivo
float(p) p: de 1 a 32 digitos significantes, 16 por
defecto
smallfloat 8 digitos significantes
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
Tipos de datos de tiempo date
fecha formato (mm/dd/yy)
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
Tipos de datos de tiempo datetime
fecha y hora formato (mm/dd/yy hh:mm:ss.fff)
datetime Year To Year (1 a 9999)Month To Month (1 a 12)Day To Day (1 a 31,30 o29)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 milesima de segundo
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
Tipos de datos de tiempo interval
almacena una unidad de tiempointerval Year(p) To Year (1 a 9999)
Month(p) To Month (1 a 12)Day(p) To Day (1 a 31,30 o29)Hour(p) To Hour (0 a 23)
Minute(p) To Minute (0 a 59)Second(p) To Second (0 a 59)Fraction(p) To Fraction (1-5)
p: cantidad máxima de dígitos para almacenar años, meses, dias... máximo 9
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
Tipos de datos de objetos grandes text
almacena caracteres hasta 2 31 bytes
byte almacena hasta 231 bytes
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
Caso de Estudio: En un supermercado las
cajerascajeras realizan la facturación de los productosproductos a los clientesclientes.
Los productosproductos pertenecen a disitintos tipos (Alimentos, Carnes, etc.) y tienen distintos % de I.V.A. (básico, mínimo, eximidos)
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. – Caso de Estudio
CI-Caj
NombreeMail
Teléfonosdirección
Cajeras
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. – Caso de Estudio
CI-Caj
NombreeMail
Teléfonosdirección
**Cajeras
calle
esquinanombre
apellido
número
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
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 MER
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
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
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
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
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
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
TeléfonosTeléfonosdireccióndirección **
Clientes
NombreNombreeMaileMail
TeléfonosTeléfonosdireccióndirección
**Cajeras
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
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
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
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
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
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
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
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
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
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
Compran
Clientes
T
N N
N
1
N
1
CantidadFechaHora
Tipo-Producto
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
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)
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
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)
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
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)
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
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)
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
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)
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
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 ((ID-ProdID-Prod, ID-IVA), ID-IVA)
N a 1 con totalidadN a 1 con totalidad
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
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 ((ID-ProdID-Prod, ID-IVA), ID-IVA)
N a 1 con totalidadN a 1 con totalidad
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. – Caso de Estudio
Esquema Relacional:Pasaje a Tablas:Productos (ID-Prod, descripcion, precio, ID-IVAID-IVA)
Tienen Tienen ((ID-ProdID-Prod, ID-IVA), ID-IVA)N a 1 con totalidadN a 1 con totalidad
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. – Caso de EstudioCREATE TABLECREATE TABLECREATE TABLE PERSONAS (
CI INTEGER NOT NULL,NOMBRE VARCHAR(20) NOT NULL,APELLIDO VARCHAR(20) NOT NULL,CALLE VARCHAR(20),NUMERO INTEGER,ESQUINA VARCHAR(20),EMAIL VARCHAR(30),PRIMARYPRIMARY KEYKEY(CI) );
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
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) );
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Caso de Estudio
CREATE TABLECREATE TABLECREATE TABLE CAJERAS(CI_CAJ INTEGER NOT
NULL,
PRIMARY KEY PRIMARY KEY (CI_CAJ) );
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Caso de Estudio
CREATE TABLE
CREATE TABLECREATE TABLE PRODUCTOS(ID_PROD INTEGER NOT NULL,DESCRIPCION VARCHAR(20) NOT NULL,PRECIO DECIMAL(7,2) NOT NULL,ID_IVA INTEGER,TIPO VARCHAR(17),PRIMARY KEY PRIMARY KEY (ID_PROD) );
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Caso de Estudio
CREATE TABLECREATE TABLECREATE TABLE IVAS(ID_IVA INTEGER NOT NULL,PORCENTAJE DECIMAL(4,4) NOT NULL,
PRIMARY KEY PRIMARY KEY (ID_IVA) );
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Caso de Estudio
CREATE TABLECREATE TABLECREATE TABLE PER_TEL(CI INTEGER NOT NULL,TELEFONO CHAR(9) NOT NULL,
PRIMARY KEY PRIMARY KEY (CI,TELEFONO));
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Caso de Estudio
CREATE TABLECREATE TABLECREATE TABLE FACTURAN(CI_CAJ INTEGER NOT NULL,ID_PROD INTEGER NOT NULL,FECHA DATETIME YEAR TO MINUTES NOT NULL,CANTIDAD DECIMAL (6,3) NOT NULL
PRIMARY KEY PRIMARY KEY (CI_CAJ, ID_PROD, FECHA));
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Caso de Estudio
CREATE TABLECREATE TABLECREATE TABLE COMPRAN(CI_CAJ INTEGER NOT NULL,ID_PROD INTEGER NOT NULL,FECHA DATETIME YEAR TO MINUTES NOT NULL,CI_CLI INTEGER NOT NULL
PRIMARY KEY PRIMARY KEY (CI_CAJ, ID_PROD, FECHA));
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
ALTER TABLEALTER TABLE
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
ALTER TABLELa definición de una tabla se puede modificar mediante la opción ALTER TABLEALTER TABLE (alterar o modificar tabla).
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
ALTER TABLE Las acciones posibles para modifcar
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.
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
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;
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
ALTER TABLE MODIFICAR:MODIFICAR: MODIFYMODIFYPor ejemplo, si queremos MODIFICAR la entidadad PERSONAS el TAMAÑO del atributo APELLIDO, podemos usar la orden:ALTER TABLE PERSONAS MODIFYMODIFY APELLIDO VARCHAR(15);
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
ALTER TABLE MODIFICAR: MODIFYMODIFICAR: MODIFY Cuando se agrega una columna a
una tabla, ésta admite valores nulos (NULLNULL).
Se puede agregar una restricción a las columnas para que no admitan valores nulos (NOT NULLNOT NULL), siempre y cuando la columna no contenga algún valor NULLNULL.
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
ALTER TABLE MODIFICAR:MODIFICAR: MODIFYMODIFY Por ejemplo, si queremos AGREGAR la restricción de NOT NULL al atributo FECHA_NAC de la relación PERSONAS podemos usar la orden:ALTER TABLE PERSONAS MODIFYMODIFY (FECHA_NAC DATE NOT NULLNOT NULL);
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
ALTER TABLE MODIFICAR:MODIFICAR: MODIFYMODIFYPoner un valor por defecto, cuando no se asigna uno:
ALTER TABLE PRODUCTOS MODIFYMODIFY
(TIPO VARCHAR(17) DEFAULTDEFAULT ‘Alimentos’)
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
ALTER TABLE MODIFICAR:MODIFICAR: MODIFYMODIFY
También se pueden agregar a la hora de crear la tabla:
CREATE TABLE PRODUCTOS(.....TIPO VARCHAR(17) DEFAULT DEFAULT ‘Alimentos’, ....);
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
ALTER TABLE MODIFICAR:MODIFICAR: MODIFYMODIFY Verificar que los valores estén en
determinado dominio. Por ejemplo, asegurarse que los
valores posibles del atributo TIPO de la tabla PRODUCTO sean: Alimentos, Carnes, Quesos y Fiambres,
Lacteos, Limpieza, Kiosco, Bebidas, Bebidas Alcoholicas
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
ALTER TABLE MODIFICAR:MODIFICAR: MODIFYMODIFY
ALTER TABLE PRODUCTO MODIFY MODIFY TIPO CHAR(20)TIPO CHAR(20) CHECKCHECK (TIPO ININ (‘Alimentos’, ‘Carnes’, ‘Quesos y Fiambres’, ‘Lacteos’, ‘Limpieza’, ‘Kiosco’, ‘Bebidas’, ‘Bebidas Alcoholicas’ ));
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
ALTER TABLE También se pueden agregar a la
hora de crear la tabla:CREATE TABLE CAJERAS (
CI_CAJ INTEGER NOT NULL,
QUEBRANTO INTEGER CHECKCHECK
(QUEBRANTO BETWEENBETWEEN 100 ANDAND 9000 ),
PRIMARY KEY (CI_CAJ));
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
CONSTRAINTSCONSTRAINTS
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
ALTER TABLE Para que el SGBD controle:
las claves primarias (PRIMARY PRIMARY KEYKEY)
las claves foráneas (FOREIGNFOREIGN KEYKEY) las claves candidatas (UNIQUEUNIQUE
KEYKEY) hay que indicar através de
CONSTRAINTSCONSTRAINTS que atributo(s) pertenecen a cada uno.
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
ALTER TABLE FOREIGN KEYFOREIGN KEY
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 (CLAVE EXTERNACLAVE EXTERNA).
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
ALTER TABLE En la tabla PRODUCTOS se hace
referencia a ID_IVA que debe existir (el valor) en la tabla IVAs.
ALTER TABLE PRODUCTOSADDADD CONSTRAINTCONSTRAINTFFOOREIGREIGNN KEY KEY (ID_IVA)
REFERENCESREFERENCES IVAS (ID_IVA)CONSTRAINT CONSTRAINT FK_PROD;
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
ALTER TABLE En la tabla PRODUCTOS se hace
referencia a ID_IVA que debe existir (el valor) en la tabla IVAs.
ALTER TABLE PRODUCTOSADD CONSTRAINTADD CONSTRAINT
FFOOREIGREIGNN KEY KEY (ID_IVA)
REFERENCESREFERENCES IVAS (ID_IVA)CONSTRAINT CONSTRAINT FK_PROD;
Atributo (listade atributos) de latabla que es claveen otra tabla.
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
ALTER TABLE En la tabla PRODUCTOS se hace
referencia a ID_IVA que debe existir (el valor) en la tabla IVAs.
ALTER TABLE PRODUCTOSADDADD CONSTRAINTCONSTRAINTFFOOREIGREIGNN KEY KEY (ID_IVA)
REFERENCESREFERENCES IVAS (ID_IVA)CONSTRAINT CONSTRAINT FK_PROD;
Indicar en que tablay el nombre del o losatributos en esa tabla.
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
ALTER TABLE En la tabla PRODUCTOS se hace
referencia a ID_IVA que debe existir (el valor) en la tabla IVAs.
ALTER TABLE PRODUCTOSADD CONSTRAINT ADD CONSTRAINT FFOOREIGREIGNN KEY KEY (ID_IVA)
REFERENCESREFERENCES IVAS (ID_IVA)CONSTRAINT CONSTRAINT FK_PROD;
Indicar un nombre paraeste CONSTRIANT.Opcional.
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
ALTER TABLETambié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.
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
ALTER TABLEALTER TABLE CAJERAS
ADDADD CONSTRAINTCONSTRAINT (FFOOREIGREIGNN KEY KEY (CI_CAJ)
REFERENCESREFERENCES PERSONAS (CI)CONSTRAINTCONSTRAINT FK_CI_CAJ);
ALTER TABLE CLIENTES ADDADD CONSTRAINT CONSTRAINT (FFOOREIGREIGNN KEY KEY (CI_CLI)
REFERENCESREFERENCES PERSONAS (CI)CONSTRAINTCONSTRAINT FK_CI_CLI);
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
ALTER TABLETambién en la relaciones FACTURAN y COMPRAN se hacen referencia a las claves de las entidades que estan vinculadas.
Se debe agregar una constraint para cada entidad vinculada en la relación.
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
ALTER TABLEALTER TABLEALTER TABLE FACTURAN
ADDADD CONSTRAINTCONSTRAINT(FFOOREIGREIGNN KEY KEY (CI_CAJ)REFERENCESREFERENCES CAJERAS (CI_CAJ)CONSTRAINTCONSTRAINT FK_CI_CAJ_FACT);
ALTER TABLEALTER TABLE FACTURAN ADDADD CONSTRAINT CONSTRAINT (FFOOREIGREIGNN KEY KEY (ID_PROD)REFERENCESREFERENCES PRODUCTOS (ID_PROD)CONSTRAINTCONSTRAINT FK_ID_PROD_FACT);
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
ALTER TABLEALTER TABLE COMPRAN ADD ADD
CONSTRAINT CONSTRAINT (FFOOREIGREIGNN KEY KEY (CI_CLI)REFERENCESREFERENCES CLIENTES (CI_CLI)CONSTRAINTCONSTRAINT FK_CI_CLI_COMP);ALTER TABLE COMPRAN ADD ADD
CONSTRAINT CONSTRAINT (FFOOREIGREIGNN KEY KEY (CI_CAJ, ID_PROD, FECHA)
REFERENCESREFERENCES FACTURAN (CI_CAJ, ID_PROD, FECHA)
CONSTRAINTCONSTRAINT FK_FACT_COMP);
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
ALTER TABLE En la tabla CLIENTES el atributo
NÚMERO es único. UNIQUE KEYUNIQUE KEY
Controla que un atributo (o la combinación de atributos) tenga un único valor (CLAVE CANDIADATACLAVE CANDIADATA).
ALTER TABLE CLIENTES ADDCONSTRAINT UNIQUE CONSTRAINT UNIQUE (NUMERO)CONSTRAINT UK_CLICONSTRAINT UK_CLI;
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
ALTER TABLE ELIMINAR:ELIMINAR: DROPDROP
Agregamos un nuevo atributo edad
ALTER TABLEALTER TABLE PERSONAS
ADDADD EDAD INTEGER; No era necesario...
ALTER TABLEALTER TABLE PERSONAS
DROPDROP EDAD;
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
DROP TABLEDROP TABLE
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
DROP TABLE
Si ya no se necesita una relación base, podemos eliminarla junto con su definición con la orden:
DROP TABLE
DROP TABLEDROP TABLE nombre_tabla
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
DROP TABLE Si la tabla a eliminar tiene la
clave primaria o alguna clave secundaria referenciada por alguna clave externa de otra tabla, se deberán eliminar también estos Constraints
DROP TABLEDROP TABLE PRODUCTOS CASCADE CONSTRAINTS;
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
Para habilitar Constraints:
ALTER TABLEALTER TABLE PRODUCTOS ENABLEENABLE CONSTRAINT FK_PROD;
Para deshabilitar Constraints:
ALTER TABLEALTER TABLE PRODUCTOS DISABLEDISABLE CONSTRAINT FK_PROD;
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
D.D.L. - Definición de Estructuras
Renombrar: RENAMERENAMEPara cambiar el nombre de un
atributo:RENAMERENAME COLUMNCOLUMN
TABLA ATRIB TO TO NOM_NUEVOPara cambiar el nombre de una
tabla:
RENAMERENAME TABLE TABLE nombre_tabla_vieja
TOTO nombre_tabla_nueva;
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
CASO DE ESTUDIOCASO DE ESTUDIOCREATE TABLECREATE TABLE
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
CREATE TABLE PERSONAS (CI INTEGER NOT NULL,NOMBRE VARCHAR(20) NOT NULL,APELLIDO VARCHAR(15) NOT NULL,CALLE VARCHAR(20),NUMERO INTEGER,ESQUINA VARCHAR(20),EMAIL VARCHAR(30),FECHA_NAC DATE NOT NULL,PRIMARY KEY(CI));
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
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));
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
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));
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
CREATE TABLE PRODUCTOS(ID_PROD INTEGER NOT NULL,DESCRIPCIONVARCHAR(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));
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
CREATE TABLE IVAS(ID_IVA INTEGER NOT NULL,PORCENTAJE DECIMAL(4,4) NOT
NULL,
PRIMARY KEY (ID_IVA));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));
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
CREATE TABLE FACTURAN(CI_CAJ INTEGER NOT NULL,ID_PROD INTEGER NOT NULL,FECHA DATETIME YEAR TO
MINUTES NOT NULL,CANTIDAD DECIMAL (6,3) NOT NULLFOREIGN 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));
A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática
CREATE TABLE COMPRAN(CI_CAJ INTEGER NOT NULL,ID_PROD INTEGER NOT NULL,FECHA DATETIME YEAR TO MINUTES
NOT NULL,CI_CLI INTEGER NOT NULLFOREIGN KEY (CI_CAJ, ID_PROD, FECHA)
REFERENCES CAJERAS (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));