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

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

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

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

Чтобы понять, как используются такие массивы, предположим, 5ОЬ> 5ЕЬЕСТ е РаОН ВЩ(инвт; ООТТОТЙОТО НйИЕ 1), йРТ ОН11('299 ', 2), йРТ ОН1Т('399 '„ 1)) 1), йР1 ОН1Т('2В1 ', 2), йРТ ОН1Т('301 ', 1)» что нам нужно создать таблицу с данными о многоквартирном доме. В ней должно быть значение суррогатного ключа, название здания и перечень квартир в здании. Для этого сначала создадим объект для квартиры, а затем запишем его в массив переменной длины, как показано в следуюгпем фрагменте: СКЕЯТЕ ТУРЕ Ар( 0п»! А5 ОВОЕСТ ( Арал(веп(ицвЬег спаг(5Е ИцвЬегйебгоова ппТ); СКЕАТЕ ТУРЕ АРАКТМЕИТ С!5Т! А5 УЯККАУ(50) ОР АРТ 0п1Т Здесь тип АРАКТМЕМТ С15Т! может иметь до 50 элементов типа Ар( Опй.

Следуй>ший оператор создаст таблицу с информацией о домах, использующую этот массив переменной длины: СйЕАТЕ ТАВСЕ В0!СО!И01 ( Вц1101п0!О ИОМВЕК, ИавеНАКСНАй2(50) 0п1(5АРАКТМЕИТ С15Т1); Теперь, чтобы вставить данные в таблицу, мы должны использовать имена массива и его элементов, как показано здесь: 1И5ЕйТ !ИТО 80!СО!И01 (Вц1101п010. Иаве. 0п1(5) УАС055 ( 1, 'Еаа(!аке'. АРАйТМЕИТ С!5Т1(АР( 0п1Т('100', !), (Арг Опть('200', 2).

(Ар( Опт»о('300', 1))); Считывать значения всех сголбпов можно с помощью обычного оператора 5ЕСЕСТ, но только если в предложении ЪУНЕКЕ нет ссылок на элементы Ар( Оп18 На рис.!8.4, 6 показаны результаты оператора 5ЕСЕСТ * для всех строк. Если же вы хотите получить значения Ар( 0пй ипи использовать его значения в предложении Ч(НЕВЕ, вы должны будете вывернуть этот запрос наизнанку, как показано ниже; 5ЕСЕСТ Яраг(вепгицвЬег РКОМ ТАВ(Е ( 5ЕСЕСк 0И1Т5 РВОМ В0!(01И61 ИНЕйЕ Иаае='Еаз()аке') ЫНЕКЕ ЯрагьвепТИцвЬег>100; Этот запрос делает выборку атрибута Арап(1пеп(МО(пЬег из объекта ВИЕТ, являющегося массивом переменной длины.

Таблица В01(01МО обрабатывается как во вложенном запросе. Результатом будет таблипа, содержащая столбец Араг(гпеп(- Ицп»Ьег н две строки — 200 и 300. В Огас!е версии 8 нельзя обновить или удалить отдельные строки в массиве переменной длины с помощью оператора 0РОАТЕ или ОЕСЕТЕ. Вместо этого иеоб- 708 Глава 10. Объектно-ориентированные базы данных Постоянное хранение объектов в Огас)е ?ОЕ ходимо написать процедуру на Р! /8О1., перебирающую массив. Если вы хотите использовать для этоГг цели оператор ОРОАТЕ или ОЕЕЕТЕ, вам нужно создать вложенную таблицу, как описывается в следующем разделе. Вложенные таблицы Вложенные таблицы определяются почти так же, как и массивы переменной длины.

Разница между ними заключается в том, что данные массива переменной длины хранятся в таблице, в которой онп определены, а данные вложенных таблиц — в отдельной таблице. Создать таблицу В01Е01МВ с помощью вложенных таблиц можно посредством следующего оператора: СРЕАТЕ ТУРЕ АРАРТМЕИТ Е15Т2 А5 ТАВЕЕ ОГ Ярт Ощ!и / СРЕАТЕ ТАВСЕ В01Г 01ИО2 ( Во1101гй!О ИОМВЕР, Иаве ЧАРСНАР2(50), Оп11з АРАРТНЕИТ С15Т2) МЕ5ТЕО ТАВСЕ Оп(сз 5ТОРЕ А5 ОИ1Т5 ТЯВЕЕ: Единственное отличие от синтаксиса определения массивов переменной длины состоит в том, что вложенной таблице должно быть дано имя. Здесь таблица названа ОМ1Т5 ТАВЕЕ. На рис.

!8.4, в показан результат выборки 5ЕЕЕСТ * всех строк таблицы ВО1Е01М62; обратите внимание, что он идентичен результату для примера с гиассивом переменной длины. Операторы вставки и запроса, используемые со вложенными таблицами, идентичны тем, которые используются для массивов переменной длины: !И5ЕРТ !ИТО 001С01И62 (Вщ101пй!О, Иаае, Оп1тз) ЧАЕОЕ5 (1. 'Еазг1аРе'.

АРАйТНЕИТ С!5Т2 (Арт Ощ Г(' 100', 1), (Арт Оп11('200', 2), (Яре 0 1( 300 . 1))): 5ЕСЕСТ Яраггаепгйоаоег ГРОМ ТАВСЕ ( 5ЕСЕСТ ОИ!Т5 ГРОМ ВБ!СО!йбг ИНЕЙЕ Мове='Еазт!аРе') ИНЕРЕ АрагтвептйиаЬег>100; Однако, как было обещано, вы можете обновлять и удалять элементы вложенной таблицы: ОРОАТЕ ТАВСЕ 5ЕСЕСТ Оп1тз ГРОМ ВО!СО!Иаг ННЕРЕ Раве='Еазт!аРе') 5ЕТ ИивоегВеогоовз=5 ННЕРЕ Араг1веп(йовЬег>100; ОЕЕЕТЕ ГРОМ ТЯВСЕ ( 5ЕСЕСТ Оп1тз гйОМ ВО!С01ИВ2 ННЕРЕ Раве='Еаз(!але') ННЕйЕ АрагтаептйовЬег=100.

Как можно видеть, массивы переменной длины и вложенные таблицы весьма похожи между собой. но у нпх есть и различия. Во-первых, как уже говорилось, операторы ОРОАТЕ и ОЕЕЕТЕ работают только со вложенными таблццамп. Кроме того, массивы переменной ллнны ограничены максимальным размером, а вложенные таблицы — нет. К тому же, Огас!е хранит массивы переменной длины вместе с таблицей, а данные вложенных таблиц — отдельно. Наконец, в массиве перемешюй длины поддерживается определенный порядок строк, а во вложенной таблице порядок строк может меняться по мере того, как в нее добавляются новые строки. Строчные объекты Строчные объекты представляют собой четвертый способ использования объектных типов в таблицах. Таблица строчных объектов — это просто таблица, содержащая только об ьекты.

Для нащего примера определим объект-квартиру оЬ) АраФпеп(, как прежде: СРЕАТЕ ТУРЕ оЬ3 Яраг~аоот А5 ОВОЕСТ ( Во1!о1пййаве ЧАРСНАР2(25), АрагГвепФовЬег сваг(4). ИоаЬегВейгоовз МОМВЕй); Следующий оператор создаст таблицу с объектами оЬ) Яраг(гпепб !И5ЕРТ 1ИТО АРАРТНЕИТ5 (Во)!01пойаве, Араг1вепсйовоег, ИовЬегВебгоовз) ЧАСОЕ5 ('Ыезтч1еи'. '333'. 2) Следующий оператор нроизведет обновление строки в таблице АРАйТМЕМТ5: ОРОАТЕ араг(веп(з 5ЕТ ИцаоегВеОгоавз = 5 ИНЕРЕ Арагтвеп1йоаЬег = Наконец, удаление строки выполнит следующий оператор: ОЕСЕТЕ ГРОМ АРАРТНЕИТ5 ИНЕРЕ АраггвептйивЬег=' 100'; 710 Глава ЧВ.

Обьектно-ориентированные базы данных Постоянное хранение объектов в Огас!в 711 Объекты Огас!е Ранее было показано, как определяются объектные типы и как пх можно использовать в качестве элементов таблиц. При таких способах хранения объектов объектная структура накладывается на отношения, а результирующие отношения могут обрабатываться с помощью различных вариаций 5(2[-. Но Огас1е предлагает и другой вариант — наложение речяцпонных структур на объекты. Для обработки этих структур 8(2[. непригоден. Этп структуры представ.чяют собой объекты, хранящиеся в базе данных, но манипуляции с ними должны выполняться объектно-ориентированными программами.

Определение объектного типа В листинге 18.2 показаны определения объектных типов Огас1е для системы об- работки заказов, изображенной на рнс. 18.2. Как показано ранее, структура объек- тов и пользовательские типы данных определяются с помощью оператора СИЕАТЕ ТУРЕ. Первые два типа, определенные на рисунке, — это пользовательский тип аЬ) АООИЕ55 (адрес) и массив переменной длины под названием оЬ! РНОИЕ 1151 (список телефонов), имеющий максимальную длину 5, Эти два типа могут ис- пользоваться в операторах СИЕАТЕ ТУРЕ А5 О ВЫЕСТ точно так же, как используются типы данных при создании таблиц.

Листинг 18.2. Описание объектов в Огас)е СИЕЯТЕ ТУРЕ оЬВ АООИЕ55 А5 ОВЛЕСТ 1 51геет НАИСНАй2150) С[ гу ЧАИСНАй2150) 5[ате НЯИСНАй212) 21р НАИСНАйг(!0) Соиптгу ЧАйСНАй2115) ) ! СИЕАТЕ ТУРЕ оЬО РНОМЕ Е[5Т А5 НАййЯУ[5) ОГ ЧАйСНАй21 12) I СИЕАТЕ ТУРЕ оЬ) 5АЕЕ5РЕй50М А5 ОВЛЕСТ 1 5а)езрегзоп10 МОМВЕй, йаве ЧЯИСНАИ2(50), АООгезз оЬЗ АООИЕ55, РЬопейив5 оЬ) РНОМЕ С!5Т ) СИЕАТЕ ТУРЕ оЬО С05ТОМЕй А5 ОВАНЕС[ 1 Сиз(овег[0 МОМВЕй, йаве НАВСНАйг[50), АООге55 оЬЗ ЯООИЕ55. Рйопейивз оЬВ РНОМЕ С[5Т СИЕАТЕ ТУРЕ оЬО 1ТЕМ СИЕАТЕ ТУРЕ оЬЛ Е1ИЕ1ТЕМ [гевйивЬег ! 1евйеГ Оиап[ Су ОиапютуВасИОгиегео Ех[епиеОРг1се А5 ОВЗЕСТ 1 МОМВЕй, йЕГ оЬВ !ТЕМ.

ИОМВЕй, ИОМВЕй. ИОМВЕй ! СИЕАТЕ ТУРЕ 1)51 Е[ИЕ!ТЕМ А5 ТАВ1Е ОГ оЬВ С[НЕ[ТЕМ / СИЕАТЕ ТУРЕ оЬ) [ТЕМ А5 ОВЗЕСТ 1 [тевйивЬег ИОМВЕй. 11евйаве НАИСНАйг[25). Рг1се МОМВЕй ) ! СИЕАТЕ ТУРЕ оЬ) ОИОЕй А5 ОгиегйивЬег ОгиегОасе С1пе[телв 5Ь1рТОАООге55 Сизтгвег 5а[езрегзоп ОВОЕСТ ~ МОМВЕй, ВАТЕ. )151 Е[МЕ[ТЕМ. оЬО АООЯЕ55. йЕГ оЬ) С05ТОМЕй. йЕГ оЬО 5ЯЕЕ5РЕй5ОМ. МЕМВЕй ГОИСТ10й гота[ 11ев5 йЕИОйй МОМВЕй ) Далее в листинге 18.2 определены типы оЬ) 5АЕЕ5РЕИ50И (продавец) и оЬ) С05ТОМЕй (клиент).

В обоих из них задействованы пользовательские типы оЬ) АООИЕ55 и оЬ) РНОИЕ Е[5Т. Такое использование означает, что каждый из объектов оЬ) 5АСЕ5РЕИ50И и оЬ) С05ТОМЕй имеет атрибуты 5(гее( (улица), Сну (город), 5[а(е (штат), 21р (Индекс) и Соип[гу (Страна). Каждый из них имеет также массив переменной длины, содержа|цпй номера телефонов. Следующий оператор СИЕАТЕ ТУРЕ является пустым; он нужен для того, чтобы сообщить синтаксическому анализатору типов Огас1е, что далее последует определение объекта оЬ1 1ТЕМ (товар). Этот оператор позволяет использовать в определении типа оЬ) Е1ИЕ[ТЕМ (строка заказа) символ оЬ) 1ТЕМ, хотя последний еше не был определен. Определение типа оЬ! Е[ИНТЕМ включает атрибуты 1(евйивЬег (номер товара), Оиапп[у (колпчество), Оиап[пуВасйогдегеб (отложенное количество) и ЕхтепИебРпсе (цена с налогом), как показано на рис.

18.2. Однако помимо этого оно включает ссылочный атрибут. Этот атрибут, представляющий собой ссылку на товар и названный 11евйеГ, определен как ИЕГ оЬ) 1ТЕМ. Такая запись означает, что данный атрибут содержит предоставляемое системой значение указателя на 712 Глава 18. Объектно-ориентированные базы данных Постоянное хранение объектов в Огас!е 713 конкретный экземпляр объекта 1ТЕМ. Этот указатель будет действителен вне зависимости от того, находится ли объект, на который он указывает, в оперативной памяти или на диске. Если требуется настройка по адресам, Огас1е выполнит ее автоматически. Разумеется, прикладная программа должна присвоить 1(еейе? значение. Одним из способов сделать это является использование следующего 8()?.-оператора: 1И5ЕЙТ !ИТО !(евйет 5ЕЕЕСТ ЙЕЕ(1(евР(г) ЕЙОМ оЬ) !ТЕМ 1!евРтг ИНЕЙЕ 1(евР(г.!(евйивЬег=10000; Здесь предполагается, что только один элемент имеет значение 1?еУпйвеЬег, равное 1О 000.

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

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

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

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