150 likes | 367 Views
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.
E N D
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 losusuarios 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.