Directorio de implementación del sistema de base de datos

Mensaje del editor

Orden del traductor

Introducción del traductor

Prefacio de la publicación

Capítulo 1 descripción general del sistema dbms

1.1 Desarrollo de sistemas de bases de datos

1.1.1 Primeros sistemas de gestión de bases de datos

1.1.2 Sistemas de bases de datos relacionales

1.1.3 Sistemas cada vez más pequeños

1.1.4 Sistemas cada vez más grandes

1.1.5 Integración de información

1.2 Descripción general de los sistemas de gestión de bases de datos

1.2.1 Comandos del lenguaje de definición de datos

1.2.2 Descripción general del procesamiento de consultas

1.2.3 Administrador de búfer y memoria principal

1.2.4 Procesamiento de transacciones

1.2.5 Procesador de consultas

1.3 Descripción general del libro

1.4 Revisión del lenguaje y modelo de base de datos

1.4.1 Revisión del modelo relacional

1.4.2Revisión de SQL

1.5 citas

La primera parte es la implementación del sistema de base de datos.

Capítulo 2 Gestión de almacenes auxiliares

2.1 Jerarquía de memoria

2.1.1 Jerarquía de memoria

2.1.2 A nivel de memoria Transferencia de datos entre

2.1.3 Memoria volátil y no volátil

2.1.4 Memoria virtual

2.1.5 Movimiento

2.2 Disco

2.2.1 Estructura del disco

Controlador de disco

2.2.3 Características de acceso al disco

Ejercicio

p>

2.3 Acelerar el acceso a la memoria auxiliar

2.3.1 Modelo de E/S para informática

2.3.2 Organizar datos por cilindros.

Uso de múltiples discos

Duplicación de discos

2.3.5 Programación de discos y algoritmo elevador

2.3.6 Precarga y almacenamiento en búfer a gran escala

Ejercicio

2.4 Fallo de disco

2.4.1 Fallo intermitente

Suma de comprobación

Almacenamiento estable

2.4.4 Capacidad de manejo de errores del almacenamiento estable

2.4.5 Recuperación de una falla del disco

2.4.6 Duplicación como tecnología de redundancia

Bloque de paridad

2.4.8 Una mejora: raid 5

2.4.9 Manejo cuando varios discos fallan

2.4 10 ejercicios

2.5 Organización. datos en disco

2.5.1 Registros de longitud fija

2.5.2 Colocación de registros de longitud fija en bloques

Ejercicios

2.6 Representación de direcciones de bloque y registro

2.6.1 Direcciones en sistemas cliente-servidor

Direcciones lógicas y direcciones estructurales

Escritura mixta de puntero

2.6.4 Retorno de bloque al disco

2.6.5 Registros y bloques anclados

Ejercicio

2.7 Datos y registros de longitud variable

2.7.1 Registros con campos de longitud variable

2.7.2 Registros con campos repetidos

Registros de formatos variables

2.7.4 no pueden cargar registros en fragmentos.

2.7.5blob

Almacenamiento de columnas

Ejercicio

2.8 Modificación de registros

2.8.1 Inserción

Eliminar

Modificar

Ejercicio

2.9 Resumen

2.10 Referencias

Índice del Capítulo 3 Estructura

3.1 Conceptos básicos de la estructura del índice

3.1.1 Archivo secuencial

3.1.2 Índice intensivo

3.1.3 Índice disperso

3.1.4 Índice multinivel

3.1.5 Índice auxiliar

3.1.6 Aplicación de indicadores auxiliares

Indirectamente en 3.1. 7 Índice auxiliar

3.1.8 Recuperación de documentos e índice invertido

3.1.9 Movimiento

3.2b árbol

3.2 .1b Árbol estructura

3. 2. 2 Aplicación del árbol B-B

3.2.3b-Búsqueda de árbol

3.2.4 Consulta de rango

3.2 .5b-Inserción de árbol

3.2.6b-Eliminación de árbol

3.2.7b-Eficiencia de árbol

Ejercicio

3.3 Tabla hash

3.3.1 Tabla hash secundaria

3.3.2 Insertar tabla hash

3.3.3 Eliminar tabla hash

p>

3.3.4 Eficiencia del índice de la tabla hash

3.3.5 Tabla hash extensible

3.3.6 Inserción de tabla hash extensible

3.3.7 Tabla hash lineal

3.3.8 Insertar tabla hash lineal

Ejercicio

3.4 Índice multidimensional

3.4.1 Aplicación del índice multidimensional

3.4. 2 Utilice el índice tradicional para realizar consultas de rango

3.4.3 Utilice el índice tradicional para realizar consultas del vecino más cercano

3.4.4 Descripción general multidimensional de la estructura del índice

3.5 Hash estructura de datos multidimensionales

3.5.1 Archivo de cuadrícula

Búsqueda de archivos de cuadrícula

Inserción de archivos de cuadrícula

Rendimiento de archivos de cuadrícula

3.5.5 Función Hash de segmento

3.5.6 Comparación de archivos de cuadrícula y hash de segmento

Ejercicio

3.6 Estructura de árbol de datos multidimensionales

3.6.1 Índice de claves múltiples

3.6.2 Rendimiento del índice de claves múltiples

p>

3.6.3kd-tree

3.6.4 Operaciones de kd-tree

3.6.5 Hacer que kd-tree sea adecuado para almacenamiento auxiliar.

Quadtree

r-tree

3.6.8 Operación del árbol r-Xmas

Ejercicio

3.7 Índice de mapa de bits

3.7.1 Motivación del índice de mapa de bits

3.7.2 Mapa de bits comprimido

3.7.3 Operación del vector de bits codificado de longitud de segmento

p >

3.7.4 Gestión de índices de mapas de bits

Ejercicio

3.8 Resumen

3.9 Referencias

Capítulo 4 Ejecución de consultas

4.1 Introducción a los operadores del plan de consulta física

4.1.1 Escaneo de tablas

4.1.2 Clasificación al escanear tablas

4.1 .3 Cálculo del operador físico modelo

4.1.4 Parámetros para medir el costo

4.1.5 Costo de E/S del operador de escaneo

4.1.6 Implementación de iteradores de operadores físicos

4.2 Algoritmo de una sola pasada

4.2.1 Algoritmo de una sola pasada para operación de grupo de unidades de una sola vez

4.2.2 Algoritmo de operación unaria relacional general de un paso

4.2.3 Algoritmo de paso único para operaciones binarias

Ejercicio

4.3 Conexión de bucle anidado

4.3.1 Bucle anidado basado en tuplas conexión

4.3.2 Iterador de conexión de bucle anidado basado en tuplas

4.3.3 Algoritmo de conexión de bucle anidado basado en bloques

4.3.4 Análisis de conexión de bucle anidado

4.3.5 Resumen de algoritmos hasta el momento

Ejercicio

4.4 Algoritmo de dos pasadas basado en clasificación

4.4.1 Dos niveles clasificación por combinación múltiple

4.4.2 Utilice la clasificación para eliminar duplicados

4.4.3 Agrupación y agregación mediante clasificación

4.4 Algoritmo conjunto basado en clasificación

4.4.5 Algoritmo de intersección basado en clasificación

4.4.6 Algoritmo de unión simple basado en clasificación

4.4.7 Análisis de unión ordenada simple

4.4.8 Uniones basadas en clasificación más eficientes

4.4.9 Descripción general de los algoritmos basados ​​en clasificación

4.4.10 Ejercicios

4.5 Dos pasadas basadas en hash algoritmo

4.5.1 Particionamiento de relaciones mediante hash

4.5.2 Algoritmo de eliminación de duplicaciones basado en hash

4.5 Algoritmos de agrupación y agregación basados ​​en hash

p>

4.5.4 Algoritmos de unión, intersección y diferencia basados ​​en hash

Algoritmo de conexión hash

4.5.6 Guardar algunas E/S de disco

4.5.7 Descripción general de los algoritmos basados ​​en hash

Ejercicio

4.6 Algoritmos basados ​​en índices

4.6 .1Índice agrupado e índice no agrupado

4.6.2 Selección basada en índice

Unirse usando índice

4.6.4 Unirse usando índice ordenado

Ejercicio

4.7 Gestión de búfer

4.7.1 Estructura de gestión de búfer

Estrategia de gestión de búfer

4.7.3 La relación entre la selección del operador físico y la gestión de búfer

Ejercicio

4.8 Uso de algoritmos de más de dos pasos

4.8.1 Algoritmos de múltiples pasos basados ​​en clasificación

4.8.2 Rendimiento de algoritmos de múltiples pasos basados ​​en clasificación -algoritmo de paso

4.8.3 Algoritmo de paso múltiple basado en hash

4.8.4 Algoritmo de paso múltiple basado en hash Rendimiento del algoritmo de paso

Ejercicio

4.9 Resumen

4.10 Referencias

Capítulo 5 Compilador de consultas

5.1 Análisis de sintaxis y preprocesamiento

5.1.1 Análisis de sintaxis y árbol de análisis de sintaxis

5.1.2 Gramática de un subconjunto simple de sql

5.1.3 Procesador de preprocesamiento

5.1.4 Preprocesamiento de consultas que involucran vistas

5.1.5 Movimiento

5.2 Reglas algebraicas para mejorar la planificación de consultas

5.2.1 Leyes conmutativas y asociativas

5.2.2 Leyes acerca de la selección

Empujar selección

5.2.4 Leyes sobre proyección

5.2.5 Leyes sobre conexiones y productos

5.2.6 Leyes sobre eliminación de duplicidades

5.2. sobre agrupación y agregación

Ejercicio

5.3 Del árbol de análisis al plan de consulta lógica

5.3.1 Conversión al álgebra relacional

5.3. 2 Eliminación de subconsultas de las condiciones

5.3.3 Mejoras en los planes de consultas lógicas

5.3.4 Agrupación de operadores componibles/asignables

Ejercicio

5.4 Estimación del costo operativo

5.4.1 Estimación del tamaño de la relación intermedia

5.4.2 Escala de operación estimada

5.4.3 Elección de la estimación de la escala de operación

5.4.4 Estimación de la escala de operación de la conexión

5.4.5 Conexión natural de múltiples atributos de conexión

5.4.6 Conexión de múltiples relaciones

5.4 .7 Estimación de otros tamaños de trabajo

Ejercicio

5.5 Introducción a la selección de planes basada en costos

5.5.1 Obtención de parámetros de tamaño Valor estimado

5.5.2 Cálculo de estadísticas

5.5.3 Estimación heurística para reducir el coste de la planificación de consultas lógicas

5.5.4 Lista de planos físicos Método

Ejercicio

5.6 Selección del orden de conexión

5.6.1 El significado de las conexiones de parámetros izquierdo y derecho

5.6.2 Árbol de conexión

p>

5.6.3 Árbol de unión profunda a la izquierda

5.6.4 Seleccione el orden de unión y la agrupación mediante programación dinámica.

5.6.5 Programación dinámica con una función de costos más específica

5.6.6 Algoritmo codicioso para elegir el orden de unión

Ejercicio

5.7 Completar la selección del plan de consulta física

5.7.1 Seleccionar el método de selección.

Seleccione el método de conexión

5.7.3 Tubería y concretización

5.7.4 Operación de tubería unaria

5.7.5 Operación binaria Tubería operaciones

5.7.6 Notación de planes de consulta física

Clasificación de operaciones físicas

Ejercicio

5.8 Resumen

5.9 Referencias

Capítulo 6 Contramedidas contra fallas del sistema

6.1 Problemas y modelos de operación recuperable

6.1.1 Modos de falla

6.1. 2 Más discusión sobre transacciones

6.1.3 Ejecución correcta de transacciones

6.1.4 Operaciones sin procesar de transacciones

6.1.5 Movimiento

6.2 Deshacer registro

6.2.1 Registro

6. 2. 2 Reglas de deshacer registro

6.2.3 Uso de la recuperación de registro de deshacer

Puntos de control

Puntos de control no estáticos

Ejercicios

6.3 Registros de rehacer

6.1 Reglas de registro de rehacer

6.3.2 Uso de registros de rehacer para recuperación

6. 3. 3 Puntos de control de rehacer de registros de rehacer

6.3.4 Recuperación usando registros de rehacer con puntos de control

Ejercicio

6.4 Registros de deshacer/rehacer

Reglas de deshacer/rehacer

6.4.2 Recuperación mediante registros de deshacer/rehacer

6.4. 3 Puntos de control de registros de deshacer/rehacer

Ejercicio

6.5 Protección contra fallas de medios

6.5.1 Copia de seguridad

Volcado no estático

6.5.3 Recuperación mediante copias de seguridad y registros

Ejercicio

6.6 Resumen

6.7 Referencias

Capítulo 7 Control de concurrencia

7.1 Programación en serie y programación serializable

7.1.1 Programación

7.1.2 Programación en serie

7.1.3 Programación en serie

p>

7.1.4 Impacto de la semántica de transacciones

7.1.5 Notación para transacciones y programación

7.1.6 Movimiento

7.2 Serializabilidad de conflictos

6.5438+0 Conflicto

7.2.2 Gráfico de prioridad y juicio de serialización de conflicto

7.2.3 Por qué funcionan las pruebas de gráfico de prioridad

Ejercicio

7.3 Implementación serializable mediante bloqueos

7.3.1 Bloqueos

7.3.2 Programador de bloqueo

7.3.3 Bloqueo en dos fases

7.3.4 Razones por las que funciona el bloqueo en dos etapas

Ejercicio

7.4 Sistema de bloqueo con múltiples modos de bloqueo

7.4.1*** Disfrute de bloqueos y bloqueos exclusivos

Matriz de compatibilidad

Actualizaciones de bloqueos

Actualización de bloqueos

Bloqueos incrementales

Ejercicio

7.5 Arquitectura del programador de bloqueo

7.5.1 El programador realiza la acción de insertar bloqueo

Bloquear tabla

Ejercicio

7.6 Jerarquía de elementos de la base de datos

7.6.1 Bloqueos de multigranularidad

Bloqueos de advertencia

7.6.3 Manejo correcto de ilusiones e inserciones

p>

Ejercicios

7.7 Protocolo de árbol

7.7.1 Motivos para el bloqueo de árboles

7.7.2 Reglas para acceder a datos estructurados en árbol

7.7.3 Razones por las que funciona el protocolo de árbol.

Ejercicio

7.8 Control de concurrencia mediante marcas de tiempo

7.8.1 Marcas de tiempo

7.8.2 Comportamiento que de hecho no se puede implementar.

7.8.3 Problema de datos sucios

7.8.4 Reglas de programación basadas en marcas de tiempo

Marcas de tiempo de múltiples versiones

Marcas de tiempo y bloqueo

Ejercicio

7.9 Control de concurrencia mediante confirmación de validación

La estructura de un programador basado en confirmación de validación

Reglas de confirmación de validación

7.9.3 Comparación de tres mecanismos de control de concurrencia

Ejercicios

7.10 Resumen

7.11 Citas

El Capítulo 8 analiza la gestión de transacciones de nuevo

8.1 Continuidad y recuperabilidad

8.1.1 Problema de datos sucios

8.1.2 Reversión en cascada

8.1.3 Programación recuperable

8.1.4 Programación para evitar reversiones en cascada

8.1.5 Gestión de reversiones basada en bloqueos

8.1.6 Envío grupal

8.1. 7 Registro lógico

8.1.8 Recuperación del registro lógico

8.1.9 Movimiento

8.2 Interbloqueo

8.2.1 Detección de interbloqueo por tiempo de espera

8.2.2 Gráfico de espera

8.2.3 Prevenir interbloqueo mediante clasificación de elementos

8.2.4 Detectar interbloqueo mediante marcas de tiempo

8.2. 5 Comparación de métodos de gestión de interbloqueos

Ejercicio

8.3 Negocios a largo plazo

8.3.1 Problema de transacciones largas

8.3.2 saga (registro continuo)

8.3.3 La remuneración importa

8.3.4 Razones por las que las cuestiones salariales entran en juego

Ejercicios

8.4 Resumen

8.5 Referencias

Capítulo 9 Bases de datos paralelas y distribuidas

9.1 Algoritmo paralelo relacional

9.1.1 Modo paralelo

9.1.2 Operación paralela, una tupla a la vez

9.1.3 Algoritmo paralelo para operación relacional completa

9.1.4 Rendimiento de algoritmos paralelos

9.1.5 Movimiento

9.2 ¿Mapa? Reducir la arquitectura paralela

9.2.1 Modo de almacenamiento

Función de mapeo

9.2.3 Función de restauración

Ejercicio

9.3 Base de datos distribuida

Distribución de datos

Transacción distribuida

9.3.3 Replicación de datos

Ejercicio

9.4 Procesamiento distribuido de consultas

9.4.1 Problemas de operación de conexión distribuida

Simplificación de semiunión

9.4.3 Conexiones de múltiples relaciones

9.4. 4 Hipergrafo acíclico

9.4.5 Simplificación completa del hipergrafo acíclico

9.4.6 ¿Por qué es efectivo el algoritmo de reducción completa?

Ejercicio

9.5 Compromiso distribuido

9.5.1 admite la atomicidad distribuida.

9.5.2 Confirmación en dos fases

9.5.3 Recuperación de transacciones distribuidas

Ejercicio

9.6 Bloqueo distribuido

9.6.1 Sistema de bloqueo centralizado

9.6.2 Modelo de costes del algoritmo de bloqueo distribuido

9.6.3 Elementos de bloqueo con múltiples copias

9.6.4 Bloquear la copia maestra

9.6.5 Bloqueo global que consta de bloqueos locales

Ejercicio

9.7 Búsqueda distribuida punto a punto

9.7.1 Redes Peer-to-Peer

9.7.2 Problemas de Hash Distribuido

9.7.3 Soluciones Centralizadas para Hash Distribuido

9.7.

9.7.5 Eslabón de cadena en el círculo de cuerdas

9.7.6 Usa la tabla de dedos para encontrar.

9.7.7 Agregar nuevos nodos

9.7.8 Cuando un terminal abandona la red,

9.7.9 Cuando un terminal falla,

9.7.10 Ejercicios

9.8 Resumen

9.9 Referencias

La segunda parte es el tema de los sistemas de bases de datos modernos.

Capítulo 10 Integración de la información

10.1 Introducción a la integración de la información

10.1.1 ¿Por qué deberíamos integrar la información?

10.1.2 Problema de heterogeneidad

10.2 Modelo de integración de información

10.2.1 Sistema de base de datos federado

10.2.2 Almacén de datos

10. 2. 3 Mediación

10.2.4 Ejercicios

10.3 Wrappers en sistemas basados ​​en mediación

10.3.1 Plantilla de patrón de consulta

10.3.2 Generador de paquetes

10.3.3 Filtro

10.3.4 Otras operaciones sobre paquetes

10.3.5 Ejercicios

10.4 Optimización basada en capacidad

10.4.1 Capacidades limitadas de fuente de datos

10.4.2 Símbolos que describen funciones de fuente de datos

10.4.3 Capacidad- selección de plan de consulta basada en

10.4.4 Agregar optimización basada en costos.

10.4.5 Ejercicios

10.5 Optimización de consultas intermediarias

10.5.1 Simplificación de modificadores

10.5.2 Obtención de respuestas a submetas .

10. 5. Algoritmo de 3 cadenas

10.5.4 Combinar y ver intermediarios

10.5.5 Ejercicios

10.6 Usar local como mediación de opiniones

10.6.1 Motivación del mediador Lav

10. 6. 2 Terminología del mediador legal

10.6.3 Soluciones extendidas

10.6.4 Consulta de unión incluida

10.6.5 ¿Por qué funciona la prueba de mapeo incluida?

10.6.6 Descubrir soluciones a consultas del mediador.

10.6.7 ¿Por qué es verdadero el teorema de lmss?

10.6.8 Ejercicios

10.7 Análisis de entidades

10.7.1 Determinar si el registro representa una entidad.

10.7.2 Fusionar registros similares

10.7.3 Similitud y propiedades útiles de las funciones de fusión

10.7.4icar registrado por icar? Algoritmo Swoosh

10.7.5 ¿Por qué R? El algoritmo Swoosh será efectivo

10.7.6 Otros métodos de resolución de entidades

10.7.7 Ejercicios

10.8 Resumen

10.9 Referencia Literatura

Capítulo 11 Minería de datos

11.1 Minería frecuente de conjuntos de artículos

11.1.1 Modelo de cesta de compras de mercado

11.1.2 El definición básica de

11.1.3 Reglas de asociación

11.1.4 Modelo de cálculo de conjuntos de elementos frecuentes

11.1.5 Movimiento

11.2 Algoritmo para encontrar conjuntos de elementos frecuentes

11.2.1 Distribución de conjuntos de elementos frecuentes

11.2.2 Algoritmo ingenuo para encontrar conjuntos de elementos frecuentes

11.2.3a? Algoritmo a priori

11.2.4a? Implementación de algoritmo a priori

11.2.5 Mejor utilización de la memoria principal

11.2.6 ¿Cuándo usar el algoritmo pcy?

11.2.7 Algoritmo multinivel

11.2.8 Movimiento

11.3 Buscar productos similares.

11.3.1 Medida de similitud de Jaccard

11.3.2 Aplicación de la similitud de Jaccard

11.3.3 Hash mínimo

11.3 .4 Similitud entre hash mínimo y jaccard

11.3.5 ¿Por qué se puede utilizar el hash mínimo para estimar la similitud?

Implementación de 11.3.6 Hash mínimo

11.3.7 Movimiento

11.4 Hash sensible local

11.4.1lsh Ejemplo: resolución de entidad

11.4.2 Hash sensible local marcado

11.4.3 Combinación de método de hash mínimo y hash sensible local

11.4.4 Movimiento

11.5 Agrupación de datos a gran escala

11.5.1 Aplicación de la agrupación

11.5.2 Definición de distancia

11.5.3 Agrupación cohesiva

11.5.4k? Algoritmo medio

Datos a gran escala 11.5.5 K? Métodos

11.5.6 Procesamiento después de que la memoria esté llena.

11.5.7 Movimiento

11.6 Resumen

11.7 Referencias

Capítulo 12 Sistemas de bases de datos e Internet

12.1 Arquitectura de los motores de búsqueda

12.1.1 Composición de los motores de búsqueda

12.1.2 Rastreadores web

12.1.3 Procesamiento de consultas en los motores de búsqueda

12.1.4 Ranking de páginas.

Pagerank utilizado para identificar páginas web importantes.

12.2.1 El pensamiento intuitivo de Pagerank

12.2.2 Fórmula recursiva de Pagerank - intento preliminar

12.2.3 Seguimiento de trampas y rincones muertos

12.3.2 Calcular el pagerank relacionado con el tema.

12.3.3 Trampas de enlaces

12.3.4 Trampas de enlaces y pagerank relacionados con temas

12.3.5 Ejercicio

12.4 Flujo de datos

12.4.1 Sistema de gestión de flujo de datos

12.4.2 Aplicación de flujo de datos

12.4.3 Modelo de datos de flujo de datos

12.4. 4 Convertir flujos de datos en relaciones

12.4.5 Convertir relaciones en flujos de datos

12.4.6 Ejercicios

12.5 Minería de flujos de datos

12.5.1 Motivación

12.5.2 Estadística de números binarios

12.5.3 Contar el número de elementos diferentes

12.5.4 Ejercicios

12.6 Resumen

12.7 Referencias