miércoles, 17 de abril de 2019

Conceptos Básicos de Bases de Datos

Esta entrada está dedicada principalmente para todas aquellas personas las cuales son amantes del maravilloso mundo de la programación. En este caso, podrás aprender algunos conceptos básicos de cuando programar utilizando bases de datos se trata. Sin más que decir te invito a que aprendas cada día más visitando mi bloc.¡Comencemos!


¿Qué es un sistema de información de datos?


Por definición es un conjunto de elementos que interactúan entre sí con un fin común; que permite que la información esté disponible para satisfacer las necesidades en una organización, un sistema de información no siempre requiere contar con recuso computacional aunque la disposición del mismo facilita el manejo e interpretación de la información por los usuarios.
Los elementos que interactúan entre sí son: el equipo computacional (cuando este disponible), el recurso humano, los datos o información fuente, programas ejecutados por las computadoras, las telecomunicaciones y los procedimientos de políticas y reglas de operación.
Resultado de imagen para sistema de informacion


Un Sistema de Información realiza cuatro actividades básicas:


  • Entrada de información: proceso en el cual el sistema toma los datos que requiere.
  • Almacenamiento de información: pude hacerse por computadora o archivos físicos para conservar la información.
  • Procesamiento de la información: permite la transformación de los datos fuente en información que puede ser utilizada para la toma de decisiones
  • Salida de información: es la capacidad del sistema para producir  la información procesada o  sacar  los datos de entrada al exterior.
Los usuarios de los sistemas de información tienen diferente grado de participación dentro de un sistema y son el elemento principal que lo integra, así se puede definir usuarios primarios quienes alimentan el sistema, usuarios indirectos que se benefician de los  resultados pero que no interactúan con el sistema,  usuarios gerenciales y directivos quienes tienen responsabilidad administrativa y de toma de decisiones con base a la información que produce el sistema.


¿Qué es una base de datos?


Una base de datos (A veces se utiliza DB, de database en inglés, para referirse a las bases de datos) es un “almacén” que nos permite guardar grandes cantidades de información de forma organizada para que luego podamos encontrar y utilizar fácilmente. 


Monografias.com



Una base de datos proporciona a los usuarios el acceso a datos, que pueden visualizar, ingresar o actualizar, en concordancia con los derechos de acceso que se les hayan otorgado. Se convierte más útil a medida que la cantidad de datos almacenados crece.
Una base de datos puede ser local, es decir que puede utilizarla sólo un usuario en un equipo, o puede ser distribuida, es decir que la información se almacena en equipos remotos y se puede acceder a ella a través de una red.

La principal ventaja de utilizar bases de datos es que múltiples usuarios pueden acceder a ellas al mismo tiempo.

Características:

Entre las principales características de los sistemas de base de datos podemos mencionar:


  • Independencia lógica y física de los datos.
  • Redundancia mínima.
  • Acceso concurrente por parte de múltiples usuarios.
  • Integridad de los datos.
  • Consultas complejas optimizadas.
  • Seguridad de acceso y auditoría.
  • Respaldo y recuperación.




¿Qué es un sistema de gestión de bases de datos?


Los Sistemas de Gestión de Base de Datos (en inglés DataBase Management System) son un tipo de software muy específico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan. Se compone de un lenguaje de definición de datos, de un lenguaje de manipulación de datos y de un lenguaje de consulta.
Este sistema, permite la creación, gestión y administración de bases de datos, así como la elección y manejo de las estructuras necesarias para el almacenamiento y búsqueda de información del modo más eficiente posible.




En resumen, Son las herramientas (en su mayoría software) que nos ayudan a gestionar bancos de información, es decir, bases de datos. Ejemplos de ellos son: 

  • La agenda de la Abuela (Sí, aunque no lo creas, ese cuaderno con contactos que tu abue tiene al lado del teléfono en casa, es un SGBD).
  • Excel.
  • Access.
  • SQL Lite.
  • MySQL.
  • MariaDB.
  • Oracle.
  • MS SQL Server.
  • PostgreSQL.
  • Informix.
  • MongoDB.
  • RethinkDB.
  • Redis.
  • Cassandra.
  • Neo4j.
  • GraphDB.
  • etc.



¿Qué es un administrador de bases de datos?


Los administradores de bases de datos (también conocido como DBA, en inglés database administrator) gestionan y mantienen las bases de datos informatizadas. Se aseguran de que estas sean seguras y estén actualizadas. Estos profesionales trabajan sobre las formas de reorganizar las bases de datos para hacerlas más rápidas o más fáciles de usar. Crean sistemas de respaldo para que los datos no se pierdan si surgen problemas en la base datos.


Resultado de imagen para administradores de bases de datos


Los administradores de bases de datos trabajan en estrecha colaboración con los usuarios de la base de datos, averiguando si hay algún problema y evaluando la capacidad del sistema para hacer frente a la demanda.
También pueden modificar la base de datos para que sea más fácil de usar o para ampliarla, tal vez mediante la adición de nuevos espacios (llamados campos) para contener datos adicionales. Reorganizan y reestructuran los datos para que respondan mejor a las necesidades de los usuarios. Se mantienen al día de la tecnología de base de datos, planifican e implementan las actualizaciones a nuevas versiones y asesoran a los administradores sobre cuestiones de bases de datos.

Los administradores deben establecer sistemas de respaldo fiables para que no se pierdan los datos si se produce una avería. Además, es muy importante su participación a la hora de decidir cómo diseñar y proyectar las bases de datos, a menudo trabajando con analistas de sistemas, desarrolladores y programadores de software.




¿Qué es un modelo entidad-relación?


Es un diagrama que permite representar las entidades relevantes de un sistema de información así como sus interrelaciones y propiedades. Formalmente, los diagramas ER son un lenguaje gráfico para describir conceptos. Informalmente, son simples dibujos o gráficos que describen información que trata un sistema de información y el software que lo automatiza.
Elementos del Modelo Entidad-Relación;:

  • Entidades Son objetos distinguible del resto; por ejemplo; en un sistema bancario, las personas y las cuentas son entidades. Éstas pueden ser entes concretos, como una persona o un avión, o abstractas, como un préstamo o una reserva. Se representan por medio de un rectángulo.


  • Atributos Con propiedades de las entidades. Se representan mediante un círculo o elipse, cuando un atributo es identificativo de la entidad se subraya.


  • Relación Describe la dependencia entre entidades o permite la asociación de las mismas; por ejemplo; tenemos 2 entidades CLIENTE y HABITACIÓN, una relación sería que el cliente 'Pepito' tiene 'ocupada' la habitación '519'. Se representan por medio de un verbo de acción dentro de un rombo que une entidades.


Ejemplo de diagrama entidad-relación:




Modelo ER Maratones



¿Qué es una tabla, un registro y un campo?

Tabla en las bases de datos, se refiere al tipo de modelado de datos, donde se guardan y almacenan los datos recogidos por un programa. Su estructura general se asemeja a la vista general de un programa de hoja de cálculo.
Una tabla es utilizada para organizar y presentar información. Las tablas se componen de filas y columnas de celdas que se pueden rellenar con textos y gráficos.
Las tablas se componen de dos estructuras:



  • Registro: es cada una de las filas en que se divide la tabla. Cada registro contiene datos de los mismos tipos que los demás registros. Ejemplo: en una tabla de nombres ,direcciones, etc, cada fila contendrá un nombre y una dirección.


  • Campo: es cada una de las columnas que forman la tabla. Contienen datos de tipo diferente a los de otros campos. En el ejemplo anterior, un campo contendrá un tipo de datos único, como una dirección, o un número de teléfono, un nombre, etc.



A los campos se les puede asignar, además, propiedades especiales que afectan a los registros insertados. El campo puede ser definido como índice o autoincrementable, lo cual permite que los datos de ese campo cambien solos o sean el principal a la hora de ordenar los datos contenidos.
Cada tabla creada contiene creadores que lo crearon, debe tener un nombre único en la Base de Datos, haciéndola accesible mediante su nombre o su seudónimo (Alias) (dependiendo del tipo de base de datos elegida). La estructura de las tablas viene dada por la forma de un archivo plano, los cuales en un inicio se componían de un modo similar.
Las tablas son los objetos principales de bases de datos que se utilizan para guardar datos.

Resultado de imagen para tabla registro y campo



¿Qué es una llave principal y una llave foránea?

La clave o llave primaria es un campo, o grupo de campos que identifica en forma única un registro. Ningún otro registro puede tener la misma llave primaria. La llave primaria se utiliza para distinguir un registro con el fin de que se pueda  tener acceso a ellos, organizarlos y manipularlos. En el caso de un registro de un empleado, él numero de este representa  un ejemplo de una llave primaria.



Por otro lado, la llave o clave foránea (También llamada llave externa) es uno o mas campos de un tabla que hacen referencia al campo o campos de clave principal de otra tabla, una clave externa indica como esta relacionadas las tablas. Los datos en los campos de clave externa y clave principal deben coincidir, aunque los nombres de los campos no sean los mismos.



La Llave Foránea también se determinar en el momento de las relaciones entre las tablas en la cual la Llave Primaria se realizar la unión con el otro campo de otra tabla y automáticamente se vuelve una llave foránea.


Resultado de imagen para llave foranea


¿Qué tipo de relaciones pueden darse entre entidades?

Existen tres tipos de relaciones, que son: uno a uno, una a varios y varios a varios.

Relaciones uno a uno:
Se creará una relación de este tipo si ambos campos relacionados son claves principales. En este tipo de relación, un registro de la tabla uno sólo puede estar relacionado con un único registro de la tabla dos y viceversa. No es muy usada.



En una relación uno a uno cada registro de la Tabla MATERIA sólo puede tener un registro coincidente en la Tabla PROFESOR y viceversa. 

En este ejemplo se está representando que cada materia solamente puede ser dada por un profesor. 


Relaciones uno a varios:
Se crea una relación de uno a varios si uno de los campos relacionados es una clave principal. Esta relación es la más común. Cada registro de una tabla puede estar enlazado con varios registros de una segunda tabla, pero cada registro de la segunda sólo puede estar enlazado con un único registro de la primera.


En este modelo se representa que, más de un PROFESOR puede dictar la misma MATERIA. 

En la relación uno a varios un registro de la Tabla MATERIA puede tener muchos registros coincidentes en la Tabla PROFESOR, pero un registro de la Tabla PROFESOR sólo tiene un registro coincidente en la Tabla MATERIA.  


En este modelo se representa un PROFESOR puede dictar varias MATERIAS. 


Relación varios a varios: 
En una relación varios a varios, un registro de la Tabla A puede tener muchos registros coincidentes en la Tabla B y viceversa. Este tipo de relación sólo es posible si se define una tercera tabla (denominada tabla de unión), cuya clave principal consta de al menos dos campos; y que además, estos campos, correspondan a las claves externas de las Tablas A y B. 

En este caso, ninguno de los campos relacionados son claves principales. Cada registro de la primera tabla puede estar enlazado con varios registros de la segunda y viceversa. Este tipo de relación implica la repetición de los campos de cada tabla; Para establecer relaciones de este tipo, es necesario crear una tabla intermedia que esté relacionada con las dos de uno a varios.





¿Cuáles son las formas de normalización de una base de datos?


El proceso de normalización de bases de datos consiste en designar y aplicar una serie de reglas a las relaciones obtenidas tras el modelo entidad-relación.

Las bases de datos relacionales se normalizan para:

  • Evitar la redundancia de los datos.
  • Disminuir problemas de actualización de los datos en las tablas.
  • Proteger la integridad de los datos.

Para que las tablas de nuestra BD estén normalizadas deben cumplir las siguientes reglas:

  • Cada tabla debe tener su nombre único.
  • No puede haber dos filas iguales.
  • No se permiten los duplicados.
  • Todos los datos en una columna deben ser del mismo tipo.

Existen 5 niveles de normalización que deben respetarse para poder decir que nuestra BDs, se encuentra NORMALIZADA, es decir, que cumple con los requisitos naturales para funcionar optimamente y no perjudicar el rendimiento por mala arquitectura.

Estas 5 reglas de Normalización se les conoce como las 5 FORMAS NORMALES. A continuación te explico las formas normales con un ejemplo.


Pensemos que tenemos dos alumnos que cursarán ambas materias: Juanito en maestría y Pepito en licenciatura, nuestro modelo de datos podría quedar de la siguiente manera:

Sin Normalizar:


ALUMNOS
alumnoestudio_nivelestudio_nombremateria_1materia_2
JuanitoMaestríaMedios VirtualesMySQLPHP
PepitoLicenciaturaDiseño DigitalMySQLPHP



Como podemos ver en la tabla anterior, tenemos los registros de ambos estudiantes con ambas materias asignadas, pero esto es poco funcional, imaginemos que cada estudiante tuviera más materias en su horario, eso significaría, agregarle más columnas a cada alumno, lo que no es muy óptimo.

Primera Forma Normal:

NO repetir campos en las tablas.

ALUMNOS
alumno_idalumno_nombreestudio_nivelestudio_nombremateria
1JuanitoMaestríaMedios VirtualesMySQL
1JuanitoMaestríaMedios VirtualesPHP
2PepitoLicenciaturaDiseño DigitalMySQL
2PepitoLicenciaturaDiseño DigitalPHP

Al aplicar la primera forma normal hemos generado un identificado para cada alumno y un registro por materia asignada, hemos duplicado información, sin embargo, hemos conservado la integridad de las columnas de la información lo que es más óptimo que el modelo anterior, sin embargo, podemos mejorarlo con la segunda forma normal.

Segunda Forma Normal:

Se debe aplicar la 1FN. Cada campo de la tabla debe depender de una clave única, si tuviéramos alguna columna que se repite a lo largo de todos los registros, dichos datos deberían atomizarse en una nueva tabla.

ALUMNOS
alumno_idalumno_nombreestudio_nivelestudio_nombre
1JuanitoMaestríaMedios Virtuales
2PepitoLicenciaturaDiseño Digital

MATERIAS
materia_idalumno_idmateria_nombre
11MySQL
21PHP
32MySQL
42PHP

Al aplicar la segunda forma normal, hemos evitado la duplicación de registros y hemos separado la información de los alumnos de la relación que guardan con las materias generando una segunda tabla, sin embargo dicha tabla puede mejorarse con la tercer forma normal o su versión mejorada la forma de Boyce-Codd.

Tercera Forma Normal:

Se debe aplicar la 1FN y 2FN. Los campos que NO son clave NO deben tener dependencias.

Forma Normal Boyce-Codd (FNBC):

Se debe aplicar la 1FN, 2FN y 3FN. Es una versión mejorada de la 3FN. Los campos que NO son clave NO deben tener dependencias. Los campos que NO dependan de la clave se deben eliminar.

ALUMNOS
alumno_idalumno_nombreestudio_id
1Juanito1
2Pepito2


ESTUDIOS
estudio_idestudio_nivelestudio_nombre
1MaestríaMedios Virtuales
2LicenciaturaDiseño Digital


MATERIAS
materia_idalumno_idmateria_nombre
11MySQL
21PHP
32MySQL
42PHP

Con la ayuda de la tercera forma y la Boyce-Codd hemos sacado la información de los planes de estudio de la información principal de los alumnos, lo que asegura una mejor integridad de los datos, permitiendo que el número de estudios crezcan y que los estudiantes puedan matricularse a más de un estudio sin tener que desordenar el modelo de datos.

Cuarta Forma Normal:

Se debe aplicar la FNBC. La 4FN aplica únicamente para relaciones M a M, y nos ayuda a eliminar la redundancia de información generada por dicho tipo de relación.

ALUMNOS
alumno_idalumno_nombreestudio_id
1Juanito1
2Pepito2

ESTUDIOS
estudio_idestudio_nivelestudio_nombre
1MaestríaMedios Virtuales
2LicenciaturaDiseño Digital

MATERIAS
materia_idmateria_nombre
1MySQL
2PHP

MATERIAS X ALUMNO
mxa_idalumno_idmateria_id
111
212
321
422

Con la cuarta forma hemos logrado separar la relación que guardan los alumnos con sus respectivas materias asignadas, separándolas en un catálogo independiente de materias, y guardando la relación entre alumnos y materias en otra tabla pivote que sólo guarde la relación entre ambas entidades con un registro único.

Quinta Forma Normal:

Se debe aplicar la 1FN, 2FN, 3FN y 4FN. Existe otro nivel de normalización que se aplica con poca frecuencia y en la mayoría de los casos no es necesario, para obtener la mejor funcionalidad de nuestra estructura de datos. Su principio sugiere:

  • La tabla original debe ser reconstruida desde las tablas resultantes en las cuales ha sido partida.
  • Los beneficios de aplicar la 5FN asegura que no se haya creado ninguna columna extraña en las tablas y que su estructura sea del tamaño justo que tiene que ser.
  • Es una buena práctica aplicar la 5FN, cuando tenemos una extensa y compleja estructura de datos, en modelos pequeños no se recomienda usar.


En síntesis, la quinta forma, nos dice que en modelos muy grandes donde tenemos muchas relaciones y entidades, nos sugiere que una vez que hayamos terminado la normalización de nuestro modelo, lo revisemos una vez más en busca de posibles errores de lógica en la normalización, para efectos de nuestro ejemplo que es un modelo sencillo no aplicaremos la quinta forma normal.


¿Qué es SQL?

Existen un sinnúmero de sistemas de gestión de bases de datos relacionales y cada una de ellas posee una forma diferente de manejar su data, algunos ejemplos de RDBMS son: Oracle, MySQL, SQL Server, entre otras.



Sin embargo, con el paso de los años, estos se fueron unificando y universalizando para dar paso a mejores técnicas y mejores formas de manejo. Así nació SQL.

SQL (Structured Query Language) es un lenguaje estándar e interactivo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en ellas, gracias a la utilización del álgebra y de cálculos relacionales, el SQL brinda la posibilidad de realizar consultas con el objetivo de recuperar información de las bases de datos de manera sencilla. Las consultas toman la forma de un lenguaje de comandos que permite seleccionar, insertar, actualizar, averiguar la ubicación de los datos, y más.


¿Qué es una consulta?


En bases de datos, una consulta es el método para acceder a los datos en las bases de datos. 

Con las consultas se pueden modificar, borrar, obtener y agregar datos en una base de datos.

Para esto se utiliza un lenguaje de consultas. El lenguaje de consultas a base de datos más utilizado es el SQL.

Técnicamente hablando, las consultas a una base de datos se realizan a través de un lenguaje de manipulación de datos (DML – Data Manipulation Language). Por lo tanto SQL es un lenguaje DML, pero además posee otras características de otros lenguajes; por ejemplo, permite también crear bases de datos.

SQL es un poderoso lenguaje capaz de avanzadas consultas.



Esos son algunos de los conceptos que tienes que saber para empezar a hacer uso de las bases de datos. ¡¡Hasta la próxima!!  


Referencias bibliográficas: 


http://www.incap.int/sisvan/index.php/es/acerca-de-san/conceptos/797-sin-categoria/501-sistema-de-informacion

https://www.monografias.com/trabajos77/base-datos-sistema-informacion/base-datos-sistema-informacion.shtml

http://www.maestrosdelweb.com/que-son-las-bases-de-datos/

https://es.wikipedia.org/wiki/Sistema_de_gesti%C3%B3n_de_bases_de_datos

https://es.wikipedia.org/wiki/Administrador_de_base_de_datos

https://www.educaweb.com/profesion/administrador-bases-datos-724/

https://es.wikipedia.org/wiki/Modelo_entidad-relaci%C3%B3n

http://www.cyta.com.ar/elearn/bd/2_presentaciones_1.html

https://baseser.blogspot.com/2010/07/tipos-de-relaciones.html

https://es.wikipedia.org/wiki/Normalizaci%C3%B3n_de_bases_de_datos

https://ed.team/blog/normalizacion-de-bases-de-datos

https://devcode.la/blog/que-es-sql/

https://styde.net/que-es-y-para-que-sirve-sql/

https://es.wikipedia.org/wiki/SQL

http://www.alegsa.com.ar/Dic/consulta_en_base_de_datos.php









Conceptos Básicos de Bases de Datos

Esta entrada está dedicada principalmente para todas aquellas personas las cuales son amantes del maravilloso mundo de la programación. En ...