Основные понятия и технологии распределенной обработки данных. Возможности использования языка структурированных запросов Structured Query Language в прикладном программировании. Элементы интерфейса и особенности реализации реляционной модели данных.
Для управления реляционными базами данных используются программы, называемые системами управления базами данных, СУБД. Для достижения поставленной цели в курсовой работе необходимо решить следующие задачи: 1) раскрыть сущность понятий база данных, система управления базами данных путем изучения классификации баз данных и СУБД по степени распределенности, по технологии хранения данных, по содержимому, по моделям построения; Система управления базами данных (СУБД) - программное обеспечение (ПО), с помощью которого пользователи могут определять, создавать и поддерживать базу данных, а также получать к ней контролируемый доступ [5, с. Недостатками сетевой модели данных являются: высокая сложность и жесткость схемы базы данных, которая построена на ее основе; трудность для понимания и выполнения обработки информации в базе данных непрофессиональным пользователем. Объектная модель базы данных используется в основном для создания высокого уровня абстракции и работы с объектными данными, такими как изображение, музыка, видео и различного текста, Характеристика современных объектных моделей баз данных приведена в таблице 1 [13, с.База данных представляет собой набор логически связанных данных, которые предназначен для удовлетворения информационных потребностей пользователей, а система управления базами данные - это программное обеспечение (ПО), с помощью которого пользователи могут определять, создавать и поддерживать базу данных, а также получать к ней контролируемый доступ. Проведен сравнительных анализ основных моделей построения баз данных, обоснованно выделена реляционная модель построения баз данных для дальнейшего исследования. Реляционная модель данных представляет собой логическую модель данных, построенную на основе набора отношений и аспекта целостности, где отношения отвечают определенным условиям целостности и принципам обработки, с помощью которого реляционная модель данных поддерживает операторы обработки отношений, таких как реляционная алгебра и реляционное исчисление. В результате изучения технологий распределенной обработки данных была рассмотрена технология модели "клиент-сервер" основана на принципе взаимодействия двух программных процессов, в котором клиентский процесс запрашивал некоторые услуги, а серверный - обеспечивал их выполнение, причем один серверный процесс может обслужить множество клиентских процессов. На основании проведенного исследования в первой главе обоснованно выбраны для дальнейшего исследования реляционная модель построения баз данных и модель удаленного управления данных, как наиболее подходящие для распределенной обработки данных с использование SQL-запросов к серверу БД.
Введение
Актуальность темы курсовой работы заключается в том, что в современном компьютерном мире язык структурированных запросов SQL предоставляет пользователю большое количество возможностей по применению и объединению информации из различных источников. Кроме того, в настоящее время SQL нашел широкое применение в прикладном программировании, поскольку значительно сокращает объем работ, который пришлось бы выполнять при использовании универсальных языков программирования.
Язык структурированных запросов SQL (Structured Query Language) предназначен для создания и работы с реляционными базами данных, которые представляют собой наборы связанных данных, хранящихся в таблицах. Для управления реляционными базами данных используются программы, называемые системами управления базами данных, СУБД.
В области баз данных наблюдается все большая интеграция, которая повышает важность стандартного языка, пригодного для использования на различных компьютерных платформах и с разными СУБД.
При наличии стандартного языка достаточно изучить один набор команд и применять его для ввода, поиска, изменения и передачи информации независимо от имеющейся платформы: персональный компьютер, рабочая станция или большая ЭВМ.
Приложения, написанные на стандартном языке, способны работать со многими базами данных, как при использовании API ODBC.
Объектом исследования курсовой работы являются "Базы данных", а предметом исследования - "Использование SQL в прикладном программировании".
Целью курсовой работы является изучение возможностей использования SQL в прикладном программировании.
Для достижения поставленной цели в курсовой работе необходимо решить следующие задачи: 1) раскрыть сущность понятий база данных, система управления базами данных путем изучения классификации баз данных и СУБД по степени распределенности, по технологии хранения данных, по содержимому, по моделям построения;
2) изучить особенности реляционной модели данных;
3) изучить технологии распределенной обработки данных путем определения из достоинств и недостатков, проведения сравнительного анализа, а также выделить технологию, которая наиболее подходит для распределенной обработки данных с использованием SQL-запросов к серверам БД;
4) рассмотреть структуру и назначение операторов SQL: операторов определения данных DDL, операторов манипулирования данных DML, операторов управления данными DCL;
5) изучить возможности использования SQL в прикладном программировании.
При написании курсовой работы использовались научные труды следующих авторов: Астахова И.Ф.[1], Боуман Дж.С. [2], Гарсиа-Молина Г.[3], Дейт К.[4-6], Дунаев В.В.[7], Жилин Д.М.[9] и другие.
1. Основные понятия и технологии распределенной обработки данных
1.1 Основные понятия и классификация баз данных и систем управления базами данных
База данных (БД) - это совместно используемый набор логически связанных данных (и их описание), предназначенный для удовлетворения информационных потребностей пользователей.
Система управления базами данных (СУБД) - программное обеспечение (ПО), с помощью которого пользователи могут определять, создавать и поддерживать базу данных, а также получать к ней контролируемый доступ [5, с. 123].
По степени распределенности базы данных и СУБД разделяются локальные и распределенные, групповые и корпоративные, как показано на рисунке 1 [6, с. 102].
Рисунок 1 - Классификация баз данных и СУБД по степени распределенности
Локальные базы данных и системы управления базами данных, как правило, реализуются на одном автономном компьютере и рассчитаны на работу одного пользователя. Как правило, приложения разрабатываются с помощью локальных баз данных, например [7, с.88]: Clarion, Clipper, FOXPRO, Paradox, DBASE, Microsoft Access.
Групповые базы данных и системы управления базами данных реализуются в локальной сети и рассчитаны на работу группы пользователей подключенных к одному серверу баз данных, которые называются SQL серверами. Наиболее часто используемыми являются: Oracle, DB2, Microsoft SQL Server, Inter Base, Sybase, Informix.
Корпоративные базы данных и системы управления базами данных реализуются на больших предприятиях и могут поддерживать территориально разнесенные узлы в сети. Как правило, корпоративные БД и СУБД имеют иерархическую структуру, состоящую из нескольких уровней. Наибольшее распространение получили серверы баз данных: Oracle, DB2, Microsoft SQL Server [8, с. 76]. По технологии хранения данных базы данных и СУБД классифицируются следующим образом (рисунок 2) [9, с. 123]:
Рисунок 2 - Классификация баз данных и СУБД по технологии хранения данных
Фактографические базы данных и СУБД являются аналогами бумажных карточек и предназначены для хранения данных представленных в строго фиксированных форматах и краткой форме.
Документальные базы данных и СУБД являются аналогами исторических документов или архивов документов, обеспечены формализованным аппаратом поиска и предназначены для хранения графических объектов и неструктурированных текстовых документов [10, с. 156].
Централизованные базы данных и СУБД реализуются, как правило, либо на одном автономном компьютере, либо в сети на основании архитектуры "клиент-сервер", хранение данных организовано только на одном компьютере.
Распределенные базы данных и СУБД отличаются от централизованных тем, что данные могут быть разбиты на разные части и храниться на нескольких компьютерах в вычислительной сети.
По содержимому базы данных и СУБД разделяются на следующие группы [11, с. 336]: 1) графические, предназначенные для хранения данных графических форматов, как правило, это базы данных фотографий, архивы изображений различного стилевого оформления;
2) исторические, предназначенные для хранения текстовых данных представляющих историческую ценность, это, как правило, базы данных для ведения исторических архивов предприятий, выдающихся деятелей искусства, культуры и науки;
3) научные, предназначенные для хранения текстовых и графических данных, проведения научных исследований и отражения последних достижений науки и техники;
4) мультимедийные, предназначенные для хранения данных представленных в видео формате: базы данных видеофильмов, музыки, проектов анимационных разработок.
1.2 Модели построения баз данных
Модель данных - это абстрактное, самодостаточное, логическое определение объектов, операторов и прочих элементов, в совокупности составляющих абстрактную машину доступа к данным, с которой взаимодействует пользователь. Эти объекты позволяют моделировать структуру данных, а операторы - поведение данных.
В настоящее время существуют следующие основные модели построения баз данных: иерархическая, сетевая, объектная, объектно-ориентированная, реляционная.
Рассмотрим особенности каждой из моделей построения баз данных.
Иерархическая структура представляет множество элементов, имеющих между собой связи по определенным правилам. Объекты, связанные иерархическими отношениями, образуют ориентированный граф (перевернутое дерево).
К основным понятиям иерархической структуры относятся: уровень, элемент (узел), связь.
Узел - это совокупность атрибутов данных, которые описывают некоторый объект.
На схеме иерархического дерева узлы представляются вершинами графа. Каждый узел на низшем уровне связан только с одним узлом, который находится на более высоком уровне.
Иерархическое дерево имеет единственную вершину (корень дерева), не подчиненную никакой другой вершине и находится на самом верхнем (первому) уровне. Зависимые (подчиненные) узлы находятся на втором, третьем и так далее уровнях. Количество деревьев в базе данных соответствует числу корневых записей. К каждой записи базы данных существует только один (иерархический) путь от корневой записи.
Особенностью реализации операций поиска в иерархической модели является то, что операция всегда начинает поиск с корневой вершины и специфицирует иерархический путь (последовательность связанных вершин) от корня до вершины, экземпляры которой удовлетворяют условиям поиска.
Структура иерархической модели данных представлена на рисунке 3 [12, с. 206].
Рисунок 3 - Структура иерархической модели данных
Структура иерархической модели данных (рисунок 3) состоит из структурной части и управляющий части. В структурной части иерархической модели данных выделяют поле, представляющие собой наименьшую единицу данных, доступную пользователю и сегмент, для которого определяются тип и экземпляр. Причем экземпляр сегмента образуется из значений полей данных заданных определенным образом и поименованной совокупности входящих в него типов полей данных определяемых типом сегмента.
Основными достоинствами иерархической модели данных являются: эффективное использование памяти ЭВМ; высокая скорость выполнения операций над данными; удобство работы с иерархически упорядоченной информацией.
Недостатком иерархической модели является ее громоздкость для обработки информации с достаточно сложными логическими связями.
На иерархической модели данных основано сравнительно ограниченное количество СУБД, в числе которых можно назвать зарубежные системы IMS , PC / Focus, Team - Up и Data Edge , а также отечественные системы Ока, ИНЭС и МИРИС.
Сетевая модель данных является расширением иерархического подхода, описывается строгой математической теорией, отражающей структурный, целостный и аспект обработки данных, и состоит из набора экземпляров определенного типа записи и набора экземпляров определенного типа связей между этими записями.
Основное отличие сетевой структуры от иерархической структуры данных заключается в том, что каждый элемент в сетевой структуре может быть связан с любым другим элементом.
Достоинствами сетевой модели данных являются: эффективность в использовании памяти компьютера; высокая скорость выполнения основных операций над данными; огромные возможности по сравнению с иерархической модели по образованию произвольных связей.
Недостатками сетевой модели данных являются: высокая сложность и жесткость схемы базы данных, которая построена на ее основе; трудность для понимания и выполнения обработки информации в базе данных непрофессиональным пользователем.
Наиболее известными сетевыми СУБД являются: IDMS, db _ VISTAIII , СЕТЬ, СЕТОР и КОМПАС.
Объектная модель базы данных используется в основном для создания высокого уровня абстракции и работы с объектными данными, такими как изображение, музыка, видео и различного текста, Характеристика современных объектных моделей баз данных приведена в таблице 1 [13, с. 199].
Таблица 1 - Современные объектные модели баз данных
Название Назначение
Versant (разработка Versant Technologies) Используется для разработки телекоммуникаций
POET (компания POET Software) Поддержка интерфейсов C , Java, Visual Basic
Object Store PSE (разработка компании Object Design) Модули объектов Java
Объектно-ориентированная модель отличается от объектной модели тем, что данные могут, как моделироваться в виде объектов, так и представляться атрибутами, методами и классами [14, с. 22].
Объектно-ориентированные модели представления данных позволяют идентифицировать отдельные записи базы. Между записями базы данных и функциями их обработки формируются определенные взаимосвязи с помощью механизмов, похожих на соответствующие средства в объектно-ориентированных языках программирования. Характеристики объектно-ориентированной модели данных приведены в Приложении А.
Достоинствами объектно-ориентированной модели данных являются: возможность показа информации о сложных взаимосвязях объектов; способность идентификации отдельной записи базы данных и определения функции ее обработки.
К недостаткам объектно-ориентированной модели данных относятся: трудность в понимании ее деятельности непрофессиональным пользователем; неудобство обработки данных; небольшая скорость выполнения запросов.
Среди объектно-ориентированных СУБД можно выделить системы фирмы РОЕТ: Software, Versant фирмы Versant Technologies и др.
Реляционная база данных представляет собой хранилище данных, организованных в виде двумерных таблиц. Таблицы отражают тип объекта (сущности), разделенные на строки, представляющие собой экземпляры объекта и столбцы, соответствующие атрибутам, на пересечении которых содержатся значения данных, составляющие основу организации реляционной модели данных.
Для упорядочивания строк в реляционной таблице модели данных используется первичный ключ, который представляет собой атрибут или группу атрибутов, а для упорядочивания столбцов одной таблицы, значения в котором совпадают со значениями в другой таблице, используется внешний ключ. Реляционная модель данных поддерживает операторы обработки отношений, таких как реляционная алгебра и реляционное исчисление.
Основные правила реляционной модели данных отражены на рисунке 4
Рисунок 4 - Основные правила реляционной модели данных
В реляционной модели данных различают связи по типу и мощности связи, которая представляет собой отношение количества экземпляров родительской сущности к соответствующему количеству дочерней сущности.
В таблице 2 приведены характеристики используемых в реляционной модели данных связей [16, с. 36].
Таблица 2 - Виды связей, используемых в реляционной модели данных
Название Характеристика
По типу: Идентифицирующая Экземпляр дочерней сущности идентифицируется через ее связь с родительской сущностью
Не идентифицирующая Атрибуты, которые составляют первичный ключ родительской сущности, входят в состав не ключевых атрибутов дочерней сущности
По мощности связи: Один к одному Одной строке родительской таблицы может соответствовать не более одной сроки дочерней таблицы
Один ко многим Одной строке родительской таблицы может соответствовать множество строк дочерней таблицы, но любой сроке дочерней таблицы может соответствовать только одна строка родительской таблицы
Особое значение в реляционной модели данных уделяется нормализации отношений, которая представляет собой процесс функциональной зависимости между атрибутами одного и того же отношения, когда каждому значения одного атрибута соответствует только одно значение второго атрибута.
Нормализация связана с разделением одной таблицы на две или более таблиц, которые соответствуют требованиям нормальных форм, характеристика которых приведена в таблице 3 [17, с. 103].
Таблица 3 - Характеристика нормальных форм
Название формы Характеристика
Первая нормальная форма (1НФ) На любом пересечении строки и столбца находится единственное значение, которое должно быть атомарным, при этом не должно быть повторяющихся групп
Вторая нормальная форма (2НФ) В основе находится понятие полной функциональной зависимости, когда один атрибут полностью функционально зависит от другого атрибута и не зависит от какого-либо подмножества атрибута
Третья нормальная форма (3НФ) В основе находится транзитивная зависимость, то есть, чтобы ни один не ключевой столбец не зависел бы от другого не ключевого столбца
Четвертая нормальная форма (4НФ) В основе находится многозначная зависимость, которая существует между атрибутами некоторого отношения, однако входящие в эти наборы значения не зависят друг от друга
Пятая нормальная форма (5НФ) Отношение, которое не содержит зависимостей соединения, то есть когда декомпозиция отношения может сопровождаться генерацией ложных строки при обратном соединении декомпозированных отношений с помощью операции естественного соединения
Достоинство реляционной модели данных заключается в простоте, понятности и удобстве физической реализации на ЭВМ. Именно простота и понятность для пользователя явились основной причиной ее широкого использования.
К основным недостаткам реляционной модели относятся отсутствие стандартных средств идентификации отдельных записей и сложность описания иерархических и сетевых связей.
Примерами зарубежных реляционных СУБД для ПЭВМ являются: DB 2, Paradox, FOXPRO, Access, Clarion, Oracle. К отечественным СУБД реляционного типа относятся системы ПАЛЬМА и HYTECH.
На основании проведенного анализа основных моделей построения баз данных для дальнейшего исследования выбираем реляционную модель, как наиболее простую и удобную для физической реализации на ЭВМ.
1.3 Технологии распределенной обработки данных
Рассмотрим модели, которые используются в технологии распределенной обработки данных.
Технология модели "клиент-сервер" основана на принципе взаимодействия двух программных процессов, в котором клиентский процесс запрашивал некоторые услуги, а серверный - обеспечивал их выполнение, причем один серверный процесс может обслужить множество клиентских процессов.
В основу технологии "клиент-сервер" заложено разделение функций стандартного интерактивного приложения (рисунок 5) [18, с.196].
Рис. 5. Функции технологии "клиент-сервер"
В основе структуры типового интерактивного приложения, работающего с базой данных, содержатся [19, с.179]: - претензионная логика, которая определяется тем, что пользователь видит на своем экране, когда работает приложение;
- бизнес - логика, определяющая алгоритмы решения задач приложений и обычно создается с использованием различных языков программирования;
- логика обработки данных, которая отвечает за обработку данных внутри приложения для обеспечения доступа, к которым используется язык запросов и средства манипулирования данными SQL;
- процессор управления данными, с помощью которого обеспечивается хранение и управление базами данных, где функции СУБД должны быть скрыты от бизнес - логики приложений.
Также для распределения указанных функций используются двухуровневые модели: модель удаленного управления данными и модель файлового сервера.
Распределение функций в модели файлового сервера данными показано на рисунке 6 [20, с.108].
Рисунок 6 - Структура распределения функций в модели файлового сервера
Достоинством модели файлового сервера является то, что не требуется разделение монопольного приложения на два взаимодействующих процесса, при этом сервер, как и при технологии "клиент-сервер" может одновременно обслуживать несколько клиентов, которые обращаются к нему с запросами.
Недостатки модели файлового сервера являются: высокий сетевой трафик, узкий спектр операций манипулирования с данными и отсутствие адекватных средств безопасности доступа к данным.
В отличие от модели файлового сервера, в модели удаленного доступа к данным, база данных храниться на сервере, на котором также находится ядро системы управления базами данных, а на клиенте располагается претензионная логика и бизнес логика приложения, как показано на рисунке 7 [21, с. 223].
Рисунок 7 - Модель удаленного доступа к данным
Модель удаленного доступа к данным исключает главный недостаток модели файлового сервера, поскольку от клиентов к серверу передаются не запросы на ввод-вывод, а структурированные запросы, объем которых значительно меньше и в ответ на запросы клиент получает только данные, релевантные запросу, а не блоки файлов.
Таким образом, модель удаленного доступа к данным, наиболее подходит для реализации распределенной СУБД с использованием SQL запросов.
2. Особенности языка структурированных запросов SQL
2.1 Общие понятия о языке SQL
Язык структурированных запросов SQL является информационно-логическим языком, предназначенным для описания, изменения и извлечения данных, хранимых в реляционных базах данных [22, с. 102].
Язык SQL является основным способом работы пользователя с базой данных и позволяет выполнять следующий набор операций, приведенных на рисунке 8 [23, с. 63].
При всех своих изменениях, SQL остается единственным механизмом связи между прикладным программным обеспечением и базой данных.
В то же время, современные СУБД, а, также, информационные системы, использующие СУБД, предоставляют пользователю развитые средства визуального построения запросов.
Каждое предложение SQL - это запрос или обращение к базе данных, которое приводит к изменению в базе данных.
В соответствии с тем, какие изменения происходят в базе данных, различают следующие типы запросов (рисунок 9) [24, с. 122].
Основным объектом хранения реляционной базы данных является таблица, поэтому все SQL-запросы - это операции над таблицами. В соответствии с этим, запросы делятся на [25, с. 169]: - запросы, оперирующие самими таблицами (создание и изменение таблиц);
- запросы, оперирующие с отдельными записями (или строками таблиц) или наборами записей.
Каждая таблица описывается в виде перечисления своих полей (столбцов таблицы) с указанием: - типа хранимых в каждом поле значений;
- связей между таблицами (задание первичных и вторичных ключей);
- информации, необходимой для построения индексов.
Рисунок 9 - Типы запросов для организации работы СУБД
Запросы первого типа, в свою очередь, делятся на запросы, предназначенные для создания в базе данных новых таблиц, и на запросы, предназначенные для изменения уже существующих таблиц.
Запросы второго типа оперируют со строками, и их можно разделить на запросы следующего вида [26, с. 108]: - вставка новой строки;
- изменение значений полей строки или набора строк;
- удаление строки или набора строк.
Самый главный вид запроса - это запрос, возвращающий (пользователю) некоторый набор строк, с которым можно осуществить одну из трех операций [27, с. 223]: - просмотреть полученный набор;
- изменить все записи набора;
- удалить все записи набора.
Таким образом, использование SQL сводится, по сути, к формированию всевозможных выборок строк и совершению операций над всеми записями, входящими в набор [28, c.23].
2.2 Структура и назначение операторов SQL
Различают следующие основные операторы SQL: 1) операторы определения данных DDL;
2) операторы манипулирования данными DML;
3) операторы управления транзакциями TCL.
Операторы определения объектов базы данных позволяют создавать, удалять, изменять базу данных, таблицы в базе данных, а также выполнять операции с доменами баз данных и представлениями.
Основные операторы определения объектов базы данных DDL и их назначение приведены в таблице 4 [28, с. 56].
Таблица 4 - Основные операторы определения объектов базы данных DDL
Название Значение
CREATE SCHEMA Создание схемы базы данных
DROP SHEMA Удалить схему базы данных
CREATE TABLE Создать таблицу
ALTER TABLE Изменить таблицу
DROP TABLE Удалить таблицу
CREATE DOMAIN Создать домен
ALTER DOMAIN Изменить домен
DROP DOMAIN Удалить домен
CREATE COLLATION Создать последовательность
DROP COLLATION Удалить последовательность
CREATE VIEW Создать представление
DROP VIEW Удалить представление
Операторы манипулирования данными DML позволяют отобрать, добавить и изменить строки в таблице базы данных, а также зафиксировать и откатить внесенные изменения, как показано в таблице 5 [28, с. 52].
Таблица 5 - Основные операторы манипулирования данными DML
Название Значение
SELECT Отобрать строки из таблиц
INSERT Добавить строки в таблицу
UPDATE Изменить строки в таблице
DELETE Удалить строки в таблице
COMMIT Зафиксировать внесенные изменения
ROLLBACK Откатить внесенные изменения
Операторы управления транзакциями позволяют создавать и удалять ограничения, предоставлять и отменять привилегии пользователю или приложению на манипулирование объектами и их назначение приведено в таблице 6 [28, с. 46].
Таблица 6 - Операторы управления транзакциями TCL
Название Значение
CREATE ASSERTION Создать ограничение
DROP ASSERTION Удалить ограничение
GRANT Предоставить привилегии пользователю или приложению на манипулирование объектами
REVOKE Отменить привилегии пользователя или приложения
2.3 Преимущества и недостатки языка SQL
Так как существует общепринятый стандарт языка SQL, многие разработчики СУБД стараются придерживаться его. Использование базой данных языка SQL является одним из факторов определяющих ее успешность и распространенность.
Существуют различия в синтаксисе между конкретными СУБД, но в большинстве случаев запросы из одной СУБД могут быть перенесены на другую с минимальными изменениями.
Наличие стандартов и набора тестов для определения совместимости конкретной реализации SQL к общепринятому стандарту заметно способствует унификации языка.
Правда, стоит заметить, что сам по себе стандарт несколько раздут в размерах (Например, размер части "ядра" стандарта SQL занимает 1300 страниц текста) [20, с. 44].
Основные преимущества языка структурированных запросов SQL приведены на рисунке 10 [2, с. 90].
Для опытных программистов баз данных важно знать, каким образом СУБД будет обрабатывать его запрос, поэтому в большинстве СУБД предусмотрена возможность показать программисту последовательность действий, которую будет выполнять СУБД при запросе.
При этом программист имеет возможность "подсказывать" СУБД при формировании запроса, какие лучше использовать индексы и в каком порядке.
Рисунок 10 - Преимущества языка SQL
К основным недостаткам языка SQL относятся неопределенные значения, возможность дублирования, отсутствие поддержки свойства "=" и высокая избыточность. Современный язык структурированных запросов SQL считается сложным для освоения, с ним работают в основном программисты, хотя изначально он задумывался как язык, с которым сможет работать конечный пользователь [21, с. 245].
Таким образом, язык SQL является одним из языков, появившихся в результате разработки реляционной модели данных, который фактически превратился в стандартный язык реляционных баз данных, поэтому представляет большой интерес рассмотреть в третьей главе применение языка SQL в прикладном программировании.
3. Использование SQL в прикладном программировании
3.1 Обоснование выбора применяемых технологий для решения задачи
Сегодня существует много различных технологий, позволяющих создавать веб-приложения разной степени сложности. К ним относятся ASP, ASP.NET, PHP, JSP и многие другие. Наиболее популярной и распространенной технологией на сегодняшний день является PHP, во многом благодаря своей бесплатности [20, с. 72].
ASP.NET - это новая технология, разработанная компанией Microsoft и являющаяся частью среды .NET Framework. Она позволяет динамически создавать документы на веб-сервере, когда они запрашиваются по протоколу HTTP.
PHP - это открытая и бесплатная технология. PHP - это скриптовый язык, созданный для динамического вывода HTML.
JSP (Java Server Pages) - технология, позволяющая веб-разработчикам легко создавать содержимое, которое имеет как статические, так и динамические компоненты. По сути, страница JSP является текстовым документом, который содержит текст 2-х типов: - статические исходные данные, которые могут быть оформлены в одном из текстовых форматов HTML, SVG, WML;
- XML и JSP элементы, которые конструируют динамическое содержимое.
Кроме этого могут использоваться библиотеки JSP тегов, а также EL (Expression Language), для внедрения Java-кода в статичное содержимое JSP-страниц.
Одним из важнейших факторов, влияющим на выбор той или иной технологии, является быстродействие, особенно при одновременной работе с множеством пользователей. Утверждать, что какая - то из технологий всегда выигрывает в быстродействии нельзя, необходимо рассматривать каждый конкретный случай отдельно.
Скорость работы обеспечивается тем, что все РНР-приложения работают в едином адресном пространстве, тогда как ASP.NET за счет сложной модели классов многократно проверяет и перепроверяет данные, удерживая каждое приложение в отдельном адресном пространстве.
Первый подход более быстр, но менее надежен, второй - более надежен, но за это приходится платить.
Отдельно стоит упомянуть об обеспечении быстродействия при взаимодействии с СУБД. Технология PHP ориентирована на работу с MYSQL, а ASP.NET - с MS SQL Server. Это значит, что наилучшее быстродействие будет достигаться при использовании соответствующей СУБД.
JSP - одна из высокопроизводительных технологий, так как весь код страницы транслируется в Java-код сервлета с помощью компилятора JSP страниц Jasper, и затем компилируется в байт-код виртуальной машины Java (JVM). Контейнеры сервлетов, способные исполнять JSP страницы, написаны на языке Java, который может работать на различных платформах. JSP страницы загружаются на сервере и управляются из структуры специального Java Server Packet, который называется Java EE WEB Application, в большинстве своем упакованные в файловые архивы .war и .ear.
Выгода, которую дает технология JSP в сравнении с другими веб-технологиями заключается в том, что JSP является платформонезависимой, переносимой и легко расширяемой технологией для разработки веб-приложений.
Любая из представленных технологий сможет реализовать требования, предъявляемые к нашему приложению. Одним из ключевых фактов однако является хостинг созданной системы, и тут у РНР весомое преимущество, в интернете существует огромное число хостингов поддерживающих РНР в связке с MYSQL, это и повлияло на выбор используемого языка программирования для серверной части системы [19, с. 170].
Для разработки клиентской части системы используется язык программирования JAVASCRIPT.
Язык JAVASCRIPT - это прототипно-ориентированный сценарный язык программирования. Является диалектом языка ECMASCRIPT.
Язык JAVASCRIPT обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам.
Основные архитектурные черты: динамическая типизация, слабая типизация, автоматическое управление памятью, прототипное программирование, функции как объекты первого класса.
На JAVASCRIPT оказали влияние многие языки, при разработке была цель сделать язык похожим на Java, но при этом легким для использования непрограммистами. Языком JAVASCRIPT не владеет какая-либо компания или организация, что отличает его от ряда языков программирования, используемых в веб-разработке.
Язык JAVASCRIPT практически не имеет конкурентов, единственным языком программирования - конкурентом JAVASCRIPT является язык Dart, разработанный в google, но он так и не приобрел популярность.
А вот фреймворков, облегчающих разработку на JAVASCRIPT, создано десятки, например: Backbone.js, Ember.js, CANJS, ANGULARJS, Dojo, YUI, JQUERY, KNOCKOUTJS, EXTJS.
Для создания системы выбран фреймворк JQUERY , как один из наиболее популярных, а также рекомендуемых для простых веб-приложений и сайтов. Обеспечивающих кроссбраузерность, легкую обработку событий, взаимодействие с удаленными сервисами, расширяемость и огромный набор плагинов. В работе был использован свободный набор инструментов для создания сайтов и веб-приложений Twitter Bootstrap, основанный на фреймворке JQUERY.
Разрабатываемая система будет хранить значительные объемы структурированной информации, к которой необходимо обеспечить эффективный множественный доступ. Исходя из этого, в качестве информационной системы была выбрана реляционная база данных.
Для управления базой данных необходимо выбрать СУБД, которая будет максимально отвечать требованиям, предъявляемым к разрабатываемому веб-приложению.
Довольно часто для малых и средних проектов используется СУБД MYSQL, она первоначально была разработана как простая бесплатная база данных. Однако при правильной архитектуре ее можно использовать и для высоконагруженных отказоустойчивых систем. Связка РНР MYSQL является наиболее популярной у веб разработчиков, а также стала необходимым условием предоставления услуг для веб хостинга.
Для написания и локального тестирования системы выбрался Open Server . Это портативная программная платформа, созданная специально для веб-разработчиков с учетом их рекомендаций и пожеланий.
Программный комплекс имеет богатый набор серверного программного обеспечения, удобный, многофункциональный продуманный интерфейс, обладает мощными возможностями по администрированию и настройке компонентов. Платформа широко используется с целью разработки, отладки и тестирования веб-проектов, а так же для предоставления веб-сервисов в локальных сетях.
Open Server включает в себя: Apache, nginx, PHP, MYSQL, PHPMYADMIN,FTP-сервер,FILEZILLA.
Open Server- это пожалуй наилучший комплект на сегодняшний день для создания и тестирования локальных сайтов под Windows. Удобное меню, система запуска, простое создание виртуальных хостов, внимание к мелочам позволяют легко работать начинающим веб-разработчикам, а входящие в комплект компоненты устроят и профессиональных программистов.
Для хостинга сайта был выбран сервис Hostinger.ru. Компания Hostinger - лидер услуг бесплатного веб-хостинга. Пользователи могут создавать собственные сайты без лишних расходов, без рекламы и под любые потребности. На этом сервисе поддерживается PHP, MYSQL и FTP-сервер. Это необходимый минимум для работоспособности разрабатываемой системы. Также сервис предоставляет собственные домены 3 уровня.
3.2 Реализация программной части веб - приложения
Реляционная структура базы данных приведена на рисунке 11.
Рисунок 11 - Реляционная структура базы данных
Таблица users содержит информацию о пользователях. Поле nickname является логином пользователя на сайт. Поля password_hash и salt отвечают за хранение пароля пользователя в БД.
Таблица categories содержит список категорий (тем) рассылки и определить какой пользователь подписан, на какие категории рассылки помогает таблица subscriptions, если она содержит ключ ID пользователя - ID категории, то пользователь подписан на эту категорию.
Таблица mails хранит в себе все отправленные сообщения. Понять какие сообщения были отправлены для каких категорий помогает таблица mailing_map. Если она содержит ключ ID категории - ID сообщения, то данное сообщение передавалось для всех пользователей данной категории.
Таблица hashes требуется для автоматической авторизации пользователя со всех устройств, с которых он уже входил в систему. при загрузке сайта с устройства, если пользователь не залогинен, то в cookies проверяется хэш сайта, и если совпадают пары хэш и ID пользователя, происходит автоматическая авторизация пользователя.
Описание таблиц базы данных приведено в Приложении Б.
Запросы, формирующие базу данных, приведены в Приложении В.
Для работы с базой данных и формирования контента сайта используется язык php.
Описание взаимодействия с базой данных средствами PHP приведено в Приложении Г.
3.3 Описание общей схемы взаимодействия компонент веб-приложения, основные сценарии работы
Попав на сайт, пользователь может зарегистрироваться или авторизоваться. Если пользователь попытается подписаться на рассылку без авторизации, то всплывет модальное окно с приглашением войти на сайт. Пользователи могут изменять настройки своих подписок.
Администратор имеет расширенный интерфейс, он может изменять настройки пользователь, а также изменять настройки категорий рассылок в специальных меню, доступных только людям с правами администратора. Также он может создать дополнительные категории, посмотреть архив рассылок и создать свою собственную рассылку.
Все события обрабатываются скриптом index.php или скриптами, доступными в папке / scripts. Все скрипты из этой папке не опасны, т.к. не содержат информации для подключения к базе данных.
Схема переходов пользователя приведена на рисунке 12.
Рисунок 12 - Схема переходов пользователя
Как видно из рисунка 12 схема переходов пользователя включает регистрацию, авторизацию, восстановление пароля, подписаться и отписаться от категории.
Основные страницы веб - приложения приведены в Приложении Д.
В третьей главе курсовой работы рассмотрен практический пример использования SQL в прикладном программировании на основании разработки веб - приложения, для которого была разработана и описана реляционная база данных, созданы SQL запросы по работе с базой данных и описан интерфейс пользователя. структурированный программирование интерфейс реляционный
Вывод
В первом разделе данной курсовой работы были изучены основные понятия и технологии распределенной обработки данных.
База данных представляет собой набор логически связанных данных, которые предназначен для удовлетворения информационных потребностей пользователей, а система управления базами данные - это программное обеспечение (ПО), с помощью которого пользователи могут определять, создавать и поддерживать базу данных, а также получать к ней контролируемый доступ.
Проведена классификация баз данных и СУБД по степени распределенности, по технологии хранения данных, в зависимости от характера хранимой информации и способа хранения данных, а также по содержимому.
Проведен сравнительных анализ основных моделей построения баз данных, обоснованно выделена реляционная модель построения баз данных для дальнейшего исследования.
Реляционная модель данных представляет собой логическую модель данных, построенную на основе набора отношений и аспекта целостности, где отношения отвечают определенным условиям целостности и принципам обработки, с помощью которого реляционная модель данных поддерживает операторы обработки отношений, таких как реляционная алгебра и реляционное исчисление.
В результате изучения технологий распределенной обработки данных была рассмотрена технология модели "клиент-сервер" основана на принципе взаимодействия двух программных процессов, в котором клиентский процесс запрашивал некоторые услуги, а серверный - обеспечивал их выполнение, причем один серверный процесс может обслужить множество клиентских процессов.
Также для распределения указанных функций рассмотрены структура, достоинства и недостатки двухуровневых моделей: модель удаленного управления данными и модель файлового сервера, которые исключают недостатки одноуровневой "клиент-серверной" технологии.
На основании проведенного исследования в первой главе обоснованно выбраны для дальнейшего исследования реляционная модель построения баз данных и модель удаленного управления данных, как наиболее подходящие для распределенной обработки данных с использование SQL-запросов к серверу БД.
Во втором разделе были рассмотрены особенности построения языка структурированных запросов SQL, который является информационно-логическим языком, предназначенным для описания, изменения и извлечения данных, хранимых в реляционных базах данных.
Каждое предложение SQL - это запрос или обращение к базе данных, которое приводит к изменению в базе данных.
Таким образом, использование SQL сводится, по сути, к формированию всевозможных выборок строк и совершению операций над всеми записями, входящими в набор.
Различают следующие основные операторы SQL: операторы определения данных DDL, операторы манипулирования данными DML, операторы управления транзакциями TCL.
Наличие стандартов и набора тестов для определения совместимости конкретной реализации SQL к общепринятому стандарту заметно способствует унификации языка. При этом программист имеет возможность "подсказывать" СУБД при формировании запроса, какие лучше использовать индексы и в каком порядке.
В третьем разделе данной курсовой работе рассмотрен практический пример использования SQL в прикладном программировании на основании разработки веб - приложения, для которого была разработана и описана реляционная база данных, созданы SQL запросы по работе с базой данных и описан интерфейс.
В процессе выполнения курсовой работы решены следующие задачи: 1) раскрыты сущность понятий база данных, системы управления базами данных путем изучения классификации баз данных и СУБД по степени распределенности, по технологии хранения данных, по содержимому, по моделям построения;
2) рассмотрены особенности реализации реляционной модели данных;
3) рассмотрены технологии распределенной обработки данных путем определения из достоинств и недостатков, проведения сравнительного анализа, а также выделена технология, которая наиболее подходит для распределенной обработки данных с использованием SQL-запросов к серверам БД;
4) выделена структура и определены назначения основных операторов SQL: операторов определения данных DDL, операторов манипулирования данных DML, операторов управления данными DCL;
5) рассмотрены и реализованы на практике возможности использования SQL в прикладном программировании.
Учитывая, что все поставленные задачи курсовой работы решены, можно обоснованно утверждать, что главная цель исследования - достигнута.
Список литературы
1. Астахова И.Ф., Толстобров А.П., Мельников В.М. SQL в примерах и задачах. - Мн.: Новое знание, 2011. - С.4
2. Боуман Дж.С., Эмерсон С.Л., Дарновски М. Практическое руководство по SQL. - Вильямс, 2011. - С.56-90
3. Гарсиа-Молина Г., Ульман Дж., Уидом Дж. Системы баз данных. Полный курс. - Вильямс, 2010. - С.125
4. Дейт К. Введение в системы баз данных, 8-е издание. - Вильямс, 2006. - С.725
5. Дейт К. SQL и реляционная теория. Как грамотно писать код на SQL. - Символ-Плюс, 2010. - С.123
6. Дейт К., Дарвен Х. Основы будущих систем баз данных. Третий манифест. - Янус-К, 2011. - С.102
7. Дунаев В.В. Базы данных. Язык SQL. - СПБ. : БХВ-Петербург, 2010. - С.88
8. Дж. Кастаньетто, Х.Рават, С.Шуман, К.Сколло, Д.Велиаф "Профессиональное РНР программирование". - Пер. с англ. - СПБ: Символ-Плюс, 2010. - С.76
9. Жилин Д.М. Теория систем: опыт построения курса. - КОМКНИГА, 2011. - С.123
10. Иванова Г.С. - "Основы программирования" Учебник для вузов. - М.: Изд-во МГТУ им. Н.Э. Баумана, 2010. - С.156
11. Коггзолл Джон. PHP 5. Полное руководство - М.: Вильямс, 2012 - С.336
12. Кренке Д. Теория и практика построения баз данных. - Питер, 2010. - С.206
13. Мирошниченко Г. Реляционные базы данных. Практические приемы оптимальных решений. - СПБ. : БХВ-Петербург, 2011. - С.199
14. Новиков Б., Домбровская Г. Настройка приложений баз данных. - BHV, 2011. - С.22
15. Советов Б.Я., Цехановский В.В., Чертовской В.Д. Базы данных. Теория и практика.- Высшая школа, 2010. - С.49
16. Скотт В. Эмблер, Прамодкумар Дж. Садаладж Рефакторинг баз данных. Эволюционное проектирование. - Вильямс, 2010. - C.36
17. Тоу Д. Настройка SQL. Для профессионалов. - Питер, 2011. - С.103
18. Фейт С. TCP/IP. Архитектура, протоколы и реализация (включая IP версии 6 и IP Security) - Питер, 2011. С.196
19. MYSQL. Библиотека профессионала - Киев: Диалектика, 2012 - С.170-179
20. PHP/MYSQL для начинающих - Кудиц-образ, 2010 - С.44-108
21. Теория и практика построения баз данных: Д. Кренке. - Питер, 2011. - С.223-250
22. Базы данных. "Проектирование, реализация и сопровождение", Томас Конном, Королинг Берг - 2010. - С.102
23. Microsoft Access 2007. Шаг за шагом: Практическое пособие / Пер. с англ. - М.: ЭКОМ, 2011. - С.63
24. Багриновский К.А. Хрусталев Е.Ю. Новые информационные технологии. - М.: ЭКО, 2011. - С.122
25. Информатика и информационно-коммуникационные технологии. Базовый курс: И.Г. Семакин, С.В. Русаков, Л.В. Шестакова. - М: БИНОМ, Лаборатория знаний, 2010. - С. 169
26. Компьютерные технологии обработки информации / Под ред. С.В. Назарова. - М.: Финансы и статистика, 2005. - С.108
27. Соболь Б.В., Галин А.Б., Панов Ю.В. и др. Информатика: учебник. - М.: Феникс, 2007. - С.223
28. Шкарина Л. Язык SQL: учебный курс. - СПБ.: Питер, 2001 - С.23-96
Размещено на .ru
Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность своей работы