Logo Studenta

Apuntes-BD2

¡Este material tiene más páginas!

Vista previa del material en texto

Clase 2 11-03-2021:
Definición de base de datos: es un contenedor de datos para persistir los mismos
Clase 3 15-03-2021:
Diferentes paradigmas: relacional (mysql,mariadb,postgresql,db2,oracle tienen un mismo
comportamiento), objetos y no relacional
Instancia: es un proceso de sistema operativo. proceso de bd que está en memoria
base de datos:base creado en disco
motor:tiene la lógica de trabajo en tiene en la base que tiene los comandos,la base permite
hacer la búsquedas,etc
proceso:programa en ejecución que está usando cpu
caracteristicas de modelo relacional:
redundancia mínima de datos:los datos pueden estar duplicado pero tiene que ser mínima,
esa minimalidad lo da la relación entre la relación entre pk y fk
normalización: proceso para evitar la redundancia de datos (normalizar tablas del diseño
lógico de datos) problema de duplicar datos; ocupa lugar almacenamiento y peligro de
inconsistencia
desnormalización: factura, recibo de sueldo
Integridad de datos: datos confiables. Hay herramientas que da el motor para cuidar la
integridad de datos(cotsraint: pk, fk, notnull, unique,check o enum)
Clase4 18-03-2021:
caracteristicas de modelo relacional:
Acceso concurrente/paralelismo(multiple usuarios): multiples usuarios accediendo al mismo
recurso, varios usuarios al mismo tiempo conectados a una base ejecutado consultas
- DDL(data definition language: permite utilizar sentencias del estilo create, drop, alter. Es
para la estructura), DML(data manipulation language. permite trabajar con los datos de las
bases, select, insert, delete update) diferencias:
DML utiliza el concepto de rollback(posibilidad de volver para atrás
)y commit(confirmar)
transacción: bloque sql formado por una o varias sentencias sql(DML)
características de transacción-cumple propiedades acid:
Atomicidad se ejecuta todas las operaciones o no se ejecuta ninguna
Consistencia los datos que ejecutan esa transacción dejan los datos consistentes en la base
de datos
I aislamiento: las transiciones no se solapan en su ejecución(se produce situación de lockeo
termina protegiendo el acceso a los datos)
D durabilidad los datos quedan persistidos en la base de datos
compliance garantiza integridad de datos. Si varios usuarios consultan una misma tabla en
una base, van a obtener todos el mismo resultado
clase 5 22/03/2021:
escalable le agrego mas usuarios y sigue comportándose de la misma manera
Escalamiento vertical: posibilidad que da un servidor de agregar memoria, disco y
procesadores. Limitación de escalabilidad vertical
escalar horizontal:es agregar otro servidor de base de datos
cluster agrupación de nodos en la que veo solo un servicio. Se clusterizar el servicio de
myql
Balanceador de carga: los usuario se conectan al sql y el sql se conecta al balanceador de
carga que es un servicio que va a dirigir a uno u otro nodo(diferentes estrategias)
Disponibilidad:es accesible 24hs 7dias
nivel de disponibilidad, alta disponibilidad disponible el 99,9%
métricas: las disponibilidad se mide con métricas
ha
SLA (service-level agreement) : acuerdo de servicio ejemplo tenes 100 mb pero en el
acuerdo dice desde 10 hasta 100 que no son reales
OLA(operational-level agreement): acuerdo de servicio entre áreas
Aplicaciones de misión crítica: tiene una alta disponibilidad
spof (sigle point of failure=único punto de falla): aquellos componentes de mi infraestructura
que si falla, falla todo o deja de funcionar todo.
por las limitaciones del paradigma relacional es que surge el paradigma no relacional
el relacional es centralizado
réplica de la base: todos los datos de una base se duplica en otra
latencia:retardo de llevar información
clase 6 25/03/2021:
paradigma relacional:
-tiene limitaciones
-base de datos relacional ejecuta transacciones y también se llama base de datos
transaccional
-es escalable y te permite escalar horizontal y vertical
-cluster:conjunto de servicios funcionan como uno solo y hay un load balancing que es un
servicio que te indica a que server te vas a conectar
-único punto de fallo: si falla, falla todo. Lo componentes que si fallan ponen en peligro la
aplicación
por más nodos que tenga en el cluster el cuello de botella se puede producir en el acceso
a disco
latencia es el tiempo que tarda en dar una respuesta desde que se le envio una peticion
cada nodo tienen que ser un clon de otro incluyendo el hardware
el load balancing y cluster tienen que estar ubicados en el mismo rack y datacenter
join:traer información de dos o más tablas
-nosql requiere commodity server:server de bajas prestaciones
descentralizados o distribuidos en todos los nodos del cluster
-evita cuello de botella
-en cuanto a disponibilidad es mejor nosql
-los nodos no necesariamente deben estar en el mismo datacenter
-no hay joins porque como cada nodo es una base y no se puede hacer join de una tabla
de una base con la de otra
-siempre se trabaja con los datos de la misma partición
-shard o partición: una base de datos está particionada
-los nodos están interconectados
-siempre política de backup
-mongodb: un server master y dos server esclavos en el master escriben y en el esclavo
replica
Clase 7 29/03/2021:
motivaciones para elegir base de datos:
-la escalabilidad horizontal es una motivación para elegir una base de datos nosql
Requisito funcional: son funcionalidad
Requisitos no funcionales: no está asociado a funcionalidad. Es algo que el sistema tiene
que dar al usuario pero no es funcionalidad. Atributos de calidad iso 9126 seguridad
confiabilidad
Aplicación: confiable o robusta a pesar de lo s errores sigue funcionando
-costo:hardware y la licencia
-flexibilidd:
polimorfismo: no hay una estructura fija puede, tomar diferentes formas
nosql es polimórfico: no es estructurado
etapas de diseño de base de datos:-diseño conceptual
-diseño lógico -diseño físico
fases de diseño de una base de datos relacional:
disponibilidad:
Clase 8: no hubo por feriado
Clase 9 05/04/2021:
un colección puede tener muchos documentos, los documentos son del estilo json
data files: donde se guardan los datos propiamente dicho de la base de datos
sql: fila es la unidad mínima de almacenamiento
nosql: la base de datos tienen colecciones(serian como las filas del sql) cada colección
puede tener muchos documentos(estructura que empieza con una llave y termina con llave,
está formada por clave/valor)
flexible porque puedo agregarle lo que yo quiero no está sujeto a una estructura
costo: el hardware, licencia,
no necesito tener todo el alcance
cada documento tienen un identificador
sql:
clave primaria simple una única columna como clave primaria
clave compuesta
nosql:
_id es para especificar la clave primaria puede gestionarla mongo o el que administre la
base
12 bytes--> 4 timestamp(indica la antigüedad, los puedo ordenar)
-->3maquina/server-->2procesoid-->3contador
el object id permite unicidad en el cluster
desnormalización de datos en nosql
no garantiza las propiedades acid
Clase 10: 08/04/2021:
business intelligence
Clase 11 12/04/2021:
consola muestra errores tiene entrada y salida
la terminal solo ejecuta comandos
crear base
ver las collecciones
ver las bases
para insertar un documento
el values va cuando no usas todos los campos
las llaves en el find({}) es equivalente al select * from
te tira la cantidad de documentos
te deja mas lindo el json
hacer un insert con varios documentos
Clase 12 15/04/2021:
show dbs;
use Ungs;
show colletions;
db.paises.find({ });
db.paises.insert([{ },{ },{ }]); -->insertar varios documentos en un array
db.paises.find({ }).count;--> ver la cantidad de documentos
creamos un algo.json ponemos un documento por fila
mongoimport -d ungs_futbol -c torneo2021 --files=”algo.json” -->d es de database y c es de
colección
si no tiene el nombre de la colección te crea una con el nombre del json y va a la base test
que es por default en caso de especificar el nombre de la base
tirar error por duplicar la collection
it es de iteraction te muestra hasta un cierto punto despues tenesque escribir it y te
muestra los que faltan
documento embebido en el sql eso es una relación de 1 a muchos
atributos:multivaluados que podían tomar muchos valores por ejemplo la dirección
indice; permite acelerar las búsqueda en una tabla en el paradigma relacional. se crea
cuando se necesita
clase 13 19/4: parcial
clase 14 22/4:
no necesitamos tener un scope definido
para eliminar documentos
para ver lo que tengo en el documento
ver la cantidad de elementos en una coleccion
saltea la cantidad de documento de acuerdo a los que le pasas en lo que te muestra el find
salta 1 y muestra tres documentos
ordena de alfabeticamente asendente
ordena de alfabeticamente desendente
se le puede poner varios parametros
el save funciona como insert y cómo update, el insert solo inserta
v
agrega una clave pero solo en el primero eso es porque le falta el multi
le agrega la clave a todo
para quitar clave, solo saca el tipo no le importa el valor que tenga
find con parametros para afinar la busqueda, si el id 0 o false no muestra
clase 15 26/4:
el año:1987 seria como el where en sql
operadores de comparacion
el eq es un equivalente o igual
muestra una estructura mas legible
se puede usar en arrays
mayor o igual
que sea mayor que 5
que sea mayor que 5 y menor que 9
que sea mayor o igual a 5
mayot o igual a 5 y menor o igual a 9
busca que este alguna de los tres
ne=not equals
ni:not inque alguno no incluya
operadores logico
and
not
and not
and or
exist
clase 17 03/5:
permite expresiones regulares. regex soporta parametros, soporta i m x s
i es de ignore, ejemplo si es mayuscula o minuscula lo que le pongo por parametro
n$ no$ 2$ indica el caracter final
^d, ^k, que arranca con
clase 18 06/05:
busca dentro del id 1 y dentro del documento,, la nota3 , el set agarra dentro del array not y
le cambia la nota 3 por el 4
$addToSet permite agregaar elementos al array ppero si ese elemento existe no hace
nada, solo agrega lo que no se repite
sin el each considera al array como un elemento
el 1 elimina el ultimo elemento del array y el -1 elimina el primero
clase del 6/5
NoSQL:diseña a partir de consultas y no de un requisito funcional
Se usa con el update con arrays:
-addToSet--> agrega si no está repetido con el $each entra al array y se fija que cada
elemento, sino está lo agrega. Sin el each toma al array como elemento
-$pop elimina el primero(-1) o el último(1) del array
-$pull elimina los que encuentre pero si es mas de un doc hay que ponerle multi:true $in
eliminar varios elementos de un arrays. Tambien se usan operadores como $gte. Además
se combina $elemMatch lo que cumple lo que viene con el elemMAch lo saca
-$push inserta en array o un array cuando no existe lo que le pasas
-$pullAll elimina ddel array todas las instancias que coincidan con ls que estan en el pullall
clase del 3/5
-disparador: cada vez que se hace un cambio ese cambio se dispara en otra tabla
-en mongodb el indice se crea al comienzo en mysql se crea al final
Find:
-$regex: buscar por expresiones regulares ^p que comience con p n$ que termine con n
-$options: i de ignorar mayúsculas y minúsculas
-$text $search busca en la colección un documento que tenga lo que se le pide
“\”djlksjd\”” te busca exactamente lo que pedís no si encuentra una parte
-jhjskhkadh jkljdskl el meno excluye
$search :”dhjjdhs”, caseSensitive:false
clase del 26/4
Find: primer parámetro es como where y el segundo es la proyección
$eq es igual o equivalente trae el primero que cumple. tienen que cumplir con todo lo que se
le pasa
$gt mayot que
$gte mayor o igual que
$lt menor que
$menor o igual que
$in funciona como un or. trae todos los que cumplem alguno
$ne not equals que te traiga distinto del que le pasas.
$nin no in que traiga distinto de lo que le pasas
$and se tiene que cumplir lo que está dentro del array
$not
$or
$exist true es quienes tienen esa clave exist false quienes no tienen esa clave
clase del 22/4:
-find--count
limit
skip
sort
-save solo tiene un parámetro(documento), si existe lo actualiza, si no existe lo crea
update parametro1 que es la búsqueda, el segundo parámetro set unset(agregar o quitar
clave)sin el set o unset modifica todo el documento, tercer parámetro upsert(insertar)
multi(si es true modifica todo)
clase del 15/4:
crear un json con los documentos
mongo import -d database -c colección --file= achivo.json
si lo dejas sin parámetros te lo importa a test y el nombre de archivo es la collecion
documento embebido: es un documento dentro de otro
atributos: multivaluados que podían tomar muchas características características
index acelera las búsquedas
motivaciones
-escalabilidad horizontal
class 24:
-estilo arquitectónico es peer to peer (punto a punto, P2P), masterless(todos clientes y
servidores al mismo tiempo)
-Si se cae un nodo puede haber sobrecarga en el resto de los nodos pero 100% disponible
esta la base
-disponibilidad es un requisitos no funcional
-no tiene un único de fallo por la arquitectura en sí mismo
-consistencia eventual no garantia propiedades ACID
-cuando se cae un nodo puedo replicar en otros
-escala horizontalmente lineal un server permite procesar 20 transacciones 1 nodo, con dos
nodos, 40 transacciones, 3 nodos 60 transacciones
-cql dml ddl, no se puede ejecutar sript del lado del servidor
-no hay join, tiene clave primaria pero no clave foránea
-tiene trigger
-orientado súper columna
-licencia open source 2008
-concepto de factor de replicación, concurrencia seguridad a nivel de tabla, no tiene unico
punto de fallo
-comodity server, arquitectura hibrida, distribuida
uasa clave primaria pero no clave foráneas.
usa select update …
cql casi sql
usa tablas
escala horizontal linealmente
polimórfico
no se ejecuta script del lado de servidor
masterlesss
no hay transaccion
concurrencia
no hay un unico punto de fallo
Clase 25:
conectarse a cassandra
desc keyspaces; es para consultar las bases
consultar keyspaces(bases)
crear tablas
select
insert
update
select
consultar cuando pasas algo que no es clave primaria
permite hacer consulta sobre una columna que no es clave primaria sin hacer indice
Clase 26 :
-100% de disponibilidad
-tolerable a fallos
-descentralizado
-arquitectura distribuida
-snitch tiene dos funciones a través de este el nodo sabe como puede enrutar de manera
eficiente las solicitudes. permite distribuir las réplicas. single snicth viene por default.
-masterless
-gossip protocolo de comunicación entre nodo, cada segundo cad nodo se comunica con
hasta 3 nodos
-la distribución de datos se da a través de un hash consistente logra una distribución
uniforme entre los datos que tienen un cluster
paarticionador murmur3
-primary key(componente1, componente2) componente1=partiion key,
componente2=clusterig key)
identificar la partición o nodo del cluster que almacena esa fila
todos son clientes servidores a la vez
snicht dos funciones cada nodo de casandra conoce de latopologia
gossip protocolo de comunicacion de nodos
cql cassandr query language
particiondor
https://www.geroba.com/cassandra/cassandra-token-calculator/
https://www.geroba.com/cassandra/cassandra-token-calculator/
particion key
el primero es particion key y el segundo es clustering jkey
c1,c2 res parttion key y c3,c4 es clustering key
clase 27:
tabla intermedia entre muchos a muchos
clase 28:

Continuar navegando