Está en la página 1de 11

UF2 BBDD

* 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.

Ej: * DATABASE y SCHEMA son sinónimos.

CREATE TABLE → CREAR UNA TABLA: CREATE TABLE … AS … → CREAR TABLA USANDO OTRA:

Ej: Ej:

DROP: * DROP…IF EXIST

DROP DATABASE → ELIMINAR UNA BASE DE DATOS: DROP TABLE → ELIMINAR UNA TABLA:

ALTER: * Comandos con CONSTRAINT:

ALTER TABLE … RENAME… → RENOMBRAR UNA TABLA / COLUMNA

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:

ALTER TABLE … ADD/ADD COLUMN … FIRST; → AÑADIR UNA COLUMNA AL PRINCIPIO

Ej:

ALTER TABLE … ADD PRIMARY KEY ( ) → AÑADIR CLAVE PRIMARIA

Ej:

ALTER TABLE … DROP PRIMARY KEY → ELIMINAR UNA CLAVE PRIMARIA

ALTER TABLE … DROP COLUMN … → ELIMINAR UNA COLUMNA

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)

RENAME → (RENOMBRAR TABLAS)


o |
SHOW DATABASES/TABLES/COLUMNS → (MOSTRAR LAS TABLAS/BASES DE DATOS/COLUMNAS EXISTENTES)
/ /
USE → (USAR UNA TABLA/BASE DE DATOS EXISTENTE) Ej:

DESCRIBE → (VER LA DEFINICIÓN DE UNA TABLA EXISTENTE)

* AÑADIR RESTRICCIONES A LAS COLUMNAS:


* PRIMARY KEY→ indica que una columna o varias son clave primaria.

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)

o con ALTER TABLE…ADD CONSTRAINT…

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

* CHECK → Nos permite verificar las restricciones sobre una columna.


—------------------SENTENCIAS DML—------------
INSERT: → INSERTAR DATOS EN LAS TABLAS
INSERT INTO … VALUES …:

Ej:

Ej:

UPDATE: → MODIFICAR DATOS DE LOS CAMPOS Y REGISTROS ESPECIFICADOS (modificar valores)


UPDATE … SET … (WHERE…): (si no se pone la condición WHERE se modificarán todos los registros de la tabla)

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: → →

SELECT: → SELECCIONAR/CONSULTAR LOS DATOS DE LAS TABLAS


CONSULTA SIMPLE: .

SELECT * FROM … ( * → todos los datos de la tabla)

Ej: →
SELECT … FROM …

Ej: →
SELECT DISTINCT … FROM … ( DISTINCT → no devuelve valores repetidos, solo valores distintos)

CONSULTA CON RESTRICCIONES (O CONDICIONES): .

SELECT … FROM …WHERE…

→ |
CONSULTA CON ORDENACIÓN (CON O SIN CONDICIÓN): .

SELECT … FROM … (WHERE…) …ORDER BY…ASC/DESC;


CONSULTA DE AGRUPACIÓN GROUP BY /(CON O SIN) FUNCIÓN DE AGREGACIÓN AVG COUNT SUM MAX MIN :
SELECT … FROM … GROUP BY…

Ej:

FUNCIONES DE AGREGACIÓN AVG - COUNT - SUM - MAX - MIN (SIN AGRUPACIÓN)

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)

SELECT … FROM … WHERE … GROUP BY… HAVING…


( HAVING → cláusula que agrupa por alguna condición → HAVING surge porque WHERE no puede usarse con funciones de agregación.)

Ej: HAVING + AVG/COUNT/SUM/MAX/MIN condición

CONSULTA MÁS DE UNA TABLA: .

Ej:

SUBCONSULTAS: .

SELECT … FROM …WHERE ( condición con SELECT… FROM… WHERE condición);

Ej:

OTRAS CONSULTAS. EXTENSIONES Y OTRAS CLÁUSULAS DEL LENGUAJE:


UNION → une/combina el resultado de dos o más consultas SELECT.
- Los SELECT dentro de UNION deben tener el mismo número de columnas
- Las columnas deben tener tipos de datos similares y en el mismo orden.
- UNION selecciona solo valores distintos de forma predeterminada

- Para permitir valores duplicados usar UNION ALL:

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

- Con el lenguaje DDL podemos añadir detrás de la cláusula REFERENCES lo siguiente:

(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.

* Nota: En MySQL, NO ACTION y RESTRICT son equivalentes.

- 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

→ ESTADOS DE UNA TRANSACCIÓN

→ SENTENCIAS DE TRANSACCIONES ------------SENTENCIAS TCL--------------

Ej:

CONCURRENCIA EN LAS TRANSACCIONES

→ PROBLEMAS DERIVADOS DE LA EJECUCIÓN CONCURRENTE DE TRANSACCIONES


→ CONTROL DE CONCURRENCIA

• 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

VISTAS Y OTRAS EXTENSIONES DEL LENGUAJE

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.

→ Creación de una vista:


Sintaxis para crear una vista:

Ej:

• OR REPLACE: lo utilizamos si la vista ya existe, la cambia por la actual.


• FORCE: aunque no se disponga de los datos necesarios para realizar la consulta, crea la vista.
• Lista_columnas: listado de las columnas que devuelve la consulta.
• WITH CHECK OPTION: ofrece la posibilidad de añadir (INSERT) o modificar (UPDATE) las filas a visualizar.
• WITH READ ONLY: vista de solo lectura con posibilidad de asignarle un nombre.

→ 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.

→ Propiedades de las vistas


• Pueden simplificar la información que hay en una o varias tablas, pues muestra un subconjunto de información.
• Pueden añadir información que no existe en las tablas, como medias aritméticas o sumatorios.
• Ocupan muy poco espacio, al no almacenar la información, sino la estructura de la vista.

→ Borrado de una vista


Sintaxis para borrar una tabla:

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.

Restricciones de clave externa


Hacen referencia a una o varias columnas que van a ser utilizadas para crear diferentes vínculos entre las distintas tablas. La intención
es que estos puedan ser almacenados en una tabla de clave externa. Podemos decir que para que se cree vínculo entre dos tablas, una
columna de una tabla debe hacer referencia a otra columna que actúa como clave principal de la otra.
Deben cumplir:
• Solo admite operaciones de DELETE cuando tiene más de 253 referencias de clave.
• Cuando una tabla se referencia a sí misma sigue teniendo 253 referencias de clave.
• No hay más de 253 referencias disponibles.

También podría gustarte