Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
SQL una relacin es una Tabla El Lenguaje de Definicin de Datos es el subconjunto de SQL que permite:
LDD
CREATE
TABLE INSERT INTO TABLE DELETE FROM TABLE UPDATE TABLE DROP TABLE ALTER TABLE
CREATE
La
INSERT
La
Indicar el nombre de los atributos es opcional Si se omiten, los valores ingresados deben ser del tipo de datos para el atributo en la posicin correspondiente
DELETE
La
La
UPDATE
La
DROP
La
ALTER
La
Esta columna tendr el valor NULL NULL en SQL significa que el valor es desconocido o no aplicable Para modificar el valor del atributo se debe usar el comando UPDATE TABLE
ID integer, NOMBRE char(20), EDAD integer, DIRECCION char(20), UNIQUE (NOMBRE, DIRECCION), PRIMARY KEY (ID));
CLAVES FORNEAS
Claves Forneas en Tabla CURSAN Clave Primaria Tabla CURSOS
ID
IDC
NOTA
NOMBREC BD SIA
11
12 13
001
002 001
70
80 90
ID 11 12 13
EDAD 20 22 21
CLAVES FORNEAS
Las
claves forneas pueden hacer referencia a la misma relacin ALUMNOS_2(ID: integer, NOMBRE: char(20),
IDCG: integer)
IDCG
CLAVES FORNEAS
ALUMNOS_2
ID 11 12 13 NOMBRE Pedro Mara Antonio IDCG 13 NULL 11
Cada Alumno tiene un compaero de grupo. Si un Alumno no tiene, el campo IDCG debera tomar el valor NULL Sin embargo, un atributo que es parte de una clave primaria no debera tomar el valor NULL!!!
Qu acciones deberamos tomar si se inserta una tupla en CURSAN con un ID que no existe en la tabla ALUMNOS?
CURSAN ID IDC
NOTA
11
12 13
001
002 001
70
80 90
14
001
89
IDC
001 002 001 001
NOTA
70 80 90 89
CURSAN
ID
IDC
NOTA
11
12 13
001
002 001
70
80 90
ID 11 12 13
Eliminar todas las tuplas en la tabla CURSAN que hacen referencia al ID eliminadoID IDC NOTA
11 001 70
12 13
2.
002 001
80 90
No permitir la eliminacin de la tupla en ALUMNOS si existen tuplas en CURSAN que hacen referencia a ella
Asignar a la columna ID el valor de otro ID por defecto, por cada fila afectada
CURSAN
ID
IDC
NOTA
11
12 12
001
002 001
70
80 90
ID 11
IDC 001
NOTA 70
12
NULL
002
001
80
90
Las acciones nombradas anteriormente tambin se aplican cuando la clave primaria de una relacin se modifica a travs de UPDATE
nos da cuatro opciones para las operaciones DELETE y UPDATE Ejemplo (lo mismo para el atributo IDC):
CREATE TABLE CURSAN( ID integer, IDC integer, NOTA integer, PRIMARY KEY (ID, IDC), FOREIGN KEY (ID) REFERENCES ALUMNOS, ON DELETE CASCADE, ON UPDATE NO ACTION);
NO ACTION: tanto DELETE como UPDATE se prohben si hay tuplas afectadas (es la opcin por defecto)
Se permite una modificacin de ID en ALUMNOS slo si no existen tuplas en CURSAN que hagan referencia al ID
2.
CASCADE: si se elimina (modifica) una tupla en ALUMNOS se eliminan (modifican) todas las tuplas en CURSAN que hagan referencia al alumno eliminado (modificad)
ELIMINACIN EN CASCADA
ALUMNOS
ID 11 12
13
ID 11
Antonio
IDC 001
21
NOTA 70
CURSAN
12
13
002
001
80
90
ON DELETE SET DEFAULT: al eliminarse una tupla en ALUMNOS se asigna el ID del alumno por defecto a las tuplas afectadas en CURSAN
El valor por defecto se especifica cuando se crea la tabla ALUMNOS CREATE TABLE ALUMNOS
ID integer DEFAULT 4545
4.