Linux Notas - Notas
1. Introducción a la Base de Datos 1ª Parte
Introducciòn a las Bases de Datoas
-> Colecciòn de datos relacionados entre sì.
Dato
Es un Hecho que puede ser representado y almacenado
Ej. EL número de Teléfono de Tal persona.
Bases de Datos Relacionales
Tienen:
Un conjunto de tablas
Restricciones de Integridad
Tablas:
Podemos describir esta tabla como: Personajes(Nombre, Edad, Trabajo)
Lo que almacenamos en la tabla son los valores.
Restricciones de Integridad:
Son restricciones o reglas en los valores que pueden estar en la base de Datos.
Ejemplo
- La edad tiene que se un nùmero.
- El nombre no puede quedar vacío.
- No pueden haber filas duplicadas.
Normalizaciòn:
La informiación se guarda solamente en un lugar.
Esto quiere decir que no hay redundacia, es decir que no haya repeticiones innecesarias.
Para evitar que la información se repita, se puede separar la informaciòn en 2 tablas: Una que guarde a los personajes y otra que guarde la informacion
de sus trabajos.
--------------------------------------------------------
Lenguaje Sql
- Es la herramienta con la que interactuamos con los datos.
- Permite:
Definir datos (Expresar la estructura y las restricciones)
Manipular datos (Ingresar, modificar, eliminar y consultar datos)
-> -> Consulta
Operaciones
-> -> Actualizacion. -> Inserciòn
-> -> Eliminación
-> -> Modificación
--------------------------------------------------------
-Sql es un lenguaje declarativo o no procedural.
Esto quiere decir que indica el resultado que se quiere obtener, pero no como obtenerlo
- Permite optimizaciones
--------------------------------------------------------
Estándares de SQL
Core SQL : Son los requerimientos de las partes 2 y 11. Los gestores que lo respetan cumplen con lo mìnimo del estándard
El resto es opcional. Esto hace que las cosas que no forman parte del core puedan funcionar en un gestor pero no en otro.
--------------------------------------------------------
Sistema de Gestión de Bases de Datos (SGBD)
Es un conjunto de programas que permite manejar la base de datos.
Permite la creación, manipulación y el acceso a la base de datos.
Independencia de Datos
Es la propiedad de los SGBD que permite que los cambios en la estructura de la BDD no afecten a los programas que la usan.
Los SGBD proveen una capa de abstracción para evitar eso.
Funciones del SGBD
Independencia de Datos
Actualizaciones y consultas
Permite ejecutarlas de manera eficiente
Integridad
Asegura la integridad de los datos usando restricciones que evitan errores
Seguridad
Permite determinar quien puede acceder a cada cosa
Concurrencia
Muchos usuarios pueden acceder a la vez
Recuperación y durabilidad
Garantiza que una vez que el gestor dice que algo está guardado, esté guardado.
Transacciones
operciones que o bien se hacen completas o bien no se hacen.
--------------------------------------------------------
Gestores más populares
- Mysql -> Relacional
- PostgresSQl -> Relacional
- Sqllite -> Relacional
- MongoDB -> No relacional
--------------------------------------------------------
Arquitectura Cliente - Servidor
Cliente -> Lan -> Server -> Data
<- <-
--------------------------------------------------------
Ejemplo de una Base de Datos
-StackOverflor
https://data.stackexchange.com/stackoverflow/query/new
--------------------------------------------------------
¿Que es un CSV?
Es un archivo que contiene en cada línea la información de una fila
Las columnas están separadas por comas
Sirve para cargar los datos en la base de Datos.
--------------------------------------------------------
CRUD -> Create, read, update o Delete
ABM -> Altas, Bajas, MOdificaciones
--------------------------------------------------------
2. Introducción a la Base de Datos 2ª Parte
Conectamos a la base de Datos desde el idle de la Base de Datos.
Usamos la tablass de la base de datos de las películas.. movies_sqlite
Usamos la tabla directors y la tabla de movies
--------------------------------------------------------
Para hacer consultas usamos scripts de SQL
->columnas ->tabla
-> SELECT title FROM movies;
--------------------------------------------------------
*Consultamos dos columnas.
-> SELECT title, popularity FROM movies;
--------------------------------------------------------
Seleccionamos todas las columnas de la tabla movies
-> SELECT * FROM movies;
-> SELECT * FROM directors;
-> SELECT gender FROM directors;
-> SELECT DISTINCT gender FROM directors;
--------------------------------------------------------
Para sumar
-> SELECT SUM(revenues) FROM movies;
Contar las filas
-> SELECT COUNT(gender) FROM directors;
-> SELECT COUNT(DISTINCT gender) FROM directors; -> Cuenta los distintos
--------------------------------------------------------
kaggle -> Una página web para consultar bases de datos.
.lite o bien, .csv
--------------------------------------------------------
Obtener el dato mayor
-> SELECT MAX(revenue) FROM movies; -> Mayor
-> SELECT MIN(revenue) FROM movies; -> Menor
-> SELECT AVG(revenue) FROM movies; -> Promedio
--------------------------------------------------------
Where, donde
-> SELECT * FROM movies WHERE popularity > 112;
-> SELECT * FROM movies WHERE popularity < 112;
-> SELECT * FROM movies WHERE popularity <= 112;
-> SELECT * FROM movies WHERE popularity >= 112;
-> SELECT * FROM movies WHERE popularity = 112;
-- PARA COMENTAR
--------------------------------------------------------
-> SELECT * FROM movies WHERE title = "Avatar"; -> Solo exclusivamente.
-> SELECT * FROM movies WHERE popularity = 112;
--------------------------------------------------------
Para usar el distinto
-> SELECT * FROM directors WHERE gender <> 2; -> Traerìa el 0 o 1, lo distinto de 2
--------------------------------------------------------
Para poder ver las filas que se generaban al consultar varias tablas usamos:
-> SELECT * FROM mini_movies, mini_directors;
Recuerden no hacer esto con las tablas enteras porque va a tardar mucho en procesar la consulta.
--------------------------------------------------------
Para quedarnos solamente con las filas importantes:
-> SELECT * FROM movies, directors WHERE movies.director_id = directors.id;
--------------------------------------------------------
3.