Bases de Datos (BD)
En nuestra vida diaria, aunque no nos percatemos, hacemos y hemos usado las Bases de Datos, por ejemplo: nuestros apuntes de la escuela. Esto es porque, tenemos nuestra información de cada materia organizada por libretas y, a su vez, por unidades.
De acuerdo con los Conceptos Básicos, una Base de Datos nos ayuda a persistir la información. Permitiéndonos poder accesarla en cualquier momento que lo necesitemos y, dentro del mundo del desarrollo de software, es imprescindible conocer acerca de éstas.
Características
Una Base de Datos, para poder llamarse así, debe cumplir con las siguientes características:
- Versatilidad en la representación de la información
- Desempeño
- Redundancia
Para las Bases de Datos Relacionales, debe ser mínima, es decir, no debe haber datos repetidos o debe ser mínimo.
Para las Bases de Datos No Relacionales, las redundancia puede aceptarse
- Simplicidad
- Integridad
- Seguridad
- Privacidad
Tipos de Bases de Datos
Básicamente, tenemos 2 tipos de Bases de Datos:
- Relacionales
- Evitan la redundancia
- Es necesario la Normalización de las Bases de Datos
- Utiliza un lenguaje estándar, SQL (Structured Query Language), entre diferentes DBMS varía un poco, pero estas variaciones corresponden a particularidades o el plus de cada sistema.
- Las más conocidas son:
- SQL Server (De paga de Microsoft)
- PostgreSQL (Open Source)
- MySQL (uso libre de Oracle)
- MariaDB (copia de MySQL, creada después de que Oracle compró MySQL)
- Oracle (De paga de Oracle)
- No Relacionales
- Su objetivo, es consultar grandes cantidades de información de manera eficiente
- Permite la redundancia, es decir, permite repetir información para evitar el uso de join's
- Aquí se engloban todas las que son No Relacionales, de las cuales, algunas de las más importantes son:
- Clave-Valor
Son ideales para almacenar y extraer datos con una clave única. Manejan los diccionarios de manera excepcional.(DynamoDB, Cassandra) - Basada en Documentos.
Implementación de las anteriores, que varía en la forma en que trata la información. Para almacenar datos JSON y XML. (MongoDB, Firestore) - Basada en Grafos.
sirven para entidades que se encuentran interconectadas por múltiples relaciones. Ideales para almacenar relaciones complejas (neo4j, TITAN) - En memoria.
Pueden ser de estructura variada, pero su ventaja radica en la velocidad, ya que al vivir en memoria la extracción de datos es casi inmediata. (Memcached, Redis) - Optimizadas para búsquedas.
Pueden ser de diversas estructuras, su ventaja radica en que se pueden hacer queries y búsquedas complejas de manera sencilla (BigQuery, Elasticsearch)