Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Voprosy_IGME.doc
Скачиваний:
9
Добавлен:
01.05.2025
Размер:
3.64 Mб
Скачать

1. Иерархическая модель данных.

В иерархической модели все записи, агрегаты и атрибуты базы данных образуют иерархически организованный набор, то есть такую структуру, в которой все элементы связаны отношениями подчиненности, и при этом любой элемент может подчиняться только одному какому-нибудь другому элементу.  Такую форму зависимости удобно изображать с помощью древовидного графа (схемы, состоящей из точек и стрелок, которая связна и не имеет циклов). Пример иерархической структуры базы данных приведен на рис. 1. Рис. 1. Схема иерархической модели данных Типичным представителем семейства баз данных, основанных на иерархической модели, является Information Management System (IMS) фирмы IBM, первая версия которой появилась в 1968 г. Концепция сетевой модели данных связана с именем Ч. Бахмана.  К основным понятиям иерархической структуры относятся уровень, элемент или узел и связь. Узел - это совокупность атрибутов, описывающих некоторый объект. На схеме иерархического дерева узлы представляются вершинами графа. Каждый узел на более низком уровне связан только с одним узлом, находящимся на более высоком уровне. Иерархическое дерево имеет только одну вершину (корень дерева), не подчиненную никакой другой вершине и находящуюся на самом верхнем (первом) уровне. Зависимые (подчиненные) узлы находятся на втором, третьем и так далее уровнях. Количество деревьев в базе данных определяется числом корневых записей. К каждой записи базы данных существует только один (иерархический) путь от корневой записи. В иерархической модели данных автоматически поддерживается целостность ссылок между предками и потомками. Основное правило: никакой потомок не может существовать без своего родителя. 2. Сетевая модель данных. Сетевой подход к организации данных является расширением иерархического. В иерархических структурах запись-потомок должна иметь в точности одного предка; в сетевой структуре данных потомок может иметь любое число предков (рис. 2). Рис. 2. Схема сетевой модели данных

Сетевая БД состоит из набора записей и набора связей между этими записями, точнее, из набора экземпляров записей заданных типов (из допустимого набора типов) и набора экземпляров из заданного набора типов связи.  Примером системы управления данными с сетевой организацией является Integrated Database Management System (IDMS) компании Cullinet Software Inc., разработанная в середине 70-х годов. Она предназначена для использования на "больших" вычислительных машинах. Архитектура системы основана на предложениях Data Base Task Group (DBTG), Conference on Data Systems Languages (CODASYL), организации, ответственной за определение стандартов языка программирования Кобол.

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

  1. Определение реляционной модели данных. Элементы реляционной модели (отношение, схема отношения, кортеж, сущность, атрибут, домен, значение атрибута, первичный ключ, тип данных). Требования к таблице как к отношению (правила Э.Кодда). Примеры реляционных МД.

Реляционная модель данных. Концепции реляционной модели впервые были сформулированы в работах американского ученого Э. Ф. Кодда. Откуда происходит ее второе название - модель Кодда. Рис..3. Схема реляционной модели данных В реляционной модели объекты и взаимосвязи между ними представляются с помощью двумерных таблиц (рис. 3).  Реляционная таблица представляет собой двумерный массив и обладает следующими свойствами:

  • каждый элемент таблицы — один элемент данных;

  • все столбцы в таблице однородные, то есть, все элементы в столбце имеют одинаковый тип (числовой, символьный или другой) и длину;

  • каждый столбец имеет уникальное имя;

  • одинаковые строки в таблице отсутствуют;

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

Реляционная модель данных (РМД) некоторой предметной области представляет собой набор отношений, изменяющихся во времени. Элементы РМД и формы их представления приве­дены в табл. 1.

Таблица 1 Элементы реляционной модели

Отношение является важнейшим понятием и представляет собой дву­мерную таблицу, содержащую некоторые данные.

Сущность есть объект любой природы, данные о котором хранятся в базе данных. Данные о сущности хранятся в отношении.

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

Математически отношение можно описать следующим образом. Пусть даны п множеств D1, D2, D3,..., Dn, тогда отношение R есть множество упоря­доченных кортежей <dl, d2, d3 ,...,dn>, где dk e Dk, dk — атрибут, a Dk -домен отношения R.

На рис.1 приведен пример представления отношения СОТРУДНИК.

 

ФИО

Отдел

Должность

Д_рождения

Иванов И.И.

002

начальник

27.09.51

Петров П.П.

001

заместитель

15.04.55

Сидоров С.С.

003

инженер

13.01.70

Рис1. Пример представления отношения СОТРУДНИК.

 

Домен представляет собой множество всех возможных значений опре­деленного атрибута отношения. Отношение СОТРУДНИК включает 4 до­мена. Домен 1 содержит фамилии всех сотрудников, домен 2 — номера всех отделов фирмы, домен 3 — названия всех должностей, домен 4 — даты рож­дения всех сотрудников. Каждый домен образует значения одного типа дан­ных, например, числовые или символьные.

Отношение СОТРУДНИК содержит 3 кортежа. Кортеж рассматривае­мого отношения состоит из 4 элементов, каждый из которых выбирается из соответствующего домена. Каждому кортежу соответствует строка таб­лицы (рис.1).

Схема отношения (заголовок отношения) представляет собой спи­сок имен атрибутов. Например, для приведенного примера схема отно­шения имеет вид СОТРУДНИК(ФИО, Отдел, Должность, Д_Рождения). Множество собственно кортежей отношения часто называют содержи­мым (телом) отношения.

Первичным ключом (ключом отношения, ключевым атрибутом) на­зывается атрибут отношения, однозначно идентифицирующий каждый из его кортежей. Например, в отношении СОТРУДНИК(ФИО, Отдел, Долж­ность, Д_Рождения) ключевым является атрибут "ФИО". Ключ может быть составным (сложным), т. е. состоять из нескольких атрибутов.

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

Ключи обычно используют для достижения следующих целей:

1)исключения дублирования значений в ключевых атрибутах (осталь­ные атрибуты в расчет не принимаются);

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

3)ускорения работы к кортежами отношения (подраздел 3.2);

4)организации связывания таблиц (подраздел 3.3).

Пусть в отношении R1 имеется не ключевой атрибут А, значения которо­го являются значениями ключевого атрибута В другого отношения R2. Тогда говорят, что атрибут А отношения R1 естьвнешний ключ.

С помощью внешних ключей устанавливаются связи между отношения­ми. Например, имеются два отношения СТУДЕНТ(ФИО. Группа, Специ­альность) и ПРЕДМЕТУ Назв. Пр. Часы), которые связаны отношением СТУДЕНТ ПРЕДМЕТСФИО. Назв.Пр. Оценка) (рис. 2). В связующем отношении атрибуты ФИО и Назв.Пр образуют составной ключ. Эти атри­буты представляют собой внешние ключи, являющиеся первичными клю­чами других отношений.

Рис.2. Установление связей между отношениями

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

Существуют условия, при которых таблица будет являться отношением.

l.Bce строки таблицы должны быть уникальны, т. е. не может быть стро: с одинаковыми первичными ключами.

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

З.Все строки одной таблицы должны иметь одну структуру, соответству ющую именам и типам столбцов.

4.Порядок размещения строк в таблице может быть произвольным.

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

Основной единицей обработки данных в реляционных БД является от­ношение, а не отдельные его кортежи (записи).

 

  1. Индексирование.

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

Термин «индекс» тесно связан с понятием «ключ», хотя между ними есть и некоторое отличие.

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

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

Варианты решения проблемы организации физического доступа к ин­формации зависят в основном от следующих факторов:

• вида содержимого в поле ключа записей индексного файла;

• типа используемых ссылок (указателей) на запись основной таблицы;

• метода поиска нужных записей.

В поле ключа индексного файла можно хранить значения ключевых полей индексируемой таблицы либо свертку ключа (так называемый хеш-код). Преимущество хранения хеш-кода вместо значения состоит в том, что длина свертки независимо от длины исходного значения клю­чевого поля всегда имеет некоторую постоянную и достаточно малую величину (например, 4 байта), что существенно снижает время поиско­вых операций. Недостатком хеширования является необходимость вы­полнения операции свертки (требует определенного времени), а также борьба с возникновением коллизий (свертка различных значений мо­жет дать одинаковый хеш-код).

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

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

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

Каждая реляционная таблица обладает следующими свойствами(требованиями): 1)Каждое значение, содержащееся на пересечение строки и столбца должно быть атомарным(нераздельным, составным). 2)Значения данных в 1 поле должно быть 1 типа. 3) Каждая запись в таблице должна быть уникальна(отсутствие повторяющихся записей) 4) Каждое поле имеет уникальное имя. 5) Последовательность записей произвольная.  (правила Э.Кодда)

  •  Декартово произведение: Для заданных конечных множеств   (не обязательно различных) декартовым произведением   называется множество произведений вида:  , где 

Пример: если даны два множества A (a1,a2,a3) и B (b1,b2), их декартово произведение будет иметь вид С=A*B (a1*b1, a2*b1, a3*b1, a1*b2, a2*b2, a3*b2)

  •  Отношение: Отношением R, определенным на множествах   называется подмножество декартова произведения  . При этом:

    • множества   называются доменами отношения

    • элементы декартова произведения   называются кортежами

    • число n определяет степень отношения ( n=1 - унарное, n=2 - бинарное, ..., n-арное)

    • количество кортежей называется мощностью отношения

Пример: на множестве С из предыдущего примера могут быть определены отношения R1 (a1*b1, a3*b2) или R2 (a1*b1, a2*b1, a1*b2)

  1. Отношения между таблицами в базе данных. Назначение ключа. Виды ключей (первичный, альтернативный, внешний). Индекс. Индексный файл. Виды связей между таблицами («один-к-одному», «один-ко-многим», «много-к-одному», «много-ко-многим»). Примеры связей между таблицами. Целостность данных.

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

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

Первичный ключ одной таблицы становится внешним ключом для другой таблицы, с которой данная таблица связана отношением. Так, на этом рисунке RecordingArtistID (Код исполнителя) представляет собой первичный ключ в таблице Recording Artists (Исполнители) и внешний ключ в таблице Recordings (Альбомы). Как об этом можно догадаться? Поле, являющееся первичным ключом таблицы, выделяется в ней полужирным шрифтом.

В базе данных музыкальных записей таблица Recording Artists (Исполнители) через поле RecordingArtistID (Код исполнителя) связана с таблицей Recordings (Альбомы) отношением «один ко многим», поскольку у каждого исполнителя может быть несколько альбомов.

В свою очередь, таблица Recordings (Альбомы) связана с таблицей Tracks (Записи) отношением «один ко многим» через поле RecordingID (Код альбома), поскольку каждый альбом включает несколько композиций или песен.

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

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

Потенциальный ключ. В одной сущности могут оказаться несколько атрибутов или наборов атрибутов, претендующих на роль первичного ключа. Такие претенденты называются потенциальными ключами (candidate key).

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

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

а) уникальность: два экземпляра не должны иметь одинаковых значений возможного ключа;

б) компактность: сложный возможный ключ не должен содержать ни одного атрибута, удаление которого не приводило бы к утрате уникальности;

в) содержательность: атрибуты первичного ключа не могут содержать нулевых значений;

г) постоянность: значение атрибутов ключа не должно меняться в течение всего времени существования экземпляра сущности.

Альтернативный ключ (Alternate Key) - это потенциальный ключ, не ставший первичным. Каждая сущность должна иметь по крайней мере один потенциальный ключ. Многие сущности имеют только один потенциальный ключ. Такой ключ становится первичным. Некоторые сущности могут иметь более одного возможного ключа. Тогда один из них становится первичным, а остальные - альтернативными ключами.

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

Связь позволяет моделировать отношения между объектами предметной области. Наименование связи должно быть уникально во всей модели.

Существует 4 типа связей:

1. «Один-к-одному» - любому экземпляру сущности А соответствует только один экземпляр сущности В, и наоборот.

У любого конкретного ученика может быть только одна характеристика, и эта характеристика относится к единственному ученику.

2.  «Один-ко-многим» - любому экземпляру сущности А соответствует 0, 1 или несколько экземпляров сущности В, но любому экземпляру сущности В соответствует только один экземпляр сущности А.

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

3. «Многие-к-одному» - любому экземпляру сущности А соответствует только один экземпляр сущности В, но любому экземпляру сущности В соответствует 0, 1 или несколько экземпляров сущности А.

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

Какая же разница между связями «один-ко-многим» и «многие-к-одному»? Такая же, как между фразами «портфель ученика» и «ученик портфеля». То есть важно, кто во взаимоотношении двух объектов главный - ученик или портфель. Суть отношений двух объектов отражается в имени связи.

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

4.  «Многие-ко-многим» - любому экземпляру сущности А соответствует 0, 1 или несколько экземпляров сущности В, и любому экземпляру сущности В соответствует 0, 1 или несколько экземпляров сущности А.

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

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

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

Целостность данных — свойство, при выполнении которого данные сохраняют заранее определённый вид и качество.

  1. Реляционная алгебра. Основные операции: объединение, пересечение, разность, выборка, проекция, декартово произведение и соединение (обозначение, характеристика, замечания, схема, пример, область применения).

Реляционная алгебра — замкнутая система операций над отношениями в реляционной модели данных. Операции реляционной алгебры также называют реляционными операциями.

Объединение

Отношение с тем же заголовком, что и у совместимых по типу отношений A и B, и телом, состоящим из кортежей, принадлежащих или A, или B, или обоим отношениям. Синтаксис:

A UNION B

Пересечение

Отношение с тем же заголовком, что и у отношений A и B, и телом, состоящим из кортежей, принадлежащих одновременно обоим отношениям A и B. Синтаксис:

A INTERSECT B

Разность

Отношение с тем же заголовком, что и у совместимых по типу отношений A и B, и телом, состоящим из кортежей, принадлежащих отношению A и не принадлежащих отношению B. Синтаксис:

A MINUS B

Выборка (ограничение)

Отношение с тем же заголовком, что и у отношения A, и телом, состоящим из кортежей, значения атрибутов которых при подстановке в условие c дают значение ИСТИНА. cпредставляет собой логическое выражение, в которое могут входить атрибуты отношения A и/или скалярные выражения. Синтаксис:

A WHERE c

Проекция

Отношение с заголовком (X, Y, …, Z) и телом, содержащим множество кортежей вида (x, y, …, z), таких, для которых в отношении A найдутся кортежи со значением атрибута X равнымx, значением атрибута Y равным y, …, значением атрибута Z равным z. При выполнении проекции выделяется «вертикальная» вырезка отношения-операнда с естественным уничтожением потенциально возникающих кортежей-дубликатов. Синтаксис:

A[X, Y, …, Z]

или

PROJECT A {x, y, …, z}

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