2009-02-11 21 views
7

Estoy buscando implementar un RDBMS. ¿Hay algún recurso bueno sobre cómo funciona una base de datos internamente, y los tipos de cosas que necesitaría saber al comenzar a construir la mía? (Por favor, no haga comentarios sobre si es una idea práctica o no, solo imagine que es para un proyecto de pasatiempo o algo así).Recursos sobre cómo construir un RDBMS

Otra vez - interesado en el diseño de RDBMS, no en el diseño de la base de datos. Y la eficiencia es muy importante (parece que es razonablemente fácil diseñar algún tipo de estructura de base de datos relacional si no me importa la velocidad).

+0

Buena suerte encontrándolo. Intenté encontrar información y obtuve poco. Creo que deberías jugar ágil. Haz que funcione, luego haz que sea eficiente. 'Trabajar' es simple, honestamente. – user54650

+0

En realidad estoy intentando ese enfoque, pero al encontrar que es fácil hacer un RDBMS lento pero ineficiente pero ingenuo, no es obvio cómo optimizarlo. –

Respuesta

6

Hay algunos libros de texto sobre este tipo de cosas por ahí, cuando estaba en la universidad, lo hacíamos para un proyecto de clase. Este libro realmente le debe ayudar en su camino Database Systems: The Complete Book

me olvidó mencionar, pero mi código está en googlecode aquí: cs4420-dbase

Por favor, perdona el hecho de que está escrito en Java, pero yo estaba en minoría por mis compañeros de equipo en esa decisión. pero las ideas básicas todavía están allí. Maneja la creación y el manejo de archivos, así como un analizador y optimizador simple de SQL. Maneja la indexación básica (árbol b) y la administración de "memoria". Por favor, perdone parte de la falta de comentarios y comentarios extraños, muchas noches se gastaron en ese proyecto.

+0

El proyecto parece cerrado, ¿aún así puedo obtener el código? –

+0

El código todavía está disponible, simplemente lo puse en caso de que la gente quisiera más información o lo estuviera viendo, simplemente no se ha trabajado desde que terminamos el curso. ir a la fuente y obtener el código anon. –

+0

Ah, no lo noté (no estoy muy familiarizado con el código de Google, aunque supongo que no es muy diferente de cualquier interfaz web de SVN). +1 entonces - esto es muy útil –

1

La construcción de un RDBMS no es trivial, es necesario combinar los conocimientos clásicos CS de varios campos, junto con un profundo conocimiento sobre discos duros, características específicas del sistema operativo, sistemas de archivos, memoria, CPU, memorias caché para que sea eficaz.

Un buen artículo sobre la arquitectura estamos obligados a leer es:

http://www.nowpublishers.com/product.aspx?product=DBS&doi=1900000002

Por conocimientos teóricos sobre bases de datos que recomendaría para comprar un libro sobre este tema, sólo puedo hablar del libro que utilizo para esto, que es Database Systems, un enfoque orientado a la aplicación por Kifer, Bernstein y Lewis.

Es posible que desee consultar algunas bases de datos de código abierto para obtener ideas.

1

Recientemente llegué a la misma pregunta y, como otros, tuve problemas para encontrar un libro que me ayudara a construir un RDBMS real desde cero (mínimo, por supuesto). Contrariamente a lo que ocurre en otras áreas de CS (sistema operativo, compiladores, etc.); el área de Bases de datos parece tener menos recursos en este sentido. Probablemente porque los RDBMS se encuentran entre los más difíciles de comprender e implementar; - |

Sin embargo, finalmente encontré lo que parece ser una respuesta satisfactoria. El libro de Sciore "Diseño e implantación de bases":

http://www.wiley.com/WileyCDA/WileyTitle/productCd-EHEP000711.html

Las dos primeras partes se dedican a aprender a usar RDBMS, que es probable que ya conoce. Pero las dos últimas partes cubren los detalles de implementación; y lo interesante es que se utiliza un RDBMS mínimo (SimpleDB) para ilustrar los conceptos, y también puede servir como plataforma para realizar ejercicios de programación. El sitio de Wiley tiene una cita que lo dice mejor:

"Viene con SimpleDB, un sistema de base de datos simplificado totalmente funcional y gratuito que es (a diferencia de los sistemas de bases de datos comerciales) pequeño, fácil de leer y fácil de modificar.SimpleDB se puede utilizar como la plataforma en la que los estudiantes completan los proyectos de tareas e implementan los conceptos cubiertos en el libro. "

No se moleste por el hecho de que el RDBMS de muestra está escrito en Java; eso tiene la ventaja (IMHO) de ocultar los detalles de bajo nivel de implementación en C/Unix. Si viene del mundo de las aplicaciones, puede que no esté familiarizado con las cosas de programación del sistema, pero aprender los conceptos de implementación de RDBMS en un lenguaje de alto nivel como Java puede servir como un buen puente para la transición.

El sitio de Wiley permite comprar una versión electrónica del libro, pero el código fuente está disponible independientemente de que lo haya comprado. No puedo publicar más de dos enlaces, pero solo google este término (incluyendo comillas dobles), y encontrarás fácilmente el Sim página pleDB casa (donde se puede descargarlo):

"El sistema de base de datos SimpleDB"

Si no está seguro sobre la compra del libro (que al igual que otros libros núcleo-CS, no son baratas para el estudiante); es probable que pueda comenzar a leer el código y este artículo introductorio:

http://www.cs.bc.edu/~sciore/papers/SIGCSE07.pdf

Si le resulta atractivo, comprar el libro puede ser una buena inversión.

Espero que ayude, Cheers.

Cuestiones relacionadas