Sei sulla pagina 1di 93

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

Carámbula
D. D. L.
Definición de Datos
• D. D. L.
–Data
–Definition
–Language.

Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D. D. L.
Definición de Datos
• D. D. L.
–Data »Lenguaje
–Definition »de Definición
–Language »de Datos

Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D. D. L.
Definición 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. Carámbula
D. D. L.
Definición de Datos
• 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)
Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D. D. L.
Definición 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. Carámbula
CREATE
DATABASE
Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
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. Carámbula
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. Carámbula
D. D. L.
Crear Base de Datos
• 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.
Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
CREATE
TABLE
Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D. D. L.
Creación de Tablas
• CREATE TABLE
– Crea una nueva tabla (relación 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. Carámbula
D. D. L.
Creación 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. Carámbula
D. D. L.
Creación 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. Carámbula
D. D. L.
Creación de Tablas
• 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

Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D. D. L.
Creación de Tablas
• 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
Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D. D. L.
Creación de Tablas
• 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
Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D.D.L.
Tipos de Datos
• Tipos de datos numéricos
– Tipo de Datos Numéricos Exactos
• DECIMAL ( p , s )
– p: cantidad de dígitos
– s: cantidad dedecimales
• MONEY ( p , s )
– símbolomonetario

Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D.D.L.
Tipos de Datos
• 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

Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
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. Carámbula
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 milésima de segundo
Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
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 máxima de dígitos máximo 9
Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
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. Carámbula
D.D.L.
Caso de Estudio
• Caso de Estudio:
– En un supermercado las cajeras realizan
la facturación de los productos a los
clientes.
– Los productos pertenecen a distintos
tipos (Alimentos, Carnes, etc.) y tienen
distintos % de I.V.A. (básico, mínimo,
eximidos)
Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D.D.L. – Caso de Estudio

Teléfonos
dirección
Cajeras Nombre
eMail
CI-Caj

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

calle
Teléfonos
dirección
* número
esquina
Cajeras Nombre nombre
eMail
CI-Caj apellido

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

Dirección y nombre
son atributos estructurados CI-Cli
Clientes número
tambien en Clientes, pero
por razones de espacio y Teléfonos
dirección
*
claridad los dejaremos como eMail
atributos simples en el DER Nombre

calle
Teléfonos
dirección
* número
esquina
Cajeras Nombre nombre
eMail
CI-Caj apellido

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

CI-Cli
Clientes número
Teléfonos
dirección
*
eMail
Nombre

Teléfonos
dirección
*
Cajeras Nombre Productos
eMail
CI-Caj IVA ID-Prod
Descripción
Tipo-Producto Precio
Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D.D.L. – Caso de Estudio

CI-Cli
Mismos Clientes número
Atributos
Generalizamos
Teléfonos
dirección
*
eMail
Nombre

Teléfonos
dirección
*
Cajeras Nombre Productos
eMail
CI-Caj IVA ID-Prod
Descripción
Tipo-Producto Precio
Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D.D.L. – Caso de Estudio

Personas
Teléfonos
dirección
*
eMail
Nombre CI-Cli
CI Clientes número
Son Teléfonos
dirección
*
eMail
Nombre

Teléfonos
dirección
*
Cajeras Nombre Productos
eMail
CI-Caj IVA ID-Prod
Descripción
Tipo-Producto Precio
Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D.D.L. – Caso de Estudio

Personas
Teléfonos
dirección
*
eMail
Nombre CI-Cli
CI Clientes número
Son
IVAs
ID-IVA
Porcentaje

Cajeras Productos
CI-Caj IVA ID-Prod
Descripción
Tipo-Producto Precio
Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D.D.L. – Caso de Estudio

Personas
Teléfonos
dirección
*
eMail
Nombre CI-Cli
CI Clientes número
Son
IVAs
T ID-IVA
Porcentaje

Cajeras Productos
CI-Caj ID-Prod
Descripción
Tipo-Producto Precio
Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D.D.L. – Caso de Estudio

Personas
Teléfonos
dirección
*
eMail
Nombre CI-Cli
CI Clientes número
Son 1 IVAs
Todos los productos tienen T ID-IVA
un IVA asociado. N Porcentaje

Cajeras Productos
CI-Caj ID-Prod
Descripción
Tipo-Producto Precio
Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D.D.L. – Caso de Estudio

Personas
Teléfonos
dirección
*
eMail
Nombre CI-Cli
CI Clientes número
Son 1 IVAs
T ID-IVA
N Porcentaje

Cajeras N N
Facturan Productos
CI-Caj ID-Prod
Hora Fecha Cantidad Descripción
Precio
Tipo-Producto
Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D.D.L. – Caso de Estudio

Personas
Teléfonos
dirección
*
eMail
Nombre CI-Cli
CI Clientes número
Son 1
1 IVAs
T ID-IVA
Compran
N N Porcentaje

Cajeras N N
Facturan Productos
CI-Caj ID-Prod
Hora Fecha Cantidad Descripción
Tipo-Producto Precio
Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
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)
Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
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) Per-Tel(CI, teléfono)
Clientes (CI-Cli, número)
Productos (ID-Prod, descripcion, precio,
tipo)
IVAs (ID-IVA, porcentaje)
Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
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) Per-Tel(CI, teléfono)
Clientes (CI-Cli, número)
Productos (ID-Prod, descripcion, precio,
tipo)
IVAs (ID-IVA, porcentaje)
Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D.D.L. – Caso de Estudio

•Esquema Relacional:
–Pasaje a Tablas:
Personas (CI, nombre, apellido, calle,
número, esquina, email)
Cajeras (CI-Caj) Per-Tel(CI, teléfono)
Clientes (CI-Cli, número)
Productos (ID-Prod, descripcion, precio,
tipo)
IVAs (ID-IVA, porcentaje)
Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
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)

Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
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) N a 1 con totalidad

Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
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) N a 1 con totalidad

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

•Esquema Relacional:
–Pasaje a Tablas:
Productos (ID-Prod, descripción, precio, ID-IVA,
tipo)

Tienen (ID-Prod, ID-IVA) N a 1 con totalidad

Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D.D.L. – Caso de Estudio
• CREATE TABLE
CREATE 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 KEY(CI)
PRIMARY VARCHAR(30,20), );
Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D.D.L. - Caso de Estudio
• CREATE TABLE
CREATE TABLE CLIENTES(
CI_CLI INTEGER NOT NULL,
NUMERO INTEGER NOT NULL,
PRIMARY KEY(CI_CLI) );
CREATE TABLE CAJERAS(
CI_CAJ INTEGER NOT NULL,
PRIMARY KEY (CI_CAJ) );

Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D.D.L. - Caso de Estudio

• CREATE TABLE
CREATE 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 KEY (ID_PROD) );

Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D.D.L. - Caso de Estudio

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

Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D.D.L. - Caso de Estudio

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

PRIMARY KEY (CI,TELEFONO));

Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
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. Carámbula
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. Carámbula
ALTER
TABLE
Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D.D.L.
Modificar Tablas
• ALTER TABLE
–La definición 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. Carámbula
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 definición de una columna.
• agregar o eliminar restricciones de la tabla.

Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D.D.L.
Agregar un atributo
• ALTER TABLE
– AGREGAR: ADD
– 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
ADD FECHA_NAC DATE;
Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D.D.L.
Modificar el tipo de dato
• ALTER TABLE
– MODIFICAR: MODIFY
– Por ejemplo, si queremos MODIFICAR
la entidad PERSONAS el TAMAÑO o
LARGO del atributo APELLIDO,
podemos usar la orden:
ALTER TABLE PERSONAS MODIFY
APELLIDO VARCHAR(15,10);

Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
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 restricción a las
columnas para que no admitan valores nulos
(NOT NULL), siempre y cuando la columna
no contenga algún valor NULL.

Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D.D.L.
Ingreso Obligatorio
• ALTER TABLE
– MODIFICAR: MODIFY
– 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 MODIFY
FECHA_NAC DATE NOT NULL;

Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
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. Carámbula
D.D.L.
Valor por defecto
• ALTER TABLE
– MODIFICAR: MODIFY
– También 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. Carámbula
D.D.L.
Restricción de Dominio
• ALTER TABLE
– MODIFICAR: MODIFY
– 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
Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D.D.L.
Restricción 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. Carámbula
D.D.L.
Restricción de Dominio
• ALTER TABLE
– También 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. Carámbula
CONSTRAINTS

Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D. D. L.
Claves
• ALTER TABLE
– Para que el SGBD controle:
• las claves primarias (PRIMARY KEY)
• las claves foráneas (FOREIGN KEY)
• las claves candidatas (UNIQUE KEY)
– hay que indicar a través de
CONSTRAINTS que atributo(s)
pertenecen a cada uno.
Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D. D. L.
Clave Primaria
• ALTER TABLE
– PRIMARY KEY
• 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 ADD
CONSTRAINT PRIMARY KEY (ID_PROD)
CONSTRAINT PK_PROD ;

Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D. D. L.
Clave Primaria
• ALTER TABLE
– PRIMARY KEY
• Controla que el valor de un atributo (o la
combinación de atributos) sea único para
todas lasIndicar
filas de una tabla. para
un nombre
ALTER TAB LEestePRODUCTOS
CONSTRAINT. AADDDD
CONSTRAINTOpcional.
TPPRRIMMAARRYYKKEEYY(ID_PRO D)
CONSTRAINT PK_PROD ;

Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D. D. L.
Clave Foránea
• ALTER TABLE
– FOREIGN 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 EXTERNA).

Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D. D. L.
Clave Foránea
• 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 IVAS (ID_IVA)
CONSTRAINT FK_PROD;

Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D. D. L.
Clave Foránea
• ALTER TABLE
– En la tabla PRODUCTOS seAtributo (lista
hace referencia
a ID_IVA que debe existir de
(elatributos)
valor) en dela la
tabla IVAs. tabla que es clave
ALTER TABLE PRODUCTOS en AADotra
DDD tabla.
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. Carámbula
D. D. L.
Clave Foránea
• 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
y el nombreAAdel
ALTER TABLE PR ODUCTOS DDDDo los
CONSTRAINT F OR REEIGGNNKK
atributos EEYY
en (ID_IVA)
esa tabla.
REFERENCES IVAS (ID_IVA)
CONSTRAINT FK_PROD;

Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D. D. L.
Clave Foránea
• ALTER TABLE
– En la tabla PRODUCTOS se hace referencia
a ID_IVA que debe existir (el valor) en la
tabla IVAs.
ALTER TAB LE PRODUCTOS
Indicar un nombre AADDDD
para
CONSTRAIN NTTFCONSTRAINT.
este FOORREEIGGNNKKEEYY(ID_I VA)
REFERENCC Opcional.
EESS IVAS (ID_IVA)
CONSTRAINT FK_PROD ;

Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D. D. L.
Clave Foránea
• 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.

Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D. D. L.
Clave Foránea
• 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. Carámbula
D. D. L.
Clave Foránea
• 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.

Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D. D. L.
Clave Foránea
• 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. Carámbula
D. D. L.
Clave Foránea
• 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. Carámbula
D. D. L.
Clave Foránea
• 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. Carámbula
D. D. L.
Clave Única
• ALTER TABLE
– En la tabla CLIENTES el atributo
NÚMERO es único.
– UNIQUE KEY
• Controla que un atributo (o la combinación de
atributos) tenga un único valor (CLAVE
CANDIADATA).
ALTER TABLE CLIENTESADD
CONSTRAINT UNIQUE (NUMERO)
CONSTRAINT UK_CLI;
Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
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. Carámbula
DROP
TABLE
Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D. D. L.
Eliminar Tablas
• DROP TABLE
–Si ya no se necesita una tabla,
podemos eliminarla junto con su
definición con la orden:
• DROP TABLE
DROP TABLE nombre_tabla
Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
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 deberán
eliminar también estos Constraints
DROP PRODUCTOS CASCADE
TABLE
CONSTRAINTS;

Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
D. D. L.
Activar – Desactivar Constraints
• Para habilitar Constraints:
SET CONSTRAINTS FK_PROD
ENABLED;

• Para deshabilitar Constraints:


SET CONSTRAINTS FK_PROD
DISABLED;

Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
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. Carámbula
CASO DE
ESTUDIO
CREATE TABLE
Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
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
PRIMARY DATE
KEY(CI) CONSTRAINT NOT NULL,
PK_PERSONAS);

Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010 Prof. L. Carámbula
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. Carámbula
CREATE CLIENTES

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

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

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

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

Potrebbero piacerti anche