DDL - A/S Leonardo Carámbula

Anuncio
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
–Definition
–Language
» Lenguaje
» de Definición
» 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 de decimales
• MONEY ( p , s )
–símbolo monetario
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.
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
Cajeras
Teléfonos
dirección
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
Cajeras
Teléfonos
dirección
Nombre
eMail
CI-Caj
*
calle
número
esquina
nombre
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
tambien en Clientes, pero
por razones de espacio y
claridad los dejaremos como
atributos simples en el DER
Cajeras
Teléfonos
dirección
Nombre
eMail
CI-Caj
*
Clientes
CI-Cli
número
Teléfonos
dirección
eMail
Nombre
*
calle
número
esquina
nombre
apellido
Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
Prof. L. Carámbula
D.D.L. – Caso de Estudio
Clientes
CI-Cli
número
Teléfonos
dirección
eMail
Nombre
Cajeras
Teléfonos
dirección
Nombre
eMail
*
*
CI-Caj IVA
Tipo-Producto
Productos
ID-Prod
Descripción
Precio
Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
Prof. L. Carámbula
D.D.L. – Caso de Estudio
Mismos
Atributos
Generalizamos
Cajeras
Teléfonos
dirección
Nombre
eMail
Clientes
CI-Cli
número
Teléfonos
dirección
eMail
Nombre
*
*
CI-Caj IVA
Tipo-Producto
Productos
ID-Prod
Descripción
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
Clientes
CI-Cli
número
*
Teléfonos
dirección
eMail
Nombre
Son
*
Cajeras
Teléfonos
dirección
Nombre
eMail
CI-Caj IVA
Tipo-Producto
Productos
ID-Prod
Descripción
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
Clientes
Son
CI-Cli
número
IVAs
ID-IVA
Porcentaje
Cajeras
CI-Caj
Productos
IVA
Tipo-Producto
ID-Prod
Descripción
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
Clientes
Son
CI-Cli
número
IVAs
T
Cajeras
ID-IVA
Porcentaje
Productos
CI-Caj
ID-Prod
Tipo-Producto
Descripción
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
CI-Cli
número
Clientes
Son
1
Todos los productos tienen
un IVA asociado.
Cajeras
T
N
IVAs
ID-IVA
Porcentaje
Productos
CI-Caj
ID-Prod
Tipo-Producto
Descripción
Precio
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
eMail
Nombre
Personas
CI
CI-Cli
número
Clientes
Son
1
T
N
Cajeras
CI-Caj
N
Facturan
N
Hora Fecha Cantidad
Tipo-Producto
IVAs
ID-IVA
Porcentaje
Productos
ID-Prod
Descripción
Precio
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
eMail
Nombre
Personas
CI
Clientes
1
Son
CI-Caj
N
Facturan
1
T
Compran
N
Cajeras
CI-Cli
número
N
N
Hora Fecha Cantidad
IVAs
ID-IVA
Porcentaje
Productos
ID-Prod
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
•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*)
Per-Tel(CI, teléfono)
Cajeras (CI-Caj)
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*)
Per-Tel(CI, teléfono)
Cajeras (CI-Caj)
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)
Per-Tel(CI, teléfono)
Cajeras
(CI-Caj)
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
Facturan
Compran
Tienen
(CI, teléfono)
(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. Carámbula
D.D.L. – Caso de Estudio
•Esquema Relacional:
–Pasaje a Tablas:
Per-Tel
Facturan
Compran
Tienen
(CI, teléfono)
(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. Carámbula
D.D.L. – Caso de Estudio
•Esquema Relacional:
–Pasaje a Tablas:
Per-Tel
Facturan
Compran
Tienen
(CI, teléfono)
(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. Carámbula
D.D.L. – Caso de Estudio
•Esquema Relacional:
–Pasaje a Tablas:
Productos (ID-Prod, descripción, 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. Carámbula
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. Carámbula
D.D.L. - Caso de Estudio
• CREATE TABLE
CREATE TABLE CLIENTES(
CI_CLI
INTEGER
NUMERO
INTEGER
NOT NULL,
NOT NULL,
PRIMARY KEY(CI_CLI)
KEY
);
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
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. Carámbula
D.D.L. - Caso de Estudio
• CREATE TABLE
CREATE TABLE IVAS(
ID_IVA
PORCENTAJE
INTEGER
NOT NULL,
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
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. 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
APELLIDO VARCHAR(15,10);
Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
MODIFY
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;
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
CONSTRAINTS
que
pertenecen a cada uno.
Sistemas de Bases de Datos II – ITS / ITSB – EMT – CETP – 2010
través de
atributo(s)
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 TABLE
PRODUCTOS
ADD
este
CONSTRAINT.
CONSTRAINT
PRIMARY KEY (ID_PROD)
Opcional.
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
CONSTRAINT
IVAS (ID_IVA)
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
(lista
– En la tabla PRODUCTOS seAtributo
hace referencia
a ID_IVA que debe existir de
(elatributos)
valor) en de
la la
tabla IVAs.
tabla que es clave
ALTER TABLE PRODUCTOS en
ADD
otra 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
ALTER TABLE PRODUCTOS
y el nombreADD
del o los
CONSTRAINT FOatributos
REIGN KEY
(ID_IVA)
en 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 TABLE
PRODUCTOS
ADD
Indicar
un nombre
para
CONSTRAINT
OREIGN KEY (ID_IVA)
este FCONSTRAINT.
Opcional.
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
• 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
NÚMERO es único.
el
atributo
– UNIQUE KEY
• Controla que un atributo (o la combinación 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. 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
TABLE PRODUCTOS CASCADE
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
ENABLED;
FK_PROD
• 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
DATE
NOT NULL,
PRIMARY KEY(CI) CONSTRAINT 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
Descargar