31 Enero 2022 👻
- Las bases de datos se hayan el el área de persistencia. Una base de datos es un mecanismo de persistencia de datos.
 - La memoria no volátil es mucho más lenta que la memoria volátil (DRAM, actual usada).
 - Disco duro → memoria secundaria
 - Los ficheros logran la persistencia de datos.
 - Base de datos: conjunto de datos relacionados entre sí. Almacena datos y metadatos (datos acerca de los datos). Por ejemplo: se almacena Oviedo (dato) cuya temperatura son 7°C (metadato).
 - Para interactuar con una base de datos necesitamos un Sistema de Gestión de Bases de datos (SGDB).
 
4 Febrero 2022 🩳
- Restricciones de integridad: limitaciones a los datos de las bases de datos.
 - Necesitamos un intermediario para acceder a las bases de datos.
 - Lenguaje de datos: interfaz de comunicación con las bases de datos (SQL).
 - Un Sistema de Bases de datos ha de ser:
- Cómodo (que tarde poco, lenguaje de alto nivel)
 - Eficiente (que tarde poco, que sea rápido)
 
 - Lenguaje de manejo de datos (LMD): permite recuperar/leer datos/hacer consultas (QUERIES)
 - En una base de datos se puede:
- Recuperar
- SELECT → consultar
 
 - Modificar
- INSERT → insertar
 - DELETE → eliminar
 - UPDATE → actualizar
 
 
 - Recuperar
 - Lenguaje de definición de datos (LDD): qué esquema conceptual se va a definir en la base de datos.

 - Niveles de abstracción:
- Físico: cómo se guardan los datos
 - Conceptual: qué es lo que se guarda
 - Visión: muestra al usuario una vista personalizada del nivel conceptual. Se le enseña al usuario un subconjunto de las estructuras conceptuales.

 
 
7 Febrero 2022 🧞♂️
- CLAVE primaria (priomary key): no se puede repetir el código definido como clave primaria.
 - CLAVE externa (foreign key): hace referencia a cuando una clave aparece en otra tabla. Tiene una restricción llamada restricción de integridad diferencial. Comprueba que no estés haciendo referencias que no existen. Por ejemplo: un alumno que no exista en la tabla de matriculados no puede ser añadido a la asignatura TPP. Sólo se aceptan valores existentes.

 - Modelo de datos: herramienta para definir un esquema (conceptual, físico o de visión).
 - Modelo relacional/diseño conceptual: define el esquema de la base de datos que representa fielmente el universo del discurso.
 - Modelo entidad relación: no tiene tablas.

 - Modelo orientado a objetos:

 
NOTA: esquema != instancia (datos existentes en un determinado momento)
- Modelo entidad-relacional
- Entidad: cosa que existe por sí misma, que se pueda diferenciar de otras y que tenga datos descriptivos.
 - Atributos: permiten asociar valores a las entidades.
 
 
14 Febrero 2022 💕

Restricciones
- Cardinalidad(máxima): n° de elementos con los que puedes conectar. (Por ejemplo: el número de asignaturas en las que está matriculado un alumno) Se representa con un 1 (→) o n (-).
 - Cardinalidad mínima: n° mínimo obligatorio de elementos relacionados. Valores genéricos: 0 o 1.
 - Cardinalidad concreta: se pone un valor concreto.
 
- 
Como definir el esquema de la base de datos:
- Lenguaje de modelado
 - Lenguaje externo (notas de texto: reducir su uso a lo mínimo)
 
 - 
Diseño conceptual: modelo entidad relación (más potente)
 - 
Diseño lógico: modelo relacional
 
Normas del paso a tablas
- Cada conjunto genera una tabla
 - La clave es la unión de las entidades que asocia
 - Si hay una flecha 1, se genera una clave
 - Si hay una flecha 1, la tabla intermedia es opcional
 - Por omisión no se pone la tabla intermedia (mayor rendimiento)
 
21 Febrero 2022 🛸
- Superclave: conjunto de elementos que no se pueden repetir. La unión de todos los atributos siempre es una superclave.

 - Clave candidato: superclave mínima, no se puede quitar ningún atributo, todos son esenciales.
 - Clave primaria: una de las claves candidato. La principal para identificar el conjunto. Escogida por el diseñador. Se suelen preferir números a cadenas, ya que los números son más rápidos de comparar. Mantiene la integridad de entidad (no puede haber elementos repetidos).
 - Atributo natural: algo que ya tienes implícito.
 - Clave externa: clave primaria de una tabla que aparece en otra tabla. Mantiene la integridad referencial.
 - Dependencia por existencia: la existencia de una entidad depende de la de otra con la que está relacionada.

 - Conjunto de entidades fuerte: aquel que tiene suficientes atributos propios para hacer de clave primaria.
 - Discriminador: miniclave para el conjunto de entidades que dependen de otro conjunto. Lo tienen los conjuntos de entidades débil.
 - Conjunto de entidades débil (CED): conjunto que no se puede repetir dentro del mismo conjunto. En el ejemplo de arriba un paso a nivel existe en una vía.
 - Clave CE débil: clave de la entidad de la que dependen más el discriminador.
 - Relación bitácora: apuntan todo lo relacionado.

 - Clave subrogado: creadas aleatoriamente, que no tienen significado.
 - Generalización: partir de algo concreto que ya existe y generalizarlo.

 - Solapamiento: una cuenta de ahorro es a su vez una cuenta corriente.
 
28 Febrero 2022 🗿
- Agregación: la relación ternaria son siempre 3 patas. Si existe algún caso en el que son menos, es una agregación.

 - Relaciones reflexivas: las dos entidades que asocian son del mismo tipo.

 - Relaciones ternarias: tres partes.

 - Atributo derivado: aquel cuyo valor se calcula a través de una fórmula.
 
7 Marzo 2022 🏙
- Relación de exclusión: la existencia de elementos en un conjunto excluye la existencia en el otro.
 - Restricción de subconjunto: un grupo ha de ser el subconjunto de otro.

 
Desventajas del sistema de procesamiento de ficheros (COBOL)
- Redundancia: repetición innecesaria de datos.
 - Integridad: si hay un agujero de integridad se pueden colar datos incorrectos (Por ejemplo no hacer comprobaciones).
 - Seguridad: controlar que no todos los usuarios tengan todos los permisos (GRANT REVOKE).
 - Concurrencia: en qué orden se han de ejecutar los procesos. Los procesos se han de sincronizar entre sí para no perder datos.
 
14 Marzo 2022 💸
- 
Atomicidad: recuperación de fallos.
 - 
Los ficheros no implementan la atomicidad.
 - 
El archivo .log permite guardar información en memoria de forma persistente.
 - 
Rollback → deshacer los cambios.
 - 
Front-end → gestor de consultas.
 - 
Back-end → procesador de almacenamiento.

 - 
Índices: estructuras que permiten acelerar las búsquedas sobre los datos (es un optimizador).
 - 
Diccionario de datos: donde se guardan los metadatos.
 - 
Propiedades ACID:
- Atomicity: o se hace todo o no se hace nada, nada a medias.
 - Consistence: cuando termina, se cumplen todas las reglas de integridad.
 - Isolation: aislamiento.
 - Durability: los cambios perduran en el sistema.
 
 - 
Restricciones de integridad:
- Diferidas: la verificación se hace al terminar.
 - Inmediatas: siempre tienen que ser verdad (al final y en todo momento).
 
 
21 Marzo 2022 🍓

- Para poder usar una biblioteca necesitamos una API.
 
Técnicas de despliegue de servidores:
- Biblioteca nativa: las instruciones que usa por defecto están impuestas por el fabricante.
 - Biblioteca genérica (JDBC): la biblioteca no conecta directamente con el producto. Tiene dos partes, el equivalente a la API fija, el frontal(habla con el cliente), y tiene la posibilidad de plugins. Es la más habitual.
 - SQL inmerso (embedded): consiste en programar sin usar bibliotecas. En lugar de hacer los accesos a una base de datos de forma indirecta, se escriben directamente en el código. El código en sql lo pasas por un preprocesador que lo convierte al código utilizado.
Tu ves y haces -> 2+3 La librería hace -> add(2,3) - Lenguajes 4G (de cuarta generación): lenguaje de programación cuyas sentencias del manejo de datos son parte del lenguaje. Un ejemplo sería PLSQL. Están pensados para realizar aplicaciones de gestión de los 1990-2000. De fábrica manejan menús. El lenguaje maneja formularios de fábrica.
 
- Todos estos mecanismos se basan en cursores.
 - Ejemplo de código: http://di002.edv.uniovi.es/~darioa/bdatos/mysql/Ejemplo_programa_MySQL_C_API.htm
 
¿En qué se diferencia un create table frente a una búsqueda? El create sólo se hace una vez, la búsqueda la puedes realizar de forma ilimitada.
ENTRA:
- MODELO RELACIONAL: relacion → tabla, atributos → columna, valores de atribs. en: dominio → tipo de datos, dominios son: atómicos tuplas → fila
 
- Una base de datos relacional tiene integridad de entidad, es decir, tiene clave primaria. Impide que haya datos repetidos.
 - Una base de datos mantiene la integridad referencial, es decir, tiene claves externas. Los valores de la clave externa tienen que existir donde son clave primaria.
 
♻️ Segunda parte → BD Segunda parte 📀
