Я не собираюсь давать уроки по синтаксису и терминологии SQL. Существует множество книг и ресурсов в Интернете, содержащих базовые сведения. Я предполагаю, что читатели уже изучили синтаксис SQL в достаточной мере, чтобы пользоваться языком и выполнять определенную работу по программированию. Для многих из тех, кто занимается разработкой приложений на основе баз данных, особенно в Интернете, важны производительность, масштабируемость и оптимизация. Существуют книги, посвященные конкретно вопросам производительности в отношении программирования баз данных. В этой области я рекомендую «SQL Performance Tuning* [9] и второе издание «High Performance MySQL* [15]. И если некоторые из разделов моей книги касаются вопросов производительности, то основное внимание здесь уделяется не этому.
Я пытаюсь представить здесь случаи, которые характерны для любых баз данных, а также решения, которые должны работать с базами данных любых производителей. Язык SQL определяется как стандарт Американского национального института стандартов (ANSI) и Международной организации по стандартизации (ISO). Эти стандарты поддерживаются всеми известными базами данных, так что во всех случаях я описываю использование SQL без привязки к конкретной разработке и пытаюсь явно указывать на расширения SQL конкретного разработчика.
Инфраструктуры доступа к данным и библиотеки объектно-реляционных соответствий служат полезными инструментами, но они не являются основным предметом рассмотрения в данной книге. Большинство примеров программного кода написано мной на РНР и, по возможности, без излишних усложнений. Примеры достаточно просты, чтобы быть реализованными в равной степени в большинстве языков программирования.
Администрирование баз данных и рабочие задачи, такие как масштабирование, установка и конфигурирование сервера, мониторинг, создание резервных копий, анализ журналов и безопасность, являются важными и заслуживают отдельной книги. Однако целевой аудиторией этой книги, на мой взгляд, являются не администраторы баз данных, а в большей степени, разработчики, пользующиеся языком SQL.
В этой книге описываются SQL и реляционные базы данных, а не альтернативные технологии, такие как объектноориентированные базы данных, хранилища пар «ключ-значение», базы данных, ориентированные на обработку столбцов, базы данных, ориентированные на обработку документов, иерархические базы данных, сетевые базы данных, оболочки систем предварительной обработки данных и хранилища семантических данных. Сравнение достоинств и недостатков, а также описание надлежащих применений этих альтернативных решений для управления данными представляло бы интересную задачу, однако это тема для совсем другой книги. |