SQL за 24 часа
1-й час Добро пожаловать в мир SQL
Добро пожаловать в мир SQL и в обширный, но постоянно растущий мир бизнеса, основанного на использовании технологий баз данных. Прочитав эту книгу, вы получите знания, которые вскоре станут просто необходимыми для выживания в современном мире реляционных баз данных и управления ими. К сожалению, поскольку сначала необходимо разобраться с основами SQL и определить некоторые понятия, которые вам понадобятся в дальнейшем, этот урок представлен почти сплошным текстом. Смиритесь с этим, ведь приведенный здесь "скучный материал" непременно окупится сторицей.
Основными на этом уроке будут следующие темы.
• Введение в SQL и краткая история SQL
• Введение в системы управления базами данных
• Обзор основных терминов и понятий
• Обзор базы данных, используемой в данной книге
В любом бизнесе имеются данные, что в свою очередь требует создания некоторого организованного метода или механизма управления этими данными. Такой механизм принято называть системой управления базами данных (СУБД). Системы управления базами данных используются уже много лет, многие из них вышли из использовавшихся еще на мэйнфреймах систем плоских файлов. Основываясь на современных технологиях, доказавшие свою пользу системы управления базами данных начали развиваться в других направлениях, отвечая требованиям растущего бизнеса, все возрастающих объемов корпоративных данных и, конечно же, технологий, связанных с Internet.
Современная волна информационных технологий управления основывается на использовании систем управления реляционными базами данных (СУРБД), которые являются развитием традиционных СУБД. Реляционные базы данных и технологии клиент/сервер являются типичной комбинацией, позволяющей современным компаниям успешно обрабатывать данные и оставаться конкурентоспособными в своих секторах рынка. В следующих разделах мы обсудим реляционные базы данных и технологию клиент/сервер подробнее, чтобы предоставить вам более прочную основу для использования стандартного языка реляционных баз данных - SQL.
SQL - язык структурированных запросов - является стандартным языком управления реляционными базами данных. Его прототип был разработан фирмой IBM на основе идей, изложенных в статье д-ра Кодда (Е. F. Codd) "Реляционная модель данных для больших банков данных общего пользования". Немногим позже появления прототипа IBM, в 1979 году, на рынке появился первый продукт SQL под названием ORACLE, который был выпущен компанией Relational Software, Incorporated (впоследствии переименованной в Oracle Corporation). Сегодня эта компания является одним из выдающихся лидеров в области реализации технологий реляционных баз данных. SQL можно произносить либо по буквам - S-Q-L, либо как "сиквэл" (sequel) - оба произношения приемлемы.
Когда вы отправляетесь в другую страну, вам может понадобиться язык той страны, в которую вы едете. Например, без знания языка у вас могут возникнуть трудности с заказом блюд из меню в ресторане, если окажется, что официант не понимает никаких других языков, кроме своего родного. Представляйте себе базу данных как чужую страну, в которой вам необходимо отыскать нужную информацию. Подобно заказу блюда из меню в ресторане другой страны, вы должны сформулировать свое требование нужной информации из базы данных в виде запроса, используя SQL.
Американский национальный институт стандартов (ANSI) представляет собой организацию, которая устанавливает и внедряет стандарты в самых разных отраслях производства. SQL, ставший фактически стандартным языком в области управления базами данных, сначала был утвержден таковым в 1986 году на основе реализации IBM. В 1987 году стандарт ANSI SQL был принят в качестве международного стандарта Международной организацией стандартов (ISO). Этот стандарт был вновь пересмотрен в 1992 году и получил название SQL/92. Самый новый на сегодня стандарт называется SQL3 и иногда на него ссылаются как на SQL/99.
SQL3 состоит из пяти взаимосвязанных документов и предполагается, что в ближайшем будущем к ним могут быть добавлено еще несколько. Вот эти пять взаимосвязанных частей стандарта.
• Часть 1 - SQL/Структура (SQL/Framework) - определяет общие требования соответствия и фундаментальные понятия SQL.
• Часть 2 - SQL/Основы (SQL/Foundation) - определяет синтаксис и операции SQL.
• Часть 3 - SQL/Интерфейс вызовов (SQL/Call-Level Interface) - определяет интерфейс программного взаимодействия приложений с SQL.
• Часть 4 - SQL/'Встроенные модули (SQL/Persistent Stored Modules) - определяет управляющие структуры, лежащие в основе SQL-программ. Часть 4 определяет и модули, содержащие SQL-программы.
• Часть 5 - SQL/Языковая привязка к серверу (SQL/Host Language Bindings) - определяет возможности встраивания операторов SQL в приложения, созданные на основе стандартных языков программирования.
Этот новый стандарт ANSI (SQL3) позволяет использовать два минимальных уровня взаимодействия, которые может объявить СУБД - это поддержка ядра SQL (Core SQL Support) и поддержка расширенного SQL (Enhanced SQL Support).
ANSI расшифровывается как American National Standards Institute (Американский Национальный институт стандартов). Этот институт представляет собой организацию, ответственную за внедрение стандартов на самые разные продукты и концепции.
Каждый новый стандарт несет в себе не только множество преимуществ, но и некоторые неудобства. Прежде всего, стандарт направляет производителей по определенному руслу развития - в случае SQL, - обеспечивая базовый каркас из основных понятий, что в конце концов обеспечивает согласованность между различными реализациями и лучшую переносимость (не только для программ управления базами данных, но и для баз данных в целом, а также для тех людей, кто управляет базами данных).
Некоторые возразят, что стандарт сам по себе не так уж и хорош, поскольку он ограничивает гибкость и потенциальные возможности каждой конкретной реализации. Но ведь большинство производителей, которые подчинились стандарту, добавили в свои реализации дополнительные по сравнению со стандартом SQL возможности, нивелирующие недостатки стандарта.
В совокупности всех преимуществ и недостатков стандарт оказывается благом. Стандарт требует присутствия ряда возможностей во всякой полной реализации SQL и определяет базовые понятия, которые не только навязывают согласованность между всеми конкурирующими реализациями SQL, но и повышают ценность программистов, использующих SQL, и квалифицированных пользователей баз данных на современном рынке управления базами данных.
Реализация SQL - это SQL-продукт конкретного производителя.
Грубо говоря, база данных - это просто некоторая совокупность данных. Некоторые предпочитают представлять себе базу данных как некий организованный механизм, способный хранить информацию, посредством которого пользователь может эту информацию извлечь эффективным и полезным для себя образом.
Люди используют базы данных ежедневно, даже не подозревая об этом. Например, базой данных оказывается телефонная книга. Содержащиеся в ней данные состоят из имен, адресов и телефонных номеров. Соответствующие списки либо упорядочены по алфавиту, либо индексированы, что позволяет пользователю без особых усилий найти нужного ему абонента Эти же данные хранятся где-то в виде базы данных и на компьютере. Ведь в конце концов страницы телефонной книги не перепечатываются каждый год вручную заново, когда выходит ее новое издание!
Базу данных необходимо время от времени обновлять. В соответствии с переездами владельцев телефонов, записи в базу данных приходится добавлять или, наоборот, удалять из нее. Точно также необходимо вносить в базу данных изменения, когда люди меняют имена, адреса, телефонные номера и т. д. Пример структуры простой базы данных показан на рис. 1.1.