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

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

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

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

Такая модификация структуры показана на рис.. 10.3, а. Имена суррогатных ключей образованы путем присоединения суффикса Ю к имени таблицы. Структура на рис. 10.3, и является более удачной, поскольку в ней дублируется меньшее количество данных. Столбцы Агйзгйагпе, Т!11е и Сору нет нужды копировать в таблицу Тгапзасйоп. Так как с одной и той же работой может выполняться большое количество транзакций, экономия может оказаться внушительной. На рис. 10.3, б представлена лиаграмма «сущггость — связь» для структуры с суррогатными ключами. Создание, чтение, обновление и удаление экземпляров представлений Предспгавлеяие (угету) — это структурированный список элементов данных из сущностей или семантических объектов, определенных в модели данных.

Экзелгпляр представления (у)ету гпзсапсе) — это представление, заполненное данными из конкретного экземпляра сущности или семантического объекта. На рпс. 10.4, а изображен пример представления для базы данных галереи, структура которой показана на рис. 10.2 и 10.3. Это представление содержит данные о клиенте, его Создание, чтение, обновление и удаление экземпляров представлений 337 !Ошгзакциях и интересах.

В этом представлении для каждого клиента потенци- ально имеется много транзакций, и каждая из транзакций относится к одной ра- б<по. Для одного и того же клиента может быть указано множество имен худож- !шков (это те художники, работами которых клиент интересуется). б Рис. 10.4. Представпение СОЯТОМЕЙ. а — структурированный список атрибутов; б — данные дпя примера Обратите внимание, что атрибут Аг1!зЕИагпе появляется в атом представлении дважды.

В первом случае это имя художника, работу которого приобрел клиент. Во втором случае это имя художника, произведениями которого данный клиент 338 Глава 10. Проектирование приложений баз данных Создание, чтение, обновление и удаление экземпляров представлений, 339 интересуется. В примере на рис. 10А, 6 клиент приобрел работы художников Тоои и Миро, но кроме этих авторов он также интересуется работами художника по имени Деннис Фрггнгс.

Поэтому фамилии Тобеу и МГго появляются в представлении по два раза: в первый раз как значения атрибута !ИОРК.АЙТ15Т.Иап<е, а во второй раз как значения атрибута АЙТ15Т.Иап<е. Напомним, что представление — это структурированный список атриоутов. Поскольку он является структурированным, атрибуты могут фигурировать в представлении неоднократно. Обратите внимание, кроме того, что представление является только списком значений элементов данных. Оно может быль форматировано пли материализовано множеством различных способов: в виде формы, отчета или какого-нибудь другого типа материализации.

Теперь посмотрим, что можно делать с представлением. Начнем с чтения. Чтение экземпляров представлений Чтобы прочитать существующее представление, приложение должно запустить адин или несколько $О1-операторов, считывающих значения элементов данных, и поместить результаты в структуру представления. Данные представления Ссзтоп<ег на рис.

10А были получены путем следования по схеме базы данных двумя путями: один — через таблицу ТЙАИ5АСТ1ОИ, а другой — через таблицу С05ТОМЕЙ АЙТ15Т 1ИТ. Структура 5ОТ -оггераторов такова, что один оператор позволяет проследовать через схему только одним путем. Такгллг образом, данное представление потребует отдельного 5ОГ.-отгератора для каждого пути.

Для первого пути необходимые данные о клиенте по имени Магу !асГ<зоп можно получить с помощью следующего оператора: 5ЕЕЕСТС05ТОМЕР.Ссзтоп'егГО, С05ТОМЕЙ.Иа<пе. С05ТОМЕР.ЯгеаСо<Ге. С05ТОМЕР.Еоса1ИапЬег. АЙТ15Т.Иагпе. ИОРК 111!е. ИОРК.Сору.ТРЯИ5ЯСТГОИ РсгсЬазеОате, ТРЯИ5ЯСТГОИ.5агегрггсе ЕЙОМС05ТОМЕЙ. ТЙАИ5ЯСТ10И, ИОРК, АРТГ5Т ИНЕЙЕС05ТОМЕТ,Ссзтопег10 = ТРАИ5АСТГОИ Ссз1оп<ег10 ЯИОИОРК.ИогКГО = ТЙАИ5ЯТ1ОИ Ко<К!О ЯИО ЯРТ!5Т,Агтгзт10 = ИОРК Яг11з110 АИОС05ТОМЕЙ Иапге = 'дасКзоп, Магу' Проанализируйте этот оператор, глядя на диаграмму связей на рнс.

!0.3, а. Чтобы получить данные по всем трем связям вверху диаграммы, необходимо выполнить три соединения. В контексте разработки приложений результат выполнения 5ОГ.-оператора называется иногда ггаборолг записей (гссог<Гзег). Согласно терминологии МГсгозо!ц этот термин означает отношение в ООП-оболочке. Набор записей имеет методы и свойства. В качестве примера метода можно назвать метод Ореп, примером свойства является свойство СсгзогТуре. Более подробно вы узнаете об этом пз главы 14. Чтобы узнать, работы каких авторов интересу<от клиента, требуется второй МЯГ.-оператор, который следует через таблицу С05ТОМЕЙ АЙТ15Т 1ИТ. Оператор имеет следующий вид: ',~!.ЕСТС05ТОМЕР.Ссзтовег!0, АЙТ15Т.Иагпе ! ЙОМС05ТОМЕЙ.

С05ТОМЕР ЯЙТ15Т-ГИТ. ЯЙТ15Т ИМГРЕС05ТОМЕР.Ссзгоэег10 = С05ТОМЕЙ АЙТ15Т 1ИТ.Сизтоп<ег!0 ЛИОС05ТОМЕЙ АЙТ15Т ГИТ.Ягтгз<!О = ЯЙТГ5Т.Яг<1з<10 ЯИОС05ТОМЕР.Иаие = 'ОасКзоп, Магу' Поскольку атрибут С05ТОМЕЙ.Иап<е не является уникальным, возможно, что дпа набора записей, полученные с помощью приведенных 5ОГ.-операторов, будут «глсржать данные более чем об одном клиенте. Следовательно, в приложении л<глжен быть код, проверяющий значения атрибута Ест!огне<10 в наборах записей и <.называющий между собой правильные строки.

После запуска приложение обладает всеми данными, необходимыми для построенияя одного или нескольких экземпляров представления, изображенного на рпс. ! 0.2 и ГОЗ. То, как конкретно это делается, зависит от используемого языка. !! языке СОВОЕ. данные будут помещены в структуры, определенные в разделе Оата 01ч!з1оп. В Ъ'Гзиа! Ва<йс данные могут быть помещены в структуру или несколько массивов.

В С-г+ плача данные помегцаются в объекты. Здесь мы не ипп,ресуемся этими вопросами. Цель скорее в том, чтобы вы почувствовали, каким образом гг!<<<ложен<<е должно запускать один или несколько ВЯТ--операторов для заполнения структуры данных представления. Пример на языке Гача будет прип<чген в главе 16. Создание новых экземпляров представлений '!тобы создать новый экземпляр представления, приложение должно сначала получить новые данные и связи.

Это чаще всего делается с помощью формы лля ввода данных, но приложения получают также данные от других программ и иными путями. В любом случае, после того как приложение получает новые шачения данных, оно запускает 5ОТ -операторы, сохраняющие эти значения в базе данньгх. Рассмотрим представление Иеп< Ссзтоп<ег на рис. !0.5.

Это представление ис<юльзуется каждый раз, когда новый клиент приобретает у галереи произведение. Оно содержит данные о клиенте, о транзакции и интересах этого клиента. От представ тения, изображенного на рис. 10А, данное представление отличается <см, что в пем содсргкптся больше данных о клиенте, а также тел<, что оно допускает только одну транзакцию. Однако атрибут АЙТ15Т.Иап<е может иметь несколько значений, отражающих интересы нового клиента. Пусть новые данные для этого представления находятся в программной струк- гуре под названием Меч<Сааб Предположим далее, что мы можем обращаться к значениям в структуре, указывая префикс ИегчСсзг перед имеггалги элементов структуры.

Так, ИегчСизбС05ТОМЕЙ.ИаГпе соответствует атрибуту Иапге таблицы С05ТОМЕЙ и структуре ИегчСизб 340 Глава 10. Проектирование приложений баз данных Создание, чтение, обновление и удаление экземпляров представлений 341 СОВТОМЕЙ,Магле СОВТОМЕЙ.Агеассие СОВТОМЕЙ.Соса)нипзьег СОВТОМЕЙ.Аиигевв СОВТОМЕЙ.СИу СОВТОМЕЙ.В!а!е СОВТОМЕЙ2)р ТЙАМВАСТ!ОМ.Ое!еАсцмгеи ТЙАМВАСТ)ОМ Асци(в(!!опрпсе ТЙАМВАСТ)ОМ.Ригсвавепа!е тйАМВАСТ)ОМ.Ва(еврпсе ЧЧОЙК.АЙТ(ВТ.Магпе ЧЧОЙК.Тще ЧЧОЙК.Сору АЙТ!ВТ.Мел!е... Рис. 10.8. Представление Мех Сив(сглег Чтобы записать это представление в базу ланных, мы должна! сохранить данные нового клиента в таблице С05ТОМЕй, сохранить данные новой транзакции в таблице ТКАМ5АСТ10М и созлать строку в таблице пересечения С05ТОМЕК АРТ15Т 1МТ для каждого из художников, работами которых интересуется клиент.

Данные клиента будут записаны следующим 5О[.-операторовс 1М5ЕЙТ 1МТО С05ТОМЕР (С05ТОМЕй.Маше, С05ТОМЕР.АгеаСо([е. С05ТОМЕР.Соса!МишЬег, С05ТОМЕР.АЬ([гевв. С05ТОМЕР.С(гу, С05ТОМЕР.5сате, С05ТОМЕР.21р) ЧАЕОЕ5(йехСиз[.С05ТОМЕЙ.Иаше МехСизЬ.С05ТОМЕЙ.АгеаСьбе, МехСивЕ.С05ТОМЕР.Еоса[йишЬег, МехСи5Ь.С05ТОМЕЙ.А([![гевв, МехСивГ.С05ТОМЕЙ.СТЬу. МехСигб С05ТОМЕР.5[а!е.

МехСизт.С05ТОМЕР.Е(р) Допустим, что при создании новой строки СУБД присваивает суррогатному ключу С05ТОМЕР.Сиз[оп)ег[0 значение. Это значение потребуется нам для того, чтобы завершить создание нового экземпляра представления, и олин из способов его получить — запустить следующий 5ОТ -оператор: ЗЕЕЕСТ С05ТОМЕР.Сигсошег[0, С05ТОМЕР.ЯгеаСо([е, С05ТОМЕР.Соса!МишЬег ( РОМ С05ТОМЕР ИПЕКЕ С05ТОМЕЙ.Маге = МехСив[.С05ТОМЕР.Маше Поскольку атрибут С05ТОМЕР.Мапзе не является уникальным, в наборе записей может оказаться более одной строки.

В этом случае нужно будет найти правильную строку по номеру телефона. Прелположим, что прн необходимости это было сделано, и под именем МевгСив!.С05ТОМЕК.Сиз!о!пег[0 в программную структуру было записано правильное значение. Для сохранения данных о транзакции также булет использоваться оператор 1М5ЕРТ. Олнако при этом надо будет указать значения внешних ключей ТЙАМ5АСТ[ОМ.ЧЧогй10 и ТКАМ5АСТ[ОМ.Сиз!вше![0.

Мы уже показали, как получить .щачеппе атрибута Сиз!оп)ег[0, и теперь осталось только получить значение атрибута Чуогй[0. Эту задачу выполнит следующий 5Я[.-оператор: 5ЕЕЕСТ ИОРК.ИогК[0 ЕйОМ ИОРК, АРТ15Т ИНЕРЕ ИОРК.Ягс!в![0 = ЯЙТ[5Т.Аг[1вс[0 ЯИО АЙТ15Т.Маше = МехСивЬ.ИОРК.АЙТ!5Т.Маше ЯМО ИОРК.Т)!!е = МехСизЬ.ИОРК.Т!Г)е АМО ИОРК.Сору = МехСиз(.ИОРК.

Сору Пусть возвращенное значение суррогапгого ключа сохранено под именем МехСив[.)МОРКЛЧогй[0. Для добавления новой строки в таблицу ТКАМ5АСТ10М можно запустить следующий 50[.-оператор: !М5ЕЙТ 1МТО ТЙАМ5АСТ10М (ТРАМ5АСТ10М.Иогй10. ГРАМ5ЯСТ10М.ОасеЯсцеп ге([, ,РАМ5ЯСТ10й Асцспз111опрг)се. ТЙАМ5ЯСТ[ОМ,РигспавеОа[е. ТРАМ5АСТ10М Сиз!Ьшег[0. ТРЯМ5ЯСТ[ОМ 5а!евршсе) ЧАЕОЕ5 (МехСивг ТРАМ5АСТ!ОМ,Иогй[0, МехСивЬ.ТйЯМ5АСТ[ОМ.Оа1еЯсцш ге![.

МехСивЬ.ТРАМ5ЯСТ!ОМ.Асцизв111опрг1се. МехСизг.ТРАИ5ЯСТ[ОМ.РигспазеОаЬе, МехСивЕ.ТРЯМ5АСТ[ОМ.Сигбошег[0, МехСивТ.ТРЯМ5АСТ[ОМ.5а1еврг1се) Теперь осталось только создать строки в таблице пересечения С05ТОМЕЙ АЙТ15Т 1МТ. Для этого нам нужно получить атрибут Аг[[в[10 кажлого художника, работами которого интересуется клиент, и затем создать новую строку в таблице пересечения. Эту логику иллюстрирует следующий фрагмент псевдокода: Рог еасййехСиз[.АЙТ!5Т,Маше 5ЕЕЕСТ ЯРТ!5Т.Аг[!зс[0 342 Глава 10.

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

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

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

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