Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.04.23;
Скачать: [xml.tar.bz2];

Вниз

Написание собственной базы данных   Найти похожие ветки 

 
Climber   (2006-03-28 00:45) [0]

Господа, коварными преподователями поставленна задача, написать собственную базу данных на Делфи. В частности, создание таблиц с возможностью указания индексов. И так же, интерфейс, через который можно делать запросы и изменять данные в созданных таблицах. Причем индексы нужно реализовать через AVL tree (сбалансированное дерево). То есть, это должна быть именно собственная база данных.
  По этому поводу пребываю в растерянности, каким образом и с чего начать. Особенно озадачивает написание индексов и как их сохранять.    Премного буду благодарен, если кто поможет советом.


 
Sergey13 ©   (2006-03-28 08:59) [1]

2Climber   (28.03.06 00:45)
>Премного буду благодарен, если кто поможет советом.
Разберись с "коварными преподователями". ИМХО, ты не понял их коварного замысла.


 
Serg1981 ©   (2006-03-28 09:06) [2]

http://www.sybex.com/WileyCDA/SybexTitle/productCd-078214201X,navId-290584,pageCd-resources.html


 
Рамиль ©   (2006-03-28 09:09) [3]


> Climber   (28.03.06 00:45)  

А теорию вам читали? Если да, для написания простенькой СУБД вполне достаточно лекций, если думалку включить:)


 
tesseract ©   (2006-03-28 09:44) [4]


> через AVL tree (сбалансированное дерево). То есть, это должна
> быть именно собственная база дан

А чем B-trieve  не устраивает?
Пример реализации - flashfiler, Advandage. Всё на delphi и opensource.

Алгоритмы реализации различных деревьев есть в "Фундаментальные алгоритмы и типы данных на Delphi". От turbopower


 
palva ©   (2006-03-28 10:03) [5]

Если хранить дерево АВЛ в оперативной памяти, и не заниматься его подкачкой с диска, то все становится довольно просто.

Начинать надо с метода хранения двоичных деревьев в памяти, научиться добавлять и удалять узлы, а потом реализовать балансировку АВЛ.

АВЛ это Адельсон-Вельский и Ландис - всё наши ребята. Так что их лучше писать по-русски. Ландис у нас даже ур-ч-п читал.


 
Бугага ©   (2006-03-28 10:52) [6]

Господа, коварными преподователями поставленна задача, написать собственную базу данных на Делфи.

Вот сволочи! :) Что они замышляют?


 
Jeer ©   (2006-03-28 11:22) [7]


> АВЛ это Адельсон-Вельский и Ландис - всё наши ребята.


http://www.adelson.ru/

Ершовский Архив
http://ershov.iis.nsk.su/archive/eacard.asp?pplid=372

Кнут
http://ershov.iis.nsk.su/archive/eaimage.asp?lang=1&did=12297&fileid=122316

Каисса
http://itblogs.ru/blogs/donskoy/archive/2005/11/11/3309.aspx


 
ArtemESC ©   (2006-03-28 11:28) [8]

В книге Рода Стивенса "Готовые алгоритмы" написано что
       AVL -деревья изобрели Адельсон-Вельский и Ландау!!!


 
Torry ©   (2006-03-28 13:49) [9]

To tesseract:


> А чем B-trieve  не устраивает?
> Пример реализации - flashfiler, Advandage. Всё на delphi
> и opensource.


Я думаю, имелся в виду не Btrieve, а B-tree все-таки? :-)


 
MBo ©   (2006-03-28 14:02) [10]

>ArtemESC ©   (28.03.06 11:28) [8]
>В книге Рода Стивенса "Готовые алгоритмы" написано что    AVL -деревья изобрели Адельсон-Вельский и Ландау!!!

Врут переводчики безбожно.

Вот в Кормене упоминается, что некий алгоритм изобретен "в 1954 г. Г.Хоппером", хотя очевидно, что это дама - Грейс Хоппер, матушка Фортрана.


 
tesseract ©   (2006-03-29 09:12) [11]


> Я думаю, имелся в виду не Btrieve, а B-tree все-таки? :-
> )


Именно он. Самая распространённая версия самобалансируюшихся деревьев :-)


 
Jeer ©   (2006-03-29 10:42) [12]

tesseract ©   (29.03.06 09:12) [11]

Вообще-то Btrieve - это СУБД, использующая для организации индексов сбалансированные B-деревья


 
Climber   (2006-03-29 23:29) [13]

Комарады, всем большое спасибо за помощь :)


 
Climber   (2006-03-29 23:52) [14]

Имелсось ввиду именно B - tree, самобалансирующиеся деревья


 
Climber   (2006-03-29 23:58) [15]

Понимаете в чем проблема: я создаю описания таблиц и сохраняю их в файлах.
  Потом, в окне запросов, делаю например "Select", так вот, индексы с данными для каждой таблицы лежат в отдельных файлах. И что, получается что каждый раз как нужно делать запрос или инсерт, надо будет загружать весь индекс с диска в память и только после этого производить поиск. Нехорошо это как-то.


 
Climber   (2006-03-30 00:01) [16]

например, сял сервер, каким образом он использует индексы? Не держит же он их всех с данными в памяти, но и каждый раз когда делается запрос тоже думаю все это не загружает в память.


 
Climber   (2006-03-30 00:01) [17]

например, SQL-Server, каким образом он использует индексы? Не держит же он их всех с данными в памяти, но и каждый раз когда делается запрос тоже думаю все это не загружает в память.


 
tesseract ©   (2006-03-30 09:55) [18]


> например, SQL-Server, каким образом он использует индексы?
>  Не держит же он их всех с данными в памяти, но и каждый
> раз когда делается запрос тоже думаю все это не загружает
> в память.


Кэширование. Хранимые процедуры сильно его упращают.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2006.04.23;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.012 c
2-1144747235
VAZMan
2006-04-11 13:20
2006.04.23
Options


2-1144223180
Daimyo
2006-04-05 11:46
2006.04.23
помогите выбрать БД


8-1132228825
CondAL
2005-11-17 15:00
2006.04.23
проиграть события в midi файлах


15-1143740118
xayam
2006-03-30 21:35
2006.04.23
VMWare 5.5


2-1144326365
RomanH
2006-04-06 16:26
2006.04.23
IBTable или Table





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский