Главная » Просмотр файлов » Теория и практика построения баз данных

Теория и практика построения баз данных (1088289), страница 161

Файл №1088289 Теория и практика построения баз данных (Теория и практика построения баз данных) 161 страницаТеория и практика построения баз данных (1088289) страница 1612018-01-12СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 161)

Данный факт можно представить в виде индекса, изображенного на рис. А.24. Этот индекс связывает адрес родителя с адресами каждого из ега потомков. Рнс. А.24. Представление саван ПОСТАВЩИК-СЧЕТ с помощью индексов Если дерево имеет несколько связей 1:)Ч, потребуется несколько индексов, па одному на каждую связь. Для структуры на рис. А.13 потребуется пять индексов. Представление простых сетей Как и деревья, простые сети могут быть представлены с помощью связных спи- сков и индексов. деревьев. Рассмотрим, например, простую сеть, изображенную на рис.

А.25. Она имеет две связи 1;Х: одна между записями ГРУЗОВИК и ДОСТАВКА, а другая — между записями ДОСТАВКА и КЛИЕНТ. Каждую из зтих связей можно хранить в виде индекса. На рис. А.28 показаны два индекса, с помощью которых можно представить пример на рис. А.26. Будем предполагать, что записи находятся на тех же позициях, что и на рис.

А.27, Содержимое записи Поля ссылок Рис. А.25. Структура простой сети Ссылки Ссылки на клиентов на грузовики Рис. А.27. Представление простой сети с помощью связных списков Запись Запись о машине о доставке Запись Запись о клиенте о доставке Рис. А.26. Представление простой сети с помощью индексов Представление сложных сетей Сложньге сети могут быть представлены лгножеством способов. Их можно разбивать на деревья или простые сети, а уже зги простые структуры представлять с помощью одной из рассмотренных только что методик.

Кроме того, их можно представлять непосредственно с помощью индексов. Связные списки не используются СУБД для непосредственного представления сложных сетей. На практике сложные сети почти всегда разбиваются на более простые структуры, позтому далее мы будем рассматривать только такие представления. Распространенный подход к представлению сложной сети состоит в сведении ее к простой сети и последующем представлении получившейся простой 744 Приложение А. Структуры данных Представление простых сетей с помощью связных спискОВ Рассмотрим простую сеть, изображенную на рис. А.25. Прежде всего, зта структура действительно является простой сетью, поскольку все связи в ней имезот вид 1:Х, а записи типа ДОСТАВКА имеют родителей различных типов.

Каждая запись типа ДОСТАВКА имеет в качестве родителей запись типа КЛИЕНТ и запись типа ГРУЗОВИК. Связь между записями КЛИЕНТ и ДОСТАВКА имеет вид 1 гн, поскольку одному клиенту может доставляться несколько заказов, Связь между записями ГРУЗОВИК и ДОСТАВКА также имеет вид 1:п(, поскольку различные заказы могут доставляться одним и тем же грузовиком (если считать, что размеры доставляемых товаров достаточно малы, чтобы поместиться на одном грузовике). Эзстеззпляр такой сети показан на рис.

А.26. Рис. А.26. Пример простой сети со структурой, соответствующей рис. А.25 Чтобы представить простую сеть с помощью связных списков, для каждой связи 1:Тч нужно создать набор указателей. В данном случае это означает, что нужно создать один набор указателей, связываюшпй записи КЛИЕНТ и ДОСТАВКА, и один набор указателей, связываюшяй записи ДОСТАВКА и ГРУЗОВИК.

Так, например, запись КЛ И ЕНТ будет содержать один указатель (на первую связаннуго с ней запись ДОСТАВКА), запись ГРУЗОВИК будет содержать один указатель (на первую связанную с ней запись ДОСТАВКА), а запись ДОСТАВКА будет иметь два указателя; один — на следующую запись ДОСТАВКА, принадлежащую той же записи КЛИЕНТ, и на следуюшую запись ДОСТАВКА, приналлежашую той же записи ГРУЗОВИК. Эта схема изображена на рпс. А.27. Простая сеть имеет по меныией мере две связи 1:и(, каждая из которгях может быть представлена с помошью индекса, как было показано в ходе обсуждения Относительный номер записи 1 2 3 4 5 6 7 6 9 10 Представление бинарных связей 745 Обратите внимание, что связь записей СТУДЕНТ и ЗАНЯТИЕ с записью пересечения имеет внд 1:Тч.

Таким образом, мы создали простую сеть, которую можно представить с помощью связных списков илн индексов, как было показано ранее. Файл с примером такой простой сети, для представления которой используются связные списки, изображен па рис. А.31. Относительный номер записи Содержимое записи Поле ссылки Ссылки Ссылки на студентов на предметы Рио. А.З1. Пример сети со структурой, соответствующей рис.

А.зо Резюме по представлению связей Па рис. А.32 изображены все способы представления связей между записями. Деревья могут быть представлены с помощью последовательных ст1нсков (хотя мы не обсуждали этот подход), связных списков или индексов. Последовательные списки не используются в СУБД. Простую сеть можно разбить на деревья и затем представить с помощью соответствующих структур данных, а можно представить непосредственно с помощью связных списков или индексов. Сложную сеть можно преобразовать в дерево или в простую сеть (с помощью записей пересечения) либо представить непосредственно с помощью индексов.

746 Приложение А, Структуры данных сети с помощью связных списков нли индексов. Обратите, однако, внимание, что связи в сложной сети соединяют между собой две записи, а в простой сети — три записи. Поэтому, чтобы преобразовать сложную сеть в простую, требуется создать третий тип записи. Запись, создаваемая при преобразовании сложной сети в простую, называется записью пересечения (шгегзесг1оп гесогт1). Рассмотрим сложную сеть, отражающую посещение занятий студентами. Запись пересечения будет содержать уникальный ключ записи СТУДЕНТ и уникальный ключ соответствующей ей записи ЗАНЯТИЕ.

Запись пересечения не будет содержать никаких друптх данных приложения, хотя в ней могут быть поля ссылок. Общая структура этой связи показана на рис. А.29. Экземпляр связи СТУДЕНТ-ЗАНЯТИЕ представлен на рис. А,ЗО (здесь предполагается, что имена записей, обозначенные С1, 31 и т, д,, являются уникальными). Рио. А.29. Преобразование сложной сети в простую Рис. А.ЗО. Экземпляр связи СТУДЕНТ-ЗАНЯТИЕ с записями пересечения 7 8 9 10 11 12 13 14 15 16 17 16 19 20 Представление бинарных связей 747 Индексы же могут использоваться для представления как уникальных, так и не- уникальных ключей, Представление вторичных ключей с помощью СВЯЗНЫХ СПИСКОВ Вид связи между записями Рассмотрим файл КЛИЕНТ, структура которого показана на рис.

А.ЗЗ. Первичным ключом является НомерСчета; есть также вторичный ключ, МаксимальныйКредит. Возможные значения поля МаксимальныйКредит — 500, 700 и 1000. Таким образом, у нас будет три набора записей: с максимальным кредитом 500, 700 и 1000. НомерСчета Имя Адрес МакскмальиыйКредит ОстатокНаСчете ПереичныйКлюч ВторичныйКлюч Рис.

А.ЗЗ. Структура файла КЛИЕНТ Структуры данных Чтобы представить этот вторичный ключ с помощью связных списков, добавим в структуру файла КЛИЕНТ поле ссылки. В этом поле ссылки мы создадим связный список для каждого набора записей. На рис. А.З4 показана база данных с одиннадцатью клиентами, где для краткости показаны только поля НомерСчета и МаксимальныйКредит. К каждой записи добавлено поле ссылки. Предположим, что одна запись в базе данных соответствует физической записи в файле прямого доступа, использующем относительную адресацию записей.

Принцип доступа к файлу Максимальный- Прочие Кредит данные Относительный Номер- номер записи Ссылка Счета 1 2 3 4 НАЧАЛО-500 = 1 НАЧАЛО-700 = 3 НАЧАЛО-1000 = 4 Рис. А.З4. Представление вторичного ключа МаксимальныйКредит с помощью связного списка Чтобы знать, где начинается каждый связный список, нужны три указа~ела. Каждый такой указатель называется головой списка (леан) и хранится отдельно от данных. Головой связного списка покупателей с максимальным кредитом 3500 является запись с относительным номером 1. Запись 1 указьлвает на запись 2, 748 Приложение А. Структуры данных Обычно — — ---- — - Редко Рис. А.З2.

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

Но иногда приложениям нужно обращаться к записям и обрабатывать их по впгоричлому ключу, который обладает иными свойствами, чем первичный. Вторичный ключ может быть уникальным (например, имя преподавателя) или неуникальным (например, почтовый индекс клиента). В этом разделе термином множество (зес) мы будем обозначать все записи, имеющие одинаковое значение неуникального вторичного ключа; например, множество записей, в которых поле Индекс имеет значение 98040. Для представления вторичных ключей можно использовать и связные списки, и индексы, но связные списки пригодны только в случае неуникальных ключей, 5 6 6 9 10 11 Представление вторичных ключей 749 750 Приложение А.

Структуры данных Представление вторичных ключей 751 которая, в свою очередь, указывает на запись 7. Запись 7 имеет нулевое значение в поле ссылки, указывающее на то, что это конец списка, Следовательно, множество записей клиентов с максимальным кредитом 3500 состоит из записей с относительными номерами 1, 2 п 7, Аналогичным образом множество записей клиентов с максимальным кредитом $700 состоит из записен с относительными номерами 3, 5 и 10, а множество записей клиентов с максимальным кредитом $1000 состоит из записей с относительными номерами 4, 6, 8, 9 и 11. Возьмем для примера запрос сколько счетов с максимальным кредитом 31000 имеют баланс, превышающий 3900?.

Чтобы ответить на подобньш запрос, можно использовать связный список записей с максимальным кредитом $1000. При этом считывать из файла и обрабатгявать нужно только те записи, которые принадлежат множеству с максимальным кредитом 31000. Хотя преимущество этого подхода не ощущается явно в этом небольшом примере, представьте, что есть 100 000 записей КЛИЕНТ, и только 100 из них принадлежат искомому множеству. Если бы связного списка не было, пришлось бы провести поиск пп всем 100 000 записям; при наличии же связного списка требуется обработать только 100 записей, а именно записи из множества с максимальным кредитом $1000.

Характеристики

Тип файла
DJVU-файл
Размер
9,56 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6439
Авторов
на СтудИзбе
306
Средний доход
с одного платного файла
Обучение Подробнее