Внутренняя работа базы данных - PullRequest
8 голосов
/ 10 августа 2010

Может ли кто-нибудь порекомендовать мне четкую вводную статью о внутренней работе каждого элемента, составляющего систему базы данных:

  • файл против сервера (sqlite vs mysql)
  • как ядро ​​базы данных интегрируется в систему (MyISAM, InnoDB) и как MySql позволяет выбирать между 2
  • индексация
  • как обрабатывается запрос
  • как реализован SQL
  • и т.д.

Опционально с иллюстрациями и сравнениями между MySql, PosgreSql, Oracle, Access и т. Д.

===

Я ищу статьи с некоторыми техническими деталями и ключевыми словами. Информация, которую я ищу, может ответить на следующий вопрос: я хочу запрограммировать движок базы данных с нуля, и что теперь? С чего мне начать? Как перейти от чтения / записи параметров в INI-файле к отправке запросов на сервер SQL? Конечно, я не хочу программировать всю систему баз данных с нуля, просто руководство по проблемам, концепциям, советам по архитектуре и т. Д., Чтобы лучше использовать инструменты, с которыми я работаю. Заранее спасибо.

Ответы [ 4 ]

2 голосов
/ 10 августа 2010

Вот хороший курс из Стэнфордского университета.Вы можете просмотреть примечания к лекции, если вы хотите много деталей:

http://infolab.stanford.edu/~hyunjung/cs346/

1 голос
/ 10 августа 2010

Эта статья действительно помогла моему пониманию индексов.Я очень рекомендую прочитать это.

1 голос
/ 10 августа 2010

Это хорошая вводная статья со ссылками на более подробную информацию.

http://databases.about.com/od/specificproducts/a/whatisadatabase.htm

И, конечно же, Википедия всегда имеет хорошие новаторские объяснения, такие как это:

http://en.wikipedia.org/wiki/Database

КакНа самом деле, этот поиск в Google дал много результатов с информацией, о которой вы спрашиваете.

0 голосов
/ 10 августа 2010

Ясно?Нет. Все это материал для нескольких книг разных областей КС.Но вот ответы на некоторые из пунктов в любом случае:

файл против сервера (sqlite vs mysql)

Здесь нет существенной разницы.В конце оба движка используют файлы.Единственное отличие состоит в том, что для MySQL (обычно) любой запрос должен передаваться на сервер через какой-либо канал связи (будь то реальная сеть или просто локальный сокет), в то время как с Sqlite вы в значительной степени получаете прямой доступ к движку.

как ядро ​​базы данных интегрируется в систему (MyISAM, InnoDB) и как MySql позволяет выбирать между 2

Хорошей (достаточной) абстракцией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...