Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Определение и задачи распределенной системы (СУБД Oracle)

Содержание:

ВВЕДЕНИЕ

Актуальность темы курсовой работы заключается в том, что современное общество каждый день накапливает и передает информацию с помощью разнообразных «гаджетов», облачных технологий. Объемы информации действительно колоссальны и их необходимо как-то упорядочить, систематизировать. Современные технологии позволяют это сделать с помощью баз данных.

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

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

Работа с базами данных обязательно сопровождается:

- разграничением доступа к информации, что позволяет бухгалтеру вести учет платежей, а менеджеру по продажам видеть данные о клиентах, заказах и их контактах;

- средствами удобного, а главное, быстрого поиска нужной информации;

- средствами формирования отчетности любой сложности;

- возможностью работы через системы удаленного доступа;

- высокой производительностью.

Объектом исследования курсовой работы являются распределенные системы обработки данных, а предметом исследования – определение и задачи распределенных систем обработки данных.

Целью курсовой работы является изучение распределенных систем обработки данных на примере среды разработки ORACLE и MS SQL Server.

Для достижения поставленной цели в курсовой работе необходимо решить следующие задачи:

1) дать определения основным понятиям – информации, данным, баз данных, системам управления базами данных, распределенная система;

2) рассмотреть требования к распределенным системам обработки данных;

3) рассмотреть проблемы эксплуатации распределенных систем обработки данных;

4) изучить примеры распределенных систем;

5) изучить основные принципы организации современных систем управления базами данных и особенности систем управления базами данных на основе ORACLE и MS SQL SERVER.

При написании курсовой работы использовались научные труды следующих авторов: Ананченко И. В [1], Белоусова С. [2], Бураков П.В. [3], Бурков А. [4], Бурцева Е.В.[5] и другие.

1. Распределенная обработка данных

1.1 Основные понятия

Одним из важнейших понятий в области обработки данных является понятие информации. Информацией мы называем любые сведения о каком-либо событии, процессе, объекте. Наряду с понятием «информация», принято употреблять понятие «данные».

С понятием "информация" тесно связано понятие "информационные ресурсы". Информационные ресурсы – это совокупность данных, представляющих ценность для организации (предприятия) и выступающих в качестве материальных ресурсов. [5]

Данные представляют собой информацию в таком виде, который позволяет автоматизировать ее сбор, хранение и последующую обработку человеком или информационными средствами. В том случае, когда данные используются для уменьшения неопределенности о чем-либо, они становятся информацией. Таким образом, информацией становятся используемые данные. [3]

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

Информационная система представляет собой хранилище информации, снабженное процедурами ввода, поиска, размещения и выдачи информации. Главной особенностью информационных систем и является наличие этих процедур. [17]

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

В наиболее общем случае типовые программные компоненты, входящие в состав информационной системы, включают:

• диалоговый ввод-вывод;

• логику диалога;

• прикладную логику обработки данных;

• логику управления данными;

• операции манипулирования файлами и (или) базами данных.

Стоит также выделить корпоративную информационную систему (КИС). Она представляет собой совокупность специализированного программного обеспечения и вычислительной аппаратной платформы, на которой установлено и настроено программное обеспечение. [11]

Распределенной системой называют совокупность независимых компьютеров, которые представляются их пользователям единой объединенной системой.

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

Стоит рассмотреть некоторые базовые вопросы, касающиеся как аппаратного, так и программного обеспечения.

Характеристики распределенных систем:

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

- пользователи наряду с приложениями работают в распределенных системах единообразно, независимо от того, где и когда происходит их взаимодействие.

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

Распределенные системы характеризуются постоянством, хотя некоторые их части могут временно выходить из строя. Пользователю или приложению нет необходимости знать, что добавлены новые части (заменены или исправлены) для того, чтобы обеспечить поддержку дополнительных пользователей или приложений.

Для того чтобы поддержать представление различных компьютеров и сетей в виде единой системы, организация распределенных систем часто включает в себя дополнительный уровень программного обеспечения, находящийся между верхним уровнем, на котором находятся пользователи и приложения, и нижним уровнем, состоящим из операционных систем. Соответственно, такая распределенная система обычно называется системой промежуточного уровня (middleware). [25]

1.2 Цели построения распределенных систем

За последние годы распределенные системы становились все более популярными и их роль только возрастала. Стоит выделить несколько основных причин роста их значимости:

- географическая распределенная вычислительная среда. В большинстве случаев, вычислительная среда по своей природе и является территориально распределенной системой. Ярким примером подобной распределенной вычислительной среды может служить банковская сеть. Здесь каждый банк обслуживает счета своих клиентов и обрабатывает операции с ними. Если же необходимо перевести денежные средства из одного банка в другой, требуется использование межбанковской транзакции, а значит осуществление взаимодействия систем банков друг с другом. Еще одним примером может служить сеть Интернет.

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

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

- отказоустойчивость. Неработоспособность всей системы зачастую случается из-за выхода из строя одного из компонентов. Эта ситуация происходит в основном в традиционных вычислительных системах, построенных на базе единичного компьютера. Если такой сбой не затрагивает другие компоненты, то носит название частичного отказа. Распределенные системы должны быть устойчивы к подобным частичным отказам, что является важной характерной чертой распределенных систем. Подобная возможность достигается за счет избыточности, когда в систему добавляется дополнительное оборудование, которые делают возможной правильное функционирование системы при неработоспособности или некорректной работе некоторых из ее компонентов. В этом случае распределенная систему пытается скрывать факты отказов или ошибок в одних процессах от других процессов. [12]

1.3 Требования к распределенным системам

Стоит выделить некоторый набор требований, которым должна удовлетворять распределенная информационная система:

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

2. Масштабируемость. Существует несколько аспектов масштабируемости вычислительных систем. Но самым важным является необходимость увеличения производительности распределенной системы за счет добавления новых компьютеров в систему, что связано с понятием балансировки нагрузки (load balancing) на серверы системы. К масштабированию относятся так же вопросы эффективного распределения ресурсов сервера, обслуживающего запросы клиентов.

3. Поддержание логической целостности данных. Неприемлемым является результат работы распределенной системы, когда одна часть компонент обработали поступивший запрос корректно, а другая – нет. Следовательно, существует только два варианта: запрос пользователя выполняется корректно целиком, или же не выполняется вообще. [30]

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

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

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

7. Повышение отношения производительности к затратам. В распределенной системе, любую задачу можно разделить между различными компьютерами. В этом случае будет обеспечиваться лучшее соотношение производительности к стоимости системы. Это особенно актуально для конфигурации «сеть рабочих станций» (NOW).

8. Модульность и дополнительная расширяемость. Используя промежуточный уровень, в распределенную систему можно добавить другие гетерогенные единицы без снижения производительности. Другими словами, существующие единицы могут быть легко заменены новыми. [30]

Применение децентрализованных алгоритмов придает распределенной системе следующие характерные черты:

- никто не обладает полной информацией о системе;

- решения принимаются на основе локальной информации;

- сбой в одном месте не вызывает нарушения работы алгоритма;

- существования единого времени не требуется.

Требование масштабируемости является существенным препятствием на пути распространения систем, реализованных на базе локальных сетей, на уровень сетей глобальных.

Распределенная система должна отвечать современным требованиям безопасности. Это значит, что необходимо обеспечить защиту ресурсов от атак со стороны враждебно настроенных пользователей. Из этого следует, что данные должны передаваться только по защищенным каналам передачи данных, а доступ к ресурсам системы разрешен только авторизованным пользователям. Также необходимо обеспечить чтение передаваемых данных только получателем. [25]

Распределенная система обладает следующими свойствами:

– отсутствие общей физической шины;

– отсутствие общей памяти;

– географическое распределение;

– автономность и гетерогенность.

Таким образом, распределенная информационная система представляет собой совокупность автономных компьютеров, которые взаимодействуют между собой через компьютерную сеть и промежуточную среду, которая, в свою очередь, позволяет компьютерам координировать свою деятельность, а также предоставлять доступ к ресурсам системы так, что пользователи видят систему единой и целостной. [30]

2. Примеры распределенных систем.

2.1 Электросети.

Электросеть состоит из линий электропередач различного напряжения и трансформаторных подстанций. Электросеть объединяет потребителей и «генерирующие объекты», которыми являются ГЭС, теплоэлектростанциями, АЭС. Все объекты взаимодействия, будь то трансформаторные подстанции, генерирующие объекты или потребители имеют географические координаты. Линии электропередач характеризуются плоскими кривыми (разница высот не имеет значения для электрического тока).

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

2.2 Сети связи.

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

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

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

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

Это, так называемая, задача маршрутизации.

  1. Логистические системы.

Система перевозки грузов включает множество объектов. К таким объектам можно отнести транспортные средства (грузовики, поезда, самолеты, корабли), транспортные пути (автомобильные, железные дороги, морские и речные пути и др.), склады, порты, станции, погрузочно-разгрузочные механизмы и прочее.

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

- грузоподъемность,

- скорость,

- размер грузов,

- объем складских помещений,

- количество причалов в порту и т.д.

А что, если чуть ли не каждый элемент имеет своего собственника? Тогда станет понятно, что централизованно решать задачу оптимизации доставки грузов (минимальное время при ограничении на стоимость или минимальная стоимость при ограничении на время) невозможно.

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

  1. Банковская система.

С одной стороны, в современном мире почти каждый банк самостоятелен, а банковские системы распределены по всему Земному шару. Но, с другой стороны, у всех банков есть общая задача – обслужить клиента в любой части Земного шара. Клиент должен в любом случае иметь возможность получить свои деньги даже там, где о его банке никогда не слышали. Или сделать банковский перевод в далекую страну. Чтобы осуществить такие операции, банки связаны между собой системой договоров и техническими средствами, поддерживающими эту систему.

Например, клиент, находящийся в городе N, желает провести платеж из своего банка, находящегося в городе M, в банк получателя, находящийся в городе Z. При этом получатель, находящийся в пункте X, должен получить уведомление. Это общая задача, которая разделяется банками на части, решаемые в разных местах, т.е. превращается в распределенную задачу. [9]

  1. Сеть рабочих станций в университете или отделе компании.

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

  1. Информационная система, которая поддерживает автоматическую обработку заказов.

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

  1. World Wide Web.

WWW представляет собой распределенную систему, или, иными словами, простую, целостную и единообразную модель, предоставляющую к связанным между собой документам. Для доступа к документу пользователю необходимо только нажать на ссылку, и ему не важно с какого сервера доставлен. После этого документ появляется на экране. Каждый опубликованный документ имеет уникальное имя в форме унифицированного указателя ресурса (URL), которое ссылается на локальный файл с содержимым документа. Если бы Всемирная паутина представлялась своим пользователям гигантской централизованной системой документооборота, она также могла бы считаться распределенной системой. [25]

3. Проблемы эксплуатации распределенных систем

3.1 Проблемы администрирования системы

Распределенные системы имеют как множество достоинств по сравнению с традиционными централизованными системами (как минимум – обеспечивают значительно меньшую стоимость развертывания и простоту реализации), так и ряд существенных недостатков. Как раз одной из главных проблем распределенных систем, по сравнению с традиционными системами, является проблема администрирования. [29]

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

- соблюдение баланса нагрузки на узлы системы;

- откат к предыдущему состоянию системы (восстановление данных) в случае возникновения ошибки;

- сбор статистических данных с различных узлов системы;

- своевременное автоматическое обновление программного обеспечения на узлах системы.

Эти проблемы заслуживают особого внимания при проектировании распределенных систем, потому что именно они чаще всего встречаются на практике. Последние две проблемы хорошо изучены. Сейчас на рынке программного обеспечения распределенных систем существует множество разработанных программных средств, которые обеспечивают как обновление программного обеспечения, так и сбор статистики. Наибольший интерес представляют поиск методов осуществления баланса нагрузки на различные узлы системы, а также методы восстановления (отката к предыдущему состоянию системы) данных в случае возникновения ошибок. На данный момент не существует единого метода проектирования, который обеспечивал бы решение сразу всех этих проблем. Это связано как со спецификой распределенных систем, так и в виду гетерогенности оборудования и архитектуры распределенных систем. [24]

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

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

По характеру распределения нагрузки на вычислительные узлы различают:

- перераспределение (динамическая балансировка);

- статическую балансировку.

Статическая балансировка, зачастую, выполняется в результате априорного анализа. В данном случае, проводится анализ модели распределенной системы, чтобы выяснить, какой метод балансировки наилучший. При этом необходимо учитывать конфигурацию вычислительных узлов и структуру самой распределенной системы. У этого метода балансирования нагрузки есть один основной недостаток – необходимость ассоциации узлов с различной конфигурацией оборудования с вычислительной сложностью задачи, что не всегда представляется возможным. [29]

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

Проблемы восстановления данных в случае возникновения ошибок. Очень часто, в ходе эксплуатации распределенных систем, возникает проблема отслеживания сбоев и последующее восстановление данных. Подобная ситуация может возникнуть, например, если во время работы произошел сбой питания одного из узлов распределенной системы. Актуальной задачей является восстановление данных в автоматическом режиме. Это достаточно сложная задача, которая включает в себя множество проблем. [29]

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

    1. Проблемы ограниченности масштабируемости ПК

Еще одной важнейшей задачей при проектировании распределенных систем является ее масштабируемость. Главным недостатком централизованных систем всегда была ограниченность наращивания вычислительных мощностей системы. Распределенные системы позволили избежать этого недостатка. Выделяют три основных показателя масштабируемости [25] системы:

- масштабируемость распределенной системы по отношению к ее размеру. Если система обеспечивает простоту подключения к ней новых узлов, то она считается масштабируемой по отношению к ее размеру.

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

- масштабируемость управления. Если при росте общего количества узлов системы, администрирование системы не усложняется, то система считается масштабируемой в плане управления ресурсами. [29]

При решении задачи масштабируемости системы необходимо решить множество проблем. Стоит выделить основные проблемы масштабируемости распределенных систем:

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

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

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

- проблема ограниченности алгоритмов обработки данных. Необходимо использовать методы и алгоритмы сбора данных с узлов системы, которые минимально перегружают коммуникационную сеть. [29]

    1. Проблемы переносимости программного обеспечения

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

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

  1. Распределенные базы данных

Базы данных, их классификация и принципы организации

Современные информационные системы характеризуются большими объемами хранимых данных, их сложной организацией, а также высокими требованиями к скорости и эффективности обработки этих данных. Это становится возможным при использовании специальных программных средств - систем управления базами данных (СУБД). [7]

Системой управления базами данных (СУБД) называют совокупность языковых и программных средств, которые предназначены для создания, ведения и совместного использования БД разными пользователями.

Модель данных − формализованное описание, отражающее типы данных, состав, и взаимосвязь между ними.

Почти все современные СУБД основаны на реляционной модели данных. Название «реляционная» связано с тем, что каждая запись в такой базе данных содержит информацию, относящуюся (related) только к одному объекту. Все данные в реляционной БД представлены в виде таблиц. Таблицы состоят из записей и полей. Записью называется каждая строка таблицы, которая содержит информацию только об одном объекте. Полем называется столбец таблицы, который содержит однотипную для всех записей информацию. [10]

База Данных – это механизм ввода, сохранения и выборки информации по различным параметрам. [15]

К современным базам данных, а, следовательно, и к СУБД, на которых они строятся, предъявляются следующие основные требования:

- высокое быстродействие (малое время отклика на запрос). Промежуток времени от момента запроса к БД до фактического получения данных называется временем отклика.

- обновление данных должно быть простым.

- данные должны быть независимы (возможность изменения логической и физической структуры БД без изменения представлений пользователей).

- совместное использование данных многими пользователями.

- должна быть обеспечена безопасность данных (защита данных от преднамеренного или непреднамеренного нарушения секретности, искажения или разрушения).

- стандартизация построения и эксплуатации БД (фактически СУБД).

- адекватность отображения данных соответствующей предметной области.

- интерфейс пользователя должен быть простым и понятным. [10]

Основные современные принципы организации баз данных:

- Значительная часть современных СУБД способна работать на компьютерах различной архитектуры под управлением разных операционных систем.

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

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

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

- Такие СУБД имеют развитые средства администрирования баз данных и средства защиты, хранимой в них информации.

- Подобные СУБД имеют средства подключения клиентских приложений.

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

Информационные системы, созданные средствами технологии баз данных, иногда принято называть банками данных. [3]

Банк данных включает в себя:

- технические средства;

- одну или несколько БД;

- СУБД;

- словарь или каталог данных;

- администратора;

- вычислительную систему;

- обслуживающий персонал.

По степени распределенности БД можно выделить:

1) централизованную БД – представляет собой единый информационный массив на одном или нескольких носителях в одной ЭВМ.

2) распределенную БД - представляет собой несколько пересекающихся или дублирующих друг друга частей, хранимых в различных ЭВМ вычислительной сети. Работа с такой базой осуществляется с помощью СУРБД. [8]

Архитектура «Клиент-Сервер»

Согласно парадигме клиент-серверной архитектуры, несколько клиентов и несколько серверов совместно с промежуточным программным обеспечением и средой взаимодействия образуют единую систему, обеспечивающую распределенные вычисления, анализ и представление данных. [19]

Использование архитектуры «клиент – сервер» предполагает наличие некоторого количества компьютеров, объединенных в сеть, один из которых является сервером сети, то есть выполняет особые управляющие функции.

Так, архитектура «клиент – сервер» разделяет функции приложения пользователя (называемого клиентом) и сервера. Приложение клиент формирует запрос к серверу, на котором расположена БД, на структурном языке запросов SQL (Structured Query Language), являющемся промышленным стандартом в мире реляционных БД. Удаленный сервер принимает запрос и переадресует его SQL-серверу БД. [20]

SQL-сервер – специальная программа, управляющая удаленной базой данных. SQL-сервер обеспечивает интерпретацию запроса, его выполнение в базе данных, формирование результата выполнения запроса и выдачу его приложению-клиенту. В физическом выполнении запроса ресурсы клиентского компьютера не участвуют; клиентский компьютер лишь отсылает запрос к серверной БД и получает результат, после чего интерпретирует его необходимым образом и представляет пользователю. Так как клиентскому приложению посылается результат выполнения запроса, по сети «путешествуют» только те данные, которые необходимы клиенту. В итоге снижается нагрузка на сеть. Выполнение запроса происходит на сервере, то есть там же, где хранятся данные, а значит необходимость в пересылке больших пакетов данных отсутствует. Кроме того, SQL-сервер, если это возможно, оптимизирует полученный запрос таким образом, чтобы он был выполнен в минимальное время с наименьшими накладными расходами. [4]

Все это повышает быстродействие системы и снижает время ожидания результата запроса. При выполнении запросов сервером существенно повышается степень безопасности данных, поскольку правила целостности данных определяются в базе данных на сервере и являются едиными для всех приложений, использующих эту БД. Таким образом, исключается возможность определения противоречивых правил поддержания целостности. Мощный аппарат транзакций, поддерживаемый SQL-серверами, позволяет исключить одновременное изменение одних и тех же данных различными пользователями и предоставляет возможность откатов к первоначальным значениям при внесении в БД изменений, закончившихся аварийно.

Итак, в результате работа построена следующим образом:

- База данных в виде набора файлов находится на жестком диске специально выделенного компьютера (сервера сети).

- СУБД располагается также на сервере сети.

- Существует локальная сеть, состоящая из клиентских компьютеров, на каждом из которых установлено клиентское приложение для работы с БД.

- На каждом из клиентских компьютеров пользователи имеют возможность запустить приложение. Используя предоставляемый приложением пользовательский интерфейс, он инициирует обращение к СУБД, расположенной на сервере, на выборку/обновление информации. Для общения используется специальный язык запросов SQL, т.е. по сети от клиента к серверу передается лишь текст запроса. [22]

- СУБД инкапсулирует внутри себя все сведения о физической структуре БД, расположенной на сервере.

- СУБД инициирует обращения к данным, находящимся на сервере, в результате которых на сервере осуществляется вся обработка данных и лишь результат выполнения запроса копируется на клиентский компьютер. Таким образом СУБД возвращает результат в приложение. [20]

- Приложение, используя пользовательский интерфейс, отображает результат выполнения запросов. Рассмотрим, как выглядит разграничение функций между сервером и клиентом.

Функции приложения-клиента:

− посылает серверу запрос.

− получает результаты и интерпретирует результат запроса.

− обладает понятным интерфейсом, который обеспечивает представление результатов пользователю в некоторой форме.

Функции серверной части:

− принимает запросы от приложений-клиентов.

− интерпретирует запросы.

− производит оптимизацию запросов к БД и выполняет его.

− отправляет результат запроса приложению - клиенту.

− обеспечивает систему разграничение доступа и безопасности.

− управляет целостностью БД.

− реализует стабильность многопользовательского режима работы.

В архитектуре «клиент – сервер» используются так называемые «удаленные» (или «промышленные») СУБД. Промышленными они называются из-за того, что именно СУБД этого класса могут обеспечить работу информационных систем масштаба среднего и крупного предприятия, организации, банка. Локальные СУБД предназначены для однопользовательской работы или для обеспечения работы информационных систем, рассчитанных на небольшие группы пользователей.

К разряду промышленных СУБД принадлежат Oracle, Gupta, Informix, Sybase, MS SQL Server, DB2, InterBase и ряд других.

Далее рассмотрим наиболее распространенные.

Системы управления базами данных

СУБД Oracle

Каждая база данных Oracle имеет связанный с ней экземпляр. Организация экземпляра позволяет СУБД обслуживать множество типов транзакций, обеспечивать целостность данных, безопасность и высокую производительность. Термин «процесс» означает любую задачу, выполняемую без вмешательства пользователя.

Открытие БД Oracle включает три стадии.

На первой стадии формируется экземпляр Oracle (предустановочная стадия).

На второй стадии происходит установка базы данных экземпляром (установочная стадия).

На третьей стадии происходит открытие БД (стадия открытия).

Экземпляр, в котором нет базы данных, называется незанятым (idle), но он занимает память и не выполняет никакой работы. Экземпляр может подсоединиться только к одной БД, а до тех пор, пока не будет использован Parallel Server, БД может быть подключена только к одному экземпляру Oracle. Экземпляр – это мозг системы обработки данных. В экземпляре выполняются все операции, в то время как в БД хранятся все данные. Большинство настроек экземпляра связано с компонентами в глобальной системной области. Но кроме них существуют и некоторые опции настройки, касающиеся фоновых процессов.

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

Процессы PMON и SMON выполняют автоматическую уборку после внезапно прекратившихся или завершившихся аварийно процессов. После запуска БД процесс SMON (System Monitor) выполняет автоматическое восстановление экземпляра.

Если при последнем выключении БД что-либо не было завершено, SMON автоматически запускает незавершенные операции.

PMON Process Monitor (Монитор процессов) выполняет автоматическую уборку после внезапно прекратившихся или завершившихся аварийно процессов. Эта уборка включает удаление сеанса, блокировок, которые были им установлены, непринятых транзакций, освобождение ресурсов глобальной системной области, выделенных этому процессу.

Процесс DBWR (DataBase Writer) — отвечает за перенос обновленных блоков, занесенных в dirty-cписок из кэш-буфера данных в файлы данных. Вместо того, чтобы записывать каждый блок на диск сразу, DBWR ждет, пока не будет выполнено одно из условий, а затем просматривает dirty-cписок и все отмеченные в нем блоки переписывает на диск.

Процесс LGWR (Log Writer) — четвертый и последний фоновый процесс, запуск которого обязателен для работы СУБД ORACLE. Этот процесс отвечает за перезапись информации из буфера журнала транзакций, который находится в глобальной системной области, в файлы оперативного журнала. ORACLE не считает транзакцию выполненной до тех пор, пока процесс LGWR не перезапишет данные о ней из буфера журнала транзакций в файл.

Все процессы сервера могут закрепляться за определенными пользовательскими процессами, либо использоваться несколькими процессами пользователя. В последнем случае они называются разделяемые (shared) процессами или серверами.

Для работы с применением разделяемого сервера необходима установка Multi Threaded Server (MTS). При использовании разделяемых процессов, в системе должен существовать как минимум один процесс диспетчер. Процесс-диспетчер передает запросы пользователей в очередь SGA и возвращает ответы сервера соответствующему процессу пользователя.

Дополнительный фоновый процесс ARCH (Archiver) отвечает за копирование полностью заполненного оперативного журнала транзакций в архивные файлы журналов транзакций. Во время перезаписи в архив никакой другой процесс не может получить доступ к журналу. Во время копирования в архив система должна находиться в состоянии ожидания.

CKPT (Check Point) это дополнительный фоновый процесс, который отвечает за обработку контрольных точек. Необходимость в нем возникает, когда надо снизить нагрузку на LGWR.

Процесс RECO (Recovery) отвечает за восстановление незавершенных транзакций в распределенной системе БД. Когда возникает подозрительная транзакция, RECO выполняет свои функции автоматически без вмешательства администратора БД.

Процесс SNPn (Snapshot) выполняет автоматические обновления снимков БД и запускает процедуры в соответствии с расписанием, зафиксированным в пакете DBMS_JOB. В файле init.ora задается количество запускаемых процессов SNPn и длительность интервала, в течение которого процесс засыпает прежде чем выполнить задание.

Процесс LCKn (Parallel Server Lock) в среде, производящей параллельное обслуживание нескольких экземпляров БД, на LCKn возлагается ответственность за координацию блокировок, устанавливаемых разными экземплярами БД. Если в системе нет параллельного обслуживания, то запуск LCKn не нужен.

Oracle поддерживает реляционную модель данных, поэтому, естественно, что к числу основных объектов Oracle относятся: таблица, представление, пользователь.

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

Представление (VIEW) это поименованная, динамически поддерживаемая сервером выборка из одной или нескольких таблиц. Оператор SELECT, определяющий выборку, ограничивает видимые пользователем данные. Сервер гарантирует актуальность представления, то есть формирование представления (материализация соответствующего запроса), производится каждый раз при использовании представления. Используя представления, администратор безопасности ограничивает доступную пользователям часть базы данных только теми данными, которые реально необходимы для выполнения его работы. [16]

Пользователь (USER) — объект, обладающий возможностью создавать и использовать другие объекты ORACLE, а также запрашивать выполнение функций сервера. К числу таких функций относятся организация сессии, изменение состояния сервера и базы данных, запрос на выполнение операторов SQL и др. Для упрощения решения задач идентификации и именования в базе данных ORACLE поддерживает объекты: последовательность и синоним.

Последовательность (SEQUENCE) – это объект, обеспечивающий генерацию уникальных номеров в условиях многопользовательского асинхронного доступа. Обычно элементы последовательности используются для вставки уникальных идентификационных номеров для элементов таблиц базы данных.

Синоним (SYNONYM) – это альтернативное имя-псевдоним объекта ORACLE, который позволяет пользователям базы данных иметь доступ к данному объекту. Синоним может быть частным и общим. Общий (public) синоним позволяет всем пользователям базы данных обращаться к соответствующему объекту по альтернативному имени.

Для управления эффективностью доступа к данным Oracle поддерживает объекты: индекс, табличная область и кластер.

Индекс (INDEX) – это объект базы данных, создаваемый для повышения производительности выборки данных. Индекс создается для столбцов таблицы или для представления в пространстве базы данных и обеспечивает более быстрый доступ к данным базы данных за счет хранения прямых ссылок на место расположения строк, содержащих требуемые данные.

Табличная область (TABLESPACE) – именованная часть базы данных, используемая для распределения памяти для таблиц и индексов.

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

Для эффективного управления разграничением доступа к данным Oracle поддерживает объект роль. Роль (ROLE) – именованная совокупность привилегий, которые могут быть предоставлены пользователям или другим ролям. [16]

Cнимок и связь базы данных ORACLE поддерживает несколько стандартных или предопределенных ролей. Специфичными для распределенных систем являются объекты ORACLE: снимок и связь базы данных. Снимок (SNAPSHOT) – локальная копия таблицы удаленной базы данных, которая используется либо для тиражирования (копирования) всей или части таблицы, либо для тиражирования результата запроса данных из нескольких таблиц. Снимки могут быть модифицируемыми или предназначенными только для чтения. Снимки только для чтения возможно периодически обновлять, отражая изменения основной таблицы. Изменения, сделанные в модифицируемом снимке, распространяются на основную таблицу и другие копии.

Связь базы данных (DATABASE LINK) – это объект базы данных, который позволяет обратиться к объектам удаленной базы данных. Имя связи базы данных можно рассматривать как ссылку на параметры механизма доступа к удаленной базе данных (имя узла, протокол и т.п.). Использование одного имени упрощает работу с объектами удаленной базы данных.

Для программирования алгоритмов обработки данных, реализации механизмов поддержки целостности базы данных Oracle использует объекты: процедура, функция, пакет и триггер.

Процедура (PROCEDURE) – это поименованный, структурированный набор переменных и операторов SQL и PL/SQL, предназначенный для решения конкретной задачи.

Функция (FUNCTION) – это поименованный, структурированный набор переменных и операторов SQL и PL/SQL, предназначенный для решения конкретной задачи и возвращающий значение переменной.

Пакет (PACKAGE) – это поименованный, структурированный набор переменных, процедур и функций, связанных единым функциональным замыслом. Например, ORACLE поставляет пакет DBMS_OUTPUT, в котором собраны процедуры и функции, предназначенные для организации ввода-вывода.

Триггер (TRIGGER) – это хранимая процедура, которая запускается (автоматически выполняется) тогда, когда происходит связанное с триггером событие. Обычно события связаны с выполнением операторов INSERT, UPDATE или DELETE в некоторой таблице. [2]

СУБД MS SQL Server

СУБД MS SQL Server обладает широкими возможностями по разработке и сопровождению баз данных.

Основным компонентом является SQL Server Database Engine, в его состав входит компонент Database Engine – служба для хранения, обработки и обеспечения безопасности данных, репликации, полнотекстового поиска и средств управления реляционными и XML-данными.

Службы Analysis Services – служба аналитики, используемая для принятия решений в бизнес-аналитике с целью предоставления аналитических данных для отчетов.

Службы Reporting Services – используются для разработки отчетов. Для этого имеется набор средств по созданию и развертыванию табличных и графических отчетов, а также управления ими.

Службы Integration Services – набор графических средств для копирования и загрузки файлов, отправки электронных сообщений, а также управления объектами и данными SQL Server.

Full-Text Search (полнотекстовый поиск) обладает возможностями по выполнению полнотекстовых запросов к простым символьным данным в таблицах SQL Server, при этом не учитывается регистр букв. Хранящихся в базе данных Microsoft SQL Server быстро индексируются для поискового запроса. [1]

Replication (репликация) – набор средств для копирования и распространения данных между БД, расположенными как в локальных, так и в глобальных сетях средствами коммутируемого соединения или по беспроводным сетям, а также через Интернет.

Service Broker облегчает разработчику создание сложных приложений за счет встроенной поддержки обмена сообщениями.

Notification Services – это платформа для разработки приложений, которые формируют и отправляют уведомления, а также является движком, запускающим эти приложения.

SQL Server Management Studio - интегрированная среду для доступа, настройки, управления, администрирования и разработки компонентов SQL Server. Позволяет работать с SQL Server разработчикам и администраторам не зависимо от их уровня знаний. [28]

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

Среда Business Intelligence Development Studio является интегрированной средой разработки для решений некоторых вышеназванных служб (Analysis Services, Reporting Services и Integration Services).

Компонент Database Engine является основной службой для хранения, обработки и защиты данных, которая обеспечивает управляемый доступ и быструю обработку транзакций для удовлетворения потребностей приложений обработки данных. Этот компонет можно использовать для создания реляционных баз данных, оперативной обработки транзакций, оперативной аналитической обработки данных.

Для реализации внешнего интерфейса для SQL Server используются протоколы. Для подключения к SQL Server Database Engine должен быть включен сетевой протокол. Microsoft SQL Server может обслуживать запросы по нескольким протоколам одновременно. Клиенты подключаются к SQL Server с помощью одного протокола. [27]

Основными функциями протокола Relational Engine являются:

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

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

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

• Обработка данных и операторов создания объектов и подключений. Ряд операторов, помимо SELECT, INSERT, UPDATE или DELETE требуют особой обработки. Примеры представляют собой набор операторов по установлению параметров соединения SET, а также операторы CREATE создания объектов в базе данных.

• Форматирование результатов. Клиент получает результаты реляционных данных либо в обычном табличном виде, либо в виде XML-документа. Результаты могут быть получены в одном или нескольких пакетах потоков табличных данных. [14]

Основными функциями Storage Engine являются:

• обеспечение удобства использования управления системами хранения компонентов,

• управление данными буферов, и всеми I / O к физическим файлам,

• контроль параллелизма, блокировкой и логированием, управления транзакциями,

• управление файлами и физическими страницами, используемыми для хранения данных,

• восстановление системных ошибок.

Основными задачами, которые решаются в процессе разработки и сопровождения баз данных в среде SQL Server являются – создание, модификация и удаление баз данных, таблиц, а также объектов баз данных, таких как индексы, представления, запросы, хранимые процедуры и триггеры.

База данных является структурой хранения данных в SQL Server. Вся работа SQL Server сводится к управлению базами данных (БД). Системные данные сервера, отвечающие за его функционирование, также хранятся в базах данных. [1]

Базу данных SQL Server можно рассматривать с двух сторон: физической и логической:

1) физический уровень – это по своей сути набор файлов, расположенных на диске. С этими файлами можно выполнять любые операции, разрешенные для обычных файлов, их можно переименовать, скопировать, удалить т.д. Такие операции необходимо делать с осторожностью. Базы данных SQL Server содержат файлы нескольких типов:

- первичный файл данных – представляет собой некую отправную точку базы данных и указывает на остальные файлы базы данных. В каждой базе данных имеется только один первичный файл (расширение MDF).

- вторичные файлы – это все файлы данных, за исключением первичного файла данных. База данных может вообще не иметь вторичных файлов данных, или содержать сразу несколько вторичных файлов данных (расширение NDF).

- файлы журналов - все сведения журналов, используемые для восстановления базы данных. В каждой базе данных должен быть хотя бы один файл журнала. Для имен файлов журналов рекомендуется использовать расширение MDF, NDF и LDF.

2) логический уровень базы данных представляет наибольший интерес. Он описывает все ее объекты, их поведение и взаимодействие друг с другом. Логическая структура базы данных включает в себя системные и пользовательские таблицы, представления, хранимые процедуры, пользователей и роли, умолчания, ограничения целостности и другие объекты.

Таблицы содержат все данные, при описании каждого столбца (поля) пользователь определяет тип соответствующих данных.

Представление — это виртуальная таблица, содержимое которой определяется запросом. Представление формируется на основе SQL-запроса SELECT, формируемого по обычным правилам. Таким образом, представление есть поименованный запрос SELECT. Представление, как и обычная таблица, состоит из совокупности именованных столбцов и строк данных. Однако представление должно быть индексировано, только в этом случае оно будет существовать в базе данных. [1]

ЗАКЛЮЧЕНИЕ

В первом разделе данной курсовой работы были даны основные определения, касающиеся информации, баз данных, систем управления базами данных, информационных процессов и информационных систем.

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

Распределенные информационные системы могут быть малых, средних и крупных классов, в зависимости от сложности создания, модификации, сопровождения, интеграции с другими системами.

Во втором разделе были рассмотрены основные проблемы распределенных информационных систем:

- проблемы администрирования;

- проблемы масштабируемости;

- проблемы переносимости программного обеспечения.

Наибольший интерес представляют реляционные базы данных.

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

В третьем разделе данной курсовой работы даны понятия базам данных, реляционной базе, дана классификация.

Базой данных называют совокупность объектов, которые систематизированы так, чтобы пользователи могли их находить, хранить и обрабатывать с помощью электронно-вычислительных средств. Система управления базами данных – это совокупность программных средств, используемых для создания и использования баз данных разными пользователями.

Рассмотрена архитектура «Клиент-сервер», которая предполагает наличие некоторого количества компьютеров, объединенных в сеть, один из которых является сервером сети, то есть выполняет особые управляющие функции.

Рассмотрены распределенные системы на основе двух основных систем управления базами данных: ORACLE и MS SQL SERVER.

В процессе выполнения курсовой работы решены следующие задачи:

1) даны определения основным понятиям – информации, данным, баз данных, системам управления базами данных, распределенная система;

2) рассмотрены требования к распределенным системам обработки данных;

3) рассмотрены проблемы эксплуатации распределенных систем обработки данных;

4) изучены примеры распределенных систем;

5) изучены основные принципы организации современных систем управления базами данных и особенности систем управления базами данных на основе ORACLE и MS SQL SERVER.

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

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

  1. Ананченко И. В., Козлов И.В. Пособие к курсу Администрирование Microsoft SQL Server 2012R2. Часть 1. С.-П. – 2014. – 71 с.
  2. Астахова И.Ф. Распределенные базы данных на примере Oracle: Методические материалы. - Воронеж: Изд-во ВГУ, 2000. - 40 с.
  3. Бураков П.В., Петров В.Ю. Введение в системы баз данных: Учебное пособие. - СПб: СПбГУ ИТМО, 2010. - 128 с.
  4. Бурков А. Проектирование информационных систем в MS SQL Server 2008 и Visual Studio 2008. – Национальный Открытый Университет "ИНТУИТ" [Электронный ресурс]. URL: http://www.intuit.ru/department/se/pisqlvs2008
  5. Бурцева Е.В., Рак И.П., Селезнев А.В., Терехов А.В., Чернышов В.Н. Информационные системы : учеб. пособие /– Тамбов : Изд-во Тамб. гос. техн. ун-та, 2009. – 128 с.
  6. Влацкая И.В., Сормов С.И. Управление и обработка информации в распределенных системах // ВЕСТНИК ОГУ. - 2010 . - №4 (110)/апрель. - с. 132-136
  7. Гарсиа-Молина Г., Ульман Дж., Уидом Дж. Системы баз данных. Полный курс. - Вильямс, 2010. – 1088 c.
  8. Дьяков И.А. Базы данных. Язык SQL: Учебное пособие. - Тамбов: Изд-во ТГТУ, 2004. - 80 с.
  9. Замятина Е., Миков А. Распределенные системы и алгоритмы. – Национальный Открытый Университет "ИНТУИТ" [Электронный ресурс]. URL: https://www.intuit.ru/studies/courses/2002/238/info
  10. Коннолли Томас, БеггКарелин. Базы данных. реализация и сопровождение. Теория и практика. 3-е издание. : Пер. с англ. — М.: Издательский дом "Вильямс", 2011
  11. Информационные системы / Петров В. Н. — СПб.: Питер, 2003. — 688 с
  12. Косяков М.С. Введение в распределенные вычисления. – СПб: НИУ ИТМО, 2014. – 155 с.
  13. Култыгин О.П. Администрирование баз данных. СУБД MS SQL Server [Электронный ресурс]: учебное пособие/ Култыгин О.П.— Электрон. текстовые данные. – М.: Московский финансово-промышленный университет «Университет», 2012.— 232 c.
  14. Култыгин О.П Распределенные системы обработки информации. [Электронный ресурс]: учебное пособие/ Култыгин О.П. - М.: Московский финансово-промышленный университет «Университет»,. - 2011. – 69 с.
  15. Методические материалы к спецкурсу «Распределенные базы данных на примере ORACLE» для студентов 5 курса дневного отделения / Сост. И.Ф. Астахова. – Воронеж, 2000. – 40 с.
  16. Мирошниченко Г. Реляционные базы данных. Практические приемы оптимальных решений. – СПб. : БХВ-Петербург, 2005. – 400с.
  17. Орел А. А., Ромакина О.М. Информационные системы: Учебное пособие по дисциплине для специальностей ПИЭ и ПИЮ. - Саратов, 2004, 87 с.
  18. Радченко, Г.И. Распределенные вычислительные системы / Г.И. Радченко. –Челябинск::Фотохудожник, 2012. – 184 с.
  19. Распределенная обработка данных: курс лекций / Сост. Найханова Л.В. – Улан-Удэ, Изд-во ВСГТУ, 2001. – 122 с.
  20. Распределенные системы обработки информации Учебно-методическое пособие для вузов / Составитель А.Ю. Телков Воронеж, 2007, 27 с.
  21. Сивохин А.В., Шибанов С.В., Самуйлов С.В. Разработка и сопровождение баз данных в среде СУБД MS SQL Server 2000: Учебное пособие. - Пенза: Пенз. гос. ун-т, 2004. - 154 с.
  22. Советов Б.Я., Цехановский В.В., Чертовской В.Д. Базы данных. Теория и практика. – Высшая школа, 2007. – 463 с
  23. Стасышин В.М. Проектирование информационных систем и баз данных [Электронный ресурс]: учебное пособие/ Стасышин В.М.— Электрон. текстовые данные. – Новосибирск: Новосибирский государственный технический университет, 2012.— 100 c.
  24. Сухомлинов А.И., Атаманов Ю.С., Гончарук В.С., Гордеев С.Н. Проблемы распределенных СУБД // Международный научный журнал молодой ученый. – 2017. – №15(149). – с.5-6
  25. Таненбаум Э., Стеен ван М., Распределенные системы / Э. Таненбаум, М. Ван Стеен. – Спб.: BHV, 2003. – 877 с.
  26. Ткачев О.А. Создание и манипулирование базами данных средствами СУБД Мicrosoft SQL Server 2008 [Электронный ресурс]: учебное пособие/ Ткачев О.А.— Электрон. текстовые данные.— М.: Московский городской педагогический университет, 2013.— 152 c
  27. Токмаков Г.П. Базы данных. Концепция баз данных, реляционная модель дан- ных, языки SQL и XML : учебное пособие / Г. П. Токмаков. – Ульяновск : УлГТУ, 2010. − 192 с
  28. Учебное пособие по дисциплине "Распределенные системы обработки информации" для студентов специальности «Автоматизированные системы обработки информации и управления» Галяминских В.Г. Томск 2011, 171 с.
  29. Цветков В.Я., Алпатов А.Н. Проблемы распределенных систем // Перспективы Науки и Образования, - 2014. - №6(12) . – с. 31-35
  30. Чернопрудова Е.Н., Щелоков С.А. «Проектирование распределенных информационных систем. Курс лекций »: Оренбург. - 2012. – 28 с.