VIP STUDY сегодня – это учебный центр, репетиторы которого проводят консультации по написанию самостоятельных работ, таких как:
  • Дипломы
  • Курсовые
  • Рефераты
  • Отчеты по практике
  • Диссертации
Узнать цену

Разработка и защита базы данных модельного агентства

Внимание: Акция! Курсовая работа, Реферат или Отчет по практике за 10 рублей!
Только в текущем месяце у Вас есть шанс получить курсовую работу, реферат или отчет по практике за 10 рублей по вашим требованиям и методичке!
Все, что необходимо - это закрепить заявку (внести аванс) за консультацию по написанию предстоящей дипломной работе, ВКР или магистерской диссертации.
Нет ничего страшного, если дипломная работа, магистерская диссертация или диплом ВКР будет защищаться не в этом году.
Вы можете оформить заявку в рамках акции уже сегодня и как только получите задание на дипломную работу, сообщить нам об этом. Оплаченная сумма будет заморожена на необходимый вам период.
В бланке заказа в поле "Дополнительная информация" следует указать "Курсовая, реферат или отчет за 10 рублей"
Не упустите шанс сэкономить несколько тысяч рублей!
Подробности у специалистов нашей компании.
Код работы: K011022
Тема: Разработка и защита базы данных модельного агентства
Содержание
24



Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение высшего образования

«Российский экономический университет им. Г.В. Плеханова»

Брянский филиал









Курсовая работа



ПМ __ «____________________________________________________________________» 

заполняется в случае выполнения курсового проекта (курсовой работы по ПМ)

МДК ______ / ОП ____ «______________________________________________________» 

Специальность ________ «____________________________________________________» 





Тема: Разработка и защита базы данных модельного агентства



шифр работы



Пояснительная записка

Листов: ______















                                                    Руководитель 

_________________ / И.О. Фамилия / 

«______» ___________ 2017 г. 

                                               Исполнитель 

_________________ / И.О. Фамилия / 

«______» ___________ 2017 г. 









2017





Содержание

Стр.

	Введение	3

	Глава 1. Анализ предметной области	4

	1.1 Анализ деятельности модельного агентства	4

	1.2 Разработка информационной модели данных	6

	1.3 Средства реализации	13

	Глава 2. Практическая часть	15

	2.1 Проектирование базы данных	15

	2.2 Разработка клиентского приложения	16

	2.3 Защита данных	20

	Заключение	21

	Список используемой литературы	22

	Приложение 1	24

	Приложение 2	29








Введение



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

Проблемой исследования данной курсовой работы является разработка и защита баз данных.

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

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

провести анализ предметной области;

определить структуру базы данных;

провести нормализацию базы данных;

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

описать порядок защиты базы данных.

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

Теоретической основой для написания работы послужили труды российских и зарубежных ученых.




Глава 1. Анализ предметной области

1.1 Анализ деятельности модельного агентства



Для проведения анализа предметной области удобнее всего построить диаграмму бизнес-процессов. Для построения контекстной диаграммы было использовано средство функционального моделирования, реализующее методологию IDEF0 – BPwin. Методология IDEF0 была разработана на основе методологии SADT, автором которой стал Дуглас Росс. Эта методология является совокупностью методов, правил и процедур для построения функциональной модели объекта [4, с. 19].

Чтобы построить модель необходимо определить процесс, который будет моделироваться, входные данные, выходы, управление и механизмы процесса. На рисунке 1 показана схема того, как должны располагаться эти элементы согласно методологии IDEF0.



Рисунок 1 – Процесс в методологии IDEF0



Рассмотрим контекстную диаграмму процесса «работа модельного агентства» (рисунок 2). На диаграмме видно, что входными данными процесса являются:

данные модели;

данные показа.

Выходными данными процесса являются:

портфолио;

график показов;

расписание модели.



Рисунок 2 – Контекстная диаграмма



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



Рисунок 3 – Декомпозиция контекстной диаграммы



В процессе декомпозиции получилось 4 подпроцесса:

Обработка данных моделей – в этом процессе происходит прием и анализ данных, которые предоставляет в агентство модель.

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

Подбор модели – в этом процессе по условиям, определенным в заказе, подбирается подходящая модель.

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



1.2 Разработка информационной модели данных



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

Главными блоками диаграммы в этой методологии являются:

процесс;

накопитель данных;

поток данных.

На рисунке 4 показана диаграмма потоков данных процесса «прием заказов на подбор моделей».



Рисунок 4 – Диаграмма потоков данных процесса «прием заказов на подбор моделей»



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

Далее рассмотрим диаграмму потоков данных процесса «обработка данных моделей» (рисунок 5).



Рисунок 5 – Диаграмма потоков данных процесса «обработка данных моделей»



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

Далее будет рассмотрена диаграмма потоков данных процесса «подбор модели» (рисунок 6)



Рисунок 6 – Диаграмма потоков данных процесса «подбор модели»

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

На рисунке 7 будет рассмотрена диаграмма потоков данных процесса «составление расписания».



Рисунок 6 – Диаграмма потоков данных процесса «составление расписания»



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

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

модели;

показы;

специализации;

расписание.

Для разработки информационной модели данных информационной системы, разрабатываемой в рамках курсовой работы, было использовано средство концептуального моделирования ERwin. ERwin реализует проектирование схемы БД, генерацию ее описания на языке целевой СУБД и реинжиниринг существующей БД [4 c. 111].

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

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

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

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

один-к-одному – такой тип связи означает, что один экземпляр первой сущности связан только с одним экземпляром второй сущности;

один-ко-многим – такой тип связи готовит о том, что экземпляр первой сущности связан со многими экземплярами второй сущности;

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

Связь между сущностью модели и специализации показана на рисунке 7. Каждая модель может именно несколько специализаций, так и к одной специализации могут принадлежать много моделей, следовательно, связь между этими сущностями многие-ко-многим.



Рисунок 7 – Связь между сущностями модели и специализации



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



Рисунок 8 – Разделение связи многие-ко-многим



Далее будет определена связь между сущностями модели, показы и расписание. На рисунке 9 показана эта связь.



Рисунок 9 – Связь между сущностями модели, расписание и показы 



Сущности показы и специализации также имеют связь, которая показана на рисунке 10. 



Рисунок 10 – Связь между сущностями показы и специализации



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

На рисунке 11 показана связь сущности пол и сущности модели.



Рисунок 11 – Связь между сущностями модели и пол



На рисунке 12 показана связь сущности пол и сущности показы.



Рисунок 12 – Связь между сущностями показы и пол



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



Рисунок 13 – ER-диаграмма



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

Для удобства отображения информации все выявленные атрибуты сущностей будут записаны в таблицу 1. В приведенной таблице значение в столбце «тип атрибута» имеет следующий смысл:

ПК – атрибут является первичным ключом сущности;

ВК – атрибут является внешним ключом (ссылкой на ПК родительской сущности);

НК – не ключевой атрибут.

Также будет определено, может ли каждый из атрибутов принимать значение NULL. 





Таблица 1 – Атрибуты сущностей

Сущность

Название атрибута

Тип атрибута

Тип данных

Null

Модели

Код модели

ПК

Числовой

Запрещено



Фамилия

НК

Текстовый

Запрещено



Имя

НК

Текстовый

Запрещено



Отчество

НК

Текстовый

Разрешено



Дата рождения

НК

Дата

Запрещено



Номер паспорта

НК

Текстовый

Запрещено



Дата выдачи паспорта

НК

Дата

Запрещено



Код пола

ВК

Числовой

Запрещено

Специализация модели

Код специализации

ПК/ВК

Числовой

Запрещено



Код модели

ПК/ВК

Числовой

Запрещено

Специализация

Код специализации

ПК

Числовой

Запрещено



Наименование

НК

Текстовый

Запрещено

Расписание

Код показа

ПК/ВК

Числовой

Запрещено



Код модели

ПК/ВК

Числовой

Запрещено



Примечание

НК

Текстовый

Разрешено

Пол

Код пола

ПК

Числовой

Запрещено



Наименование

НК

Текстовый

Запрещено

Показы

Код показа

ПК

Числовой

Запрещено



Код специализации

ВК

Числовой

Запрещено



Дата показа

НК

Дата

Запрещено



Время показа

НК

Время

Запрещено



Место проведения

НК

Текстовый

Запрещено



Описание

НК

Текстовый

Разрешено



Код пола

ВК

Числовой

Запрещено



Количество моделей

НК

Числовой

Запрещено







1.3 Средства реализации 



В качестве СУБД автором курсовой работы была выбрана MS SQL Server 2012. MS SQL Server 2012 это эффективная система, позволяющая хранить и обрабатывать большие массивы данных. Эта СУБД позволяет формировать запросы и осуществлять поиск необходимых данных, синхронизировать информацию, а также выполнять аналитическую обработку данных и получать разнообразные отчеты. 

Среди основных преимуществ MS SQL Server 2012 можно выделить следующие:

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

благодаря сжатию исходящего потока минимизируется нагрузка на сеть и обеспечивается оптимальная производительность;

управление производится на основе политик, что дает возможность удобно управлять не только одним, но и несколькими экземплярами СУБД;

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

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

Данная среда программирования обладает рядом важных особенностей:

возможность автоматической генерации кода для элементов интерфейса;

возможности визуального проектирования интерфейса;

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

возможность проверки кода на лету.

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

В Delphi собрано много инструментов для работы с базами данных. Для работы с базой данных в рамках курсовой работы будет использована технология ADO. 

Технология ADO представляет иерархическую модель объектов для доступа к различным OLE DB-провайдерам данных. Объектная модель ADO включает объекты, обеспечивающие соединение с провайдером данных, создание SQL-запросов к данным и т.д.

Основными объектами в этой модели являются:

набор данных;

соединение для связи с провайдером данных;

команда, выполняющая процедуры.

В Delphi 2010 компоненты для доступа к данным с использованием технологии ADO располагаются в группе DBGo. Тут находятся 7 компонентов:

TADOConnection - используется для указания базы данных и работы транзакциями.

TADOTable используется для доступа к хранилищам данных.

TADOQuery позволяет выполнять SQL-запросы.

TADOStoredProc позволяет обращаться к хранимым процедурам.

TADODataSet предназначен для представления набора данных из хранилища ADO.

TADOCommand - позволяет выполнять команды на языке провайдера данных.






Глава 2. Практическая часть

2.1 Проектирование базы данных



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





Рисунок 14 – Логическая модель базы данных



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

Каждая сущность становится таблицей. 

Каждый атрибут сущности становится столбцом таблицы. 

Ключевой атрибут становится ключом таблицы.

Связи между сущностями становятся связями между таблицами.

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





Рисунок 15 – Физическая модель базы данных



Для генерации скрипта заполнения базы данных следует выполнить команду главного меню ERWin Tools/Forward Engineer/Schema generation. После чего на экране появляется окно, в котором требуется выполнить настройки механизма генерации скрипта заполнения базы данных. Настройка заключается в выборе объектов, которые требуется создавать при выполнении скрипта [4].

После настройки механизма генерации схемы базы данных требуется нажать кнопку «Preview» диалога и в появившемся окне сохранить полученный скрипт в файл с расширением .Sql . Текст скрипта для генерации базы данных приведен в приложении 1.



2.2 Разработка клиентского приложения



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



Рисунок 15 – Главное окно приложения



Для редактирования анкет моделей было разработана форма, показанная на рисунке 16.



Рисунок 16 – Форма анкеты модели



Форма редактирования анкеты показа представлена на рисунке 17.



Рисунок 17 – Форма анкеты показа

Для редактирования справочника специализаций используется форма, показанная на рисунке 18.



Рисунок 18 – Форма справочника специализаций



Для просмотра показов разработана форма, представленная на рисунке 19.



Рисунок 19 – Расписание показов



Для просмотра расписания модели создана форма, показанная на рисунке 20.



Рисунок20 – Расписание модели



Для записи модели на показ разработана форма, показанная на рисунке 21.



Рисунок21 – Форма для записи на показ



Для указания специализации модели создана форма, представленная на рисунке 22.

 

Рисунок22 – Форма для указания специализации





2.3 Защита данных



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

CREATE LOGIN usr 

    WITH PASSWORD = '123';  

GO  

CREATE USER usr FOR LOGIN usr;  

GO  

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

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




Заключение



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

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

В качестве СУБД был выбран SQL Server 2012, а для разработки клиентского приложения использовалась Delphi 2010.

В ходе проектирования базы данных в Erwin Data Modeler была построена физическая модель данных и сгенерирован скрипт для создания всех таблиц и связи между ними.

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




Список используемой литературы



	Алешин Л.И., Максимов Н.В. Информационные технологии: учебное пособие. М.: МФПА, 2004.  512 с.

	Архангельский А.Я. Программирование в Delphi : 3-е изд., переработ. и дополн. М.: БИНОМ, 2011. 1072 с.

Бабич А.В. UML: Первое знакомство. М.: Бином, 2010.  176с

	Вендров А.М. CASE-технологии. Современные методы и средства проектирования информационных систем: учебник. М.: Финансы и статистика, 2012.  478 с.

Гамма Э. и др. Приемы объектно-ориентированного проектирования. Паттерны проектирования. СПб.: Питер, 2010.  366 с.

Карвальо Л. Windows Server 2012 Hyper-V. Книга рецептов / Л. Карвальо. М.: ДМК Пресс,2015.  302 с.

Маклаков С.В. BPwin ERwin CASE-средства разработки ИС.  М.: Диалог-МИФИ, 2015.  304 стр.

	Марков Е., Дарахвелидзе П. Delphi 2005 для Win32 . СПб.: БХВ-Петербург, 2005. 1136 с.

Мезенцев К.Н. Автоматизированные информационные системы. М.: Академия, 2011. 176 с.

Осипов Д. Базы данных и Delphi. Теория и практика. СПб.: БХВ-Петербург, 2011. 752 с. 

Петкович Д. Microsoft SQL Server 2012. Руководство для начинающих. СПб.: БХВ-Петербург, 2013. 816 с.

Сорокин А.В. Delphi. Разработка баз данных. СПб.: Питер, 2010. 477 с.

Станек У. Microsoft SQL Server 2012. Справочник администратора. СПб.: БХВ-Петербург, 2013. 576 с.

Станек У. Microsoft Windows Server 2012 R2. Хранение, безопасность, сетевые компоненты. Справочник администратора. СПб.: БХВ-Петербург, 2015. 416 с.

Сухарев М. Delphi. Полное руководство. Включая версию 2010. М.: Наука и техника, 2010. 1040 с.

Трофимов С. А. CASE-технологии. Практическая работа в Rational Rose. М.: Бином-Пресс, 2015.  272 с.

Фаронов В. В. Delphi. Программирование на языке высокого уровня: Учебник для вузов. СПб.: Питер, 2012.  640 с.

Фленов М. Библия Delphi 3-е издание. СПб.: БХВ-Петербург, 2011.  674 с.

Фуфаев Э.В. Базы данных – 7-е изд. М.: Академия, 2012. 320 с.

Харрингтон Д. Проектирование объектно-ориентированных баз данных. М.: ДМК Пресс, 2012. 272 с.




Приложение 1

Скрипт для создания базы данных



CREATE TABLE model_to_view

(

	ID_view  integer  NOT NULL ,

	ID_models  integer  NOT NULL ,

	prim  varchar(200)

)

go



ALTER TABLE model_to_view

	ADD CONSTRAINT  XPKmtv PRIMARY KEY   NONCLUSTERED (ID_view  ASC,ID_models  ASC)

go



CREATE TABLE models

(

	ID_models  integer IDENTITY(1,1) NOT NULL ,

	Fam  varchar(20)  NOT NULL ,

	Im  varchar(20)  NOT NULL ,

	Ot  varchar(20) ,

	dr  datetime  NOT NULL ,

	num_doc  char(18)  NOT NULL ,

	dt_doc  datetime  NOT NULL ,

	ID_sex  integer  

)

go



ALTER TABLE models

	ADD CONSTRAINT  XPKmodel PRIMARY KEY   NONCLUSTERED (ID_models  ASC)

go



CREATE TABLE sex

(

	ID_sex  integer  NOT NULL ,

	name_sex  varchar(1) 

)

go



ALTER TABLE sex

	ADD CONSTRAINT  XPKsex PRIMARY KEY   NONCLUSTERED (ID_sex  ASC)



go



CREATE TABLE spec

(

	ID_spec  integer IDENTITY(1,1) NOT NULL ,

	name_spec  varchar(50)  NOT NULL 

)

go



ALTER TABLE spec

	ADD CONSTRAINT  XPKspec PRIMARY KEY   NONCLUSTERED (ID_spec  ASC)

go



CREATE TABLE spec_to_model

(

	ID_spec  integer  NOT NULL ,

	ID_models  integer  NOT NULL 

)

go



ALTER TABLE spec_to_model

	ADD CONSTRAINT  XPKstm PRIMARY KEY   NONCLUSTERED (ID_spec  ASC,ID_models  ASC)

go



CREATE TABLE views

(

	ID_view  integer IDENTITY(1,1) NOT NULL ,

	ID_spec  integer  NOT NULL ,

	dt  datetime  NOT NULL ,

	time_view  datetime  NOT NULL ,

	pl  varchar(200)  NOT NULL ,

	descript  varchar(200) ,

	ID_sex  integer 

)

go



ALTER TABLE views

	ADD CONSTRAINT  XPKПоказы PRIMARY KEY   NONCLUSTERED (ID_view  ASC)

go



ALTER TABLE model_to_view

	ADD CONSTRAINT  R_7 FOREIGN KEY (ID_view) REFERENCES views(ID_view)

		ON DELETE NO ACTION

		ON UPDATE NO ACTION

go



ALTER TABLE model_to_view

	ADD CONSTRAINT  R_8 FOREIGN KEY (ID_models) REFERENCES models(ID_models)

		ON DELETE NO ACTION

		ON UPDATE NO ACTION

go



ALTER TABLE models

	ADD CONSTRAINT  R_6 FOREIGN KEY (ID_sex) REFERENCES sex(ID_sex)

		ON DELETE NO ACTION

		ON UPDATE NO ACTION

go



ALTER TABLE spec_to_model

	ADD CONSTRAINT  R_1 FOREIGN KEY (ID_spec) REFERENCES spec(ID_spec)

		ON DELETE NO ACTION

		ON UPDATE NO ACTION

go



ALTER TABLE spec_to_model

	ADD CONSTRAINT  R_2 FOREIGN KEY (ID_models) REFERENCES models(ID_models)

		ON DELETE NO ACTION

		ON UPDATE NO ACTION

go



ALTER TABLE views

	ADD CONSTRAINT  R_3 FOREIGN KEY (ID_spec) REFERENCES spec(ID_spec)

		ON DELETE NO ACTION

		ON UPDATE NO ACTION

go



ALTER TABLE views

	ADD CONSTRAINT  R_5 FOREIGN KEY (ID_sex) REFERENCES sex(ID_sex)

		ON DELETE NO ACTION

		ON UPDATE NO ACTION

go



USE [modelagent]

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

ALTER TRIGGER [dbo].[mtvins]

   ON  [dbo].[model_to_view]

   INSTEAD OF INSERT

AS 

BEGIN



	SET NOCOUNT ON;



	if exists(select * from inserted i, model_to_view m where i.ID_models=m.ID_models and i.ID_view=m.ID_view)

		begin

			ROLLBACK TRAN

			PRINT 'Модель уже записана на этот показ';		

			Return;	

		end else

		begin

			declare @col int;

			declare @colview int;

			declare @id int;

			select @id=ID_view from inserted;

			select @colview=col from dbo.views where ID_view=@id; 

			select @col=count(*) from model_to_view where ID_view=@id;

			if @col=@colview 

			begin

				ROLLBACK TRAN

				PRINT 'На этот показ набрано достаточно моделей ';		

				Return;	

			end else 

			begin

				declare @idmodel int;

				declare @spec int;

				select @idmodel=ID_models from inserted;

				select @spec=ID_spec from spec_to_model where ID_models=@idmodel;

				if not exists(select * from dbo.views where ID_view=@id and ID_spec=@spec) 

				begin

					ROLLBACK TRAN

					PRINT 'Специализации этой модели не соответствуют типу показа!';		

					Return;	

				end	else insert into model_to_view select * from inserted; 

			end; 

		end;



END






Приложение 2

Исходный текст программы

unit Main;



interface



uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, Menus, ToolWin, ComCtrls, Grids, DBGrids, ImgList;



type

  TForm1 = class(TForm)

    MainMenu1: TMainMenu;

    N1: TMenuItem;

    N2: TMenuItem;

    N3: TMenuItem;

    N4: TMenuItem;

    N7: TMenuItem;

    N8: TMenuItem;

    N9: TMenuItem;

    N10: TMenuItem;

    N11: TMenuItem;

    N12: TMenuItem;

    DBGrid1: TDBGrid;

    ToolBar1: TToolBar;

    ToolButton1: TToolButton;

    ToolButton2: TToolButton;

    ToolButton3: TToolButton;

    ToolButton4: TToolButton;

    ToolButton5: TToolButton;

    ImageList1: TImageList;

    PopupMenu1: TPopupMenu;

    N5: TMenuItem;

    procedure N7Click(Sender: TObject);

    procedure N2Click(Sender: TObject);

    procedure N3Click(Sender: TObject);

    procedure DBGrid1DblClick(Sender: TObject);

    procedure N5Click(Sender: TObject);

    procedure N9Click(Sender: TObject);

    procedure N10Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;



var

  Form1: TForm1;



implementation



uses DataModul, spec, anketamodel, anketaview, views, ModelToView;



{$R *.dfm}



procedure TForm1.DBGrid1DblClick(Sender: TObject);

begin

  DM.TabModels.Edit;

  Form3.ShowModal;

end;



procedure TForm1.N10Click(Sender: TObject);

begin

Form6.ShowModal;

end;



procedure TForm1.N2Click(Sender: TObject);

begin

  DM.TabModels.Insert;

  Form3.ShowModal;

end;



procedure TForm1.N3Click(Sender: TObject);

begin

  DM.TabViews.Insert;

  Form4.ShowModal;

end;



procedure TForm1.N5Click(Sender: TObject);

var bClick: Integer;

begin

  bClick := MessageDlg('¬ы действительно хотите удалить эту запись?',mtCustom,

            [mbOk, mbCancel], 0);

  If bClick = mrCancel then Exit;

  If DM.TabModels.RecordCount = 0 then Exit;

  DM.TabModels.Delete;

end;



procedure TForm1.N7Click(Sender: TObject);

begin

  DM.TabSpec.Insert;

  Form2.ShowModal;

end;



procedure TForm1.N9Click(Sender: TObject);

begin

Form5.ShowModal;

end;



end.

unit DataModul;



interface



uses

  SysUtils, Classes, DB, ADODB;



type

  TDM = class(TDataModule)

    Conn: TADOConnection;

    TabMTV: TADOTable;

    TabModels: TADOTable;

    TabSex: TADOTable;

    TabSpec: TADOTable;

    TabSTM: TADOTable;

    TabViews: TADOTable;

    DSMTV: TDataSource;

    DSModel: TDataSource;

    DSViews: TDataSource;

    DSSTM: TDataSource;

    DSSpec: TDataSource;

    TabSpecID_spec: TAutoIncField;

    TabSpecname_spec: TStringField;

    TabModelsID_models: TAutoIncField;

    TabModelsFam: TStringField;

    TabModelsIm: TStringField;

    TabModelsOt: TStringField;

    TabModelsdr: TDateTimeField;

    TabModelsnum_doc: TStringField;

    TabModelsdt_doc: TDateTimeField;

    TabModelsID_sex: TIntegerField;

    TabModelsSex: TStringField;

    DSSex: TDataSource;

    TabViewsID_view: TAutoIncField;

    TabViewsID_spec: TIntegerField;

    TabViewsdt: TDateTimeField;

    TabViewspl: TStringField;

    TabViewsdescript: TStringField;

    TabViewsID_sex: TIntegerField;

    TabViewscol: TIntegerField;

    TabViewsspec: TStringField;

    TabViewssex: TStringField;

    TabViewstime_view: TWideStringField;

    TabMTVID_view: TIntegerField;

    TabMTVID_models: TIntegerField;

    TabMTVprim: TStringField;

    TabMTVaddress: TStringField;

    TabMTVdt: TDateField;

    TabMTVtm: TStringField;

    QSQL: TADOQuery;

    procedure DataModuleCreate(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;



var

  DM: TDM;

  user,pwd,host: string;

implementation



{$R *.dfm}



procedure TDM.DataModuleCreate(Sender: TObject);

begin

  Conn.Connected := false;

  Conn.ConnectionString := 'Provider=SQLOLEDB.1;Password='+pwd+';Persist Security Info=True;User ID='+user+';Initial Catalog=modelagent;Data Source='+host;

  Conn.Connected := true;

  TabMTV.Active := true;

  TabModels.Active := true;

  TabSex.Active := true;

  TabSpec.Active := true;

  TabSTM.Active := true;

  TabViews.Active := true;

end;



end.

unit autoriz;



interface



uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls;



type

  TForm9 = class(TForm)

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Edit1: TEdit;

    Edit2: TEdit;

    Edit3: TEdit;

    Button1: TButton;

    Button2: TButton;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

    class function Execute : boolean;

  end;



var

  Form9: TForm9;



implementation



uses DataModul;



{$R *.dfm}

procedure TForm9.Button2Click(Sender: TObject);

begin

  ModalResult := mrAbort;

end;



class function TForm9.Execute: boolean;

begin

  with TForm9.Create(nil) do

  try

    Result := ShowModal = mrOk;

  finally

    Free;

  end;

end;

procedure TForm9.Button1Click(Sender: TObject);

begin

user:=Edit2.Text;

pwd:=Edit3.Text;

host:=Edit1.Text;

ModalResult := mrOK;

end;



end........................
Для получения полной версии работы нажмите на кнопку "Узнать цену"
Узнать цену Каталог работ

Похожие работы:

Отзывы

Незаменимая организация для занятых людей. Спасибо за помощь. Желаю процветания и всего хорошего Вам. Антон К.

Далее
Узнать цену Вашем городе
Выбор города
Принимаем к оплате
Информация
Онлайн-оплата услуг

Наша Компания принимает платежи через Сбербанк Онлайн и терминалы моментальной оплаты (Элекснет, ОСМП и любые другие). Пункт меню терминалов «Электронная коммерция» подпункты: Яндекс-Деньги, Киви, WebMoney. Это самый оперативный способ совершения платежей. Срок зачисления платежей от 5 до 15 минут.

Сезон скидок -20%!

Мы рады сообщить, что до конца текущего месяца действует скидка 20% по промокоду Скидка20%