Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.23;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.046 c
2-1144379306
031178
2006-04-07 07:08
2006.04.23
Delphi + Access


4-1139211321
Dush
2006-02-06 10:35
2006.04.23
TAPI


4-1139132728
Stealth
2006-02-05 12:45
2006.04.23
Запуск другого приложения из TMemoryStream...


15-1144085775
xayam
2006-04-03 21:36
2006.04.23
Cortona SDK 4.1


15-1144155290
LordOfRock
2006-04-04 16:54
2006.04.23
Тормоза при копировании с CD