Программирование >>  Неопределенные и пропущенные значения 

[ 1 ] 2 3 4 ... 14


Неопределенные и пропущенные данные

В настоящее время информационные системы, применяющие базы данных, представляют собой одну из важнейших областей современных компьютерных технологий. С этой сферой связана большая часть современного рынка программнхх продуктов. Среди общих тенденций в развитии таких систем выделяются процессы интеграции и стандартизации, затрагивающие структуры данных и способы их обработки и интерпретации, системное и прикладное программное обеспечение, средства взаимодействия компонентов баз данных и многое другое. Современные системы управления базами данных (СУБД) основаны на реляционной модели представления данных - в большой степени благодаря простоте и четкости ее концептуальных понятий и строгого математического обоснования.

Неотъемлемая и важнейшая часть любой системы, применяющей базы данных, - языковые средства, обеспечивающие возможность доступа и действий над данными, определения их структур, способов использования и интерпретации. Язык SQL появился в 1970-е годы как одно из таких средств. Его прототип был разработан фирмой IBM и известен под названием SEQUEL (Structured English Query Language). SQL вобрал в себя достоинства реляционной модели, в частности достоинства лежащего в ее основе математического аппарата реляционной алгебры и реляционного исчисления, используя при этом сравнительно небольшое число операторов и относительно простой синтаксис.

Благодаря своим качествам язык SQL стал - вначале де-факто , а затем и официально утвержденным в качестве стандарта - языком работы с реляционными базами данных. Этот стандарт поддерживается всеми ведущими мировыми фирмами, действующими в сфере технологий баз данных. Использование выразительного и эффективного стандартного языка позволило обеспечить высокую степень независимости разрабатываемых прикладных программных систем от конкретного типа используемой СУБД, существенно поднять уровень и унификацию инструментальных средств разработки приложений, работающих с реляционными базами данных.

Говоря о стандарте языка SQL, следует заметить, что большинство его коммерческих реализаций имеют некоторые, большие или меньшие, отличия от стандарта. Это, конечно, ухудшает совместимость систем, использующих различные диалекты SQL. Но, с другой стороны, полезные расширения реализаций языка обеспечивают его развитие и со временем включаются в новые редакции стандарта. Учитывая место,

занимаемое SQL в современных информационных технологиях, его знание необходимо любому специалисту, работающему в этой области.

Данное пособие в первую очередь предназначено преподавателям и студентам и ориентировано на обучение основам применения языка SQL по учебным курсам, связанным с изучением информационных систем, базирующихся на базах данных. В настоящее время такие курсы входят в учебные планы ряда университетских специальностей. С этой целью в пособии большое внимание уделялось подбору материала для примеров, а также задач и упражнений, необходимых для получения практических навыков составления SQL-запросов к базе данных. При этом в определениях и примерах приоритет отдавался простоте и доходчивости материала, возможно, с некоторым ущербом строгости его изложения. По этой же причине в пособие не вошли особенности языка, требующие более глубоких знаний о функционировании современных СУБД и информационных систем, изучение и использование которых имеет смысл только при условии получения навыков практического использования базовых конструкций языка. При изложении материала авторы по возможности старались, кроме специально оговоренных случаев, не отступать от стандарта языка SQL.

В приложении 1 пособия содержатся ответы на большинство приведенных в нем упражнений. Примеры и задачи упражнений протестированы с использованием СУБД Oracle и отечественной СУБД ЛИНТЕР. ЛИНТЕР представляет собой полномасштабный кросс-платформенный SQL-сервер, соответствующий основным мировым стандартам, предъявляемым к системам такого класса. Для некоммерческого использования учебным заведениям он предоставляется бесплатно. Более подробную информацию о системе можно получить на сайте компании РЕЛЭКС по адресу www.relex.ru.

В приложении 2 приведены тексты дополнительнхх задач по проектированию баз данных. Эти задачи могут использоваться в качестве тем курсовых работ и для самостоятельной работы студентов.

Авторы надеются, что пособие окажется полезным не только преподавателям и студентам, но и другим читателям, заинтересованным в получении начальных практических навыков использования языка SQL.



Основные понятия и определения

1.1.

Основные понятия реляционных баз данных

Основой современнгх систем, применяющих базы данных, является реляционная модель данных. В этой модели даннхе, представляющие информацию о предметной области, организован! в виде двухмернхх таблиц, назхваемгх отношениями. На рисунке 1 приведен пример такой таблицы-отношения и поясняются основные термины реляционной модели.


Значение атрибута

Рис. 1. Пример таблицы-отношения реляционной базы данных

Отношение - это таблица, подобная приведенной на рисунке 1 и состоящая из строк и столбцов. Верхняя строка табли-ц1-отношения называется заголовком отношения. Терминах отношение и таблица обхчно употребляются как синонимы, однако в языке SQL используется термин таблица.

1.1. Основные понятия реляционн1х баз данн1х

Строки таблицы-отношения назхваются кортежами, или записями. Столбцах называются атрибутами. Термины - атрибут, столбец, колонка, поле - обычно используются как синонимы. Кажд1й атрибут имеет имя, которое должно быть уникальным в конкретной таблице-отношении, однако в разных таблицах имена атрибутов могут совпадать.

Количество кортежей в таблице-отношении называется кардинальным числом отношения, а количество атрибутов - степенью отношения.

Ключ, или первичный ключ отношения - это уникальный идентификатор строк (кортежей), то есть такой атрибут (набор атрибутов), для которого в любой момент времени в отношении не существует строк с одинаковыми значениями этого атрибута (набора атрибутов). На приведенном рисунке таблицы ячейка с именем ключевого атрибута имеет нижнюю границу в виде двойной черты.

Домен отношения - это совокупность значений, из которых могут выбираться значения конкретного атрибута. То есть конкретный набор имеющихся в таблице значений атрибута в любой момент времени должен быть подмножеством множества значений домена, на котором определен этот атрибут. В общем случае на одном и том же домене могут быть определены значения разных атрибутов. Важным является то, что домены вводят ограничения на операции сравнения значений различнхх атрибутов. Эти ограничения состоят в том, что корректным образом можно сравнивать между собой только значения атрибутов, определенных на одном и том же домене.

Отношения реляционной базы данных обладают следующи-свойствами:

в отношениях не должно быть кортежей-дубликатов,

кортежи отношений не упорядочены,

атрибуты отношений также не упорядочены. Из этих свойств отношения вгтекают важные следствия.

Уникальность кортежей определяет, что в отношении всегда имеется атрибут или набор атрибутов, позволяющих идентифицировать кортеж, другими словами, в отношении всегда есть первичный ключ.



1. Основные понятия и определения

1.4. Составные части SQL

Неупорядоченность кортежей приводит к тому, что, во-первых, в отношении не существует другого способа адресации кортежей, кроме адресации по ключу, а во-вторых - в отношении не существует таких понятий, как первый кортеж, последний, предыдущий, следующий и т.д.

Неупорядоченность атрибутов определяет, что единственным способом их адресации в запросах является использование наименования атрибута.

Относительно свойства реляционного отношения, касающегося отсутствия кортежей-дубликатов, следует сделать важное замечание. В этом пункте SQL не полностью соответствует реляционной модели. А именно: в отношениях, являющихся результатами запросов, SQL допускает наличие одинаковых строк. Для их устранения в запросе используется ключевое слово DISTINCT (см. ниже).

Информация в реляционных базах данных, как правило, хранится не в одной таблице-отношении, а в нескольких. При создании нескольких таблиц взаимосвязанной информации появляется возможность выполнения более сложных операций с данными, то есть более сложной их обработки. Для работы со связанными данными из нескольких таблиц важным является понятие так называемых внешних ключей.

Внешним ключом таблицы называется атрибут (набор атрибутов) этой таблицы, каждое значение которого в текущем состоянии таблицы всегда совпадает со значением атрибутов, являющихся ключом, в другой таблице. Внешние ключи используются для связывания значений атрибутов из разных таблиц. С помощью внешних ключей обеспечивается так называемая ссылочная целостность базы данных, то есть согласованность данных, описывающих одни и те же объект!, но хранящихся в разных таблицах.

1.2. Отличие SQL от процедурных языков программирования

SQL относится к классу непроцедурных языков программирования. В отличие от универсальных процедурных языков, которые также могут быть использованы для работы с базами данных, SQL ориентирован не на записи, а на множества.

Это означает следующее: в качестве входной информации для формулируемого на языке SQL запроса к базе данных используется множество кортежей-записей одной или нескольких таблиц-отношений. В результате выполнения запроса также образуется множество кортежей результирующей таблицы-отношения. Другими словами, в SQL результатом любой операции над отношениями также является отношение. Запрос SQL задает не процедуру, то есть последовательность действий, необходимых для получения результата, а условия, которым должны удовлетворять кортежи результирующего отношения, сформулированные в терминах входного (или входных) отношения.

1.3. Интерактивный и встроенный SQL

Существуют и используются две формы языка SQL: интерактивный sQl и встроенный SQL.

Интерактивный SQL используется для задания SQL-запросов пользователем и получения результата в интерактивном режиме.

Встроенный SQL состоит из команд SQL, встроенных внутрь программ, обычно написанных на каком-то другом языке (Паскаль, С, C++ и др. ). Это делает программы, использующие такие языки, более мощными, гибкими и эффективными, обеспечивая их применение для работы с данными, хранящимися в реляционных базах. При этом, однако, требуются дополнительные средства интерфейса SQL с языком, в который он встраивается.

Данная книга посвящена интерактивному SQL, поэтому в ней не обсуждаются вопросы построения интерфейса, позволяющего связать SQL с другими языками программирования.

1.4.

Составные части SQL

И интерактивный, и встроенный SQL подразделяются на следующие составные части.

Язык определения данных - DDL (Data Definition Language) - дает возможность создания, изменения и удаления различных объектов базы данных (таблиц, индексов, пользователей, привилегий и т.д.).



[ 1 ] 2 3 4 ... 14

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика