Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Преобразование классов в отношения




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

Преобразование каждого класса или подкласса в отношение

Первый способ предусматривает преобразование каждого класса или подкласса в отношение. Применительно к иерархии, приведенной на рис. 1.3, при использовании этого способа должны быть созданы следующие четыре отношения:

Staff (StaffNo, FName, LName, Sex, DOB, Salary)

Manager (StaffNo, Bonus, StartDate)

SalesPersonnel (StaffNo, SalesArea, CarAllowance)

Secretary (StaffNo, TypingSpeed)

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

К сожалению, в этой реляционной схеме теряется семантическая информация: эта схема не позволяет определить, какое отношение соответствует суперклассу и какие - подклассам. Это означает, что необходимо вложить информацию об этом в каждое приложение, но как уже было сказано, при других обстоятельствах такое решение может привести к дублированию кода и создает предпосылки к возникновению несогласованности в базе данных.

Преобразование каждого подкласса в отношение

Второй способ предусматривает преобразование каждого подкласса в отношение. Применительно к иерархии, приведенной на рис. 24.6, при использовании этого способа должны быть созданы следующие три отношения:

Manager (StaffNo, fName, IName, sex, DOB, salary, bonus, mgrStartDate)

SalesPersonnel (StaffNo, fName, IName, sex, DOB, salary, salesArea, carAllowance)

Secretary (StaffNo, fName, IName, sex, DOB, salary, typingSpeed)

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


mylektsii.ru - Мои Лекции - 2015-2019 год. (0.009 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал