Diseño y Desarrollo de Bases de Datos
¿Qué son las bases de datos?
Una base 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.
El término de bases
de datos fue escuchado por primera vez en 1963, en un simposio celebrado en
California, USA. Una base de datos se puede
definir como un conjunto de información relacionada que se encuentra agrupada ó
estructurada.
Desde
el punto de vista informático, la base de datos es un sistema formado por un
conjunto de datos almacenados en discos que permiten el acceso directo a ellos
y un conjunto de programas que manipulen ese conjunto de datos.
Cada
base de datos se compone de una o más tablas que guarda un conjunto de datos.
Cada tabla tiene una o más columnas y filas. 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.
Definición de base de
datos
Se
define una base de datos como una serie de datos organizados y relacionados
entre sí, los cuales son recolectados y explotados por los sistemas de
información de una empresa o negocio en particular
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.
- Acceso
a través de lenguajes de programación estándar.
Sistema de Gestión de
Base de Datos (SGBD)
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.
Ventajas de las bases
de datos
Control sobre la
redundancia de datos:
Los sistemas de
ficheros almacenan varias copias de los mismos datos en ficheros distintos.
Esto hace que se desperdicie espacio de almacenamiento, además de provocar
la falta de consistencia de datos.
En los sistemas de
bases de datos todos estos ficheros están integrados, por lo que no se
almacenan varias copias de los mismos datos. Sin embargo, en una base de datos
no se puede eliminar la redundancia completamente, ya que en ocasiones es
necesaria para modelar las relaciones entre los datos.
Consistencia de
datos:
Eliminando o
controlando las redundancias de datos se reduce en gran medida el riesgo de que
haya inconsistencias. Si un dato está almacenado una sola vez, cualquier
actualización se debe realizar sólo una vez, y está disponible para todos los
usuarios inmediatamente. Si un dato está duplicado y el sistema conoce esta
redundancia, el propio sistema puede encargarse de garantizar que todas las
copias se mantienen consistentes.
Compartir datos:
En los sistemas de
ficheros, los ficheros pertenecen a las personas o a los departamentos que los
utilizan. Pero en los sistemas de bases de datos, la base de datos pertenece a
la empresa y puede ser compartida por todos los usuarios que estén autorizados.
Mantenimiento de
estándares:
Gracias a la
integración es más fácil respetar los estándares necesarios,
tanto los establecidos a nivel de la empresa como los nacionales e
internacionales. Estos estándares pueden
establecerse sobre el formato de los datos para facilitar su intercambio,
pueden ser estándares de documentación, procedimientos de actualización y
también reglas de acceso.
Mejora en la
integridad de datos:
La integridad de la
base de datos se refiere a la validez y la consistencia de los datos
almacenados. Normalmente, la integridad se expresa mediante restricciones o
reglas que no se pueden violar. Estas restricciones se pueden aplicar tanto a
los datos, como a sus relaciones, y es el SGBD quien se debe encargar de
mantenerlas.
Mejora en la
seguridad:
La seguridad de la base de datos es la
protección de la base de datos frente a usuarios no autorizados. Sin unas
buenas medidas de seguridad, la integración de datos en los sistemas de bases
de datos hace que éstos sean más vulnerables que en los sistemas de ficheros.
Mejora en la accesibilidad
a los datos:
Muchos SGBD
proporcionan lenguajes de consultas o generadores de informes que permiten al
usuario hacer cualquier tipo de consulta sobre los datos, sin que sea necesario
que un programador escriba una aplicación que
realice tal tarea.
Mejora en la
productividad:
El SGBD proporciona
muchas de las funciones estándar que el programador necesita escribir en un
sistema de ficheros. A nivel básico, el SGBD proporciona todas las rutinas de
manejo de ficheros típicas de los programas de aplicación.
El hecho de disponer
de estas funciones permite al programador centrarse mejor en la función
específica requerida por los usuarios, sin tener que preocuparse de los
detalles de implementación de bajo nivel.
Mejora en el
mantenimiento:
En los sistemas de
ficheros, las descripciones de los datos se encuentran inmersas en los
programas de aplicación que los manejan.
Esto hace que los
programas sean dependientes de los datos, de modo que un cambio en su
estructura, o un cambio en el modo en que se almacena en disco, requiere
cambios importantes en los programas cuyos datos se ven afectados.
Sin embargo, los SGBD
separan las descripciones de los datos de las aplicaciones. Esto es lo que se
conoce como independencia de datos, gracias a la cual se simplifica el
mantenimiento de las aplicaciones que acceden a la base de datos.
Aumento de la
concurrencia:
En algunos sistemas
de ficheros, si hay varios usuarios que pueden acceder simultáneamente a un
mismo fichero, es posible que el acceso interfiera entre ellos de modo que se
pierda información o se pierda la integridad. La mayoría de los SGBD gestionan
el acceso concurrente a la base de datos y garantizan que no ocurran problemas
de este tipo.
Mejora en los
servicios de copias de seguridad:
Muchos sistemas de
ficheros dejan que sea el usuario quien proporcione las medidas necesarias para
proteger los datos ante fallos en el sistema o en las aplicaciones. Los
usuarios tienen que hacer copias de seguridad cada día, y si se produce algún
fallo, utilizar estas copias para restaurarlos.
En este caso, todo el
trabajo realizado sobre los datos desde que se hizo la última copia de
seguridad se pierde y se tiene que volver a realizar. Sin embargo, los SGBD actuales
funcionan de modo que se minimiza la cantidad de trabajo perdido cuando se
produce un fallo.
Desventajas de las
bases de datos
Complejidad:
Los SGBD son
conjuntos de programas que pueden llegar a ser complejos con una gran
funcionalidad. Es preciso comprender muy bien esta funcionalidad para poder
realizar un buen uso de ellos.
Coste del
equipamiento adicional:
Tanto el SGBD, como
la propia base de datos, pueden hacer que sea necesario adquirir más espacio de
almacenamiento. Además, para alcanzar las prestaciones deseadas, es posible que
sea necesario adquirir una máquina más grande o una máquina que se dedique
solamente al SGBD. Todo esto hará que la implantación de un sistema de bases de
datos sea más cara.
Vulnerable a los
fallos:
El hecho de que todo
esté centralizado en el SGBD hace que el sistema sea más vulnerable ante los
fallos que puedan producirse. Es por ello que deben tenerse copias de seguridad
(Backup).
Tipos de
bases de datos
Las bases de datos pueden clasificarse
de varias maneras, de acuerdo al contexto que se esté manejando, o la utilidad
de la misma:
·
Las bases de datos
jerárquicas construyen una estructura de jerarquía con los datos que permite
una estructuración muy estable cuando gestionamos una gran cantidad de datos
muy interrelacionados.
·
Las bases de datos
en red derivan de las jerárquicas pero mejoran la gestión de datos
redundantes manteniendo su rendimiento en consultas de datos.
·
Las bases de datos
transaccionales están diseñadas para el envío y recepción de datos a grandes velocidades
y de forma continua. Su único fin es la recepción y envío de información pero
la gestión de almacenamiento o redundancia están fuera de su propósito.
·
Las bases de datos
relacionales son las más utilizadas en aplicaciones reales. La información se
almacena siempre haciendo referencia a otra por lo que se facilita la gestión y
su uso por personal no especialista. En este modelo el lugar y la forma donde
se guarde la información es secundario.
·
Las bases de datos
orientadas a objetos han surgido como concepto tras la aparición de los sistemas de
programación orientada a objetos.
·
Las bases de datos
documentales están especializadas en el almacenamiento de textos completos, por
lo que facilitan el tratamiento informatizado de grandes cadenas de caracteres.
Sistema Gestor de base de datos (SGBD)
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.
Un Sistema Gestor de base de datos
(SGBD) es un conjunto de programas que permiten crear y mantener una Base
de datos, asegurando su integridad, confidencialidad y seguridad. Por
tanto debe permitir:
·
Definir una base de datos: especificar tipos,
estructuras y restricciones de datos.
·
Construir la base de datos: guardar los datos
en algún medio controlado por el mismo SGBD.
·
Manipular la base de datos: realizar
consultas, actualizarla, generar informes.
Los más comunes son:
Oracle, SqlServer,
Informix, Sysbase, Access, Visual FoxPro, Etc.
Entre los diferentes tipos de SGBD,
podemos encontrar los siguientes:
- MySql: es una base de datos con licencia GPL basada en un servidor. Se caracteriza por su rapidez. No es recomendable usar para grandes volúmenes de datos.
- PostgreSql y Oracle: Son sistemas de base de datos poderosos. Administra muy bien grandes cantidades de datos, y suelen ser utilizadas en intranets y sistemas de gran calibre.
- Access: Es una base de datos desarrollada por Microsoft. Esta base de datos, debe ser creada bajo el programa access, el cual crea un archivo .mdb con la estructura ya explicada.
- Microsoft SQL Server: es una base de datos más potente que access desarrollada por
Microsoft. Se utiliza para manejar grandes volúmenes de informaciones.
Modelo
entidad-relación
Los diagramas o
modelos entidad-relación (denominado por su siglas, ERD “Diagram Entity relationship”)
son una herramienta para el modelado de datos de un sistema de información.
Estos modelos expresan entidades relevantes para un sistema de información, sus
inter-relaciones y propiedades.
Componentes de un DER
Entidad: Representa un
objeto que tiene vida propia en el sistema que se está modelando, tanto
tangible como intangibles. Ejemplo: cliente, producto, estudiante, vacación.
Atributos: Características
o propiedades asociadas al conjunto de entidades o relaciones y que toman valor
en una entidad en particular. Ejemplo: nombre, cédula, teléfono.
Los posibles valores puede tomar un atributo
para un conjunto de entidades se denomina dominio.
Relación: Asociación o
vinculación entre dos o más entidades. Ejemplo: La relación comprar entre las
entidades cliente y producto. Generalmente representa acciones entre las
entidades.
Cardinalidad de las
Relaciones
El diseño de
relaciones entre las tablas de una base de datos puede ser la siguiente:
- Relaciones
de uno a uno: una instancia de la
entidad A se relaciona con una y solamente una de la entidad B.
- Relaciones
de uno a muchos: cada instancia de la
entidad A se relaciona con varias instancias de la entidad B.
- Relaciones
de muchos a muchos: cualquier
instancia de la entidad A se relaciona con cualquier instancia de la
entidad B.
Elementos de una Base de Datos
·
Atributos: Son los diferentes campos que conforman la
estructura de una base de datos.
·
Campos: Es la unidad más pequeña de datos.
·
Registro: Es un conjunto de campos o atributos relacionados
entre sí.
·
Archivo: Es un conjunto de registros relacionados.
- Datos:
Es la parte esencial de la información, es decir, la información que llega
a la base de datos.
Tipos de datos para los campos de una tabla
o
TEXTO: Admite contenido de caracteres alfanuméricos, el
tamaño estará entre 1 y 255 Bytes y el valor por defecto de esta tamaño es de
50 Bytes.
o
MEMO: Admite contenido de tipo alfanumérico, el tamaño
está entre 1 y 64.000 Bytes (64Kas). Hasta aquí.
o
NUMERICOS: Admite contenido de caracteres numéricos, el
tamaño será entre 1, 2, 4 y 8 Bytes, dependiendo del formato de tipo numérico.
El formato de tipo numérico puede ser de tipo: DOUBLE, FLOAT, INTEGER, etc...
Este tipo de datos solo se utilizara cuando vayamos a realizar operaciones con
ellos.
o
FECHA Y HORA: Solo admite horas y fechas. Este tipo de dato
ocupa 8 Bytes.
o
MONEDA: Admite contenido de caracteres numéricos, dándoles
a estos un formato automático para una moneda (Puntos de millar, símbolo de la
peseta, etc...) dependiendo este formato de la configuración regional del panel
de control. Este tipo de datos puede llevar decimales y se utilizara siempre
que hablemos de cantidades monetarias.
o
AUTONUMERICO: Este campo lo crea Access con nuestro
consentimiento de una manera automática, para establecerlo como una clave
principal. Es de tipo numérico, y es incrementada automáticamente por Access
cada vez que añadimos un nuevo registro a la tabla.
o
Este
tipo de claves principal, no suelen usarse, ya que es preferible definir
nuestras propias claves, aunque puede ser usada como una posible puerta trasera
en alguna ocasión.
o
SI / NO: Tipo de datos boléanos, los valores boléanos
pueden tener dos valores posibles, 1 o 0, donde 1 es verdadero y 0 es Falso.
OBJETO OLE: El contenido serán gráficos y el tamaño de estos
puede ser de hasta 1 un Gigabyte. Hay que tener especial cuidado con estos
objetos, pues al borrarlos de la base de datos, no se reduce el tamaño de la
misma, mientras esta no sea compactada.
No hay comentarios:
Publicar un comentario