El diseño de bases de datos consiste en comenzar a planificar como van a estar distribuidas las entidades que van a conformar un sistema de base de datos. Esta planificación debe de considerar las responsabilidades y alcances que va a tener cada entidad así también como sus relaciones con otras entidades.
Para comenzar a diseñar un sistema de base de datos debemos de conocer algunos conceptos fundamentales que nos van a ayudar a este propósito.
Un dato es una representación simbolica, numerica o abstracta, o un atributo o característica sobre alguna entidad. Los datos describen hechos empíricos, sucesos y entidades reales. Un dato puede ser un simple carácter, tal como 'a', un número, o un dibujo, etc.
Un dato es la minima cantidad de información.
La información es un conjunto de datos que está relacionados en base a algo en particular. Cuando tenemos un conjunto de datos podemos afirmar que tenemos información acerca de algo que es utilizado para reducir o incrementar el conocimiento o la incertidumbre sobre algun hecho o fenomeno.
Una base de datos es una colección de información que está organizada dentro de que está organizada dentro de un sistema. A estos sistemas también se les conoce por las siglas de SGBS ( sistema gestor de bases de datos ). Sus siglas en ingles son DMBS (Data Base management System ).
Este es un software que nos va a permitir encapsular datos y nos va a ayudar en su manteniemiento y gestión. Estos gestores está optimizados para almacenar grandes cantidades de información.
Estos sistemas también permiten que varios usuarios pueden manipular los datos de forma concurrente. También se van a garantizar la integridad de los datos.
Los sistemas gestores de bases de datos se van a encontrar clasificados en dos grandes grupos.
- Bases de datos relacionales (SQL)
- Bases de datos no relacioneles (NoSQL)
Las bases de datos relacionales son tipos de bases de datos donde van a existir relaciones entre diferentes entidades. Estas bases de datos normalmente utilizan el lenguaje informactico SQL para realizar las operaciones dentro del sistema.
Este tipo de bases de datos tienen las siguientes ventajas.
Estas también se caracterízan por que la información se almacenan en conjuntos ordenados que podemos denominar como tablas.
Una tabla es el elemento principal en una base de datos relacional. Estas tablas tiene una responsabilidad definida y pueden tener campos relacionados con otras tablas.
Estas tablas dentro de la información que almacena va a eligir a un campo como identificador único, que va ser utilizado para realizar las relaciones con otras tablas.
Estos tipos de bases de datos están diseñados para modelar datos dentro de una estructura mucho más específica y que no necesiten ser relacionados unos datos con otros. Cada unidad va a ser independiente de otras y son muchos más sencillas que otras.
El enfoque de las bases de datos no relacionales se base en tener de forma rápida y simple la mayor cantidad de información por lo que poseen buen rendimiento y son la opción ideal para aplicaciones de tiempo real que necesitan acceso rápido a los datos.
Estas comunmente almacenan los datos en estructuras denominadas documentos que son parecidos a objetos de clave y valor en forma similar al formato JSON, pero no que necesariamente todas las bases de datos de este tipo comparten el mismo modo de almacenar los datos.
Ejemplos de estos sistemas son
- Bases de datos documentales
- Llave y valor
- Grafos
Y algunos nombres son:
- MongoDB
- Redis
- Firebase
- Firestore
Una entidad va a ser un objeto del mundo real que pretendemos controlar dentro del sistema de información. Por ejemplo una persona, un producto, una cuenta, un servicio, una empresa o una factura.
Las entidades al ser objeto van a tener características que lo que los definen. A estas características las podemos conocer con el nombre de atributos.
Lo primero que debemos a hacer al momento de crear una base de datos es crear un listado de entidades que están involucradas en el sistema y sus atributos.
Existen diferentes tipos de entidades las cuales son las siguientes:
- De datos
- Catálogos
- Pivotes
Son aquellas entidaes que van a almacenar la información en el sistema. En ellas vamos a almacenar, capturar e interactuar con los datos.
Las entidades de tipo catálogos funcionan para tener datos precargados y que sean utilizados en las entidades de datos. Estás entidades son utiles para tener la información relevante guardada y que normalmente no va a cambiar.
Por ejemplo en un formulario podemos tener el campo de pais. Dicha información del campo puede venir de una entidad de tipo catalogo donde están almacenados la información sobre los paises disponibles para ese formulario. Esto significa que las entidades de tipo catálogos son usadas por las entidades de datos y que la información de las primeras debe de ser previamente definida y no puede tener muchos cambios brusca en su estructura.
Estas entidades nos van a permitir hacer una relación entre 2 o más entidades. Nos van ayudar a mantener la consistencia y la integridad en el sistema y evitar la duplicidad de datos. También pueden llamarse entidades de enlace o de asociación.
Son las características y propiedades que pueden tener las entidades en una base de datos.
Cada uno de los atributos pueden almacenar datos relacionados a una entidad en específica y dichos datos pueden ser de un tipo de dato en concreto.
Los tipos de datos son un tema común en los lenguajes de programación y también son usados en los gestores de bases de datos para saber que es lo que se está almacenando y que dicho proceso sea más eficiente.
Acontinuación veremos algunos de los tipos de datos que podemos ver dentro de un motor de bases de datos.
- Números enteros y flotantes
- Cadenas y caracteres de texto
- Fechas y horas
- Booleans
- Blobs y archivos
- Datos geográficos
Cada tipo de sistema de base de datos puede tener diferentes tipos de datos y diferentes implementaciones. En general todos los motores de bases de datos dan soporte a los tipos de datos vistos anteriormente.
Este es un acrónimo en el cual tenemos las 4 operaciones más importantes que podemos realizar en un sistema gestor de bases de datos.
Dichas operaciones son las siguientes:
- CREATE
- READ
- UPDATE
- DELETE