Base Datos
Base Datos
Según el contenido
• Bases de datos bibliográficas
• Bases de datos de texto completo
• Directorios
• Bases de datos o "bibliotecas" de información química o biológica
Componentes
• Información
• Equipo
• Programas
• Usuarios
Componentes de una Base de datos - Información
La información en la base de datos está integrada y además es
compartida.
Integrada. Significa que la base de datos se puede pensar como una unificación de
diferentes archivos de datos en los que la redundancia entre ellos ha sido total o
parcialmente eliminada.
Compartida. Significa que los elementos individuales de información en la base de datos
pueden ser compartidos entre varios usuarios distintos, en el sentido de que cada uno de
ellos puede tener acceso al mismo elementos de información y diferentes usuarios
pueden utilizarlo para propósitos diferentes.
Componentes de una Base de datos - Equipo
Maneja las solicitudes de acceso a la base de datos formuladas por los usuarios y soporta las operaciones de
adicionar y eliminar archivos, actualización y recuperación de esos archivos. (CRUD)
SQL
-Instrucciones de definición de datos.
-Instrucciones de manipulación de datos.
-Instrucciones de consulta.
La función general del DBMS es la de aislar a los usuarios de la base de datos de los detalles a nivel del
equipo, PE. MySQl, Oracle, SqlServer
Componentes de una Base de datos - Usuarios
Programador de aplicaciones
Responsable de escribir programas de aplicación que utilizan las bases de datos.
Usuario final
Aquel que interactúa con el sistema desde una terminal en línea, tiene acceso al sistema a través de una
aplicación en línea para el usuario final.
Administrador de la base de datos (DBA)
Responsable del control total del sistema.
Usuario altamente experimentado, ofrece el soporte técnico para la base de datos, decide qué información
se mantiene en la base de datos.
Database Management System (DBMS)
Tras ser postuladas sus bases en 1970 por Edgar Frank Codd, de los laboratorios IBM en San José (California), 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 esta 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, pensando en cada relación como si fuese una tabla que está compuesta por
registros (cada fila de la tabla sería un registro o "tupla") y columnas (también llamadas "campos").
Es el modelo más utilizado en la actualidad para modelar problemas reales y administrar datos dinámicamente.
Modelo relacional - Ventajas
- Provee herramientas que garantizan evitar la
duplicidad de registros.
- Garantiza la integridad referencial, así, al eliminar un
registro elimina todos los registros relacionados
dependientes.
- Favorece la normalización por ser más comprensible y
aplicable.
Modelo relacional - desventajas
- Presentan deficiencias con datos gráficos, multimedia, CAD y
sistemas de información geográfica.
- No se manipulan de forma eficiente los bloques de texto como tipo
de dato.
Este modelo considera la base de datos como una colección de relaciones. De manera simple, una
relación representa una tabla que no es más que un conjunto de filas, cada fila es un conjunto de campos
y cada campo representa un valor que interpretado describe el mundo real. Cada fila también se puede
denominar tupla o registro y a cada columna también se le puede llamar campo o atributo.
Para manipular la información utilizamos un lenguaje relacional, actualmente se cuenta con dos lenguajes
formales el Álgebra relacional y el Cálculo relacional. El Álgebra relacional permite describir la forma de
realizar una consulta, en cambio, el Cálculo relacional solamente indica lo que se desea devolver.
Esquema de una base de datos relacional
Un esquema contiene la definición de una estructura (generalmente relaciones
o tablas de una base de datos), es decir, determina la identidad de la relación y
qué tipo de información podrá ser almacenada dentro de ella; en otras
palabras, el esquema contiene los metadatos de la relación. Todo esquema
constará de:
•Nombre de la relación (su identificador).
•Nombre de los atributos (o campos) de la relación y sus dominios; el dominio
de un atributo o campo define los valores permitidos para el mismo, equivalente
al tipo de dato por ejemplo character, integer, date, string...
Instancias de una base de datos relacional
Una instancia de manera formal es la aplicación de un esquema a un conjunto finito de datos.
En palabras no tan técnicas, se puede definir como el contenido de una tabla en un momento
dado, pero también es válido referirnos a una instancia cuando trabajamos o mostramos
únicamente un subconjunto de la información contenida en una relación o tabla, como por
ejemplo:
Ciertos caracteres y números (una sola columna de una sola fila).
Algunas o todas las filas con todas o algunas columnas
Cada fila es una tupla. El número de filas es llamado cardinalidad.
El número de columnas es llamado aridad o grado.
Base de datos relacional
Una base de datos relacional es un conjunto de una o más tablas estructuradas en registros
(líneas) y campos (columnas), que se vinculan entre sí por un campo en común, en ambos casos
posee las mismas características como por ejemplo el nombre de campo, tipo y longitud; a este
campo generalmente se le denomina ID, identificador o clave. A esta manera de construir
bases de datos se le denomina modelo relacional.
Estrictamente hablando el término se refiere a una colección específica de datos pero a menudo
se le usa, en forma errónea como sinónimo del software usado para gestionar esa
colección de datos.
Ese software se conoce como sistema gestor de base de datos relacional (SGBD) o en inglés
relational database management system (RDBMS).
Las bases de datos relacionales pasan por un proceso al que se le conoce como
normalización de una base de datos, el cual es entendido como el proceso necesario para que
una base de datos sea utilizada de manera óptima.
Ejemplo
Conceptos – RELACIÓN (TABLA)
• Aquellas que son definidas por el hecho de que la base de datos sea relacional:
• No puede haber dos tuplas iguales
• El orden de las tuplas no es significativo
• El orden de los atributos no es significativo
• Cada atributo sólo puede tomar un valor en el dominio en el que está inscrito
Conceptos - RESTRICCIÓN
• Aquellas que son incorporadas por los usuarios:
• Clave primaria (primary key)
Hace que los atributos marcados como clave primaria no puedan repetir valores. Además obliga a que
esos atributos no puedan estar vacíos. Si la clave primaria la forman varios atributos, ninguno de ellos
podrá estar vacío.
• Unicidad (unique)
Impide que los valores de los atributos marcados de esa forma, puedan repetirse. Esta restricción
debe indicarse en todas las claves alternativas.
• Obligatoriedad (not null)
Prohíbe que el atributo marcado de esta forma no tenga ningún valor (es decir impide que pueda
contener el valor nulo, null).
• Integridad referencial (foreing key)
Sirve para indicar una clave externa. Cuando una clave se marca con integridad referencial, no se
podrán introducir valores que no estén incluidos en los campos relacionados con esa clave.
Conceptos - RESTRICCIÓN
Esto último causa problemas en las operaciones de borrado y modificación de registros, ya que si se ejecutan esas
operaciones sobre la tabla principal quedarán filas en la tabla secundaria con la clave externa sin integridad. Esto se puede
manipular agregando las siguientes cláusulas:
RESTRICT: esta opción impide eliminar o modificar filas en la tabla referenciada si existen filas con el mismo valor de clave
foránea.
CASCADE: borrar o modificar una clave en una fila en la tabla referenciada con un valor determinado de clave, implica
borrar las filas con el mismo valor de clave foránea o modificar los valores de esas claves foráneas.
SET NULL: borrar o modificar una clave en una fila en la tabla referenciada con un valor determinado de clave, implica
asignar el valor NULL a las claves foráneas con el mismo valor.
NO ACTION: las claves foráneas no se modifican, ni se eliminan filas en la tabla que las contiene.
SET DEFAULT: borrar o modificar una clave en una fila en la tabla referenciada con un valor determinado implica asignar el
valor por defecto a las claves foráneas con el mismo valor.
Conceptos - CARDINALIDAD
Define los atributos numéricos de la relación entre dos
entidades o conjuntos de entidades.
Las tres relaciones cardinales principales son:
-uno a uno
-uno a muchos
-muchos a muchos.
La falta de un fundamento teórico, por lo que el significado exacto de modelo de datos orientado a objetos no está
bien definido.
Con un modelo de datos orientado a objetos es más difícil conseguir personal experimentado.
Falta de estándares.
La competencia de los sistemas de gestión de base de datos relacionales y objeto-relacionales.
La encapsulación está comprometida para optimizar las consultas.
Un sistema de gestión de base de datos orientado a objetos, generalmente controla la concurrencia bloqueando.
Bloquear una jerarquía de herencia es difícil y puede afectar al rendimiento.
Un modelo de datos orientado a objetos es inherentemente más complejo que el modelo de datos relacional; el
sistema de gestión de base de datos orientado objetos proporciona más complejidad que el sistema de gestión de
un modelo de datos relacional. La complejidad lleva a mayores costos de implementación y mantenimiento.
Falta de de vistas, pero ¿son las vistas necesarias con un modelo de objetos?
Los sistemas de gestión de bases de datos orientados a objetos generalmente proporcionan control de acceso de
grano grueso. Se necesita un mecanismo de seguridad más fino para la mayoría de las aplicaciones comerciales.
Base de datos OO
En una base de datos orientada a objetos, la información se
representa mediante objetos como los presentes en la
programación orientada a objetos. Cuando se integra las
características de una base de datos con las de un
lenguaje de programación orientado a objetos, el resultado es un
sistema gestor de base de datos orientada a objetos (ODBMS, object
database management system). Un ODBMS hace que los objetos de
la base de datos aparezcan como objetos de un lenguaje de
programación en uno o más lenguajes de programación a los que dé
soporte. Un ODBMS extiende los lenguajes con datos persistentes de
forma transparente, control de concurrencia, recuperación de datos,
consultas asociativas y otras capacidades.1
Ejemplo
NORMALIZACIÓN
La normalización es una técnica que busca dar eficiencia y fiabilidad a una BD relacional. Su objetivo es, por un lado, llevar
la información a una estructura donde prime el aprovechamiento del espacio; y por otro lado, que el manejo de información
pueda llevarse a cabo de forma rápida.
Cuando realizamos un diseño en el modelo relacional existen diferentes alternativas, pudiéndose obtener diferentes
esquemas relacionales. No todos ellos serán equivalentes y unos representarán mejor la información que otros. Las tablas
obtenidas pueden presentar problemas:
• Redundancia. Se llama así a los datos que se repiten continua e innecesariamente por las tablas de las bases de datos.
Cuando es excesiva es evidente que el diseño hay que revisarlo, es el primer síntoma de problemas y se detecta
fácilmente.
• Ambigüedades. Datos que no clarifican suficientemente el registro al que representan. Los datos de cada registro
podrían referirse a más de un registro o incluso puede ser imposible saber a qué ejemplar exactamente se están
refiriendo.
• Pérdida de restricciones de integridad. Normalmente debido a dependencias funcionales.
• Anomalías en operaciones de modificación de datos. El hecho de que al insertar un solo elemento haya que repetir
tuplas en una tabla para variar unos pocos datos. O que eliminar un elemento suponga eliminar varias tuplas
necesariamente (por ejemplo que eliminar un cliente suponga borrar seis o siete filas de la tabla de clientes, sería un error
muy grave y por lo tanto un diseño terrible).
NORMALIZACIÓN
La normalización nos permite eliminar estos problemas, forzando a la división de una tabla en dos o más.
Para comprender bien las formas normales es necesario identificar lo que significa dependencia funcional:
Se dice que existe dependencia funcional entre dos atributos de una tabla si para cada valor del primer atributo existe un
sólo valor del segundo.
existe dependencia funcional nombre_alumno -> ciudad, es decir para un valor de nombre de alumno existe un solo
valor de ciudad.
Reglas Normalización
Para que las tablas de nuestra BD estén normalizadas
deben cumplir las siguientes reglas:
Clave Primaria
PK
Formas Normales
Cuarta Forma Normal(4FN)
Antes de aplicar la cuarta forma normal, debe nuestra tabla cumplir con
la tercera forma normal. Luego debemos observar que nuestra tabla no
posea dependencias multivaluadas.
Una tabla con una dependencia multivaluada es una donde la existencia
de dos o más relaciones independientes muchos a muchos causa
redundancia; y es esta redundancia la que es suprimida por la cuarta
forma normal.
Si apreciamos la imagen podemos notar que existe una
dependencia multivaluada donde el atributo restaurante y el
atributo variedad de pizza se repite desde dos a tres veces.
Ejemplo: A1 pizza y Corteza gruesa
Para evitar esta redundancia de datos debemos realizar otra
tabla.
Formas Normales
Cuarta Forma Normal(4FN)
Aunque restaurante, variedad de pizza y área de envío no sean atributos primarios y podemos repetir datos
en columna de igual forma, la cuarta regla nos dice que debemos evitar la redundancia.
Por consiguiente, creamos una nueva tabla, ambos con clave compuesta para este caso y sería una para
variedad por restaurante y otra para el envío.
De esta forma evitamos disminuir la redundancia en los datos.
Formas Normales
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.
Bibliografía