Está en la página 1de 93

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

Prof. L. Carmbula

D. D. L. Definicin de Datos
D. D. L.

Data Definition Language.

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

Prof. L. Carmbula

D. D. L. Definicin de Datos
D. D. L.

Data Definition Language

Lenguaje de Definicin de Datos

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

Prof. L. Carmbula

D. D. L. Definicin de Datos
D. D. L. Permite crear, modificar y eliminar las estructuras para almacenar los datos (Metadata). Permite definir el esquema de la B.D.
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D. D. L. Definicin de Datos
D. D. L.
Bases de Datos
Tablas (relaciones o entidades) Columnas (atributos) Claves: Primarias (atributo determinante) Forneas (claves externas, claves de otras tablas) nicas (claves candidatas) ndices, etc. Vistas (consultas almacenadas)
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D. D. L. Definicin de Datos Los comandos para definir datos son:

CREATE, crear. ALTER, modificar o alterar. DROP, eliminar o descartar.


Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

CREATE DATABASE
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D. D. L. Crear Base de Datos


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.
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D. D. L. Crear Base de Datos


CREATE DATABASE
Crear una nueva Base de Datos. CREATE DATABASE nombre_BD IN nombre_espacio Ejemplo:
CREATE DATABASE BD_3IX_ape

IN btdbs
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D. D. L. Crear Base de Datos


CREATE DATABASE
Al crear un base de datos el usuario que ejecute la instruccin CREATE... se le asigna permisos como DBA (Administrador de la BD) Ningn usuario (excepto informix) pude utilizar la BD, hasta que se asignen permisos.
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

CREATE TABLE
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D. D. L. Creacin de Tablas
CREATE TABLE
Crea una nueva tabla (relacin o entidad) Para cada atributo se puede especificar:
Nombre Obligatorio Tipo de dato Obligatorio Dominio Restricciones

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

Prof. L. Carmbula

D. D. L. Creacin de Tablas
CREATE TABLE Tipos de restricciones:
De clave Atributos de ingreso obligatorio De integridad:
De dominio Referencial
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D. D. L. Creacin de Tablas
CREATE TABLE

Sintaxis:
CREATE TABLE NOM_TABLA ( ATRIB1 TIPO_DATO, ATRIB2 TIPO_DATO, ATRIB3 TIPO_DATO, .....);
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D. D. L. Creacin de Tablas
Tipos de Datos
El gestor de base de datos soporta las siguientes categoras de tipos de datos: de caracteres de nmeros de tiempo para objetos grandes

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

Prof. L. Carmbula

D. D. L. Creacin de Tablas
Tipos de datos de caracteres

CHAR ( largo ) NCHAR ( largo )


caracteres especiales del idioma estndar largo: entre 1 y 32767

VARHAR (mximo, reserva) NVARCHAR (mximo, reserva)


caracteres especiales del idioma estndar mximo: entre 1 y 255. Tamao mximo de la cadena reserva: entre 0 y 255. Tamao reservado para la cadena
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D. D. L. Creacin de Tablas
Tipos de datos numricos
Tipo de Datos Numricos 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 autonumrico
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D.D.L. Tipos de Datos


Tipos de datos numricos Tipo de Datos Numricos Exactos DECIMAL ( p , s )
p: cantidad de dgitos s: cantidad de decimales

MONEY ( p , s )
smbolo monetario

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

Prof. L. Carmbula

D.D.L. Tipos de Datos


Tipos de datos numricos
Tipo de Datos Numricos Aproximados DECIMAL ( p )
p: precisin del nmero real, un integer positivo

FLOAT ( p )
p: de 1 a 32 dgitos significantes, 16 por defecto

SAMLLFLOAT
8 dgitos significantes

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

Prof. L. Carmbula

D.D.L. Tipos de Datos


Tipos de datos de tiempo
DATE fecha formato (dd / mm /aaaa)

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

Prof. L. Carmbula

D.D.L. Tipos de Datos


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 milsima de segundo
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D.D.L. Tipos de Datos


Tipos de datos de tiempo
INTERVAL almacena una unidad de tiempo
INTERVAL Year(p) To Year Month(p) To Month Day(p) To Day Hour(p) To Hour Minute(p) To Minute Second(p) To Second Fraction(p) To Fraction p: cantidad mxima de dgitos mximo 9
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D.D.L. Tipos de Datos


Tipos de datos de objetos grandes TEXT
almacena caracteres hasta 2 31 bytes

BYTE
almacena hasta 231 bytes

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

Prof. L. Carmbula

D.D.L. Caso de Estudio


Caso de Estudio:
En un supermercado las cajeras realizan la facturacin de los productos a los clientes. clientes Los productos pertenecen a distintos tipos (Alimentos, Carnes, etc.) y tienen distintos % de I.V.A. (bsico, mnimo, eximidos)
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D.D.L. Caso de Estudio

Cajeras

Telfonos direccin Nombre eMail

CI-Caj
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D.D.L. Caso de Estudio

Cajeras

Telfonos direccin Nombre eMail

CI-Caj

calle nmero esquina nombre apellido

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

Prof. L. Carmbula

D.D.L. Caso de Estudio


Direccin y nombre son atributos estructurados tambien en Clientes, pero por razones de espacio y claridad los dejaremos como atributos simples en el DER
Telfonos direccin Nombre eMail

Clientes

CI-Cli nmero
Telfonos direccin eMail Nombre

Cajeras

CI-Caj

calle nmero esquina nombre apellido

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

Prof. L. Carmbula

D.D.L. Caso de Estudio


CI-Cli nmero
Telfonos direccin eMail Nombre Telfonos direccin Nombre eMail

Clientes

*
Productos ID-Prod
Descripcin Precio
Prof. L. Carmbula

Cajeras

CI-Caj IVA Tipo-Producto

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

D.D.L. Caso de Estudio


CI-Cli nmero
Telfonos direccin eMail Nombre

Mismos Atributos Generalizamos

Clientes

Cajeras

Telfonos direccin Nombre eMail

*
Productos ID-Prod
Descripcin Precio
Prof. L. Carmbula

CI-Caj IVA Tipo-Producto

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

D.D.L. Caso de Estudio


Personas
Telfonos direccin eMail Nombre

*
Clientes CI-Cli nmero
Telfonos direccin eMail Nombre

CI Son

Cajeras

Telfonos direccin Nombre eMail

*
Productos ID-Prod
Descripcin Precio
Prof. L. Carmbula

CI-Caj IVA Tipo-Producto

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

D.D.L. Caso de Estudio


Personas
Telfonos direccin eMail Nombre

*
Clientes CI-Cli nmero IVAs ID-IVA Porcentaje

CI Son

Cajeras CI-Caj IVA Tipo-Producto

Productos ID-Prod
Descripcin Precio
Prof. L. Carmbula

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

D.D.L. Caso de Estudio


Personas
Telfonos direccin eMail Nombre

*
Clientes CI-Cli nmero IVAs T ID-IVA Porcentaje

CI Son

Cajeras CI-Caj Tipo-Producto

Productos ID-Prod
Descripcin Precio
Prof. L. Carmbula

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

D.D.L. Caso de Estudio


Personas
Telfonos direccin eMail Nombre

*
Clientes 1 T N Productos ID-Prod CI-Cli nmero IVAs ID-IVA Porcentaje

CI Son

Todos los productos tienen un IVA asociado. Cajeras CI-Caj Tipo-Producto

Descripcin Precio
Prof. L. Carmbula

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

D.D.L. Caso de Estudio


Personas
Telfonos direccin eMail Nombre

*
Clientes 1 T N CI-Cli nmero IVAs ID-IVA Porcentaje

CI Son

Cajeras CI-Caj

Facturan

Productos ID-Prod
Descripcin Precio
Prof. L. Carmbula

Hora Fecha Cantidad

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

Tipo-Producto

D.D.L. Caso de Estudio


Personas
Telfonos direccin eMail Nombre

*
Clientes 1 1 T N N Productos ID-Prod
Prof. L. Carmbula

CI Son

CI-Cli nmero IVAs ID-IVA Porcentaje

Compran N Cajeras CI-Caj N Facturan

Descripcin Tipo-Producto Precio Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

Hora Fecha Cantidad

D.D.L. Caso de Estudio Esquema Relacional:


Pasaje a Tablas:
Personas (CI, nombre, apellido, calle, nmero, esquina, email, telfonos*) Cajeras (CI-Caj) Clientes (CI-Cli, nmero) Productos (ID-Prod, descripcin, precio, tipo) IVAs (ID-IVA, porcentaje)
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D.D.L. Caso de Estudio Esquema Relacional:


Pasaje a Tablas:
Personas (CI, nombre, apellido, calle, nmero, esquina, email, telfonos*) Per-Tel(CI, telfono) Cajeras (CI-Caj) Clientes (CI-Cli, nmero) Productos (ID-Prod, descripcion, precio, tipo) IVAs (ID-IVA, porcentaje)
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D.D.L. Caso de Estudio Esquema Relacional:


Pasaje a Tablas:
Personas (CI, nombre, apellido, calle, nmero, esquina, email, telfonos*) Per-Tel(CI, telfono) Cajeras (CI-Caj) Clientes (CI-Cli, nmero) Productos (ID-Prod, descripcion, precio, tipo) IVAs (ID-IVA, porcentaje)
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D.D.L. Caso de Estudio Esquema Relacional:


Pasaje a Tablas:
Personas (CI, nombre, apellido, calle, nmero, esquina, email) Per-Tel(CI, telfono) Cajeras (CI-Caj) Clientes (CI-Cli, nmero) Productos (ID-Prod, descripcion, precio, tipo) IVAs (ID-IVA, porcentaje)
Prof. L. Carmbula

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

D.D.L. Caso de Estudio Esquema Relacional:


Pasaje a Tablas:
Per-Tel Facturan Compran Tienen (CI, telfono) (CI-Caj, ID-Prod, fecha, hora, cantidad) (CI-Caj, ID-Prod, fecha, hora, CI-Cli) (ID-Prod, ID-IVA)

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

Prof. L. Carmbula

D.D.L. Caso de Estudio Esquema Relacional:


Pasaje a Tablas:
Per-Tel Facturan Compran Tienen (CI, telfono) (CI-Caj, ID-Prod, fecha, hora, cantidad) (CI-Caj, ID-Prod, fecha, hora, CI-Cli) (ID-Prod, ID-IVA) N a 1 con totalidad

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

Prof. L. Carmbula

D.D.L. Caso de Estudio Esquema Relacional:


Pasaje a Tablas:
Per-Tel Facturan Compran Tienen (CI, telfono) (CI-Caj, ID-Prod, fecha, hora, cantidad) (CI-Caj, ID-Prod, fecha, hora, CI-Cli) (ID-Prod, ID-IVA) N a 1 con totalidad

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

Prof. L. Carmbula

D.D.L. Caso de Estudio Esquema Relacional:


Pasaje a Tablas:
Productos (ID-Prod, descripcin, precio, ID-IVA, tipo) tipo Tienen (ID-Prod, ID-IVA) N a 1 con totalidad

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

Prof. L. Carmbula

D.D.L. Caso de Estudio CREATE TABLE


CREATE TABLE PERSONAS ( CI INTEGER NOMBRE VARCHAR(20,10) APELLIDO VARCHAR(20,10) CALLE VARCHAR(20,10), NUMERO INTEGER, ESQUINA VARCHAR(20,10), EMAIL VARCHAR(30,20), PRIMARY KEY(CI) KEY
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

NOT NOT NOT

NULL, NULL, NULL,

);
Prof. L. Carmbula

D.D.L. - Caso de Estudio


CREATE TABLE
CREATE TABLE CLIENTES( CI_CLI INTEGER NUMERO INTEGER PRIMARY KEY(CI_CLI) KEY CREATE TABLE CAJERAS( CI_CAJ INTEGER PRIMARY KEY (CI_CAJ)
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

NOT NULL, NOT NULL, ); NOT NULL, );


Prof. L. Carmbula

D.D.L. - Caso de Estudio CREATE TABLE


CREATE TABLE PRODUCTOS(
ID_PROD INTEGER DESCRIPCION VARCHAR(20,10) PRECIO DECIMAL(7,2) ID_IVA INTEGER, TIPO VARCHAR(17,12), PRIMARY KEY (ID_PROD)
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

NOT NULL, NOT NULL, NOT NULL,

);
Prof. L. Carmbula

D.D.L. - Caso de Estudio CREATE TABLE


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

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

Prof. L. Carmbula

D.D.L. - Caso de Estudio

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

PRIMARY KEY (CI,TELEFONO));

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

Prof. L. Carmbula

D.D.L. - Caso de Estudio CREATE TABLE


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, PRIMARY KEY (CI_CAJ, ID_PROD, FECHA));
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D.D.L. - Caso de Estudio

CREATE TABLE
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, PRIMARY KEY (CI_CAJ, ID_PROD, FECHA));
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

ALTER TABLE
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D.D.L. Modificar Tablas ALTER TABLE


La definicin de una tabla se puede modificar mediante el comando ALTER TABLE (alterar o modificar tabla).

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

Prof. L. Carmbula

D.D.L. Modificar Tablas ALTER TABLE


Las acciones posibles para modificar las definiciones de una tabla incluyen: agregar o eliminar una columna. modificar la definicin de una columna. agregar o eliminar restricciones de la tabla.
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D.D.L. Agregar un atributo ALTER TABLE


AGREGAR: ADD

Por ejemplo, si queremos aadir a la relacin PERSONAS un atributo para almacenar la FECHA de NACIMIENTO, podemos usar la orden:
ALTER TABLE PERSONAS ADD FECHA_NAC DATE;
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D.D.L. Modificar el tipo de dato ALTER TABLE


MODIFICAR: MODIFY

Por ejemplo, si queremos MODIFICAR la entidad PERSONAS el TAMAO o LARGO del atributo APELLIDO, podemos usar la orden:
ALTER TABLE PERSONAS APELLIDO VARCHAR(15,10); MODIFY

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

Prof. L. Carmbula

D.D.L. Modificar Tablas ALTER TABLE


MODIFICAR: MODIFY

Cuando se agrega una columna a una tabla, sta admite valores nulos (NULL). Se puede agregar una restriccin a las columnas para que no admitan valores nulos (NOT NULL), siempre y cuando la columna no contenga algn valor NULL.
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D.D.L. Ingreso Obligatorio ALTER TABLE


MODIFICAR: MODIFY

Por ejemplo, si queremos AGREGAR la restriccin de NOT NULL al atributo FECHA_NAC de la relacin PERSONAS podemos usar la orden:
ALTER TABLE PERSONAS MODIFY FECHA_NAC DATE NOT NULL; NULL

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

Prof. L. Carmbula

D.D.L. Valor por defecto ALTER TABLE


MODIFICAR: MODIFY

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


ALTER TABLE PRODUCTOS MODIFY TIPO VARCHAR(17,12) DEFAULT Alimentos

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

Prof. L. Carmbula

D.D.L. Valor por defecto


ALTER TABLE
MODIFICAR: MODIFY

Tambin se pueden agregar a la hora de crear la tabla: CREATE TABLE PRODUCTOS(


..... TIPO VARCHAR(17,12) DEFAULT Alimentos,

....);
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D.D.L. Restriccin de Dominio


ALTER TABLE
MODIFICAR: MODIFY

Verificar que los valores estn 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
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D.D.L. Restriccin de Dominio ALTER TABLE


MODIFICAR: MODIFY ALTER TABLE PRODUCTOS MODIFY TIPO CHAR(17) CHECK (TIPO IN (Alimentos,

Carnes, Quesos y Fiambres, Lacteos, Limpieza, Kiosco, Bebidas, Bebidas Alcoholicas ));
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D.D.L. Restriccin de Dominio


ALTER TABLE
Tambin se pueden agregar a la hora de crear la tabla:
CREATE TABLE CAJERAS ( CI_CAJ INTEGER NOT NULL, QUEBRANTO INTEGER CHECK (QUEBRANTO BETWEEN 100 AND 9000 ), PRIMARY KEY (CI_CAJ));
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

CONSTRAINTS
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D. D. L. Claves
ALTER TABLE
Para que el SGBD controle:
las claves primarias (PRIMARY KEY) las claves forneas (FOREIGN KEY) las claves candidatas (UNIQUE KEY)

hay que indicar a CONSTRAINTS que pertenecen a cada uno.


Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

travs de atributo(s)
Prof. L. Carmbula

D. D. L. Clave Primaria
ALTER TABLE
PRIMARY KEY

Controla que el valor de un atributo (o la combinacin de atributos) sea nico para todas las filas de una tabla.
ALTER TABLE PRODUCTOS ADD CONSTRAINT PRIMARY KEY (ID_PROD) CONSTRAINT

PK_PROD;
Prof. L. Carmbula

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

D. D. L. Clave Primaria
ALTER TABLE
PRIMARY KEY

Controla que el valor de un atributo (o la combinacin de atributos) sea nico para todas lasIndicar una nombre para filas de un tabla. ALTER TABLE PRODUCTOS ADD este CONSTRAINT. CONSTRAINT PRIMARY KEY (ID_PROD) Opcional.
CONSTRAINT

PK_PROD;
Prof. L. Carmbula

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

D. D. L. Clave Fornea
ALTER TABLE
FOREIGN KEY

Controla que el valor de un atributo (o la combinacin de atributos) exista en otra tabla (el valor). Este atributo (o la combinacin de atributos) debe ser clave primaria en la otra tabla (CLAVE EXTERNA).

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

Prof. L. Carmbula

D. D. L. Clave Fornea
ALTER TABLE
En la tabla PRODUCTOS se hace referencia a ID_IVA que debe existir (el valor) en la tabla IVAs.
ALTER TABLE PRODUCTOS ADD CONSTRAINT FOREIGN KEY (ID_IVA) REFERENCES CONSTRAINT IVAS (ID_IVA) FK_PROD;
Prof. L. Carmbula

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

D. D. L. Clave Fornea
ALTER TABLE
Atributo (lista En la tabla PRODUCTOS se hace referencia a ID_IVA que debe existir de atributos) de la (el valor) en la tabla IVAs. tabla que es clave ALTER TABLE PRODUCTOS en otra tabla. ADD CONSTRAINT FOREIGN KEY (ID_IVA) REFERENCES IVAS (ID_IVA) CONSTRAINT FK_PROD;
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D. D. L. Clave Fornea
ALTER TABLE
En la tabla PRODUCTOS se hace referencia a ID_IVA que debe existir (el valor) en la tabla IVAs. Indicar en que tabla ALTER TABLE PRODUCTOS ADDo los y el nombre del CONSTRAINT FOatributos en esa tabla. REIGN KEY (ID_IVA) REFERENCES IVAS (ID_IVA) CONSTRAINT FK_PROD;
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D. D. L. Clave Fornea
ALTER TABLE
En la tabla PRODUCTOS se hace referencia a ID_IVA que debe existir (el valor) en la tabla IVAs. ALTER TABLE PRODUCTOS ADD Indicar un nombre para CONSTRAINT FOREIGN KEY (ID_IVA) este CONSTRAINT. Opcional. (ID_IVA) REFERENCES IVAS CONSTRAINT FK_PROD;
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D. D. L. Clave Fornea ALTER TABLE


Tambin 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.
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D. D. L. Clave Fornea
ALTER TABLE
ALTER TABLE CAJERAS ADD CONSTRAINT
FOREIGN KEY (CI_CAJ) REFERENCES PERSONAS (CI) CONSTRAINT FK_CI_CAJ;

ALTER TABLE CLIENTES ADD CONSTRAINT


FOREIGN KEY (CI_CLI) REFERENCES PERSONAS (CI) CONSTRAINT FK_CI_CLI;
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D. D. L. Clave Fornea ALTER TABLE


Tambin en la relaciones FACTURAN y COMPRAN se hacen referencia a las claves de las entidades que estn vinculadas. Se debe agregar una constraint para cada entidad vinculada en la relacin.
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D. D. L. Clave Fornea
ALTER TABLE
ALTER TABLE FACTURAN ADD CONSTRAINT FOREIGN KEY (CI_CAJ) REFERENCES CAJERAS (CI_CAJ) CONSTRAINT FK_CI_CAJ_FACT; ALTER TABLE FACTURAN ADD CONSTRAINT FOREIGN KEY (ID_PROD) REFERENCES PRODUCTOS (ID_PROD) CONSTRAINT FK_ID_PROD_FACT;
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D. D. L. Clave Fornea ALTER TABLE


ALTER TABLE COMPRAN ADD
CONSTRAINT FOREIGN KEY (CI_CLI) REFERENCES CLIENTES (CI_CLI) CONSTRAINT FK_CI_CLI_COMP;

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

Prof. L. Carmbula

D. D. L. Clave Fornea ALTER TABLE


ALTER TABLE COMPRAN ADD
CONSTRAINT FOREIGN KEY

(CI_CAJ, ID_PROD, FECHA) REFERENCES FACTURAN (CI_CAJ, ID_PROD, FECHA) CONSTRAINT FK_FACT_COMP;
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D. D. L. Clave nica
ALTER TABLE
En la tabla CLIENTES NMERO es nico. el atributo
UNIQUE KEY Controla que un atributo (o la combinacin de atributos) tenga un nico valor (CLAVE CANDIADATA). CANDIADATA ALTER TABLE CLIENTESADD CONSTRAINT UNIQUE (NUMERO) CONSTRAINT UK_CLI; UK_CLI
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D. D. L. Eliminar un Atributo
ALTER TABLE
ELIMINAR: DROP Agregamos un nuevo atributo edad ALTER TABLE PERSONAS ADD EDAD INTEGER; No era necesario... ALTER TABLE PERSONAS DROP EDAD;
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

DROP TABLE
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D. D. L. Eliminar Tablas
DROP TABLE Si ya no se necesita una tabla, podemos eliminarla junto con su definicin con la orden:
DROP TABLE
DROP TABLE nombre_tabla
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D. D. L. Eliminar Tablas
DROP TABLE
Si la tabla a eliminar tiene la clave primaria o alguna clave secundaria referenciada por alguna clave externa de otra tabla, se debern eliminar tambin estos Constraints
DROP

TABLE PRODUCTOS CASCADE

CONSTRAINTS;
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D. D. L. Activar Desactivar Constraints


Para habilitar Constraints: SET CONSTRAINTS ENABLED; FK_PROD

Para deshabilitar Constraints: SET CONSTRAINTS FK_PROD DISABLED;


Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

D. D. L. Renombrar
Renombrar: RENAME
Para cambiar el nombre de un atributo:
RENAME COLUMN

TABLA ATRIB TO NOM_NUEVO Para cambiar el nombre de una tabla: RENAME TABLE nombre_tabla_vieja TO nombre_tabla_nueva;
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

CASO DE ESTUDIO CREATE TABLE


Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

CREATE PERSONAS
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);
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

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

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

Prof. L. Carmbula

CREATE CLIENTES
CREATE TABLE CLIENTES( CI_CLI NUMERO INTEGER INTEGER NOT NULL, 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);

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

Prof. L. Carmbula

CREATE CAJERAS
CREATE TABLE CAJERAS( CI_CAJ QUEBRANTO INTEGER NOT NULL, 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);
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

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

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

Prof. L. Carmbula

CREATE PRODUCTOS
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);
Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010 Prof. L. Carmbula

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

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

Prof. L. Carmbula

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

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

Prof. L. Carmbula

También podría gustarte