Logo Studenta

Resumen Sistemas de Datos ENCONTRADO de TODA LA MATERIA

¡Este material tiene más páginas!

Vista previa del material en texto

Sistemas de Datos – Final
(UT 1) Introducción a los Sistemas de Datos
El sistema objeto puede tratarse de personas, cosas, procedimientos, documentos, etc. De éstos se obtienen
datos que ingresan al SI para ser almacenados y procesados, para luego convertirse en información. Para realizar un
SI mediante un sistema de datos se necesita comprender cómo símbolos registrados (datos) pueden utilizarse para
representar información (conocimiento) acerca del sistema objeto. Para estar en condiciones de entender la realidad
(y el sistema objeto), el hombre organiza los objetos y los fenómenos en clases de objetos. Similarmente, las
propiedades son organizadas en tipos o clases de propiedades o atributos o relaciones.
Dado que propósito de los sistemas de datos es proveer información acerca del mundo real, la definición de los
datos y del procesamiento a incluir en el sistema debe desarrollarse a partir de las concepciones que los usuarios
tengan de sus mundos y no de los requerimientos de los programas de una computadora. Se atiende al diseño de
los sistemas de datos antes de comenzar una tarea de construcción detallada. Un SI está bien diseñado sólo si provee
la información adecuada, en cuanto a su tipo, calidad y oportunidad, y lo hace en una forma económica, lo cual
presenta dos problemas:
A partir de estos 5 problemas es que se definen las áreas principales del diseño de los SI:
1. Análisis y diseño del sistema objeto.
2. Análisis infológico (la cual puede relacionarse con la capacidad de entender cuáles de los datos externos que
posibilita el “big data” son de utilidad).
3. Arquitectura del sistema de datos.
4. Construcción del sistema de datos.
5. Implementación y operación del sistema de datos.
Los sistemas de datos han cobrado mucha importancia, dado que los datos son un activo importante de cada
organización, que podrían generarle ventajas competitivas. Los denominados datos abiertos (open data) habilitan a
las organizaciones la posibilidad de usar datos externos, que sino serían muy difíciles de conseguir.
El término “Big Data” podría traducirse como datos masivos. requiere también, abordar nuevas problemáticas tecnológicas en la
gestión de datos, que se las resume con las tres V: Volumen (cantidad de bytes), Velocidad (tiempo de respuesta) y Variedad (de
formatos). También se agrega una cuarta V, que es la veracidad, ya que es un desafío verificar la confiabilidad de los datos (sobre
todo cuando provienen de diversas fuentes y no hay poco tiempo para validar).
Big data y los desafíos de las V
● Volumen
● Velocidad
● Variedad
● Veracidad
Sistemas gestores de bases de datos (SGBD)
Los usuarios finales trabajan con software aplicativo que accede a datos almacenados en el almacenamiento
secundario. Entre ambos existe un sistema de gestión de bases de datos (SGBD). Éste consiste en una colección de
datos interrelacionados y un conjunto de programas para acceder a dichos datos. La colección de datos, denominada
base de datos, contiene información relevante para una empresa. El objetivo principal de un SGBD es proporcionar
una forma de almacenar y recuperar la información de una base de datos de manera que sea tanto práctica como
eficiente. Se diseñan para gestionar grandes cantidades de información.
Los SGBD se implementan siempre sobre un sistema operativo y brindan servicios que permiten gestionar varios
problemas de datos:
● Transacciones: Una transacción es un conjunto de operaciones que lleva a cabo una única función lógica en
una aplicación de bases de datos. Cada transacción es una unidad de atomicidad y consistencia. Por tanto, se
exige que, si la base de datos era consistente cuando la transacción comenzó, debe ser consistente cuando la
transacción termine con éxito. El SGBD garantiza que la base de datos quede en un estado consistente
(correcto) a pesar de los fallos del sistema, y que la ejecución concurrente de transacciones transcurra sin
conflictos.
● Concurrencia: control de la interacción entre las transacciones concurrentes (2 o más peticiones sobre un
mismo objeto) para garantizar la consistencia de la base de datos.
● Acceso: a partir de la gestión de usuarios y contraseñas, se diferencia a los usuarios en cuanto al tipo de
acceso que se les permite a diferentes valores de los datos de la base de datos. Estas diferenciaciones se
expresan en términos de autorización, las cuales pueden ser de lectura, inserción, actualización y eliminación
de los datos.
● Restricciones: un SGBD dispone de elementos que permiten asegurar restricciones en los datos que se
carguen en la base de datos. Las restricciones pueden ser:
o De dominio: Se debe asociar un dominio de valores posibles a cada atributo. La declaración de un
atributo como parte de un dominio concreto actúa como restricción de los valores que puede
adoptar.
o Integridad referencial: asegurar que un valor que aparece en una relación para un conjunto de
atributos dado aparece también para un determinado conjunto de atributos en otra relación. Las
modificaciones de la base de datos pueden causar violaciones de la integridad referencial. Cuando se
viola una restricción de integridad, el procedimiento normal es rechazar la acción que ha causado esa
violación.
● Archivos: gestiona la asignación de espacio de almacenamiento de disco y las estructuras de datos usadas
para representar la información almacenada en el disco.
● Memoria intermedia: es responsable de traer los datos desde el disco de almacenamiento a la memoria
principal y decidir los datos a guardar en la memoria caché. Es una parte fundamental de los sistemas de
bases de datos, ya que permite que la ésta maneje tamaños de datos que son mucho mayores que el tamaño
de la memoria principal.
● Optimizar consultas: las consultas ayuda al sistema de bases de datos a simplificar y facilitar el acceso a los
datos. Por ello, el rápido procesamiento de las actualizaciones y de las consultas es importante.
El hecho de que se implemente un SGBD no quita la posibilidad de que exista un software aplicativo por cada
proceso de la organización para cargar los datos en la base.
Estructura física
El SGBD implementa varias estructuras de datos como parte de la implementación física del sistema:
● Archivos de datos: almacenan la base de datos en sí misma.
● Diccionario de datos: Para poder guardar un dato, éste debe respetar una cierta estructura (tipo de dato,
longitud, etc.). Por ello, los SGBD poseen un tipo especial de tabla, denominada diccionario de datos en
donde se guarda esta información (metadatos) que hace que la base de datos se defina a sí misma. Antes de
leer o modificar los datos reales, el SGBD consulta el diccionario de datos: es decir, provee los metadatos a
las instrucciones de lenguaje de manipulación de datos (DML). El diccionario de datos sólo puede ser
accedido y actualizado por el propio SGBD (no por los usuarios normales).
● Índices: Pueden proporcionar un acceso rápido a los elementos de datos. Facilitan punteros a los elementos
de datos que tienen un valor concreto. La asociación es una alternativa a la indexación que es más rápida en
algunos casos, pero no en todos.
Administrador de bases de datos (DBA)
Una de las principales razones de usar SGBD es tener un control centralizado tanto de los datos como de los
programas que tienen acceso a esos datos. La persona que tiene ese control central sobre el sistema se denomina
administrador de bases de datos (DBA). Las funciones del DBA incluyen:
Definición del esquema: crea el esquema original de la base de datos mediante la ejecución de un conjunto
de instrucciones de definición de datos en el DDL.
Definición de la estructura y del método de acceso.
Modificación del esquema y de la organización física: el DBA es el responsable de hacer las modificaciones
en el esquema de la base de datos para reflejar las necesidades cambiantes de la organización, o para alterar
la organización física a fin de mejorar el rendimiento. Lo hace mediante herramientas que facilitan escribir el
lenguaje de definiciónde datos (DDL).
Concesión de autorización para el acceso a los datos: puede regular las partes de la base de datos a las que
puede tener acceso cada usuario.
Mantenimiento rutinario:
o Back up periódico para impedir la pérdida de datos en caso de desastres.
o Asegurarse de que se dispone de suficiente espacio libre en disco para las operaciones normales y
aumentar el espacio en disco según sea necesario.
o Supervisar los trabajos que se ejecuten en la base de datos y asegurarse de que el rendimiento no se
degrade debido a que algún usuario haya remitido tareas muy costosas.
Los niveles de Abstracción de los datos
Para que el sistema sea útil debe recuperar los datos eficientemente. Esto implica usar estructuras de datos
complejas para la representación de los datos. Dado que muchos de los usuarios de sistemas de bases de datos no
tienen formación en informática, los desarrolladores ocultan esa complejidad a los usuarios mediante varios niveles
de abstracción para simplificar la interacción de los usuarios con el sistema:
● Nivel conceptual (de vistas, externo):
nivel más elevado de abstracción. Sólo
describe parte de la base de datos. Si
bien es el menos complejo, aún queda
algo de complejidad debido a la variedad
de información almacenada en las
grandes bases de datos. Muchos
usuarios del sistema no necesitan toda
esta información; en su lugar sólo
necesitan tener acceso a una parte de la
base de datos. El nivel conceptual existe
para simplificar su interacción con el
sistema. Éste puede proporcionar
muchas vistas para la misma base de
datos.
● Nivel lógico (esquema): El nivel inmediatamente inferior de abstracción describe qué datos se almacenan en
la base de datos y qué relaciones existen entre esos datos. Este nivel, por tanto, describe toda la base de
datos en términos de un número pequeño de estructuras relativamente simples. Aunque la implementación
de esas estructuras simples en el nivel lógico puede involucrar estructuras complejas del nivel físico, los
usuarios del nivel lógico no necesitan preocuparse de esta complejidad. Los DBA, que deben decidir la
información que se guarda en la base de datos, usan el nivel de abstracción lógico.
● Nivel físico (interno): El nivel más bajo de
abstracción describe cómo se almacenan
realmente los datos. Describe en detalle las estructuras de datos complejas de bajo nivel.
Ciclo de vida y diseño
Dentro del ciclo de vida de un sistema de base de datos, en la etapa de diseño se definen cómo se construirán y
funcionarán los distintos niveles de abstracción:
● Diseño conceptual: escoger el modelo de
datos y traducir requisitos relevados en un
esquema conceptual de la base de datos.
● Diseño lógico: Relacionar el esquema
conceptual con el modelo de implementación
de los datos del sistema de base de datos que
se va a usar
● Diseño físico: Uso del esquema de base de
datos específico para el sistema resultante. Se
especifican las características físicas de la
base de datos (organización de archivos,
estructuras de almacenamiento interno, etc.).
Arquitectura de las bases de datos
La arquitectura de los sistemas de bases de datos se ve muy influida por el sistema informático subyacente sobre
el que se ejecuta el sistema de bases de datos. Los sistemas de bases de datos pueden estar:
Centralizados.
Tipo cliente-servidor: Hoy en día la mayor parte de los usuarios de los sistemas de bases de datos no está
presente en el lugar físico en que se encuentra el sistema de bases de datos, sino que se conectan a él a
través de una red. Por tanto, se puede diferenciar entre los sistemas clientes, en los que trabajan los usuarios
remotos de la base de datos, y los sistemas servidores, en los que se ejecutan los sistemas de bases de datos.
Paralelos.
Distribuidos: se extienden por varias máquinas geográficamente separadas.
(UT 2) Diseño conceptual y lógico de las bases de datos
El diseño conceptual de una base de datos
consiste en representar el sistema objeto cuyos
datos serán almacenados en la base de datos.
Al momento de diseñar, el diseñador releva
cómo es el sistema objeto a través de personas,
documentos y procedimientos. Se deben
representar aquellos aspectos del sistema objeto
que sean relevantes para la toma de decisiones.
Dicha relevancia viene dada por las necesidades
actuales y futuras de información. Existen
técnicas de diseño que brindan herramientas para
hacer esta representación y capturar la mayor
cantidad de datos posibles.
Aplicando la normalización y otros criterios de diseño, se llega a un modelo implementable. Este es el modelo de
datos lógico, que consiste en el esquema de la base de datos.
Modelo Entidad-Relación (E-R)
Para garantizar que se obtiene una comprensión precisa de la naturaleza de los datos y del modo en que éstos se
utilizan en la empresa, se requiere disponer de un modelo de comunicación que no sea técnico y que esté libre de
ambigüedades. El modelo Entidad-Relación (E-R) es una representación que permite formalizar cuáles son los datos,
y las relaciones entre éstos, que debe guardar el SI.
El modelo E-R es una técnica de diseño de base de datos de tipo arriba a abajo que comienza identificando los
datos más importantes, denominados entidades, y las relaciones entre los datos que deben presentarse en el
modelo. Después se añaden más detalles, como la información que se requiere almacenar acerca de las entidades y
relaciones, lo que se denomina atributos y sobre cualesquiera restricciones que haya que aplicar a las entidades,
relaciones y atributos.
Entidad
El modelo E-R está basado en una percepción del mundo real que consiste en un conjunto de objetos básicos,
denominados entidades, y de las relaciones entre esos objetos. Una entidad es una cosa, persona o hecho del
mundo real que es distinguible de otros objetos (es decir, algo que existe y que puede ser representado) sobre el cual
el sistema debe guardar información. Las entidades son un grupo de objetos con las mismas propiedades, que la
empresa identifica como poseedores de una existencia independiente. Puede tratarse de objetos con una existencia
física (real) o de objetos con una existencia conceptual (abstracta).
Para cada entidad es necesario definir atributos, ocurrencias y clave primaria.
Ocurrencia o instancia de la entidad
Cada uno de los elementos concretos en los que se manifiesta esta entidad es una ocurrencia o instancia de la
entidad. Se trata de un objeto identificable de forma unívoca dentro de un tipo de entidad. Se da cuando en una
entidad los distintos atributos asumen un valor para representar una determinada instancia de la misma en la
realidad.
Atributos
Las entidades se describen en las bases de datos mediante un conjunto de atributos. Un atributo es toda aquella
característica o propiedad que se desee registrar de una ocurrencia de una entidad. Los atributos de una entidad son
acordes con las características de la realidad que se desea representar, por ello varían en cada diseño particular. No
se trata de representar todas las características de esa entidad, sino solamente las que son relevantes, es decir, las
propiedades que representan a la entidad para esa organización.
Los atributos contienen valores que describen cada ocurrencia. Lo que se guarda en una base de datos son los
valores posibles que pueden tener cada una de esas instancias. Cada atributo está asociado a un dominio, es decir,
un conjunto de valores permitidos para uno o más atributos. El dominio es único y define los valores potenciales que
un atributo puede tener.
Claves
Una superclave es un conjunto de uno o más atributos de una entidad que,
cuando toman un valor, identifican unívocamente una ocurrencia de una
entidad. Se trata de uno o varios atributos que, considerados conjuntamente,
permiten identificar de manera unívoca una tupla (fila) de la relación. Las
superclaves no son suficientes ya que pueden contener atributos innecesarios. Si
C es una superclave, entonces también lo es cualquier subconjunto de C.
Aquellas superclaves para las queninguno de sus subconjuntos constituya una
superclave se los denomina superclave mínima o clave candidata.
La clave candidata es el conjunto mínimo de atributos cuyos valores identifican
de forma unívoca cada instancia de una entidad. Es aquella superclave a la que,
si se elimina cualquier atributo del conjunto, deja de ser superclave. No puede
contener valores no obligatorios (nulos). Una clave candidata es compuesta si está formada por 2 o más atributos.
Ocurre en los casos donde la clave está compuesta por varios atributos cuyos valores, tomados conjuntamente, son
unívocos para cada instancia de la entidad, pero no lo son si se los considera por separado.
La clave primaria (PK) es una clave candidata (por ende, es superclave) a la que se la elige como el principal
criterio de identificación. Es la clave candidata que ha elegido el diseñador de la base de datos como medio principal
para la identificación de las tuplas de una relación. Es obligatoria por definición y escogerse de manera que los
valores de sus atributos no se modifiquen nunca, o muy rara vez (no admite duplicados). Se suele elegir teniendo en
cuenta:
● Número mínimo de atributos.
● Menor frecuencia de cambios.
● Menor longitud.
● Más afín a la perspectiva del usuario.
Las claves (sean primarias, candidatas o superclaves) son propiedades de toda la relación, no de cada una de las
tuplas. Ninguna pareja de tuplas de la relación puede tener simultáneamente el mismo valor de los atributos de la
clave. La selección de una clave representa una restricción de la empresa del mundo real que se está modelando.
Las claves alternas son todas las claves candidatas no elegidas como clave primaria. No necesariamente son
obligatorias.
Las claves subrogadas aparecen cuando, en ciertos casos, no es posible determinar una superclave, por lo que se
inventa un atributo autogenerado para identificar unívocamente una ocurrencia de un evento. Es una clave inventada
para ser primaria. Solamente se considera subrogada si no existía como atributo del sistema objeto al momento del
diseño.
La clave foránea (FK) es una clave de una entidad que también es clave primaria de otra entidad. Es un atributo o
conjunto de atributos que hacen referencia a la clave primaria de otra entidad (o a la misma, en el caso de relaciones
recursivas).
Relación
Una relación es un conjunto de asociaciones significativas entre instancias de entidades. Representa las
conexiones que existen entre los datos que se almacenan.
Las relaciones se definen por las claves foráneas (son la manera mecánica de dar existencia a una relación). Se
clasifican según:
Restricciones
Además de entidades y relaciones, el modelo E-R representa ciertas restricciones que los contenidos de la base de
datos deben cumplir. Las mismas existen para, y entre, los datos del modelo. Las restricciones pueden estar dadas
por:
Atributos Entidad Relaciones Generales
• Dominio: se restringen los
valores válidos que
pueden asumir los
atributos.
• Obligatoriedad: no se
puede ingresar una
ocurrencia sin un valor
asignado para todos los
atributos obligatorios.
• Unicidad.
• Clave primaria
• Clave alterna
• Relaciones entre atributos:
restricciones que deben
existir entre los valores de
distintos atributos entre sí,
para que la realidad no sea
falseada.
• Cardinalidad máxima y
mínima
• Integridad referencial:
reglas que deben
cumplirse respecto a las
operaciones de inserción,
modificación y eliminación
de ocurrencias que se
encuentran en los
extremos de cada una de
las relaciones existentes.
Se da entre atributos de
distintas entidades. Existen
restricciones que no caen en
alguno de los grupos
anteriores que entran en
esta categoría.
Transformar modelo en esquema
El modelo E-R no es la representación formal que se utilizará para diseñar el futuro esquema de la base de datos
porque:
● Las entidades débiles no llevan PK, sino discriminante.
● No se formalizan las FK.
● Existen relaciones N a M.
● Se permiten atributos multivalorados y entidades débiles.
Es por eso que para realizar el esquema de la base de datos el modelo se utiliza el diagrama Entidad-Relación
(DER). Convertir el modelo en el diagrama requiere de la aplicación de una serie de reglas de transformación.
1. En las entidades fuertes se crea una relación que incluya los atributos simples.
2. En las entidades débiles se crea una relación que incluya los atributos simples y se agrega la PK de la entidad
identificadora, definiéndola luego como PK de la entidad.
3. Incluir FK en las entidades, del lado del “muchos” de las relaciones.
4. Incluir la FK en las relaciones de 1 a 1 (del lado en que es subtipo, participación opcional) en donde será,
además, PK.
5. Crear una tabla para representar las relaciones N a M, su PK se compone de las PK de las entidades que
relaciona (por otro lado, cada una actúa como FK), y se le agregan los atributos de la relación si los tuviese.
6. Crear una tabla para representar un atributo multivalorado e incluir también un atributo de la PK de la
entidad propietaria
(identificadora) en la nueva
tabla, la misma actuará
como clave externa.
También hay que definir su
PK.
7. Aplicar la técnica de
normalización para validar
que las entidades estén
bien formadas.
Trampas de conexión
Al realizar un modelo E-R
pueden aparecer problemas derivados de una mala interpretación del significado de ciertas relaciones. Estos
problemas se llaman trampas de conexión, las cuales deben resolverse para evitar crear un modelo que no sea una
representación veraz del mundo real.
Los dos tipos más comunes de trampas de conexión son:
● Trampas multiplicativas: ocurre cuando un modelo representa una relación entidades, pero la ruta entre
ciertas instancias de entidad es ambigua. Puede existir cuando salen de la misma entidad dos o más
relaciones del tipo 1 a n. Se resuelve reestructurando el modelo E-R original con el fin de representar la
asociación correcta entre las entidades.
● Trampas de corte: ocurre cuando un modelo sugiere la existencia de una relación entre ciertas entidades,
pero no existe ninguna ruta entre ciertas instancias de entidad. Puede existir cuando hay una o más
relaciones con una multiplicidad mínima de 0 (es decir, participación opcional) formando parte de la ruta que
conecta a dos entidades relacionadas. Se resuelve identificando la relación que falta.
Normalización
La normalización es un método de diseño que permite estructurar las entidades del modelo de datos de una
forma tal que sea más eficiente la actualización de los datos cuando el modelo sea implementado. El objetivo es
generar un conjunto de esquemas de relaciones que permita almacenar información sin redundancias innecesarias,
pero que también permita recuperar la información con facilidad.
La normalización es necesaria para evitar propiedades no deseables:
Repetición de la información.
Imposibilidad de representar determinada información.
Una vez que se aplica la normalización a las entidades se dice que éstas se encuentran normalizadas. Para lograrlo
es conveniente ir pasando por distintos estados de las entidades, llamados formas normales. Las formas normales
representan pruebas que tratan de identificar el agrupamiento óptimo de los atributos de estas entidades, con el fin
de identificar un conjunto de relaciones que soporten adecuadamente los requisitos de datos de la organización. Las
características de un conjunto adecuado de relaciones incluyen:
● Número mínimo de atributos necesarios para soportar los requisitos de datos de la organización.
● Los atributos con una relación lógica fuerte (dependencia funcional) se encuentran en la misma relación.
● Una redundancia mínima, estando cada atributo representado una sola vez, con la importante excepción de
aquellos atributos que constituyan o formen parte de claves externas, los cuales son esenciales para la
combinación de relaciones.
Anomalías de actualización
Las relaciones con datos redundantes pueden presentar problemas que se denominan anomalías de
actualización, las cualesse clasifican en:
Formas normales
Primera forma normal (1FN)
Una entidad está en primera forma normal (1FN) si se trata de una relación en la que la intersección de toda fila y
columna contiene un valor y sólo un valor. Está basada en el concepto de grupo repetitivo. Existe grupo repetitivo
cuando un atributo puede asumir más de un valor en una misma ocurrencia.
Para que una entidad se encuentre en 1FN debe cumplir dos condiciones:
1. Tener definida su clave primaria.
2. No contener grupos repetitivos.
Segunda forma normal (2FN)
Una entidad está en segunda forma normal (2FN) si se trata de una relación que está en 1FN y en la que todo
atributo que no sea de clave candidata depende funcionalmente de modo completo de cualquier clave candidata.
La 2FN está basada en el concepto de dependencia funcional. Se dice que un atributo B depende funcionalmente
de un atributo A si el valor que asume el atributo A determina el valor que asumirá el atributo B. En otras palabras,
cada valor de A está asociado con exactamente un valor de B. Esto se simboliza como . En este caso se dice que𝐴→𝐵
A es determinante de B, lo que implica que dos instancias que tengan el mismo valor para A tendrán el mismo valor
para B; sin embargo, para un determinado valor de B puede haber varios valores diferentes de A.
Se dice que hay dependencia funcional completa si la eliminación de cualquier atributo de A hace que la
dependencia funcional deje de existir. En cambio, es parcial si existe algún atributo que puede eliminarse de A y la
dependencia continúa verificándose.
La 2FN se aplica a las relaciones con PK compuestas, es decir, PK conformadas por 2 o más atributos. Por ende,
una relación con PK de un único atributo está automáticamente en 2FN.
Para que una entidad se encuentre en 2FN debe cumplir dos condiciones:
1. Encontrarse en 1FN.
2. No tener dependencias funcionales parciales respecto de la clave primaria. Es decir, todo atributo que no
forme parte de la clave primaria debe depender funcionalmente del total de la clave primaria.
Tercera forma normal (3FN)
Una entidad está en tercera forma normal (3FN) si se trata de una relación que se encuentra en 1FN y 2FN y en la
que ningún atributo que no sea de clave candidata depende transitivamente de ninguna clave candidata.
La 3FN se basa en el concepto de dependencia funcional transitiva:
Para que una entidad se encuentre en 3FN debe cumplir dos condiciones:
1. Encontrarse en 2FN.
2. No existir dependencias funcionales transitivas, es decir, que no existan dependencias funcionales entre
atributos que no formen parte de la clave primaria.
Formas normales avanzadas
Forma normal de Boyce-Codd (FNBC)
La forma normal de Boyce-Codd (FNBC) analiza si la dependencia funcional es trivial o no. En una dependencia
funcional, un subconjunto de atributos A determina el valor de un subconjunto de atributos B. Dicha dependencia es
trivial cuando B está incluido en A.
Una relación está en FNBC cuando, dada una dependencia funcional , ocurre una de las siguientes𝐴→𝐵
posibilidades:
● A es superclave.
● es trivial, estando previamente en 3FN.𝐴→𝐵
La diferencia entre 3FN y FNBC es que para la dependencia funcional , 3FN permite que exista esta𝐴→𝐵
dependencia en una relación si B es un atributo de clave principal y A no es superclave, mientras que FNBC exige,
para que esta dependencia permanezca en una relación, que A sea superclave. Por tanto, FNBC es más fuerte que
3FN, de modo que toda relación en FNBC está también en 3FN.
Una entidad cuyos atributos son todos PK está automáticamente en FNBC.
Cuarta forma normal (4FN)
La cuarta forma normal (4FN) se basa en el concepto de dependencia multivalorada, las cuales ocurren cuando,
dado un valor para el atributo A éste determina n valores para el subconjunto de atributos B. Se simboliza .𝐴↠𝐵
Una entidad está en 4FN cuando, dada una dependencia multivalorada , ocurre una de las siguientes𝐴↠𝐵
posibilidades:
● es trivial, es decir B está incluido en A ( ).𝐴↠𝐵 𝐵∪𝐴
● A es superclave de (siendo en este caso la dependencia no trivial).𝐴↠𝐵
4FN es más fuerte que FNBC ya que impide que las relaciones contengan dependencias multivaloradas no triviales
y, por tanto, redundancia en los datos. La normalización de FNBC a 4FN implica la eliminación de las dependencias
multivaloradas de la relación, colocando los atributos en una nueva relación junto con una copia de los
determinantes.
Quinta forma normal (5FN)
La quinta forma normal (5FN) se basa en el concepto de dependencia de reunión. Cuando al descomponer una
entidad en dos entidades no se preservan los datos de la relación original y, al querer volver a combinarlas, se
generan tuplas espurias adicionales se dice que hay descomposición con pérdida. En el caso contrario, la
descomposición es sin pérdida.
Si hay descomposición sin pérdida se dice que hay dependencia de reunión o de combinación. Esta es trivial
cuando, para que no haya pérdida, siempre tiene que haber una tabla con todos los atributos de la PK de la entidad
original.
En función de esto, una entidad está en 5FN cuando no contiene dependencias de reunión no triviales.
Forma
Norma
l
Características que debe cumplir
Acciones a tomar cuando la entidad no cumple
estas características
1FN
●Tener definida PK.
●No contener grupos repetitivos.
1. Eliminar en dicha entidad el o los atributos que sean
grupos repetitivos.
2. Seleccionar la PK.
3. Crear una nueva entidad que tenga como atributos:
a. El o los atributos eliminados en la otra entidad.
b. El o los atributos que es PK en la otra entidad. En
esta entidad, dicho atributo puede formar parte
de una PK compuesta, o de lo contrario no será
PK.
4. Poner nombre a la nueva entidad y seleccionar su
PK.
2FN
●Encontrarse en 1FN.
●No existir dependencias funcionales parciales
respecto de la PK.
1. Eliminar el o los atributos que dependan
funcionalmente en forma parcial de la PK.
2. Crear una nueva entidad que tenga como atributos:
a. El o los atributos eliminados en la otra entidad.
b. El atributo del cual dependían funcionalmente.
Este atributo deberá ser seleccionado como la
PK de esta nueva entidad.
3. Debe dársele nombre a la nueva entidad.
3FN
●Encontrarse en 2FN.
●No existir dependencias funcionales entre atributos
que no formen parte de la PK.
1. Eliminar el o los atributos que tengan dependencias
funcionales entre sí y no sean parte de la PK.
2. Crear otra entidad que tenga como atributos:
a. El o los atributos eliminados en la otra entidad.
b. El atributo del cual dependían funcionalmente.
Este atributo deberá ser seleccionado como la
PK de esta nueva entidad.
3. Debe dársele nombre a la nueva entidad.
FNBC
Dada una dependencia funcional , ocurre una de𝐴→𝐵
las siguientes posibilidades:
● A es superclave.
● es trivial, estando previamente en 3FN.𝐴→𝐵
Se crea una nueva entidad con los atributos que forman
parte de la dependencia funcional, eliminando de la
entidad original sólo el atributo dependiente
funcionalmente (subconjunto B).
4FN
Dada una dependencia multivalorada , ocurre una𝐴↠𝐵
de las siguientes posibilidades:
● es trivial, es decir B está incluido en A (𝐴↠𝐵
).𝐵∪𝐴
● A es superclave de (siendo en este caso𝐴↠𝐵
la dependencia no trivial).
La entidad se separa en dos entidades que tienen en
común el atributo A, repartiendo los atributos del
subconjunto B entre ambas entidades creadas.
5FN
No poseer dependencias de reunión no triviales. Se descompone la relación en n relaciones, según la
cantidad de atributos, representando en cada entidad
creada las distintas combinaciones posibles entre ellos
(revisando siempre que su existencia tenga sentido).
Dilema de la restricción
Puede ocurrir que, por aplicación de las reglas de normalización, no se pueda incluir dentro de una tabla un
atributo que permitiría establecer una FK necesaria para validar dicho atributo contra otra tabla. Esto se denomina
dilema de la restricción. Para resolverlo, se debe elegir entre agregar el atributo y establecerlo como FK
(desnormalizandola entidad) o dejarlo así y establecer la restricción de otra manera.
Criterios de buen diseño
Representar información
El objetivo de todo modelo es representar un sistema objeto. Siempre que surjan dudas de cómo representar la
información del mismo, se debe buscar aquella manera que mejor lo describa. Para ello, se debe tener en cuenta:
● Evitar valores indefinidos: son aquellos atributos donde no corresponde valor, corresponde pero falta o no
se sabe si corresponde.
● Definir nivel de desagregación: se trata de tener el mayor nivel de desagregación de los datos, dentro de lo
razonable. El nivel se decide según las necesidades del modelo.
● Capacidad de generar información: el modelo debe poder responder las consultas que se le realicen para
que el usuario obtenga la información que requiere.
Evitar redundancia
Es un buen criterio evitar atributos derivados almacenados y la repetición en los valores. El objetivo de esto es:
Reducir espacio de almacenamiento.
Menor costo de actualización.
Menor probabilidad de generar inconsistencias.
En el costo de consultas el impacto puede ser positivo o negativo:
✔ La redundancia puede servir para encontrar más fácilmente un dato y hacer más sencilla la consulta.
Tener datos redundantes, en el caso de atributos derivados, hace que en una consulta la información
tarde más tiempo en obtenerse porque los registros que la base debe leer son más largos.
Asegurar consistencia
Añadir restricciones al modelo tiene un costo, el cual tiene que ver con la validación de los datos que se ingresan.
Si los costos de asegurar la consistencia son mayores que los beneficios, se debe tomar la decisión profesional de no
validar esa restricción y compensar esa falta de alguna otra manera.
Claridad conceptual
Tiene que ver con la semántica del modelo: debe ser comprensible y fácil de entender. Se debe establecer un
criterio para nombrar los atributos y seguirlos durante todo el desarrollo del mismo. Esto ayuda a que el usuario sepa
que existen ciertos atributos sin necesidad de ir a buscarlos.
(UT 3) Esquema de las bases de datos
Antes de la creación de los SGBD, los datos se guardaban en archivos almacenados en el sistema operativo. Los
mismos eran leídos por diferentes programas, lo cual traía una serie de problemas:
● Datos dependientes del programa (y del programador).
● Menor productividad.
● Redundancia (duplicación de datos) que daba lugar a problemas de inconsistencia.
● Dificultad de acceso.
● Datos aislados (no integrados).
● Era responsabilidad exclusiva de cada programador asuntos tales como:
o Restricciones de datos.
o Atomicidad.
o Anomalías de acceso concurrente.
o Seguridad.
o Performance.
El esquema de la base de datos es el modelo de datos lógico, es el diseño general de la estructura de la base de
datos. Un esquema se especifica con un conjunto de definiciones que se expresan usando un lenguaje de definición
de datos (DDL). Éste incluye órdenes para definir, modificar o borrar las tablas en las que se almacenan los datos, las
relaciones entre éstos, definir restricciones de integridad, de acceso, de índices, etc.; es decir, todo lo que se refiera a
la definición de la base de datos. El diseño del esquema de la base de datos depende del software SGBD que se va a
usar.
Un esquema posee los siguientes elementos:
Tablas.
Tipos de datos.
Integridad.
Índices.
Vistas.
Stored procedures.
Triggers.
Seguridad (usuarios, permisos).
El diseño general de la estructura base de datos se denomina el esquema de la base de datos. Un esquema de base
de datos se especifica con un conjunto de definiciones que se expresan usando un lenguaje de definición de
datos (DDL).
Tablas
Al crear una tabla se deben añadir sus atributos, representados en columnas. Para cada atributo se debe
especificar:
✔ Nombre.
✔ Tipo de dato, lo que define el dominio de los valores que puede asumir el atributo.
✔ Longitud.
✔ Si se permite valor null, es decir un valor vacío. De permitirse, el dato será no obligatorio.
✔ Si toman valor predeterminado.
Tipos de dato
Numéricos
Exactos
● Entero pequeño (smallint): entero de dos bytes con una precisión de 5 dígitos. El rango de
pequeños enteros va de -32.768 a 32.767.
● Entero grande (integer): entero de cuatro bytes con una precisión de 10 dígitos. El rango
de enteros grandes va de -2.147.483.648 a +2.147.483.647.
● Entero superior (bigint): entero de ocho bytes con una precisión de 19 dígitos. El rango de
enteros grandes va de -9 223 372 036 854 775 808 a +9 223 372 036 854 775 807.
● Decimal (decimal o numeric): número decimal empaquetado con una coma decimal
implícita. La posición de la coma decimal la determinan la precisión y la escala del número.
La escala, que es el número de dígitos en la parte de la fracción del número, no puede ser
negativa ni mayor que la precisión. La precisión máxima es de 31 dígitos. Todos los valores
de una columna decimal tienen la misma precisión y escala. El rango de una variable
decimal o de los números de una columna decimal es de -n a +n, donde el valor absoluto
de n es el número mayor que puede representarse con la precisión y escalas aplicables. El
rango máximo va de -1031+1 a 1031-1.
Aproximado
s
●Coma flotante de precisión simple (real): aproximación de 32 bits de un número real. El
número puede ser cero o puede estar en el rango de -3,4028234663852886e+38 a
-1.1754943508222875e-38, o de 1,1754943508222875e-38 a 3,4028234663852886e+38.
●Coma flotante de doble precisión (double o float): aproximación de 64 bits de un número
real. El número puede ser cero o puede estar en el rango de -1,7976931348623158e+308
a -2,2250738585072014e-308, o de 2,2250738585072014e-308 a
1,7976931348623158e+308.
Carácter
● Char: permite almacenar cadenas de texto de longitud fija.
● Varchar: permite almacenar cadenas de texto de longitud variable.
Booleanos Permite almacenar valores lógicos (verdadero o falso).
Fecha/hora ● Date: permite almacenar valores de fecha.
● Time: permite almacenar valores de hora.
● Timestamp: permite almacenar valores de fecha y hora.
Objetos de
gran
tamaño
● BLOB (binary large object): almacena basado en binario, donde los bytes no representan caracteres
(sirve para, por ej.: video, audio, etc.).
● CLOB (character large object): almacena basado en caracteres, donde los bytes tienen sentido
representándose como tales (sirve para, por ej.: documentos de texto).
Datos requeridos (not null)
Al crear el esquema de la base de datos se deben indicar aquellos atributos que serán optativos de completar (es
decir, que permiten valor null) y los que serán obligatorios (not null). Null representa la ausencia de valor (valor
desconocido o no aplicable). Aparece en aquellos campos de un registro de la base de datos donde no haya un valor
asignado. La forma especial de tratarlos puede generar problemas. En las consultas a la base de datos, por ejemplo, si
no se especifica en la misma que traiga datos null, la consulta no los va a considerar.
Las PK, por definición, no admiten null ya que, al permitir identificar unívocamente a un registro, son datos
obligatorios. Además, la PK valida que no exista otro registro con el mismo valor.
Las claves alternativas son tratadas en el esquema como UNIQUE: pese a no ser PK, esta característica obliga a
esos atributos a cumplir con el criterio de unicidad y, así, no permitir que los mismos posean valores duplicados en
diferentes registros de una misma entidad.
Integridad referencial
Cuando se define una FK, se indica qué se debe hacer cuando se realiza alguna de las siguientes operaciones:
● Inserción (INSERT): para insertar un registro en una tabla con FK, la base de datos validará que el valor
insertado en el atributo que es FK exista en la tabla a la que hace referencia.
● Actualización (UPDATE) y borrado (DELETE): para la actualización y borrado de registros con atributos que
son FK se debe decidir qué acción tomar:
o Restringir (RESTRICT): restringe la modificación o borrado de los datos en la tabla a la que referenciael atributo que es FK.
o Cascada (CASCADE): la actualización de los datos en la tabla a la que hace referencia el atributo que
es FK actualiza los registros en la tabla con el nuevo valor de dicho atributo. En el caso del borrado,
se borran los registros que tenían ese valor.
o Fijarlos como nulos (SET NULL): igual que en el caso anterior, sólo que los atributos referenciados
por la FK son seteados como null cuando se actualizan o borran los registros de la tabla a la que
referencian.
Vistas
No resulta deseable que todos los usuarios vean el modelo lógico completo. Las consideraciones de seguridad
pueden exigir que se oculten ciertos datos a los usuarios. Por otro lado, puede que se desee crear un conjunto
personalizado de relaciones que se adapte mejor a la intuición de un usuario determinado que el modelo lógico.
Las relaciones que no forman parte del modelo lógico, pero se hacen visibles a los usuarios como relaciones
virtuales se denominan vistas. Las vistas son consultas a la base de datos cuya estructura (es decir, la consulta) se
guarda en el diccionario de datos. Es un medio para ofrecer al usuario un modelo personalizado de la base de datos.
Las vistas pueden ocultar datos que éste no necesite ver. La capacidad de las vistas de ocultar datos sirve tanto para
simplificar el uso del sistema como para mejorar la seguridad. Las vistas simplifican el uso del sistema porque
restringen la atención de los usuarios a los datos de interés. Aunque se puede negar a un usuario el acceso directo a
una relación, se le puede permitir a ese usuario el acceso a parte de esa relación mediante una vista. Por tanto, una
combinación de seguridad en el nivel relacional y de seguridad en el nivel de las vistas limita el acceso de los usuarios
precisamente a los datos que necesitan.
Una vez creada una vista, la misma puede reutilizarse para no repetir nuevamente la consulta que le dio origen.
Incluso se puede recuperar una vista en otra consulta añadiendo otras sentencias.
Cuando se define una vista, el sistema de la base de datos guarda la definición de la vista, en vez del resultado de
la evaluación de la expresión del álgebra relacional que la define, es decir que los datos (obtenidos de la consulta) no
se almacenan. Siempre que aparece una relación de vistas en una consulta, se sustituye por la expresión de consulta
almacenada. Por tanto, la relación de vistas se vuelve a calcular siempre que se evalúa la consulta (no se actualizan
automáticamente).
Las relaciones de vistas pueden aparecer en cualquier lugar en que puedan hacerlo los nombres de las relaciones,
salvo las restricciones al uso de las vistas en expresiones de actualización. Por tanto, se pueden utilizar vistas en las
expresiones que definen otras vistas.
Esquemas semiestructurados (bases de datos no relacionales)
Varias áreas de aplicaciones de los sistemas de bases de datos están limitadas por las restricciones del modelo de
datos relacional. En consecuencia, los investigadores han desarrollado varios modelos de datos para tratar con estos
dominios de aplicación. Por ejemplo, existen algunas razones por las cuales un esquema podría no tener un
diccionario de datos:
● Aplicaciones que recolectan datos ad-hoc, sin conocer previamente cómo se almacenarán o se utilizarán los
mismos.
● Es posible que se conozca parte de la estructura, pero no su totalidad.
● Hay atributos que son exclusivos para ciertas ocurrencias de una entidad.
● Pueden existir ocurrencias de una entidad nuevas que posean nuevos atributos.
Los SGBD relacionales, sus modelos y protocolos, tienen la fuerte premisa de cuidar al máximo la consistencia de
las bases de datos, lo que implica límites en el desempeño de estas soluciones. Es por esto que surgen nuevas
arquitecturas y modelos de gestión de datos bajo la denominación de no relacionales.
Los esquemas semiestructurados permiten la especificación de los datos en los que cada elemento de datos del
mismo tipo puede tener conjuntos de atributos diferentes. No utilizan un diccionario de datos; no obstante, manejan
el concepto de tipo de dato. Estos esquemas son autodefinidos, es decir, se van construyendo a medida que se
insertan los datos. No se utilizan PK, FK, claves UNIQUE ni claves de cualquier otro tipo.
Por defecto, no hay un esquema predefinido para las entidades. Se pueden configurar restricciones de manera
adicional, pero cuantas más se agreguen, peor va a funcionar el esquema y menos eficiente va a hacer. Cualquier
restricción o validación que sea necesario hacer debe ser implementada en la aplicación por el programador.
Los elementos de un esquema relacional funcionan de manera diferente en los semiestructurados:
Tablas Colecciones
Filas Documentos
Columnas Campos
Al crear la base de datos, se define el nombre de la colección y, a partir de ahí, ya se pueden guardar datos. Al
agregar un documento (registro) se le añade automáticamente un atributo definido como objeto, que es un
documento embebido. Dos campos de dos documentos distintos pueden ser completados con tipos de datos
distintos. Sin embargo, existen atributos exclusivos a los distintos documentos.
La herramienta visual permite ver el contenido de una colección como lista o como tabla.
Las referencias guardan las relaciones entre los datos a través de links o punteros de un documento a otro. Se
trata de modelos de datos normalizados: las aplicaciones requieren acceder a más de un documento para recuperar
datos relacionados.
Los documentos embebidos establecen las relaciones entre los datos, almacenando datos relacionados dentro de
su estructura como subdocumentos, dentro de un campo o array. Estos modelos desnormalizados permiten a las
aplicaciones recuperar y manipular datos relacionados en una sola operación de base de datos.
Comparativo Mongo DB con BDs Relacionales
Mongo DB
El documento tiene un atributo que define como “Objeto”, que es un documento embebido.
La herramienta visual, me permite ver el contenido de una colección como lista o como tabla.
Me permite insertar un documento con el valor “No” en FinalizoCBC y otro con el valor Verdadero en un atributo
con el mismo nombre. Ambos en la misma colección.
Por otro lado, hay atributos exclusivos a los distintos documentos.
Creo una validación, asociada a la colección “Alumno”, que indique que el campo “NroRegistro” es un entero y es
obligatorio.
Intento insertar un documento que no tiene el campo NroRegistro. El sistema no permite la operación
Esquemas no estructurados
En los esquemas no estructurados hay muy poca información respecto a los datos embebidos en ellos, como es el
caso de bases de datos que guardan archivos HTML, de audio o de video.
■ Hay muy poca información respecto a los datos embebidos en estos esquemas.
■ Ejemplo: HTML, audios o videos.
■ Caso HTML:
■ Está pensado para su proceso y posterior visualización por seres humanos.
■ Está centrado en el diseño en pantalla.
■ Es muy difícil de interpretar automáticamente.
■ Todos los tags están predefinidos. No se puede “extender”.
■ Alternativa para intercambiar datos en la web: XML
■ ¿Por qué trabajar sin un diccionario de datos?
■ Aplicaciones que recolectan datos “ad-hoc” sin conocer previamente como se almacenará o cómo se
utilizará.
■ Es posible que se conozca parte de la estructura pero no su totalidad.
■ Hay atributos que son exclusivos a muy pocas ocurrencias.
■ Ocurrencias “nuevas” pueden incluir nuevos atributos.
■ Diferencias con esquemas estructurados
■ ¿Cómo se construye el esquema?
■ Mezclado con los datos. Esquemas autodefinidos.
■ Nombre: Juana
■ Apellido: Perez
■ Restricciones
■ Por defecto, no hay un esquema predefinido para las entidades.
■ Se pueden configurar restricciones, de manera adicional.
Lenguaje de etiquetado extensible (XML)
El Extensible Markup Languaje (XML, lenguaje de etiquetado extensible) es un estándar no licenciado,
independiente de plataformas, y soportado por toda la industria de software. Permite representar los datos de bases
de datos, así como muchas clasesde datos estructurados. Es útil como formato de datos cuando las aplicaciones
deben comunicarse con otras, o cuando hay que integrar información de varias aplicaciones.
A diferencia de HTML, XML no impone las etiquetas permitidas, y se pueden elegir como sea necesario para cada
aplicación. Esta característica es la clave de la función principal de XML en la representación e intercambio de datos,
mientras que HTML se usa principalmente para el formato de documentos.
El constructor fundamental en un documento XML es el elemento. Un elemento es sencillamente un par de
etiquetas de inicio y finalización coincidentes y todo el texto que aparece entre ellas. XML permite estructuras
anidadas: los elementos complejos se componen de otros elementos de manera jerárquica. En cambio, los
elementos simples se componen de un solo valor. Esta estructura posibilita guardar elementos simples diferentes que
formen parte del mismo elemento complejo. Posee dos grandes usos:
Transmisión
de datos
XML permite el intercambio de datos con ampliaciones de actores externos o internos a la organización. Sus
características son:
● Estructura regular, conjuntos de atributos-valor, poco o ningún contenido adicional.
● El orden en el que se presenta el contenido no es relevante.
● Resultados de las consultas no ranqueados; sólo importa que éstos cumplan con las condiciones de la
consulta.
● Se puede categorizar como esquema semiestructurado o estructurado.
Basado en
información-
documentos
Otro de los usos del XML es para presentar información. En estos casos se lo usa como medio de estructurar,
almacenar y recuperar documentos y/o información. Es el estándar de facto para almacenar documentos
por su capacidad de almacenar y utilizar su estructura (párrafos, secciones, notas al pie, etc.) y metadatos
(autor, año de publicación, etc.). En estos casos, XML se caracteriza por:
● Estructura no regular, baja granularidad en la información (la más pequeña unidad de información tiene
contenido mixto o es el documento entero). Hay mucho contenido mixto.
● Puede ser un esquema no estructurado o mixto (parte semiestructurada, parte no estructurada).
● El orden en el que se presenta el contenido es relevante.
❑ XML como medio de estructurar, almacenar y recuperar documentos/información.
❑ Estándar de facto para almacenar documentos por su capacidad de almacenar y utilizar su estructura
(párrafos, secciones, notas de pie, etc.) y metadatos (autor, año de publicación, etc.)
❑ Puede ser un esquema no estructurado o mixto (parte semi-estructurada, parte no estructurada)
❑ El orden en el que se presenta el contenido es relevante.
❑ Ejemplos: libros, leyes, email, etc.
❑ Estructura no regular, baja granularidad en la información (la más pequeña unidad de información tiene
contenido mixto o es el documento entero), mucho contenido mixto.
La validación de un documento en como un contrato:
● El creador verifica que el documento ha sido creado apropiadamente,
● El consumidor verifica que posee el formato esperado.
La validación de un esquema en XML se hace con un archivo adicional que define la estructura. Así, se tiene un
archivo XML con los datos (que sería el diccionario) y otro que, con una herramienta, valida la estructura. La
aplicación creadora verifica que el documento ha sido creado apropiadamente y la aplicación receptora verifica que
posee el formato esperado.
Existen dos posibilidades para validar un documento:
Document Type Definition (DTD): define la estructura de los datos de un XML. Restringe el tipo de
información presente en el documento, estableciendo:
o Qué elementos pueden existir.
o Qué atributos puede/debe tener.
o Qué subelementos pueden/deben existir dentro de cada elemento y cuántas veces.
Sin embargo, no define los tipos de datos: todos los valores son representados como cadenas de texto:
o Los subelementos pueden ser definidos como:
▪ Elementos.
▪ Datos (#PCDATA)
▪ Sin subelementos (EMPTY) o pueden existir subelementos (ANY).
o La especificación de subelementos puede tener expresiones regulares. La notación es |
(alternativas), + (1 o más ocurrencias), * (0 o más ocurrencias).
XML Schema Definition (XSD): es definido utilizando sintaxis de XML. Se trata de una representación más
estándar, pero más compleja. Es más sofisticado que DTD. Soporta:
o Tipos de datos:
▪ Enteros, cadenas de texto, etc.
▪ CONSTRAINTS sobre valores mínimos y máximos.
o Tipos de datos definidos por el usuario y complejos.
o Más funciones, incluyendo restricciones de unicidad, herencia y claves foráneas.
(UT 4) Diseño físico y organizaciones de archivo
Las decisiones que se toman en el diseño físico de la base de datos impactan en el almacenamiento en disco y en
el sistema operativo. Tienen que ver con el almacenamiento y configuración de los parámetros del SGBD:
● Arquitectura de hardware para la base de datos: procesadores, discos RAID, etc.
● Estructuras de almacenamiento y acceso que permite el SGBD: tipos de indexación, agrupamiento, tamaños
de bloques, buffers, etc.
● Parámetros de configuración del SGBD: tamaño de memoria intermedia, intervalos de tiempo en proceso,
uso de multiprocesadores, etc.
Hardware y jerarquía de almacenamiento
El medio de almacenamiento utilizado para los datos con
los que se opera es la memoria principal. Se define por su
uso: es la memoria con la que trabaja casi directamente el
procesador. Es volátil: su contenido suele perderse en caso
de fallo del suministro eléctrico o de caída del sistema. La
más común es la RAM (memoria de acceso aleatorio), la
cual se caracteriza por poder acceder a cualquier posición
de memoria a la misma velocidad sin tener que recorrer
dichas posiciones secuencialmente. Como el procesador es
muy rápido, la memoria con la que debe trabajar tiene que
ser lo más rápida posible para no generar cuellos de
botella. El procesador pide datos, lee y escribe todo el tiempo, necesita estar el menor tiempo posible esperando a
que ese dato llegue. Por eso es más importante la velocidad que la capacidad de la memoria principal. La RAM le
permite al procesador tener acceso más rápido a una mayor cantidad de datos. Si se llena, el procesador envía los
datos que no usa al almacenamiento auxiliar y deja en la RAM aquellos que va a utilizar en ese momento.
La caché es una pequeña memoria ubicada entre la RAM y el procesador con la que éste trabaja directamente. Le
indica qué archivos deben ser traídos desde el almacenamiento auxiliar hacia la memoria principal para trabajar con
ellos.
Como el procesador es volátil y trabaja con las memorias RAM y caché, no es un costo que ambas memorias sean
volátiles también y que sus datos se pierdan cuando no reciban corriente eléctrica (después de todo, el procesador
no podrá usarlos. El problema entonces pasa por definir dónde almacenar los datos para que no se borren
permanentemente. El almacenamiento secundario cumple esa función: almacena los archivos hasta que sean
requeridos por el procesador y sean enviados a la memoria principal. Es un almacenamiento no volátil: para
mantener los datos guardados no depende de estar conectado a una fuente de alimentación.
El disco rígido es esencial para los sistemas de datos, ya que es allí donde se almacenarán los datos ingresados a
la base. De hecho, generalmente se guarda en ellos toda la base de datos. Para acceder a ellos es necesario
trasladarlos desde el disco hacia la memoria principal. Se compone de una serie de discos, con sus cabezales, uno
arriba del otro, que giran sobre un eje. El cabezal se mueve hacia delante y hacia atrás (más lejos y más cerca del
centro) para recorrer el disco y de leer la información en ambas caras del mismo. Se ubica en la pista correcta y
espera a que la rotación del disco lo lleve a la posición de memoria que necesita. Cuanto más rápido giren los discos,
más velozmente se accede a esa posición. Una vez ubicado allí puede leer o escribir la información de esa ubicación.
Los tiempos de acceso dependen de la localización de
los datos y la latencia,es decir, qué tan distanciado esté
el dato del eje rotacional del disco y de la posición del
cabezal.
Acceso físico al dispositivo
Una página o bloque de memoria es la unidad de
lectura y escritura. Es el conjunto de bytes transferidos
del disco a la RAM en un solo acceso (generalmente 4
kB). Como los archivos suelen ser mayores a esta unidad,
se dividen en varios bloques. Es más fácil de leerlos si se
guardan en forma secuencial ya que serán leídos también de forma secuencial, dando lugar a las extensiones.
Una extensión es un conjunto de páginas contiguas físicamente que el Adm. de disco asigna y libera. Se persigue
que páginas contiguas lógicamente lo estén también físicamente, reduciendo al mínimo el acceso.
Acceso a los datos
El SGBD posee una memoria intermedia
(buffer de la BD:RAM almacenamiento
primario del server) entre éste y el
almacenamiento secundario. Es un espacio
reservado en la memoria principal para el
sistema de gestión de bases de datos. Éste
recibe peticiones de escritura, lectura,
actualización y borrado de registros. Cada
uno de ellos se van a convertir en archivos y,
por ende, en bloques que estarán en esa memoria intermedia (sean actuales o bloques ya trabajados).
Cuando se llena el buffer se deben borrar del mismo algunos bloques para que su lugar sea ocupado por otro que
se esté requiriendo para una determinada operación en ese momento. En función de la prioridad que se haya
establecido para determinar cuáles bloques borrar, si éstos no fueron modificados, pueden eliminarse de la memoria
intermedia sin problemas porque, en caso de necesitarlo, se lo puede traer otra vez desde el almacenamiento
secundario.
En cambio, si los bloques a eliminar de memoria principal sufrieron modificaciones, primero se escriben las
mismas en el almacenamiento secundario para poder recuperar el valor actualizado, de ser necesario. Una vez hecho
eso, se trae a memoria intermedia el bloque que estaba esperando. Esto también ocurre cuando el bloque a eliminar
no existe en memoria secundaria.
Considerando que el SGBD hace uso de la memoria intermedia para mejorar su desempeño de acceso a memoria
secundaria, es factible que, al actualizar el valor de un atributo de un registro de una tabla de una base de datos, esa
modificación esté en memoria principal y no en memoria secundaria (aunque sea temporalmente).
Arreglo redundante de discos independientes (RAID)
Un arreglo redundante de discos independientes (RAID) es un arreglo de dos o más discos rígidos que se
presentan ante el sistema operativo como uno solo. Cada disco trabaja de manera independiente y es el controlador
de RAID el que administra su funcionamiento.
Un RAID persigue dos objetivos muy distintos, que a veces se logran complementar según el tipo de RAID:
● Performance: obtener mayor velocidad en las operaciones de lectura/escritura y mejor rendimiento.
● Tolerancia a fallos: si se rompe un disco no se pierden los datos.
Al tratarse de discos que trabajan en paralelo, es recomendable que todos posean la misma velocidad de lectura y
escritura e igual capacidad de almacenamiento. En caso de que sean diferentes, todo el arreglo funcionará a la
velocidad del disco más lento y reflejara la capacidad de aquel disco que posea menor cantidad de almacenamiento.
Niveles de RAID
● RAID 0: Divide cada bloque en n partes (según
la cantidad de discos), distribuyendo cada una de ellas
en un disco. Cuando se necesite leerlos, se recupera
cada parte guardada en los n discos. Si se rompe un
disco, se pierden todos los datos que estaban
almacenados en el arreglo, ya que los bloques no
pueden ser reconstruidos (cada parte es incompleta).
● RAID 1: Cada bloque se escribe en los n discos
de forma paralela. Al estar multiplicados los bloques,
si se rompe un disco no se pierde la información
almacenada en el arreglo y el sistema sigue
funcionando.
● RAID 10 (o RAID 0+1): se trata de 2 o más arreglos RAID 1 en donde cada bloque se divide en partes y
𝑛
2
cada una de ellas se escribe en 2 discos, como en el RAID 0. La situación si se rompe un disco dependerá de
cuál disco se rompa. Se pierden todos los datos si se rompe una cantidad de discos tal que resulte imposible
reconstruir los bloques.
● RAID 5: divide el bloque de datos en p partes, distribuyendo cada una en discos, almacenando en el𝑛 − 1
disco información de paridad. La misma consiste en una función que, aplicada sobre una de las p partes del
bloque, permite reconstruir la parte que falta. Este tipo de paridad se denomina paridad por bloque
distribuida ya que puede guardar la paridad en diferentes discos del arreglo, a veces en uno y otras veces en
otro distinto, en bloques reservados (y no en un disco reservado). Un bloque de paridad no puede guardar la
paridad de los bloques del mismo disco, ya que un fallo del disco supondría la pérdida de los datos y de la
paridad y, por tanto, no sería recuperable. Existen niveles inferiores de RAID que dividen por bit (paridad por
bit en RAID 3) o por bloque (paridad por bloque en RAID 4).
Nivel
de
RAID
Cantidad
de discos
Velocidad de E/S Objetivo
Cantidad
mínima
de discos
Tolerancia de
ruptura
Capacidad de
almacenamiento
Sin
RAID
1 m segundos Sólo guardar datos 1 0 discos x GB
RAID
0
n segundos
𝑚
𝑛 Performance 2 0 discos GB𝑛 * 𝑥
RAID
1
n
m segundos para
escritura; sin
embargo, se puede
leer la mitad de un
bloque de cada disco,
tardando
𝑚
𝑛
segundos en lectura
Tolerancia a fallos y
mayor performance
en lectura.
2 discos𝑛 − 1 x GB
RAID
10
n segundos
𝑚
𝑛
Tolerancia a fallos y
performance de
lectura y escritura
4 Variable GB
𝑛
2 * 𝑥
RAID
5
n
segundos + cálculo
𝑚
𝑛
de paridad y
distribución
Tolerancia a fallos;
mínima mejora de
performance
3 1 disco GB(𝑛 − 1) * 𝑥
● El nivel 2 de RAID, también conocido como organización de códigos de corrección de errores tipo memoria
(memory-style-error-correcting-code organization, ECC), emplea bits de paridad. Hace tiempo que los
sistemas de memoria utilizan los bits de paridad para la detección y corrección de errores. Cada byte del
sistema de memoria puede tener asociado un bit de paridad que registra si el número de bits del byte que
valen uno es par (paridad = 0) o impar (paridad = 1).
● El nivel 3 de RAID, organización de paridad con bits entrelazados, mejora respecto al nivel 2 al aprovechar
que los controladores de disco, a diferencia de los sistemas de memoria, pueden detectar si los sectores se
han leído correctamente, por lo que se puede utilizar un solo bit de paridad para la corrección y para la
detección de los errores. La idea es la siguiente: si uno de los sectores se deteriora, se sabe exactamente el
sector que es y, para cada uno de sus bits, se puede determinar si es un uno o un cero calculando la paridad
de los bits correspondientes de los sectores de los demás discos. Si la paridad de los bits restantes es igual
que la paridad guardada, el bit perdido es un cero; en caso contrario, es un uno.
● El nivel 4 de RAID, organización de paridad con bloques entrelazados, emplea la distribución del nivel de
bloques, como RAID 0, y, además, guarda un bloque de paridad en un disco independiente para los bloques
correspondientes de los otros N discos. Este esquema se muestra gráficamente en la Figura 11.3e. Si falla
uno de los discos, se puede utilizar el bloque de paridad con los bloques correspondientes de los demás
discos para restaurar los bloques del disco averiado.
Almacenamiento de registros
En un bloque puede almacenarse filas o columnas de una tabla de la base de datos. Esto permite distinguir:
● Bases de datos orientadas a filas: Los valores de las filas se almacenan físicamente en forma contigua dentro
del archivo. Este tipo es más eficiente para, por ej., leer todos los datos de un registro ya que para ello sólo
debería leer 1 bloque.
● Bases de datos orientadas a columnas: Los valores de las columnas se almacenan físicamente en forma
contigua dentro del archivo, en donde uno de los bloques contendrá los atributos de la tabla. Estetipo es
más eficiente para, por ej., obtener promedios o cantidades de un atributo de varios registros, ya que para
eso también debería leer 1 bloque. Por este motivo son más analíticas. Permite comprimir los datos que se
almacenan porque no se guardan valores repetidos: dos registros para el mismo valor del mismo atributo
apuntan a la misma PK. Además, no guarda los valores vacíos o nulos. Cuanto más repetidos estén los datos,
mayor será la posibilidad de compresión.
● Los valores de las columnas se almacenan físicamente en forma contigua dentro del archivo.
● Los datos se guardan comprimidos, almacenándose valores únicos (no se repiten valores).
● El concepto de “Familia de columnas” o grupos de columnas.
● Son eficientes para consultas en entornos OLAP.
Las bases de datos relacionales poseen mayoritariamente almacenamiento orientado a filas. Para separar los
datos, se utilizan caracteres separadores que:
Separan el nombre del campo del valor del campo.
Separan los campos.
Indican el fin del registro.
Cada bloque posee un factor de bloqueo, que es la cantidad de registros que entran en un bloque para una tabla
determinada. Los espacios de longitud fija no utilizados se almacenan en blanco.
Almacenamiento orientado a columnas – Bases de datos columnares
Beneficios:
● Mayor rapidez en lecturas. Se leen solamente las columnas necesarias para el procesamiento de una
consulta determinada.
● Optimización de los accesos al disco.
● Ocupan menos espacio, dado que los datos se guardan comprimidos.
● Ideales para calcular datos agregados.
● Recomendada para entornos OLAP, donde existen altos índices de lectura pero poca escritura
Almacenamiento orientado a filas: Registros y Archivos
(a) registro de longitud fija con 6 campos y 71 bytes.
(b) un registro con dos campos de logitud variable y tres de longitud fija.
(c) un registro de longitud variable con tres campos variables.
Asignación de archivos a bloques
Existen diversas maneras de ordenar en el disco los distintos bloques que componen un archivo:
● Asignación contigua: los bloques se almacenan en extensiones, uno al lado del otro. Esto acelera la lectura
del archivo. Tiene el problema de que, si el bloque consecutivo está ocupado por otro archivo, el sistema se
ve obligado a usar un bloque de desbordamiento no consecutivo para almacenar la parte que falta
(enlazándolas a través de un puntero) y esperar a poder hacer una reorganización que permita ponerlos en
orden otra vez.
● Asignación enlazada: se indica cuál es el primer bloque donde está almacenado el archivo y cada bloque
tiene un puntero al siguiente. El problema que presenta es que, si sólo se debe leer un bloque que no es el
primero, para llegar al deseado deben leerse primero los anteriores.
● Asignación con índice: utiliza un bloque que indica dónde están el resto de los bloques en donde se
almacena el archivo. Así, para leer un bloque que no es el primero, sólo debe leerse éste para llegar
inmediatamente al buscado.
Operaciones con archivos
Es importante saber cuál es la operación que más se va a hacer con los archivos. En función del método de acceso
es que se puede determinar cuál es la mejor manera de asignación:
Métodos de acceso
Recuperación
● Lectura de primer registro.
● Lectura del siguiente.
● Lectura de todos los registros en un
orden.
Actualización
● Inserción.
● Borrado.
● Modificación.
Reorganización
• Recuperación
• Lectura primer registro,
• lectura del siguiente,
• lectura de todos en un orden.
• Actualización
• Inserción,
• borrado,
• Modificación
• Reorganización.
Organización de registros ordenados
Guardar los registros ordenados utilizando como criterio alguno de los atributos permite reducir la cantidad de
bloques que se leen para acceder a los datos que se están buscando. Existen distintas alternativas de guardar los
registros ordenados en un archivo para optimizar el funcionamiento:
● Dejar espacios en blanco por bloque: evita que la inserción de un registro implique traer a memoria
principal 2 bloques en vez de uno para reorganizarlos.
● Área de derrame con punteros: se asigna el registro a otro bloque añadiendo un puntero en el bloque en el
que debería estar almacenado. Esto permanecerá así hasta que se reorganicen los bloques.
● Bitácora de transacciones (offline): se guardan todos los registros sin orden para distribuirlos ordenados
cuando la base de datos tenga menos peticiones de acceso.
● Secuenciales indexados e índices agrupados: se puede utilizar un índice agrupado para recorrer, buscar y
ordenar los registros en el archivo.
Organización de registros desordenados
Existen dos formas de organizar registros desordenados:
● Organización de montón: almacena los datos sin orden, lo cual facilita la inserción de registros.
● Organización directa: se aplica una función sobre los valores de ciertos atributos que indica en qué bloque se
va a guardar ese registro. Es preciso elegir un atributo útil que permita tener una buena distribución de los
bloques.
Organización de archivos en montículo.
En esta organización se puede colocar cualquier registro en cualquier parte del archivo en que haya espacio
suficiente. No hay ninguna ordenación de los registros. Generalmente sólo hay un archivo por cada relación.
SE crea un índice con id=0, que esta desordenado. Tabla sin índice cluster (o agrupado)
Páginas IAM: Las páginas IAM son páginas que administran los extents que una tabla o indice utilizan.
Las páginas IAM contienen la localidad de las 8 páginas iniciales y un bitmap de extents indicando que extents
pertenecen al objeto. Una sola página IAM puede administrar hasta 512,000 páginas de datos.
Las páginas IAM siempre son alojadas en extents mixtos, y pueden estar en cualquier archivo o filegroup. SQL Server
trata de mantener a todas las páginas IAM agrupadas para mejorar el performance.
Organización directa
Índices
Un índice es un lugar donde se puede buscar por una clave de búsqueda, encontrar (si existe) lo buscado y tiene
un puntero que indica en dónde se encuentra el dato buscado. La clave de búsqueda consiste en uno o varios
atributos. Si los registros están ordenados, existe una clave de orden, que es el atributo según el cual se ordenan los
registros.
El índice se guarda en otro bloque de memoria. La idea de utilizarlo es, cuando se busca un dato, poder traerlo a
la memoria principal primero para recorrerlo y determinar en qué bloques buscar los datos que se necesiten, y
también determinar si éstos existen antes de leer los bloques de datos.
Clasificación de índices
● Índices ordenados: están basados en una disposición ordenada de los valores.
o Según la coincidencia entre la clave de búsqueda y la clave de orden:
▪ Primario: cuando la clave de búsqueda del índice coincide con la clave de orden. Pueden ser:
Disperso: cuando el índice no contiene un registro índice por cada valor de atributo
que es clave de búsqueda. Si el valor de atributo buscado no está en el índice, se
comienza a buscar a partir del valor anterior en el que debería estar aquél.
Denso: si el índice contiene un registro índice por cada valor de atributo que es clave
de búsqueda.
▪ Secundario: cuando la clave de búsqueda no coincide con la clave de orden. Si los registros
no están ordenados, no existe clave de orden, por lo que el índice sólo podrá ser de este
tipo. Los índices secundarios nunca pueden ser dispersos, siempre son densos.
o Según el nivel:
▪ Sin niveles.
▪ Multinivel: para encontrar un valor hace falta recorrer distintos niveles en los que esté
dividido el índice.
o Según su agrupación:
▪ Agrupado: cada registro del índice contiene el registro buscado.
▪ No agrupado: cada registro del índice contiene un puntero que indica en qué bloque de
memoria se encuentra el registro buscado.
● Índices asociativos: se aplica una función de asociación (hash) sobre la clave de búsqueda para identificar el
bloque donde se encuentra el registro buscado.
Índices ordenados
Cada estructura de índice está asociada con una clave debúsqueda concreta. Los registros en el archivo indexado
pueden estar a su vez almacenados siguiendo un orden,
semejante a como los libros están ordenados en una
biblioteca por algún atributo como el número decimal
Dewey. Un archivo puede tener varios índices según
diferentes claves de búsqueda. Si el archivo que
contiene los registros está ordenado secuencialmente, el índice cuya clave de búsqueda especifica el orden
secuencial del archivo es el índice con agrupación (clustering index).
En la figura se muestra un archivo secuencial de los registros cuenta tomados del ejemplo bancario. los registros
están almacenados según el orden de la clave de búsqueda: nombre_sucursal.
Estos archivos con índice primario según una clave de búsqueda se llaman archivos secuenciales indexados.
Representan uno de los esquemas de índices más antiguos usados por los sistemas de bases de datos. Se emplean en
aquellas aplicaciones que demandan un procesamiento secuencial del archivo completo así como un acceso directo a
sus registros.
Índices densos y dispersos
Un registro índice o entrada del índice consiste en un valor de la clave de búsqueda y punteros a uno o más registros
con ese valor de la clave de búsqueda. El puntero a un registro consiste en el identificador de un bloque de disco y un
desplazamiento en el bloque de disco para identificar el registro dentro del bloque. Hay dos clases de índices
ordenados que se pueden emplear:
• Índice denso. Aparece un registro índice por cada valor de la clave de búsqueda en el archivo. El registro índice
contiene el valor de la clave y un puntero al primer registro con ese valor de la clave de búsqueda. El resto de
registros con el mismo valor de la clave de búsqueda se almacenan consecutivamente después del primer registro,
dado que, ya que el índice es primario, los registros se ordenan sobre la misma clave de búsqueda. Las
implementaciones de índices densos pueden almacenar una lista de punteros a todos los registros con el mismo
valor de la clave de búsqueda; esto no es esencial para los índices primarios.
• Índice disperso. Sólo se crea un registro índice para algunos de los valores. Al igual que en los índices densos, cada
registro índice contiene un valor de la clave de búsqueda y un puntero al primer registro con ese valor de la clave.
Para localizar un registro se busca la entrada del índice con el valor más grande que sea menor o igual que el valor
que se está buscando. Se empieza por el registro apuntado por esa entrada del índice y se continúa con los punteros
del archivo hasta encontrar el registro deseado.
Índices secundarios
Los índices secundarios deben ser densos, con una entrada en el índice por cada valor de la clave de búsqueda, y
un puntero a cada registro del archivo. Un índice primario puede ser disperso, almacenando sólo algunos de los
valores de la clave de búsqueda, ya que siempre es posible encontrar registros con valores de la clave de búsqueda
intermedios mediante un acceso secuencial a parte del archivo. Si un índice secundario almacena sólo algunos de los
valores de la clave de búsqueda, los registros con los valores de la clave de búsqueda intermedios pueden estar en
cualquier lugar del archivo y, en general, no se pueden encontrar sin explorar el archivo completo. Un índice
secundario sobre una clave candidata es como un índice denso primario, excepto en que los registros apuntados por
los sucesivos valores del índice no están almacenados secuencialmente. Si la clave de búsqueda de un índice primario
no es una clave candidata, es suficiente si el valor de cada entrada en el índice apunta al primer registro con ese valor
en la clave de búsqueda, ya que los otros registros podrían ser alcanzados por una búsqueda secuencial del archivo.
Por tanto, un índice secundario debe contener punteros a todos los registros. Se puede usar un nivel adicional de
indirección para implementar los índices secundarios sobre claves de búsqueda que no sean claves candidatas. Los
punteros en estos índices secundarios no apuntan directamente al archivo. En vez de eso, cada puntero apunta a un
cajón que contiene punteros al archivo. Se muestra la estructura del archivo cuenta, con un índice secundario que
emplea un nivel de indirección adicional, y teniendo como clave de búsqueda el saldo
Índices multinivel
Incluso si se usan índices dispersos, el propio índice podría ser demasiado grande para un procesamiento
eficiente. En la práctica no es excesivo tener un archivo con 100.000 registros, con 10 registros almacenados en cada
bloque. Si tenemos un registro índice por cada bloque, el índice tendrá 10.000 registros. Como los registros índices
son más pequeños que los registros de datos, podemos suponer que caben 100 registros índices en un bloque. Por
tanto, el índice ocuparía 100 bloques. Estos índices de mayor tamaño se almacenan como archivos secuenciales en
disco. Si un índice es lo bastante pequeño como para guardarlo en la memoria principal, el tiempo de búsqueda para
encontrar una entrada será breve. Sin embargo, si el índice es tan grande que se debe guardar en disco, buscar una
entrada implicará leer varios bloques de disco.
Para resolver este problema el índice se trata como si fuese un archivo secuencial y se construye un índice
disperso sobre el índice con agrupación, como se muestra.
Índice multinivel: Árbol B+
● Los índices de árbol B+ son una alternativa a los archivos secuenciales indexados.
● Inconvenientes de los archivos secuenciales indexados: el rendimiento baja cuando el archivo crece, dado
que se crean muchos bloques de desbordamiento. Es necesario reorganizar periódicamente todo el
archivo.
● Ventajas de los archivos de índice de árbol B+: se reorganiza automáticamente por sí mismo con
pequeños cambios locales, a pesar de las inserciones y los borrados. No es necesario reorganizar todo el
archivo para mantener el rendimiento.
● Inconvenientes de los árboles B+: inserciones extras, sobrecarga de borrados y costes de espacio.
● Las ventajas de los árboles B+ superan a los inconvenientes, por lo que se emplean ampliamente.
Un árbol B+ es un árbol con raíz que satisface las siguientes propiedades:
● Todos los caminos, desde la raíz a las hojas, tienen la misma longitud
● Cada nodo que no es ni raíz ni hoja, tiene entre [n/2] y n hijos.
● Un nodo hoja tiene entre [(n–1)/2] y n–1 valores
● Casos especiales:
●  Si la raíz no es una hoja, tiene al menos 2 hijos.
●  Si la raíz es una hoja (es decir, no hay otros nodos en el árbol), puede tener entre 0 y (n–1) valores.
Estructura de nodos del árbol B+
Nodo típico
●  Ki son los valores de la clave de búsqueda
●  Pi son los punteros a los hijos (para nodos no hoja) o a los registros o cajones de registros (para
nodos hoja).
● En un nodo las claves de búsqueda están ordenadas
K1 < K2 < K3 < . . . < Kn–1
Propiedades de un nodo hoja:
Para i = 1, 2, . . ., n–1, el puntero Pi apunta a un registro del archivo con valor de clave de búsqueda Ki, o a un cajón
de punteros a los registros del archivo, cada registro con valor de clave de búsqueda Ki. Sólo es necesaria una
estructura de cajones si la clave de búsqueda no es una clave primaria.
● Si Li, Lj son nodos hoja e i < j, los valores de clave de búsqueda de Li son menores que los de Lj
● Pn apunta al siguiente nodo hoja, ordenado por clave de búsqueda
Un índice Árbol B+ es un índice multinivel equilibrado invertido denso:
● Es equilibrado porque se puede estimar con precisión cuántos bloques hay que leer para recorrer el índice y
llegar a un dato específico.
● Es invertido porque su forma es la de un árbol al revés.
Cada uno de los bloques es un nodo del índice. El mismo va a representar los valores de atributo ubicados en la
base u hojas del árbol. Para llegar a cada valor siempre se recorre la misma cantidad de bloques, siendo dicho
número la altura del árbol. Cada nodo que no sea hoja tiene entre y n hijos, donde n es fijo para cada árbol
𝑛
2
concreto.
Cada nodo posee dos claves ( ) y n punteros𝑉
1

Continuar navegando