Post on 29-May-2020
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D. D. L.D. D. L.
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•D. D. L.
–DataData–DefinitionDefinition–LanguageLanguage..
D. D. L. Definición de Datos
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•D. D. L.
–DataData–DefinitionDefinition–LanguageLanguage..Lenguaje de Definición de Lenguaje de Definición de DatosDatos
D. D. L. Definición de Datos
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•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
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•D. D. L.– Bases de Datos
•Tablas (relaciones o entidades)–Columnas (atributos)–Claves:
»Primarias (atributo determinante)»Foráneas (claves externas)»Únicas (claves candidatas)
–Índices, etc.•Vistas (consultas almacenadas)
D. D. L. Definición de Datos
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•Las sentencias para definir datos son:–CREATECREATE, crear.
–ALTERALTER, modificar o alterar.
–DROPDROP, eliminar o descartar.
D. D. L. Definición de Datos
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
CREATE CREATE DATABASEDATABASE
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•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
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•CREATE DATABASE– Crear una nueva Base de Datos. CREATE DATABASECREATE DATABASE nombre_BD
ININ nombre_espacio
– Ejemplo:Ejemplo:
CREATE DATABASECREATE DATABASE BD_3IX_ape BD_3IX_apeININ datosdbs datosdbs
D. D. L. Crear Base de Datos
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•CREATE DATABASE– Al crear una base de datos el
usuario que ejecute la sentencia CREATE... se le asignan permisos como DBA (Administrador de la BD)
– Ningún usuario (excepto informix) pude utilizar la nueva BD, hasta que se asignen permisos.
D. D. L. Crear Base de Datos
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
CREATE CREATE TABLETABLE
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•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
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•CREATE TABLE–Tipos de restricciones:
•De clave•Atributos de ingreso obligatorio•De integridad:
–De dominio–Referencial
D. D. L. Creación de Tablas
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•CREATE TABLE–Sintaxis:CREATE TABLECREATE TABLE NOM_TABLA (
ATRIB1 TIPO_DATO,ATRIB2 TIPO_DATO,ATRIB3 TIPO_DATO,.....);
D. D. L. Creación de Tablas
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•Tipos de Datos– El gestor de base de datos soporta las
siguientes categorías de tipos de datos:
• caracteres
• numéricos
• cronológicos
• booleanos
• objetos grandes
D. D. L. Creación de Tablas
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
• Tipos de datos de Caracteres– CHAR ( largo )
• caracteres ASCII
• Largo entre 1 y 32.767– NCHAR ( largo )
• caracteres especiales del idioma estándar• largo: entre 1 y 32.767
– 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
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
• Tipos de datos de Caracteres– VARHAR (máximo, reserva)– NVARCHAR (máximo, reserva)
• caracteres especiales del idioma estándar• máximo: entre 1 y 255. Tamaño de la cadena.• reserva: entre 0 y 255. Tamaño reservado para la
cadena
– LVARCHAR(máximo)• máximo: entre 1 y 32.739. Tamaño de la cadena.
D. D. L. Creación de Tablas
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
• Tipos de datos numéricos– Tipo de Datos Numéricos Exactos
• INTEGER– Valores: -2.147.483.647 a 2.147.483.647
• SMALLINT– Valores: -32.767 a 32.767
• BIGINT o INT8– Valores: -263 -1 a 263 - 1
D. D. L. Creación de Tablas
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
• Tipos de datos numéricos– Tipo de Datos Numéricos Exactos
• SERIAL ( n )– n: comienzo de la serie
– integer autonumérico
• BIGSERIAL(n) o SERIAL8(n)– n: comienzo de la serie– Bigint o int8 autonumérico
D. D. L. Creación de Tablas
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
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
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
• 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
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
• Tipos de datos boolean– Verdadero o Falseo
• BOOLEAN– Ocupan 1 byte– Valores válidos
» 't'» 'f'» NULL
D.D.L. Tipos de Datos
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
Tipos de datos cronológicos– DATE
• fecha
• formato (dd / mm /aaaa)
D.D.L. Tipos de Datos
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
Tipos de datos cronológicos– 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)
D.D.L. Tipos de Datos
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
• Tipos de datos cronológicos– INTERVAL
• almacena una unidad de tiempoINTERVAL Year(p) To Year
Month(p) To Month
Day(p) To Day
Hour(p) To Hour
Minute(p) To Minute
Second(p) To Second
Fraction(p) To Fraction p: cantidad máxima de dígitos. Valor máximo 9
D.D.L. Tipos de Datos
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
• Tipos de datos de objetos grandes
– TEXT• almacena caracteres hasta 2 31 bytes
– BYTE• almacena hasta 231 bytes
D.D.L. Tipos de Datos
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
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)
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
CI-Caj
NombreeMail
Teléfonosdirección
Cajera
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
CI-Caj
NombreeMail
Teléfonodirección
**Cajera
calle
esquinanombre
apellido
número
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
CI-Caj
CI-Clinúmero
NombreeMail
Teléfonodirección**
Cliente
NombreeMail
Teléfonodirección
**Cajera
calle
esquinanombre
apellido
número
Dirección y nombreson atributos estructuradostambien en Cliente, peropor razones de espacio y
claridad los dejaremos comoatributos simples en el DER
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
CI-Caj ID-ProdDescripción
Precio
CI-Clinúmero
IVATipo-Producto
Producto
NombreeMail
Teléfonodirección**
Cliente
NombreeMail
Teléfonodirección
**Cajera
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
CI-Caj ID-ProdDescripción
Precio
CI-Clinúmero
IVATipo-Producto
Producto
NombreeMail
Teléfonodirección**
Cliente
NombreeMail
Teléfonodirección
**Cajera
MismosAtributos
Generalizamos
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
CI-Caj ID-ProdDescripción
Precio
CI-CliCI
NombreeMail
Teléfono
número
dirección
Es
Persona **
IVATipo-Producto
Producto
NombreNombreeMaileMail
TeléfonoTeléfonodireccióndirección **
Cliente
NombreNombreeMaileMail
TeléfonoTeléfonodireccióndirección
**Cajera
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
CI-Caj ID-ProdDescripción
Precio
CI-CliCI
NombreeMail
Teléfono
número
dirección
Es
Persona
Cajera Producto
**
ID-IVAPorcentaje
IVA
Cliente
Tipo-ProductoIVA
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
CI-Caj ID-ProdDescripción
Precio
CI-CliCI
NombreeMail
Teléfono
número
dirección
Es
Persona
Cajera Producto
**
ID-IVAPorcentaje
IVA
Cliente
T
Tipo-Producto
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
CI-Caj ID-ProdDescripción
Precio
CI-CliCI
NombreeMail
Teléfono
número
dirección
Es
Persona
Cajera Producto
**
ID-IVAPorcentaje
IVA
Cliente
T
N
1
Todos los productos tienenun IVA asociado.
Tipo-Producto
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
CI-Caj ID-ProdDescripción
Precio
CI-CliCI
NombreeMail
Teléfono
número
dirección
Son
Persona
FacturaCajera Producto
**
ID-IVAPorcentaje
IVA
Cliente
T
CantidadFechaHora
N N
N
1
Tipo-Producto
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
CI-Caj ID-ProdDescripciónPrecio
CI-CliCI
NombreeMail
Teléfono
número
dirección
Es
Persona
FacturaCajera Producto
**
ID-IVAPorcentaje
IVA
Compra
Cliente
T
N N
N
1
N
1
CantidadFechaHora
Tipo-Producto
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
•Esquema Relacional:–Pasaje a Tablas:
• Persona (CI, nombre, apellido, calle, número, esquina, email, teléfono*)
• Cajera (CI-Caj)• Cliente (CI-Cli, número)• Producto (ID-Prod,descripción, precio, tipo)
• IVA (ID-IVA, porcentaje)
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
•Esquema Relacional:–Pasaje a Tablas:
• Persona (CI, nombre, apellido, calle, número, esquina, email, teléfono*)
• Cajera (CI-Caj)• Cliente (CI-Cli, número)• Producto (ID-Prod,descripción, precio, tipo)
• IVA (ID-IVA, porcentaje)
Per-Tel(CI, teléfono)
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
•Esquema Relacional:–Pasaje a Tablas:
• Persona (CI, nombre, apellido, calle, número, esquina, email, teléfono*)
• Cajera (CI-Caj)• Cliente (CI-Cli, número)• Producto (ID-Prod,descripción, precio, tipo)
• IVA (ID-IVA, porcentaje)
Per-Tel(CI, teléfono)
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
•Esquema Relacional:–Pasaje a Tablas:
• Persona (CI, nombre, apellido, calle, número, esquina, email)
• Cajera (CI-Caj)• Cliente (CI-Cli, número)• Producto (ID-Prod,descripción, precio, tipo)
• IVA (ID-IVA, porcentaje)
Per-Tel(CI, teléfono)
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
•Esquema Relacional:–Pasaje a Tablas:
• Per-Tel (CI, teléfono)• Factura (CI-Caj, ID-Prod, fecha, hora, cantidad)
• Compra (CI-Caj, ID-Prod, fecha, hora, CI-Cli)• Tiene (ID-Prod, ID-IVA)
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
•Esquema Relacional:–Pasaje a Tablas:
• Per-Tel (CI, teléfono)• Factura (CI-Caj, ID-Prod, fecha, hora, cantidad)
• Compra (CI-Caj, ID-Prod, fecha, hora, CI-Cli)• Tiene (ID-Prod, ID-IVA) N a 1 con totalidadN a 1 con totalidad
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
•Esquema Relacional:–Pasaje a Tablas:
• Per-Tel (CI, teléfono)• Factura (CI-Caj, ID-Prod, fecha, hora, cantidad)
• Compra (CI-Caj, ID-Prod, fecha, hora, CI-Cli)• Tiene (ID-Prod, ID-IVA) N a 1 con totalidadN a 1 con totalidad
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
•Esquema Relacional:–Pasaje a Tablas:
• Productos (ID-Prod, descripción, precio, ID-ID-IVAIVA, tipo, tipo)
Tienen Tienen ((ID-ProdID-Prod, ID-IVA), ID-IVA) N a 1 con totalidadN a 1 con totalidad
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
•CREATE TABLECREATE TABLECREATE TABLE PERSONA (
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) );
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. - Caso de Estudio
• CREATE TABLECREATE TABLECREATE TABLE CLIENTE(CI_CLI INTEGER NOT NULL,NUMERO INTEGER NOT NULL,
PRIMARY KEYPRIMARY KEY(CI_CLI) );
CREATE TABLECREATE TABLE CAJERA(
CI_CAJ INTEGER NOT NULL,
PRIMARY KEYPRIMARY KEY (CI_CAJ) );
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. - Caso de Estudio
•CREATE TABLE
CREATE TABLECREATE TABLE PRODUCTO(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) );
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. - Caso de Estudio
•CREATE TABLECREATE TABLECREATE TABLE IVA(
ID_IVA INTEGER NOT NULL,
PORCENTAJE DECIMAL(4,4) NOT NULL,
PRIMARY KEYPRIMARY KEY (ID_IVA) );
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
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));
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. - Caso de Estudio
•CREATE TABLECREATE TABLECREATE TABLE FACTURA(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));
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. - Caso de Estudio
•CREATE TABLECREATE TABLECREATE TABLE COMPRA(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));
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
ALTER ALTER TABLETABLE
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
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).
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•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
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•ALTER TABLE– AGREGAR:AGREGAR: ADDADD– Por ejemplo, si queremos añadir
a la relación PERSONA un atributo para almacenar la FECHA de NACIMIENTO, podemos usar la orden:
ALTER TABLE PERSONA
ADDADD FECHA_NAC DATE;
D.D.L. Agregar un atributo
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•ALTER TABLE– MODIFICAR:MODIFICAR: MODIFYMODIFY–Por ejemplo, si queremos
MODIFICAR la entidad PERSONA el TAMAÑO o LARGO del atributo APELLIDO, podemos usar la orden:ALTER TABLE PERSONA MODIFYMODIFY
APELLIDO VARCHAR(15,10);
D.D.L. Modificar el tipo de dato
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•ALTER TABLE– MODIFICARMODIFICAR: : MODIFYMODIFY– 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 (NOTNOT NULLNULL), siempre y cuando la columna no contenga algún valor NULLNULL.
D.D.L. Modificar Tablas
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•ALTER TABLE– MODIFICARMODIFICAR:: MODIFYMODIFY–Por ejemplo, si queremos
AGREGAR la restricción de NOT NULL al atributo FECHA_NAC de la relación PERSONA podemos usar la orden:
ALTER TABLE PERSONA MODIFYMODIFY FECHA_NAC DATE NOTNOT NULLNULL;
D.D.L. Ingreso Obligatorio
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•ALTER TABLE– MODIFICARMODIFICAR:: MODIFYMODIFY
–Asignar un valor por defecto, cuando no se asigna uno:
ALTER TABLE PRODUCTO MODIFYMODIFY
TIPO VARCHAR(17,12) DEFAULTDEFAULT ‘Alimentos’
D.D.L. Valor por defecto
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•ALTER TABLE– MODIFICARMODIFICAR:: MODIFYMODIFY
– También se pueden indicar al crear la tabla:
CREATE TABLE PRODUCTO(.....
TIPO VARCHAR(17,12) DEFAULTDEFAULT ‘Alimentos’, ....);
D.D.L. Valor por defecto
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•ALTER TABLE– MODIFICARMODIFICAR:: 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
D.D.L. Restricción de Dominio
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•ALTER TABLE– MODIFICARMODIFICAR:: MODIFYMODIFY
ALTER TABLE PRODUCTO MODIFYMODIFY TIPO VARCHAR(17) CHECKCHECK (TIPO ININ (‘Alimentos’, ‘Carnes’, ‘Quesos y Fiambres’, ‘Lacteos’, ‘Limpieza’, ‘Kiosco’, ‘Bebidas’, ‘Bebidas Alcoholicas’ ));
D.D.L. Restricción de Dominio
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•ALTER TABLE
– También se pueden agregar a la hora de crear la tabla:
CREATE TABLE CAJERA (
CI_CAJ INTEGER NOT NULL,QUEBRANTO INTEGER CHECKCHECK
(QUEBRANTO BETWEENBETWEEN 100 ANDAND 9000 ),
PRIMARY KEY (CI_CAJ));
D.D.L. Restricción de Dominio
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
CONSTRAINTSCONSTRAINTS
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
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.
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•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 PRODUCTO ADDADD
CONSTRAINTCONSTRAINT PRIMARYPRIMARY KEYKEY (ID_PROD)
CONSTRAINTCONSTRAINT PK_PROD;
D. D. L.Clave Primaria
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•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.
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•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
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•ALTER TABLE– En la tabla PRODUCTO se hace
referencia a ID_IVA que debe existir (el valor) en la tabla IVA.
ALTER TABLE PRODUCTO ADDADD
CONSTRAINTCONSTRAINT FFOOREIGREIGNN KEYKEY (ID_IVA)
REFERENCESREFERENCES IVAS (ID_IVA)CONSTRAINTCONSTRAINT FK_PROD;
D. D. L.Clave Foránea
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•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 KEY KEY (ID_IVA)
REFERENCESREFERENCES IVA (ID_IVA)CONSTRAINTCONSTRAINT FK_PROD;
Atributo (listade atributos) de latabla que es claveen otra tabla.
D. D. L.Clave Foránea
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•ALTER TABLE– En la tabla PRODUCTO 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 IVA (ID_IVA)CONSTRAINTCONSTRAINT FK_PROD;
Indicar en que tablay el nombre del o losatributos en esa tabla.
D. D. L.Clave Foránea
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•ALTER TABLE– En la tabla PRODUCTO 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 IVA (ID_IVA)CONSTRAINTCONSTRAINT FK_PROD;
Indicar un nombre paraeste CONSTRAINT.Opcional.
D. D. L.Clave Foránea
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•ALTER TABLE•También en la tablas CAJERA y CLIENTE se hacen referencia a un mismo atributo (CI) de la tabla PERSONA como, CI_CAJ y CI_CLI, ambos deben existir (los valores) en la tabla PERSONA.
D. D. L.Clave Foránea
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•ALTER TABLEALTER TABLE CAJERA ADDADD
CONSTRAINTCONSTRAINT FFOOREIGREIGNN KEYKEY (CI_CAJ)REFERENCESREFERENCES PERSONA (CI)CONSTRAINTCONSTRAINT FK_CI_CAJ;
ALTER TABLE CLIENTE ADDADD CONSTRAINTCONSTRAINT FFOOREIGREIGNN KEYKEY (CI_CLI)
REFERENCESREFERENCES PERSONA (CI)CONSTRAINTCONSTRAINT FK_CI_CLI;
D. D. L.Clave Foránea
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•ALTER TABLE•También en la relaciones
FACTURA y COMPRA 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
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•ALTER TABLEALTERALTER TABLETABLE FACTURA ADDADD CONSTRAINTCONSTRAINT FFOOREIGREIGNN KEYKEY (CI_CAJ)REFERENCESREFERENCES CAJERA (CI_CAJ)CONSTRAINTCONSTRAINT FK_CI_CAJ_FACT;
ALTERALTER TABLETABLE FACTURA ADDADD CONSTRAINTCONSTRAINT FFOOREIGREIGNN KEYKEY (ID_PROD)REFERENCESREFERENCES PRODUCTO (ID_PROD)CONSTRAINTCONSTRAINT FK_ID_PROD_FACT;
D. D. L.Clave Foránea
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•ALTER TABLEALTER TABLE COMPRA ADDADD
CONSTRAINTCONSTRAINT FFOOREIGREIGNN KEYKEY (CI_CLI)
REFERENCESREFERENCES CLIENTE (CI_CLI)
CONSTRAINTCONSTRAINT FK_CI_CLI_COMP;
D. D. L.Clave Foránea
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•ALTER TABLEALTER TABLE COMPRA ADDADD
CONSTRAINTCONSTRAINT FFOOREIGREIGNN KEYKEY (CI_CAJ, ID_PROD, FECHA)REFERENCESREFERENCES FACTURA (CI_CAJ, ID_PROD, FECHA)CONSTRAINTCONSTRAINT FK_FACT_COMP;
D. D. L.Clave Foránea
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•ALTER TABLE– En la tabla CLIENTE el atributo
NÚMERO es único.– UNIQUEUNIQUE KEYKEY
• Controla que un atributo (o la combinación de atributos) tenga un único valor (CLAVECLAVE CANDIADATACANDIADATA).
ALTER TABLE CLIENTE ADDCONSTRAINTCONSTRAINT UNIQUEUNIQUE (NUMERO)CONSTRAINTCONSTRAINT UK_CLIUK_CLI;
D. D. L.Clave Única
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•ALTER TABLE– ELIMINARELIMINAR:: DROPDROP
• Agregamos un nuevo atributo– edad
ALTERALTER TABLETABLE PERSONA
ADDADD EDAD INTEGER;
• No era necesario...
ALTERALTER TABLETABLE PERSONA
DROPDROP EDAD;
D. D. L.Eliminar un Atributo
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
DROP DROP TABLETABLE
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•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
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•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
DROPDROP TABLETABLE PRODUCTO CASCADE CONSTRAINTS;
D. D. L.Eliminar Tablas
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
• Para habilitar Constraints:
SETSET CONSTRAINTS FK_PROD ENABLEDENABLED;
• Para deshabilitar Constraints:
SETSET CONSTRAINTS FK_PROD DISABLEDDISABLED;
D. D. L.Activar – Desactivar Constraints
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•Renombrar: RENAMERENAME
–Para cambiar el nombre de un atributo:
RENAMERENAME COLUMNCOLUMN
TABLA ATRIB TOTO NOM_NUEVO
D. D. L.Renombrar
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•Renombrar: RENAMERENAME
–Para cambiar el nombre de una tabla:RENAMERENAME TABLETABLE nombre_tabla_vieja TOTO nombre_tabla_nueva;
D. D. L.Renombrar
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
•Renombrar: RENAMERENAME
–Para cambiar el nombre de una base de datos:
RENAMERENAME DATABASE DATABASE BD TO TO BD_NUEVA
• La base de datos no puede ser la acutal (seleccionada).
D. D. L.Renombrar
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
CASO DE CASO DE ESTUDIOESTUDIO
CREATE TABLECREATE TABLE
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
CREATE TABLE PERSONA (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 PERSONA
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
CREATE TABLE PER_TEL(CI INTEGER NOT NULL,TELEFONO CHAR(9) NOT NULL,FOREIGN KEY (CI) REFERENCES PERSONA (CI)
CONSTRAINT FK_CI,PRIMARY KEY (CI,TELEFONO) CONSTRAINT
PK_PER_TEL);
CREATE PER_TEL
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
CREATE TABLE CLIENTE(
CI_CLI INTEGER NOT NULL,
NUMERO INTEGER NOT NULL,
UNIQUE (NUMERO) CONSTRAINT UK_CLI,
FOREIGN KEY (CI_CLI) REFERENCES PERSONA (CI)
CONSTRAINT FK_CI_CLI,
PRIMARY KEY(CI_CLI) CONSTRAINT PK_CLIENTES);
CREATE CLIENTE
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
CREATE TABLE CAJERA(
CI_CAJ INTEGER NOT NULL,
QUEBRANTO INTEGER CHECK (QUEBRANTO
BETWEEN 100 AND 9000 ),
FOREIGN KEY (CI_CAJ) REFERENCES PERSONA
(CI) CONSTRAINT FK_CI_CAJ,
PRIMARY KEY (CI_CAJ) CONSTRAINT PK_CAJERAS);
CREATE CAJERA
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
CREATE TABLE IVA(ID_IVA INTEGER NOT NULL,PORCENTAJE DECIMAL(4,4) NOT NULL,PRIMARY KEY (ID_IVA) CONSTRAINT PK_IVAS);
CREATE IVA
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
CREATE TABLE PRODUCTO(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 IVA (ID_IVA) CONSTRAINT FK_PROD,
PRIMARY KEY (ID_PROD) CONSTRAINT PK_PRODUCTOS);
CREATE PRODUCTO
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
CREATE TABLE FACTURA(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 CAJERA (CI_CAJ)
CONSTRAINT FK_CI_CAJ_FACT,FOREIGN KEY (ID_PROD) REFERENCES PRODUCTO
(ID_PROD) CONSTRAINT FK_ID_PROD,PRIMARY KEY (CI_CAJ, ID_PROD, FECHA) CONSTRAINT
PK_FACTURAN);
CREATE FACTURAN
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
CREATE TABLE COMPRA(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
FACTURA (CI_CAJ, ID_PROD, FECHA) CONSTRAINT FK_FACT_COMP,
FOREIGN KEY (CI_CLI) REFERENCES CLIENTE (CI_CLI) CONSTRAINT FK_CI_CLI_COMP,
PRIMARY KEY (CI_CAJ, ID_PROD, FECHA) CONSTRAINT PK_COMPRAN);
CREATE COMPRAN