2009-02-11 15 views
7

Czekam na wdrożenie RDBMS. Czy są jakieś dobre źródła informacji o tym, jak działa wewnętrzna baza danych io rzeczach, które powinienem znać, gdy zaczynają budować własne? (Proszę nie komentować, czy jest to praktyczny pomysł, czy nie - po prostu wyobraź sobie, że jest to projekt dla hobby lub coś takiego).Zasoby dotyczące budowania RDBMS

Ponownie - interesuje się projektem RDBMS, a nie projektem bazy danych. Wydajność jest bardzo ważna (wydaje się, że stosunkowo łatwo zaprojektować strukturę relacyjnych baz danych, jeśli nie zależy mi na prędkości).

+0

Powodzenia w znalezieniu. Próbowałem sam znaleźć informacje i niewiele. Myślę, że powinieneś grać na zwinność. Spraw, aby działał, a następnie wydaj to wydajnie. "Praca" jest prosta, szczerze. – user54650

+0

Właściwie próbuję tego podejścia, ale stwierdzając, że łatwo jest zrobić naiwny, ale niewiarygodny powolny i nieefektywny RDBMS, nie jest oczywiste, jak go zoptymalizować. –

Odpowiedz

6

Istnieje kilka podręczników na temat tego rodzaju rzeczy tam, kiedy byłem w college'u, zrobiliśmy to dla projektu klasy. Ta książka powinna naprawdę pomóc Ci na drodze Database Systems: The Complete Book

zapomniałem o tym wspomnieć, ale mój kod jest na googlecode tutaj: cs4420-dbase

Proszę wybaczyć fakt, że jest napisany w Javie, ale został przegłosowany przez moich kolegów w sprawie tej decyzji. ale podstawowe idee wciąż tam są. Zajmuje się tworzeniem i obsługą plików, a także prostym analizatorem i optymalizatorem SQL. Obsługuje podstawowe zarządzanie indeksowaniem (b-drzewo) i "pamięcią". Proszę wybaczyć brak komentowania i dziwnego komentowania, wiele późnych nocy spędziłem na tym projekcie.

+0

Projekt wygląda na zamknięty - czy nadal mogę uzyskać kod? –

+0

Kod jest nadal dostępny, po prostu umieściłem go na wypadek, gdyby ludzie chcieli więcej informacji na ten temat lub go oglądali. Po prostu nie pracowaliśmy nad nim od czasu ukończenia kursu. idź do źródła i pobierz kod. –

+0

Ah, nie zauważyłem (niezbyt dobrze znany z kodu Google - choć domyślam się, że nie różni się zbytnio od interfejsu sieciowego SVN). +1 wtedy - to jest bardzo pomocne –

1

Budowanie RDMS nie jest trival, trzeba połączyć klasyczną wiedzę CS z kilku pól wraz z głęboką wiedzą na temat dysków twardych, specyfiki systemu operacyjnego, systemów plików, pamięci, cpu, pamięci podręcznych, aby był wydajny.

Dobry artykuł o architekturze jesteśmy zobowiązani do zapoznania się:

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

Dla teoretycznej wiedzy o bazach Polecam kupić książkę na ten temat, mogę mówić tylko o książce używam w tym celu, czyli Database Systems, podejście zorientowane na aplikacje autorstwa Kifer, Bernstein i Lewis.

Możesz zajrzeć do kilku otwartych baz danych na pomysły.

1

Niedawno doszedłem do tego samego pytania i podobnie jak inni, trochę z trudem znalazłem książkę, która pomogła w budowaniu rzeczywistego RDBMS od zera (minimalnie, oczywiście). W przeciwieństwie do tego, co dzieje się w innych obszarach CS (OS, kompilatory itp.); wydaje się, że obszar baz danych ma mniej zasobów w tym zakresie. Prawdopodobnie dlatego, że RDBMS są jednymi z najtrudniejszych do uchwycenia i wdrożenia;

Niemniej jednak w końcu znalazłem satysfakcjonującą odpowiedź. książka Sciore za „Projektowanie i implementacja bazy danych”:

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

Pierwsze dwie części są przeznaczone do nauki korzystania RDBMS, które prawdopodobnie już wiesz. Ale ostatnie dwie części obejmują szczegóły wdrożenia; i interesującą rzeczą jest to, że do zilustrowania pojęć używa się minimalnego RDBMS (SimpleDB), a także może służyć jako platforma do wykonywania ćwiczeń programistycznych. Strona Wiley ma cytat, który mówi, że jest lepszy:

"W zestawie SimpleDB, bezpłatny, w pełni funkcjonalny uproszczony system baz danych, który (w przeciwieństwie do komercyjnych systemów DB) jest mały, czytelny i łatwo modyfikowany.SimpleDB może być wykorzystywany jako platforma, na której studenci realizują projekty domowe i wdrażają koncepcje zawarte w książce. "

Nie przejmujcie się tym, że przykładowy RDBMS jest napisany w Javie, co ma tę zaletę (IMHO) z ukrywania się szczegóły niskiego poziomu implementacji w języku C/Unix. Jeśli przychodzisz do mnie ze świata aplikacji, możesz nie być zaznajomiony z programowaniem systemowym, ale nauka koncepcji implementacji RDBMS w języku wysokiego poziomu, takim jak Java, może służyć jako dobry most do przejścia

Witryna Wiley pozwala kupić elektroniczną wersję książki, ale kod źródłowy jest dostępny bez względu na to, czy go kupisz.Nie mogę opublikować więcej niż dwóch linków, ale po prostu google tego terminu (w tym podwójne cytaty), a Ty łatwo odnajdziesz Sima Strona pleDB domu (gdzie można je pobrać):

„System Database SimpleDB”

Jeśli nie jesteś pewien zakupu książki (która podobnie jak inne książki core-CS, nie są tanie dla studentów); Prawdopodobnie można zacząć czytać kod i ten artykuł wprowadzający:

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

Jeśli okaże się ona atrakcyjna, kupując książkę może być dobrą inwestycją.

Nadzieję, że pomaga, Pozdrawiam.

Powiązane problemy