D. D. L.Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo...

98
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula D. D. L. D. D. L.

Transcript of D. D. L.Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo...

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