Здравствуйте. В целях образовательной задачи решил сделать простенькую СУБД.
Есть вопрос, кто нибудь может накидать материала о том, как хранятся данные в реляционных субд на жестком диске, прежде всего интересно каков будет формат файла(до собственной файловой системы руки еще не дошли)?
Здравствуйте, -n1l-, Вы писали:
N>Есть вопрос, кто нибудь может накидать материала о том, как хранятся данные в реляционных субд на жестком диске, прежде всего интересно каков будет формат файла(до собственной файловой системы руки еще не дошли)?
Здравствуйте, -n1l-, Вы писали:
N>Здравствуйте. В целях образовательной задачи решил сделать простенькую СУБД. N>Есть вопрос, кто нибудь может накидать материала о том, как хранятся данные в реляционных субд на жестком диске, прежде всего интересно каков будет формат файла(до собственной файловой системы руки еще не дошли)?
Здравствуйте, -n1l-, Вы писали:
N>Есть вопрос, кто нибудь может накидать материала о том, как хранятся данные в реляционных субд на жестком диске, прежде всего интересно каков будет формат файла(до собственной файловой системы руки еще не дошли)?
Классика жеж: Дж. Ульман, Системы Баз Данных. Полный Курс http://www.ozon.ru/context/detail/id/1351096/
Здравствуйте, -n1l-, Вы писали:
N>а где там про форматы файлов?
Там точно было про данные, которые в этих файлах хранятся, а формат из этого придумать — дело творческое )
N>Здравствуйте. В целях образовательной задачи решил сделать простенькую СУБД. N>Есть вопрос, кто нибудь может накидать материала о том, как хранятся данные в реляционных субд на жестком диске, прежде всего интересно каков будет формат файла(до собственной файловой системы руки еще не дошли)?
Непосредственно формат файла в СУБД не самое главное. Главное это алгоритмы: джоины (merge join, hash join), сортировки во внешней памяти (alpha sort например), как организуется crash recovery (double writes, checksums, Reed-Solomon, WAL), оптимизация запросов и cost model (System R), алгоритмы сжатия и структуры данных для хранения даных во внешней памяти (B-tree + вариации, LSM-tree), consurency control механизмы и тд и тп.
Наиболее полное собрание "сочинений" на эту тему: Joseph M. Hellerstein; Michael Stonebraker (2005). Readings in Database Systems. MIT Press.
System R хорошо описана в литературе, много всего можно найти.
Здравствуйте, ELazin, Вы писали: EL>Наиболее полное собрание "сочинений" на эту тему: Joseph M. Hellerstein; Michael Stonebraker (2005). Readings in Database Systems. MIT Press. EL>System R хорошо описана в литературе, много всего можно найти.
Мне ещё Гарсиа-Молина нравится, но говорят её уже не купишь.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, -n1l-, Вы писали:
N>Здравствуйте. В целях образовательной задачи решил сделать простенькую СУБД. N>Есть вопрос, кто нибудь может накидать материала о том, как хранятся данные в реляционных субд на жестком диске, прежде всего интересно каков будет формат файла(до собственной файловой системы руки еще не дошли)?
Рекомендую ознакомиться с https://technet.microsoft.com/en-us/library/cc280360(v=sql.105).aspx
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
N>Спасибо, а вы сами ее читали? Там английский как, сложный или можно разобраться?
Некоторые статьи оттуда прочитал, но далеко не все (это сборник научных статей, если что). Там объем очень большой. Я думаю многие из статей, вошедших в этот сборник, нетрудно найти online и прочитать.
Здравствуйте, -n1l-, Вы писали:
N>Здравствуйте. В целях образовательной задачи решил сделать простенькую СУБД. N>Есть вопрос, кто нибудь может накидать материала о том, как хранятся данные в реляционных субд на жестком диске, прежде всего интересно каков будет формат файла(до собственной файловой системы руки еще не дошли)?
Можно использовать B+ tree, поле в таблице будет предоставлять собой B+ типа BPlus<int32/int64, value>, где int32/int64 это OID записи, value тип поля, таблица будет представлять собой набор таких деревьев, соответственно индекс это B+ либо хэш но в обратную сторону <value, OID>, в литературе обычно узлы B+ дерева "затачивают" на количество максимальных/минимальных элементов для разделения и слияния, но можно плясать от заполненности листа в контексте файловой страницы, то есть лист (неважно внутренний или внешний) имеет максимальный размер например 8/16/64кб, это упрощает добавление "транзакционности", когда сущность "транзакция" работает исключительно с файловыми страницами, и относительно просто реализуются UNDO, REDO, COMMIT.
Ну это так маленький шажочек даже в простенькой реляционной СУБД.