A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática...

90
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 (Lenguaje de Definición Datos) Datos)

Transcript of A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática...

Page 1: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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.D.D.L. (Lenguaje de Definición Datos)(Lenguaje de Definición Datos)

Page 2: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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.

Page 3: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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.DataData - Lenguaje- LenguajeDefinitionDefinition - de - de DefiniciónDefinición

LanguageLanguage - de Datos- de Datos

Page 4: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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.Permite crear, modificar y eliminar las estructuras de los datos (Metadata).

Permite definir como será la B.D.

Page 5: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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. 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)

Page 6: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

Los comandos para definir datos son:CREATECREATE, crear.ALTERALTER, modificar o alterar.

DROPDROP, eliminar o descartar.

Page 7: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (Lenguaje de Definición Datos)

A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática

CREATE CREATE DATABASEDATABASE

Page 8: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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.

Page 9: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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

Page 10: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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.

Page 11: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (Lenguaje de Definición Datos)

A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática

CREATE TABLECREATE TABLE

Page 12: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

CREATE TABLECrea una nueva relación o entidad.

Para cada atributo se puede especificar:NombreTipo de dato DominioRestricciones

Page 13: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

CREATE TABLETipos de restricciones:

de clavede integridad de tablasde integridad referencial

Page 14: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

CREATE TABLEEjemplo:CREATE TABLECREATE TABLE NOM_TABLA(

ATRIB1 TIPO_DATO,ATRIB2 TIPO_DATO,ATRIB3 TIPO_DATO,.....);

Page 15: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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

Page 16: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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

Page 17: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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

Page 18: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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

Page 19: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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

Page 20: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

Tipos de datos de tiempo date

fecha formato (mm/dd/yy)

Page 21: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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

Page 22: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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

Page 23: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

Tipos de datos de objetos grandes text

almacena caracteres hasta 2 31 bytes

byte almacena hasta 231 bytes

Page 24: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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)

Page 25: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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. – Caso de Estudio

CI-Caj

NombreeMail

Teléfonosdirección

Cajeras

Page 26: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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. – Caso de Estudio

CI-Caj

NombreeMail

Teléfonosdirección

**Cajeras

calle

esquinanombre

apellido

número

Page 27: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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. – 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

Page 28: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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. – 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

Page 29: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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. – 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

Page 30: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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. – 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

Page 31: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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. – 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

Page 32: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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. – 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

Page 33: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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. – 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

Page 34: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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. – 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

Page 35: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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. – 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

Page 36: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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. – 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)

Page 37: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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. – 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)

Page 38: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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. – 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)

Page 39: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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. – 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)

Page 40: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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. – 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)

Page 41: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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. – 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

Page 42: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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. – 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

Page 43: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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. – 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

Page 44: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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. – 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) );

Page 45: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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. - Caso de Estudio

CREATE TABLECREATE TABLECREATE TABLE CLIENTES(CI_CLI INTEGER NOT NULL,NUMERO INTEGER NOT NULL,

PRIMARY KEYPRIMARY KEY(CI_CLI) );

Page 46: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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. - Caso de Estudio

CREATE TABLECREATE TABLECREATE TABLE CAJERAS(CI_CAJ INTEGER NOT

NULL,

PRIMARY KEY PRIMARY KEY (CI_CAJ) );

Page 47: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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. - 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) );

Page 48: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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. - 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) );

Page 49: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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. - Caso de Estudio

CREATE TABLECREATE TABLECREATE TABLE PER_TEL(CI INTEGER NOT NULL,TELEFONO CHAR(9) NOT NULL,

PRIMARY KEY PRIMARY KEY (CI,TELEFONO));

Page 50: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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. - 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));

Page 51: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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. - 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));

Page 52: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (Lenguaje de Definición Datos)

A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática

ALTER TABLEALTER TABLE

Page 53: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

ALTER TABLELa definición de una tabla se puede modificar mediante la opción ALTER TABLEALTER TABLE (alterar o modificar tabla).

Page 54: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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.

Page 55: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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;

Page 56: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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);

Page 57: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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.

Page 58: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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);

Page 59: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

ALTER TABLE MODIFICAR:MODIFICAR: MODIFYMODIFYPoner un valor por defecto, cuando no se asigna uno:

ALTER TABLE PRODUCTOS MODIFYMODIFY

(TIPO VARCHAR(17) DEFAULTDEFAULT ‘Alimentos’)

Page 60: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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’, ....);

Page 61: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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

Page 62: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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’ ));

Page 63: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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));

Page 64: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (Lenguaje de Definición Datos)

A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática

CONSTRAINTSCONSTRAINTS

Page 65: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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.

Page 66: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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).

Page 67: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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;

Page 68: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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.

Page 69: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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.

Page 70: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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.

Page 71: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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.

Page 72: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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);

Page 73: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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.

Page 74: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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);

Page 75: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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);

Page 76: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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;

Page 77: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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;

Page 78: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (Lenguaje de Definición Datos)

A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática

DROP TABLEDROP TABLE

Page 79: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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

Page 80: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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;

Page 81: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

Para habilitar Constraints:

ALTER TABLEALTER TABLE PRODUCTOS ENABLEENABLE CONSTRAINT FK_PROD;

Para deshabilitar Constraints:

ALTER TABLEALTER TABLE PRODUCTOS DISABLEDISABLE CONSTRAINT FK_PROD;

Page 82: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (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

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;

Page 83: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (Lenguaje de Definición Datos)

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

Page 84: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (Lenguaje de Definición Datos)

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));

Page 85: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (Lenguaje de Definición Datos)

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));

Page 86: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (Lenguaje de Definición Datos)

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));

Page 87: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (Lenguaje de Definición Datos)

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));

Page 88: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (Lenguaje de Definición Datos)

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));

Page 89: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (Lenguaje de Definición Datos)

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));

Page 90: A/S Leonardo Carámbula – Sistemas de Base de Datos II – E.M.T. – I.T.S. – Informática D.D.L. (Lenguaje de Definición Datos)

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));