Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВСЕ 2003.doc
Скачиваний:
31
Добавлен:
22.12.2018
Размер:
776.19 Кб
Скачать

19. Модели данных и структура бд

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

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

Наиболее известными являются следующие модели данных:

  1. иерархическая;

  2. сетевая;

  3. реляционная.

  1. Иерархическая мд (имд)

В подобных моделях предметная область представляется в виде совокупности структур иерархического типа (граф — «дерево»).

Основные понятия ИМД:

  • поле — минимальная единица данных;

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

Экземпляр сегмента - конкретные данные, входящие в сегмент.

Преимущества ИМД:

  • простота модели. Принцип построения легок для понимания. Иерархия базы данных напоминает структуру компании или генеалогическое дерево;

  • использование отношений предок/потомок. СУБД ИМД позволяет легко представлять отношения предок/потомок (или часть — целое, причина — следствие), например: «А является частью В» или «А владеет В»;

  • высокое быстродействие.

  1. Сетевая модель данных (модель CODASYL). В предложенной CODASYL модификации иерархической модели одна запись могла участвовать в нескольких отношениях предок/потомок. В сетевой модели такие отношения называются множествами (set).

Сетевые БД обладают рядом преимуществ:

  • гибкость — множественные отношения предок/потомок позволяют сетевой БД хранить данные, структура которых сложнее обычной иерархии;

  • стандартизованностъ — соответствие стандарту CODASYL;

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

Недостаток — жесткость БД, наборы отношений и структуру записей приходилось задавать заранее. Изменение структуры данных означало перестройку всей БД.

  1. Реляционная модель данных и операции над отношениями

Реляционная модель предложена сотрудником компании IBM Е. Ф. Коддом в 1970 г. и в настоящее время является стандартом, на который ориентируются практически все современные коммерческие СУБД.

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

«Реляционная модель предоставляет средства описания данных на основе только их естественной структуры, т. е. без потребности введения какой-либо дополнительной структуры для целей машинного представления». Другими словами, представление данных не зависит от способа их физической организации. Это обеспечивается за счет использования математической теории отношений (само название «реляционная» происходит от английского relation — «отношение»).

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

Домен - множество возможных значений некоторой характеристики объекта называется

D={d1,d2,, …,dn}.

Например, в качестве домена можно рассматривать такие характеристики студента, как его фамилия, курс, рост и т.п.:

DKyvc = {1, 2,3, 4,5};

Dфамилия= {Иванов, Петров, Сидоров,...};

D pocт = {l60, 161, 162, ...,190}.

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

Для приведенного выше примера кортежами являются:

(1, Иванов, 172);

(3, Сидоров, 181);

(5, Уткин, 184).

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

Декартовое произведение к домену- множество всех возможных значений кортежей:

D = D1xD2x...xDk.

Пусть для того же примера определены три домена:

D1 ={1,4};

D2 - {Иванов, Петров);

D3= {168,181}.

Тогда их декартовым произведением будет множество D состоящее из восьми записей:

При увеличении размерности любого из доменов увеличивается и размерность их декартова произведения. Так, если в первом домене определены три элемента D = {1, 4, 5}, декартово произведение имеет вид:

Иными словами, декартово произведение — множество всех возможных комбинаций элементов исходных доменов.

Отношением R, определенным на множествах доменов Dl,D2,…,Dk, называют подмножество их декартова произведения:

R D1xD2x..х.Dk.

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

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

Отношения удобно представлять в виде таблиц. Строки таблицы называются экземплярами отношения, столбцы — атрибутами; каждый атрибут имеет область значений, называемую доменом. На рис. 2, а представлена таблица (отношение степени 5), содержащая некоторые сведения о деталях автомобилей.

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

Рис. 2а.

Рис. 2б.

Материал может содержать конечный перечень значений — Сталь, Олово, Цинк, Никель и т. д. В столбце Количество содержатся целые неотрицательные числа. Значения в столбце Вес — вещественные числа, равные весу детали в килограммах.

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

Каждый столбец имеет имя, которое обычно записывается в верхней части таблицы (рис. 2,а). Оно должно быть уникальным в таблице, однако различные таблицы могут иметь столбцы с одинаковыми именами. Любая таблица должна иметь, по крайней мере, один столбец; столбцы расположены в таблице в соответствии с порядком следования их имен при ее создании. В отличие от столбцов строки не имеют имен; порядок их следования в таблице не определен, а количество логически не ограничено.

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

Любая таблица имеет один или несколько столбцов, значения в которых однозначно идентифицируют каждую ее строку. Такой столбец (или комбинация столбцов) называется первичным ключом (primary key). В таблице Деталь первичный ключ — это столбец Номер_детали. В нашем примере каждая деталь на складе имеет единственный номер, по которому из таблицы Деталь извлекается необходимая информация. Следовательно, в этой таблице первичный ключ — это столбец Номер детали. В этом столбце значения не могут дублироваться — в таблице Деталь не должно быть строк, имеющих одно и то же значение в столбце Номер детали. Если таблица удовлетворяет этому требованию, она является отношением (relation).

Взаимосвязь таблиц является важнейшим элементом реляционной модели данных. Она поддерживается внешними ключами (external). Рассмотрим пример, в котором база данных хранит информацию о рядовых служащих (таблица Служащий) и руководителях (таблица Руководитель) в некой организации (рис. 2, б). Первичный ключ таблицы Руководитель — столбец Номер (например,-табельный номер). Столбец Фамилия не может выполнять роль первичного ключа, так как в одной организации могут работать два руководителя с одинаковыми фамилиями. Любой служащий подчинен единственному руководителю, что должно быть отражено в базе данных. Таблица Служащий содержит столбец Номер руководителя, и значения в этом столбце выбираются изстолбца Номер таблицы Руководитель (см. рис. 2,б). Столбец Номер руководителя является внешним ключом в таблице Служащий.

Таблицы невозможно хранить и обрабатывать, если в базе данных отсутствуют «данные о данных» (метаданные), например описатели таблиц, столбцов и т. д. Метаданные также представлены в табличной форме и хранятся в словаре данных (DD — data dictionary) или описателе БД (DBD — data base definition) — служебном файле или системной таблице БД.

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