Принципы создания и применения объектно-ориентированных систем управления базами данных (СУБД)
Общие понятия системы управления базой данных, основные принципы, преимущества и недостатки. Объектно-ориентированные СУБД. Примеры существующих систем. Характеристика и специфика языков программирования и языков запросов объектно-ориентированных СУБД.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 15.07.2012 |
Размер файла | 34,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru
27
Размещено на http://www.allbest.ru
Курсовая работа
Базы данных
Принципы создания и применения объектно-ориентированных систем управления базами данных (СУБД)
Выполнил
Малыгин И.И.
Содержание
система управления база данных
Введение
Основная часть
1. Общие понятия СУБД. Основные принципы современных СУБД. Их преимущества и недостатки
1.1 Общие понятия
1.2 Основные принципы современных СУБД
1.3 Преимущества и недостатки СУБД
1.4 Объектно-ориентированный подход в БД
2. Объектно-ориентированные СУБД
2.1 Примеры существующих систем
2.2 Языки программирования и языки запросов объектно-ориентированных СУБД
Заключение
Глоссарий
Список использованных источников
Приложения
Введение
Уже на протяжении более полувека человек использует в работе ЭВМ и другие автоматизированные комплексы. С каждым днем объемы информации увеличиваются в геометрической прогрессии, особенно в последние годы в связи с ростом популярности Интернета. Как все знают, использование сети Интернет распространилось в середине девяностых годов. Но немногие знают, что именно это сильно повысило значение и важность технологии баз данных. Как только ранние статические веб-страницы уступили дорогу динамическим, как только большие организации начали использовать Интернет для публикации своих данных, все большее и большее количество сайтов стало зависеть от баз данных. Эта тенденция продолжается и по сей день.
История развития технологий баз данных может быть рассмотрена как в широком, так и в узком аспекте. Например, первые упоминания о БД присутствовали еще в древнем Шумере (4000 г до н.э.) - что, несомненно, представляет собой слишком широкую область изучения, в то время, как в узком аспекте можно рассмотреть более современные (актуальные) понятия.
История современных БД берет свое начало от 1955 года, когда появилось программируемое оборудование обработки записей. На самых ранних стадиях развития информационных технологий использовались списки -- набитые на перфокарте и написанные на магнитной ленте. Со временем, однако, стало ясно, что только немногие проблемы можно решить с помощью таких списков.
До середины 1960-х годов почти все компьютерные хранилища данных были на магнитных лентах. Поскольку лента может обрабатываться только последовательно, данные должны были храниться в виде списков (или последовательных файлов, как они назывались). Однако, хранение даже простейших данных в таком формате чревато большими проблемами. В середине 1960-х стало возможным получение непоследовательного, или прямого, доступа к записям. Базы данных стали разрабатываться по-другому. Изначально стали успешными две конкурирующие архитектуры, или модели. Корпорация IBM разработала и внедрила DL/I (Data Language One, язык данных один), который моделировал данные в базах данных в форме иерархий, или деревьев. Эта модель легко могла использоваться для поддержки данных, таких как сметы материалов и списки деталей, но для общих целей мало подходила. Представление неиерархических сетевых данных было громоздким. В 1970 году группа CODASYL создала модель под названием DBTG (Data Base Task Group, группа задач баз данных). Модель DBTG была готова к представлению как иерархических, так и сетевых данных. DBTG стала основой для ряда коммерчески успешных СУБД в семидесятых и восьмидесятых годах прошлого века. В том же 1970 году Е. Ф. Коддом (компания IBM) впервые была предложена т.н. реляционная модель, которая представляет данные в формате таблиц и давала возможность использования формального аппарата алгебры отношений и реляционного исчисления для обработки данных.
С появлением большого числа микрокомпьютеров стало возможно иметь персональные базы данных. В результате был разработан ряд СУБД для персональных компьютеров. Поскольку компьютеры обладали довольно большой вычислительной мощностью, персональные СУБД предоставляли больше графических интерфейсов пользователя. Кроме того, со временем под влиянием этих продуктов изменились и интерфейсы больших организационных СУБД. Данная технология разрабатывалась для символьноориентированных интерфейсов, которые были распространены для СУБД, предшествовавших персональным компьютерам.
Объектно-ориентированное программирование начало развиваться в середине восьмидесятых годов прошлого века и привело к созданию объектно-ориентированных СУБД. Целью этих продуктов была способность хранить объекты из объектно-ориентированного программирования (например, из языков С++ или Java) в базе данных, не преобразуя их в реляционный формат.
На данный момент существует огромное количество и масса классификаций баз данный, по виду и типу хранения данных, по модели и среде хранения, но в данной работе хотелось бы поговорить об объектно-ориентированных СУБД.
Основная часть
1 Общие понятия СУБД. Основные принципы современных СУБД. Их преимущества и недостатки
1.1 Общие понятия
Стержневые идеи современных информационных технологий базируются на концепции баз данных. Согласно этой концепции, основой информационных технологий являются данные, которые должны быть организованы в базы данных в целях адекватного отображения изменяющегося реального мира и удовлетворения информационных потребностей пользователей.
Одним из важнейших понятий в теории баз данных является понятие информации. Под информацией понимаются любые сведения о каком-либо событии, процессе, объекте.
Данные -- это информация, представленная в определенном виде, позволяющем автоматизировать ее сбор, хранение и дальнейшую обработку человеком или информационным средством. Для компьютерных технологий данные -- это информация в дискретном, фиксированном виде, удобная для хранения, обработки на ЭВМ, а также для передачи по каналам связи.
База данных (БД) -- это организованная структура, предназначенная для хранения информации. Она представляет собой совокупность специальным образом организованных данных, хранимых в памяти вычислительной системы и отображающих состояние объектов и их взаимосвязей и рассматриваемой предметной области.
С понятием базы данных тесно связано понятие системы управления базой данных (СУБД). Это комплекс программных средств, предназначенных для создания структуры новой базы, наполнения ее содержимым, редактирования содержимого и визуализации информации. Под визуализацией информации базы понимается отбор отображаемых данных в соответствии с заданным критерием, их упорядочение, оформление и последующая выдача на устройство вывода или передача по каналам связи.
В мире существует множество систем управления базами данных. Несмотря на то, что они могут по-разному работать с разными объектами и предоставляют пользователю различные функции и средства, большинство СУБД опираются на единый устоявшийся комплекс основных понятий.
1.2 Основные принципы современных СУБД
· Значительная часть современных СУБД способна работать на компьютерах различной архитектуры под управлением разных операционных систем.
· Подавляющее большинство современных СУБД обеспечивают поддержку полной реляционной модели данных, обеспечивая целостность категорий и целостность на уровне ссылок.
· Современные СУБД для определения данных и манипуляции ими опираются на принятые стандарты в области языков, а при обмене данными между различными СУБД базируются на существующих технологиях по обмену информацией.
· Многие существующие СУБД относятся к так называемым сетевым СУБД, которые предназначены для поддержки многопользовательского режима работы с базой данных и поддержки возможности децентрализованного хранения данных.
· Такие СУБД имеют развитые средства администрирования баз данных и средства защиты хранимой в них информации.
· Подобные СУБД имеют средства подключения клиентских приложений.
· Современные СУБД характеризуются опытами применения концепции фундаментальной идеи объектно-ориентированного подхода, способствующей повышению уровня абстракции баз данных, являющейся перспективным этапом на пути развития технологий баз данных.
1.3 Преимущества и недостатки СУБД
Преимущества:
+ Контроль за избыточностью данных. При использовании БД предпринимается попытка исключить избыточность данных за счет интеграции файлов, чтобы избежать хранения нескольких копий одного и того же элемента информации..
+ Непротиворечивость данных. Контроль над избыточностью данных позволяет сократить риск возникновения противоречивых состояний. Если элемент данных хранится в базе только в одном экземпляре, то для изменения его значения потребуется выполнить только одну операцию обновления, причем новое значение станет доступным сразу всем пользователям базы данных. А если этот элемент данных по какой-то причине хранится в базе данных в нескольких экземплярах, то такая система сможет следить за тем, чтобы копии не противоречили друг другу.
+ Совместное использование данных. Файлы обычно принадлежат отдельным лицам, которые используют их в своей работе. В то же время, база данных принадлежит группам пользователей или всей организации в целом и может совместно использоваться всеми зарегистрированными пользователями. При такой организации работы большее количество пользователей может работать с большим объемом данных.
+ Поддержка целостности данных. Целостность базы данных означает корректность и непротиворечивость хранимых в ней данных. Целостность обычно описывается с помощью ограничений, т.е. правил поддержки непротиворечивости, которые не должны нарушаться в базе данных.
+ Повышенная безопасность. Безопасность БД заключается в защите данных от несанкционированного доступа со стороны пользователей. Без привлечения соответствующих мер безопасности интегрированные данные становятся более уязвимыми. Система обеспечения безопасности может быть выражена в форме учетных имен и паролей для идентификации пользователей, которые зарегистрированы в этой базе данных.
+ Применение стандартов. Интеграция позволяет определять и применять необходимые стандарты. Например, стандарты предприятия, государственные и международные стандарты могут регламентировать формат данных при обмене ими между системами, соглашения об именах, форму представления документации, процедуры обновления и правила доступа.
+ Повышение эффективности с ростом масштабов системы. Комбинируя все рабочие данные в одной базе данных и создавая набор приложений, которые работают с одним источником данных, можно добиться существенной экономии средств.
+ Повышение доступности данных и их готовности к работе. Данные в результате интеграции становятся непосредственно доступными конечным пользователям. Во многих СУБД предусмотрены языки запросов или инструменты для создания отчетов, которые позволяют пользователям задавать непредусмотренные заранее вопросы и почти немедленно получать требуемую информацию на своих терминалах, не прибегая к помощи программиста.
+ Улучшение показателей производительности. На базовом уровне СУБД обеспечивает все низкоуровневые процедуры работы с файлами, которую обычно выполняют приложения. Наличие этих процедур позволяет программисту сконцентрироваться на разработке более специальных, необходимых пользователям функций, не заботясь о подробностях их воплощения на более низком уровне. Результатом является повышение производительности работы программистов и сокращение времени разработки новых приложений.
+ Улучшенное управление параллельностью. В большинстве СУБД предусмотрена возможность параллельного доступа к базе данных. Поэтому при одновременном доступе к одному и тому же файлу двух пользователей исключается возможность конфликта двух запросов, результатом которого в других системах обычно является потеря информации или утрата ее целостности.
+ Развитые службы резервного копирования и восстановления. В современных СУБД предусмотрены средства сокращения объема потерь информации от возникновения различных сбоев.
Недостатки:
- Сложность. Обеспечение функциональности, которой должна обладать каждая хорошая СУБД, сопровождается ее значительным усложнением. Чтобы воспользоваться всеми преимуществами СУБД, проектировщики и разработчики баз данных, администраторы данных и баз данных, а также конечные пользователи должны хорошо понимать функциональные возможности СУБД.
- Размер программного обеспечения. Сложность и широта функциональных возможностей приводит к тому, что СУБД становится программным продуктом, который может занимать много места на диске и требовать большого объема оперативной памяти для эффективной работы.
- Стоимость СУБД. В зависимости от имеющейся вычислительной среды и требуемых функциональных возможностей, стоимость СУБД может варьироваться в очень широких пределах - от нескольких сот до нескольких сот тысяч долларов. Кроме того, следует учесть ежегодные расходы на сопровождение системы, которые составляют некоторый процент от ее общей стоимости.
- Дополнительные затраты на аппаратное обеспечение. Для удовлетворения требований, предъявляемых к дисковым накопителям со стороны СУБД и базы данных, может понадобиться приобрести дополнительные устройства хранения информации. Более того, для достижения требуемой производительности может понадобиться более мощный компьютер, который, возможно, будет работать только с СУБД.
- Затраты на преобразование приложений. В некоторых ситуациях стоимость СУБД и дополнительного аппаратного обеспечения может оказаться несущественной по сравнению со стоимостью преобразования существующих приложений для работы с новой СУБД и новым аппаратным обеспечением. Эти затраты также включают стоимость подготовки персонала для работы с новой системой, а также оплату услуг специалистов, которые будут оказывать помощь в преобразовании и запуске новой системы.
- Производительность. СУБД предназначены для решения общих задач и обслуживания сразу нескольких приложений, а не какого-то одного из них. В результате многие приложения в новой среде будут работать не так быстро, как прежде.
- Более серьезные последствия при выходе системы из строя. Централизация ресурсов повышает уязвимость системы. Поскольку работа всех пользователей и приложений зависит от готовности к работе СУБД, выход из строя одного из ее компонентов может привести к полному прекращению всей работы предприятия.
1.4 Объектно-ориентированный подход в БД
Начиная говорить об объектно-ориентированных СУБД, необходимо раскрыть общие понятия объектно-ориентированного подхода и их преломление в объектно-ориентированных БД. В наиболее общей и классической постановке объектно-ориентированный подход базируется на нескольких концепциях:
- объекта и идентификатора объекта;
- объекта и идентификатора объекта;
- классов;
- иерархии и наследования классов;
- атрибутов и методов.
Суть объектно-ориентированной БД определяется объектно-ориентированным подходом (см. Приложение А). В нем выделяют инкапсуляцию, наследование и полиморфизм.
Инкапсуляция - объединение данных и программы (кода) в «капсуле», модуле.
Наследование - передача определенных свойств от класса к его производному.
Полиморфизм - возможность переопределения процедуры в производном классе. В «капсулу» заключен объект как реализация класса.
Класс - объединяющая концепция набора объектов, имеющих общие характеристики (атрибуты).
Объект - комбинация элементов данных, характеризующихся атрибутами, и методов их обработки, упакованных вместе в одном модуле. В объекте выделяют метод и данные (см. Приложение Б).
Данные характеризуются атрибутами (свойствами).
Метод - набор подпрограмм, оперирующих с данными.
Метод может начать работать после внешнего сигнала - события.
Любая сущность реального мира в объектно-ориентированных языках и системах моделируется в виде объекта. Любой объект при своем создании получает генерируемый системой уникальный идентификатор, который связан с объектом во все время его существования и не меняется при изменении состояния объекта.
Каждый объект имеет состояние и поведение. Состояние объекта - набор значений его атрибутов. Поведение объекта - набор методов (программный код), оперирующих над состоянием объекта. Значение атрибута объекта - это тоже некоторый объект или множество объектов. Состояние и поведение объекта инкапсулированы в объекте; взаимодействие между объектами производится на основе передачи сообщений и выполнении соответствующих методов.
Множество объектов с одним и тем же набором атрибутов и методов образует класс объектов. Объект должен принадлежать только одному классу. Допускается наличие примитивных предопределенных классов, объекты - экземпляры которых не имеют атрибутов: целые, строки и т.д. Класс, объекты которого могут служить значениями атрибута объектов другого класса, называется доменом этого атрибута.
Допускается порождение нового класса на основе уже существующего класса - наследование. В этом случае новый класс, называемый подклассом существующего класса (суперкласса) наследует все атрибуты и методы суперкласса. В подклассе, кроме того, могут быть определены дополнительные атрибуты и методы. Различаются случаи простого и множественного наследования. В первом случае подкласс может определяться только на основе одного суперкласса, во втором случае суперклассов может быть несколько. Если в языке или системе поддерживается единичное наследование классов, набор классов образует древовидную иерархию. При поддержании множественного наследования классы связаны в ориентированный граф с корнем, называемый решеткой классов. Объект подкласса считается принадлежащим любому суперклассу этого класса.
Одной из более поздних идей объектно-ориентированного подхода является идея возможного переопределения атрибутов и методов суперкласса в подклассе (перегрузки методов). Эта возможность увеличивает гибкость, но порождает дополнительную проблему: при компиляции объектно-ориентированной программы могут быть неизвестны структура и программный код методов объекта, хотя его класс (в общем случае - суперкласс) известен. Для разрешения этой проблемы применяется так называемый метод позднего связывания, означающий, по сути дела, интерпретационный режим выполнения программы с распознаванием деталей реализации объекта во время выполнения посылки сообщения к нему. Введение некоторых ограничений на способ определения подклассов позволяет добиться эффективной реализации без потребностей в интерпретации.
При таком наборе базовых понятий, если не принимать во внимание возможности наследования классов и соответствующие проблемы, объектно-ориентированный подход очень близок к подходу языков программирования с абстрактными (или произвольными) типами данных.
С другой стороны, если абстрагироваться от поведенческого аспекта объектов, объектно-ориентированный подход весьма близок к подходу семантического моделирования данных (даже и по терминологии). Фундаментальные абстракции, лежащие в основе семантических моделей, неявно используются и в объектно-ориентированном подходе. На абстракции агрегации основывается построение сложных объектов, значениями атрибутов которых могут быть другие объекты. Абстракция группирования - основа формирования классов объектов. На абстракциях специализации/обобщения основано построение иерархии или решетки классов.
2. Объектно-ориентированные СУБД
2.1 Примеры существующих систем
Прежде, чем перейти к обсуждению организации некоторых объектно-ориентированных СУБД, следует коротко рассмотреть оказавшие на них влияние предшествующие архитектуры СУБД, а также архитектуры, не являющиеся в традиционном понимании объектно-ориентированными, но близкие по прагматике. Из числа архитектур с традиционной организацией наибольшее влияние на объектно-ориентированные СУБД оказали реляционные системы. Многие объектно-ориентированные системы (по крайней мере, в прототипных вариантах) строятся над некоторой существующей реляционной СУБД. Кроме такого применения реляционных систем для упрощения разработки объектно-ориентированной СУБД, развитые в реляционных СУБД методы применяются и в заново разрабатываемых объектно-ориентированных системах. Непосредственным предшественником объектно-ориентированных СУБД являются системы, поддерживающие организацию сложных объектов. Эти постреляционные системы большей частью появились по причине несоответствия возможностей реляционных СУБД потребностям нетрадиционных приложений (автоматизация проектирования, инженерия и т.д.). По сути дела, в таких системах частично поддерживается структурная часть объектно-ориентированных БД (без возможностей наследования). Многие объектно-ориентированные СУБД (в частности, ORION) разрабатывались на базе предыдущих работ со сложными объектами.
Другой основой объектно-ориентированных СУБД являются так называемые расширяемые системы. Основная идея таких систем состоит в поддержании набора модулей с четко оговоренными интерфейсами, на базе которого можно быстро построить СУБД, опирающуюся на конкретную модель данных или предназначенную для конкретной области применений. В частности, как показывает опыт системы EXODUS, средства расширяемых систем хорошо пригодны и для построения объектно-ориентированной СУБД. Что касается направления третьего поколения СУБД, то, как следует из Манифеста третьего поколения, сторонники этого направления придерживаются принципа эволюционного развития возможностей СУБД без коренной ломки предыдущих подходов и с сохранением преемственности с системами предыдущего поколения. Тем не менее, несмотря на отличающуюся терминологию и смещенные акценты, системы третьего поколения не так уж далеки от объектно-ориентированных СУБД.
Одной из наиболее известных СУБД третьего поколения является система POSTGRES, а создатель этой системы М. Стоунбрекер, по всей видимости, является вдохновителем всего направления. В POSTGRES реализованы многие интересные средства: поддерживается темпоральная модель хранения и доступа к данным и в связи с этим абсолютно пересмотрен механизм журнализации изменений, откатов транзакций и восстановления БД после сбоев; обеспечивается мощный механизм ограничений целостности; поддерживаются ненормализованные отношения (работа в этом направлении началась еще в среде INGRES).
Но одно свойство системы POSTGRES действительно сближает ее с объектно-ориентированными СУБД. В POSTGRES допускается хранение в полях отношений данных абстрактных, определяемых пользователями типов. Это обеспечивает возможность внедрения поведенческого аспекта в БД, т.е. решает ту же задачу, что и ООБД, хотя, конечно, семантические возможности модели данных POSTGRES существенно слабее, чем у объектно-ориентированных моделей данных.
Рассматривая особенности чисто объектно-ориентированных СУБД, следует выделить двух систем - ORION и O2.
Основными функциональными компонентами первой системы являются подсистемы управления памятью, объектами и транзакциями. В ORION-1 все компоненты, естественно, располагаются в одной рабочей станции; в ORION-1SX - разнесены между разными рабочими станциями (в частности, управление объектами производится в рабочей станции-клиенте). Применение в ORION-1SX для взаимодействия клиент-сервер механизма удаленного вызова процедур позволило использовать в этой системе практически без переделки многие модули ORION-1. Сетевые взаимодействия основывались на стандартных средствах операционных систем.
В число функций подсистемы управления памятью входит распределение внешней памяти, перемещение страниц из буферов оперативной памяти во внешнюю, а так же поиск и размещение объектов в буферах оперативной памяти. Как принято в объектно-ориентированных системах, поддерживаются два представления объектов - дисковое и в оперативной памяти; при перемещении объекта из буфера страниц в буфер объектов и обратно представление объекта изменяется. Кроме того, эта подсистема ответственна за поддержание вспомогательных индексных структур, предназначенных для ускорения выполнения запросов.
Подсистема управления объектами включает подкомпоненты обработки запросов, управления схемой и версиями объектов. Версии поддерживаются только для объектов, при создании которых такая необходимость была явно указана. Для схемы БД версии не поддерживаются; при изменении схемы отслеживается влияние этого изменения на другие компоненты схемы и на существующие объекты. При обработке запросов используется техника оптимизации, аналогичная применяемой в реляционных системах (т.е. формируется набор возможных планов выполнения запроса, оценивается стоимость каждого из них и выбирается для выполнения наиболее дешевый).
Подсистема управления транзакциями обеспечивает традиционную сериализуемость транзакций, а также поддерживает средства журнализации изменений и восстановления БД после сбоев. Для сериализации транзакций применяется разновидность двухфазного протокола синхронизационных захватов с различной степенью гранулированности. Конечно, при синхронизации учитывается специфика объектно-ориентированных БД, в частности, наличие иерархии классов. Журнал изменений обеспечивает откаты индивидуальных транзакций и восстановление БД после мягких сбоев (архивные копии БД для восстановления после поломки дисков не поддерживаются).
Основными компонентами системы в проекте O2, не считая развитого набора интерфейсных средств, являются интерпретатор запросов и подсистемы управления схемой, объектами и дисками. Управление дисками, т.е. поддержание базовой среды постоянного хранения обеспечивает система WiSS, которую разработчики O2 перенесли в окружение ОС UNIX.
Наибольшую функциональную нагрузку несет компонент управления объектами. В число функций этой подсистемы входит:
· управление сложными объектами, включая создание и уничтожение объектов;
· выборку объектов по именам, поддержку предопределенных методов;
· поддержку объектов со внутренней структурой-множеством, списком и кортежем;
· управление передачей сообщений между объектами;
· управление транзакциями;
· управление коммуникационной средой;
· отслеживание долговременно хранимых объектов;
· управление буферами оперативной памяти;
· управление кластеризацией объектов во внешней памяти;
· управление индексами.
2.2 Языки программирования и языки запросов объектно-ориентированных СУБД
Как уже упоминалось, основная практическая надобность в объектно-ориентированных БД связана с потребностью в некоторой интегрированной среде построения сложных информационных систем. В этой среде должны отсутствовать противоречия между структурной и поведенческой частями проекта, и должно поддерживаться эффективное управление сложными структурами данных во внешней памяти. С этой точки зрения языковая среда объектно-ориентированных БД - это объектно-ориентированная система программирования, естественно включающая средства работы с долговременными объектами. "Естественность" включения средств работы с БД в язык программирования означает, что работа с долговременными (хранимыми во внешней БД) объектами должна происходить на основе тех же синтаксических конструкций (и с той же семантикой), что и работа современными, существующими только во время работы программы объектами.
Эта сторона объектно-ориентированных БД наиболее близка родственному направлению языков программирования БД. Языки программирования объектно-ориентированных БД и БД во многих своих чертах различаются только терминологически; существенным отличием является лишь поддержание в языках первого класса подхода к наследованию классов. Кроме того, языки второго класса, как правило, более развиты как в отношении системы типов, так и в отношении управляющих конструкций.
Другим аспектом языкового окружения объектно-ориентированных БД является потребность в языках запросов, которые можно было бы использовать в интерактивном режиме. Если доступ к объектам внешней БД в языках программирования объектно-ориентированных БД носит в основном навигационный характер, то для языков запросов более удобен декларативный стиль. Декларативные языки запросов к объектно-ориентированным БД менее развиты, чем языки программирования объектно-ориентированных БД, и при их реализации возникают существенные проблемы.
На сегодняшний день не существует ни одного языка программирования объектно-ориентированных БД, который был бы спроектирован целиком заново, начиная с нуля. Естественным подходом к построению такого языка было использование (с необходимыми расширениями) некоторого существующего объектно-ориентированного языка. Начало расцвета направления объектно-ориентированных БД совпало с пиком популярности языка Smalltalk-80. Этот язык оказал большое влияние на разработку первых систем объектно-ориентированных БД, и, в частности, использовался в качестве языка программирования. Во многом опирается на Smalltalk и известная коммерчески доступная система GemStone.
Трудности с эффективной практической реализацией языка Smalltalk побудили разработчиков систем объектно-ориентированных БД к поиску альтернативных базовых языков. Известная близость объектно-ориентированного и функционального подходов к программированию позволяет достаточно успешно опираться на функциональные языки программирования. В частности, язык Лисп (Common Lisp) является основой проекта ORION. В этом проекте Лисп является и инструментальным языком, и базой объектно-ориентированного языка программирования в среде ORION.
Потребности в еще более эффективной реализации заставляют использовать в качестве основы объектно-ориентированного языка языки более низкого уровня. Например, в системе VBASE наряду со специально разработанным языком TDL, предназначенным для определения типов, используется объектно-ориентированное расширение языка Си - COP (C Object Processor). В уже упоминавшемся проекте O2 наряду с функциональным объектно-ориентированным языком программирования используются два объектно-ориентированных расширения языков Бейсик и Си. При этом, насколько можно судить по публикациям, наибольшее распространение среди пользователей этой системы (она уже коммерчески доступна) получил язык CO2, являющийся расширением языка Си. Возможно, это связано лишь с широкой (и все более возрастающей) популярностью языка Си (и его объектно-ориентированного потомка Си++), ставшего поистине девизом "настоящих программистов". Может быть, причины более глубинны (например, языки более высокого уровня слишком ограничительные для программистов-профессионалов; недаром большинство современных реализаций языков более высокого уровня выполняются именно на языке Си). Тем не менее, современная ситуация именно такова, и мы считаем полезным привести краткое описание основных особенностей языка CO2.
Прежде всего, CO2 не является полностью самостоятельным языком. Этот язык входит в многоязыковую среду O2 и предназначен для программирования методов ранее определенных классов. Определение классов, сигнатур методов (фактически, прототипов функций в терминологии языка Си) и имен постоянно хранимых значений и объектов производится с использованием отдельного языка определения схемы БД.
Имя любого объекта трактуется как указатель на значение этого объекта; разыменование производится с помощью обычного оператора Си '*'. Доступ к значению объекта возможен только из метода его класса, если только при перечислении методов оператор '*' не объявлен явно публичным.
Поддерживается операция порождения нового объекта указанного класса. В отличие от языка Си++ в CO2 невозможно совместить создание нового объекта с его инициализаций (понятие метода-конструктора начального значения объекта в CO2 не поддерживается). Для инициализации необходимо либо явно обратиться к соответствующему методу класса с указанием вновь созданного объекта (поддерживается соответствующий механизм "передачи сообщений", означающий на самом деле вызов функции), либо воспользоваться оператором '*' и явно присвоить новое значение, если '*' - публичный оператор для данного класса.
CO2 включает средства конструирования значений-кортежей, множеств, и списков. Понятие значения-кортежа фактически эквивалентно понятию значения-структуры обычного языка Си (с тем отличием, что элементами кортежа могут являться объекты, множества и списки). Для значений-множеств и списков поддерживаются операции добавления и изъятия элементов, а также набор теоретико-множественных операций (и конкатенации для списков).
Основой манипулирования объектами, хранимыми в БД, является расширенное по сравнению с языком Си средство итерации. Итератор применим к значениям-множествам или спискам. Фактически он означает последовательное применение оператора-тела цикла ко всем элементам множества или списка. Если мы вспомним, что долговременно хранимому классу объектов неявно соответствует одноименное значение-множество с элементами-объектами данного класса, то становится понятно, что итератор языка CO2 обеспечивает явную навигацию в классах объектов. Единственное, что остается от привычных пользователям СУБД языков запросов, - это ограниченная возможность указания характеристик требуемых в цикле объектов (это делается путем использования оператора разыменования и явного указания условий на атрибуты; конечно, для этого нужно, чтобы оператор '*' был объявлен публичным в данном классе).
Разработчики O2 подчеркивают, что они умышленно сделали CO2 более бедным по возможностям, чем, например, язык Си++, потому что многое по части управления объектами берет на себя общий менеджер объектов системы, явно вызываемый из рабочей программы.
Языки программирования объектно-ориентированных БД не стоят на месте и сейчас, с каждым днем разработчики трудятся над их совершенствованием и оптимизацией.
Заключение
На сегодняшний день объектно-ориентированные БД имеют меньшее распространение, чем реляционные БД. Это объясняется и их особенностями, и стадией развития.
Богатство унифицированной схемы оборачивается большими трудностями.
Объектно-ориентированные БД на современном уровне развития имеют пока много недостатков. Среди них:
· сложность структуры;
· отсутствие отработанного языка;
· недостаточная отработка сложной системы блокировок;
· отсутствие поддержки авторизации: разрешения/запрещения доступа пользователя к данным;
· сложность добавления атрибута или метода, хотя легко добавить новый класс данных.
Для устранения этих недостатков необходимо решить следующие задачи:
· создать гибкую структуру БД и четкий язык;
· отработать синтаксис разбора запросов, в том числе вложенных; определить несколько методов доступа;
· уточнить вопросы одновременного доступа (разрешения конфликтов при множественном наследии);
· определить сложный перебор; отработать защиту и восстановление.
Вместе с тем за ООБД будущее. Хотя сложившаяся теория таких БД отсутствует, в качестве основы может быть взята теория реляционных баз данных.
Огромный сегмент отрасли связанной с электронно-вычислительными машинами на данный момент использует в своей структуре базы данных. Масса высших учебных заведений выпускают каждый год множество специалистов, но и посей день, на рынке труда нашей страны, не хватает квалифицированных и по-настоящему грамотных специалистов.
Хорошая заработная плата и привлекательные условия труда привлекают все больше и больше наших специалистов на запад. Именно из-за этого в стране ощущается явный недостаток кадров и слабое развитие данной отрасли.
Но не все так плохо, на данной стадии. В данный момент правительство обратило внимание на положение в сфере информационных технологий. Ведется плотная работа по созданию бизнес инкубаторов, где молодые специалисты предлагают свои проекты по созданию бизнеса на основе информационных технологий, и в частности базах данных.
В развитии баз данных заинтересованы практически все виды труда от библиотек до простых авторов web-публикаций, которые нуждаются в инструментах для быстрого и экономичного построения хранилищ данных, рассчитанных на сложные приложения.
Глоссарий
№п/п |
Понятие |
Определение |
|
1 |
Базы данных |
представляет собой совокупность специальным образом организованных данных, хранимых в памяти вычислительной системы и отображающих состояние объектов и их взаимосвязей и рассматриваемой предметной области. |
|
2 |
Инкапсуляция |
объединение данных и программы (кода) в «капсуле», модуле |
|
3 |
Полиморфизм |
возможность переопределения процедуры в производном классе. В «капсулу» заключен объект как реализация класса |
|
4 |
SQL |
(англ. Structured Query Language-- «язык структурированных запросов»)-- универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. SQL основывается на исчислении кортежей. |
|
5 |
Поле класса |
(переменная-член, data member, class field, instance variable) в объектно-ориентированном программировании -- переменная, связанная с классом или объектом. Все данные объекта хранятся в его полях. Доступ к полям осуществляется по их имени. Обычно тип данных каждого поля задаётся в описании класса, членом которого является поле. |
|
6 |
Атрибут |
иное название для поля класса в объектно-ориентированном программировании. |
|
7 |
Наследование |
передача определенных свойств от класса к его производному |
|
8 |
Объект |
комбинация элементов данных, характеризующихся атрибутами, и методов их обработки, упакованных вместе в одном модуле. В объекте выделяют метод и данные |
|
9 |
Язык Си |
стандартизированный процедурный язык программирования, разработанный в начале 1970-х годов сотрудниками Bell Labs Кеном Томпсоном и Денисом Ритчи как развитие языка Би. Си был создан для использования в операционной системе UNIX. С тех пор он был портирован на многие другие операционные системы и стал одним из самых используемых языков программирования. Си ценят за его эффективность. Он является самым популярным языком для создания системного программного обеспечения. Его также часто используют для создания прикладных программ. Несмотря на то, что Си не разрабатывался для новичков, он активно используется для обучения программированию. В дальнейшем синтаксис языка Си стал основой для многих других языков. |
|
10 |
Структура базы данных |
Принцип или порядок организации записей в базе данных и связей между ними |
Список использованных источников
1 Голенищев Э.П. Информационное обеспечение систем управления [Текст] / Э.П. Голенищев, И.В. Клименко. - Ростов н/Д : Феникс, 2003.
2 Григорьев Ю.А. Банки данных [Текст] : учебник для вузов / Ю.А. Григорьев, Г.И. Ревунков. - М. : МГТУ им. Баумана, 2002.
3 Кириллов В.В. Г.Ю. Громов. Введение в реляционные базы данных [Текст] / В.В. Кириллов, Г.Ю. Громов. Спб.: БХВ-Петербург, 2009 г.
4 Когаловский, М.Р. Энциклопедия технологий баз данных [Текст] / М.Р. Когаловский. - М. : Финансы и статистика, 2005.
5 Кузнецов С.Д. Базы данных. Модели и языки [Текст] / С. Д. Кузнецов. М.: Бином-Пресс, 2008 г.
6 Марков, А.С. Базы данных: Введение в теорию и методологию [Текст] / А.С. Марков, К.Ю. Лисовский. - М. : Финансы и статистика, 2006.
7 Мартин Грабер. SQL. М.: Лори, 2007 г..
8 Рудикова Л.В. Базы данных. Язык SQL для студента[Текст] / Л.В. Рудикова. Спб. : БХВ-Петербург, 2007 г.
9 С.М. Диго. Access. М. : ТК Велби, Изд-во Проспект, 2008.
10 Смирнов С. Н. Безопасность систем баз данных: учеб. пособие / С.Н. Смирнов. - М.: Гелиос АРВ, 2007.
Размещено на Allbest.ru
Подобные документы
Основные понятия и типы связей, первичные и внешние ключи, реляционная модель данных. Основные функции СУБД, язык запросов SQL. Краткая характеристика настольных реляционных, объектно-ориентированных и корпоративных (промышленных) систем управления.
курсовая работа [3,4 M], добавлен 25.08.2010Характеристики и свойства языков программирования. Исследование эволюции объектно-ориентированных языков программирования. Построение эволюционной карты механизмов ООП. Разработка концептуальной модели функционирования пользовательского интерфейса.
курсовая работа [2,6 M], добавлен 17.11.20141С: Предприятие как специализированная объектно-ориентированная система управления базами данных, ее назначение и использования в организациях, среда разработки и порядок работы с информационной базой. Объектно-ориентированные методы программирования.
методичка [47,3 K], добавлен 06.07.2009Использование объектно-ориентированного программирования - хорошее решение при разработке крупных программных проектов. Объект и класс как основа объектно-ориентированного языка. Понятие объектно-ориентированных языков. Языки и программное окружение.
контрольная работа [60,1 K], добавлен 17.01.2011Создание автоматизированных систем управления для предприятий нефтяной и газовой промышленности. Система управления базами данных (СУБД), ее функциональные возможности, уровневая архитектура. Характеристика реляционных, объектных и распределенных СУБД.
курсовая работа [434,7 K], добавлен 20.07.2012Система управления базами данных как составная часть автоматизированного банка данных. Структура и функции системы управления базами данных. Классификация СУБД по способу доступа к базе данных. Язык SQL в системах управления базами данных, СУБД Microsoft.
реферат [46,4 K], добавлен 01.11.2009Тенденция развития систем управления базами данных. Иерархические и сетевые модели СУБД. Основные требования к распределенной базе данных. Обработка распределенных запросов, межоперабельность. Технология тиражирования данных и многозвенная архитектура.
реферат [118,3 K], добавлен 29.11.2010Краткая история развития СУБД ORACLE, основные понятия и определения, архитектура. Принципы работы с СУБД ORACLE. Разработка баз данных, средства и технологии их реализации; возможности процедурного языка PL/SQL. Приемы администрирования СУБД ORACLE.
презентация [609,2 K], добавлен 14.02.2014Теоретические аспекты СУБД. Основные понятия. Функциональные возможности СУБД. Архитектура систем управления. Разработка базы данных. Крупные массивы данных размещают, как правило, отдельно от исполняемого программы, и организуют в виде базы данных.
курсовая работа [30,5 K], добавлен 23.02.2006Основные этапы проектирования базы данных. Access как система управления базами данных (СУБД), ее предназначение, отличительные возможности. Работа с таблицами, их создание и редактирование. Порядок создания запросов. Способы защиты баз данных.
лабораторная работа [3,1 M], добавлен 18.08.2009