DDL-Lenguaje-de-Definición-de-Datos

93

Click here to load reader

Transcript of DDL-Lenguaje-de-Definición-de-Datos

Page 1: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

Page 2: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• D. D. L.

––DataData––DefinitionDefinition––LanguageLanguage..

D. D. L. Definición de Datos

Page 3: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• D. D. L.

––DataData »» LenguajeLenguaje––DefinitionDefinition »» de Definicide Definicióónn––LanguageLanguage »» de Datosde Datos

D. D. L. Definición de Datos

Page 4: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• D. D. L.–Permite crear, modificar y eliminar las estructuras para almacenar los datos (Metadata).

–Permite definir el esquema de la B.D.

D. D. L. Definición de Datos

Page 5: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• D. D. L.–Bases de Datos

• Tablas (relaciones o entidades)–Columnas (atributos)–Claves:

» Primarias (atributo determinante)» Foráneas (claves externas, claves de otras tablas)

» Únicas (claves candidatas)–Índices, etc.

• Vistas (consultas almacenadas)

D. D. L. Definición de Datos

Page 6: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• Los comandos para definir datos son:

––CREATECREATE, crear.

––ALTERALTER, modificar o alterar.

––DROPDROP, eliminar o descartar.

D. D. L. Definición de Datos

Page 7: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

CREATE CREATE DATABASEDATABASE

Page 8: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• CREATE DATABASE–Crea una nueva Base de Datos. –En InformiX existen varios “espacios”para almacenar las B. D., DBSpaces.

–Hay que especificar en cual, sino se crea en el “espacio” del root (rootdbs), de capacidad muy limitada.

D. D. L. Crear Base de Datos

Page 9: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• CREATE DATABASE–Crear una nueva Base de Datos. CREATE DATABASECREATE DATABASE nombre_BDININ nombre_espacio

––Ejemplo:Ejemplo:

CREATE DATABASECREATE DATABASE BD_3IX_apeININ btdbs

D. D. L. Crear Base de Datos

Page 10: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• CREATE DATABASE–Al crear un base de datos el usuario que ejecute la instrucción CREATE... se le asigna permisos como DBA (Administrador de la BD)

–Ningún usuario (excepto informix) pude utilizar la BD, hasta que se asignen permisos.

D. D. L. Crear Base de Datos

Page 11: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

CREATE CREATE TABLETABLE

Page 12: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• CREATE TABLE–Crea una nueva tabla (relación o entidad)–Para cada atributo se puede especificar:

• Nombre » Obligatorio• Tipo de dato » Obligatorio• Dominio• Restricciones

D. D. L. Creación de Tablas

Page 13: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• CREATE TABLE–Tipos de restricciones:

•De clave•Atributos de ingreso obligatorio•De integridad:

–De dominio–Referencial

D. D. L. Creación de Tablas

Page 14: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• CREATE TABLE–Sintaxis:CREATE TABLECREATE TABLENOM_TABLA (

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

D. D. L. Creación de Tablas

Page 15: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• Tipos de Datos– El gestor de base de datos soporta las

siguientes categorías de tipos de datos:

• de caracteres• de números• de tiempo

• para objetos grandes

D. D. L. Creación de Tablas

Page 16: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• Tipos de datos de caracteres– CHAR ( largo )– NCHAR ( largo )

• caracteres especiales del idioma estándar• largo: entre 1 y 32767

– VARHAR (máximo, reserva)– NVARCHAR (máximo, reserva)

• caracteres especiales del idioma estándar• máximo: entre 1 y 255. Tamaño máximo de la

cadena• reserva: entre 0 y 255. Tamaño reservado para la

cadena

D. D. L. Creación de Tablas

Page 17: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• Tipos de datos numéricos– Tipo de Datos Numéricos Exactos

• INTEGER– -2.147.483.647 a 2.147.483.647

• SMALLINT– -32.767 a 32.767

• SERIAL ( n )– n: comienzo de la serie– integer autonumérico

D. D. L. Creación de Tablas

Page 18: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

D.D.L. Tipos de Datos

• Tipos de datos numéricos– Tipo de Datos Numéricos Exactos

• DECIMAL ( p , s )–p: cantidad de dígitos–s: cantidad de decimales

• MONEY ( p , s )–símbolo monetario

Page 19: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• Tipos de datos numéricos– Tipo de Datos Numéricos Aproximados

• DECIMAL ( p )– p: precisión del número real, un integer positivo

• FLOAT ( p )– p: de 1 a 32 dígitos significantes, 16 por defecto

• SAMLLFLOAT– 8 dígitos significantes

D.D.L. Tipos de Datos

Page 20: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• Tipos de datos de tiempo– DATE

• fecha• formato (dd / mm /aaaa)

D.D.L. Tipos de Datos

Page 21: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• Tipos de datos de tiempo– DATETIME

• fecha y hora• formato (aaaa-mm-dd hh:mm:ss.fff)

DATETIME Year To Year (1 a 9999)Month To Month (1 a 12)Day To Day (1 a 31-28)Hour To Hour (0 a 23)Minute To Minute (0 a 59)Second To Second (0 a 59)Fraction To Fraction (1 a 5)

3 - 1 milésima de segundo

D.D.L. Tipos de Datos

Page 22: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• Tipos de datos de tiempo– INTERVAL

• almacena una unidad de tiempoINTERVAL Year(p) To Year

Month(p) To MonthDay(p) To DayHour(p) To HourMinute(p) To MinuteSecond(p) To SecondFraction(p) To Fraction

p: cantidad máxima de dígitos máximo 9

D.D.L. Tipos de Datos

Page 23: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• Tipos de datos de objetos grandes– TEXT

• almacena caracteres hasta 2 31 bytes

– BYTE• almacena hasta 231 bytes

D.D.L. Tipos de Datos

Page 24: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

D.D.L.Caso de Estudio

• Caso de Estudio:–En un supermercado las cajerascajeras realizan la facturación de los productosproductos a los clientesclientes.

–Los productosproductos pertenecen a distintos tipos (Alimentos, Carnes, etc.) y tienen distintos % de I.V.A. (básico, mínimo, eximidos)

Page 25: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

D.D.L. – Caso de Estudio

CI-Caj

NombreeMail

Teléfonosdirección

Cajeras

Page 26: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

D.D.L. – Caso de Estudio

CI-Caj

NombreeMail

Teléfonosdirección

**Cajeras

calle

esquinanombre

apellido

número

Page 27: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

D.D.L. – Caso de Estudio

CI-Caj

CI-Clinúmero

NombreeMail

Teléfonosdirección**

Clientes

NombreeMail

Teléfonosdirección

**Cajeras

calle

esquinanombre

apellido

número

Dirección y nombreson atributos estructuradostambien en Clientes, peropor razones de espacio y

claridad los dejaremos comoatributos simples en el DER

Page 28: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

D.D.L. – Caso de Estudio

CI-Caj ID-ProdDescripción

Precio

CI-Clinúmero

IVATipo-Producto

Productos

NombreeMail

Teléfonosdirección**

Clientes

NombreeMail

Teléfonosdirección

**Cajeras

Page 29: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

D.D.L. – Caso de Estudio

CI-Caj ID-ProdDescripción

Precio

CI-Clinúmero

IVATipo-Producto

Productos

NombreeMail

Teléfonosdirección**

Clientes

NombreeMail

Teléfonosdirección

**Cajeras

MismosAtributos

Generalizamos

Page 30: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

D.D.L. – Caso de Estudio

CI-Caj ID-ProdDescripción

Precio

CI-CliCI

NombreeMail

Teléfonos

número

dirección

Son

Personas **

IVATipo-Producto

Productos

NombreNombreeMaileMail

TelTelééfonosfonosdireccidireccióónn**

Clientes

NombreNombreeMaileMail

TelTelééfonosfonosdireccidireccióónn

**Cajeras

Page 31: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

D.D.L. – Caso de Estudio

CI-Caj ID-ProdDescripción

Precio

CI-CliCI

NombreeMail

Teléfonos

número

dirección

Son

Personas

Cajeras Productos

**

ID-IVAPorcentaje

IVAs

Clientes

Tipo-ProductoIVA

Page 32: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

D.D.L. – Caso de Estudio

CI-Caj ID-ProdDescripción

Precio

CI-CliCI

NombreeMail

Teléfonos

número

dirección

Son

Personas

Cajeras Productos

**

ID-IVAPorcentaje

IVAs

Clientes

T

Tipo-Producto

Page 33: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

D.D.L. – Caso de Estudio

CI-Caj ID-ProdDescripción

Precio

CI-CliCI

NombreeMail

Teléfonos

número

dirección

Son

Personas

Cajeras Productos

**

ID-IVAPorcentaje

IVAs

Clientes

T

N

1

Todos los productos tienenun IVA asociado.

Tipo-Producto

Page 34: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

D.D.L. – Caso de Estudio

CI-Caj ID-ProdDescripción

Precio

CI-CliCI

NombreeMail

Teléfonos

número

dirección

Son

Personas

FacturanCajeras Productos

**

ID-IVAPorcentaje

IVAs

Clientes

T

CantidadFechaHora

N N

N

1

Tipo-Producto

Page 35: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

D.D.L. – Caso de Estudio

CI-Caj ID-ProdDescripciónPrecio

CI-CliCI

NombreeMail

Teléfonos

número

dirección

Son

Personas

FacturanCajeras Productos

**

ID-IVAPorcentaje

IVAs

Compran

Clientes

T

N N

N

1

N

1

CantidadFechaHora

Tipo-Producto

Page 36: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

D.D.L. – Caso de Estudio

•Esquema Relacional:–Pasaje a Tablas:Personas (CI, nombre, apellido, calle,

número, esquina, email, teléfonos*)Cajeras (CI-Caj)Clientes (CI-Cli, número)Productos (ID-Prod, descripción, precio,

tipo)IVAs (ID-IVA, porcentaje)

Page 37: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

D.D.L. – Caso de Estudio

•Esquema Relacional:–Pasaje a Tablas:Personas (CI, nombre, apellido, calle,

número, esquina, email, teléfonos*)Cajeras (CI-Caj)Clientes (CI-Cli, número)Productos (ID-Prod, descripcion, precio,

tipo)IVAs (ID-IVA, porcentaje)

Per-Tel(CI, teléfono)

Page 38: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

D.D.L. – Caso de Estudio

•Esquema Relacional:–Pasaje a Tablas:Personas (CI, nombre, apellido, calle,

número, esquina, email, teléfonos*)Cajeras (CI-Caj)Clientes (CI-Cli, número)Productos (ID-Prod, descripcion, precio,

tipo)IVAs (ID-IVA, porcentaje)

Per-Tel(CI, teléfono)

Page 39: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

D.D.L. – Caso de Estudio

•Esquema Relacional:–Pasaje a Tablas:Personas (CI, nombre, apellido, calle,

número, esquina, email)Cajeras (CI-Caj)Clientes (CI-Cli, número)Productos (ID-Prod, descripcion, precio,

tipo)IVAs (ID-IVA, porcentaje)

Per-Tel(CI, teléfono)

Page 40: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

D.D.L. – Caso de Estudio

•Esquema Relacional:–Pasaje a Tablas:Per-Tel (CI, teléfono)

Facturan (CI-Caj, ID-Prod, fecha, hora, cantidad)

Compran (CI-Caj, ID-Prod, fecha, hora, CI-Cli)

Tienen (ID-Prod, ID-IVA)

Page 41: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

D.D.L. – Caso de Estudio

•Esquema Relacional:–Pasaje a Tablas:Per-Tel (CI, teléfono)

Facturan (CI-Caj, ID-Prod, fecha, hora, cantidad)

Compran (CI-Caj, ID-Prod, fecha, hora, CI-Cli)

Tienen Tienen ((IDID--ProdProd, ID, ID--IVA)IVA) N a 1 con totalidadN a 1 con totalidad

Page 42: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

D.D.L. – Caso de Estudio

•Esquema Relacional:–Pasaje a Tablas:Per-Tel (CI, teléfono)

Facturan (CI-Caj, ID-Prod, fecha, hora, cantidad)

Compran (CI-Caj, ID-Prod, fecha, hora, CI-Cli)

Tienen Tienen ((IDID--ProdProd, ID, ID--IVA)IVA) N a 1 con totalidadN a 1 con totalidad

Page 43: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

D.D.L. – Caso de Estudio

•Esquema Relacional:–Pasaje a Tablas:Productos (ID-Prod, descripción, precio, IDID--IVAIVA, , tipotipo)

Tienen Tienen ((IDID--ProdProd, ID, ID--IVA)IVA) N a 1 con totalidadN a 1 con totalidad

Page 44: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

D.D.L. – Caso de Estudio

• CREATE TABLECREATE TABLECREATE TABLE PERSONAS (CI INTEGER NOT NULL,NOMBRE VARCHAR(20,10) NOT NULL,APELLIDO VARCHAR(20,10) NOT NULL,CALLE VARCHAR(20,10),NUMERO INTEGER,ESQUINA VARCHAR(20,10),EMAIL VARCHAR(30,20),PRIMARYPRIMARY KEYKEY(CI) );

Page 45: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

D.D.L. - Caso de Estudio

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

PRIMARY KEYPRIMARY KEY(CI_CLI) );

CREATE TABLECREATE TABLE CAJERAS(CI_CAJ INTEGER NOT NULL,

PRIMARY KEYPRIMARY KEY (CI_CAJ) );

Page 46: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

D.D.L. - Caso de Estudio

• CREATE TABLE

CREATE TABLECREATE TABLE PRODUCTOS(ID_PROD INTEGER NOT NULL,DESCRIPCION VARCHAR(20,10) NOT NULL,PRECIO DECIMAL(7,2) NOT NULL,ID_IVA INTEGER,TIPO VARCHAR(17,12),PRIMARY KEYPRIMARY KEY (ID_PROD) );

Page 47: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

D.D.L. - Caso de Estudio

• CREATE TABLE

CREATE TABLECREATE TABLE IVAS(ID_IVA INTEGER NOT NULL,PORCENTAJE DECIMAL(4,4) NOT NULL,

PRIMARY KEYPRIMARY KEY (ID_IVA) );

Page 48: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

D.D.L. - Caso de Estudio

• CREATE TABLE

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

PRIMARY KEYPRIMARY KEY (CI,TELEFONO));

Page 49: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

D.D.L. - Caso de Estudio

• CREATE TABLE

CREATE TABLECREATE TABLE FACTURAN(CI_CAJ INTEGER NOT NULL,ID_PROD INTEGER NOT NULL,FECHA DATETIME YEAR TO MINUTE

NOT NULL,CANTIDAD DECIMAL (6,3) NOT NULL,

PRIMARY KEYPRIMARY KEY (CI_CAJ, ID_PROD, FECHA));

Page 50: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

D.D.L. - Caso de Estudio

• CREATE TABLE

CREATE TABLECREATE TABLE COMPRAN(CI_CAJ INTEGER NOT NULL,ID_PROD INTEGER NOT NULL,FECHA DATETIME YEAR TO MINUTE

NOT NULL,CI_CLI INTEGER NOT NULL,PRIMARY KEYPRIMARY KEY (CI_CAJ, ID_PROD, FECHA));

Page 51: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

ALTER ALTER TABLETABLE

Page 52: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

D.D.L. Modificar Tablas

• ALTER TABLE–La definición de una tabla se puede modificar mediante el comando ALTER TABLEALTER TABLE (alterar o modificar tabla).

Page 53: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• ALTER TABLE– Las acciones posibles para modificar las definiciones de una tabla incluyen:

• agregar o eliminar una columna.

• modificar la definición de una columna.

• agregar o eliminar restricciones de la tabla.

D.D.L. Modificar Tablas

Page 54: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• ALTER TABLE–– AGREGAR:AGREGAR: ADDADD–Por ejemplo, si queremos añadir a la relación PERSONAS un atributo para almacenar la FECHA de NACIMIENTO, podemos usar la orden:

ALTER TABLE PERSONAS

ADDADD FECHA_NAC DATE;

D.D.L. Agregar un atributo

Page 55: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• ALTER TABLE–– MODIFICAR:MODIFICAR: MODIFYMODIFY–Por ejemplo, si queremos MODIFICAR la entidad PERSONAS el TAMAÑO o LARGO del atributo APELLIDO, podemos usar la orden:ALTER TABLE PERSONAS MODIFYMODIFYAPELLIDO VARCHAR(15,10);

D.D.L. Modificar el tipo de dato

Page 56: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• ALTER TABLE–– MODIFICARMODIFICAR: : MODIFYMODIFY– Cuando se agrega una columna a una tabla, ésta admite valores nulos (NULLNULL).

– Se puede agregar una restricción a lascolumnas para que no admitan valores nulos(NOTNOT NULLNULL), siempre y cuando la columnano contenga algún valor NULLNULL.

D.D.L. Modificar Tablas

Page 57: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• ALTER TABLE–– MODIFICARMODIFICAR:: MODIFYMODIFY–Por ejemplo, si queremos AGREGAR la restricción de NOT NULL al atributoFECHA_NAC de la relación PERSONAS podemos usar la orden:

ALTER TABLE PERSONAS MODIFYMODIFYFECHA_NAC DATE NOTNOT NULLNULL;

D.D.L. Ingreso Obligatorio

Page 58: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• ALTER TABLE–– MODIFICARMODIFICAR:: MODIFYMODIFY

–Poner un valor por defecto, cuando no se asigna uno:

ALTER TABLE PRODUCTOS MODIFYMODIFY

TIPO VARCHAR(17,12) DEFAULTDEFAULT ‘Alimentos’

D.D.L. Valor por defecto

Page 59: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• ALTER TABLE–– MODIFICARMODIFICAR:: MODIFYMODIFY

– También se pueden agregar a la hora de crearla tabla:

CREATE TABLE PRODUCTOS(.....TIPO VARCHAR(17,12) DEFAULTDEFAULT ‘Alimentos’,....);

D.D.L. Valor por defecto

Page 60: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• ALTER TABLE–– MODIFICARMODIFICAR:: MODIFYMODIFY– Verificar que los valores estén en determinadodominio.

– Por ejemplo, asegurarse que los valores posiblesdel atributo TIPO de la tabla PRODUCTO sean:• Alimentos, Carnes, Quesos y Fiambres, Lacteos, Limpieza, Kiosco, Bebidas, Bebidas Alcoholicas

D.D.L. Restricción de Dominio

Page 61: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• ALTER TABLE–– MODIFICARMODIFICAR:: MODIFYMODIFY

ALTER TABLE PRODUCTOS MODIFYMODIFY TIPO CHAR(17) CHECKCHECK (TIPO ININ (‘Alimentos’, ‘Carnes’, ‘Quesos y Fiambres’, ‘Lacteos’, ‘Limpieza’, ‘Kiosco’, ‘Bebidas’, ‘BebidasAlcoholicas’ ));

D.D.L. Restricción de Dominio

Page 62: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• ALTER TABLE

– También se pueden agregar a la hora de crearla tabla:

CREATE TABLE CAJERAS (

CI_CAJ INTEGER NOT NULL,

QUEBRANTO INTEGER CHECKCHECK

(QUEBRANTO BETWEENBETWEEN 100 ANDAND 9000 ),

PRIMARY KEY (CI_CAJ));

D.D.L. Restricción de Dominio

Page 63: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

CONSTRAINTSCONSTRAINTS

Page 64: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

D. D. L.Claves

• ALTER TABLE–Para que el SGBD controle:

• las claves primarias (PRIMARYPRIMARY KEYKEY)• las claves foráneas (FOREIGNFOREIGN KEYKEY)• las claves candidatas (UNIQUEUNIQUE KEYKEY)

–hay que indicar a través de CONSTRAINTSCONSTRAINTS que atributo(s) pertenecen a cada uno.

Page 65: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• ALTER TABLE–– PRIMARYPRIMARY KEYKEY

• Controla que el valor de un atributo (o la combinación de atributos) sea único para todas las filas de una tabla.

ALTER TABLE PRODUCTOS ADDADD

CONSTRAINTCONSTRAINT PRIMARYPRIMARY KEYKEY (ID_PROD)

CONSTRAINTCONSTRAINT PK_PROD;

D. D. L.Clave Primaria

Page 66: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• ALTER TABLE–– PRIMARYPRIMARY KEYKEY

• Controla que el valor de un atributo (o la combinación de atributos) sea único para todas las filas de una tabla.

ALTER TABLE PRODUCTOS ADDADD

CONSTRAINTCONSTRAINT PRIMARYPRIMARY KEYKEY (ID_PROD)

CONSTRAINTCONSTRAINT PK_PROD;

D. D. L.Clave Primaria

Indicar un nombre paraeste CONSTRAINT.Opcional.

Page 67: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• ALTER TABLE–– FOREIGNFOREIGN KEYKEY

• Controla que el valor de un atributo (o la combinación de atributos) exista en otra tabla (el valor).

• Este atributo (o la combinación de atributos) debe ser clave primaria en la otra tabla (CLAVECLAVE EXTERNAEXTERNA).

D. D. L.Clave For ánea

Page 68: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• ALTER TABLE– En la tabla PRODUCTOS se hace referencia a ID_IVA que debe existir (el valor) en la tabla IVAs.

ALTER TABLE PRODUCTOS ADDADD

CONSTRAINTCONSTRAINT FFOOREIGREIGNN KEYKEY (ID_IVA)

REFERENCESREFERENCES IVAS (ID_IVA)CONSTRAINTCONSTRAINT FK_PROD;

D. D. L.Clave For ánea

Page 69: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• ALTER TABLE– En la tabla PRODUCTOS se hace referencia a ID_IVA que debe existir (el valor) en la tabla IVAs.

ALTER TABLE PRODUCTOS ADDADDCONSTRAINTCONSTRAINT FFOOREIGREIGNN KEYKEY (ID_IVA)

REFERENCESREFERENCES IVAS (ID_IVA)

CONSTRAINTCONSTRAINT FK_PROD;

Atributo (listade atributos) de latabla que es claveen otra tabla.

D. D. L.Clave For ánea

Page 70: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• ALTER TABLE– En la tabla PRODUCTOS se hace referencia a ID_IVA que debe existir (el valor) en la tabla IVAs.

ALTER TABLE PRODUCTOS ADDADDCONSTRAINTCONSTRAINT FFOOREIGREIGNN KEYKEY (ID_IVA)

REFERENCESREFERENCES IVAS (ID_IVA)

CONSTRAINTCONSTRAINT FK_PROD;

Indicar en que tablay el nombre del o losatributos en esa tabla.

D. D. L.Clave For ánea

Page 71: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• ALTER TABLE– En la tabla PRODUCTOS se hace referencia a ID_IVA que debe existir (el valor) en la tabla IVAs.

ALTER TABLE PRODUCTOS ADDADDCONSTRAINTCONSTRAINT FFOOREIGREIGNN KEYKEY (ID_IVA)

REFERENCESREFERENCES IVAS (ID_IVA)

CONSTRAINTCONSTRAINT FK_PROD;

Indicar un nombre paraeste CONSTRAINT.Opcional.

D. D. L.Clave For ánea

Page 72: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• ALTER TABLE•También en la tablas CAJERAS y CLIENTES se hacen referencia a un mismo atributo (CI) de la tabla PERSONAS como, CI_CAJ y CI_CLI, ambos deben existir (los valores) en la tabla PERSONAS.

D. D. L.Clave For ánea

Page 73: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• ALTER TABLEALTER TABLE CAJERAS ADDADD CONSTRAINTCONSTRAINTFFOOREIGREIGNN KEYKEY (CI_CAJ)

REFERENCESREFERENCES PERSONAS (CI)CONSTRAINTCONSTRAINT FK_CI_CAJ;

ALTER TABLE CLIENTES ADDADD CONSTRAINTCONSTRAINTFFOOREIGREIGNN KEYKEY (CI_CLI)

REFERENCESREFERENCES PERSONAS (CI)CONSTRAINTCONSTRAINT FK_CI_CLI;

D. D. L.Clave For ánea

Page 74: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• ALTER TABLE•También en la relaciones FACTURAN y COMPRAN se hacen referencia a las claves de las entidades que están vinculadas.

• Se debe agregar una constraint para cada entidad vinculada en la relación.

D. D. L.Clave For ánea

Page 75: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• ALTER TABLEALTERALTER TABLETABLE FACTURAN ADDADDCONSTRAINTCONSTRAINT FFOOREIGREIGNN KEYKEY (CI_CAJ)

REFERENCESREFERENCES CAJERAS (CI_CAJ)

CONSTRAINTCONSTRAINT FK_CI_CAJ_FACT;

ALTERALTER TABLETABLE FACTURAN ADDADDCONSTRAINTCONSTRAINT FFOOREIGREIGNN KEYKEY (ID_PROD)

REFERENCESREFERENCES PRODUCTOS (ID_PROD)

CONSTRAINTCONSTRAINT FK_ID_PROD_FACT;

D. D. L.Clave For ánea

Page 76: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• ALTER TABLEALTER TABLE COMPRAN ADDADD

CONSTRAINTCONSTRAINT FFOOREIGREIGNN KEYKEY (CI_CLI)

REFERENCESREFERENCES CLIENTES (CI_CLI)

CONSTRAINTCONSTRAINT FK_CI_CLI_COMP;

D. D. L.Clave For ánea

Page 77: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• ALTER TABLEALTER TABLE COMPRAN ADDADD

CONSTRAINTCONSTRAINT FFOOREIGREIGNN KEYKEY

(CI_CAJ, ID_PROD, FECHA)REFERENCESREFERENCES FACTURAN(CI_CAJ, ID_PROD, FECHA)CONSTRAINTCONSTRAINT FK_FACT_COMP;

D. D. L.Clave For ánea

Page 78: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• ALTER TABLE– En la tabla CLIENTES el atributo NÚMERO es único.

–– UNIQUEUNIQUE KEYKEY• Controla que un atributo (o la combinación de atributos) tenga un único valor (CLAVECLAVECANDIADATACANDIADATA).

ALTER TABLE CLIENTESADDCONSTRAINTCONSTRAINT UNIQUEUNIQUE (NUMERO)CONSTRAINTCONSTRAINT UK_CLIUK_CLI;

D. D. L.Clave Única

Page 79: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• ALTER TABLE–– ELIMINARELIMINAR:: DROPDROP

• Agregamos un nuevo atributo– edad

ALTERALTER TABLETABLE PERSONAS

ADDADD EDAD INTEGER;

• No era necesario...

ALTERALTER TABLETABLE PERSONAS

DROPDROP EDAD;

D. D. L.Eliminar un Atributo

Page 80: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

DROP DROP TABLETABLE

Page 81: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• DROP TABLE

–Si ya no se necesita una tabla, podemos eliminarla junto con su definición con la orden:

•DROP TABLE

DROPDROP TABLETABLE nombre_tabla

D. D. L.Eliminar Tablas

Page 82: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• DROP TABLE

– Si la tabla a eliminar tiene la clave primaria o alguna clave secundaria referenciada poralguna clave externa de otra tabla, se deberáneliminar también estos Constraints

DROPDROP TABLETABLE PRODUCTOS CASCADE CONSTRAINTS;

D. D. L.Eliminar Tablas

Page 83: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• Para habilitar Constraints:SETSET CONSTRAINTS FK_PROD ENABLEDENABLED;

• Para deshabilitar Constraints:SETSET CONSTRAINTS FK_PROD DISABLEDDISABLED;

D. D. L.Activar – Desactivar Constraints

Page 84: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

• Renombrar: RENAMERENAME

• Para cambiar el nombre de un atributo:RENAMERENAME COLUMNCOLUMN

TABLA ATRIB TOTO NOM_NUEVO• Para cambiar el nombre de una tabla:

RENAMERENAME TABLETABLE nombre_tabla_vieja TOTOnombre_tabla_nueva;

D. D. L.Renombrar

Page 85: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

CASO DE CASO DE ESTUDIOESTUDIO

CREATE TABLECREATE TABLE

Page 86: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

CREATE TABLE PERSONAS (CI INTEGER NOT NULL,NOMBRE VARCHAR(20,10) NOT NULL,APELLIDO VARCHAR(15,10) NOT NULL,CALLE VARCHAR(20,10),NUMERO INTEGER,ESQUINA VARCHAR(20,10),EMAIL VARCHAR(30,20),FECHA_NAC DATE NOT NULL,PRIMARY KEY(CI) CONSTRAINT PK_PERSONAS);

CREATE PERSONAS

Page 87: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

CREATE TABLE PER_TEL(CI INTEGER NOT NULL,TELEFONO CHAR(9) NOT NULL,FOREIGN KEY (CI) REFERENCES PERSONAS (CI)

CONSTRAINT FK_CI,PRIMARY KEY (CI,TELEFONO) CONSTRAINT

PK_PER_TEL);

CREATE PER_TEL

Page 88: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

CREATE TABLE CLIENTES(

CI_CLI INTEGER NOT NULL,

NUMERO INTEGER NOT NULL,

UNIQUE (NUMERO) CONSTRAINT UK_CLI,

FOREIGN KEY (CI_CLI) REFERENCES PERSONAS (CI)

CONSTRAINT FK_CI_CLI,

PRIMARY KEY(CI_CLI) CONSTRAINT PK_CLIENTES);

CREATE CLIENTES

Page 89: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

CREATE TABLE CAJERAS(

CI_CAJ INTEGER NOT NULL,

QUEBRANTO INTEGER CHECK (QUEBRANTO

BETWEEN 100 AND 9000 ),

FOREIGN KEY (CI_CAJ) REFERENCES PERSONAS (CI)

CONSTRAINT FK_CI_CAJ,

PRIMARY KEY (CI_CAJ) CONSTRAINT PK_CAJERAS);

CREATE CAJERAS

Page 90: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

CREATE TABLE IVAS(ID_IVA INTEGER NOT NULL,PORCENTAJE DECIMAL(4,4) NOT NULL,PRIMARY KEY (ID_IVA) CONSTRAINT PK_IVAS);

CREATE IVAS

Page 91: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

CREATE TABLE PRODUCTOS(ID_PROD INTEGER NOT NULL,DESCRIPCION VARCHAR(20) NOT NULL,PRECIO DECIMAL(7,2) NOT NULL,ID_IVA INTEGER DEFAULT 3,TIPO VARCHAR(17) CHECK (TIPO IN

(‘Alimentos’, ‘Carnes’, ‘Quesos y Fiambres’, ‘Lacteos’, ‘Limpieza’, ‘Kiosco’, ‘Bebidas’, ‘Bebidas Alcoholicas’)),

FOREIGN KEY (ID_IVA) REFERENCES IVAS (ID_IVA) CONSTRAINT FK_PROD,

PRIMARY KEY (ID_PROD) CONSTRAINT PK_PRODUCTOS);

CREATE PRODUCTOS

Page 92: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

CREATE TABLE FACTURAN(CI_CAJ INTEGER NOT NULL,ID_PROD INTEGER NOT NULL,FECHA DATETIME YEAR TO MINUTE NOT NULL,CANTIDAD DECIMAL (6,3) NOT NULL,FOREIGN KEY (CI_CAJ) REFERENCES CAJERAS (CI_CAJ)

CONSTRAINT FK_CI_CAJ_FACT,FOREIGN KEY (ID_PROD) REFERENCES PRODUCTOS (ID_PROD)

CONSTRAINT FK_ID_PROD,PRIMARY KEY (CI_CAJ, ID_PROD, FECHA) CONSTRAINT

PK_FACTURAN);

CREATE FACTURAN

Page 93: DDL-Lenguaje-de-Definición-de-Datos

Prof. L. CarámbulaSistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010

CREATE TABLE COMPRAN(CI_CAJ INTEGER NOT NULL,ID_PROD INTEGER NOT NULL,FECHA DATETIME YEAR TO MINUTE NOT NULL,CI_CLI INTEGER NOT NULL,FOREIGN KEY (CI_CAJ, ID_PROD, FECHA) REFERENCES FACTURAN

(CI_CAJ, ID_PROD, FECHA) CONSTRAINT FK_FACT_COMP,FOREIGN KEY (CI_CLI) REFERENCES CLIENTES (CI_CLI)

CONSTRAINT FK_CI_CLI_COMP,PRIMARY KEY (CI_CAJ, ID_PROD, FECHA) CONSTRAINT

PK_COMPRAN);

CREATE COMPRAN