Escolar Documentos
Profissional Documentos
Cultura Documentos
Michael Stonebraker
Joseph M. Hellerstein
Abstracto
Este documento presenta un resumen de 35 aos de propuestas de modelos de
datos, agrupados en 9
Diferentes pocas. Discutimos las propuestas de cada poca y mostramos que
slo hay
Las ideas bsicas de modelado de datos, y la mayora han sido alrededor de un
tiempo largo. Propuestas posteriores
Inevitablemente, un fuerte parecido con algunas propuestas anteriores. Por lo
tanto, es un
Valga la pena estudiar las propuestas anteriores.
Adems, presentamos las lecciones aprendidas de la exploracin de las
propuestas en cada
era. La mayora de los investigadores actuales no estuvieron presentes durante
muchas de las eras anteriores y
Limitada (si es que hay alguna) comprensin de lo que se aprendi
anteriormente. Hay un viejo adagio que
El que no entiende la historia est condenado a repetirlo. Al presentar
"antiguos
Historia ", esperamos que los futuros investigadores eviten repetir la historia.
Desafortunadamente, la propuesta principal en la era XML actual tiene un
parecido sorprendente con
La propuesta CODASYL de principios de los aos 70, que fracas debido a su
complejidad.
Por lo tanto, la era actual es repetir la historia, y "lo que va alrededor viene
alrededor".
Esperemos que la prxima era sea ms inteligente.
I. Introduccin
Las propuestas de modelos de datos han existido desde finales de la dcada de
1960, cuando el primer autor
"Entr en escena". Las propuestas han continuado con sorprendente
regularidad
Interviniendo 35 aos. Adems, muchas de las propuestas actuales provienen
de
Investigadores demasiado jvenes para haber aprendido de la discusin de
anteriores. Por lo tanto, la
Propsito de este trabajo es resumir los 35 aos de "progreso" y sealar qu
Debe ser aprendido de este largo ejercicio.
Presentamos propuestas de modelos de datos en nueve pocas histricas:
Jerrquico (IMS): fines de los aos 1960 y 1970
Red (CODASYL): 1970's
Relacional: 1970 y principios de 1980
Entidad-Relacin: 1970's
Usando el primer esquema, uno puede encontrar todas las partes rojas
suministradas por el Proveedor 16 como:
Obtener proveedor nico (sno = 16)
Hasta el fracaso
Obtener el siguiente en el padre (color = rojo)
Enddo
El primer comando encuentra Supplier 16. Entonces iteramos a travs del
subrbol debajo
Este registro en orden HSK, en busca de partes rojas. Cuando el subrbol se
agota, se produce un error
Se devuelve.
Obsrvese que DL / 1 es un lenguaje "registro-a-tiempo", mediante el cual el
programador construye un
Algoritmo para resolver su consulta, y luego IMS ejecuta este algoritmo. A
menudo hay
Mltiples formas de resolver una consulta. Aqu hay otra manera de resolver
la especificacin anterior:
Proveedor (sno,
Sname, scity,
Sstate)
Parte (pno, pname,
Psize, pcolor, qty,
precio)
Parte (pno,
Pname, psize,
Pcolor
Proveedor (sno,
Sname, scity,
Sstate, qty, precio)
4
Captulo 1: Modelos de datos y arquitectura DBMS
Pgina 4
Hasta el fracaso
Obtener la siguiente parte (color = rojo)
Enddo
Aunque se podra pensar que la segunda solucin es claramente inferior a la
primera; en
De hecho, si slo hay un proveedor en la base de datos (nmero 16), la
segunda
Superan a la primera. El programador DL / 1 debe hacer tales compensaciones
de optimizacin.
IMS soporta cuatro formatos de almacenamiento diferentes para los datos
jerrquicos. Bsicamente registros de raz
Puede ser:
Almacenado secuencialmente
Indexado en un rbol B utilizando la clave del registro
Hashed utilizando la clave del registro
Los registros dependientes se encuentran desde la raz usando
Fsico secuencialmente
Varias formas de punteros.
Algunas de las organizaciones de almacenamiento imponen restricciones a los
comandos DL / 1. Por ejemplo
La organizacin puramente secuencial no admite inserciones de registros. Por
lo tanto, es apropiado
Slo para entornos de procesamiento por lotes en los que se ordena una lista
de cambios en orden HSK y
Entonces se hace una sola pasada de la base de datos, los cambios insertados
en el lugar correcto y un
Nueva base de datos escrita. Esto se denomina usualmente "procesamiento de
antiguo maestro nuevo maestro".
Adems, la organizacin de almacenamiento que almacena los registros raz
en una clave no puede
"Get next", porque no tiene forma fcil de devolver registros hash en orden
HSK.
Estas diversas "peculiaridades" en IMS estn diseadas para evitar
operaciones que
Rendimiento increblemente malo. Sin embargo, esta decisin tiene un precio:
no se puede
Cambiar las organizaciones de almacenamiento de IMS para ajustar una
aplicacin de base de datos porque no hay
Garantizar que los programas DL / 1 seguirn funcionando.
La capacidad de una aplicacin de base de datos para seguir ejecutndose,
independientemente de la afinacin es
realizado en el nivel fsico se llamar independencia de datos fsica. Fsico
La independencia de datos es importante porque una aplicacin de DBMS no
suele escribirse todo en
una vez. A medida que se agregan nuevos programas a una aplicacin, las
demandas de ajuste pueden cambiar,
Y un mejor rendimiento de DBMS podra lograrse cambiando la organizacin
de almacenamiento.
IMS ha elegido limitar la cantidad de independencia de datos fsicos que es
posible.
Adems, los requisitos lgicos de una aplicacin pueden cambiar con el
tiempo. Nuevo
Tipos de registros pueden agregarse, debido a nuevos requerimientos de
negocios o
Gubernamentales. Tambin puede ser conveniente mover ciertos elementos de
datos de
Participa-3
Una solucin de CODASYL
Figura 6
Esta solucin requiere tres conjuntos binarios para expresar una relacin de
tres vas, y es
Algo antinatural. Aunque mucho ms flexible que IMS, los datos CODASYL
Modelo todava tena limitaciones.
El lenguaje de manipulacin de datos CODASYL es un lenguaje de registroa-un-tiempo en el que uno
Entra en la base de datos en un punto de entrada y luego navega a los datos
deseados mediante conjuntos siguientes.
Para encontrar las piezas rojas suministradas por el Proveedor 16 en
CODASYL, se puede utilizar lo siguiente
cdigo:
Novia
Ceremonia
Novio
Ministro
Lo que se siembra de recoge
9
Pgina 9
Idiomas
B) Es imposible implementar eficientemente el modelo relacional
C) CODASYL puede representar tablas, as que cul es la gran cosa?
El punto culminante (o lowlight) de esta discusin fue un debate real en
SIGMOD '74
Entre Codd y Bachman y sus respectivos "segundos" [RUST74]. Uno de
nosotros estaba en
La audiencia, y era obvio que ninguno de los dos lados articulaba claramente
su posicin. Como un
Resultado, ninguno de los dos lados pudo or lo que el otro lado tena que
decir.
En los dos aos siguientes, los dos campamentos modificaron sus posiciones
(ms o menos)
Siguiente:
Defensores relacionales
A) Codd es un matemtico, y sus lenguas no son las correctas. SQL
[CHAM74]
Y QUEL [STON76] son mucho ms fcil de usar.
12
Captulo 1: Modelos de datos y arquitectura DBMS
Pgina 12
Por lo tanto, ambos campos respondieron a las crticas del otro campo. El
debate entonces muri
Hacia abajo, y la atencin se centr en el mercado comercial para ver qu
pasara.
Fortuitamente para el campo relacional, la revolucin del minicomputador
estaba ocurriendo, y
Los VAX estaban proliferando. Ellos eran un objetivo obvio para los primeros
Sistemas relacionales, como Oracle e INGRES. Felizmente para el campo
relacional, el
Los principales sistemas CODASYL, tales como IDMS de Culinaine Corp. se
escribieron en IBM
Ensamblador, y no eran porttiles. Por lo tanto, los sistemas relacionales
tempranos tenan el VAX
Mercado a s mismos. Esto les dio tiempo para mejorar el rendimiento de sus
productos,
Y el xito del mercado VAX fue de la mano con el xito de las relaciones
Sistemas.
En los mainframes, se estaba desarrollando una historia muy diferente. IBM
vendi un derivado de System R
En VM / 370 y una segunda derivada en VSE, su sistema operativo de gama
baja. Sin embargo,
Ninguna plataforma fue utilizada por los usuarios serios de procesamiento de
datos empresariales. Toda la accin fue
En MVS, el sistema operativo de gama alta. Aqu, IBM continu vendiendo
IMS, Cullinaine
Vendido con xito IDMS, y los sistemas relacionales estaban en ninguna parte
ser visto.
Por lo tanto, los VAX eran un mercado relacional y los mainframes eran un
mercado no relacional.
En ese momento todos los datos serios de gestin se hizo en mainframes.
Este estado de cosas cambi abruptamente en 1984, cuando IBM anunci la
prxima
Lanzamiento de DB / 2 en MVS. En efecto, IBM pas de decir que IMS era su
serio
DBMS a una estrategia de base de datos dual, en la cual tanto IMS como DB /
2 fueron declarados estratgicos.
Dado que DB / 2 era la nueva tecnologa y era mucho ms fcil de usar,
Todos los que el ganador a largo plazo iba a ser.
Lo que se siembra de recoge
13
Pgina 13
momento. Primero, termin de una vez por todas "el gran debate". Dado que
IBM
Mercado en ese momento, anunciaron con eficacia que los sistemas
relacionales tenan
Ganado y CODASYL y los sistemas jerrquicos haban perdido. Poco
despus, Cullinaine e IDMS
Entr en un mercado desmayado. En segundo lugar, declararon efectivamente
que SQL era el
Facto, el lenguaje relacional estndar. Otros lenguajes de consulta
(sustancialmente mejores), como
QUEL, estaban muertos de inmediato. Para una crtica mordaz de la semntica
de SQL, consulte
[DATE84].
Un hecho poco conocido debe ser discutido en este punto. Hubiera sido
natural que IBM
Poner un frontal relacional en la parte superior de IMS, como se muestra en la
Figura 7. Esta arquitectura sera
Han permitido a los clientes de IMS continuar con IMS. Se podra escribir una
nueva solicitud
A la interfaz relacional, proporcionando un camino de migracin elegante a la
nueva tecnologa.
Por lo tanto, con el tiempo un cambio gradual de DL / 1 a SQL se habra
producido, todo el tiempo
Preservando los soportes de IMS de alto rendimiento
De hecho, IBM intent ejecutar exactamente esta estrategia, con un proyecto
llamado Eagle.
Por desgracia, result demasiado difcil implementar SQL en la parte superior
de la nocin IMS de lgica
Bases de datos, debido a cuestiones semnticas. Por lo tanto, la complejidad
de las bases lgicas
IMS volvi a frecuentar IBM muchos aos despus. Como resultado, IBM se
vio obligada a
La estrategia de doble base de datos, y declarar un ganador del gran debate.
Antiguos programas
Nuevos programas
La Arquitectura del Proyecto guila
Figura 7
En resumen, el argumento de CODASL versus relacional fue finalmente
resuelto por tres
eventos:
Relacional
interfaz
IMS
14
Captulo 1: Modelos de datos y arquitectura DBMS
Pgina 14
Suministro
Cantidad, precio
Un Diagrama ER
Figura 8
Hay un rea donde el modelo de ER ha sido exitoso, en la base de datos
(Esquema) de diseo. La sabidura estndar de los defensores relacionales fue
la de realizar datos
Base de diseo mediante la construccin de una coleccin inicial de
tablas. Luego, uno aplicado
Normalizacin a este diseo inicial. A lo largo de la dcada de los setenta,
Fueron una coleccin de formas normales propuestas, incluida la segunda
forma normal (2NF)
[CODD71b], tercera forma normal [CODD71b], forma normal de BoyceCodd (BCNF)
[CODD72b], la cuarta forma normal (4NF) [FAGI77a], y el proyecto de
unirse a la forma normal
[FAGI77b].
Hubo dos problemas con la teora de la normalizacin cuando se aplic a la
base de datos del mundo real
Problemas de diseo. Primero, los DBAs inmediatamente preguntaron:
"Cmo puedo obtener un conjunto inicial de
Tablas? "La teora de la normalizacin no tena respuesta a esta importante
pregunta. Segundo, y
Figura 10
En nuestra opinin, SDM tena los mismos dos problemas que enfrentan los
defensores de I ++. Como el
propuestas de I ++, que eran una gran cantidad de maquinaria que fue fcil
para simular el relacional
Sistemas. Por lo tanto, no haba propuesto muy poca influencia en las
construcciones. los
campo de SDM tambin se enfrent a la segunda edicin de R ++ propuestas,
a saber, que la estableci
vendedores estaban distrados con un rendimiento de procesamiento de
transacciones. Por lo tanto, los datos semntica
modelos tenan poca influencia a largo plazo.
VIII OO poca
A partir de mediados de la dcada de 1980 hubo una "ola" de inters en
Object-Oriented
DBMS (OODB). Bsicamente, esta comunidad apunt a una "falta de
concordancia"
entre las bases de datos relacionales y lenguajes como C ++.
En la prctica, las bases de datos relacionales tenan sus propios sistemas de
nomenclatura, su propio tipo de datos
sistemas, y sus propias convenciones para el retorno de datos como resultado
de una consulta. Lo que sea
lenguaje de programacin se utiliza junto con una base de datos relacional
tambin tena su propia versin
de todas estas instalaciones. Por lo tanto, para unir una aplicacin a la base de
datos requiere una
conversin del "lenguaje de programacin hablar" a "hablar base de datos" y
la espalda. Esta
era como "encolado de una manzana sobre un panqueque", y fue la razn de la
llamada
desajuste de impedancia.
Buques
Tanques de aceite
American_ship
American_Oil_tankers
20
Captulo 1: Modelos y datos DBMS Arquitectura
Pgina 20