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

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

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

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

Если АТД-значенне создаегся как столбец таблицы, оно будет сохранено вместе с этой таблицей. Однако сослаться на этот абстрактный тип данных будет невозможно, кроме как через имя таблицы. Если АТД-значение создается функцией, оно буде~ временным и прекратит свое существование при освобождении данной функцией памяти.

Код в листинге 18.4 определяет АТД-обьект Сотрудник как тпп. Имя типа может использоваться в определениях таблиц точно так же, как и встроенные типы ланных. В листинге 18.5 определена таблица Отдел; у нее есть атрибут НазваннеОтдела типа СНАК(10), атрибут Менеджер типа Сотрудник и атрибут Администратор, также типа Сотрудник. Таким образом, этот абстрактный тип данных используется в определении таблицы нарялу с любыми другими типами. Листинг 18.8.

Определение таблицы с использованием абстрактного типа данных Сотрудник СКЕАТЕ ТАВЕЕ Отдел (НазваниеОгдеда Менеджер Администратор пользуется ключевое слово ?И5?АИСЕ. Если оно указано, то в столбце хранятся данные объекта. Если нет, в столбце хранится указатель на объект. Если абстрактный тип данных представляет собой АТД-значение, то полразумевается 1И5ТАИСЕ. В листинге 18.5 для столбца Менеджер ключевое слово 1И5ТАИСЕ не указано, но оно указано для столбца Администратор. Это означает, что кажлая строка таблицы Отдел будет в столбце Менеджер содержать указатель на объект типа Сотрудник, а в столбце Администратор — данные и методы.

Открытые элементы данных обьекта могут использоваться в 5Я?.-операторах точно так же, как обычные столбцы таблиц. Например, для таблицы в листинге 18.! рассмотрим следуюшпй 5Я?;запрос 5ЕСЕСТ НвзваннеОтдепа, Менеджер.б!О, Менеджер.Иля.

Адкинистратор.010, Администратор.Икя ЕКОМ Отдел При выполнении этого запроса из таблицы Отдел будут извлечены атрибуты НазваннеОтдела, Менеджер.010, Администратор.010 и Администратор.Имя. По значению атрибута Менеджер.010 СУБД найдет экземпляр обьекта Сотрудник, на который он указывает, Затем СУБД извлечет из этого обьекта атрибут Менеджер,Имя и возвратит его в ответе на этот запрос. Результат будет таким же, как если бы все объекты Менеджер хранились в таблице. Очевидно, что если 0?П, хранящийся в таблице, стал недействительным по причине удаления объекта, на который он указывает, СУБД должна будет каким-то образом обработать эту ошибку. Рассмотрим 5Я?;оператор 5ЕСЕСТ НазваннеОтдела.

Менеджер Иня. Менеджер.Зарппага ЕКОМ Отдел Для выполнения этого оператора СУБД нужно будет обратиться к таблнце Отдел, получить 01?) менеджера, получить экземпляр объекта Сотрудник, который представляет этого менеджера, и вызвать его функцию узнать Зарплату, которая материализует виртуальный столбец Зарплата. Функция узнать Зарплату может при запуске выполнять аутентификациго пользователя, например, запрапшвая имя пользователя пли пароль либо предлагая выполнить какие-то другие действия, прежде чем СУБД сможет получить запрашиваемые данные. Когда функция узнать Зарплату возвратит значение или код ошибки, указываюший, что данные предоставлены не будут, СУБД может выполнить форматирование данных лля этого сотрудника.

Аналогичные действия потребуются для обработки каждой строки таблицы Отдел. Закрытые элементы данных являются локальными переменными объекта. Соответственно, следуюший 50?.-запрос является ошибочным: 5ЕСЕСТ нвзввннебтдела Менеджер.ТекущаяЗарплага ЕКОМ Отдел Единственный способ извлечь значение атрибута ТекущаяЗарплата из объекта Сотрудник — через функцию узнать Зарплату. 718 Глава 18.

Объектно-ориентированные базы данных Стандарты ООСУБД 719 Столбцам могут присваиваться значения, как и в обычных ЗЯ) -операторах. Так, например, выражение ОРОАТЕ Отдел 5ЕТ Адккнкстратор.Икв = "Фред П. Джонсон" ИНЕЛЕ НазваниеОтдепа = "Бухгалтерия" изменит значение атрибута Имп объекта Администратор, существующего в отделе под названием «Бухгалтерия», В связи с тем, что некоторые объекты представляются указателями, а не значениями данных, иногда можно получить неожиданные результаты. Рассгкотрим следующий запрос: ОРОАТЕ ОтдЕл 5ЕТ Менеджер.Икя = "Фред П. Джонсон" ННЕЛЕ НазваниеОтдепа = "Бухгалтерия" Этот оператор не назначает сотрудника по имени Фред П.

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

Чтобы заменить менеджера бухгалтерии другим сотрудником, которого зовут Ф ред П. Джонсон, объект Менеджер должен указывать на правильный экземпляр объекта Сотрудник. Это можно сделать с помощью следующего 5Я).-кода: ОРОАТЕ Отдел 5ЕТ Менеджер = 5ЕСЕСТ Сотрудник.010 ЕЛОМ Сотрудник ННЕЛЕ Имя = "Фред П. Джонсон" Н)ЕЛЕ НазваниеОтдепа - "Бухгалтерия С концептуальной точки зрения этот оператор является правильным. Будет ли он в реальности работать в СУБД, реализующей стандарт ЗЯБ, — это, разумеется, зависит от разработчиков СУБД. Как уже отмечалось, поскольку ЗЯ).З находится в стадии разработки и поскольку ни в одном продукте этот стандарт еше не реализован, можно считать, что данное изложение указывает стратегическое направление развития промьнпленности, а не конкретный промышленно- стандартизованный синтаксис.

Определегше абстрактных типов данных дает возможность создавать, хранить и изменять объекты в Я)1.. Стандартом БО).З предложены и другие изменения в Ял1.. Рассмотрим их далее. Табличные расширения 8013 ЗЯБ расширяет определение таблиц в нескольких отношениях. Прежде всего„ таблицы в ЯЯ) 3 имеют идентификатор строки (говг !с)епс!Е!ег), представляющий собой уникальный идентификатор каждой строки таблицы.

Этот идентификатор — то же самое, ч го и суррогатный ключ, термин, который мы использовали в предыдуших главах, Приложения могут использовать этот идентификатор, если он вводится явно путем указания в определении таблицы фразы И!ПН 10ЕНТПУ.

В любой таблице, определенной таким образом, создается скрытый столбец под названием 10ЕМТ1ТУ. Значения пз этого столбца могут использоваться приложением, но он не включается в результаты выполнения оператора 5ЕЕЕСТ *. Рассмотрим таблицу в листинге 18.6 и следующие два БЯ).-оператора: 5есест и»впреподаватепя, Идентификатор ЕЛОМ ПРЕГОДАВАТЕЛЬ 5ЕСЕСТ * БЛОМ ПРЕПОДаВАТЕЛЬ Результатом первого оператора будет таблица с двумя столбцамп, в первом из которых будет имя преподавателя, а во втором — значение идентификатора строки. Результатом второго оператора будет таблица с тремя столбцами: ИмяПреподавателя, Телефон и Офис.

Листинг 18.6. Определение таблицы с ключевым словом УУ)ТН )ОЕ)ЧТ)ТУ СЛЕАТЕ ТАВСЕ ПРЕПОДАВАТЕЛЬ Н!ТН !ОЕЛТ!ТУ !ИкяПреподаватепя сдаг (!0), ,епефон спас (7), Офис сваг (5) Вторым дополнением к концепции таблицы в 5Я) З является введение трех типов таблиц: 5ЕТ, МОЕТ15ЕТ и Е15Т. Таблица типа 5ЕТ вЂ” это таблица без повторявшихся строк; таблица типа МОП15ЕТ может иметь повторяющиеся строки и эквивалентна понятию таблицы в ЗЯЕ92. (Это определение, конечно, игнорирует столбец 10ЕНП)У, поскольку с учетом этого столбца нп одна таблица не имеет повторяющихся строк.) Наконец, таблица типа С15Т вЂ” это таблица, упорядоченная по одному пли нескольким столбцам.

Третьим дополнением к копцепссгсц таблиц в ЗЯБ является подтаблииа (эцЬ- саЫе). Подтаблппа является подмножеством другой таблицы, называемой иадтаблицей (вссрегсаЫе). Подтаблпца наследует все столбцы своей надтаблицы и может также иметь свои собственные столбцы.

Таблица, имеюгцая подтаблицу цли надтаблицу, имеет неявно определенный идентификатор строки. В листинге 18.7 определены два типа п)эеподавателей: ШТАТНЫЙ ПРЕПОДАВАТЕЛЬ и ВНЕШТАТНЫЙ ПРЕПОДАВАТЕЛЬ. Таблица ШТАТНЫЙ ПРЕПОДАВАТЕЛЬ имеет столбцы ИмяПреподавателя, Телефон, Офис и ДатаЗачнспенняВШтат. Таблица ВНЕШТАТНЫЙ ПРЕПОДАВАТЕЛЬ имеет столбцы ИмяПреподаватепя, Телефон, Офис и ДатаСпедующегоРассмотрения. Хотя эти таблицы определены без ключевого слова )Д)1ТН 10ЕМТ1ТУ, они имеют столбец10ЕМТ1ТУ, поскольку являются подтипами, 720 Глава 18. Объектно-ориентированные базы данных Стандарты ООСУБД 721 Листинг 18.7. Определение подтаблиц СЛЕАТЕ ТАВСЕ ПРЕПОДАВАТЕЛЬ Ш1ТН 1ОЕНТ!ТУ сияяПреподаватепя сваг 1 10). Телефон спас О). Офис сваг СВ) ) следте тАВсе штдтный препОдАВАтель ОЛОел пРепОдАВАтель 1ДатаЗачнспенняВШтат ОаСе) сйедте тАВсе ВнештАтный пРепОдАВАтель ОНОел препОдАВАтель (ДатаСпедующегоРасснотреняя Ваге) Расширения языка 801.

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

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

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

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