BASE DE DATOS
DIA 1
el cliente hace una request al servidor y el servidor hace
una consulta a la base de datos
DATOS
Información concreta sobre hechos, elementos, etc.
Que permite estudiarlos, analizarlos o conocerlos
BASE DE DATOS
Es un conjunto de datos pertenecientes a un mismo contexto y
almacenados sistemáticamente(ordenadamente) para su posterior
uso
DMBS (DATBASE MANAGEMENT SYSTEM) -> Sistema de gestión de
base de datos
Es una aplicación que interactua con el usuario, otras
aplicaciones y la base de datos misma, de tal forma que
pueda definir, crear, borrar, modificar, consultar y
administrar bases de datos y datos en si
Colección de programas que permiten al usuario acceder a
una Base de Datos, manipular data y hacer consultas.
Estos programas son los que van a hacer los cambios o
consultas a la base de datos, NO SE LOS HACE DE FORMA DIRECTA
SQL (Structured Query Language) se convierte en el lenguaje
estándar para hacer consultas a las Bases de Datos
Con SQL le vamos a dar las ordenes al gestor de base de datos
(DMBS)
MODELO ENTIDAD – RELACION
Entidad: Representa una cosa, objeto o conecpto del mundo
real con existencia independiente.
Las entidades van a ser los sustantivos
Atributos: Los atributos son las características que defienen
o identifican a una entidad
Van a ser los adjetivos
Conjunto de relaciones: Es una asociación entre varias
entidades
Cada entidad interviene en una relación con una determinada
cardinalidad
Cardinalidad:
1:N -> Uno a muchos
N:1 -> muchos a uno
N:M -> muchos a muchos
Modelo Relacional Normalizacion:
Nos permite organizar bien nuestros datos
Primera Forma de normalización -> Todos los atributos son
atomicos (cuando los elementos del dominio son simples e
individuales)
Y no hay grupos de repetición …………..
Primary Key: Es un atributo o conjunto de atributos que
identifica unívocamente a una fila de una tabla
Foreign Key: Es un atributo que identifica a una fila de otra
tabla
Bases de datos relacionales:
En estas bases de datos las tablas tienen que estar
normalizadas. Y antes de empezar a cargar datos, tenemos que
definir el modelo de datos de manera detallada
Ventajas de usar bases de datos SQL:
La aplicación va a ser muy estable y difícilmente llegue
un dato no deseado a la BD. (el problema es que es poco
flexible)
Estas bases de datos son transaccionales, las
operaciones que hagamos van a hacerse atómicamente, es
decir que jamás vamos a tener datos corruptos
Es una tecnología muy estudiada, hace años que ya esta
estable
DIA 2
SQL => Structured Query Language
Es el lenguaje mas usado para hacer consultas a las bases de
datos
SQL es un lenguaje de consultas, tiene expresiones y
statements igual que JS. Esta compuesto por clausulas
STATEMENTS PARA MANIPULAR REGISTROS
SELECT: consultar información de las tablas
INSERT: agrega nueva información en las tablas
UPDATE: actualizar información de las tablas
DELETE: elimina información de las tablas
SQL TIPOS DE DATOS -> los tipos de datos están bien definidos
Ej: varchar = string integer = numero
Mas ejemplos => [Link]
tipo-de-datos
CONSTRAINTS -> Reglas forzadas sobre un atributo
NOT NULL -> El atributo no puede ser nulo
UNIQUE -> No puede haber dos atributos iguales en una tabla
PRIMARY KEY -> Identifica unívocamente una fila en una tabla
FOREIGN KEY -> La key debería existir si o si en otra
tabla(básicamente hace referencia a una primary key que esta
en otra tabla)
INSERTAR FILAS EN UNA TABLA
INSERT INTO nombre_de_la_tabla (columna1, columna2,
columna3…)
VALUES (valor1, valor2, valor3…)
Ej:
INSERT INTO ciudades (nombre)
VALUES (‘Tucuman’) -> solo se pueden usar comillas simples
SELECT
Con select podemos recuperar filas de una tabla
SELECT nombre_de_la_columna FROM nombre_de_la_tabla
Ej:
SELECT * FROM personas -> el * indica que devuelva todas
las
columnas
ORDER BY CLAUSE
SELECT * FROM ciudades ORDER BY nombre -> por defecto
ordena en order alfabetico o de menor a mayor
WHERE CLAUSE (donde)
SELECT * FROM persona WHERE nombre = ‘Toni’
Recupera las filas donde el nombre es igual a Toni
GROUP BY ?
SUB-QUERYS ?
DIA 3
ORM => Object-Relational Mapping
Son librerías o frameworks
El ORM funciona como un traductor, esta entre el servidor y
la base de datos.
Servidor => lenguaje javascript
Base de datos => lenguaje sql
EL ORM QUE USAMOS ES SEQUELIZE
La mayoría de los métodos de sequelize son asíncronos por lo
que devuelven promesas
INSTALAR Y CONECTAR SEQUELIZE
Const {Sequelize} = require(‘sequelize’)
Conectar:
Const sequelize = new
Sequelize(‘postgres://user:pass@[Link]/dbname’)
MODEL
Definir model
Abstraccion que representa una tabla de nuestra base de datos
Básicamente es la forma de representar la creación de una
tabla en sequelize
Const User = [Link](‘User’, {
Id: {
Type: [Link]
primaryKey: true
}
})
POSTGRES CREA LAS COLUMNAS Y LAS PLURALIZA
Synchronization model
Definir el modelo arma el esqueleto, pero no hace lo cambios
en la base de datos, para esto se debe sincronizar los
modelos
Hay que envolver el [Link] con
[Link]({ force: true }).then(() => {
[Link]…
})
Force: true => elimina la tabla y luego la vuelve a crear
Alter: true => aplica los cambios necesarios a la tabla
actual para que coincida con el modelo
*Vacio* => crea la tabla si no existe o no hace nada si ya
existe
Como eliminar las columnas createdAt y updateAt que se crean
solas?
En el mismo lugar donde definimos los atributos(columnas)
después de los atributos agregamos un nuevo objeto y le
pasamos lo siguiente:
timestamps: false
INSTANCES
Representa un objeto con la estructura definida en el modelo
que va a mapearse con una fila de la tabla asociada
Const usuario = await [Link]({ name: ‘Mariano’})
Finders
Const instancia = await [Link](4)
Const instancia = await [Link]({
Where: {name: ‘Goku’}
})
Const [instancia, created] = await [Link]({
Where: {name: ‘Goku‘},
Defaults: {
Gender: ‘M’
}})
findOrCreate busca si existe un registro según las
condiciones de busqueda y si no encuentra ningúno procede a
crear uno nuevo. Luego retorna la instancia creada o
encontrada y un booleano indicando cual de los dos caminos
tomo
CRUD (CREATE, READ, UPDATE, DELETE)
Create:
Read:
Update:
Delete: