sábado, 3 de julio de 2021

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
No importa cómo almacenemos la información, la Base de Datos debe permitir consultar la información de diferentes maneras para poder mostrarla de acuerdo a las necesidades del problema a resolver.
  • Desempeño
Debe ser ágil y eficiente al momento de insertar y consultar información.
  • 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
Debe ser sencilla para poder realizar todas las operaciones necesarias (editar, borrar, crear, etc)
  • Integridad
No debe permitir que los datos cambien en el tiempo, un dato debe ser siempre el mismo  hasta que alguien autorizado lo borre o lo actualice.
  • Seguridad
Debe permitir administrar los permisos de los usuarios, para agregar, editar, eliminar información.
  • Privacidad
La infromación solo debe poder ser accesada por los usuarios a los que se le haya dado autorización

 

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)
Continúa con: BD Relacionales
  • 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)
 

Sistema GEstor de Base de Datos (SGBD)

También llamado DBMS (Data Base Management System), es el Software que permite administrar todos los objetos de una Base de Datos.
La Base de Datos solo guarda la información con una estructura específica (de acuerdo al tipo de BD) y, esta base de datos necesita un motor que permita almacenarla, consultarla, etc. Lo que nosotros aprendemos son estos motroes de bases de datos.

 

Conceptos Básicos

Para entender el diseño de Bases de Datos, es necesario conocer los siguientes conceptos:

Dato

Es la unidad más pequeña de información que, en conjunto con otros datos, generan información dentro de un contexto.

Información

Es el conjunto de Datos procesados y organizados, de tal manera, que ofrecen conocimiento en un contexto determinado.

Campo

Es la columna de una tabla, donde solo se guarda 1 solo tipo de dato.

Registro

Es el conjunto de datos relacionados que contiene información de 1 elemento.

Tabla

Es un conjunto de registros relacionados.

Llave Primaria (Primary Key)

Es el campo que identifica, de manera única, a un registro dentro de una tabla.

Llave Foránea (Foreign Key)

Es la llave primaria de una tabla que se encuentra en otra, con el fin de representar una relación entre ambas.

Cardinalidad

Indica el tipo de relación entre tablas, permitiendo identificar cuántos elementos de una tabla le corresponden a 1 elemento de otra tabla y viceversa.

Base de Datos (Data Base)

Conjunto de datos relacionados y organizados en una estructura definidia de acuerdo con el tipo de bases de datos usado.

Sistema Gestor de Base de Datos (Data Base Management System)

Es el Software que permite la creación, almacenamiento, modificación y extracción de información de una Base de Datos.

Planteamiento del Problema

Actualmente realizo, entre otras cosas, seguimiento y creación de una base de datos en Excel para llevar un registro de las personas que envían su CV para postularse a alguna vacante.

En esta BD, arego los siguientes datos:

  • Nombre
  • Teléfono
  • Email
  • Dirección
  • Fecha de nacimiento
  • Resumen de su CV
  • Posiciones a las que puede aspirar del proyecto
  • Licenciaturas
  • Maestrías
  • Años de experiencia según su CV
  • Saber si está en propuesta y, de haberlo estado, saber qué posición de propuesta es
  • Años de experiencia válidas para el proyecto en cuestión
  • Observaciones

Dentro de las reestricciones para estos datos, tendremos:

  • Nombre. Se compone de Apellido Paterno y Materno, siendo obligatorios el nombre y el apellido paterno, el materno puede estar vacío. Este dato se buscará en una tabla de personal propuesta y, si coincide mostrará el o los nombres parecidos para corroborar los datos y, de ser la misma persona trasladará los datos de la propuesta, para poder actualizarlos.
  • Teléfono. Un candidato puede dar más de 1 teléfono para localizarlo
  • Email. Puede dar más de 1 para poder localizarlo.
  • Para Teléfono o Email, se debe ingresar al menos 1 dato, ya sea teléfono o email, pero no pueden quedar los dos vacíos y pueden tener varios elementos cada uno.
  • Dirección, no es de tanta relevancia por lo que se puede escribir de cualquier manera, no se dividirá
  • Fecha de nacimiento, será en formato dd/mm/aaaa
  • Resumen de CV, será un resumen de la siguiente manera:
    • inicio - fin, son los periodo de inicio y término de la experiencia
    • empresa, es donde laboró
    • dependencia, empresa para la que trabajó, esto es porque interesa si es alguna dependencia de gobierno
    • Tipo de proyecto ejecutado (hospitales, vías terrestres y/o ferroviarias, casa habitación, centros comerciales, parque fotovoltáico, parque eólico)
    • cargo, el puesto desempeñado
    • contacto, puede o no tenerlo, son los datos de nombre completo, correo y/o teléfono
    • Un resumen de cv se compone de líneas, donde un candidato tendrá muchas líneas de resumen de cv
  • Posiciones. Son las posibles posiciones a las que puede aspirar un candidato en el proyecto en cuestión, pudiendo ser ninguna o varias
  • Licenciaturas y Maestrías, son las carreras que puede tener. Se contemplan las ya terminadas y que tenga, al menos, alguno de los siguientes documentos:
    • Cédula (número)
    • Título (sí o no)
    • Constancia de termino (sí o no)
  • Años de experiencia CV, son los años que se cuentan dentro del CV, se calculará automáticamente.
  • Propuesta, es para saber si el candidato ya había sido considerado en propuesta
  • Años relevantes, son los años que son de importancia para el proyecto (estos son proyectos de la empresa). Estos se toman del CV enviado y, de ser de propuesta, se llenará solo al traer el nombre.
  • Observaciones. Serán las observaciones que tenga cualquier usuario sobre el candidato. Al ser una BD para manejar dentro de alguna empresa, serán empleados los usuarios registrados, por lo que tendremos los siguientes tipos de usuarios:
    • Administrador, que será quien de de alta a los usuarios y administre la BD
    • Autorizado, que serán los que pueden operar sobre la base de datos, realizando consultas y todas las operaciones CRUD (create, read, update, delete*).
    • Colaborador, serán todos los empleados que no eson autorizados y solo podrán realizar consultas
    • Todas las observaciones de un candidado, tendrán un id de empleado, para saber qué empleado hizo la observación.
    • Cada observación

La Base de Datos Candidatos, será una Base de Datos que servirá de consulta para poder encontrar candidatos y poder llamar de ser necesario contactar a alguno. Por lo tanto, las posibles consultas serán:

  • Candidatos que tengan licenciatura
  • Candidatos que tengan licenciatura y maestría
  • Candidatos por licenciatura y/o maestría específicas, y/o años de experiencia
  • Candidatos por tipo de proyecto
  • Candidatos por proyecto de empresa y que tengan licenciatura, esto es, para poder buscar los posibles candidates que hubo en un proyecto
  • Candidatos por proyecto de empresa y que tengan licenciatura y maestría
  • Candidatos por cargo ocupado en su vida laboral
  • Candidatos por dependencia a la que le trabajaron
  • Candidatos por tipo de proyecto donde laboró
  • Consultar observaciones
  • También, los usuarios Autorizados, podrán realizar las siguientes operaciones (además de consultas):
    • Agregar, editar candidatos
    • Agregar, editar resúmentes de cv
    • Agregar, editar licenciaturas y maestrías
    • Agregar, editar dependencias, empresas y proyectos para los resúmenes de CV
    • Agregar, editar posiciones del proyecto de la empresa
    • Agregar, editar proyecto de la empresa
    • Agregar,, editar tipos de proyectos para los resúmenes
  • El administrador, podrá:
    • Agregar, editar, eliminar cualquier tipo de usuario y, eliminar datos de las BD

 Una vez que tenemos los datos, procedemos al análisis para realizar el diagrama entidad relación.


Continúa con:

Introducción

En este blog trataré de explicar y repdoducir lo aprendido durante este año en la carrera de Desarrollo de Software.

Soy Ingeniero Civil, con pasión por la creación de Software para facilitar mi trabajo, principalmente administrativo, actualmente estudiando la carrera de Desarrollo de Software en la Universidad Abierta y a Distancia de México (UnADM).

Para ejemplificar lo aprendido, realizaré algunos pequeños desarrollos que me ayudarán tanto en el trabajo como en el estudio, tratando de seguir las buenas prácticas aprendidas. Por lo que, si alguién con experiencia quiere aportar y corregir, bienvenido sean sus crítica constructivas ya que, como mencioné anteriormente, estoy empezando y servirá de ayuda para cualquiera que visite este blog.

Gracias y comencemos.


Continúa con: Planteamiento del Problema

Bases de Datos (BD) En nuestra vida diaria, aunque no nos percatemos, hacemos y hemos usado las Bases de Datos, por ejemplo: nuestros apunte...