Введение
В настоящее время информационные системы, применяющие базы данных, представляют собой одну из важнейших областей современных компьютерных технологий. С этой сферой связана большая часть современного рынка программных продуктов. Среди общих тенденций в развитии таких систем выделяются процессы интеграции и стандартизации, затрагивающие структуры данных и способы их обработки и интерпретации, системное и прикладное программное обеспечение, средства взаимодействия компонентов баз данных и многое другое. Современные системы управления базами данных (СУБД) основаны на реляционной модели представления данных — в большой степени благодаря простоте и четкости ее концептуальных понятий и строгого математического обоснования.
Неотъемлемая и важнейшая часть любой системы, применяющей базы данных, — языковые средства, обеспечивающие возможность доступа и действий над данными, определения их структур, способов использования и интерпретации. Язык SQL появился в 1970-е годы как одно из таких средств. Его прототип был разработан фирмой IBM и известен под названием SEQUEL (Structured English Query Language). SQL вобрал в себя достоинства реляционной модели, в частности достоинства лежащего в ее основе математического аппарата реляционной алгебры и реляционного исчисления, используя при этом сравнительно небольшое число операторов и относительно простой синтаксис.
Благодаря своим качествам язык SQL стал — вначале «де-факто», а затем и официально утвержденным в качестве стандарта — языком работы с реляционными базами данных. Этот стандарт поддерживается всеми ведущими мировыми фирмами, действующими в сфере технологий баз данных. Использование выразительного и эффективного стандартного языка позволило обеспечить высокую степень независимости разрабатываемых прикладных программных систем от конкретного типа используемой СУБД, существенно поднять уровень и унификацию инструментальных средств разработки приложений, работающих с реляционными базами данных.
Говоря о стандарте языка SQL, следует заметить, что большинство его коммерческих реализаций имеют некоторые, большие или меньшие, отличия от стандарта. Это, конечно, ухудшает совместимость систем, использующих различные «диалекты» SQL Но, с другой стороны, полезные расширения реализаций языка обеспечивают его развитие и со временем включаются в новые редакции стандарта. Учитывая место.занимаемое SQL в современных информационных технологиях, его знание необходимо любому специалисту, работающему в этой области.
Данное пособие в первую очередь предназначено преподавателям и студентам и ориентировано на обучение основам применения языка SQL по учебным курсам, связанным с изучением информационных систем, базирующихся на базах данных. В настоящее время такие курсы входят в учебные планы ряда университетских специальностей. С этой целью в пособии большое внимание уделялось подбору материала для примеров, а также задач и упражнений, необходимых для получения практических навыков составления SQL-запросов к базе данных. При этом в определениях и примерах приоритет отдавался простоте и доходчивости материала, возможно, с некоторым ущербом строгости его изложения. По этой же причине в пособие не вошли особенности языка, требующие более глубоких знаний о функционировании современных СУБД и информационных систем, изучение и использование которых имеет смысл только при условии получения навыков практического использования базовых конструкций языка. При изложении материала авторы по возможности старались, кроме специально оговоренных случаев, не отступать от стандарта языка SQL.
В приложении 1 пособия содержатся ответы на большинство приведенных в нем упражнений. Примеры и задачи упражнений протестированы с использованием СУБД Oracle и отечественной СУБД ЛИНТЕР. ЛИНТЕР представляет собой полномасштабный кросс-платформенный SQL-сервер, соответствующий основным мировым стандартам, предъявляемым к системам такого класса. Для некоммерческого использования учебным заведениям он предоставляется бесплатно. Более подробную информацию о системе можно получить на сайте компании РЕЛЭКС по адресу www.relex.ru.
В приложении 2 приведены тексты дополнительных задач по проектированию баз данных. Эти задачи могут использоваться в качестве тем курсовых работ и для самостоятельной работы студентов.
Авторы надеются, что пособие окажется полезным не только преподавателям и студентам, но и другим читателям, заинтересованным в получении начальных практических навыков использования языка SQL.