Дж. Рамбо, М. Блаха - UML 2.0 - Объектно-ориентированное моделирование и разработка (1158633), страница 103
Текст из файла (страница 103)
Производительность БЯ1. выигрывает от сокращения трафика взаимодействия (вычисление производится только на сервере) и от использования устойчивых алгоритмов РСУБД. В качестве примера рассмотрим полную модель банкомата из главы 17. Предположим, что мы хотим подготовить месячный отчет по транзакциям для каждого счета. Мы могли бы опросить базу данных, а потом работать с результатами отдельных запросов.
Лльтернативный подход состоит в использовании команды ЯО)., которая сразу же создаст необходимый отчет (лнстинг 19.13). В нашем примере именами с двоеточиями обозначены переменные программы, передаваемые запросу Як1.. Листинг 19.АЗ. Перенос функциональности в код 5Яс яеьест т.басе с1ве, О.авоппс, О.сгпб гнои Вапг В, Ассоопс А, Орбасе О, невосе тгапаасс1оп т инкнк в.ьапс 1О - А.Ьапс 1О АНО А.ассоипг 1О = О.ассоппг 1О АЧО О.сгапаасс1оп То = т.сгапаассгоп 1о Ано В.Ьапн паве = :авапнваве АЫО А.ассоопг собе = :апАссоопгеобе АНО Т.баое С1ве >= :авгагСОаСе АНО т.басе с1ве <= :апкпбоасе ОВОКН Вт т.баое Саве; 19.7.
Объектно-ориентированные базы данных Объектно-ориентированная база данных представляет собой долговременное хранилище объектов, состоящих из данных и поведения. В обычных языках программирования объекты прекращают свое существование после завершения программы. В объектно-ориентированной базе данных существование объектов не ограничивается рамками выполнения программы. Объектно-ориентированная СУБД (ОЪ|есг-ог)епсед ОВМС вЂ” ОООВМЯ) управляет данными, программным кодом и связанными структурами, формирующими объектно-ориентированную базу данных. В отличие от РСУБД ООСУБД значительно отличаются друг от друга синтаксисом и возможностями. ООСУБД появились на рынке относительно недавно.
Коммерческое использование РСУБД началось в 70-х годах ХХ века, тогда как ООСУБД начали появляться только в 90-х. Разработка ООСУБД имела две основные цели. 19.8. Практические рекомендации 433 Программисты недовольны РСУБД. Многие программисты не способны понять принципы РСУБД н хотят работать с чем-то более привычным. РСУБД отвечают декларативным принципам (запросы описывают характеристики, которым должны отвечать требуемые данные), тогда как большинство языков программирования имеют императивную природу (выражаются в виде последовательности шагов).
Более того, РСУБД плохо сопрягаются с большинством языков программирования, а разработчикам хочется иметь более удобный интерфейс. Нужно отметить, что перечисленные причины не являются достаточно вескими для выбора ООСУБД при реализации проекта. РСУБД доминируют на рынке, и это положение не изменится в ближайшем булушем. Программистам не следует переходить к ООСУБД из-за разочарования в РСУБД, им лучше научиться пользоваться РСУБД. С коммерческой точки зрения РСУБД являются более зрелыми, они характеризуются надежностью, масштабируемостью и легкостью администрирования.
Потребность в особых функциях. РСУБД не обладают возможностями, которые нужны некоторым специальным приложениям. ООСУБД позволяют работать с более широкими типами данных и обращаться к низкоуровневым примитивам. Эта причина может считаться достаточной для перехола на ООСУБД.
Если достаточно сложное приложение очень важно для вашего бизнеса, ООСУБД может упростить его разработку. Инженерные приложения, системы мультимедиа и искусственного интеллекта в некоторых случаях выигрывают от использования ООСУБД. 19.8. Практические рекомендации В этом разделе мы приводим некоторые практические рекомендации по реализации объектно-ориентированного проекта в реляционной базе данных. Нормальные формы. Нормальные формы применимы к структуре базы данных независимо от подхода, использовавшегося при разработке модели. Однако если ваша объектно-ориентированная модель непротиворечива, необходимости проверять нормальные формы нет (раздел 19.1.3).
Классы. Отобразите каждый класс в таблицу, а каждый атрибут класса— в столбец этой таблицы (раздел 19.3.1). Ассоциации. Для простых ассоциаций типа «один-к-одному» и «один-комногим» используйте встроенный внешний ключ. Для всех прочих ассоциаций создавайте отдельную таблицу (раздел 19.3.2). Обобщения. Прн единичном наследовании отобразите суперкласс и все его подклассы в отдельные таблицы (раздел 19.3.3.).
Индивидуальность. Мы рекомендуем использовать объектную индивидуальность. Этот подход обладает сугдественными преимуществами (раздел 19.3А). 434 Глава 19 ° Базы данных ° Внешние ключи. Определяйте ограничения для всех внешних ключей. Для каждого подкласса укажите параметр оп Ые1еге сизсаИе для внешнего ключа его суперкласса. Для внешних ключей некоторых ассоциаций тоже следует указывать этот параметр, в зависимости от смысла модели (раздел 19А.1). ° Перечисления. Используйте ограничения 5ЯЕ для работы с перечислимыми типами (раздел 19А.2).
° Индексы. Создавайте индексы для всех внешних ключей, которые не являются основными или возможными ключами. Вы можете создать дополнительные индексы для часто выполняемых запросов, а также использовать специальные механизмы оптимизации РСУБД (раздел 19А.З). ° Представления. Определение представлений позволяет консолидировать объекты, разделенные на таблицы суперклассов и подклассов. Представления удобны для чтения данных, но не для записи, которая поддерживается РСУБД лишь частично (раздел 19АА).
° Взаимодействие с языком программирования. При реализации взаимодействия программы с базой данных следует рассмотреть все имеющиеся возможности (раздел 19.6.1). ° Преобразование данных. Полезно бывает загрузить данные из файлов в вспомогательные таблицы. После этого обработка данных может осуществляться мощными средствами 501.. Код на этом языке писать быстрее и проще, чем на других языках программирования (раздел 19.6.2). ° Инкапсуляция и оптимизация запросов. Помните о противоречии между двумя этими принципами. Принимайте отдельное решение по каждому вопросу (раздел 19.6.3). ° Объектно-ориентированные базы данных.
О них следует вспоминать только тогда, когда их возможности действительно необходимы приложению (раздел 19.7). 19.9. Резюме Система управления базой данных — это программное обеспечение, предоставляющее универсальную функциональность для хранения н чтения данных, а также для управления доступом к ннм. СУБД защищает данные от случайных потерь и делает их доступными для совместного использования. Существует несколько парадигм СУБД, но для разработки новых приложений чаще всего используются реляционные СУБД. Существуют и объектно-ориентнрованные СУБД, но их использование ограничено по прагматическим соображениям.
Объектно-ориентированные модели очень удобны для реализации в РСУБД. Разработчик может мыслить абстрактно, откладывая детали реализации на потом. При правильной реализации непротиворечивые объектно-ориентированные модели превращаются в расширяемые, эффективные н легкие для понимания Литература 435 базы данных. В табл. 19.1 и 19.2 приведены общие правила реализации структуры РСУБД. При реализации программной логики следует стремиться к максимально широкому использованию языка БЯ1. Таблица 19.3. Ключевые понятия главы потенциальный ключ реализация обобщений индекс нормальная форма связь языка программирования с базой данных преобразование данных база данных система управления базой данных (СУБД) внешний ключ индивидуальность реализация ассоциаций реализация классов нуль объектно-ориентированная СУБД первичный ключ реляционная СУБД ЯО1.
представление Библиографические замечания Литература (В!аЬа-98) МкЬае1 В1аЬа апд Ъч'1111ат Ргешег!ащ. ОЬ1есг-ОПепгес1 Мог(е!!п8 аЫ Пез18п 1ог ТтагаЬазе Арр!кайопз. Пррег БатЫ1е Ючег, Ы): Ргепйсе На!1, 1998. [СЬапй-03) Ресег Н. СЬап8. А р1аг[огш 1пг[ерепс(епг гпЫсПешаге агсЬйесгцге 1ог ассезгйп8 дагаЪазез оп а дагаЪазе зегчег оп гйе 1ЧеЬ. 1ЕЕЕ Соп[егепсе оп Е!естго/ !п1оппаВоп ТесЬпо1ойу, 1пг(1апаро!1з, 2003. [СЬацдЬг1-98] А[гта! В. СЬаЫЬг! апг( Магу 1.оопцз. ОЬ)ест РагаЬазез ш Ргасбсе. !)ррег БаИ!е Р1чег, Ы[: Ргепске Най РТЕ, 1998.
[Е1гпазп'-00) Вашег Е!шазп' апг( БЬапйапг В. ХачагЬе. РцМашепга!з о1 РагаЬазе Бузгегпз, ТЫп1 Ег(1Боп. Вес(тчоот( С!ту, СА; Веп)аш!и/Сцшш1пйз, 2000. [Ееач!гг-00) Хеа! Ьеач!гп тч'Ьасечег Ьаррепег( го оЬ]ест-ог!епгег( г1агаЬазез? 1ЕЕЕ Согпрцгег, Ацйцзс 2000, 16 — 19. Принципы СУБД и РСУБД описаны во множестве хороших книг. В качестве отличного учебника, объясняющего концепции баз данных, можно порекомендовать (Е!щазп'-00].