Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4406.pdf
Скачиваний:
0
Добавлен:
13.11.2022
Размер:
586.06 Кб
Скачать

24

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

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

В качестве ограничения целостности может быть использован запрет на обновление данных в отдельных полях, записях или таблицах БД [ 3 ]. Очевидно, что должны быть защищены от случайных изменений, например, данные о реализованных поставках товаров, справочники о номенклатуре и характеристиках выпускаемых изделий и т.д.

Ограничения целостности могут создаваться при описании баз данных (де-

кларативный способ) или в программах обработки данных (процедурный спо-

соб). Рекомендуется применять декларативный способ, так как создаваемые с его помощью только один раз ограничения целостности будут использоваться многократно при выполнении различных действий с данными. Кроме того, в декларативном способе используется более высокий уровень языковых средств [ 3 ].

3.Внутренняя организация СУБД

3.1.Общие положения

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

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

25

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

Данные в процессе работы считываются и записываются страницами – блоками фиксированных размеров (в зависимости от используемой системы обычно 2, 4 или 8 килобайт) [ 12 ]. Каждая страница, хранящаяся на диске, имеет свой уникальный идентификатор, указывающий на физическое место ее хранения. Этот идентификатор используется системой управления файлами для чтения страницы и ее записи после изменения размещенных на ней данных в то же место на диске, откуда страница была считана.

Файл базы данных представляет собой набор страниц. При создании файла по запросу файловой системы система управления файлами выделяет ему требуемое количество страниц. Каждой странице в полученном наборе страниц присваивается некоторый «логический» (например, порядковый) номер. Обычно система управления файлами ведет каталог, в котором содержатся сведения о наборах страниц и указателях к каждой странице в их пределах. Когда СУБД в рамках решения прикладной задачи взаимодействует с конкретным файлом, логические номера страниц используются файловой системой, не знающей, где физически на диске хранится нужная страница, для обращения к системе управления файлами, осуществляющей чтение и запись данных (рис. 4).

На одной странице могут храниться одна или несколько записей с данными. После считывания из внешней памяти в оперативную память необходимой страницы выполняется выборка и обработка нужной записи. Для этого используется идентификационный номер записи, состоящий из двух частей: номера страницы и параметра, определяющего место расположения записи на странице [ 2 ].

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

Вразличных СУБД рассмотренная общая схема может быть реализована по разным принципам. Например, в СУБД Paradox каждая таблица или другой объект базы данных представляют собой отдельный файл, в СУБД MS Access все таблицы, запросы, отчеты, схема базы данных и т.д. хранятся в одном файле с расширением .mdb.

26

СУБД

Обращения к файлам

Файловая система

Обращения к логическим страницам

Система управления файлами

Доступ к физическим страницам

Рис. 4. Обращение СУБД к данным на диске

3.2. Линейный список

Линейный (последовательный) список – последовательность записей базы данных, сформированная по некоторым логическим принципам. Например, в таблице, содержащей информацию о поступлении товаров в магазин, сведения о каждой поставке представляют собой записи, вводимые в базу данных в хронологическом порядке и размещаемые в физической памяти последовательно друг за другом (табл. 3.1):

27

Таблица 3.1

Сведения о поставках товаров в магазин

Номер

Название

Артикул

Количество

Дата

накладной

товара

 

 

поставки

 

 

 

 

 

37

Костюм

500

50

10.12.05

 

 

 

 

 

54

Сапоги

200

75

10.12.05

 

 

 

 

 

18

Туфли

100

120

11.12.05

 

 

 

 

 

60

Костюм

500

35

11.12.05

 

 

 

 

 

28

Костюм

300

20

12.12.05

 

 

 

 

 

74

Костюм

400

50

12.12.05

 

 

 

 

 

80

Туфли

100

100

12.12.05

 

 

 

 

 

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

3.3. Инвертированный список

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

Предположим, что значения номеров накладных в поле Номер накладной

таблицы Сведения о поставках товаров в магазин (см. табл. 3.1) являются уникальными, т.е. данное поле является первичным ключом таблицы. Инвертированный список по полю Артикул будет выглядеть следующим образом (табл.

3.2):

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]