Curso BD
Curso BD
Curso BD
Servicios:
Las bases de datos son fundamentales para el desarrollo de sistemas en todas las
organizaciones. En este artículo conocerás cómo funcionan y qué tipos de bases de datos
existen.
12 reglas
https://www.w3resource.com/sql/sql-basic/codd-12-rule-relation.php
https://www.mindmeister.com/es/1079684487/las-12-reglas-de-codd-del-modelo-
relacional?fullscreen=1#
¿Qué es un dato?
Un dato nos permite describir un objeto. Dicho objeto podemos llamarlo entidad, por
ejemplo una casa en la que viven personas. La casa es la entidad y la cantidad de personas
que viven en la casa son un dato, que en este caso es numérico.
Hay diferentes tipos de datos que se pueden tener en una base de datos: caracteres,
numéricos, imágenes, fechas, monedas, texto, bit, decimales y varchar. Hay bases de datos
más o menos adecuadas según el tipo de dato, y hay un proceso para convertir un dato en
información, pues un solo dato por sí mismo no representa nada si no lo vemos en
contraste con otros. Así se identifican comportamientos.
Como su nombre lo indica, utilizan el modelo relacional y siempre es mejor usarlas cuando
los datos que vas a utilizar son consistentes y ya tienen una estructura planificada.
Ejemplos:
MySQL
Microsoft SQL Server
Oracle Database
PostgreSQL
IBM Db2
A diferencia de las bases de datos relacionales, los datos de una base de datos NO-SQL
(Not Only SQL) son más flexibles en cuanto a consistencia de datos y se han convertido en
una opción que intenta solucionar algunas limitaciones que tiene el modelo relacional. Este
tipo de bases de datos es excelente para las organizaciones que buscan almacenar datos no
estructurados o semiestructurados.
Una de las ventajas de las bases de datos NoSQL es que los desarrolladores pueden realizar
cambios en la base de datos sobre la marcha, sin que ello afecte a las aplicaciones que la
utilizan.
Ejemplos:
MongoDB
Redis
Apache Cassandra
Apache CouchDB
CouchBase
La principal característica de esta categoría es que las bases de datos se entregan como un
servicio desde la nube, por lo que su correcta creación, mantenimiento y escalabilidad son
competencia del proveedor de este servicio. Este tipo de bases de datos ha crecido
exponencialmente con la era de internet y los IaaS (Infrastructure as a Service).
Ejemplos:
Google Firebase
Microsoft Azure SQL Database
Amazon Relational Database Service
Oracle Autonomous Database.
También conocidas como almacenes de datos en columnas, las bases de datos en columnas
tienen la particularidad de guardar los datos en columnas en lugar de en filas, que es como
se guardan comúnmente. Estos tipos de bases de datos se utilizan a menudo en los grandes
almacenes de datos porque su funcionalidad sirve para realizar consultas analíticas.
Cuando se consulta una base de datos en columnas, básicamente se ignoran todos los datos
que no se aplican a la consulta específica, ya que solo se puede recuperar la información de
las columnas que se desea. Esta es una gran ventaja al encontrarse con datasets de
proporciones gigantescas, con millones de registros.
Ejemplos:
Google BigQuery
Cassandra
HBase
MariaDB
Azure SQL Data Warehouse
Las bases de datos de columnas anchas tienen la ventaja de ser altamente escalables,
pudiendo manejar incluso petabytes de datos en sus registros, lo que las hace ideales para
soportar aplicaciones de big data en tiempo real.
Ejemplos:
BigTable
Apache Cassandra
Scylla
Las bases de datos orientadas a objetos se gestionan mediante sistemas de gestión de bases
de datos orientados a objetos (OODBMS - Object Oriented DataBase Management
System).
Estas bases de datos funcionan bien con lenguajes de programación orientados a objetos,
como C++ y Java.
Uno de los tipos más sencillos de bases de datos NoSQL, las bases de datos clave-valor
guardan los datos como un grupo de pares clave-valor formados por dos elementos de datos
cada uno.
A veces también se denominan almacén de valor-clave.
Las bases de datos clave-valor son altamente escalables y pueden manejar grandes
volúmenes de tráfico, lo que las hace ideales para procesos como la gestión de sesiones
para aplicaciones web, sesiones de usuario para juegos masivos en línea y carritos de
compra en línea.
8. Bases de datos jerárquicas
Fueron originalmente un esfuerzo por parte de IBM a principios de los años 60. Estas bases
de datos se utilizan más comúnmente para soportar aplicaciones de alto rendimiento y alta
disponibilidad, entendiéndose dentro de un rango jerárquico que usualmente sirve para
permitir accesos.
Ejemplos:
A veces conocidas también como bases de datos orientadas a documentos (DODB), las
bases de datos de documentos están diseñadas para almacenar y gestionar información
orientada a documentos, también conocida como datos semiestructurados.
Las bases de datos de documentos son sencillas y escalables, lo que las hace útiles para las
aplicaciones móviles que necesitan iteraciones rápidas.
Ejemplos:
MongoDB
Amazon DocumentDB
Apache CouchDB
Las bases de datos gráficas se emplean a menudo para analizar las relaciones entre puntos
de datos heterogéneos y encontrar relaciones, como en la prevención del fraude o para la
extracción de datos sobre los clientes de las redes sociales.
Ejemplos:
Estas bases de datos están optimizadas para llevar una marca de tiempo o timestamp, lo que
las hace útiles para monitoreo. Algunos ejemplos de este tipo de datos son los datos de red,
los datos de los sensores y los datos de monitorio de rendimiento de software.
Ejemplos:
Druid
eXtremeDB
InfluxDB
Para que comprendas un poco mejor cómo se estructuran las bases de datos, piensa en el
funcionamiento de una aerolínea que cuenta con aplicaciones para hacer reservas y trabaja
desde distintas rutas. Todas las personas que van a viajar tienen que proveer datos para
hacer una reservación de una ruta específica, por ejemplo, la fecha en que van a viajar.
Para decidir entre una base de datos SQL o NoSQL, debes reflexionar en la relación entre
los diferentes tipos de datos que vas a almacenar: si pueden vivir separados y no tienen
relaciones, puedes utilizar una base de datos NoSQL. Pero si necesitas relacionar esos datos
entre sí, es mejor una base de datos SQL.
Siguientes pasos
Esto es solamente una introducción a lo que puedes aprender en el Curso de Fundamentos
de Bases de Datos. Todos y todas utillizamos las bases de datos más de lo que nos
imaginamos, cada vez que usamos el teléfono, hacemos una compra o cuando hacemos una
transacción bancaria. Si estás empezando un proyecto nuevo o vas a aprender a programar,
es importante que conozcas cómo funcionan.
Si te gusto este tema, aprende cómo comenzar el diseño de una base de datos relacional
para manejar de mejor manera la estructura tus datos.
Las bases de datos surgen de la necesidad de conservar la información más allá de lo que
existe en la memoria RAM.
Las bases de datos basadas en archivos eran datos guardados en texto plano, fáciles de
guardar pero muy difíciles de consultar y por la necesidad de mejorar esto nacen las bases
de datos relacionales. Su inventor Edgar Codd dejó ciertas reglas para asegurarse de que
toda la filosofía de las bases de datos no se perdiera, estandarizando el proceso.
Qué son entidades y atributos
En bases de datos, una entidad es la representación de un objeto o concepto del mundo real
que se describe en una base de datos. Las entidades se describen en la estructura de la base
de datos empleando un modelo de datos.
¿Qué es un atributo?
Son las características o propiedades que describen a la entidad (se encierra en un óvalo).
Los atributos se componen de:
Tipos de entidades
Entidades fuertes: son entidades que pueden sobrevivir por sí solas.
Entidades débiles: no pueden existir sin una entidad fuerte y se representan con un
cuadrado con doble línea.
Identidades débiles por identidad: no se diferencian entre sí más que por la clave de
su identidad fuerte.
Identidades débiles por existencia: se les asigna una clave propia.
Relaciones
Las relaciones nos permiten ligar o unir nuestras diferentes entidades y se representan con
rombos. Por convención se definen a través de verbos.
Las relaciones tienen una propiedad llamada cardinalidad y tiene que ver con números.
Cuántos de un lado pertenecen a cuántos del otro lado:
Cardinalidad: 1 a 1
Cardinalidad: 0 a 1
Cardinalidad: 1 a N
Cardinalidad: 0 a N
Relaciones
Las relaciones, representadas por un rombo, sirven para crear relaciones entre
entidades. Por convención las relaciones son verbos que conectan entidades. Existen
entidades multivaluadas o compuestas que tienen vida propia y se relacionan con
otras entidades, por lo que se pueden normalizar (concepto que se explicará luego)
Cardinalidad
Es una propiedad de las relaciones que indica la cantidad y correspondencia con la
que puede estar relacionada una entidad y puede ser uno a uno, uno a varios, varios
a uno y varios a varios.
Múltiples muchos
Cardinalidades múltiples muchos: También conocida como “Muchos a Muchos”. Es el tipo de
cardinalidad en el que muchas entidades de un tipo, pertenecen a muchas entidades de otro, la
cual debe ser normalizada y relacionada a partir de llaves foráneas.
Diagrama ER
7/58
Recursos
Marcadores
Un diagrama es como un mapa y nos ayuda a entender cuáles son las entidades con las que
vamos a trabajar, cuáles son sus relaciones y qué papel van a jugar en las aplicaciones de la
base de datos.
Diagrama Físico: tipos de datos y constraints
8/58
Recursos
Marcadores
Para llevar a la práctica un diagrama debemos ir más allá y darle detalle con parámetros
como:
Tipos de dato:
Constraints (Restricciones)
Marcadores
La normalización como su nombre lo indica nos ayuda a dejar todo de una forma normal.
Esto obedece a las 12 reglas de Codd y nos permiten separar componentes en la base de
datos:
La normalización en las bases de datos relacionales es uno de esos temas que, por un lado
es sumamente importante y por el otro suena algo esotérico. Vamos a tratar de entender las
formas normales (FN) de una manera simple para que puedas aplicarlas en tus proyectos
profesionales.
Todos los atributos son atómicos. Un atributo es atómico si los elementos del
dominio son simples e indivisibles.
No debe existir variación en el número de columnas.
Los campos no clave deben identificarse por la clave (dependencia funcional).
Debe existir una independencia del orden tanto de las filas como de las columnas; es
decir, si los datos cambian de orden no deben cambiar sus significados.
Todos los campos que no se consideran clave deben depender de manera única por el o los
campos que si son clave.
Los campos deben ser tales que si reordenamos los registros o reordenamos las columnas,
cada dato no pierda el significado.
Está en 1FN
Sí los atributos que no forman parte de ninguna clave dependen de forma completa
de la clave principal. Es decir, que no existen dependencias parciales.
Todos los atributos que no son clave principal deben depender únicamente de la
clave principal.
Lo anterior quiere decir que sí tenemos datos que pertenecen a diversas entidades, cada
entidad debe tener un campo clave separado. Por ejemplo:
En la tabla anterior tenemos por lo menos dos entidades que debemos separar para que cada
uno dependa de manera única de su campo llave o ID. En este caso las entidades son
alumnos por un lado y materias por el otro. En el ejemplo anterior, quedaría de la siguiente
manera:
Tercera Forma Normal (3FN)
Esta FN nos ayuda a separar conceptualmente las entidades que no son dependientes.
Se encuentra en 2FN
No existe ninguna dependencia funcional transitiva en los atributos que no son clave
Esta FN se traduce en que aquellos datos que no pertenecen a la entidad deben tener una
independencia de las demás y debe tener un campo clave propio. Continuando con el
ejemplo anterior, al aplicar la 3FN separamos la tabla alumnos ya que contiene datos de los
cursos en ella quedando de la siguiente manera.
Cuarta Forma Normal (4FN)
Esta FN nos trata de atomizar los datos multivaluados de manera que no tengamos datos
repetidos entre rows.
Se encuentra en 3FN
Los campos multivaluados se identifican por una clave única
Esta FN trata de eliminar registros duplicados en una entidad, es decir que cada registro
tenga un contenido único y de necesitar repetir la data en los resultados se realiza a través
de claves foráneas.
Algunos autores precisan una 5FN que hace referencia a que después de realizar esta
normalización a través de uniones (JOIN) permita regresar a la data original de la cual
partió.
Diagrama Físico: normalizando Platziblog
Recursos
Marcadores
En este curso usaremos MySQL porque tiene un impacto histórico siendo muy utilizado y
además es software libre y gratuito. La versión 5.6.43 es compatible con la mayoría de
aplicaciones y frameworks.
Root es el usuario principal que tendrá todos los permisos y por lo tanto en ambientes de
producción hay que tener mucho cuidado al configurarlo.
Recursos
Marcadores
La diferencia entre ambos es que las BBDD son un conjunto de datos pertenecientes ( o al
menos en teoría) a un mismo tipo de contexto, que guarda los datos de forma persistente
para un posterior uso, y el Sistema de gestión de BBDD o sistema manejador, es el que nos
permite acceder a ella, es un software, herramienta que sirve de conexión entre las BBDD y
el usuario (nos presenta una interfaz para poder gestionarla, manejarla).
RDBMS
MySQL
PostgreSQL
Etc
Todas toman un lenguaje base, pero cada uno lo apropia, imponiéndole diferentes reglas y
características.
La diferencia entre ambos es que las BBDD son un conjunto de datos pertenecientes ( o al
menos en teoría) a un mismo tipo de contexto, que guarda los datos de forma persistente
para un posterior uso, y el Sistema de gestión de BBDD o sistema manejador, es el que nos
permite acceder a ella, es un software, herramienta que sirve de conexión entre las BBDD y
el usuario (nos presenta una interfaz para poder gestionarla, manejarla).
RDBMS
MySQL
PostgreSQL
Etc
Todas toman un lenguaje base, pero cada uno lo apropia, imponiéndole diferentes reglas y
características.
https://dev.mysql.com/downloads/workbench/
https://dev.mysql.com/downloads/mysql/5.7.html
Instalación local de un RDBMS (Ubuntu)
15/58
Lectura
En la siguiente pantalla nos piden que nos registremos o iniciemos sesión, pero ya que solo
queremos la descarga daremos click en el link que se encuentre en la parte de abajo.
Espera a que la descarga concluya.
Al terminar abre el archivo .tar con el desempaquetador de tu preferencia.
instalado.
Da click en instalar.
Finalmente puedes ir a la consola o terminal de Ubuntu y escribir el siguiente comando.
sudo mysql
A continuación deberá aparecer una ventana con el prompt de mysql donde ya puedes
comenzar a ejecutar los comandos de las lecciones.
Nota: recuerda estar seguro que las dependencias para el paquete se cumplen para instalar.
Nota: muchas veces las distribuciones ya cuentan con paquetes en su repositorio, en ese
caso también puedes ejecutar el comando:
sudo apt-get install mysql-server
Clientes gráficos
Servicios administrados
Hoy en día muchas empresas ya no tienen instalados en sus servidores los RDBMS sino
que los contratan a otras personas. Estos servicios administrados cloud te permiten
concentrarte en la base de datos y no en su administración y actualización.
¿Qué es un servicio cloud o administrado?
Son servicios que se encargan de administrar y actualizar las bases de datos, computadoras,
redes, parches de seguridad, sistemas operativos
Administran el entorno de la base de datos
Permiten concentrarse en operar la base de datos y el manejador
Son relativamente económicos
¿Qué beneficios tiene el usuario root?
Puede acceder de manera completa a la base de datos
¿Qué es la localización?
Donde está ubicado el servidor
El tiempo de consulta de una base de datos depende de la localización
¿Qué es la gráfica de utilización?
La gráfica donde nos muestra cuántas veces se ha utilizado una base de datos
¿Qué es Cloud Shell?
Versión web del símbolo de sistema, sirve para introducir comandos
Son maquinas virtuales y temporales de la nube
Notas
Actualmente, muchas empresas no tienen instalados los RBDMS en servidores o en
maquinas locales, así que utilizan servicios cloud o administrados
Servicios administrados
AWS,Google Cloud Platform,Oracle, Azure
Conexiones
En Overview, ir a connect to this instance y seleccionar Cloud Shell
Se genera una nueva maquina y se establece una conexión
Busca si nuestra IP está permitida en Google
Se conecta a la base de datos con el usuario SQL con más permisos en sistema y debes de
introducir la contraseña que creaste en la instancia y finalmente dar Enter para ingresar a la
base de datos
Lecturas recomendadas
:
https://console.cloud.google.com/getting-started?pli=1