Автоматизированное рабочее место инженера по гарантии СТО «Континент»
SQL Server работает на всех существующих платформах Windows. Клиентские компоненты поддерживают и их, а, кроме того, работают на UNIX и Apple. Для обеспечения безопасности данных SQL Server может использовать, как систему безопасности Windows (с которой он плотно интегрирован), так и с помощью собственных, встроенных средств. Система безопасности охватывает сетевой трафик, доступ к серверу и его… Читать ещё >
Автоматизированное рабочее место инженера по гарантии СТО «Континент» (реферат, курсовая, диплом, контрольная)
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное автономное образовательное учреждение высшего профессионального образования
«Национальный исследовательский ядерный университет «МИФИ»
Димитровградский инженерно-технологический институт — филиал НИЯУ МИФИ Факультет информационно-технолигический Кафедра информационных технологий ПОЯСНИТЕЛЬНАЯ ЗАПИСКА К ДИПЛОМНОМУ ПРОЕКТУ НА ТЕМУ:
«Автоматизированное рабочее место инженера по гарантии СТО «Континент»
Студент-дипломник Группы ПОуз-61 Гайсин В.Ф.
Руководитель ст. преподаватель Колбасов П.А.
Рецензент ст. преподаватель Шаповалов А.Ю.
Заведующий кафедрой доцент, к.п.н. Ракова О.А.
Димитровград, 2012 г.
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное автономное образовательное учреждение высшего профессионального образования
«Национальный исследовательский ядерный университет «МИФИ»
Димитровградский инженерно-технологический институт — филиал НИЯУ МИФИ ФАКУЛЬТЕТ информационно-технологический КАФЕДРА ИТ СПЕЦИАЛЬНОСТЬ 230 105.65
ГРУППА ПОуз-61
«УТВЕРЖДАЮ»
Заведующий кафедрой
/Ракова О.А./
«_____"___________2012г.
ЗАДАНИЕ НА ДИПЛОМНЫЙ ПРОЕКТ
1.Фамилия, имя, отчество дипломанта Гайсин Вадим Факилевич
2.Тема проекта Автоматизированное рабочее место инженера по гарантии СТО «Континент»
3. Срок сдачи студентом готовой работы__________________________
4. Руководитель дипломного проектирования Колбасов П. А
5. Консультанты Кузнецова Т. А., Ильмушкин А.Г.
Дата выдачи задания «____"__________20 г.
Руководитель дипломного проекта ______________________________
(подпись руководителя) Задание принял к исполнению __________________________________
(дата и подпись студента)
1. Исходные данные к работе:
требования к уровню разработки программного продукта:
а) удобный пользовательский интерфейс;
б) среда разработки Visual Studio 2010 Express;
в) язык программирования C#;
г) СУБД MS SQL 2008 Express;
д) ОС: Windows 2000/2003/XP/Vista/7;
е) тип ЭВМ: IBM PC — совместимый ПК.
2. Содержание работы:
а) обзорная часть:
— описание предметной области;
— описание структуры станции технического обслуживания;
б) теоретическая часть:
— обоснование средств разработки;
— теория реляционных баз данных;
— описание возможностей MS Visual Studio 2010 Express;
— обзор функций MS SQL 2008 Express;
в) экспериментальная часть:
— подробное описание реализации, тестирования и отладки программного средства;
г) экономико-организационная часть:
— расчёт стоимости программного продукта и анализ стоимости использования;
— обоснование экономического эффекта продукта;
д) раздел безопасности жизнедеятельности:
— гигиеническое нормирование условий труда программистов, операторов ЭВМ;
— виды ответственности за нарушение законодательных и нормативно-правовых актов по безопасности труда;
— защита персонала предприятий ИВО от опасных и вредных излучений.
3. Основная литература по теме работы:
а) Нильсен П. Microsoft SQL Server 2008. Библия пользователя [Текст] / Нильсен П. — М.: ООО «И.Д. Вильямс», 2008. — 1232 с.
б) Сахил М. Microsoft ADO.NET 2.0 для профессионалов [Текст] / Сахил М. — М.: ООО «И.Д. Вильямс», 2006. — 560с.
в) Раттц Дж. LINQ: интегрированный язык запросов в C# 2008 для профессионалов [Текст] / Раттц Дж. — М.: ООО «И.Д. Вильямс», 2008. — 560с.
4. Отчетный материал работы:
а) пояснительная записка;
б) макетно-экспериментальная часть: каркас базы данных MS SQL 2008, программные модули;
в) презентация в формате Power Point;
5. Консультанты по работе, с указанием относящихся к ним разделов проекта:
Раздел | Консультант | Подпись, дата | ||
Задание выдал | Задание принял | |||
БЖД | Кузнецова Т.А. | |||
Экономика | Ильмушкин А.Г. | |||
КАЛЕНДАРНЫЙ ГРАФИК ВЫПОЛНЕНИЯ ДИПЛОМНОГО ПРОЕКТА
№ п/п | Название этапов | Объем этапа в % | Сроки выполнения | Примечание | ||
начало | конец | |||||
1. | Анализ исходных данных, выбор схемы и основных параметров | 14.11.2011 | 20.11.2011 | |||
2. | Разработка основной части | 20.11.2011 | 20.12.2011 | |||
3. | Разработка графической части | 20.12.2011 | 31.12.2011 | |||
4. | Разработка экономико-организационной части | 10.01.2012 | 15.01.2012 | |||
5. | Разработка раздела по безопасности жизнедеятельности | 15.01.2012 | 20.01.2012 | |||
6. | Оформление пояснительной записки писки | 20.01.2012 | 5.02.2012 | |||
7. | Представление работы на проверку и отзыв руководителя дипломной работы квалификационной работы | 05.02.2012 | 10.02.2012 | |||
8. | Представление работы заведующему кафедрой | 10.02.2012 | 12.02.2012 | |||
9. | Представление на рецензию | 12.02.2012 | 17.02.2012 | |||
10. | Защита на заседании ГАК | 18.02.2012 | 18.02.2012 | |||
Руководитель: / Колбасов П. А /
РЕФЕРАТ Гайсин В. Ф. АВТОМАТИЗИРОВАННОЕ РАБОЧЕЕ МЕСТО ИНЖЕНЕРА ПО ГАРАНТИИ СТО КОНТИНЕНТ: Дипломный проект/ДИТИ НИЯУ МИФИ, № 230 105.65−003−12. — Димитровград, 2012. — 72 стр., рис. 31, табл. 24, библ. назв. 19, приложений 3.
Ключевые слова: БАза данных, автоматизированное рабочее место, отчет, клиент-сервер, ms sql, ЗАПРОС, станция технического обслуживания, инженер по гарантии, субд, интерфейс.
Объект исследования — деятельность инженера по гарантии станции технического обслуживания «Континент»
Цель работы — разработать автоматизированное рабочее место инженера по гарантии, которое позволяет хранить информацию о клиентах, автомобилях, видах предоставляемых услуг, рабочих выполняющих работы, запасных частях, а формирование акта выполненных работ и ведомости используемых запчастей.
Основные конструкторские и экономические показатели: приложение реализовано на языке программирования С# в среде разработки MS Visual Studio 2010 Express, внедрение данного программного комплекса позволит сократить время составления выходной документации инженера по гарантии.
Срок окупаемости — 8 месяцев.
Выводы: Создан и внедрён программный продукт, автоматизирующий деятельность инженера по гарантии. Внедрение повысило производительность и эффективность труда инженера по гарантии. В перспективе планируется расширение выходной документации и выгрузка данных в 1С.
Содержание Введение
1. Обзорная часть
1.1 Общая характеристика СТО
1.2 СТО как сервис
1.3 Организационная модель СТО Вывод по разделу 1
2. Выбор средств разработки
2.1 Базы данных и СУБД
2.1.1 Первые модели данных и СУБД
2.1.2 Реляционная модель данных
2.2 Выбор СУБД
2.2.1 MS SQL Server 2008 Express
2.2.2 Интерфейсы для доступа к данным LINQ и ADO.NET
2.2.3 Модель удаленного управления данными
2.2.4 Модель удаленного доступа к данным
2.2.5 Преимущества архитектуры клиент-сервер
2.2.6 Компоненты архитектуры клиент-сервер
2.3 Выбор средств разработки
2.4 Выбор языка программирования Вывод по разделу 2
3. Разработка программы и создание базы данных
3.1 Проектирование базы данных
3.2 Разработка концептуальной модели базы данных
3.3 Запросы
3.4 Структура программного комплекса
3.5 Разработка пользовательского интерфейса
3.4 Тестирование программного обеспечения Вывод по разделу 3
4. Экономический раздел
4.1 Расчёт затрат на разработку программного комплекса
4.2 Оценка экономической эффективности эксплуатации комплекса Вывод по разделу 4
5. Безопасность жизнедеятельности
5.1 Гигиеническое нормирование условий труда программистов, операторов электронно-вычислительных машин
5.2 Ответственность за нарушение законодательных и нормативно-правовых актов по безопасности труда
5.3 Защита персонала предприятий ИВО от опасных и вредных излучений Вывод по разделу 5
Заключение
Список использованных источников Приложение, А — Акт выполненных работ Приложение Б — Ведомость установленных запчастей Приложение В — Исходные коды программы
Задача накопления, обработки и распространения информации стояла перед человечеством на всех этапах его развития. В течение долгого времени основными инструментами для ее решения были мозг, язык и слух человека. Первое кардинальное изменение произошло с приходом письменности, а затем изобретением книгопечатания. Поскольку в эпоху книгопечатания основным носителем информации стала бумага, то технологию накопления и распространения информации естественно называть бумажной информатикой.
Положение в корне изменилось с появлением электронных вычислительных машин (ЭВМ). Первые ЭВМ использовались как большие автоматические арифмометры. Принципиально новый шаг был совершен, когда от применения ЭВМ для решения отдельных задач перешли к их использованию для комплексной автоматизации тех или иных законченных участков деятельности человека по переработке информации.
Одним из первых примеров подобного системного применения ЭВМ в мировой практике были так называемые административные системы обработки данных: автоматизация банковских операций, бухгалтерского учета, резервирования и оформления билетов и т. п. Решающее значение для эффективности систем подобного рода имеет то обстоятельство, что они опираются на автоматизированные информационные базы. При решении очередной задачи система нуждается во вводе только небольшой порции дополнительной информации, остальное берется из информационной базы. Каждая порция вновь вводимой информации изменяет информационную базу системы. Эта база (информационная, или база данных) находится, таким образом, в состоянии непрерывного обновления, отражая все изменения, происходящие в реальном объекте, с которым имеет дело система.
Хранение информации в памяти ЭВМ придает этой информации принципиально новое качество динамичности, т. е. способности к быстрой перестройке и непосредственному ее использованию в решаемых на ЭВМ задачах. Устройства автоматической печати, которыми снабжены современные ЭВМ, позволяют в случае необходимости быстро представить любую выборку из этой информации в форме представления на бумаге.
По мере своего дальнейшего развития административные системы обработки данных переросли в автоматизированные системы управления соответствующими объектами, в которых, как правило, не ограничиваются одной ЭВМ, а в составе двух и более ЭВМ объединяют в вычислительный комплекс.
Интеллектуальные АРМ в свою очередь также содержат в своем составе ЭВМ, тем или иным способом подсоединенную к центральной ЭВМ (ВК) АСУ. Устройства ввода также должны обеспечивать широкий спектр вводимой информации: текстовой, координатной, факсимильной и т. д. Поэтому АРМ оснащаются при необходимости универсальной или специальной клавиатурой, устройствами ввода координатной информации, различного рода сканерами и т. д.
С целью повысить спектр форм представления информации, выводимой из ЭВМ, АРМ оснастили цветными мониторами, средствами создания и управления звуковыми сигналами вплоть до возможности создания и воспроизведения речевых сигналов.
Станция технического обслуживания (СТО) — организация, предоставляющая услуги населению по плановому техническому обслуживанию, текущему и капитальному ремонтам, устранению неисправностей, установке дополнительного оборудования, восстановительному ремонту автотранспорта.
С точки зрения функционирования или структуры СТО, можно сказать, что СТО оказывает услуги схожего типа, в частности производит какие-либо манипуляции с автомашиной, приводя ее в рабочее состояние, либо совершенствуя какие-либо ее части.
Все обращающиеся в СТО клиенты, желающие оформить заказ на оказание услуг, должны заполнить форму регистрации, в которой необходимо указать свои ФИО, марку автомобиля, номерной знак и ФИО владельца машины, контактный телефон.
Таким образом, в функционирование СТО входит:
· Регистрация клиентов.
· Справочная информация о доступных услугах.
· Прием заказа на оказание услуг.
· Справочная информация о сделанном заказе.
· Отчет о проделанных работах и расчет стоимости предоставленных услуг, а так же установленных запчастях.
Данные функции на СТО выполняет инженер по гарантии. Это очень трудоемкая бумажная работа, затрачивающая большое количество времени, поэтому необходимо было разработать АРМ инженера по гарантии.
Данный проект разрабатывался по заказу ООО «Континент», он предназначен для автоматизации работы инженера. К программному комплексу были предъявлены такие требования как: все компоненты должны обладать удобным графическим пользовательским интерфейсом и работать под операционной системой Windows.
1. Обзорная часть
1.1 Общая характеристика СТО
Успешность бизнеса в сфере автосервисных услуг зависит от многих факторов. И чтобы по восходящей развивать своё дело в острой конкурентной борьбе, надо, по меньшей мере, обладать приличной информационной базой. А точнее — знать состояние современного рынка, тенденции обслуживания автомобилей и непременно — извлекать лучшее из опыта коллег, зарубежных партнеров. Тогда позволительно будет легко и продуктивно формулировать бизнес-планирование на предприятии.
Дальнейшее развитие автосервиса обусловило создание конкурентной среды в этой сфере, и основным направлением в работе предприятий автосервиса стало совершенствование качества предоставляемых услуг. Однако реализовать это требование было достаточно сложно в условиях несовершенства производственных структур, некачественных запасных частей, устаревшего оборудования, низкого уровня технологии и квалификации персонала. Наиболее успешные шаги относительно повышения качества услуг автосервиса связаны с заимствованием западных технологий и оборудования.
1.2 СТО как сервис
Самый перспективный бизнес на нашем рынке техники — сервис. Спрос на сервис техники постоянно увеличивается. Парк автомашин будет расти еще много лет, так как развивающаяся экономика требует все больше техники. Сотни тысяч новых предприятий, приобретающих технику, не обзаводятся ремонтной базой, рассчитывая на сервис производителей. Потребители новейших моделей не могут ремонтировать их сами, не желая затрат на специальное оборудование и обучение ремонтников.
Срочная организация сервисных инфраструктур для обеспечения подъема экономики исправной техникой — задача стратегическая. Темпы подъема экономики зависят и от сроков ремонта эксплуатируемой предприятиями техники. Более того, развитие сервисной инфраструктуры — это подъем одной из отраслей экономики, которая будет приносить налоговые отчисления.
Приоритетные задачи современного сервиса формулируются следующим образом:
· неукоснительное выполнение персоналом обязанностей и функций, зафиксированных в должностных инструкциях;
· постоянная забота об улучшении внешнего вида и интерьеров предприятия;
· использование ПО для минимизации времени выполнения задач;
· периодическая модернизация всех зданий, сооружений и оборудования с целью максимального удовлетворения потребностей клиентов и сотрудников предприятия;
· приведение количества рабочих мест и кадровых возможностей в соответствие с фактическим наличием заказов;
· увеличение прибыли посредством рационального управления предприятием и непрерывного контроля за показателями его эффективности.
· учет и контроль рабочего времени по организационно-экономическим критериям;
· сокращение количества послеремонтных рекламаций путем повышения качества работы и контроля, использование специальных программ для регулярного выборочного контроля;
· организация технической помощи на дороге и эвакуации неисправных автомобилей силами предприятия;
· применение рекомендованных изготовителем машин нестандартных инструментов и приспособлений, аппаратуры и оборудования;
· проверка, пополнение и эффективное использование всех имеющихся информационных материалов;
· целенаправленное повышение квалификации работников в курсовых и семинарских и других учебных мероприятиях.
1.3 Организационная модель СТО
Организационная структура СТО направлена на установление четких взаимосвязей между всеми ее отделениями, их тесного взаимодействия в выполнении поставленных задач.
Организационная структура СТО представлена на рисунке 1.1.
Рисунок 1.1 — Организационная модель деятельности СТО На станции технического обслуживания работают:
· инженер по гарантии — 1 человек;
· начальник отдела маркетинга — 1 человек;
· главный бухгалтер — 1 человек;
· жестянщик — 1 человек;
· автомаляр — 2 человека;
· автослесарь — 2 человека;
· диагност-электрик — 3 человека
· генеральный директор, являющийся единственным владельцем СТО.
Вывод по разделу 1
В данном разделе приведен анализ структуры станции технического обслуживания, организационная модель объекта автоматизации, а также формулируются существующие задачи функционирования предприятия.
2. Выбор средств разработки
2.1 Базы данных и СУБД
Базы данных — это совокупность структурированных взаимосвязанных данных, относящихся к определенной предметной области и организованных таким образом, что эти данные могут быть использованы для решения многих задач многими пользователями[2].
Системы управления базами данные (СУБД) — это набор программных модулей, необходимый и достаточный для создания и поддержания базы данных, т. е. универсальная часть, решающая стандартные задачи по информационному обслуживанию пользователя.
СУБД выполняет роль посредника между пользователями приложений и данными. Также СУБД должна обеспечивать гарантии безопасности и целостности базы данных. Пользователи компьютера должны иметь возможность защитить свои данные от несанкционированного доступа, а также восстановить их в случае неких системных сбоев. Централизованное обеспечение безопасности данных — важная особенность СУБД. Наиболее значительное преимущество систем с базами данных — это централизованное обеспечение целостности данных.
2.1.1 Первые модели данных и СУБД
Одной из наиболее важных сфер применения первых СУБД было планирование производства для компаний, занимающихся выпуском продукции. Например, если автомобильная компания хотела выпустить 10 000 машин одной модели и 5000 машин другой модели, ей необходимо было знать, сколько деталей следует заказать у своих поставщиков. Чтобы ответить на этот вопрос, необходимо определить, из каких деталей состоят эти части и т. д. Например, машина состоит из двигателя, корпуса и ходовой части; двигатель состоит из клапанов, цилиндров, свеч и т. д. Работа со списками составных частей была, как будто специально предназначена для компьютеров.
Список составных частей изделия по своей природе является иерархической структурой. Для хранения данных, имеющих такую структуру, была разработана иерархическая модель данных, которую иллюстрирует рисунок 2.1.
Рисунок 2.1 — Иерархическая база данных В этой модели каждая запись базы данных представляла конкретную деталь. Между записями существовали отношения предок/потомок, связывающие каждую часть с деталями, входящими в неё.
Чтобы получить доступ к данным, содержащимся в базе данных, программа могла:
· найти конкретную деталь (правую дверь) по её номеру;
· перейти «вниз» к первому потомку (ручка двери);
· перейти «вверх» к предку (корпус);
· перейти «в сторону» к другому потомку (правая дверь).
Таким образом, для чтения данных из иерархической базы данных требовалось перемещаться по записям, за один раз переходя на одну запись вверх, вниз или в сторону.
Одной из наиболее популярных иерархических СУБД была Information Management System (IMS) компании IBM, появившаяся в 1968 году. Ниже перечислены преимущества IMS и реализованной в ней иерархической модели:
· Простота модели. Принцип построения IMS был легок для понимания. Иерархия базы данных напоминала структуру компании или генеалогическое дерево.
· Использование отношений предок/потомок. СУБД IMS позволяла легко представлять отношения предок/потомок, например: «А является частью В» или «А владеет В».
· Быстродействие. В СУБД IMS отношения предок/потомок были реализованы в виде физических указателей из одной записи на другую, вследствие чего перемещение по базе данных происходило быстро. Поскольку структура данных в этой СУБД отличалась простотой, IMS могла размещать записи предков и потомков на диске рядом друг с другом, что позволяло свести к минимуму количество операций записи-чтения.
Если структура данных оказывалась сложнее, чем обычная иерархия, простота структуры иерархической базы данных становилась её недостатком. Например, в базе данных для хранения заказов один заказ мог участвовать в трёх различных отношениях предок/потомок, связывающих заказ с клиентом, разместившим его, со служащим, принявшим его, и с заказанным товаром, что иллюстрирует рисунок 2.2. Такие структуры данных не соответствовали строгой иерархии IMS.
Рисунок 2.2 — Множественные отношения предок/потомок В связи с этим для таких приложений, как обработка заказов, была разработана новая сетевая модель данных. Она являлась улучшенной иерархической моделью, в которой одна запись могла участвовать в нескольких отношениях предок/потомок, как показано на рисунке 2.3.
Рисунок 2.3 — Сетевая база данных В сетевой модели такие отношения назывались множествами. В 1971 году на конференции по языкам систем данных был опубликован официальный стандарт сетевых баз данных, который известен как модель CODASYL. Компания IBM не стала разрабатывать собственную сетевую СУБД и вместо этого продолжала наращивать возможность IMS. Но в последующих годах независимые производители программного обеспечения реализовали сетевую модель в таких продуктах, как IDMS компании Cullinet, Total компании Cincom и СУБД Adabas, которые приобрели большую популярность.
Сетевые базы данных обладали рядом преимуществ:
· Гибкость. Множественные отношения предок/потомок позволяли сетевой базе данных хранить данные, структура которых была сложнее простой иерархии.
· Стандартизация. Появление стандарта CODASYL популярность сетевой модели, а такие поставщики мини-компьютеров, как Digital Equipment Corporation и Data General, реализовали сетевые СУБД.
· Быстродействие. Вопреки своей большой сложности, сетевые базы данных достигали быстродействия, сравнимого с быстродействием иерархических баз данных. Множества были представлены указателями на физические записи данных, и в некоторых системах администратор мог задать кластеризацию данных на основе множества отношений.
Конечно, у сетевых баз данных были недостатки. Как и иерархические базы данных, сетевые базы данных были очень жесткими. Наборы отношений и структуру записей приходилось задавать наперёд. Изменение структуры базы данных обычно означало перестройку всей базы данных.
Как иерархическая, так и сетевая базы данных были инструментами программистов. Чтобы получить ответ на вопрос типа «Какой товар наиболее часто заказывает компания Acme Manufacturing?», программисту приходилось писать программу для навигации по базе данных. Реализация пользовательских запросов часто затягивалась на недели и месяцы, и к моменту появления программы информация, которую она предоставляла, часто оказывалась бесполезной.
2.1.2 Реляционная модель данных
Недостатки иерархической и сетевой моделей привели к появлению новой, реляционной модели данных, созданной Коддом в 1970 году и вызвавшей всеобщий интерес. Реляционная модель была попыткой упростить структуру базы данных. В ней отсутствовали явные указатели на предков и потомков, а все данные были представлены в виде простых таблиц, разбитых на строки и столбцы. На рисунке 2.4. показана реляционная версия сетевой базы данных.
Рисунок 2.4 — Реляционная база данных К сожалению, практическое определение понятия «реляционная база данных» оказалось гораздо более расплывчатым, чем точное математическое определение, данное этому термину Коддом в 1970 году. В первых реляционных СУБД не были реализованы некоторые из ключевых частей модели Кодда, и этот пробел был восполнен только впоследствии. По мере роста популярности реляционной концепции реляционными стали называться многие базы данных, которые на деле таковыми не являлись.
В ответ на неправильное использование термина «реляционный» Кодд в 1985 году написал статью, где сформулировал 12 правил, которым должна удовлетворять любая база данных, претендующая на звание реляционной. С тех пор двенадцать правил Кодда считаются определением реляционной СУБД. Однако можно сформулировать и более простое определение: реляционной называется база данных, в которой все данные, доступные пользователю, организованны в виде таблиц, а все операции над данными сводятся к операциям над этими таблицами.
Приведенное определение не оставляет места встроенным указателям, имеющимся в иерархических и сетевых СУБД. Несмотря на это, реляционная СУБД также способна реализовать отношения предок/потомок, однако эти отношения представлены исключительно значениями данных, содержащихся в таблицах.
2.2 Выбор СУБД
2.2.1 MS SQL Server 2008 Express
Microsoft SQL Server 2008 Express — это реляционная СУБД, работающая в клиент-серверной архитектуре.
Взаимодействие клиента и сервера может осуществляться по сети, в широком понимании этого слова. Для обмена между клиентом и сервером используется фирменная спецификация языка SQL — TransactSQL (соответствует ANSI SQL-92).
SQL Server работает на всех существующих платформах Windows. Клиентские компоненты поддерживают и их, а, кроме того, работают на UNIX и Apple. Для обеспечения безопасности данных SQL Server может использовать, как систему безопасности Windows (с которой он плотно интегрирован), так и с помощью собственных, встроенных средств. Система безопасности охватывает сетевой трафик, доступ к серверу и его объектам, безопасность сетевых клиентов, как на платформе Microsoft, так и других производителей. SQL Server может использовать любое количество из имеющихся у сервера процессоров. SQL Server работает как сервис (служба), поэтому его события фиксируются в журнале Windows (Application log, System log, Security log), возможно удаленное управление (запуск, остановка и т. д.).
Основным сервисом SQL Server является MS SQL Server. Именно ему адресуются все запросы, и именно он управляет объектами SQL Server. Разделение ресурсов SQL Server в многопользовательской среде и механизм блокировок, обработка транзакций, обеспечение целостности и согласованности данных — вот его основные функции. Обслуживание локальных и адресованных группе SQL серверов заданий, а также управление и информирование операторов SQL Server обеспечивает сервис SQL Server Agent[7].
Задачи организации обслуживания запросов к данным, размещенным на разных SQL-серверах, корректного исполнения распределенных транзакций и их отката, выполняет сервис MS DTC (Distributed Transaction Coordinator). Возможность полнотекстового и лингвистического поиска, обслуживание индексов по текстовым данным обеспечивает сервис Microsoft Search.
В SQL Server БД содержится всего в одном файле, а не в нескольких, как это было в локальных БД. Чтобы добавить в SQL Server уже существующие форматы необходимо воспользоваться программой импортирования данных, входящей в состав сервера.
2.2.2 Интерфейсы для доступа к данным LINQ и ADO.NET
Очень часто базы данных проектируются отдельно от приложения, к тому же вполне возможно, что разработчики базы данных и самого приложения не общаются на данном этапе работы. В книге Нильсена Пола, известного разработчика баз данных, специализирующего на архитектуре баз данных и технологиях MS SQL Server, приводятся следующие этапы проектировки базы данных:
· Исследование и сбор требований.
· Логическое представление реальности.
· Идентификация и проектирование видимых сущностей.
· Разработка схем.
Математический подход к моделированию реляционных баз данных включает в себя некоторые правила нормализации — правила, которые проверяют правильность модели базы данных. Таким образом, мы видим, структура приложения, может быть спроектирована, уже после того, как будет спроектирована, а зачастую и реализована, база данных. Это означает, что не всегда разработчик приложения точно знает структуру базы данных и СУБД, на которой она реализована.
Приложение должно взаимодействовать с базой данных, такое взаимодействие, как правило, происходит при помощи языка SQL. Однако, запросы к базе данных пишутся не на чистом SQL, а с использованием специальных интерфейсов для доступа к данным. Одними из таких интерфейсов являются LINQ и ADO.NET. Эти программные средства были разработаны компанией Microsoft и являются частью платформы .NET Framework, предназначенной для написания обычных программ и веб-приложений.
Если приложение будет написано на языках .NET (C#, Visual Basic, F# и др.), то удобнее всего будет использовать эти программные интерфейсы.
В книге Сахила Малика, крупного специалиста в области технологий .NET, приводится диаграмма показанная на рисунке 2.5, из которой видно, что большим плюсом ADO.NET является то, что разработчику приложения необязательно знать структуру и СУБД (система управления базами данных) базы данных. Здесь база данных представляет собой просто источник данных, который обычно содержит информацию в таблицах и работает с помощью языка наподобие SQL.
Рисунок 2.5 — Диаграмма ADO.NET
Из этой диаграммы, опубликованной в книге этого же автора, мы видим, как реализована технология доступа к данным ADO.NET рисунок 2.6:
Рисунок 2.6 — Принцип работы ADO .NET
ADO.NET предоставляет набор классов, в которых реализовано взаимодействие с поставщиками данных для разных СУБД. Классы ADO.NET делятся на автономные и подключенные. Подключенные классы требуют соединения с источником данных (Connection, Transaction, Command, Parameter). Автономные классы (DataSet, DataTable, DataRow, DataColumn) соединения с источником данных не требуют, они работают с данными, размещенными на носителях клиентской машины. Важным классом ADO.NET является DataAdapter, который предназначен для взаимодействия классов, требующих соединения и автономных. Большинство авторов научной литературы по ADO.NET относят этот класс к подключенным классам[8].
Другой программный интерфейс — LINQ, большей частью ориентирован на запросы — будь то запросы, возвращающие набор подходящих объектов, единственный объект или подмножество полей из объекта или множества объектов. В LINQ этот возвращенный набор объектов называется последовательностью (sequence).
LINQ (Language-Integrated Query) — это набор появившихся в Visual Studio 2008 функций, который значительно расширяет возможности синтаксиса языков C# и Visual Basic. LINQ предоставляет стандартные, простые в изучении шаблоны для запроса и изменения данных и технологии, которые могут быть расширены для поддержки практически любого типа источника данных. В состав Visual Studio входят сборки поставщиков LINQ для использования LINQ с коллекциями .NET Framework, базами данных SQL Server, наборами данных ADO.NET и XML-документами.
Семейство технологий LINQ позволяет писать запросы не только к реляционным источникам данных (LINQ to SQL), но и объектам (LINQ to Objects), XML-документам (LINQ to XML) и др.
Наиболее важным классом LINQ to SQL является класс DataContext, который предоставляет широкий доступ к базе данных. В своей книге «LINQ язык интегрированных запросов в C# 2008 для профессионалов» Джозеф Раттц, эксперт в области технологий .NET, пишет «Класс DataContext транслирует ваши запросы сущностных классов в операторы SQL, которые выполняются на подключенной базе данных. Производный от DataContext класс [Your]DataContext предоставляет доступ у целой группе методов базы данных, таких как ExecuteQuery, ExecuteCommand и SubmitChanges. В дополнение к этим унаследованным методам класс [Your]DataContext будет содержать свойства типа System.Data.Linq.Table для каждой таблицыи представления в базе данных, с которой вы намеренны использовать LINQ to SQL».
Таким образом, вся база данных представляет собой объект, пользовательского класса, унаследованного от класса DataContext. Где таблицы базы данных будут являться свойствами этого объекта. Такое отображение базы данных в объектную модель называется технологией программирования, которая связывает базы данных с концепциями объектно-ориентированных языков программирования. Такая технология базы данных, позволяет очень глубоко интегрировать базу данных в платформу, на которой пишется приложение. Что имеет свои плюсы: уменьшает время, затраченное на написание приложения, уменьшает количество ошибок в коде и т. д. Однако, работа с LINQ to SQL, возможена только в том случае, если мы заранее знаем СУБД, которым будет управляться база данных. Причем, на данный момент, поддерживается только СУБД Microsoft SQL Server (в том числе и бесплатные версии Microsoft SQL Server Express). Разработчик приложения не всегда обладает исчерпывающей информацией о базе данных, с которой будет работать разрабатываемое приложение. В таком случае, целесообразно использовать две технологии для доступа к данным: ADO.NET и LINQ (в частности LINQ to DataSet). Как уже говорилось выше, DataSet автономный класс ADO.NET, предназначенный для хранения данных в модели отсоединенного от базы данных программирования. LINQ to DataSet позволяет конструировать запросы для DataSet[9].
Главные достоинства ADO.NET:
· Позволяет работать с разными источниками данных. Разработчик приложения может и не знать, какое СУБД будет у базы данных, с которым будет работать его приложение, ему достаточно будет поменять поставщика данных.
· Наличие автономных объектов позволяют повысить производительность и снизить нагрузку на СУБД.
К недостаткам ADO.NET можно отнести ограниченные возможности для работы с запросами одного из наиболее широко используемого компонента — DataSet.
Главные достоинства LINQ:
· при определенных условиях позволяет произвести глубокую интеграцию базы данных и приложения;
· значительно ускоряет процесс написания запросов к базе данных, за счет, расширения синтаксиса языков C# и Visual Basic;
· предоставляет компоненты для удобной работы не только с базами данных, но и объектами, XML-документами и т. д.
К недостаткам LINQ можно отнести — многие функциональные возможности ограниченны только СУБД SQL Server.
Обе технологии отлично сочетаются, и таким образом практически закрывают недостатки друг друга.
Таким образом, когда приложение будет работать только с СУБД MS SQL Server и в дальнейшем не планируется мигрировать на другую СУБД, то целесообразно будет использовать LINQ to SQL, с полным применением технологии программирования, которая связывает базы данных с концепциями объектно-ориентированных языков программирования, создавая «виртуальную объектную базу данных». Существуют как коммерческие, так и свободные реализации этой технологии. Это при не больших временных затратах позволит использовать не реляционную, а объектную модель данных, которая привычнее для программистов. А так же, если приложение разрабатывается в среде Microsoft Visual Studio, то еще и воспользоваться в полной мере преимуществами написания кода с технологией IntelliSense, которая дописывает название функции при вводе начальных букв, используется для доступа к документации и для устранения неоднозначности в именах переменных, функций и методов, использую рефлексию. В совокупности это позволит значительно ускорить процесс написания приложения.
Если разработчику не известно заранее, какая СУБД будет использоваться или в дальнейшем возможна смена СУБД, то лучшим вариантом будет использование технологии ADO.NET для доступа к источнику данных, и хранение данных в DataSet. Манипуляции с данными производить с помощью технологии LINQ to DataSet.
2.2.3 Модель удаленного управления данными
Модель удаленного управления данными также называется моделью файлового сервера. В этой модели презентационная логика и бизнес логика располагаются на клиенте.
На сервере располагаются файлы с данными, и поддерживается доступ к файлам. Но функции управления информационными ресурсами в этой модели находятся в клиенте.
В этой модели БД хранятся на сервере, клиент обращается к серверу с файловыми командами, а механизм управления всеми информационными ресурсами, собственно база метаданных, находится на клиенте.
Достоинство этой модели в том, что уже имеется разделение монопольного приложения на два взаимодействующих процесса. При этом сервер может обслуживать множество клиентов, которые обращаются к нему с запросом. Собственно СУБД должна находится в этой модели на клиенте.
Запрос клиента формулируется в командах языка манипуляции данными. СУБД переводит этот запрос в последовательность файловых команд. Каждая последовательность файловых команд вызывает перемещение блока информации на клиента, далее на клиенте СУБД анализирует полученную информацию, и если в полученном блоке не содержит ответ на запрос, то принимается решение о перекачке следующего блока информации и т. д. Передача информации с сервера на программу клиента производится до тех пор, пока не будет получен ответ на запрос клиента.
Недостатки:
· высокий сетевой трафик, который связан с передачей по сети множества блоков и файлов, необходимых приложению;
· узкий спектр операций манипулирования с данными, который определяется только файловыми командами;
· отсутствие адекватных средств безопасности доступа к данным (защита только на уровне файловой системы).
2.2.4 Модель удаленного доступа к данным
В модели удаленного доступа БД хранится на сервере. На сервере же находится ядро СУБД. На клиенте располагается презентационная логика и бизнес-логика приложения. Клиент обращается к серверу с запросами на языке SQL. Структура модели удаленного доступа представлена на рисунке 2.7.
Рисунок 2.7 — Модель удаленного доступа Преимущества:
· перенос компонента представления и прикладного компонента на клиентский компьютер существенно разгрузил сервер БД, сводя к минимуму общее число процессов в ОС;
· сервер БД освобождается от несвойственных ему функций; процессор целиком загружен операциями обработки данных, запросов и транзакций;
· резко уменьшается загрузка сети, т.к. по ней от клиентов к серверу передаются не запросы на ввод-вывод в файловой терминологии, а запросы SQL, и их объем существенно меньше.
Основное достоинство модели удаленного доступа — унификация интерфейса «клиент-сервер», стандартом при общении приложения клиента и сервера становится язык SQL.
Недостатки:
· запросы SQL при интенсивной работе клиентских приложений могут существенно загрузить сеть;
· так в данной модели на клиенте располагается и презентационная логика, и бизнес-логика приложения, то при повторении аналогичных функций в разных приложениях код соответствующий бизнес — логики должен быть повторен для каждого клиентского приложения;
· сервер в этой модели играет пассивную роль, поэтому функции управления информационными ресурсами должны выполняться на клиенте.
2.2.5 Преимущества архитектуры клиент-сервер
Несомненным преимуществом данного подхода является приближенность данных к процессам вычисления. Практически, все расчеты выполняются на сервере, что увеличивает быстродействие в десятки и сотни раз. К достоинствам такой архитектуры также можно отнести:
· Для работы с данными используется реляционный подход, что снижает нагрузку на сеть. Также возможен и навигационный подход, что дает разработчику больше возможностей.
· Приложения напрямую не управляют базой, это делает сервер. В связи с этим обеспечивается высокая степень защиты данных.
· Приложения упрощаются из-за отсутствия кода, связанного с управлением БД.
Технология клиент-сервер в отличие от файл-серверной дает пользователю большую безопасность, устойчивость, согласованность, масштабируемость, повышенную конфиденциальность и надежность обработки и хранения информации. Развитие систем с архитектурой клиент-сервер в немалой степени обязано проверенному факту: подключение к недорогим серверам недорогих ПК позволяет получить оптимальное соотношение цены и производительности.
В большинстве случаев программа обработки (клиентская часть) расположена на одном компьютере, а сама база данных хранится на другом. Тут разделение выглядит совершенно естественным: программа-клиент (точнее, та ее часть, которая отвечает за интерфейс с пользователем), передает по сети запросы на обработку самих данных на другой компьютер, а там БД-сервер их прочитывает, выполняет требуемое, и по сети возвращает готовые ответы клиенту. При этом по сети передается только полезная информация.
В настоящее время постоянно идет работа по совершенствованию самого метода хранения и обработки информации. Если сменилась реализация (БД-сервер), то не потребуется писать заново все разработанные программы, а достаточно будет установить новый БД-сервер взамен старого и перевести базы данных в формат нового сервера. Естественно, все это можно проделать, если новый сервер придерживается тех же правил обмена между ним и пользовательской программой, что и старый.
Используя множество небольших компьютеров, разработчики систем клиент-сервер могут достичь вычислительной мощности больших ЭВМ, распределяя прикладную задачу по различным микрокомпьютерам и серверам. Каждый из них берет на себя свою часть вычислительной нагрузки, используя информацию совместно с другими процессорами сети. Таким образом, суммируя средства многих компьютеров можно повысить мощность системы, не наращивая производительность одного компьютера.
Быстродействие — основной фактор целесообразности разработки систем для архитектуры клиент-сервер. Применение средств быстрой разработки программ, таких, как Visual studio компании Microsoft позволяет разработчикам штамповать прикладные системы для архитектуры клиент-сервер в рекордно короткие сроки.
2.2.6 Компоненты архитектуры клиент-сервер
Существуют три основных программных компонента архитектуры клиент-сервер:
· ПО конечного пользователя.
· Промежуточное обеспечение.
· ПО сервера.
К ПО конечного пользователя относятся средства разработки программ и генераторы отчетов, в том числе электронные таблицы и текстовые процессоры. С помощью этого ПО пользователи устанавливают связь с серверами, отправляют на рассмотрение серверу запросы и получают ответную информацию.
При работе в архитектуре клиент-сервер приложение должно:
· выполнять соединение с сервером и отключение от него;
· формировать и отсылать запрос серверу, получая от него результаты выполнения запроса;
· выполнять обработку полученных данных.
Промежуточное обеспечение предоставляет общий интерфейс для ПО конечного пользователя и сервера, проникающий сквозь слои графического интерфейса пользователя, ОС, вычислительной сети и собственных драйверов базы данных с помощью общих вызовов. Для завершения операции сервер базы данных выполняет запрос и передает клиенту затребованные данные для обработки их программой клиента.
Под программным обеспечением сервера подразумевается операционная система и конкретный сервер БД, используемый для обработки запросов клиентской части информационной системы.
Серверы баз данных занимаются не только обслуживанием данных. В них предусмотрены также механизмы блокировок и элементы управления многопользовательским доступом, которые обеспечивают защиту данных от опасности параллельного доступа. Кроме этого, серверу баз данных приходится ограждать данные от несанкционированного доступа, оптимизировать запросы к базе данных, а также выполнять многие другие функции. Очень важной особенностью сервера является обоюдный контроль завершения транзакций — гарантия того, что ваши данные не будут повреждены даже при аппаратном сбое.
Для управления БД сервер использует:
· триггеры;
· хранимые процедуры;
· функции, определяемые пользователем;
· механизм транзакций;
· механизм кэшированных изменений;
· механизм событий.
С помощью хранимых процедур, триггеров и правил, разработчики могут составить программу непосредственно самого сервера баз данных и, таким образом, появляется еще одно место для размещения логики программы. Хранимые процедуры — это группа предложений на языке SQL и процедурная логика, которые разработчики могут разрабатывать и хранить на сервере баз данных в качестве объектов. Программы-клиенты способны выполнять хранимые процедуры, также как и другой вид хранимых процедур или триггеров, путем посылки сообщений серверу баз данных.
2.3 Выбор средств разработки
Одним из важных этапов разработки любой серьезной программы является оптимальный выбор средств и методов разработки. Самыми распространенными сейчас являются среды быстрой разработки программ — RAD, такие, как Delphi и C++ Builder, а так же Visual Studio .NET 2010 корпорации Microsoft. Действительно, в их составе есть множество компонент, которые сводят написание простых программ к нескольким щелчкам мышью. Интерфейс любой сложности может быть сделан за пару часов даже новичком. Уровень абстракции программиста от «реального» кода в таких системах очень высок. Нет необходимости создавать цикл обработки сообщений, реализовывать оконную процедуру, обрабатывать события окна. На создание объемного проекта, без использования RAD, может уйти очень много времени.
Microsoft .NET позволяет разработчикам в гораздо большей степени задействовать готовые технологии, чем предыдущие платформы разработки от Microsoft. В частности, .NET предоставляет реальные возможности повторного использования кода, управления ресурсами, многоязыковой разработки, защиты, развертывания и администрирования. При проектировании этой новой платформы Microsoft учла недостатки существующих Windows-платформ. Вот далеко не полный список преимуществ .NET:
· единая программная модель;
· упрощенная модель программирования;
· отсутствие проблем с версиями;
· упрощенная разработка;
· работа на нескольких платформах;
· интеграция языков программирования;
· упрощенное повторное использование кода;
· автоматическое управление памятью (сбор мусора);
· проверка безопасности типов;
· развитая поддержка отладки;
· единый принцип обработки сбоев;
· безопасность;
· взаимодействие с существующим кодом.
С учетом тенденции развития программных интерфейсов, целесообразно начинать разработку с использования популярной сейчас платформы .NET.
2.4 Выбор языка программирования
В среде разработки Visual Studio .NET доступны следующие языки программирования:
· Visual Basic .NET — наиболее простое из входящих в состав Visual Studio .NET средств для создания Windowsи Web-приложений. Новая версия языка пополнилась такими возможностями, как полная поддержка объектно-ориентированного программирования (включая наследование), визуальное наследование для форм, упрощенный доступ к функциям Windows, поддержка многопоточной обработки данных, создание сервисов Windows NT и консольных приложений.
· Visual C# .NET — реализация спецификации языка С#, разработанной в корпорации Microsoft и одобренной комиссией по стандартизации ЕСМА (European Computer Manufacturer’s Association — Европейская ассоциация производителей компьютеров). Современный, компонентно-ориентированный язык программирования С# разработан фирмой Microsoft специально для платформы .NET. C# вобрал в себя все лучшее из таких языков, как C, C++, Java и Delphi. Как и Visual Basic .NET, язык С# может использоваться для создания Web-сервисов и приложений на платформе .NET.
· Visual C++ .NET — это язык программирования, необходимый разработчикам, которым требуются средства управления приложениями низкого уровня. Версия Visual C++ для платформы .NET имеет множество нововведений, позволяющих разработчикам создавать и использовать Web-приложения и Web-сервисы. От других языков программирования для платформы .NET язык Visual C++ .NET отличается тем, что поддерживает как кодовую модель платформы .NET (managed code model), так и кодовую модель Windows (unmanaged native code model). В состав Visual C++ .NET входит мощное расширение библиотеки Active Template Library (ATL), называемое ATL Server. Это расширение позволяет разработчикам создавать компактные, высокопроизводительные Web-приложения и сервисы.
· Visual J# .NET — язык, позволяющий Java-разработчикам создавать Web-сервисы и приложения для платформы Microsoft .NET, используя имеющиеся навыки программирования. Visual J# .NET предоставляет пользователям Microsoft Visual J++ и другим Java-программистам возможность применить полученные навыки и сохранить существующие инвестиции в созданный ранее код.
Язык программирования C#, являясь последним из широко распространенных языков программирования, впитал в себя весь имеющийся опыт и вобрал лучшие стороны существующих языков программирования, при этом являясь специально созданным для работы в .NET. Сама архитектура .NET продиктовала ему (как и многим другим языкам, на которых можно писать под .NET) объектно-ориентированную направленность.
Свой синтаксис C# во многом унаследовал от C++ и Java. Разработчики, имеющие опыт написания приложений на этих языках, найдут в C# много знакомых черт. Но вместе с тем он является во многом новаторским — атрибуты, делегаты и события, прекрасно вписанные в общую идеологию языка. Их введение позволило применять принципиально новые приемы программирования.
Сходство с C++:
· «перегруженные» операторы;
· арифметические операции с плавающей точкой относятся к небезопасному коду;
· некоторые особенности синтаксиса.
Сходство с Java:
· объектно-ориентированный (единственное наследование);
· интерфейсы;
· исключения;
· нити (threads);
· пространства имен;
· сильная (строгая) типизация;
· сборка мусора;
· отражение (reflection);
· динамическая загрузка кода.
Несмотря на то, что целый ряд конструктивных синтаксических механизмов и особенностей реализации унаследован языком программирования C# от прародителей (C++, Visual Basic и Java), возможности этого нового языка программирования не ограничиваются суммой возможностей его исторических предшественников. К числу принципиально важных решений, которые реализованы корпорацией Microsoft в языке программирования C#, можно отнести следующие:
· компонентно-ориентированный подход к программированию (который характерен и для идеологии Microsoft .NET в целом);
· свойства как средство инкапсуляции данных (характерно также в целом для ООП);
· обработка событий (имеются расширения, в том числе в части обработки исключений, в частности, оператор try);
· унифицированная система типизации (соответствует идеологии Microsoft .NET в целом);
· делегаты (delegate — развитие указателя на функцию в языках C и C++);
· атрибуты (средство оперирования метаданными в COM-модели);
· прямоугольные массивы (набор элементов с доступом по номеру индекса и одинаковым количеством столбцов и строк).
Проанализировав основные особенности языка программирования C#, а также исследовав структуру и принципы построения программ на этом языке, сформулируем наиболее заметные преимущества изучаемого языка программирования. Прежде всего, необходимо отметить то обстоятельство, что язык программирования C# претендует на подлинную объектную ориентированность. Кроме того, язык программирования C# призван практически реализовать компонентно-ориентированный подход к программированию, который способствует меньшей машинно-архитектурной зависимости результирующего программного кода, большей гибкости, переносимости и легкости повторного использования (фрагментов) программ.
Принципиально важным отличием от предшественников является изначальная ориентация на безопасность кода (что особенно заметно в сравнении с языками C и C++). Унифицированная, максимально близкая по масштабу и гибкости к Common Type System, принятой в Microsoft .NET, система типизации является важным преимуществом языка C#.