Documentos de Académico
Documentos de Profesional
Documentos de Cultura
UF2 BBDD Apuntes 2022
UF2 BBDD Apuntes 2022
* TIPOS DE CLAVES:
● Claves Candidatas: conjunto de atributos que optan a ser clave principal o primaria.
● Clave principal/primaria: El atributo debe formar parte de claves candidatas y el administrador de bd, lo ha elegido como clave primaria.
● Clave Alternativa: Claves candidatas que no son elegidas como clave primaria.
● Clave Ajenas o foráneas: Atributo/s de una relación que son clave primaria de otra relación distinta y que están relacionadas.
—-------------------SENTENCIAS DDL—------------
CREATE: * CREATE…IF NOT EXIST
CREATE DATABASE → CREAR UNA BASE DE DATOS: * IF NOT EXISTS crea la BD sólo si no existe una con el mismo nombre.
CREATE TABLE → CREAR UNA TABLA: CREATE TABLE … AS … → CREAR TABLA USANDO OTRA:
Ej: Ej:
DROP DATABASE → ELIMINAR UNA BASE DE DATOS: DROP TABLE → ELIMINAR UNA TABLA:
ALTER TABLE … ADD … | ALTER TABLE … ADD COLUMN … → AÑADIR UNA COLUMNA
Ej:
ALTER TABLE … ADD/ADD COLUMN … AFTER … → AÑADIR UNA COLUMNA DESPUÉS DE OTRA
Ej:
Ej:
Ej:
Ej:
ALTER TABLE … MODIFY COLUMN … → CAMBIAR EL TIPO DE DATO DE UNA COLUMNA (TIPO DE DATO O LONGITUD)
… RENAME COLUMN … TO … → CAMBIAR EL NOMBRE DE LA COLUMNA
… CHANGE COLUMN … … … → CAMBIAR EL NOMBRE Y EL TIPO DE DATO DE UNA COLUMNA
TRUNCATE TABLE → (ELIMINAR TODOS LOS REGISTROS DE LA BASE DE DATOS)
(* Es DDL porque internamente lo que hace es borrar la tabla y volverla a crear)
al definir el campo o columna, al final de la creación de la tabla (de una o varias pk) o creando una CONSTRAINT con su nombre
con ALTER TABLE…ADD PRIMARY KEY ( ); o ALTER TABLE…ADD CONSTRAINT (con o sin su nombre) PRIMARY KEY ( );
* FOREIGN KEY → indica que una columna o varias son clave ajena. ( al definir el campo?????)
especificando la fk al final en la creación de la tabla o al final en la creación de la tabla, creando una restricción CONSTRAINT (con o sin su propio nombre)
* UNIQUE → Indica que el valor de la columna es único, no puede haber dos valores iguales en la misma columna.
* NOT NULL→ la columna no permite almacenar valores nulos ( si no se pone nada por defecto es NULL, se pueden almacenar valores nulos).
* DEFAULT → nos permite indicar un valor inicial por defecto si no insertamos ninguno.
* AUTO_INCREMENT → columna autonumérica: su valor se incrementa automáticamente al insertar una fila (sólo en campos de tipo entero)
Ej:
Ej:
Ej: → →
* Actualizar edad a partir de la fecha de nacimiento → Ej: UPDATE jugador SET edad=TIMESTAMPDIFF (YEAR, fecha_nac, CURDATE());
DELETE: → ELIMINAR REGISTROS EN LAS TABLAS (si no se pone WHERE se eliminarán todos los datos de la tabla)
DELETE FROM … (WHERE…):
Ej: → →
Ej: →
SELECT … FROM …
Ej: →
SELECT DISTINCT … FROM … ( DISTINCT → no devuelve valores repetidos, solo valores distintos)
→ |
CONSULTA CON ORDENACIÓN (CON O SIN CONDICIÓN): .
Ej:
AVG (la media de los valores de un campo) - COUNT (cantidad de registros de una selección) - SUM (suma de los valores de un campo) - MAX (valor máx de un campo) - MIN (valor mín)
Ej:
SUBCONSULTAS: .
Ej:
INNER JOIN → selecciona registros que tienen valores coincidentes en ambas tablas.
Ej:
Ej: Si hay registros en la tabla "Orders" que no tienen coincidencias en "Customers", ¡esos orders no se mostrarán!
LEFT JOIN → devuelve todos los registros de la tabla de la izquierda (tabla1) RIGHT JOIN → devuelve todos los registros de la tabla derecha (tabla2)
y los coincidentes (si los hay) de la tabla de la derecha (tabla2). y los coincidentes (si los hay) de la tabla izquierda (tabla1).
TEMA 2:
ESTRATEGIAS PARA EL CONTROL DE LAS TRANSACCIONES Y DE LA CONCURRENCIA
(Al borrar un registro de la tabla principal…) (Al modificar un registro de la tabla principal…)
ON DELETE… ON UPDATE…
…CASCADE: se eliminan también los registros de las fk que lo …CASCADE: se modifican también los registros de las fk que lo
estuvieran referenciando. estuvieran referenciando.
…SET NULL: se le asignan valores nulos a los registros de las …SET NULL: se le asignan valores nulos a los registros de las
fk que lo estuvieran referenciando. fk que lo estuvieran referenciando.
…SET DEFAULT: se le asignan valores por defecto a los …SET DEFAULT: se le asignan valores por defecto a los
registros de las fk que lo estuvieran registros de las fk que lo estuvieran
referenciando. referenciando.
…NO ACTION: no permite la eliminación de la pk si tiene …NO ACTION: no permite la modificación la pk si tiene
alguna fk referenciándola con esta restricción. alguna fk referenciándola con esta restricción.
- Además, existen REGLAS DE INTEGRIDAD que debemos controlar si nos encontramos con violaciones de la
integridad. Estas reglas se dividen en dos principales:
• Reglas de integridad de dominios: si se le asigna un valor a un atributo sin saber la relación que este tiene con
los demás que forman la BD.
• Reglas de integridad de relaciones: cuando se admite una tupla dada para ser insertada o bien cuando se van
a relacionar varias tuplas.
→ PROPIEDADES DE LAS TRANSACCIONES
Ej:
• TÉCNICAS PESIMISTAS:
– Técnicas de bloqueo (locks):
. Bloquear los datos para que no se acceda a ellos desde diferentes transacciones (sincroniza el acceso).
. Usa lock y unlock. Estos cerrojos no garantizan la serializabilidad por sí solos, se necesita un protocolo.
. Riesgo: el bloqueo deadlock.
. Uno de los más utilizados es el protocolo de bloqueo en dos fases:
- En la primera fase (de crecimiento) se solicitan los locks.
- En la segunda (de devolución) se realizan los unlocks.
Este protocolo sí garantiza la serializabilidad, aunque no libera ningún cerrojo desde que comienza hasta que finaliza.
– Técnicas de marcas de tiempo (time-stamping):
. Las marcas de tiempo se utilizan para que exista un único identificador para cada transacción.
. Estas marcas deben ir en orden para controlar el acceso a los diferentes datos sin que se solapen.
• TÉCNICAS OPTIMISTAS:
– Técnicas de de validación o de certificación:
. Estas técnicas no llevan impuestas ninguna restricción específica ni ningún bloqueo.
Pero se va a comprobar que esta no se solapa con ninguna otra transacción que esté confirmada o en fase de validación.
. Adecuadas cuando existen pocas transacciones.
. Al final, hacen una comprobación de tres fases diferentes que se pueden dar:
lectura, validación y escritura.
* Nota: una transacción es serializable si el resultado final de la transacción es equivalente a sus comandos ejecutados secuencialmente sin que se superpongan entre ellos.
TEMA 3:
LENGUAJE DE LAS BBDD PARA LA CREACIÓN DE SU ESTRUCTURA
VISTA → consulta preestablecida sobre una o varias tablas de una BD. No forman parte del esquema físico de la BD,
sino que son tablas virtuales. No almacenan la información de las tablas, solo se guarda la estructura de la
consulta. Una vez creadas se pueden utilizar como si fueran tablas.
Ej:
→ Tipos de vistas:
En función del número de tablas:
• Simples: las formadas por una única tabla y sin función de agrupación. Permiten operaciones DML.
• Complejas: las formadas por más de una tabla y con funciones de agrupación. No permiten operaciones DML.
En función de las operaciones de las vistas:
• Solo lectura: no se puede modificar ningún tipo de información.
• Actualizables: se pueden realizar las acciones de inserción, modificación o eliminación de los datos, con los permisos necesarios.
Ej:
→ Tipos de restricciones
Restricciones de clave principal
La restricción de clave principal, cuando interviene más de una columna → para cada combinación de valores, debemos
definir esta restricción de clave principal.
La tabla de nuestro ejemplo debe cumplir:
• La restricción de clave principal solo va incluida en una tabla.
• La clave principal debe ser menor a dieciséis columnas, que es la longitud máxima.
• El índice que genera la restricción de clave principal debe encontrarse entre 1 y 999.
• Las columnas generadas con la restricción de clave principal deben ser asignadas con valores nulos.