Está en la página 1de 8

24 marzo, 2023

Taller Llaves Primarias y Foráneas


Ingeniería en Sistemas y Computación
Cindy Marcela Jiménez Saldarriaga
Bases de Datos. IS664, 2023-1

1. Investigar cómo crear, modificar y eliminar llaves primarias:


a. Al momento de creación de las tablas:

Crear Tabla y Clave Primaria


create table nameTable(
campo1 serial,
campo2 varchar(40),
campo3 varchar(30),
primary key(campo1)
);

b. Posterior a la creación con instrucciones de constrains.


Crear Clave Primaria
- alter table NOMBRETABLA
add primary key (CAMPO);

- alter table NOMBRETABLA


add constraint NOMBRECONSTRAINT
primary key (CAMPO,...);

Eliminar Clave Primaria


- alter table libros
dro p primary key;

2. Investigar cómo crear, modificar y eliminar llaves foráneas:


a. Al Momento de creación de las tablas
CREATE TABLE name_tabla (
name_columna_1 TIPO PRIMARY KEY,
name_columna_2 TIPO);

CREATE TABLE nombre_tabla_1(


name_columna_1 TIPO,
name_llave_foranea TIPO NOT NULL,
FOREIGN KEY (name_llave_foranea)
REFERENCES name_tabla_ref (nombre_columna_ref)
);
b. Posterior a la creación con instrucciones de constrains.
Crear FK con Constraint
alter table NOMBRETABLA1
add constraint NOMBRERESTRICCION
foreign key (CAMPOCLAVEFORANEA)
references NOMBRETABLA2 (CAMPOCLAVEPRIMARIA);

Eliminar FK
ALTER TABLE nombre_tabla DROP FOREIGN KEY name_restric

Eliminar CONSTRAINT:
ALTER TABLE nombre_tabla DROP CONSTRAINT name_restric

3. Investigar que son índices, que tipos de índices y como se pueden crear,
modificar y eliminar.
Un índice es un objeto más de la base de datos. Vinculado a una tabla, está formado por una o más
columnas de la tabla y por un puntero a la fila de la tabla que representa, con la interesante
característica de que las filas dentro del índice mantienen siempre un orden especificado por algún
algoritmo. 
Cuando insertamos una fila nueva en la tabla, ésta se graba en un lugar indeterminado del espacio
libre del fichero físico, sin embargo, en el índice, el valor de la columna indexada (o columnas) se
insertarán en su lugar correspondiente según dicho algoritmo. El índice nos garantiza que se
mantendrá el orden también en operaciones de eliminación y de actualización de la columna o
columnas indexadas.

Sin índice, cualquier búsqueda en la tabla obligará al planificador de consultas a hacer un escaneo
completo secuencial de la tabla que, para tablas grandes, supone una importante inversión de
tiempo.
Ejemplos de índices:

UNIQUE

create unique index I_name_Index on nameTabla(campo,campo;

INDEX

create index I_nameIndex on nameTable(campoIndex);

Para eliminar un índice usamos "drop index". Ejemplo:

drop index I_libros_editorial;

drop index I_libros_tituloeditorial;


4. Eliminar todas las tablas de dreamhome.
5. Ejecutar de nuevo el script de creación de tablas y población de datos de
dreamhome.
6. Crear las llaves principales de todas las tablas
7. Crear las llaves foráneas para todas las tablas

De estas 5 tablas Pude sacar la llave foránea, sim embargo de las siguientes no
supe que tabla poner de referencia dado que no tiene una directamente:
8. Eliminar todas las tablas de dreamhome.

9. Modificar los scripts de creación de dreamhome para que desde el momento de


creación de las tablas tengan las PK’s y FK’s. DEBEN ENTREGAR ESTE SCRIPT
(Ready)
10. Crear un índice para las tablas de: Viewing con el campo viewdate
 Client con los campos lname y fname
11. Insertar el siguiente registro en la tabla de viewing
(CR92, PA19, ‘2006-05-14’, ‘Sin comentarios’)
Si genera error explicar el por qué y cómo corregirlo e insertar el registro
ERRORES
a. Me genera error dado que CR92 Y PA19 debe ir entre comillas simples.
b. Dado que viewing tiene como llave foraneo a clientno, e incluso como parte del
pk de la llave primaria, el cliente CR92 no existe en la tabla cliente, por lo que me
genera error

SOLUCION
Agregar a la tabla de clientes a CR92 y en propertyforRent a PA19

12. Eliminar la sucursal B005. Si genera error explicar el por qué y cómo corregirlo
y eliminar el registro.
Para yo eliminar la sucursal B005 debo de eliminar la tabla que depende de esta,
o eliminar los datos que son dependientes de la B005
Sacar sus conclusiones de forma resumida de los puntos 11 y 12.
Conclusiones:
El tener una tabla dependiente dada la integridad referencial da como resultado un
mayor proceso para la eliminación de las tablas débiles(Tabla dependientes de
otras)
Una DBA debe estar siempre muy atenta a las claves de refencia puesto que un
descuido y se podría borrar datos importantes en la base de datos

También podría gustarte