Descarga la aplicación para disfrutar aún más
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:
Compartir