Помощь в написании студенческих работ
Антистрессовый сервис

Теоретическая часть. 
Использование SQL в прикладном программировании

РефератПомощь в написанииУзнать стоимостьмоей работы

Индексы могут быть первичными и вторичными. Например, первичным индексом могут служить поля, отмеченные при создании базы данных как ключевые. А вторичные индексы могут создаваться из других полей как в процессе создания самой базы данных, так и позднее в процессе работы с ней. Вторичным индексам присваиваются имена — Идентификаторы, по которым их можно использовать. Если индекс включает в себя… Читать ещё >

Теоретическая часть. Использование SQL в прикладном программировании (реферат, курсовая, диплом, контрольная)

Основные понятия

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

Таблицу можно представлять себе как обычную двумерную таблицу с характеристиками (атрибутами) какого-то множества объектов. Таблица имеет имя — идентификатор, по которому на нее можно сослаться.

Столбцы таблицы соответствуют тем или иным характеристикам объектов — полям. Каждое поле характеризуется именем и типом хранящихся данных. Имя поля — это идентификатор, который используется в различных программах для манипуляции данными. Это имя записывается латинскими символами. Тип поля характеризует тип хранящихся в поле данных. Это могут быть строки, числа, булевы значения, большие тексты, изображения и т. п.

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

При построении таблиц баз данных важно обеспечивать непротиворечивость информации. Обычно это делается введением ключевых полей — обеспечивающих уникальность каждой записи. Ключевым может быть одно или несколько полей.

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

При работе с таблицей пользователь или программа как бы скользит курсором по записям. В каждый момент времени есть некоторая текущая запись, с которой и ведется работа. Записи в таблице базы данных физически могут располагаться без какоголибо порядка, просто в последовательности их ввода в базу. Но когда данные таблицы предъявляются пользователю, они должны быть упорядочены. Для упорядочивания данных используется понятие индекса. Индекс показывает, в какой последовательности желательно просматривать таблицу. Он является как бы посредником между пользователем и таблицей.

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

Индексы могут быть первичными и вторичными. Например, первичным индексом могут служить поля, отмеченные при создании базы данных как ключевые. А вторичные индексы могут создаваться из других полей как в процессе создания самой базы данных, так и позднее в процессе работы с ней. Вторичным индексам присваиваются имена — Идентификаторы, по которым их можно использовать. Если индекс включает в себя несколько полей, то упорядочивание базы данных сначала осуществляется по первому полю, а для записей, имеющих одинаковые значения первого поля — по второму и т. д. Например, базу данных персонала некоторой организации можно индексировать по отделам, а внутри каждого отдела — по алфавиту.

База данных может содержать много различных таблиц. Прикладные программы (приложения) часто работают не с отдельными таблицами, а с некоторой совокупностью таблиц. В этом случае в приложении устанавливается связь нескольких таблиц друг с другом. Обычно одна из них выступает как главная, а другая или несколько других — как вспомогательные, управляемые главной. Главная и вспомогательная таблицы связываются друг с другом ключом. В качестве ключа могут выступать какие-то поля, присутствующие в обеих таблицах. Курсор скользит по индексу главной таблицы и каждой записи в главной таблице ключ ставит в соответствие в общем случае множество записей вспомогательной таблицы.

В общем случае база данных помимо таблиц может содержать также другие объекты:

  • -вложенные таблицы — в этом случае значению поля одной таблицы соответствует некоторая другая таблица. Такие вложенные таблицы поддерживает, например, Oracle 8
  • -обзоры или просмотры (View) — виртуальные таблицы, содержащие некоторые подмножества записей, отобранные по каким-то критериям
  • -триггеры — это подпрограммы, автоматически выполняемые до или после изменения записи в таблице
  • -генераторы, создающие уникальные значения, необходимые для ключевых полей
  • -хранимые процедуры — подпрограммы, принимающие какие-то параметры и возвращающие результаты заданной обработки данных

Создают базы данных и обрабатывают запросы к ним системы управления базами данных — СУБД. Известно множество СУБД, различающихся своими возможностями или обладающих примерно равными возможностями и конкурирующих друг с другом: Paradox, dBase, Microsoft Access, FoxPro, Oracle, InterBase, Sybase и много других.

Разные СУБД по разному организуют и хранят базы данных. Например, Paradox и dBase используют для каждой таблицы отдельный файл. В этом случае база данных — это каталог, в котором хранятся файлы таблиц. В Microsoft Access и в InterBase несколько таблиц хранится как один файл. В этом случае база данных — это имя файла с путем доступа к нему. Системы типа клиент/сервер, такие, как серверы Sybase или Microsoft SQL, хранят все данные на отдельном компьютере и общаются с клиентом посредством специального языка, называемого SQL.

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

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

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

Показать весь текст
Заполнить форму текущей работой