Arquitecturas de BD
Modelo ANSI/SPARC
•Las arquitecturas de BD han evolucionado.
•Estándar hoy -> descrito por el comité ANSI/X3/SPARC, fines de los 70s.
•ANSI/X3/SPARC: grupo de estudio del Standard Planning and Requirements Commitee (SPARC) del ANSI (American National Standars Institute), dentro del Comité X3 que se ocupa de computadores e informática.•Creado en 1969, para estudiar el impacto de los SGBD en los sistemas de información.
•Los resultados publicados en 1975, propusieron el uso de tres niveles de descripción de datos.
•->Un esqueleto generalizado para sistemas de bases de datos que propone una arquitectura de tres niveles:
• Nivel interno (nivel físico)
• Nivel conceptual
• Nivel externo (nivel de usuario)
• Arquitectura de tres niveles
• Objetivos BD: independencia entre datos y aplicaciones.
• La estructura lógica de usuario o esquema externo (nivel usuario) es la visión que tiene de la base de datos cada usuario en particular.
• La estructura física o esquema interno es la forma como se organizan los datos en el medio de almacenamiento físico.
• En los SI encontramos la existencia de dos estructuras: la lógica (vista del usuario) y la física (forma en que se encuentran los datos en el almacenamiento).
• En las BD-> nuevo nivel de abstracción: nivel conceptual, estructura lógico global, esquema, etc.
• ->Representación global de los datos que se interpone entre las estructuras lógica y física, independiente, tanto del equipo como de cada usuario en particular.
• Esta arquitectura de tres niveles proporciona la deseada independencia: capacidad para cambiar el esquema en un nivel sin tener que cambiarlo en ningún otro nivel.
• Distinguimos entre independencia física y lógica:• Independencia lógica de los datos: Cambio del esquema
conceptual sin cambiar las vistas externas o las aplicaciones.• Independencia física de los datos: Cambio del esquema interno
sin necesidad de cambiar el esquema conceptual o los esquemas externos.
• Nivel Externo
• Más cercano a los usuarios.• En él se definen los datos tal y como los va a ver éste. • Cada usuario puede tener su propio modelo externo,
sólo con datos e interrelaciones que necesite.
• Deben definirse las restricciones de uso, como por ejemplo el derecho a insertar o borrar determinados datos, o poder acceder a ellos.
• Se ocupa de las vistas individuales de los usuarios.
• Usuarios:
• Programadores de aplicaciones.
• Usuarios finales. Disponen de un lenguaje de consulta o algún lenguaje de aplicación especial, manejado por ejemplo por menús o forms.
• El SQL (Structured Query Language) es usado en casi todos los sistemas relacionales actuales.
• Nivel Conceptual
• Describe en términos abstractos pero con absoluta fidelidad cierta realidad: diseño conceptual de la base de datos.
• Se define mediante un esquema conceptual. • Para escribirlo se utiliza un DDL (lenguaje de definición de
datos) conceptual.
• Para que exista independencia de los datos, las definiciones en DDL no deberán implicar consideraciones de estructura de almacenamiento.
• En el esquema conceptual no debe haber representaciones de campos almacenados, secuencia de registros, indexación, etc.
• Nivel Interno
• Nivel más bajo en la abstracción.
• Describe la estructura física de la base de datos, las estrategias de acceso a los datos, etc.
• Especifica todos los aspectos relacionados con el HW: dispositivos de memoria a usar (tamaño de páginas, número de éstas, tamaño de los buffers, direcciones físicas, etc.), técnicas de compresión de datos, criptografiado, etc.
• El modelo interno, que es único, corresponde a la implementación del modelo conceptual.
• Ningún usuario, en calidad de tal, tiene conocimiento de este nivel.
• Redundancia
• Se presenta cuando se repiten innecesariamente datos en los archivos que conforman la base de datos.
• Inconvenientes:
• Incremento del trabajo: un mismo dato está almacenado en dos o más lugares, cuando se graben o actualicen, debe hacerse en todos los lugares a la vez.
• Desperdicio de espacio de almacenamiento: los mismos datos están almacenados en varios lugares, ocupando así más bytes del medio de almacenamiento. Problema es más evidente en grandes bases de datos.
• Inconsistencia de datos: los datos redundantes no son iguales entre sí: se actualiza el dato en un lugar, pero el dato duplicado en otro lugar no es actualizado.
• Si una base de datos está bien diseñada, no debería haber redundancia de datos.
• Integridad
• Objetivo->proteger la BD contra operaciones que introduzcan inconsistencias en los datos.
• Se debe garantizar la coherencia de los datos, comprobando que sólo los usuarios autorizados puedan efectuar las operaciones correctas sobre la base de datos. Esto se consigue mediante:
• Control sobre los usuarios que acceden a la BD y los tipos de operaciones que están autorizados a realizar.
• Permite crear o borrar usuarios y conceder o retirar derechos a efectuar determinados tipos de operaciones (por ejemplo: crear objetos, borrar objetos, modificar datos, etc.)
• Validación de las operaciones realizadas con los datos. • Conjunto de reglas: restricciones de integridad.
objetivo-> no permitir el ingreso de datos que se encuentren fuera del dominio del atributo.
• Ej. Si el dominio del atributo edad es números mayores de 18, no debería permitirse el ingreso de valores inferiores.
• Restricciones de integridad referencial: imponen que las modificaciones realizadas sobre algunos datos, obliguen a realizar modificaciones de otros datos con los que están enlazados
• Ej. si se modifica el código de un artículo, se debería modificar ese código en todos los pedidos que soliciten el artículo.
• Protección de los datos contra los accesos malintencionados y los fallos.
• Se suelen evitar con la asignación de password a los usuarios, la definición de vistas, protección física de los datos (encriptado de los datos).
• Con respecto a los fallos causados por manipulaciones incorrectas, o accidentes lógicos o físicos, los SGBD suelen disponer de utilidades de recuperación de los datos después de un fallo.