Está en la página 1de 13

LENGUAJE DE DEFINICIÓN DE

DATOS
Bases de Datos

21 DE ABRIL DE 2022
DANIELA GONZÁLEZ CRESPO
Universidad Internacional de la Rioja
Indicaciones para la realización de la actividad
Se nos piden realizar las siguientes operaciones basándonos en el ejemplo de una
entidad bancaria trabajado en clase:

• Implementar el esquema que incluimos a continuación, inspirado en el


problema bancario que estamos trabajando en clase.
• Investigar (e implementar) las restricciones que se indican.
• Insertar algunas filas que cumplan las restricciones y otras que no las cumplan,
mostrando el resultado con capturas de pantalla.
• Borrar el contenido de las tablas.
• Crear un duplicado de la tabla sucursales.
• Borrar ese duplicado.

Esquema para implementar:

sucursal(idSuc, nombre, cp)

cliente(idCli, nombreCli, direccionCli, CP, tlfCli, tipo)

empleado(idEmp, nombreEmp, idSuc)

cuenta(idCuenta, idSuc, saldo)

préstamo(idPres, idSuc, importe)

impositor(idCli, idCuenta)

prestatario(idCli, idPres)

codigoPostal(cp, poblacion, provincia)

Restricciones:

• Ningún campo puede quedar vacío.


• Se deben definir claves externas para los valores que hacen referencia a otras
tablas.
• El importe del préstamo tiene que ser siempre positivo.
• El saldo de las cuentas puede ser positivo o negativo.
• El tipo de cliente solo puede tomar dos valores: «VIP» o «TRA».
Creación de la base de datos
Primeramente, se crea la base de datos y se le asigna un nombre como se muestra a
continuación:

Para indicarle al programa la base de datos sobre la que deseamos trabajar utilizamos
USE:

Creación de tablas
Para la creación de las tablas utilizamos el comando CREATE TABLE, añadimos los
campos de las tablas, las claves primarias, las claves foráneas y las restricciones.

El ejemplo anterior pertenece a la tabla código postal y es la primera tabla que se ha


creado. Una de las restricciones del esquema es que ningún campo puede quedar
vacío, por tanto, se añade el NOT NULL a cada campo. Cómo se puede observar cada
campo tiene un nombre y un tipo de dato; cp se define como clave primaria.
En la tabla cliente se especifican otras restricciones: auto_increment se utiliza en el
campo idCliente, que nos indica que es un campo que se autoincrementa con cada
registro de un cliente nuevo. Tenemos la instrucción CHECK para comprobar que el
cliente registrado es de tipo VIP o TRA. Por último, tenemos la clave foránea CP, que
hace referencia a la clave primaria de la tabla código postal y en la tabla actual es el
código postal al que pertenece la dirección del cliente.

El código del resto de las tablas se puede encontrar en el archivo entidad_bancaria.sql


incluido en el envío de la actividad.

El resto de las restricciones se comprobarán más adelante.

Consultas sobre la base de datos


Inserción en la tabla código postal
Empezaremos añadiendo datos a la tabla código postal, ya que varias tablas contienen
una clave foránea que referencia a esta tabla y de no crearla primero nos daría un
error:

La operación se realizó correctamente:

La tabla con los datos quedaría de la siguiente forma:

Utilizamos el comando INSERT INTO, especificando los campos que queremos llenar y
los valores que queremos añadirles.

Ahora veremos un ejemplo de una inserción fallida:


La operación ha fallado porque los campos especificados no pueden estar vacíos,
comprobando que se cumple la primera de las restricciones.

Inserción en la tabla clientes

Los dos primeros registros se añaden correctamente, el tercer registro no se añade ya


que no cumple la restricción de que el cliente debe ser tipo VIP o TRA.

Como en la tabla anterior ningún campo puede quedar vacío, por lo tanto, la inserción
anterior no puede completarse:
Inserción en la tabla sucursal

La inserción se realizó con éxito:

Inserción no válida (campos vacíos):

Inserción en la tabla empleado

La inserción se realizó con éxito:


Inserción no válida:
Veremos ejemplo de dos tipos de inserción no válida: la primera por campos vacíos y la
segunda porque el idSuc no coincide con ningún id de sucursal existente. Al existir una
clave foránea hay que tener en cuenta que esta clave exista en su tabla original.

Errores de campo vacío:

Error de clave foránea:

Inserción en la tabla cuenta

La inserción se realizó con éxito:


En la operación anterior se insertó un valor negativo satisfactoriamente, lo cual
confirma que se cumple la restricción que el saldo de las cuentas puede ser positivo o
negativo.

Inserción no válida:
Se cumplen los mismo dos ejemplos de la tabla anterior.

Error de campo vacío:

Error de clave foránea:

Inserción en la tabla impositor

La inserción se realizó con éxito:


Ambos campos de esta tabla son claves foráneas que relacionan un cliente con su
cuenta bancaria, después de la inserción quedaría la tabla de esta forma:

Esta tabla se puede traducir de la siguiente forma:

Cliente Cuenta Saldo Sucursal


Alejandro 1 4500 Sede Esmeraldas
Daniela 2 8320 Sede Quito

Inserción no válida:
Igual que en tablas anteriores.

Error de campos vacíos:

Error de claves foráneas:


Inserción en la tabla préstamo

La inserción se realizó con éxito:

Inserción no válida:
En este caso veremos tres errores diferentes: los dos primeros serán los mismos que
los de las tablas anteriores y el tercer error será al introducir un importe que sea
negativo, ya que se cumpliría la restricción de que el valor del importe solo puede ser
positivo:

Error de campos vacíos:

Error de clave foránea:


Error al insertar un importe con valor negativo:

Inserción en la tabla prestatario

La inserción se realizó con éxito:

Inserción no válida:

Error de campos vacíos:

Error de clave foránea:


Otras operaciones sobre la base de datos
Borrar contenido de las tablas
Para el borrado del contenido de las tablas usaremos la función TRUNCATE. Si se
deseara borrar la tabla en sí, usaríamos la función DROP TABLE. También se puede
utilizar la función DELETE FROM (nombre de la tabla). Ya que la mayoría de las tablas
contienen claves foráneas debemos apagar el control de claves foráneas de la
siguiente forma:

Borramos la tabla deseada y lo volvemos a encender:

La tabla cliente está totalmente vacía:

Lo mismo sucedería con las demás tablas, excepto la tabla código postal porque no
contiene ninguna clave foránea.

Crear duplicado de la tabla sucursales y borrarlo

Con esta función creamos una copia de la tabla y copiamos su contenido.


En este caso la operación se realizó con éxito:
Para borrar el duplicado utilizamos DROP table (nombre de la tabla):

Conclusiones
Se crearon todas las tablas correctamente y se cumplen todas las restricciones pedidas
en el ejercicio. No se encontraron inconvenientes en la realización de la actividad.

También podría gustarte