|
Программирование >> Руководство по sql
руководство по sql Язык SQL пырос из языков баз данных, известных только компьютерным специалистам, в широко используемый мировой стандарт индустрии ПК. Число SQL-92-совместимых баз данных увеличивается с каждым годом и сегодня, наверное, достигло миллиона. Если вы получаете какую-либо информацию из Internet или из внутренних сетей, то почти с полной уверенностью можно сказать, что в этом принимает участие SQL. Однако то, что сегодня кажется столь очевидным, было таким далеко не всегда. В начале эры реляционных баз данных, когда SQL только разрабатывался в исследовательской лаборатории IBM, я участвовал в создании языка управления базами данных, который должен был стать конкурентом SQL. Наш язык, в отличие от SQL, мог обрабатывать более сложные запросы, но был труднее в изучении. Спустя семь лет, в течение которых на основе нашего языка были разработаны два готовых программных продукта, я стал полным сторонником языка SQL. Причина того тривиальна: язык SQL достаточно мощен и прост в изучении, постоянно улучшается и, что наиболее важно, поддерживается всеми поставщиками систем управления базами данных. Именно поэтому свою третью профамму (для Sybase) я уже написал на языке SQL. Не следует также забывать, что предыдущее поколение баз данных было нереляционным и каждая база данных использовала свой собственный язык. Поэтому разработка приложений для них требовала больших финансовых расходов, и переход на новую базу данных всегда был суровым испытанием и для пользователей, и для программистов. Сегодня все существующие системы управления базами данных (СУБД) поддерживают язык SQL. Кроме того, с помощью специальных трансляторов SQL, которые соединяют данные из разных баз данных, можно получить доступ и к устаревшим базам данных. В системах типа клиент/сервер доступ к базам данных также осуществляется на основе SQL. Поэтому знание языка SQL сегодня просто необходимо, независимо от того, какую СУБД вы используете. Принимая во внимание академическое происхождение SQL, можно понять, почему для многих людей SQL и реляционные базы данных являются чем-то непостижимым. Термины типа нормальные формы , корреляционные переменные и ссылочная целостность совершенно не проясняют заложенный в них абсолютно простой смысл. Поэтому процесс управления базой данных может показаться чем-то из области высшей математики, доступным только высокоученым специалистам. Несмотря на ряд заложенных в его основу упрощений, SQL - очень мощный язык. Эта мощность иногда может привести к результатам, весьма неожиданным даже для профессионалов. Семь лет назад, например, я принимал участие в сравнительном тестировании ряда СУБД различных производителей. Все проходило нормально, но однажды мы в течение шести часов ожидали результата SQL-запроса, He-SQL-аналог которого на других системах выполнялся всего за несколько минут. Мы терялись в догадках и не могли понять, как такое вообще может быть, пока кто-то не предложил нам сформулировать свой запрос к базе данных на обычном человеческом языке. В результате до нас дошло, что правая скобка в запросе стоит не на том месте. После исправления запрос выполнился меньше, чем за минуту. Никогда не забывайте, что реляционные языки более чувствительны к ошибкам в расстановке скобок, чем FORTRAN. Книга Практическое руководство по SQL позволит вам избежать подобных ошибок и сэкономит вам много нервов и времени. Работая с реляционными базами данных с 1976 года, я с удовольствием прочитал Практическое руководство по SQL. В нем описывается не только сам язык SQL, но и рассматриваются общие вопросы построения баз данных и нормализации, причем в соответствии с названием, именно с практической точки зрения. Многочисленные примеры в Практическом руководстве по SQL проясняют важность объясняемых понятий. Например, вам станет ясно, что при соблюдении ссылочной целостности вы не сможете заказать несуществующий товар или обратиться к несуществующему пользователю, другими словами, вашу базу данных нельзя будет поставить на колени . Кроме того, Практическое руководство по SQL подготовит вас к будущему. SQL не является мертвым языком, разработчики СУБД постоянно расширяют его возможности, которые со временем становятся общепринятыми стандартами. Многие изменения связаны с необходимостью разработки чрезвычайно сложных систем, в которых ведущую роль играют именно базы данных. Расширения SQL, упрощающие администрирование баз данных, особенно важны в системах типа клиент/сервер, в которых персональные компьютеры и рабочие станции общаются с СУБД по сети. В книге Практическое руководство по SQL описаны некоторые из таких расширений, в частности язык Transact-SQL, созданный компанией Sybase для своих систем SQL Server и SQL Anywhere. Наконец, эта книга может послужить прекрасным введением в SQL как для новичков, так и для имеющих некоторый опыт работы с СУБД. Роберт Эпштейн (Robert Epstein) Исполнительный вице-президент Sybase, Inc. Предисловие ко второму и третьему изданиям ПОЧЕМУ НОВОЕ ИЗДАНИЕ Многое изменилось с момента выхода в свет этой книги в 1989 году, включая и SQL. Он вырос во всех отношениях - как в количестве пользователей, так и в количестве новых команд. Реляционные базы данных сегодня переживают эпоху своего расцвета. Когда мы готовили первое издание Практического руководства по SQL, ANSI (American National Standards Institute - Американский национальный институт стандартов) предложил стандарт SQL 1986. ISO (International Standards Organization - Международная организация по стандартизации) одобрила его в 1987 году. Этот стандарт был максимально упрощен, не учитывал целый ряд предложений поставщиков коммерческих баз данных и продержался до 1989 года. Стандарт 1989 года учел некоторые пожелания, но все равно в нем отсутствовали многие важные элементы. На практике в это время стандарты устанавливались de facto: каждый поставщик фактически закрывал глаза на то, чем занимались другие поставщики, стараясь просто переманить или привлечь новых пользователей, рекламируя предоставляемые им новые удобные возможности и не заботясь при этом о какой-либо совместимости. Поэтому тогда мы просто оставили эти разные стандарты на суд специалистов и сконцентрировались на общих принципах SQL. Нашей целью было помочь непрофессионалу разобраться в имеющихся тогда разновидностях SQL. Стандарт ANSI 1992 года (часто называемый SQL2 или SQL-92) отражает новый этап в развитии SQL. Он значительно полнее стандарта 1989 года - его описание в четыре раза больше описания предыдущей версии. Кроме того, он был практически полностью одобрен коммерческими поставщиками СУБД. Таким образом, удалось в основном примирить промышленные стандарты и стандарты ANSI/ISO. Однако принятие и внедрение стандартов не происходит мгновенно. Между различными реализациями SQL все еще могут быть достаточно значительные различия. Поэтому, прежде чем изучать конкретную реализацию, просто необходимо разобраться в основах SQL. ВТОРОЕ ИЗДАНИЕ Изучая литературу, доступную пользователям SQL в 1993 году, мы обнаружили явную нехватку практических рекомендаций по использованию языка. К этому времени уже было достаточно книг, описывающих конкретные реализации, и книг, рассматривающих общие вопросы SQL. Общаясь с новыми пользователями SQL, мы не раз слышали, что им хотелось бы изучать SQL на практических примерах, на основе которых можно было бы создавать свои собственные системы. Поэтому во второе издание были включены две новые главы, содержащие конкретные примеры использования SQL. Кроме того, были устранены неточности, замеченные в первом издании. Глава 11 Разрешение проблем в основном содержит ответы на вопросы, заданные нашими читателями через USENET. Мы отвечали на них, используя простую базу данных bookbiz- Эта глава содержит примеры по организации форматированного вывода результатов, поиску данных, работе с запросами, использованию предложения GROUP BY и индексированию. Несколько примеров были выделены в отдельную категорию. Они не столько отражают решение определенной задачи, сколько описывают характерные ошибки. Эти примеры собраны в главе 12 Ошибки, и как их избежать .
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |