Resumen BD

1.- Modelo E/R ¿Cómo? Pensando y en papel o papel digital

https://trifulcas.com/introduccion-bd-relacionales/

Modelo Entidad relación

Conceptualizar datos del mundo real

Entidades: Son aquellos objetos de los que necesitamos almacenar alguna información. Ejemplo: Cliente, venta, alumno, empresa…
¿Cómo identificamos las entidades? El que pide la BD nos tiene que dar esta información. Los datos ya existen.

Relaciones entre las entidades.
1) Si hay o no hay relación
2) Tipo de relación

1)
Saber si hay o no relación tenemos que pensar si entre dos entidades hay una relación directa o por el contrario hay una relación pero a través de otra entidad.
Alumnos — Cursos — Profesores
¿Alumnos — Profesores? NO

2) 1-1, 1-n, n-n ¿Cómo lo sabemos? Preguntando.
¿De cuantos se puede matricular un alumno? N
¿De cuantos alumnos de compone un curso? N
Alumnos (N)—(N) Cursos
¿Cuantos cursos puede dar un profesor? N
¿Un curso cuantos profesores lo imparten? 1
Cursos (N) —(1) Profesores

Atributos de cada entidad: La información necesaria de cada una de las entidades. Ojo porque hay atributos que no están en la entidad sino en la relación.
Ej: Nota de alumno no está ni en el alumno ni en el curso, está en la relación.

Todo esto me devuelve un modelo de datos en papel o dibujo digital o incluso en un texto
Alumnos (N)–(N) Cursos (N)–(1) Profesores

Alumno: Nombre, dni, email, dirección
Curso: Nombre, créditos, precio
Profesor: Nombre, DNI, dirección
Alumno-Curso: Nota

2.- Pasar el modelo ER al modelo lógico
Teníamos unas reglas:https://trifulcas.com/reglas-para-la-transformacion-del-modelo-e-r-al-modelo-logico/

3.- Tipos de datos: varchar tamaño, tipos numéricos, ojo con los decimales. Cuidado con los campos que parecen números y no lo son…

https://trifulcas.com/tipos-de-datos-en-mysql/

4.- Implementar la base de datos.
a) Workbench
b) PHPMyAdmin
c) DDL (create table….)

5.- Implementar las foreignkeys para asegurar la integridad referencial. Si queremos añadir algún índice también. Recordad que toda foreign key debería tener un índice.

https://trifulcas.com/enlaces-sobre-indices/

6.- CRUD
INSERT, UPDATE y DELETE Cuidadito con esto. UPDATE y DELETE siempre con WHERE

https://trifulcas.com/sql-sentencias-creacion-de-datos-ddl/

7.- SELECT: WHERE condiciones para la selección de registros. AND OR y NOT
Operadores: <,>,=,<>, !=, LIKE, BETWEEN, IN

https://www.w3schools.com/sql/sql_like.asp

not
and
or

condicion1 and condicion2 or condicion3
1.- Evalua condicion1 and condicion2
2.- El resultado se evalua or condicion3

cond1 cond2 cond3 res
true true true true
true true false true
true false true true
true false false false
false true true true
false true false false
false false true true
false false false false

https://www.mysqltutorial.org/mysql-where/

https://es.wikipedia.org/wiki/Tabla_de_verdad

8.- JOIN Si nuestra BD es relacional, debemos relacionar las tablas. Utilizamos JOIN ¿Cómo? Miro que información me piden, busco las tablas que la contengan y creo el camino con JOIN desde una tabla a otra. OJO las claves.

9.- LEFT y RIGHT JOIN cuando necesito datos que no tienen registros relacionados. Siempre apuntando a la tabla de la que quiero todos los registros.

10.- Consultas agrupadas: GROUP BY. Nos permite utilizar funciones de agregado por los valores de un campo. COUNT, SUM, AVG, MIN, MAX. No nos olvidemos agrupar por el campo ‘id’ y no por valores como ‘nombre’ que pueden repetirse.

https://trifulcas.com/ejemplos-subconsultas/

11.- Mysql tiene funciones para manipular los datos de los campos tanto para verlos como para utilizarson en una condición. Matemáticas, de cadena, de fecha,….

https://trifulcas.com/ejemplos-funciones-mysql/

12. Subconsultas

utilizar consultas dentro de la condición de una consulta.

https://trifulcas.com/subconsultas/