Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Этапы проектирования баз данных



Основные компоненты СУБД

Транзакции – процессы, которые должны выполняться атомарно.

Свойства транзакций – атомарность, изолированность, устойчивость.

Условия каждой завершенной транзакции должны быть зафиксированы в БД, когда система выходит из строя

планировщик заданий отвечает за атомарность и изолированность

менеджер протоколирования и восстановления гарантирует устойчивость

Процессор транзакции представлен в виде 2-х основных компонентов:

1. Планировщик заданий, ответственный за обеспечение атомарности и изолированности транзакции.

2. Менеджер протоколирования и восстановления

Процессор транзакции выполняет функции

1. протоколирование 2. управление параллельными заданиями

3. разрешение взаимоблокировок

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

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


Этапы проектирования баз данных

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

1. представление предметной области в том виде, как она реально существует

2. как ее воспринимает человек (имеется в виду проектировщик базы данных)

3. как она может быть описана с помощью символов.

Т.е. говорят, что мы имеем дело с реальностью, описанием (представлением) реальности и с данными, которые отражают это представление.

Данные, используемые для описания предметной области, представляются в виде трехуровневой схемы (так называемая модель ANSI/SPARC):

 

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

Отсюда вытекают основные этапы, на которые разбивается процесс проектирования базы данных информационной системы:

1.Концептуальное проектирование - сбор, анализ и редактирование требований к данным. Для этого осуществляются следующие мероприятия:

– обследование предметной области, изучение ее информационной структуры

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

– моделирование и интеграция всех представлений

По окончании данного этапа получаем концептуальную модель, инвариантную к структуре базы данных. Часто она представляется в виде модели " сущность-связь".

2.Логическое проектирование - преобразование требований к данным в структуры данных. На выходе получаем СУБД-ориентированную структуру базы данных и спецификации прикладных программ. На этом этапе часто моделируют базы данных применительно к различным СУБД и проводят сравнительный анализ моделей.

3.Физическое проектирование - определение особенностей хранения данных, методов доступа и т.д.

КОНЦЕПТУАЛЬНЫЙ УРОВЕНЬ · сущности · атрибуты · связи Представление аналитика
ЛОГИЧЕСКИЙ УРОВЕНЬ · записи · элементы данных · связи между записями Представление программиста
ФИЗИЧЕСКИЙ УРОВЕНЬ · группирование данных · индексы · методы доступа Представление администратора


Модель «сущность-связь». Основные понятия, область применения.

 

Модель сущность-связь (Entity-RelationShip ER).

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

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

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

Сотрудник -сущность
Табельный номер -ключевой атрибут
Фио -атрибуты
Дата рождения

Между сущностями могут быть установлены связи – бинарные ассоциации, показывающие, каким образом сущности соотносятся или взаимодействуют. Связи могут быть как между двумя сущностями, так и между сущностью и ей же самой.

Связь может быть

Необязательной обязательной

Между двумя сущ. может быть много связей с разными смысл. нагрузками.

В ER модели можно использовать принцип категоризации сущности, то есть наследовать сущности друг от друга (как в ООП). Сущность-родитель, от которой строятся подтипы, называется супертипом.

Для построения модели ER проводится системный анализ.

Для библиотеки это будет книги-экземпляры-читатели.

 


Сетевая модель данных

 

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

Элемент данных – это минимальная информационная единица, доступная пользователю. Аналог поля.

Агрегат данных – совокупность элементов данных, имеющих общее имя, которые могут рассматриваться как единое целое. В модели определены агрегаты двух типов: вектор и повторяющаяся группа.

Вектор – линейный набор элементов данных. Пример (Адрес: дом улица кварт. город)

Группа – совокупность векторов Пр: Стипендия – повторяющаяся группа с числом повторения 12.

Запись – совокупность агрегатов или элементов данных моделирующая некоторый класс объектов реального мира. Аналог сегмента или кортежа.

Существует понятие типа записи и экземпляра записи.

Набор – 2х уровневый граф, связывающий 2 типа записей видом 1: M. Набор отражает иерархическую связь между двумя типами записи. Родительский тип записи – владелец набора. Дочерний – член. Для любых 2-х типов записи м. б. задано любое количество наборов, которое их связывает. В рамках набора возможен последовательный просмотр экземпляров членов набора, связанных с одним экземпляром владельца набора. Ограничением набора является то, что один и тот же тип записи не может быть одновременно владельцем и членом набора.

Пример: учителя и группы

Среди всех наборов определяется сингулярный набор, владелец которого – вся система. Обозначается входящей стрелкой. Он имеет имя набора и имя члена набора, но не определён тип записи: владелец набора. Сингулярные наборы позволяют обеспечить доступ к экземплярам отдельных типов данных.

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

(+)Высокие возможности по созданию сложных иерархических структур

Возможность эффективной реализации по затратам памяти и оперативности

(-) Высокая сложность и жесткость схемы БД

Сложность для понимания и обработки информации в БД

Ослаблен контроль целостности


ИФЗ

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

Поскольку избыточная функциональная зависимость не содержит уникальной информации она может быть удалена без урона для БД.

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

Отношение является избыточным, если

1. Все его атрибуты могут быть найдены в другом отношении проектного набора.

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

Если установлена избыточность отношения, то его следует исключить из проектного набора.


НФ

Отношения находятся в 1НФ, если каждый атрибут отношения является простым (атомарным) атрибутом, то есть отсутствуют составные.

Пример: Автомобиль (модель, марка, изготовитель ( завод, город )).

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

Автомобиль (модель, марка, название завода изготовителя, город ).

Приведение отношения к 1НФ достаточно для реализации языков запросов.

НФ

Чтобы рассмотреть 2НФ, введём понятие полной зависимости. Пусть X и Y – элементы подмножества атрибутов отношения R и X ® Y. Если Y функционально не зависит от любого подмножества A множества X (причём A не совпадает с X ), то Y называют полностью зависимым от X в R.

Говорят, что отношение R находится во 2НФ, если оно нормализовано, то есть находится в 1НФ, и каждый первичный атрибут полностью зависит от первичного ключа.

Пусть имеется отношение ПОСТАВКИ, содержащее данные о поставках (идентифицируемых П№ ), поставляемых ими товарах и их ценах: ПОСТАВКИ (П№, ТОВАР, ЦЕНА)

Предположим, что поставщик может поставлять разные товары, а один и тот же товар могут поставлять разные поставщики. То есть, ключ отношения (выделенный шрифтом) будет состоять из атрибутов П№ и ТОВАР. Известно, что цена любого товара зафиксирована (то есть все поставщики поставляют товар по одной и той же цене). Семантика отношения включает следующие зависимости:

П№, ТОВАР ® цена (по определению КЛЮЧА) ТОВАР ® цена

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

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

Аномалия обновления. При изменении цены товара необходим полный просмотр отношения с целью найти все поставки товара, чтобы изменение цены было отражено для всех поставщиков. То есть, изменение значения атрибута одного объекта влечёт необходимость изменений в нескольких кортежах отношения; в противном случае база данных окажется несогласованной.

Разложение отношения ПОСТАВКИ на два отношения устраняет неполную функциональную зависимость.

ПОСТАВКИ ( П№, ТОВАР )

ЦЕНА-ТОВАРА ( ТОВАР, ЦЕНА )

Цену товара конкретной поставки можно определить путём соединения двух отношений по атрибуту ТОВАР. Изменение цены товара вызовет модификацию лишь одного кортежа второго отношения.

Я нормальная форма

 

Рассмотрим транзитивную зависимость следующего типа:

Если А ® В, В ® А (В не является ключом) и В ® С, то А ® С.

Отношение R находится в 3НФ, если оно находится во 2НФ и каждый непервичный атрибут в отношении R не содержит транзитивной зависимости от первичного ключа.

Пусть имеется отношение ХРАНЕНИЕ ( ФИРМА, СКЛАД, ОБЪЁМ), которое содержит информацию о фирмах, получающих товары со складов, и объёмах этих складов. В отношении имеются функциональные зависимости:

ФИРМА ® СКЛАД (фирма получает товары только с одного склада)

СКЛАД ® ОБЪЁМ

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

Аномалия удаления. Если последняя фирма перестаёт получать товар со склада, данные о складе и его объёме нельзя сохранить в базе данных.

Аномалия обновления. Если объём склада изменяется, необходим просмотр всего отношения и изменение кортежей для фирм, связанных со складом.

Преобразование отношения в 3НФ устраняет рассмотренные аномалии. Следующее разложение приводит к отношениям во 3НФ:

ХРАНЕНИЕ ( ФИРМА, СКЛАД)

С_ОБЪЁМ ( СКЛАД, ОБЪЁМ)

 


Я нормальная форма

 

Отношение находится в 4 нормальной форме, если оно находится в НФБК и в нём отсутствуют однозначные зависимости являющиеся функциональными.

Пример: Рассмотрим зависимость (№, курс, дети, должность)

Между преподавателем и курсом связь M: M

Между преподавателем и детьми 1: M

Многозначные зависимости №-> > курс, №-> > дети

Схема отношения находится в 4НФ, если всякий раз, когда существует многозначная зависимость X-> > Y, где Y непусто, и не является подмножеством X, и XvY состоит не из всех атрибутов R, X содержит к-н ключ отношения R, атрибуты, между которыми существует многозначная зависимость, выделяют в отдельные отношения

R1(№, курс) R2(№, дети) R3(№, должность)

 


Я нормальная форма

 

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

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

Декомпозиция отношений должна гарантировать обратимость. Обратимость предполагает:

1. отсутствие потери картежей

2. не появляются ранее отсутствующие картежи

3. сохранение функциональной зависимости


Метод в Табло

 

Дано множество функциональных зависимостей, схема отношения полученная в результате разложения. Процедура состоит в построении таблицы, строками которой являются разложенные отношения, а столбцами – список атрибутов этих отношений без повторений. Таблица заполняется символом aj если элементы строки i в столбце j соответствуют атрибуту Ajотношения Ri в противном случае ставится bij. После построения таблицы следует просмотр всех функциональных зависимостей Xà Y если для атрибутов из X найдутся строки, где в соответствующих местах стоят aj, то элементы bij этих строк соответствующие столбцам атрибутов из Y заменяется на aj. Если в результате появляется строка таблицы, полностью заполненная aj, то это соединение без потерь.

Пример: R(A, B, C, D) Ф.З. Aà C, Bà C, Cà D.

Разложили: R1(A, B) R2(B, D) R3(A, B, C) R4(B, C, D)

  A B C D
R1 a a b b
R2 b a b A
R3 a a a B
R4 b a a a
Aà C
  A B C D
R1 a a a b
R2 b a b A
R3 a a a B
R4 b a a a
Bà C
  A B C D
R1 a a a b
R2 b a a A
R3 a a a B
R4 b a a a
Cà D
  A B C D
R1 a a a A
R2 b a a A
R3 a a a A
R4 b a a A

Есть строки со всеми a, разложение без потерь.


Создание индексов

Индекс – указатель на данные в таблице.

CREATE INDEX имя ON имя таблицы

Типы индексов:

1. простые – индекс, создаваемый по данным одного столбца таблицы

CREATE INDEX имя ON имя таблицы (имя столбца)

2. уникальные – используются не только для ускорения поиска данных, но и для обеспечения их целостности. Наличие уникального индекса позволяет ввести в таблицу дубликаты записи. Его можно создать только по тому столбцу таблицы, данные которого уникальны.

CREATE UNIQUE INDEX имя ON имя таблицы (имя столбца)

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

CREATE INDEX имя ON имя таблицы (имя столбца1, имя столбца2)

 

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

 

FoxPro

 

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

Например:

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

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

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

Candidate – создается уникальный индекс, который не содержит полей с пустыми значениями

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

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

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

Ignore – позволяет изменить значение полей первичного ключа или ключа кандидата в родительской таблице независимо от существования связанных записей в дочерней таблице. Целостность данных при этом не поддерживается.

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

 


25. Поиск и сортировка, ускоренный поиск (на примере СУБД FoxPro).

Сортировка.

Сортировка записей открытой БД осуществляется по команде SORT TO < имя файла базы данных> ON < ключ-выражение> < /опции> FOR < условие >

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

 

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

Упорядочение.

Операции поиска в БД чаще выполняются не для того, чтобы найтиединственную запись, а для выборки совокупности записей.

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

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

Индексирование выполняется следующей командой:

INDEX ON < ключ-выражение> TO < IDX-файл> FOR < условие>

Если индексный файл был уже создан, то его нужно открыть при внесении новых записей или редактировании старых и, конечно, если предполагается индексный поиск. Индексные файлы могут быть открыты со своей базой данных, например:

USE student INDEX stud1.idx

Закрытие индексного файла осуществляется командой

CLOSE INDEX

Ускоренный поиск.

Индексный файл не только упорядочивает базу данных для просмотра, но и ускоряет поиск в ней по ключу, заданному в индексе, если пользоваться командой

SEEK < выражение>

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

SET NEAR ON Затем с помощю команды BROWSE посмотреть то, что нашлось.


Таблицы

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

  • cтроки; каждая строка (или запись) представляет собой совокупность атрибутов (свойств) конкретного экземпляра объекта;
  • cтолбцы; каждый столбец (поле) представляет собой атрибут или совокупность атрибутов. Поле строки является минимальным элементом таблицы. Каждый столбец в таблице имеет определенное имя, тип данных и размер.

Ограничения целостности

Ограничения целостности – механизм, обеспечивающий автоматический контроль соответствия данных установленным условиям (или ограничениям). Ограничения целостности имеют приоритет над триггерами, правилами и значениями по умолчанию. К ограничениям целостности относятся: ограничение на значение NULL, проверочные ограничения, ограничение уникальности (уникальный ключ), ограничение первичного ключа и ограничение внешнего ключа. Последние три ограничения тесно связаны с понятием ключей.


Курсор

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

Курсор в SQL – это область в памяти базы данных, которая предназначена для хранения последнего оператора SQL. Если текущий оператор – запрос к базе данных, в памяти сохраняется и строка данных запроса, называемая текущим значением, или текущей строкой курсора. Указанная область в памяти поименована и доступна для прикладных программ.

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

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

В некоторых случаях применение курсора неизбежно. Однако по возможности этого следует избегать и работать со стандартными командами обработки данных: SELECT, UPDATE, INSERT, DELETE. Помимо того, что курсоры не позволяют проводить операции изменения над всем объемом данных, скорость выполнения операций обработки данных посредством курсора заметно ниже, чем у стандартных средств SQL.

Манипулирование данными

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

Копирование.

Любое существующее описание структуры может быть полностью или частично скопировано в новую базу с помощью команды COPY STRUCTURE TO < имя файла базы данных>

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

Копирование структуры вместе с данными в новый файл осуществляется командой COPY TO < имя файла базы данных>


Плотный, неплотный индекс

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

Файлы с плотным индексом

В этих файлах основная область содержит последовательность записей одинаковой длины, расположенных в произвольном порядке, в структура записи в ней имеет следующий вид:

 


Значение ключа – значение первичного ключа

Номер записи – порядковый номер записи в основной области.

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

Схематично это можно представить следующим образом:

Когда исчезает свободная область, возникает переполнение индексной области. В этом случае возможны 2 решения:

1. перестроить заново индексную область

2. организовать область переполнения для индексной области, в которой будут храниться не поместившиеся в основную область записи

Первый способ требует дополнительного времени на переработку индексной области.

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

 

Файлы с неплотным индексом

Неплотный индекс строится для упорядочения файлов. Структура записей индекса для таких файлов имеет следующий вид

 
   

 


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

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

 


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

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

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

 

Инвертированный список по номеру группы для списка студентов

1-ый уровень 2-ой уровень

 

Ключ № блока
1
3
Блок 1
1
Блок 2
 
Блок 3

 

№ записи ФИО № группы
Иванов
Петров
Сидоров
Андреев
Михайлов
Николаев
Борисов

 

 

     
 
     
   

 

 

Модель файлового сервера

или модель DDM

File Server – FS

Здесь presentation logic и business-logic располагаются на клиенте. На сервере располагаются файлы с данными и поддерживается доступ к файлам. Функции управления информационными ресурсами находятся на клиенте. В этой модели файлы базы данных хранятся на сервере. Клиент обращается к серверу с файловыми командами, а механизм управляет всеми информационными ресурсами, база мета данных на клиенте.

 
   

 

 


Файловые команды

 

 

Блоки данных

 

 

Достоинства: имеет разделение монопольного приложения на 2 взаимодействующих процесса. Сервер может обслуживать множество клиентов.

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


Основные компоненты СУБД

Транзакции – процессы, которые должны выполняться атомарно.

Свойства транзакций – атомарность, изолированность, устойчивость.

Условия каждой завершенной транзакции должны быть зафиксированы в БД, когда система выходит из строя

планировщик заданий отвечает за атомарность и изолированность

менеджер протоколирования и восстановления гарантирует устойчивость

Процессор транзакции представлен в виде 2-х основных компонентов:

1. Планировщик заданий, ответственный за обеспечение атомарности и изолированности транзакции.

2. Менеджер протоколирования и восстановления

Процессор транзакции выполняет функции

1. протоколирование 2. управление параллельными заданиями

3. разрешение взаимоблокировок

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

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


Этапы проектирования баз данных

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

1. представление предметной области в том виде, как она реально существует

2. как ее воспринимает человек (имеется в виду проектировщик базы данных)

3. как она может быть описана с помощью символов.

Т.е. говорят, что мы имеем дело с реальностью, описанием (представлением) реальности и с данными, которые отражают это представление.

Данные, используемые для описания предметной области, представляются в виде трехуровневой схемы (так называемая модель ANSI/SPARC):

 

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

Отсюда вытекают основные этапы, на которые разбивается процесс проектирования базы данных информационной системы:


Поделиться:



Популярное:

Последнее изменение этой страницы: 2017-03-08; Просмотров: 1488; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.163 с.)
Главная | Случайная страница | Обратная связь