00 - Intro SQLite
Video
#SQL #SQLite🔙 Previous Part | Next Part 🔜
Table of Contents:
- 1 - ¿Qué es una base de datos (BDD)?
- 2.0 - ¿Qué es SQLite?
- Z) Glossary
## 1 - ¿Qué es una base de datos (BDD)?
Una base de datos es una herramienta que recopila datos, los organiza y los relaciona para que se pueda hacer una rápida búsqueda y recuperar con ayuda de un ordenador. Hoy en día, las bases de datos también sirven para desarrollar análisis. Las bases de datos más modernas tienen motores específicos para sacar informes de datos complejos.
The database symbol has the shape of a cylinder for historical reasons. It's just a simplified depiction of an actual hard disk. Remember that a single hard drive is actually made up of a stack of flat disks with the read/write heads in between the disks.
1.1 - ¿Qué es una Base de datos relacional?
La base de datos relacional es una recopilación de la información empresarial organizada de tal forma que se puede consultar, actualizar, analizar y sacar los datos fácilmente. La información se encuentra en tablas y campos/atributos relacionados entre sí.
El concepto se entiende mejor con un ejemplo:
Imagina que necesitas llevar el registro en una Universidad de todos los alumnos, profesores y sus cursos.
En esta Universidad, un profesor no enseña TODOS los cursos, ni los alumnos estudian TODOS los cursos. Existe una "relación" entre estas entidades.
Lo mas ordenado sería llevar el registro de cada una de estas entidades por separado, entonces lo mejor es definir "tablas" para cada una de las entidades y asi almacenar los "registros (o tuplas)" de cada entidad.
Las tablas almacenan "registros/tuplas" de cada entidad, entonces por ejemplo en la tabla profesores, cada profesor es un "registro/tupla" de la tabla. En donde podemos guardar "valores" de sus "campos/atributos" a partir del "esquema" que hayamos definido.
1.1.1 - Diagrama Entidad/Relación
Para poder abstraer y diseñar la base de datos relacional, podemos utilizar una herramienta llamada "Modelos Entidad Relación", tambien llamado diagrama Entidad/Relación o simplemente diagrama E-R
Los diagramas Entidad-Relación no cumplen su propósito con eficacia debido a que tienen limitaciones semánticas. Por ese motivo se suelen utilizar los diagramas Entidad-Relación extendidos (EER) que incorporan algunos elementos más al lenguaje.
More info: https://jorgesanchez.net/manuales/gbd/entidad-relacion.html
Simbolos Utilizados en los Diagramas E/R:
1.1.2 - RELACIONES 1aN, 1a1 y NaN (CARDINALIDAD)
RELACIONES y CARDINALIDAD: Las relaciones tienen una caracteristica conocida como "cardinalidad", la cual indica el sentido y la cantidad de "relaciones" existentes entre una entidad y otra. Estas pueden ser:
➣ 1 a n (1 a muchos):
➣ 1 a 1:
➣ n a n (muchos a muchos):
More info: https://youtu.be/AArIcStS0TU
1.1.3 - Llave Primaria y Llave Foránea
Repaso:
Cuando creamos una entidad en nuestra base de datos, debemos rellenarlas con distintos elementos. Estos elementos se llaman atributos y son las características que conforman nuestras entidades.
Imaginemos que tenemos una entidad llamada "carros" las características de un carro sería:
- la matrícula
- el color
- y la marca (por decir solo algunas)
Esas características son las que se transformarían en atributos.
➣ La clave Primaria (el identificador único):
La clave primaria es el atributo que identifica a un coche de otro, por ejemplo vamos a ir rellenando nuestra tabla de carro:
- ¿cuál es la forma que yo pude identificar de manera única e irrepetible a un carro de otros?
Con la matrícula!!! porque yo puedo tener muchos carros de color azul o de marcas tesla, pero la matrícula nunca puede repetirse y debe ser única.
Esa es la característica que debe llevar la clave primaria, esta es reconocible por este símbolo (se subraya el atributo)
➣ La clave Foranea (para relacionar tablas usando la clave Primaria):
Ya por último nos quedan las claves foráneas. Normalmente nuestras tablas se relacionan con otras tablas.
Cuando dos tablas se relacionan necesitamos una clave foránea.
Por ejemplo: imaginemos que tenemos esta relación.
Un cliente (1) puede comprar muchos vehículos (N)
En nuestra tabla "vehículo" crearíamos un nuevo atributo, que sería la clave foránea.
La clave foránea será un campo cuyos valores deben coincidir con los valores de la clave primaria de la otra tabla, por ejemplo, en la tabla clientes, la clave primaria es el "n. de Identidad", entonces en la tabla vehículos colocaríamos:
- matrícula
- color
- marca
- y ahora n. de identidad"
Este "n. de identidad" sería el cliente que ha comprado este coche en específico.
Aqui la relación es que "María Suarez" a comprado el Teskla Rojo con matricula 0001.
De esta manera creamos una relación y sabemos que el cliente ha comprado el carro, en pocas palabras la clave foránea lo que nos permite es tener una relación con nuestra otras tablas.
Con ese numero (la clave foranea) yo puedo saber desde la tabla "vehiculos" quien es el cliente (de la tabla "clientes") que ha hecho la compra.
Nos puede generar dudas saber en que tabla se debe colocar la clave foranea, por lo que de momento solo daremos unas reglas que podemos seguir:
- Relacion 1aN: siempre va del lado de la n
- Relacion 1a1: hay que pensar en que lado es mas conveniente
- A Simplified Rule of Thumb is to put the foreign key on the child table (if each parent can have many children)
Resumen:
1.1.4 - SQL, DDL, DML y DCL (proceso CRUD y otros commandos)
SQL (Structured Query Language) es el lenguaje de consultas universal con el que podemos trabajar con Bases de Datos Relacionales. Este lenguaje no solo nos deja "consultar" (query) la información, tambien nos permite escribir.
SQL en realidad se divide en tres lenguajes ( o segun otras fuentes, en cuatro leguajes ):
-
DDL (Data Definition Language), nos permite definir las estructuras, tablas, campos, etc (defines de schema)
- CREATE
- ALTER
- DROP
- etc
-
DML (Data Manipulation Language), nos permite manupular la información de la base de datos y hacer el CRUD.
- CRUD (Create, Read, Update, Delete) es un acrónimo para las maneras en las que se puede operar sobre información almacenada.
- INSERT (llena de datos las tablas)
- SELECT (lee datos de las tablas)
- UPDATE
- DELETE
- CRUD (Create, Read, Update, Delete) es un acrónimo para las maneras en las que se puede operar sobre información almacenada.
-
DCL (Data Control Language), nos permite controlar los permisos de acceso a la BDD
- GRANT
- REVOKE
-
TCL (Transaction Control Language), incluye las sentencias que manejan las transacciones en la base de datos.
- BEGIN
- COMMIT
- ROLLBACK
More Info: https://stackoverflow.com/questions/2578194/what-are-ddl-and-dml
1.1.5 - Definición de operaciones SQL
Sentencia (Statement):
- Una sentencia SQL es cualquier instrucción escrita en el lenguaje SQL que se puede ejecutar.
- Las sentencias incluyen operaciones de manipulación de datos como
INSERT
,UPDATE
,DELETE
, y operaciones de definición de datos comoCREATE TABLE
,ALTER TABLE
,DROP TABLE
, entre otras. - Las sentencias también incluyen comandos de control de transacciones como
BEGIN
,COMMIT
, yROLLBACK
.
Consulta (Query):
- Una consulta es un tipo específico de sentencia SQL que solicita la recuperación de datos.
- La palabra "consulta" se asocia más comúnmente con la sentencia
SELECT
, que se utiliza para seleccionar datos de una base de datos. - Las consultas pueden ser simples, solicitando columnas específicas de una tabla, o complejas, involucrando funciones, agrupamientos, uniones de tablas y subconsultas.
En resumen, todas las consultas son sentencias, pero no todas las sentencias son consultas. La consulta es un subconjunto de sentencias que se ocupa específicamente de la obtención de datos. Las sentencias cubren un rango más amplio de operaciones en la base de datos.
Comando (Command):
- A menudo se refiere a una sentencia SQL completa que realiza una acción, como
CREATE DATABASE
, que es tanto una sentencia como un comando.
Expresión (Expression):
- Una combinación de uno o más valores, operadores y funciones SQL que se resuelven en un valor. Por ejemplo,
columna1 + columna2
es una expresión que suma dos columnas.
Predicado (Predicate):
- Utilizado para especificar condiciones en una cláusula
WHERE
oHAVING
, como encolumna1 = 100
.
Clausula (Clause):
- Parte de una sentencia SQL que puede contener varias partes de la lógica de la sentencia, como
WHERE
,FROM
,ORDER BY
.
Directiva (Directive):
- Menos común en el contexto de SQL, pero puede referirse a instrucciones específicas dadas a la base de datos, como las directivas de optimización.
Función (Function):
- Un procedimiento dentro de SQL que realiza una acción y devuelve un resultado, como
SUM()
,COUNT()
, etc.
Cada uno de estos términos representa una parte del lenguaje SQL y se utiliza para describir cómo se estructuran y ejecutan las operaciones en la base de datos.
1.1.6 - Sistemas Gestores de Bases de Datos Relacionales (SQL)
Los principales Sistemas Gestores de Bases de Datos Relacionales SQL (SGBD SQL) son:
- MySQL,
- MariaDB,
- SQLite (biblioteca escrita en C que implementa un SGBD),
- PostgreSQL,
- Microsoft SQL Server
- y Oracle.
1.2 - Otros tipos de Bases de Datos
Según el modelo:
- Base de datos relacionales (la más usada en el mundo, emplea lenguaje SQL)
- Base de datos distribuida
- Base de datos NoSQL (importa más la velocidad, aunque se tenga redundancia de datos. La usan Amazon y Facebook)
- Base de datos orientada a objetos
- Base de datos multidimensional
- Base de datos documental
- Base de datos deductiva
- Base de datos transaccional
- Base de datos jerárquica
- Base de datos de red
- Base de datos gráfica o de grafos
- etc
More info: https://ayudaleyprotecciondatos.es/bases-de-datos/
2.0 - ¿Qué es SQLite?
SQLite es una biblioteca en lenguaje C que implementa un motor de base de datos SQL pequeña, rápida , autónoma, de alta confiabilidad y con todas las funciones.
SQLite es el motor de base de datos más utilizado en el mundo. SQLite está integrado en todos los teléfonos móviles y en la mayoría de las computadoras y viene incluido dentro de innumerables otras aplicaciones que la gente usa todos los días.
El formato de archivo SQLite es estable, multiplataforma y compatible con versiones anteriores y los desarrolladores se comprometen a mantenerlo así hasta el año 2050.
Los archivos de base de datos SQLite se usan comúnmente como contenedores para transferir contenido enriquecido entre sistemas y como un formato de archivo a largo plazo para datos. Hay más de 1 billón (1e12) de bases de datos SQLite en uso activo.
El código fuente de SQLite es de dominio público y es gratuito para todos para cualquier propósito.
More info: https://sqlite.com/index.html
En la siguiente parte del vídeo nosotros vamos a hacer el proceso de descarga e instalación de dicha base de datos y vamos a comenzar a aprender todo los necesario para:
- la creaciones de base de datos
- la creación de tablas
- estructuración de las columnas o Campos
- tipos de datos
Y comenzaremos a hacer el proceso CRUD de alimentar la información, gestionar el mantenimiento sobre el contenido de dichas tablas. Nos vemos en el siguiente vídeo para el proceso de descarga de instalación. Hasta pronto
🔙 Previous Part | Next Part 🔜
Z) 🗃️ Glossary
File | Definition |
---|