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

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

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

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

Методы, являющиеся обшимп для всех трех классов, например ПолучитьНоиерТелефона, помещаются в класс СОТРУДНИК. Подклассы ПРОДАВЕЦ и ИНЖЕНЕР наследуют эти методы. Следовательно, когда программа вызывает метод ПолучитьНомерТелефона класса ПРОДАВЕЦ пли ИНЖЕНЕР, в реальности вызывается метод ПолучитьНомерТелефона класса СОТРУДНИК. Еслн требования приложения таковы, что сведения о номерах телефонов инженеров должны получаться иным путем, чем о номерах телефонов прочих сотрудников, то класс ИНЖЕНЕР будет иметь собсгвепцузо версию метода ПолучитьНомерТелефона. Эта собственная версия будет использоваться прп вызове программой метода ПолучитьНомерТелефона объекта ИНЖЕНЕР.

Такая характеристика называется лолиморфизмам (ро!ушогрЬ(яп). В ООП часто используются несколько терминов. Логическая структура объекта — его имя, атрибуты и методы — называется объектным классом (оЪ)ест с! азэ). Группа объектных классов называется библиотекой клиссов (с(аьз11Ьгагу). Экземпляры классов называзотся экземплярами объектов (оЬ)ес(!пзга1тсез), пли просто объектами (оЪ) еегэ). Объекты создаются путем вызова конструкторов (сопл(тпс(огз) — программ, получающих оперативную память для объекта и формирующих структуры, необходимые для создания экземпляра объекта. Деструкторы (с(ез(тцс(огз) обьектов— это программы, уничтожающие объекты и освобождающие занимаемую имп память. Объекты могут быть времепиьсчи (ггапяепг) или постоянными (рета(згепг), Временный объект существует только в оперативной памяти компьютера во время выполнения программы.

Когда программа завершается, объект прекращает свое существование. Постоянный объект — это объект, записанный на физический носитель, например диск. Постоянный обьект существует впе пределов программы и может быть считан в оператпвнузо память с физического носителя. Целью ООСУБД является обеспечение постоянного хранения объектов. У объектов имеются как данные, так и методы; следовательно, ООСУБД, в отличае от традиционной СУБД, должна хранить и данные, и программы. Поскольку каждый обьект данного класса имеет олзш и тот же набор методов, методы сохраняются только один раз — как методы класса.

В отличие от методов, значения элементов данных являются уникальными для экземпляра обьекта, поэтому данные каждого экземпляра объекта должны храниться отдельно. Эту мысль иллюстрирует рис. 18.1. На самом деле немногие ООСУБД в настоящий момент обеспечивают постоянное хранение методов, цо, вероятно, в будушегя эта ситуация изменится. Объектный класс КЛИЕНТ Набор методов является единым дпя всех зкземпляров одного класса Данные каждою зкземппяра объекта хранятся отдельно Рис. 18.1. Пример обьекта КЛИЕНТ Пример ООП В табл. 18.1 и в листинге 18.1 показан фрагмент обьектно-ориентированного интерфейса и пример метода.

Чтобы не углубляться в детали, не имеющие значения для т1астоятцего изложения, код написан в обобщенной форме, соответствующей принципам объектно-ориентированного программирования, а не каколзу-либо реальному языку программирования. Эту форму следует рассматривать как нечто вроде псевдокода для объектной программы. Объект Атрибуты Методы СОТРУДНИК Создать Сохранить Уничтожить Номер (П) Имя [Я) Всегокомиссионных(П) Всегозаказов(ПУУ) ПРОДАВЕЦ (подкласс класса СОТРУДНИК) КЛИЕНТ лрооотжониеФ Таблица 18.1.

Объекты, методы и атрибуты Создать Сохранить Уничтожить Назначить(ЗАКАЗ, Индекс) Создать Сохранить Уничтожить Назначить[ЗАКАЗ) Найти Имя (П) Телефон(П) Индекс (П) Текущийбаланс(ПУУ) Пример ООП 697 Таблица 18.1 (продолжение) Атрибуты Объект Методы Номер(й) Название (й) Описание(й) Цена(й) Создать Сохранить Уничтожить ТОВАР Найти (Номер) Взять(ЗАКАЗ, Количество) Положить (ЗАКАЗ, Количество) Найти Создать Номер (Н) Дата (Н) Сумме(й) ИмяКлиенте (Н) ИмяПрсдввцв(й) ЗАКАЗ Сохранить Уничтожить Распечатать !Т Клиент = Но)Ь(пя 696 Глава (В.

Объектно-ориентированные базы данных Листинг 18.1. фрагмент объектно-ориентированной программы ЗАКАЗ!Создать шегцоб Отш Клиент аз оЬ>ест. Продавец аз оЬ)ест. Товар аз оЬ>есг Отш СуммаЗаиаэа аз Сцггепсу ДатаЗакаэа аз Васе, НомерЗахаза аз КцшЬег О(ш СтрокаЗаиаза аз 5ггцс!цге ( НомерТовара аз Нцшоег, НазваниеТовара аз Техт(25>. КопичестаоТовара аз Соцп1, ОтложенноеКопичестао аз Соцпс, Стоииость аз Сцггепсу ) (Попучаеи имя клиента из некоторого источника) Бес Клиент = КЛИЕНТ(Найти (ИияКпиента) 1т Клиент = Кос)йпй )Ьеп Бес Клиент = КПИЕНТ!Создать (ИмяКлиента) Епб 11 Клиент!Назначить(не) 5ег Продавец = ПРОДАВЕЦ)Назначить (Ме, Клиент.

Индекс) (Получаен из некоторого источника код и количество единиц первого товара в заказе) Ме.СуммаЗаиаза = О ИЬ(1е Нот НомерТовара.ЕОГ Ме.СтроиаЗахаза)Создать Ме.СтроиаЗаиаза.НоиерТовара = Ноиертовара 5ес Товар = ТОВАР)Найти (НоиерТоаара) (обрабатываеи ошибку, если такого тазара не существует) Ме.СтрохаЗаиаза,НазваниеТовара = Товар. Название Ме.СтроиаЗаиаза.Количество = ТОВАР!Взять (Количество> 11 Ме СтроиаЗаиаза.Количестзо <> Количество Тпеп Ме.СтрохаЗаиаза.бтпоженноеКопичество - Количество Ме,СтроиаЗаиаза.Количество Епб !Г Ме.СтроиаЗаказа.Стоииость = СтрохаЗаказа.Количество * ТОВАР. Цена Ме.СуммаЗаяаэа = Ме.СумиаЗачаза + Ме.СтроиаЗахаза.Стоимость Товар!Сохранить Ме.СтроиаЗахаза!Сохранить (Получаеи из некоторого источника иод и количество единиц следующего товара.

Предполагаеи, что источник устанавливает переиенную ЕОЕ а значение сгце. хо~да все строки заказа обработаны.) ИЬ)1е Епс( Продавец.СуммаПродаж = Продавец.СунмаПродаж + Ме.СуммаЗаказа Клиент.ТекущийБаланс = Клиент.ТехушийБаланс + Ме.СуинаЗаиаэа Продавец.'Сохранить Клиент!Сохранить МЕ(Сохранить Епб ЗАКАЗ!Сохранить В табл. 18.1 показан фрагмент интерфейса нескольких объектов, используемых в приложении обработки заказов. Каждый объект имеет набор методов и атрибутов, открываемых им для доступа извне.

Каждый объект имеет конструктор (метод Создать) и деструктор (метод Уничтожить). У некоторых методов есть параметры: например, метод Присвоить объекта ПРОДАВЕЦ принимает в качестве параметров указатель на объект ЗАКАЗ н значение атрибута Индекс. Атрибуты, помеченные буквой (К), могут только считываться, но не изменяться; атрибуты, помеченные буквами (К(«т), могут и считываться, и записываться. Обозначения в листинге 18й требуют пояснений. Во-вторых, в фигурные скобки заключаются комментарии.

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

Так, КЛИЕНТ!Найти обозначает метод Найти объекта КЛИЕНТ. Точка используется в качестве разделителя между именем объекта и именем одного из его атрибутов. Так, Клиент. Индекс обозначает атрибут Индекс объекта, на который указывает переменная Клиент, В листинге 18.1 используются два особых ключевых слова. Ключевое слово МогЬ(пВ является указателем на объект, представляющий пустое значение. На рисунке выражение обозначает; «сравнить значение объектной переменной Клиент с указателем на пустой объекть. Ключевое слово Ие — зто указатель на объект, код которого 698 Глава 18.

Объектно-ориентированные базы данных Постоянное хранение объектов 699 выполняется в данный момент. Код, приведенный в листинге 18.1, будет выполняться экземпляром объекта ЗАКАЗ, поскольку это код метода данного объекта. Соответственно, Ме здесь указывает на конкретный экземпляр объекта ЗАКАЗ, выполняющий этот код. Метод ЗАКАЗ!Создать начинает свою работу с получения имени клиента, делающего заказ; как конкретно происходит получение этих данных (например, из поля ввода в форме), для нас сейчас ~е важно. Затем вызывается метод Найти объекта КЛИЕНТ, который ищет в базе данных клиента с заданным именем п возвращает указатель на найденный объект.

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

В реальности в этом месте следовало бы снова выполнить проверку на пустое значение переменной Клиент, но для краткости в остальной части программы такая проверка опускается. У объекта КЛИЕНТ имеется открытый для внешнего доступа метод Назначить, с помощью которого заказ назначается определенному клиенту. Из-за инкапсуляции мы не знаем, что делает метод Назначить, но мы вызываем его и передаем ему значение Ме — указатель на текущий объект.

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

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

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

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