Diseño y Desarrollo de Bases de Datos


¿Qué es una base de datos?

Una base de datos es un espacio en el que se almacenan datos de manera organizada para poder acceder a ellos siempre que queramos.

Una base de datos (BD) es un conjunto de datos estructurados apropiadamente y relacionados entre sí.

Una base de datos se una colección de datos relacionados entre sí y que tienen un significado implícito.

Una base de datos es un almacén que nos permite guardar grandes cantidades de información de forma organizada para poder en un futuro poder consultarla, realizar búsquedas, ingresar nuevos datos, eliminar registros, etc. Todo esto de una forma rápida y simple dentro de un ordenador.

Una base de datos es un conjunto de información relacionada que pertenece a una organización y que está agrupada como un todo. En la base de datos de una juguetería, por ejemplo, estará reunida la información de los juguetes (precio, cantidad en stock), así como los datos de los proveedores (dirección, teléfono, saldo deudor), clientes (si se desea llevar información individualizada de cada uno de ellos), empleados (salarios, presentismo, comisiones de los vendedores), contabilidad (cobranzas, pagos, liquidaciones), etc.

Las bases de datos son fundamentales en los sistemas de información debido a que estas se utilizan en todas las áreas profesionales como la investigación, tecnología, arte, educación, sistemas médicos, programas de ingeniería, programas de desarrollo, de diseño, sistemas de información geográfica, entre otros.

Cada base de datos se compone de una o más tablas que guardan un conjunto de datos. Cada una de estas se divide en columnas y filas: mientras que las columnas guardan una parte de la información sobre cada elemento que queramos guardar en la tabla, cada fila de la tabla conforma un registro.

   
HISTORIA E INICIOS
Las bases de datos, tal y como las conocemos  hoy, nacieron en los años 50. No obstante, la necesidad de organizar y guardar datos es por mucho anterior.

Los inicios de las base de datos modernas se deben sobre todo al desarrollo realizado por el inglés Edgar Frank Codd, que propuso el primer modelo teórico relacional, es decir, definió cómo se debían relacionar los datos pertenecientes a una base de datos. Por otro lado IBM desarrolló la primera definición de lenguaje para base de datos (que definía cómo añadir y extraer información de una base de datos) llamado SEQUEL. Más tarde SEQUEL acabaría convirtiéndose en el lenguaje más utilizado hoy en día con bases de datos, el SQL.
  



¿Para qué sirven la bases de datos?


Las bases de datos sirven para almacenar información. El tipo de información puede variar.
Las bases de datos son utilizadas en infinidad de circunstancias y lugares, como:
  • En los hospitales
  • En la administración
  • En el gobierno
  • En la escuela
  • En el comercio

Tipos De Bases De Datos

Las bases de datos pueden clasificarse de varias maneras, de acuerdo al contexto que se este manejando, o la utilidad de la misma.
  
Segun la variabilidad de los datos almacenados:
Bases De Datos Estáticas
Estas son bases de datos de solo lectura, utilizadas primordialmente para almacenar datos historicos que posteriormente se pueden utilizar para estudiar el comportamiento de un conjunto de datos a traves del tiempo, realizar proyecciones  y tomar decisiones.
Bases De Datos Dinámicas
Estas son bases de datos donde la informacion almacenada se modifica con el tiempo, permitiendo operaciones como actualizacion, borrado y adicion de datos, ademas de las operaciones fundamentales de consulta. Un ejemplo de esto puede ser la base de datos utilizada en un sistema de informacion de un supermercado, una farmacia, un videoclub o una empresa.

Modelos De Bases De Datos

Ademas de la clasificacion por la funcion de las bases de datos, estas tambien se pueden clasificar de acuerdo a su modelo de administracion de datos.
Un modelo de datos es basicamente una "descripcion" de algo conocido como contenedor de datos (algo en donde se guarda la informacion), asi como de los métodos para almacenar y recuperar informacion de esos contenedores. Los modelos de datos no son cosas fisicas: son abstracciones que permiten la implementacion de un sistema eficiente de base de datos; por lo general se refieren a algoritmos , y conceptos matematicos.

Algunos modelos con frecuencia utilizados en las bases de datos:

Bases De Datos Jerárquicas

Éstas son bases de datos que, como su nombre indica, almacenan su información en una estructura jerárquica. En este modelo los datos se organizan en una forma similar a un árbol (visto al revés), en donde un nodo padre de información puede tener varios hijos. El nodo que no tiene padres es llamado raíz, y a los nodos que no tienen hijos se los conoce como hojas.

Las bases de datos jerárquicas son especialmente útiles en el caso de aplicaciones que manejan un gran volumen de información y datos muy compartidos permitiendo crear estructuras estables y de gran rendimiento.

Una de las principales limitaciones de este modelo es su incapacidad de representar eficientemente la redundancia de datos.

Base De Datos De Red
Éste es un modelo ligeramente distinto del jerárquico; su diferencia fundamental es la modificación del concepto de nodo: se permite que un mismo nodo tenga varios padres (posibilidad no permitida en el modelo jerárquico).
Fue una gran mejora con respecto al modelo jerárquico, ya que ofrecía una solución eficiente al problema de redundancia de datos; pero, aun así, la dificultad que significa administrar la información en una base de datos de red ha significado que sea un modelo utilizado en su mayoría por programadores más que por usuarios finales.

Bases De Datos Transaccionales
Son bases de datos cuyo único fin es el envío y recepción de datos a grandes velocidades, estas bases son muy poco comunes y están dirigidas por lo general al entorno de análisis de calidad, datos de producción e industrial, es importante entender que su fin único es recolectar y recuperar los datos a la mayor velocidad posible, por lo tanto la redundancia y duplicación de información no es un problema como con las demás bases de datos, por lo general para poderlas aprovechar al máximo permiten algún tipo de conectividad a bases de datos relacionales.

Bases De Datos Relacionales
Éste es el modelo utilizado en la actualidad para modelar problemas reales y administrar datos dinámicamente. Tras ser postulados sus fundamentos en 1970 , de los laboratorios Ibm en San Jose , no tardó en consolidarse como un nuevo paradigma en los modelos de base de datos. Su idea fundamental es el uso de "relaciones". Estas relaciones podrían considerarse en forma lógica como conjuntos de datos llamados "tuplas". Pese a que ésta es la teoría de las bases de datos relacionales creadas por Codd, la mayoría de las veces se conceptualiza de una manera más fácil de imaginar. Esto es pensando en cada relación como si fuese una tabla que está compuesta por registros (las filas de una tabla), que representarían las tuplas, y campos(las columnas de una tabla).

En este modelo, el lugar y la forma en que se almacenen los datos no tienen relevancia (a diferencia de otros modelos como el jerárquico y el de red). Esto tiene la considerable ventaja de que es más fácil de entender y de utilizar para un usuario esporádico de la base de datos. La información puede ser recuperada o almacenada mediante "consultas" que ofrecen una amplia flexibilidad y poder para administrar la información.

El lenguaje más habitual para construir las consultas a bases de datos relacionales es SQL, Structured Query Language o Lenguaje Estructurado de Consultas, un estándar implementado por los principales motores o sistemas de gestión de bases de datos relacionales.
Durante su diseño, una base de datos relacional pasa por un proceso al que se le conoce como normalisazion de una base de datos Durante los años 80 la aparición de dBASE produjo una revolución en los lenguajes de programación y sistemas de administración de datos. Aunque nunca debe olvidarse que dBase no utilizaba SQL como lenguaje base para su gestión.

 Bases De Datos Multidimensionales                                                                
Son bases de datos ideadas para desarrollar aplicaciones muy concretas, como creación de cubos olap Básicamente no se diferencian demasiado de las bases de datos relacionales (una tabla en una base de datos relacional podría serlo también en una base de datos multidimensional), la diferencia está más bien a nivel conceptual; en las bases de datos multidimensionales los campos o atributos de una tabla pueden ser de dos tipos, o bien representan dimensiones de la tabla, o bien representan métricas que se desean estudiar.

Bases De Datos Orientadas a Objetos
Este modelo, bastante reciente, y propio de los modelos informaticos enfocado a objetos, trata de almacenar en la base de datos los objetos completos (estado y comportamiento).

Una base de datos orientada a objetos es una base de datos que incorpora todos los conceptos importantes del paradigma de objetos:

§  encapsulacion - Propiedad que permite ocultar la información al resto de los objetos, impidiendo así accesos incorrectos o conflictos.
§  Hrencia- Propiedad a través de la cual los objetos heredan comportamiento dentro de una jerarquía de clases.
§  Polimorfismo - Propiedad de una operación mediante la cual puede ser aplicada a distintos tipos de objetos.

En bases de datos orientadas a objetos, los usuarios pueden definir operaciones sobre los datos como parte de la definición de la base de datos. Una operación (llamada función) se especifica en dos partes. La interfaz (o signatura) de una operación incluye el nombre de la operación y los tipos de datos de sus argumentos (o parámetros). La implementación (o método) de la operación se especifica separadamente y puede modificarse sin afectar la interfaz. Los programas de aplicación de los usuarios pueden operar sobre los datos invocando a dichas operaciones a través de sus nombres y argumentos, sea cual sea la forma en la que se han implementado. Esto podría denominarse independencia entre programas y operaciones.

Bases De Datos Documentales


Permiten la indexación a texto completo, y en líneas generales realizar búsquedas más potentes. Tesaurus es un sistema de índices optimizado para este tipo de bases de datos.
Bases De Datos Deductivas
Un sistema de base de datos deductiva, es un sistema de base de datos pero con la diferencia de que permite hacer deducciones a través de inferencias. Se basa principalmente en reglas y hechos que son almacenados en la base de datos. Las bases de datos deductivas son también llamadas bases de datos lógicas, a raíz de que se basa en lógica matemática.

Sistema Gestor de Bases de Datos (SGBD)

Los Sistemas Gestores de Bases de Datos (SGBD, por sus siglas en inglés), también conocidos como sistemas manejadores de bases de datos o DBMS (DataBase Management System), son un conjunto de programas que manejan todo acceso a la base de datos, con el objetivo de servir de interfaz entre ésta, el usuario y las aplicaciones utilizadas. 


Las funciones de un Sistema Gestor de Bases de Datos (SGBD)

La ejecución de las operaciones sobre la base de datos para luego proporcionarlos al usuario en función de su requerimiento se realiza de un modo eficiente y seguro. Sus características de un SGDB posibilitan el cumplimiento de una serie de funciones, que pueden agruparse de la siguiente manera:

1. Definición de los datos: El SGBD ha de poder definir todos los objetos de la base de datos partiendo de definiciones en versión fuente para convertirlas en la versión objeto.

2. Manipulación de los datos: El SGBD responde a las solicitudes del usuario para realizar operaciones de supresión, actualización, extracción, entre otras gestiones. El manejo de los datos ha de realizarse de forma rápida, según las peticiones realizadas por los usuarios, y permitir la modificación del esquema de la base de datos gracias a su independencia.

3. Seguridad e integridad de los datos: Además de registrar el uso de las bases de datos, ante cualquier petición, también aplicará las medidas de seguridad e integridad de los datos (adopta medidas garantizar su validez) previamente definidas. Un SGBD debe garantizar su seguridad frente a ataques o simplemente impedir su acceso a usuarios no autorizados por cualquier razón.

4. Recuperación y restauración de los datos: La recuperación y restauración de los datos ante un posible fallo es otra de las principales funciones de un SGBD. Su aplicación se realizará a través de un Plan de recuperación y restauración de los datos que sirva de respaldo.

Tipos de gestores de bases de datos

La tipología de los SGBD es muy variada, en función del criterio que utilicemos para su clasificación. Agruparlos atendiendo al modelo de datos, número de usuarios o de sitios suele ser lo más habitual, si bien la tipología puede obedecer a otras muchas pautas, según convenga desde un determinado enfoque práctico:
Si atendemos al modelo de datos, los testores de bases de datos pueden ser:

·         Relacionales
·         EnRed
·         Jerárquicos
·         Orientados a objetos

 

sistemas gestores base de datos populares

 

MySQL

 

Es un software de sistema gestión de base de datos relacional que se puede ejecutar en los sistemas operativos GNU/Linux, Windows y Mac, se ejecuta de forma multi-thread y multiusuario y es distribuido por Oracle bajo la licencia GPL y comercial. Este sistema gestor de base de datos es el mas popular del mundo, su uso en las aplicaciones web, tales como en WordPres, Joomla y entre otros , Por ser distribuido bajo la licencia GPL existen diferentes apis o interfaces de programación de aplicaciones para diversos lenguajes de programación para acceder a la base de datos de MySQL.

 

Oracle

Es un sistema de gestión de base de datos desarrollado por la compañía Oracle, este sistema es de tipo modelo objeto relacional, por el cual es uno de los gestores de bases de datos mas completo como: soporte de transacciones, estabilidad, escalabilidad  y puede correr en los sistemas operativos GNU/LINUX, Windows, Mac y entre otros.

Comprar la licencia de este sistema de gestor de base datos es muy caro que asciende varios miles de dólares según a la versión  y licencia, sin embargo existe una versión express  solo para fines autoeducativos estrictamente.

 

PostGreSQL

Es un sistema gestor de base de datos relacional de código abierto de muchos otros proyectos, multiplataforma, orientado a objetos bajo la licencia PostgreSQL que es similara a la BSD de la MIT. Para usar el gestor de base datos  existen interfaces de programación para muchos  lenguajes de programación como por ejemplo: C/C++, Java PL/Java web, PL/Perl y demás.

 

Microsoft SQL Server

Un software propietario de gestión de base de datos creado por la compañía Microsoft disponible, lamentablemente  solo se puede usar en el sistema operativo Windows, aunque recientemente anunciaron que SQL Server 2016 estaría disponible para GNU/Linux para este fin de año.

Con este sistema de gestión de base datos se puede trabajar en modo cliente y servidor, para aquellos que quieran utilizar se puede descargar una versión express para fines educativos, para la cual también existen apis para diferentes de tipos lenguajes de programación.

MariaDB

Es un programa sistema de manejo de bases de datos  multiplataforma descendiente de MySQL creado en el año 2009  por el descontento de modelo de desarrollo. Se distribuye bajo la licencia GPL que es una software completamente libre y además se ha introducido dos nuevos motores de almacenamiento Aria y XtraDB en sustitución de MyISAM y InnoDB. 

Para usar este gestor de base datos existen apis para los diferentes lenguajes de programación e incluso los mismos apis que se usan para MySQL son compatibles.

SQLite

es un sistema de manejo de bases de datos de tipo modelo relacional multiplataforma, este gestor de base datos se diferencia entre los demás que son cliente-servidor, si no es una biblioteca en proceso que implementa un sistema autónomo, sin necesidad de hacer configuración. SQLite es una base de datos SQL embebido motor, que se puede  leer y escribir directamente a los archivos de disco normal, cuyo archivo  puede soportar con la versión 3 de SQLite hasta 2 Terabytes.

 

MogoDB

es un sistema de base de datos NoSQL multiplataforma, orientado a documentos desarrollado bajo la filosofía de software libre, los datos son guardados en la base datos  en estructuras de datos similar a JSON de JavaScript e incluso  tiene la capacidad de realizar consultas utilizando JavaScript por el cual también existen apis para distintos lenguajes de programación para realizar consultas  e informes.

La mayoría de los gestores base datos no empaquetan un programa que nos permita administrar nuestras base de datos, para la cual existe un programa  llamado Navicat Premium, es un programa de pago que permite gestionar las bases de datos de forma mucho más cómoda e intuitiva que se puede usar para los 6 primeros sistemas gestores base de datos populares  que se menciona en este articulo, para  MongoDB se puedes optar a usar el uMongo.

Microsoft Access


Es el gestor de Bases de Datos que incluye Microsoft Office, en el podemos manipular, almacenar y organizar la información que un usuario desee, entre otras cosas nos permite la creación de formularios, reportes, consultas y propiedades tanto de importación como de exportación.

Microsoft Access es un Sistema de gestión de base de datos relacional creado y modificado por Microsoft para uso personal de pequeñas organizaciones cuyas bases de datos no requieren de excesiva potencia, ya que se integra perfectamente con el resto de aplicaciones de Microsoft y permite crear pequeñas aplicaciones con unos pocos conocimientos del Programa.

Modelo entidad/relación

Un modelo entidad-relación el proceso que permite describir el tipo y las relaciones entre los datos. de datos que permite representar las entidades relevantes de una base de datos así como sus interrelaciones y propiedades. La representación de este se realiza a través de un diagrama con una simbología definida.



Elementos del modelo entidad relación

Entidad

Es la representación de un objeto o concepto del mundo real que se describe en una base de datos. Cada entidad está constituida por uno o más atributos.

Se representan gráficamente mediante un rectángulo y su nombre va en el interior.

Atributos

Los atributos son las características que definen o identifican a una entidad. Estas pueden ser muchas, y el diseñador solo utiliza o implementa las que considere más relevantes.

Los atributos se representan gráficamente mediante un círculo o elipse, su nombre va en el interior y van unidos con una línea a su respectiva entidad. El atributo principal se identifica con una línea que subraya su nombre.

CAMPO 
Es un espacio de almacenamiento para un dato en particular. En las base de datos un campo es la mínima unidad de información a la que se puede acceder; un campo o un conjunto de ellos forman un registro, donde pueden existir campos en blanco, siendo éste un error del sistema operativo. En las hojas de cálculo (como los programas de Excel) los campos son llamados celdas.

La mayoría de los campos tienen atributos asociados a ellos. Por ejemplo, algunos campos son numéricos mientras otros almacenan texto, también varía el tamaño de estos.

Tipos de campo

Un campo puede ser:

Texto: En este tipo de campo se puede almacenar texto o combinaciones de texto y números, así como números que no requieran cálculos, como los números de teléfono o códigos postales.

Alfanuméricos: Contiene cifras y letras.

Numérico: Se utiliza para almacenar datos numéricos que pueden ser utilizados en todo tipo de operaciones matemáticas, excepto operaciones monetarias(para este tipo de operaciones se utiliza el tipo de campo Monetario).

Si/No:  Son campos que solo contienen uno de dos valores, como: Si/No, Verdadero/Falso, Activado/Desactivado

Registro:

Un registro es un conjunto de campos  que contienen  datos que pertenecen a una misma repetición de una entidad.

Representa un objeto único de datos implícitamente estructurado en una tabla.
La estructura implícita de un registro y el significado de los valores  de sus campos exige que dicho registro se a entendido como una sucesión de datos, uno en cada columna de la tabla.

ARCHIVO:
 Un Archivo es identificado por un nombre y la descripción de la carpeta o directorio que lo contiene.

Son los equivalentes digitales de los archivos en tarjetas, papel o microfichas del entorno de oficina tradicional, facilitan una manera de organizar los recursos usados para almacenar permanentemente datos en un sistema informático

 Qué es un dato?

Un dato es la representación de una variable que puede ser cuantitativa o cualitativa, indican un valor que se le asigna a las cosas. Los datos son información. Los datos describen en su conjunto nos hablan de hechos empíricos. Un dato por sí solo no puede demostrar demasiado, siempre se evalúa el conjunto para poder examinar los resultados. Para examinarlos, primero hay que organizarlos o tabularlos

hay dos tipos de datos:

  • Cualitativos: Son aquellos que responden a la pregunta ¿cuál? O ¿cuáles? Aquí hay datos como el color, los sentimientos, etcétera.
  • Cuantitativos: Son aquellos datos que siempre están referidos a los números. Por ejemplo precio, altura, edad, etcétera.

Índice de Base de Datos
Un índice es una estructura de datos definida sobre una columna de tabla (o varias) y que permite localizar de forma rápida las filas de la tabla en base a su contenido en la columna indexada además de permitir recuperar las filas de la tabla ordenadas por esa misma columna.

Índice único

Índice único es aquel en el que no se permite que dos filas tengan el mismo valor en la columna de clave del índice. Es decir que no permite valores duplicados.

VISTAS
Una vista se puede considerar una tabla virtual o una consulta almacenada que devuelve un conjunto de resultados y a la que se le pone un nombre pero que no almacena datos físicamente y se consulta igual que una tabla.
Una VISTA es una tabla virtual derivada de otras tablas (que pueden ser tablas base o también otras vistas). n Sus tuplas no se almacenan sino que se generan a partir de las tablas de las que depende (no necesariamente existen en forma física, por ello se las Vistas: conceptos considera tablas virtuales) n Son útiles para usar, como si fueran tablas, consultas que se efectúan frecuentemente, y también para cuestiones de seguridad.

·    Una vista es una tabla lógica basada en una tabla u otra vista.
·    No contiene datos en sí misma, pero es como una ventana a través de la cual se pueden ver o cambiar los datos de las tablas.
·    Podemos representar con ellas subconjuntos lógicos o combinaciones de datos.
·    Las tablas sobre las cuales se basa una vista se llaman tablas base.

¿Qué es una consulta o query a una base de datos?

Una consulta o query de una base de datos, es un lenguaje estándar que permite traer datos de una o más tablas, actualizar contenidos o eliminarlos, de una manera rápida y poderosa; conocido generalmente como lenguaje SQL.

Funcionalidades

Las funciones más importantes que nos puede permitir realizar un Sistema gestor de base de datos son las siguientes:

a. API (Application Programming Interface): permite a los usuarios avanzados acceder a algunos recursos internos del programa, para configurarlo.

b. Soporte BD ¨S Multiplataforma: indica la compatibilidad entre los distintos Sistemas gestores de bases de datos.

c. Soporte SQL: sirve para establecer indicaciones a la hora de realizar búsquedas y consultas en la base de datos.

d. Programación visual: permite crear una especie de lenguaje de forma gráfica, para establecer parámetros personalizados.

No hay comentarios:

Publicar un comentario