Автор работы: Пользователь скрыл имя, 20 Февраля 2011 в 12:52, контрольная работа
В начале 70-х годов для удобства работы с большими массивами данных сформулирована концепция баз данных. Ее основными положениями были:
1.Независимость прикладных программ от данных, размещенных во внешней памяти
2. Отсутствие избыточности в данных
3.Способность системы противостоять сбоям и отказам.
Заголовок каждого фрагмента содержит:
1 бит,
указывающий, что данная
2 биты,
указывающие, что фрагмент
3 указатели на предыдущий и/или следующий фрагмент
4 время вставки/удаления
5 бит
удаления
При
организации доступа в БД диспетчер
файлов и диспетчер буферов всегда работают
на уровне страниц, т.е. обеспечивают чтение,
удаление, добавление, обновление страниц.
Вставка строк (кортежей)
Для вставки отыскивается свободное место на любой странице (т.е. местоположение записей никак не упорядочивается.
Удаление
Физически запись со страницы никак не удаляется. Просто бит удаления в заголовке записи (или фрагмента) устанавливается в “1”.
Обновление по месту
Это самый простой случай модификации данных. При этом новая запись записывается на место старой.
Хранение мультимедийных данных
Когда в таблице содержится столбец, имеющий тип данных LОВ (large objects – большие объекты), тогда в каждой строке таблицы хранится лишь небольшой указатель на то место внешней памяти, где действительно хранятся данные этого типа.
Существуют различные типы LOB, служащие для хранения текстовой, графической и другой информации. Для примера отметим два из них: ВLОВ и BFILE, используемые в СУБД Oracle.
Все типы данных LOB можно разделить на две части:
- сохраняемые в базе данных ( к ним, в частности, относится BLOB)
- сохраняемые вне базы данных виде файла операционной системы( к ним, в частности, относится BFLE).
Принципы хранения данных типа LОВ и проиллюстрированы на рис. 1.10.
Рис. 1.10 показывает, что характеристики хранения полей LОВ не зависят от характеристик хранения базовой таблицы. Это упрощает процесс обращения к данным LОВ, занимающим обычно большие области диска. В этом примере все не-LОВ- и не-ВFILE - данные для каждой строки таблицы хранятся вместе в одной табличной области, данные столбца LОВ — в другой табличной области, а данные столбца ВFILE — в файловой системе сервера. При этом основные табличные и связанные с ними мультимедийные данные распределяются для хранения среди разных физических областей (например, дисководов), что снижает конкуренцию при доступе к диску и повышает общую производительность системы.
Рис. 1.10 Использование указателей для хранения мультимедийных
данных
Лекция
4
1.7.Управление буферами
Буфер – область оперативной памяти, используемая для кратковременного хранения данных, участвующих в процессе обмена между внешней и оперативной памятью. В процессе чтения /записи, с диска данные попадают в буфер и там некоторое время хранятся (рис. 2.6). Обычно размер буфера выбирается кратным размеру страницы.
Основное назначение буферов - синхронизация работы быстрой оперативной памяти с медленной внешней памятью. Необходимость такой синхронизации обусловлена тем, что время доступа к оперативной памяти меньше, чем к внешней.
Чем дольше данные хранятся в буфере, тем больше вероятность
того что данные, требуемые пользовательским запросом на чтение или модификацию, находятся не во внешней памяти , а в буфере. Следовательно, чем дольше данные будут храниться в буфере, тем выше будет производительность системы. Однако очень долго хранить данные в буферах нельзя. Так как если данные постоянно читаются, то затрачивается очень много оперативной памяти. А длительное хранение модифицированных данных снижает надежность системы, т.к. при отказе содержимое оперативной памяти может быть потеряно.
Поэтому число буферов и максимальное время нахождения данных в каждом буфере (время освобождения) выбирается на основе компромисса между производительностью и надежностью системы.
СУБД должна управлять
Каждая СУБД использует разные правила буферизации (освобождения буферов). Наиболее распространенными являются следующие 4 правила:
1. Чем реже используется буфер (т.е. страницы данных, находящиеся в буфере), тем быстрее он освобождается (правило LRU- last recently used).
2. Правило FIFO: первым пришел – первым вышел.
3. Превышение
заданного порога времени.
4. Правило
принудительного сброса
Рис. 1.11 поясняет процесс использования буферов прикладными программами. Когда прикладная программа обращается к СУБД с запросом записи данных (на языке SQL), то эти данные из рабочей области прикладной программы сначала попадают в буфер и некоторое время там хранятся. Затем диспетчер файлов отсылает данные буфера (в виде страницы) операционной системе, которая записывает их во внешнюю память.
При запросе на чтение данных
процесс практически
Рис. 1.11 Использование буферов прикладными
программами
Следует отметить одну важную деталь:
обмен данными между буферами и внешней
памятью происходит на уровне страниц,
а между буферами и рабочими областями
– на уровне строк. То есть пользователь
отсылает строки и получает строки.
Все современные СУБД имеют собственные языки программирования, называемые встроенными или базовыми. Так, СУБД Oracle использует язык PL/SQL, СУБД MS SQL – язык Transact-SQL, СУБД Paradox – язык PAL, СУБД Access – язык Microsoft Access Basic (MAB) и т.д.
Главная причина, по которой разные фирмы
используют для своих СУБД разные языки,
в основном связана с рекламой. Оправданием
обычно служит стремление использовать
язык, наиболее адаптированный к особенностям
конкретной СУБД. Хотя последнее очень
трудно доказуемо. На рис.1.12 показана типовая
структура встроенного языка.
Рис.1.12. Типовая структура встроенного языка
Результаты
работы генераторов запросов и отчетов,
редактора форм могут использоваться
и в режиме диалога, и в режиме прикладных
программ. Иными словами, пользователи
могут работать с создаваемыми запросами,
отчетами и формами в обоих режимах.
Генераторы запросов
Генераторы запросов предназначены для облегчения создания запросов к БД. Они строятся по принципу “Query by example” – создание запроса по образцу. Пользователю предоставляется бланк (бланк QBE), на котором он отмечает основные реквизиты запроса (рис.1.13).
Рис. 1.13.Запрос на бланке QBE
Из рис. видно, что на бланке отмечаются поля, данные из которых подлежат выборке, и задаются условия выборки.
Отметим, что от пользователя фактически не требуются знания языка SQL. При формировании запроса генератор автоматически создает запрос на SQL на основании реквизитов заполненной формы.
Результат исполнения запроса
– выходной набор
Основной слабостью генераторов
запросов является то, что они позволяют
создавать только сравнительно несложные
запросы (в которых используются несложные
вычислительные операции и задаются несложные
условия отбора).
Редакторы форм
Редакторы форм служат для разработки экранных форм. Формы обеспечивают:
Источниками
выводимых данных являются таблицы
или запросы ( точнее, выходные наборы
ранее выполненных запросов).
Генераторы отчетов
Генераторы отчетов служат для создания выходных документов по БД – отчетов. Их характерной особенностью является наличие средств управления печатью. Источниками данных для отчетов являются таблицы и запросы.
Отчеты имеют некоторые общие черты и с запросами, и с формами. По своей сути отчет – это тот же запрос на выборку данных. Однако, как правило, это достаточно простая выборка, выполненная при простых условиях отбора. Иными словами, генераторы отчетов не позволяют задавать сложные условия отбора. Именно поэтому при формировании отчета часто используют выходные наборы запросов.
Другим важным аспектом, отличающим запросы от отчетов, является группировка записей.
Группировка в запросах направлена в первую очередь на обеспечение групповых операций (нахождение для группы значений минимума, максимума, среднего, суммы и т.д).
Группировка
в отчетах ориентирована в
первую очередь на удобное представление
данных (выделение групп строк). При
этом можно задать несколько уровней
группировки. Каждый уровень группировки
оформляется как самостоятельный отчет
со своими разделами заголовка и примечаниями
(только колонтитулы, по понятным причинам,
являются общим для всего отчета). На рис.1.14
представлен отчет с группировкой строк
по дате выписки товара.
Рис. 1.14 Отчет с группировкой строк
С формами отчеты часто
Компиляторы встроенного языка
Компиляторы встроенного языка
служат для преобразования
Лекция 6
Описание таблиц выполняется с помощью оператора CREATE TABLE.
Описание включает:
Пункты 1 и 3 могут отсутствовать, если соответствующие ключи не задаются.
При наличии внешнего ключа дополнительно задаются ограничения ссылочной целостности:
ON DELETE {CASCADE| NO ACTION}
Если указано ключевое слово CASCADE, то при удалении строки из главной (родительской) таблицы соответствующие строки в зависимой (дочерней) таблице тоже будут удалены. При указании ключевого слова
NO ACTION в подобном
случае будет выдано сообщение об ошибке.