Sei sulla pagina 1di 25

MODELO DE DATOS RELACIONAL SEGUNDA PARTE

Base de Datos Gloria Toro Oate

CREACIN Y MODIFICACIN DE BDS


En

SQL una relacin es una Tabla El Lenguaje de Definicin de Datos es el subconjunto de SQL que permite:

Crear, Eliminar y Modificar tablas

LDD
CREATE

TABLE INSERT INTO TABLE DELETE FROM TABLE UPDATE TABLE DROP TABLE ALTER TABLE

CREATE
La

siguiente instruccin crea la relacin ALUMNOS:


CREATE TABLE ALUMNOS (
ID integer, NOMBRE char(20), EDAD integer, DIRECCION char(20));

INSERT
La

siguiente instruccin inserta una tupla en la relacin ALUMNOS:


INSERT
INTO ALUMNOS(ID, NOMBRE, EDAD, DIRECCION) VALUES (11, Pedro, 20, Rengo 1, Concepcion);

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

siguiente instruccin elimina todas las tuplas de ALUMNOS:


DELETE FROM ALUMNOS;

La

siguiente instruccin elimina todas las tuplas con NOMBRE Pedro:


DELETE FROM ALUMNOS WHERE NOMBRE = Pedro;

UPDATE
La

siguiente instruccin actualiza la edad del alumno Pedro:


UPDATE ALUMNOS
SET EDAD= EDAD+1 WHERE NOMBRE = Pedro;

DROP
La

siguiente instruccin elimina el esquema y las tuplas de la relacin ALUMNOS


DROP TABLE ALUMNOS;

ALTER
La

siguiente instruccin agrega un atributo a la relacin ALUMNOS:


ALTER TABLE ALUMNOS ADD COLUMN APELLIDOS char(20);

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

ESPECIFICACIN DE CLAVES CON SQL


Claves candidatas con UNIQUE Claves primarias con PRIMARY KEY

CREATE TABLE ALUMNOS (

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

IDC 001 002

NOMBREC BD SIA

11
12 13

001
002 001

70
80 90

Clave Primaria Tabla ALUMNOS

ID 11 12 13

NOMBRE Pedro Mara Antonio

EDAD 20 22 21

DIRECCION Rengo 1, Concepcin Prat 42, Concepcin Prat 33, Concepcin

ESPECIFICACIN DE CLAVES FORNEAS


CREATE TABLE CURSAN( ID integer, IDC integer, NOTA integer, PRIMARY KEY (ID, IDC), FOREIGN KEY (ID) REFERENCES ALUMNOS, FOREIGN KEY (IDC) REFERENCES CURSOS);

CLAVES FORNEAS
Las

claves forneas pueden hacer referencia a la misma relacin ALUMNOS_2(ID: integer, NOMBRE: char(20),

IDCG: integer)
IDCG

hace referencia al ID de otro alumno de la relacin ALUMNOS

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!!!

OPERACIONES QUE AFECTAN LAS RI

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

OPERACIONES QUE AFECTAN LAS RI


La

operacin debe ser prohibida


ID
11 12 13 14

IDC
001 002 001 001

NOTA
70 80 90 89

OPERACIONES QUE AFECTAN LAS RI

Qu acciones deberamos tomar si se elimina una tupla en la tabla ALUMNOS?


ALUMNOS

CURSAN

ID

IDC

NOTA

11
12 13

001
002 001

70
80 90

ID 11 12 13

NOMBRE EDAD Pedro Mara Antonio 20 22 21

DIRECCION Rengo 1, Concepcin Prat 42, Concepcin Prat 33, Concepcin

OPERACIONES QUE AFECTAN LAS RI


1.

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

OPERACIONES QUE AFECTAN LAS RI


3.

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

Problemas de esta solucin?

OPERACIONES QUE AFECTAN LAS RI


4.

Asignar a la columna ID el valor NULL


CURSAN

ID 11

IDC 001

NOTA 70

12
NULL

002
001

80
90

Problemas de esta solucin?

OPERACIONES QUE AFECTAN LAS RI

Las acciones nombradas anteriormente tambin se aplican cuando la clave primaria de una relacin se modifica a travs de UPDATE

SATISFACCIN DE RI CON SQL


SQL

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

SATISFACCIN DE RI CON SQL


1.

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

NOMBRE EDAD Pedro Mara 20 22

DIRECCION Rengo 1, Concepcin Prat 42, Concepcin

13
ID 11

Antonio
IDC 001

21
NOTA 70

Prat 33, Concepcin

CURSAN

12
13

002
001

80
90

SATISFACCIN DE RI CON SQL


3.

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.

ON DELETE SET NULL

Potrebbero piacerti anche