DDL - Lenguaje de Definici n de Datos · IVAs Clientes Tipo-Producto IVA. Sistemas de Bases de...

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

Transcript of DDL - Lenguaje de Definici n de Datos · IVAs Clientes Tipo-Producto IVA. Sistemas de Bases de...

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

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

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

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

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

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

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

CREATE CREATE DATABASEDATABASE

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

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

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

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

CREATE CREATE TABLETABLE

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

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

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

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

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

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

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

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

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

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

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

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

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)

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

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

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

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

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

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

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

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

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

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

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

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)

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)

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)

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)

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)

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

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

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

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

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

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

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

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

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

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

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

ALTER ALTER TABLETABLE

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

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

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

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

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

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

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

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

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

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

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

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

CONSTRAINTSCONSTRAINTS

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.

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

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

DROP DROP TABLETABLE

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

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

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

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

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

CASO DE CASO DE ESTUDIOESTUDIO

CREATE TABLECREATE TABLE

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

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

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

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

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

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

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

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