DDL - A/S Leonardo Carámbula

Anuncio
D. D. L.
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D. D. L.
Definición de Datos
• D. D. L.
–Data
–Definition
–Language.
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo 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 / ISBO – EMT – CETP – 2015 – Leonardo 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 / ISBO – EMT – CETP – 2015 – Leonardo 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)
»Únicas (claves candidatas)
– Índices, etc.
•Vistas (consultas almacenadas)
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D. D. L.
Definición de Datos
•Las sentencias para definir
datos son:
–CREATE, crear.
–ALTER, modificar o alterar.
–DROP, eliminar o descartar.
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
CREATE
DATABASE
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo 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 / ISBO – EMT – CETP – 2015 – Leonardo 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 datosdbs
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D. D. L.
Crear Base de Datos
• CREATE DATABASE
– Al crear una base de datos el
usuario que ejecute la sentencia
CREATE... se le asignan permisos
como DBA (Administrador de la
BD)
– Ningún usuario (excepto informix)
pude utilizar la nueva BD, hasta
que se asignen permisos.
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
CREATE
TABLE
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo 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 / ISBO – EMT – CETP – 2015 – Leonardo 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 / ISBO – EMT – CETP – 2015 – Leonardo 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 / ISBO – EMT – CETP – 2015 – Leonardo 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:
• caracteres
• numéricos
• cronológicos
• booleanos
• objetos grandes
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D. D. L.
Creación de Tablas
•
Tipos de datos de Caracteres
– CHAR ( largo )
• caracteres ASCII
• Largo entre 1 y 32.767
– NCHAR ( largo )
• caracteres especiales del idioma estándar
• largo: entre 1 y 32.767
– 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 / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D. D. L.
Creación de Tablas
•
Tipos de datos de Caracteres
– VARHAR (máximo, reserva)
– NVARCHAR (máximo, reserva)
• caracteres especiales del idioma estándar
• máximo: entre 1 y 255. Tamaño de la cadena.
• reserva: entre 0 y 255. Tamaño reservado para la
cadena
– LVARCHAR(máximo)
• máximo: entre 1 y 32.739. Tamaño de la cadena.
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D. D. L.
Creación de Tablas
• Tipos de datos numéricos
– Tipo de Datos Numéricos Exactos
• INTEGER
– Valores: -2.147.483.647 a 2.147.483.647
• SMALLINT
– Valores: -32.767 a 32.767
• BIGINT o INT8
– Valores: -263 -1 a 263 - 1
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D. D. L.
Creación de Tablas
• Tipos de datos numéricos
– Tipo de Datos Numéricos Exactos
• SERIAL ( n )
– n: comienzo de la serie
– integer autonumérico
• BIGSERIAL(n) o SERIAL8(n)
– n: comienzo de la serie
– Bigint o int8 autonumérico
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo 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 / ISBO – EMT – CETP – 2015 – Leonardo 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 / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L.
Tipos de Datos
• Tipos de datos boolean
– Verdadero o Falseo
• BOOLEAN
– Ocupan 1 byte
– Valores válidos
» 't'
» 'f'
» NULL
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L.
Tipos de Datos
Tipos de datos cronológicos
– DATE
• fecha
• formato (dd / mm /aaaa)
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L.
Tipos de Datos
Tipos de datos cronológicos
– 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)
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L.
Tipos de Datos
• Tipos de datos cronológicos
– 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. Valor máximo 9
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo 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 / ISBO – EMT – CETP – 2015 – Leonardo 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 / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
Cajera
Teléfonos
dirección
Nombre
eMail
CI-Caj
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
*
Cajera
Teléfono
dirección
Nombre
eMail
CI-Caj
calle
número
esquina
nombre
apellido
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
Dirección y nombre
son atributos estructurados
tambien en Cliente, pero
por razones de espacio y
claridad los dejaremos como
atributos simples en el DER
*
Cajera
Teléfono
dirección
Nombre
eMail
CI-Caj
Cliente
CI-Cli
número
*
Teléfono
dirección
eMail
Nombre
calle
número
esquina
nombre
apellido
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
Cliente
CI-Cli
número
Teléfono
dirección
eMail
Nombre
*
Cajera
Teléfono
dirección
Nombre
eMail
CI-Caj IVA
Tipo-Producto
Producto
ID-Prod
Descripción
Precio
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
*
D.D.L. – Caso de Estudio
Mismos
Atributos
Generalizamos
Cliente
CI-Cli
número
Teléfono
dirección
eMail
Nombre
*
Cajera
Teléfono
dirección
Nombre
eMail
CI-Caj IVA
Tipo-Producto
Producto
ID-Prod
Descripción
Precio
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
*
D.D.L. – Caso de Estudio
Persona
*
Teléfono
dirección
eMail
Nombre
CI
Cliente
CI-Cli
número
Teléfono
dirección
eMail
Nombre
Es
*
Cajera
Teléfono
dirección
Nombre
eMail
CI-Caj IVA
Tipo-Producto
Producto
ID-Prod
Descripción
Precio
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
*
D.D.L. – Caso de Estudio
Persona
*
Teléfono
dirección
eMail
Nombre
CI
Cliente
Es
CI-Cli
número
IVA
ID-IVA
Porcentaje
Cajera
CI-Caj
Producto
IVA
Tipo-Producto
ID-Prod
Descripción
Precio
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
Persona
*
Teléfono
dirección
eMail
Nombre
CI
Cliente
Es
CI-Cli
número
IVA
T
Cajera
ID-IVA
Porcentaje
Producto
CI-Caj
ID-Prod
Tipo-Producto
Descripción
Precio
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
Persona
*
Teléfono
dirección
eMail
Nombre
CI
CI-Cli
número
Cliente
Es
1
Todos los productos tienen
un IVA asociado.
Cajera
T
N
IVA
ID-IVA
Porcentaje
Producto
CI-Caj
ID-Prod
Tipo-Producto
Descripción
Precio
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
*
Teléfono
dirección
eMail
Nombre
Persona
CI
CI-Cli
número
Cliente
Son
1
T
N
Cajera
CI-Caj
N
Factura
N
Hora Fecha Cantidad
Tipo-Producto
IVA
ID-IVA
Porcentaje
Producto
ID-Prod
Descripción
Precio
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
*
Teléfono
dirección
eMail
Nombre
Persona
CI
Cliente
1
Es
CI-Caj
N
Factura
1
T
Compra
N
Cajera
CI-Cli
número
N
N
Hora Fecha Cantidad
Tipo-Producto
IVA
ID-IVA
Porcentaje
Producto
ID-Prod
Descripción
Precio
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
•Esquema Relacional:
– Pasaje a Tablas:
• Persona (CI, nombre, apellido, calle,
número, esquina, email, teléfono*)
• Cajera (CI-Caj)
• Cliente (CI-Cli, número)
• Producto (ID-Prod,descripción,
precio, tipo)
• IVA (ID-IVA, porcentaje)
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
•Esquema Relacional:
– Pasaje a Tablas:
• Persona (CI, nombre, apellido, calle,
número, esquina, email, teléfono*)
• Cajera (CI-Caj)
Per-Tel(CI, teléfono)
• Cliente (CI-Cli, número)
• Producto (ID-Prod,descripción,
precio, tipo)
• IVA (ID-IVA, porcentaje)
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
•Esquema Relacional:
– Pasaje a Tablas:
• Persona (CI, nombre, apellido, calle,
número, esquina, email, teléfono*)
• Cajera (CI-Caj)
Per-Tel(CI, teléfono)
• Cliente (CI-Cli, número)
• Producto (ID-Prod,descripción,
precio, tipo)
• IVA (ID-IVA, porcentaje)
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
•Esquema Relacional:
– Pasaje a Tablas:
• Persona (CI, nombre, apellido, calle,
número, esquina, email)
• Cajera (CI-Caj)
Per-Tel(CI, teléfono)
• Cliente (CI-Cli, número)
• Producto (ID-Prod,descripción,
precio, tipo)
• IVA (ID-IVA, porcentaje)
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
•Esquema Relacional:
–Pasaje a Tablas:
•
•
•
•
Per-Tel (CI, teléfono)
Factura (CI-Caj, ID-Prod, fecha, hora, cantidad)
Compra (CI-Caj, ID-Prod, fecha, hora, CI-Cli)
Tiene (ID-Prod, ID-IVA)
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
•Esquema Relacional:
–Pasaje a Tablas:
•
•
•
•
Per-Tel (CI, teléfono)
Factura (CI-Caj, ID-Prod, fecha, hora, cantidad)
Compra (CI-Caj, ID-Prod, fecha, hora, CI-Cli)
Tiene (ID-Prod, ID-IVA) N a 1 con totalidad
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
•Esquema Relacional:
–Pasaje a Tablas:
•
•
•
•
Per-Tel (CI, teléfono)
Factura (CI-Caj, ID-Prod, fecha, hora, cantidad)
Compra (CI-Caj, ID-Prod, fecha, hora, CI-Cli)
Tiene (ID-Prod, ID-IVA) N a 1 con totalidad
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
•Esquema Relacional:
–Pasaje a Tablas:
• Productos (ID-Prod, descripción, precio, IDIVA, tipo)
tipo
Tienen
(ID-Prod, ID-IVA)
N a 1 con totalidad
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. – Caso de Estudio
•CREATE TABLE
CREATE TABLE PERSONA (
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
NOT
NOT
NOT
NULL,
NULL,
NULL,
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. - Caso de Estudio
• CREATE TABLE
CREATE TABLE CLIENTE(
CI_CLI
INTEGER
NUMERO
INTEGER
NOT NULL,
NOT NULL,
PRIMARY KEY(CI_CLI)
KEY
);
CREATE TABLE CAJERA(
CI_CAJ
INTEGER
PRIMARY KEY (CI_CAJ)
NOT NULL,
);
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. - Caso de Estudio
•CREATE TABLE
CREATE TABLE PRODUCTO(
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 / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. - Caso de Estudio
•CREATE TABLE
CREATE TABLE IVA(
ID_IVA
INTEGER
NOT NULL,
PORCENTAJE DECIMAL(4,4) NOT NULL,
PRIMARY KEY (ID_IVA)
);
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. - Caso de Estudio
•CREATE TABLE
CREATE TABLE PER_TEL(
CI
INTEGER
TELEFONO CHAR(9)
NOT NULL,
NOT NULL,
PRIMARY KEY (CI,TELEFONO));
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. - Caso de Estudio
•CREATE TABLE
CREATE TABLE FACTURA(
CI_CAJ
INTEGER
ID_PROD INTEGER
FECHA DATETIME YEAR
NOT NULL,
CANTIDAD DECIMAL (6,3)
NOT NULL,
NOT NULL,
TO MINUTE
NOT NULL,
PRIMARY KEY (CI_CAJ, ID_PROD,
FECHA));
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L. - Caso de Estudio
•CREATE TABLE
CREATE TABLE COMPRA(
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 / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
ALTER
TABLE
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo 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 / ISBO – EMT – CETP – 2015 – Leonardo 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
columna.
la
definición
de
una
• agregar o eliminar restricciones de
la tabla.
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L.
Agregar un atributo
•ALTER TABLE
– AGREGAR:
ADD
– Por ejemplo, si queremos añadir
a la relación PERSONA un
atributo para almacenar la
FECHA
de
NACIMIENTO,
podemos usar la orden:
ALTER TABLE PERSONA
ADD FECHA_NAC DATE;
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L.
Modificar el tipo de dato
•ALTER TABLE
– MODIFICAR: MODIFY
– Por ejemplo, si queremos
MODIFICAR
la
entidad
PERSONA
el
TAMAÑO
o
LARGO del atributo APELLIDO,
podemos usar la orden:
ALTER TABLE PERSONA MODIFY
APELLIDO VARCHAR(15,10);
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo 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 / ISBO – EMT – CETP – 2015 – Leonardo 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
PERSONA
podemos usar la orden:
ALTER TABLE PERSONA MODIFY
FECHA_NAC DATE NOT NULL;
NULL
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L.
Valor por defecto
•ALTER TABLE
–
MODIFICAR: MODIFY
– Asignar un valor por defecto,
cuando no se asigna uno:
ALTER TABLE PRODUCTO MODIFY
TIPO VARCHAR(17,12) DEFAULT
‘Alimentos’
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L.
Valor por defecto
• ALTER TABLE
– MODIFICAR: MODIFY
– También se pueden indicar al crear
la tabla:
CREATE TABLE PRODUCTO(
.....
TIPO VARCHAR(17,12) DEFAULT
‘Alimentos’,
....);
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo 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 / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D.D.L.
Restricción de Dominio
•ALTER
TABLE
–
MODIFICAR: MODIFY
ALTER TABLE PRODUCTO MODIFY TIPO
VARCHAR(17)
CHECK
(TIPO
IN
(‘Alimentos’,
‘Carnes’,
Fiambres’,
‘Lacteos’,
‘Kiosco’,
‘Bebidas’,
Alcoholicas’ ));
‘Quesos
y
‘Limpieza’,
‘Bebidas
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo 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 CAJERA (
CI_CAJ INTEGER NOT NULL,
QUEBRANTO INTEGER CHECK
(QUEBRANTO BETWEEN 100 AND 9000 ),
PRIMARY KEY (CI_CAJ));
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
CONSTRAINTS
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo 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 / ISBO – EMT – CETP – 2015 – Leonardo 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 PRODUCTO ADD
CONSTRAINT PRIMARY KEY (ID_PROD)
CONSTRAINT
PK_PROD;
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo 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
un nombre para
filas deIndicar
una tabla.
ALTER TABLE
estePRODUCTOS
CONSTRAINT. ADD
CONSTRAINT
PRIMARY KEY (ID_PROD)
Opcional.
CONSTRAINT
PK_PROD;
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo 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 / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D. D. L.
Clave Foránea
• ALTER TABLE
– En la tabla PRODUCTO se hace
referencia a ID_IVA que debe
existir (el valor) en la tabla IVA.
ALTER TABLE PRODUCTO ADD
CONSTRAINT FOREIGN KEY (ID_IVA)
REFERENCES
CONSTRAINT
IVAS (ID_IVA)
FK_PROD;
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D. D. L.
Clave Foránea
• ALTER TABLE
Atributo (lista
–
En la tabla PRODUCTOS se hace
de atributos)
la
referencia a ID_IVA
que dedebe
tabla
que es IVAs.
clave
existir (el valor) en
la tabla
en otra tabla.
ALTER TABLE PRODUCTOS
ADD
CONSTRAINT FOREIGN KEY
(ID_IVA)
REFERENCES IVA (ID_IVA)
CONSTRAINT FK_PROD;
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D. D. L.
Clave Foránea
• ALTER TABLE
– En la tabla PRODUCTO se hace
referencia a ID_IVA que debe
existir (el valor) en la tabla IVAs.
Indicar en que ADD
tabla
ALTER TABLE PRODUCTOS
nombre
del o los
CONSTRAINT FyOel
REIG
N KEY
atributos en esa tabla.
(ID_IVA)
REFERENCES IVA (ID_IVA)
CONSTRAINT FK_PROD;
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D. D. L.
Clave Foránea
• ALTER TABLE
– En la tabla PRODUCTO 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.
REFERENCES
IVA (ID_IVA)
CONSTRAINT FK_PROD;
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D. D. L.
Clave Foránea
•ALTER TABLE
• También en la tablas CAJERA y
CLIENTE se hacen referencia
a un mismo atributo (CI) de la
tabla PERSONA como, CI_CAJ
y CI_CLI, ambos deben existir
(los valores) en la tabla
PERSONA.
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D. D. L.
Clave Foránea
• ALTER TABLE
ALTER TABLE CAJERA ADD
CONSTRAINT FOREIGN KEY (CI_CAJ)
REFERENCES PERSONA (CI)
CONSTRAINT FK_CI_CAJ;
ALTER TABLE CLIENTE ADD
CONSTRAINT FOREIGN KEY (CI_CLI)
REFERENCES PERSONA (CI)
CONSTRAINT FK_CI_CLI;
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D. D. L.
Clave Foránea
•ALTER TABLE
• También
en
la
relaciones
FACTURA y COMPRA 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 / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D. D. L.
Clave Foránea
• ALTER TABLE
ALTER TABLE FACTURA ADD CONSTRAINT
FOREIGN KEY (CI_CAJ)
REFERENCES CAJERA (CI_CAJ)
CONSTRAINT FK_CI_CAJ_FACT;
ALTER TABLE FACTURA ADD CONSTRAINT
FOREIGN KEY (ID_PROD)
REFERENCES PRODUCTO (ID_PROD)
CONSTRAINT FK_ID_PROD_FACT;
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D. D. L.
Clave Foránea
•ALTER TABLE
ALTER TABLE COMPRA ADD
CONSTRAINT FOREIGN KEY (CI_CLI)
REFERENCES CLIENTE (CI_CLI)
CONSTRAINT FK_CI_CLI_COMP;
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D. D. L.
Clave Foránea
•ALTER TABLE
ALTER TABLE COMPRA
ADD
CONSTRAINT FOREIGN KEY
(CI_CAJ, ID_PROD, FECHA)
REFERENCES FACTURA
(CI_CAJ, ID_PROD, FECHA)
CONSTRAINT FK_FACT_COMP;
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D. D. L.
Clave Única
• ALTER TABLE
– En la tabla CLIENTE el atributo
NÚMERO es único.
– UNIQUE KEY
• Controla que un atributo (o la
combinación de atributos) tenga un
único valor (CLAVE CANDIADATA).
CANDIADATA
ALTER TABLE CLIENTE
ADD
CONSTRAINT UNIQUE (NUMERO)
CONSTRAINT UK_CLI;
UK_CLI
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D. D. L.
Eliminar un Atributo
• ALTER TABLE
– ELIMINAR: DROP
• Agregamos un nuevo atributo
– edad
ALTER TABLE PERSONA
ADD EDAD INTEGER;
• No era necesario...
ALTER TABLE PERSONA
DROP EDAD;
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
DROP
TABLE
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo 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 / ISBO – EMT – CETP – 2015 – Leonardo 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
PRODUCTO CASCADE
CONSTRAINTS;
DROP TABLE
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D. D. L.
Activar – Desactivar Constraints
• Para habilitar Constraints:
SET CONSTRAINTS FK_PROD
ENABLED;
• Para deshabilitar Constraints:
SET CONSTRAINTS
DISABLED;
FK_PROD
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D. D. L.
Renombrar
• Renombrar:
RENAME
– Para cambiar el nombre de un
atributo:
RENAME COLUMN
TABLA ATRIB TO
NOM_NUEVO
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D. D. L.
Renombrar
• Renombrar:
RENAME
– Para cambiar el nombre de una
tabla:
RENAME TABLE
nombre_tabla_vieja
TO nombre_tabla_nueva;
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
D. D. L.
Renombrar
• Renombrar:
RENAME
– Para cambiar el nombre de una
base de datos:
RENAME DATABASE BD TO BD_NUEVA
• La base de datos no puede ser la
acutal (seleccionada).
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
CASO DE
ESTUDIO
CREATE TABLE
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
CREATE PERSONA
CREATE TABLE PERSONA (
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 / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
CREATE PER_TEL
CREATE TABLE PER_TEL(
CI
INTEGER
NOT NULL,
TELEFONO
CHAR(9)
NOT NULL,
FOREIGN KEY (CI) REFERENCES PERSONA (CI)
CONSTRAINT FK_CI,
PRIMARY KEY (CI,TELEFONO) CONSTRAINT
PK_PER_TEL);
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
CREATE CLIENTE
CREATE TABLE CLIENTE(
CI_CLI
INTEGER
NOT NULL,
NUMERO
INTEGER
NOT NULL,
UNIQUE (NUMERO) CONSTRAINT UK_CLI,
FOREIGN KEY (CI_CLI) REFERENCES PERSONA (CI)
CONSTRAINT FK_CI_CLI,
PRIMARY KEY(CI_CLI) CONSTRAINT PK_CLIENTES);
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
CREATE CAJERA
CREATE TABLE CAJERA(
CI_CAJ
INTEGER
NOT NULL,
QUEBRANTO
INTEGER CHECK (QUEBRANTO
BETWEEN 100 AND 9000 ),
FOREIGN KEY (CI_CAJ) REFERENCES PERSONA
(CI) CONSTRAINT FK_CI_CAJ,
PRIMARY KEY (CI_CAJ) CONSTRAINT PK_CAJERAS);
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
CREATE IVA
CREATE TABLE IVA(
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 / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
CREATE PRODUCTO
CREATE TABLE PRODUCTO(
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 IVA (ID_IVA)
CONSTRAINT FK_PROD,
PRIMARY KEY (ID_PROD) CONSTRAINT
PK_PRODUCTOS);
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
CREATE FACTURAN
CREATE TABLE FACTURA(
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 CAJERA (CI_CAJ)
CONSTRAINT FK_CI_CAJ_FACT,
FOREIGN KEY (ID_PROD) REFERENCES PRODUCTO
(ID_PROD) CONSTRAINT FK_ID_PROD,
PRIMARY KEY (CI_CAJ, ID_PROD, FECHA) CONSTRAINT
PK_FACTURAN);
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
CREATE COMPRAN
CREATE TABLE COMPRA(
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
FACTURA (CI_CAJ, ID_PROD, FECHA) CONSTRAINT
FK_FACT_COMP,
FOREIGN KEY (CI_CLI) REFERENCES CLIENTE (CI_CLI)
CONSTRAINT FK_CI_CLI_COMP,
PRIMARY KEY (CI_CAJ, ID_PROD, FECHA) CONSTRAINT
PK_COMPRAN);
Sistemas de Bases de Datos II – ITS / ISBO – EMT – CETP – 2015 – Leonardo Carámbula
Descargar