Title: D.D.L. (Lenguaje de Definici
1D.D.L. (Lenguaje de Definición Datos)
2D.D.L. - Definición de Estructuras
- D. D. L.
- Data
- Definition
- Language.
3D.D.L. - Definición de Estructuras
- D. D. L.
- Data - Lenguaje
- Definition - de Definición
- Language - de Datos
4D.D.L. - Definición de Estructuras
- D. D. L.
- Permite crear, modificar y eliminar las
estructuras de los datos (Metadata). - Permite definir como será la B.D.
5D.D.L. - Definición de Estructuras
- D. D. L.
- Estructuras
- 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)
6D.D.L. - Definición de Estructuras
- Los comandos para definir datos son
- CREATE, crear.
- ALTER, modificar o alterar.
- DROP, eliminar o descartar.
7CREATE DATABASE
8D.D.L. - Definición de Estructuras
- CREATE DATABASE
- Crea una nueva Base de Datos.
- En informix existen varios espacios para
almacenar las B.D. - Hay que especificar en cual, sino se crea en el
espacio del root (rootdbs), de capacidad muy
limitada.
9D.D.L. - Definición de Estructuras
- CREATE DATABASE
- Crear una nueva Base de Datos.
- CREATE DATABASE nombre_BD
- IN nombre_espacio
- Ejemplo
- CREATE DATABASE BD_2INX_ape
- IN datosdbs
10D.D.L. - Definición de Estructuras
- 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 (exepto root de informix) pude
utilizar la BD, hasta que se asignen permisos.
11CREATE TABLE
12D.D.L. - Definición de Estructuras
- CREATE TABLE
- Crea una nueva relación o entidad.
- Para cada atributo se puede especificar
- Nombre
- Tipo de dato
- Dominio
- Restricciones
13D.D.L. - Definición de Estructuras
- CREATE TABLE
- Tipos de restricciones
- de clave
- de integridad de tablas
- de integridad referencial
14D.D.L. - Definición de Estructuras
- CREATE TABLE
- Ejemplo
- CREATE TABLE NOM_TABLA(
- ATRIB1 TIPO_DATO,
- ATRIB2 TIPO_DATO,
- ATRIB3 TIPO_DATO,
- .....)
15D.D.L. - Definición de Estructuras
- Tipos de Datos
- El gestor de base de datos soporta las siguientes
categorias de tipos de datos - tipos de datos de caracteres
- tipos de datos de números
- tipos de datos de tiempo
- tipos de datos para objetos grandes
16D.D.L. - Definición de Estructuras
- Tipos de datos de caracteres
- char (largo)
- nchar (largo)
- solo mayúsculas
- largo entre 1 y 32767
- varchar (máximo, reserva)
- nvarchar (máximo, reserva)
- solo mayúsculas
- máximo entre 1 y 255. Tamaño máximo de la cadena
- reserva entre 0 y 255. Tamaño reservado para la
cadena
17D.D.L. - Definición de Estructuras
- Tipos de datos numéricos
- Tipo de Datos Númericos 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
18D.D.L. - Definición de Estructuras
- Tipos de datos numéricos
- Tipo de Datos Númericos Exactos
- decimal (p,s)
- p cantidad de digitos
- s cantidad de decimales
- money(p,s)
- símbolo monetario
19D.D.L. - Definición de Estructuras
- Tipos de datos numéricos
- Tipo de Datos Númericos Aproximados
- decimal(p)
- p precisión del número real, un integer positivo
- float(p)
- p de 1 a 32 digitos significantes, 16 por
defecto - smallfloat
- 8 digitos significantes
20D.D.L. - Definición de Estructuras
- Tipos de datos de tiempo
- date
- fecha
- formato (mm/dd/yy)
21D.D.L. - Definición de Estructuras
- Tipos de datos de tiempo
- datetime
- fecha y hora
- formato (mm/dd/yy hhmmss.fff)
- datetime Year To Year (1 a 9999)
- Month To Month (1 a 12)
- Day To Day (1 a 31,30 o29)
- 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 milesima de segundo
22D.D.L. - Definición de Estructuras
- Tipos de datos de tiempo
- interval
- almacena una unidad de tiempo
- interval Year(p) To Year (1 a 9999)
- Month(p) To Month (1 a 12)
- Day(p) To Day (1 a 31,30 o29)
- Hour(p) To Hour (0 a 23) Minute(p) To Minute (0
a 59) Second(p) To Second (0 a
59) Fraction(p) To Fraction (1-5) - p cantidad máxima de dígitos para almacenar
años, meses, dias... máximo 9
23D.D.L. - Definición de Estructuras
- Tipos de datos de objetos grandes
- text
- almacena caracteres hasta 2 31 bytes
- byte
- almacena hasta 231 bytes
24D.D.L. - Definición de Estructuras
- Caso de Estudio
- En un supermercado las cajeras realizan la
facturación de los productos a los clientes. - Los productos pertenecen a disitintos tipos
(Alimentos, Carnes, etc.) y tienen distintos de
I.V.A. (básico, mínimo, eximidos)
25D.D.L. Caso de Estudio
Teléfonos
dirección
Cajeras
Nombre
eMail
CI-Caj
26D.D.L. Caso de Estudio
calle
Teléfonos
número
dirección
esquina
Cajeras
Nombre
nombre
eMail
apellido
CI-Caj
27D.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 MER
CI-Cli
Clientes
número
Teléfonos
dirección
eMail
Nombre
calle
Teléfonos
número
dirección
esquina
Cajeras
Nombre
nombre
eMail
apellido
CI-Caj
28D.D.L. Caso de Estudio
CI-Cli
Clientes
número
Teléfonos
dirección
eMail
Nombre
Teléfonos
dirección
Cajeras
Productos
Nombre
eMail
CI-Caj
ID-Prod
IVA
Descripción
Tipo-Producto
Precio
29D.D.L. Caso de Estudio
CI-Cli
Mismos Atributos Generalizamos
Clientes
número
Teléfonos
dirección
eMail
Nombre
Teléfonos
dirección
Cajeras
Productos
Nombre
eMail
CI-Caj
ID-Prod
IVA
Descripción
Tipo-Producto
Precio
30D.D.L. Caso de Estudio
Teléfonos
Personas
dirección
eMail
CI-Cli
Nombre
CI
Clientes
número
Son
Teléfonos
dirección
eMail
Nombre
Teléfonos
dirección
Cajeras
Productos
Nombre
eMail
CI-Caj
ID-Prod
IVA
Descripción
Tipo-Producto
Precio
31D.D.L. Caso de Estudio
Teléfonos
Personas
dirección
eMail
CI-Cli
Nombre
CI
Clientes
número
Son
IVAs
ID-IVA
Porcentaje
Cajeras
Productos
CI-Caj
ID-Prod
IVA
Descripción
Tipo-Producto
Precio
32D.D.L. Caso de Estudio
Teléfonos
Personas
dirección
eMail
CI-Cli
Nombre
CI
Clientes
número
Son
IVAs
T
ID-IVA
Porcentaje
Cajeras
Productos
CI-Caj
ID-Prod
Descripción
Tipo-Producto
Precio
33D.D.L. Caso de Estudio
Teléfonos
Personas
dirección
eMail
CI-Cli
Nombre
CI
Clientes
número
Son
IVAs
1
T
ID-IVA
Todos los productos tienen un IVA asociado.
Porcentaje
N
Cajeras
Productos
CI-Caj
ID-Prod
Descripción
Tipo-Producto
Precio
34D.D.L. Caso de Estudio
Teléfonos
Personas
dirección
eMail
CI-Cli
Nombre
CI
Clientes
número
Son
IVAs
1
T
ID-IVA
Porcentaje
N
N
N
Cajeras
Facturan
Productos
CI-Caj
ID-Prod
Cantidad
Hora
Fecha
Descripción
Precio
Tipo-Producto
35D.D.L. Caso de Estudio
Teléfonos
Personas
dirección
eMail
CI-Cli
Nombre
CI
Clientes
número
Son
1
IVAs
1
T
Compran
ID-IVA
Porcentaje
N
N
N
N
Cajeras
Facturan
Productos
CI-Caj
ID-Prod
Cantidad
Hora
Fecha
Descripción
Precio
Tipo-Producto
36D.D.L. Caso de Estudio
- Esquema Relacional
- Pasaje a Tablas
- Personas (CI, nombre, apellido, calle, número,
esquina, email, teléfonos) - Cajeras (CI-Caj)
- Clientes (CI-Cli, número)
- Productos (ID-Prod, descripcion, precio, tipo)
- IVAs (ID-IVA, porcentaje)
37D.D.L. Caso de Estudio
- Esquema Relacional
- Pasaje a Tablas
- Personas (CI, nombre, apellido, calle, número,
esquina, email, teléfonos) - Cajeras (CI-Caj)
- Clientes (CI-Cli, número)
- Productos (ID-Prod, descripcion, precio, tipo)
- IVAs (ID-IVA, porcentaje)
Per-Tel(CI, teléfono)
38D.D.L. Caso de Estudio
- Esquema Relacional
- Pasaje a Tablas
- Personas (CI, nombre, apellido, calle, número,
esquina, email, teléfonos) - Cajeras (CI-Caj)
- Clientes (CI-Cli, número)
- Productos (ID-Prod, descripcion, precio, tipo)
- IVAs (ID-IVA, porcentaje)
Per-Tel(CI, teléfono)
39D.D.L. Caso de Estudio
- Esquema Relacional
- Pasaje a Tablas
- Personas (CI, nombre, apellido, calle, número,
esquina, email) - Cajeras (CI-Caj)
- Clientes (CI-Cli, número)
- Productos (ID-Prod, descripcion, precio, tipo)
- IVAs (ID-IVA, porcentaje)
Per-Tel(CI, teléfono)
40D.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)
41D.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
42D.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
43D.D.L. Caso de Estudio
- Esquema Relacional
- Pasaje a Tablas
- Productos (ID-Prod, descripcion, precio, ID-IVA)
- Tienen (ID-Prod, ID-IVA)
N a 1 con totalidad
44D.D.L. Caso de Estudio
- CREATE TABLE
- CREATE TABLE PERSONAS (
- CI INTEGER NOT NULL,
- NOMBRE VARCHAR(20) NOT NULL,
- APELLIDO VARCHAR(20) NOT NULL,
- CALLE VARCHAR(20),
- NUMERO INTEGER,
- ESQUINA VARCHAR(20),
- EMAIL VARCHAR(30),
- PRIMARY KEY(CI) )
45D.D.L. - Caso de Estudio
- CREATE TABLE
- CREATE TABLE CLIENTES(
- CI_CLI INTEGER NOT NULL,
- NUMERO INTEGER NOT NULL,
- PRIMARY KEY(CI_CLI) )
46D.D.L. - Caso de Estudio
- CREATE TABLE
- CREATE TABLE CAJERAS(
- CI_CAJ INTEGER NOT NULL,
- PRIMARY KEY (CI_CAJ) )
47D.D.L. - Caso de Estudio
- CREATE TABLE
- CREATE TABLE PRODUCTOS(
- ID_PROD INTEGER NOT NULL,
- DESCRIPCION VARCHAR(20) NOT NULL,
- PRECIO DECIMAL(7,2) NOT NULL,
- ID_IVA INTEGER,
- TIPO VARCHAR(17),
- PRIMARY KEY (ID_PROD) )
48D.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) )
49D.D.L. - Caso de Estudio
- CREATE TABLE
- CREATE TABLE PER_TEL(
- CI INTEGER NOT NULL,
- TELEFONO CHAR(9) NOT NULL,
-
- PRIMARY KEY (CI,TELEFONO))
50D.D.L. - Caso de Estudio
- CREATE TABLE
- CREATE TABLE FACTURAN(
- CI_CAJ INTEGER NOT NULL,
- ID_PROD INTEGER NOT NULL,
- FECHA DATETIME YEAR TO MINUTES NOT NULL,
- CANTIDAD DECIMAL (6,3) NOT NULL
-
- PRIMARY KEY (CI_CAJ, ID_PROD, FECHA))
51D.D.L. - Caso de Estudio
- CREATE TABLE
- CREATE TABLE COMPRAN(
- CI_CAJ INTEGER NOT NULL,
- ID_PROD INTEGER NOT NULL,
- FECHA DATETIME YEAR TO MINUTES NOT NULL,
- CI_CLI INTEGER NOT NULL
-
- PRIMARY KEY (CI_CAJ, ID_PROD, FECHA))
52ALTER TABLE
53D.D.L. - Definición de Estructuras
- ALTER TABLE
- La definición de una tabla se puede modificar
mediante la opción ALTER TABLE (alterar o
modificar tabla).
54D.D.L. - Definición de Estructuras
- ALTER TABLE
- Las acciones posibles para modifcar 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.
55D.D.L. - Definición de Estructuras
- 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
56D.D.L. - Definición de Estructuras
- ALTER TABLE
- MODIFICAR MODIFY
- Por ejemplo, si queremos MODIFICAR la entidadad
PERSONAS el TAMAÑO del atributo APELLIDO, podemos
usar la orden - ALTER TABLE PERSONAS MODIFY APELLIDO VARCHAR(15)
57D.D.L. - Definición de Estructuras
- 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.
58D.D.L. - Definición de Estructuras
- 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)
59D.D.L. - Definición de Estructuras
- ALTER TABLE
- MODIFICAR MODIFY
- Poner un valor por defecto, cuando no se asigna
uno - ALTER TABLE PRODUCTOS MODIFY
- (TIPO VARCHAR(17) DEFAULT Alimentos)
60D.D.L. - Definición de Estructuras
- ALTER TABLE
- MODIFICAR MODIFY
- También se pueden agregar a la hora de crear la
tabla - CREATE TABLE PRODUCTOS(
- .....
- TIPO VARCHAR(17) DEFAULT Alimentos,
- ....)
61D.D.L. - Definición de Estructuras
- 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
62D.D.L. - Definición de Estructuras
- ALTER TABLE
- MODIFICAR MODIFY
- ALTER TABLE PRODUCTO MODIFY TIPO CHAR(20) CHECK
(TIPO IN (Alimentos, Carnes, Quesos y
Fiambres, Lacteos, Limpieza, Kiosco,
Bebidas, Bebidas Alcoholicas ))
63D.D.L. - Definición de Estructuras
- 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))
64CONSTRAINTS
65D.D.L. - Definición de Estructuras
- 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 através de CONSTRAINTS que
atributo(s) pertenecen a cada uno.
66D.D.L. - Definición de Estructuras
- 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).
67D.D.L. - Definición de Estructuras
- 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
68D.D.L. - Definición de Estructuras
- 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
Atributo (lista de atributos) de la tabla que es
clave en otra tabla.
69D.D.L. - Definición de Estructuras
- 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
Indicar en que tabla y el nombre del o
los atributos en esa tabla.
70D.D.L. - Definición de Estructuras
- 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
Indicar un nombre para este CONSTRIANT. Opcional.
71D.D.L. - Definición de Estructuras
- 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.
72D.D.L. - Definición de Estructuras
- 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)
73D.D.L. - Definición de Estructuras
- ALTER TABLE
- También en la relaciones FACTURAN y COMPRAN se
hacen referencia a las claves de las entidades
que estan vinculadas. - Se debe agregar una constraint para cada entidad
vinculada en la relación.
74D.D.L. - Definición de Estructuras
- 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)
75D.D.L. - Definición de Estructuras
- ALTER TABLE
- ALTER TABLE COMPRAN ADD CONSTRAINT (FOREIGN KEY
(CI_CLI) - REFERENCES CLIENTES (CI_CLI)
- CONSTRAINT FK_CI_CLI_COMP)
- ALTER TABLE COMPRAN ADD CONSTRAINT (FOREIGN KEY
(CI_CAJ, ID_PROD, FECHA) - REFERENCES FACTURAN (CI_CAJ, ID_PROD, FECHA)
- CONSTRAINT FK_FACT_COMP)
76D.D.L. - Definición de Estructuras
- 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 CLIENTES ADD
- CONSTRAINT UNIQUE (NUMERO)
- CONSTRAINT UK_CLI
77D.D.L. - Definición de Estructuras
- ALTER TABLE
- ELIMINAR DROP
- Agregamos un nuevo atributo
- edad
- ALTER TABLE PERSONAS
- ADD EDAD INTEGER
- No era necesario...
- ALTER TABLE PERSONAS
- DROP EDAD
78DROP TABLE
79D.D.L. - Definición de Estructuras
- DROP TABLE
- Si ya no se necesita una relación base, podemos
eliminarla junto con su definición con la orden - DROP TABLE
- DROP TABLE nombre_tabla
80D.D.L. - Definición de Estructuras
- 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
81D.D.L. - Definición de Estructuras
- Para habilitar Constraints
- ALTER TABLE PRODUCTOS ENABLE CONSTRAINT FK_PROD
- Para deshabilitar Constraints
- ALTER TABLE PRODUCTOS DISABLE CONSTRAINT FK_PROD
82D.D.L. - Definición de Estructuras
- 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
83CASO DE ESTUDIOCREATE TABLE
84- CREATE TABLE PERSONAS (
- CI INTEGER NOT NULL,
- NOMBRE VARCHAR(20) NOT NULL,
- APELLIDO VARCHAR(15) NOT NULL,
- CALLE VARCHAR(20),
- NUMERO INTEGER,
- ESQUINA VARCHAR(20),
- EMAIL VARCHAR(30),
- FECHA_NAC DATE NOT NULL,
- PRIMARY KEY(CI))
85- 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))
86- 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))
87- 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))
88- CREATE TABLE IVAS(
- ID_IVA INTEGER NOT NULL,
- PORCENTAJE DECIMAL(4,4) NOT NULL,
- PRIMARY KEY (ID_IVA))
- 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))
89- CREATE TABLE FACTURAN(
- CI_CAJ INTEGER NOT NULL,
- ID_PROD INTEGER NOT NULL,
- FECHA DATETIME YEAR TO MINUTES 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))
90- CREATE TABLE COMPRAN(
- CI_CAJ INTEGER NOT NULL,
- ID_PROD INTEGER NOT NULL,
- FECHA DATETIME YEAR TO MINUTES NOT NULL,
- CI_CLI INTEGER NOT NULL
- FOREIGN KEY (CI_CAJ, ID_PROD, FECHA) REFERENCES
CAJERAS (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))