Как устроены базы данных?

Уже как месяц пытаюсь найти как устроена база данных, и ни как не могу подобрать ключевых слов что бы не найти это CREATE table, INSERT итд. т.е. непосредственно ее применение, и несколько хороших статей на хабе.
Как именно осуществляется расположение данных в реляционных баз данных, именно каким образом происходит вставка данных и их мгновенный поиск, это типа контроль offset-ов, т.е. как я догадываюсь, для таблицы users (u id : integer, name:varchar(32), pass:varchar(32) ), поиск по id осуществляется по baseOffset(позиция начала первой строки таблицы) , length= длинна одной строки, т.е. 4+32*2+32*2 = 132. И поиск по id будет примерно таким [ baseOffset+ i * 132 ] , а на данные динамических типов типа Text, ссылаются ссылки с указанием их расположения и offset-a. Правильно ли я догадываюсь.
  • Вопрос задан
  • 1263 просмотра
Пригласить эксперта
Ответы на вопрос 4
DDDsa
@DDDsa
Вот хорошая статья (англ)
Ответ написан
То, что вы ищете, называется физической моделью базы данных. Можете так и гуглить, в том числе добавляя слово "реляционной".

Вот в этой книжке (перевод: "Системы баз данных. Полный курс") открываете раздел Database System Implementation и первые два позраздела - Secondary Storage Management и Index Structures и вперёд.
Ответ написан
Комментировать
Melkij
@Melkij
PostgreSQL DBA
4+32*2+32*2 = 132

Мне даже интересно, с чего вы придумали умножить именно на 2. Я честно не знаю распространённых кодировок фиксированной двухбайтной ширины. Обычно речь или про ворох однобайтовых или кодировки переменной длины.

Поиск по смещению в датафайле - да, применяется. Но не имеет в общем случае ровно ничего общего со структурой таблицы уровня SQL.

Например, краткий взгляд на internals postgresql: momjian.us/main/writings/pgsql/internalpics.pdf
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы