База данных. 9
Оглавление
Введение
1 Общие сведения
2 Разработка базы данных
и интегрирование информационного приложения
“Страховая компания”
2.1 Постановка задачи
2.1.1 Анализ предметной области
2.1.2 Анализ информационных
задач и круга
2.1.3 Выработка требований
и ограничений
2.2 Разработка базы данных в Microsoft SQL Server 2008 16
2.3 Создание проекта в среде разработки “Microsoft Visual Studio 2008” 24
Заключение
Список использованных источников
Введение
В условиях увеличения информации, собираемой страховыми компаниями, и необходимости быстрой ее обработки повышается роль и значение баз данных. Эффективность работы компании во многом зависит от грамотного проектирования БД. В этой связи вопросы, связанные с изучением СУБД и разработкой баз данных, приобретают огромное значение.
Актуальность данных вопросов определили выбор темы курсовой работы.
Целью работы является разработка базы данных для информационной системы «Страховая компания». В качестве инструмента для разработки была выбрана система управления базами данных MS SQL Server 2008, которая является одним из лидеров в области СУБД и предоставляет все средства для надежного, безопасного и простого ведения баз данных.
1 Общие сведения
Язык SQL (Structured Query Language - структурированный
язык запросов) представляет собой
стандартный высокоуровневый
Язык SQL был разработан
фирмой IBM в конце 70-х годов. Первый
международный стандарт языка был
принят международной
Единственной структурой представления данных (как прикладных, так и системных) в реляционной базе данных (БД) является двумерная таблица. Любая таблица может рассматриваться как одна из форм представления теоретико-множественного понятия отношение (relation), отсюда название модели данных - "реляционная".
В реляционной модели данных таблица обладает следующими основными свойствами:
- идентифицируется уникальным именем;
- имеет конечное (как правило, постоянное) ненулевое количество столбцов;
- имеет конечное (возможно, нулевое) число строк;
- столбцы таблицы идентифицируются своими уникальными именами и номерами;
- содержимое всех ячеек столбца принадлежит одному типу данных (т.е. столбцы однородны), содержимым ячейки столбца не может быть таблица;
- строки таблицы не имеют какой-либо упорядоченности и идентифицируются только своим содержимым (т.е. понятие "номер строки" не определено);
- в общем случае ячейки таблицы могут оставаться "пустыми" (т.е. не содержать какого-либо значения), такое их состояние обозначается как NULL.
Примечание. Необходимо иметь в виду, что видимая пользователям СУБД логическая организация данных (в нашем случае с помощью реляционной модели) может очень слабо коррелироваться с их физической организацией в памяти ЭВМ.
На содержимое таблиц
допустимо накладывать
- требования уникальности содержимого каждой ячейки какого-либо столбца и/или совокупности ячеек в строке, относящихся к нескольким столбцам;
- запрета для какого-либо столбца (столбцов) иметь "пустые" (NULL) ячейки.
Ограничение в виде требования уникальности тесно связано с понятием ключа таблицы. Ключом таблицы называется столбец или комбинация столбцов, содержимое ячеек которого(ых) используется для прямого доступа ("быстрого" определения местоположения) к строкам таблицы. Различают ключи первичный (он может быть только единственным для каждой таблицы) и вторичные. Первичный ключ уникален и однозначно идентифицирует строку таблицы. Столбец строки, определенный в качестве первичного ключа, не может содержать "пустое" (NULL) значение в какой-либо своей ячейке. Вторичный ключ определяет местоположение, в общем случае, не одной строки таблицы, а нескольких "подобных" (в любом случае ускоряя доступ к ним, хотя не в такой степени как ключ первичный).
Ключи используются внутренними механизмами СУБД для оптимизации затрат на доступ к строкам таблиц (путем, например, их физического упорядочения по значениям ключей или построения двоичного дерева поиска).
Основными операциями над таблицами являются следующие.
Проекция - построение новой таблицы из исходной путем включения в нее избранных столбцов исходной таблицы.
Ограничение - построение новой таблицы из исходной путем включения в нее тех строк исходной таблицы, которые отвечают некоторому критерию в виде логического условия (ограничения).
Объединение - построение новой таблицы из 2-ух или более исходных путем включения в нее всех строк исходных таблиц (при условии, конечно, что они подобны).
Декартово произведение - построение новой таблицы из 2-ух или более исходных путем включения в нее строк, образованных всеми возможными вариантами конкатенации (слияния) строк исходных таблиц. Количество строк новой таблицы определяется как произведение количеств строк всех исходных таблиц.
Перечисленные выше 4 операции создают базис, на основе которого может быть построено большинство (но не все) практически полезных запросов на извлечение информации из реляционной БД.
Примечание. Набор операций будет полным, если дополнить его операциями пересечения и вычитания. Однако в данном пособии реализация этих операций в языке SQL не рассматривается.
Кроме перечисленных выше в языке SQL реализованы операции модификации содержимого строк таблицы и пополнения таблицы новыми строками (что теоретически может рассматриваться как операция объединения), а также операции управления таблицами.
Рассмотренные выше операции над таблицами реляционной БД обладая функциональной полнотой, будучи реализованы на практике в своем "чистом" каноническом виде, как правило, крайне неэкономичны (в первую очередь это относится к комбинации операций ограничения и декартового произведения). Разработчики реальных реляционных СУБД прибегают ко всевозможным приемам и "ухищрениям" для минимизации вычислительных затрат (в первую очередь, машинного времени) при выполнении этих операций. Общим способом, нашедшим отражение в языке SQL, повышения эффективности выполнения запросов в реляционных СУБД являются использование ключей индексов.
Индексом называется скрытая от пользователя вспомогательная управляющая структура, обеспечивающая прямой (или "квази"-прямой) метод доступа к строкам таблицы, позволяющий исключить последовательный просмотр всех строк таблицы для обнаружения отвечающих некоторому критерию поиска. Индексы неявным образом (скрытно от пользователя) автоматически создаются для всех ключей таблицы.
В настоящее время наибольшее распространение получили реляционные SQL СУБД двух групп:
- мощные крупные коммерческие СУБД, ориентированные на хранение огромных объемов информации (от гигабайт);
- мобильные компактные свободно распространяемые (в том числе и в исходных кодах) СУБД, использование которых оправдано и для БД объемом всего лишь в десятки килобайт.
Наиболее известными СУБД первой группы являются:
- Sybase SQLserver фирмы Sybase, Inc.;
- Oracle фирмы Oracle Corporation;
- Ingres фирмы Computer Associates International;
- Informix фирмы Informix Corporation.
К наиболее популярным СУБД второй группы относятся:
- PostgreSQL организации PostgreSQL;
- microSQL фирмы Hughes Technologies Pty. Ltd.;
- mySQL фирмы T.C.X DataKonsult AB.
Все перечисленные выше СУБД построены по принципу "клиент-сервер", кА это показано на рисунке.
SQL-сервер реализует собственно хранение данных и манипулирование ими. Он принимает запросы на языке SQL от своих клиентов, выполняет их и возвращает результаты (чаще всего в виде вновь построенных таблиц) клиентам. Для общения с клиентами используется специальный протокол (как правило, реализованный в виде протокола прикладного уровня стека сетевых протоколов TCP/IP).
Клиентскую часть СУБД составляют клиенты трех основных типов.
- Интерактивные клиенты,
- ИПП-клиенты, обеспечивающие
- WWW-клиенты, встраиваемые в
Команды SQL делятся на функциональные группы, что облегчает из запоминание. Вот эти группы:
- Определение данных (Data Definition). Все основные СУБД, являются так называемыми платформами баз данных. Это означает, что они предоставляют среду, очень хорошо поддерживающие работу с таблицами, но не содержит никаких заранее созданных таблиц. Вы должны сами определять состав и конфигурацию хранимых данных (т.е. их тип и т.д.). Для этого в SQL существует ряд специальных команд: CREATE, ALTER, DROP, RENAME и TRUNCATE.
Эти команды входят в группу, называемых языком определения данных (DDL, Data Definition Language).
- Манипулирование данными (Data Manipulation)
- Управление данными (Data Control). Допустим, вы научились создавать таблицы. Что же дальше? Разумеется поместить в них данные. В SQL есть команда INSERT, позволяющая добавлять данные в таблицы. После того как данные вставлены, их можно изменять, используя команду UPDATE, или удалять, используя команду DELETE.
Эта категория команд называется языком манипулирования данными (DML, Data Manipulation Language).
- Выборка данных (Data Retrieval). Смысл помещения информации в базу данных состоит в том, чтобы получить ее обратно контролируемым образом. В этой категории всего одна команда – SELECT, но она имеет широкий набор параметров, обеспечивающих огромную гибкость. Вероятно, именно эту команду вы будете использовать чаще всего, особенно если планируете обращаться к SQL из другого языка программирования, такого, как Java, C++ или Pascal.
- Управление транзакциями (Transaction Control). SQL позволяет отменять любые из последних команд языка манипулирования данными (DML) до того, как они будут применены к базе данных. После выполнения одной, или нескольких команд DML вы можете ввести либо команду COMMIT для сохранения изменений в базе данных, либо команду ROLLBACK для их отмены («отката»).
Отмена возможна на разных уровнях: вы можете отменить самую последнюю транзакцию DML, несколько последних транзакций или выполнить отмену на любую нужную глубину. Однако для того, чтобы выполнять многоуровневый повтор, требуется несколько больше предварительных действий, чем в вашем любимом текстовом процессоре. Если вы хотите иметь возможность отката к промежуточным точкам, они должны быть предварительно отмечены с помощью команды SAVEPOINT.
Возможность предоставлять некоторым пользователям доступ к определенным таблицам, в то время, как другим это запрещено, обеспечивается за счет присваивания пользователям привилегий на таблицы или действия. Существуют два вида привилегий:
- объектная
- системная
Объектная привилегия разрешает пользователю выполнять определенные действия над таблицей (или другими объектами баз данных)
Системная привилегия, напротив, разрешает пользователю выполнять действия определенного типа во всей базе данных.
Привилегии базы данных присваиваются и удаляются с помощью SQL-команд GRANT и REVOKE, соответственно. Эти команды относятся к категории, называемой языком управления данными (DCL, Data Control Language).
2 Разработка базы данных и интегрирование информационного приложения “Страховая компания”
2.1 Постановка задачи
2.1.1 Анализ предметной области
База данных создаётся
для информационного
В соответствии с предметной областью система строится с учётом следующих особенностей:
- в страховой компании
работают несколько
- в страховой компании имеются несколько видов страхования со своими рисками;
- в страховую компанию обращаются клиенты различных возрастных групп;
Выделим базовые сущности этой предметной области:
- сотрудники страховой компании. Атрибуты сотрудников – Код сотрудника, ФИО, Возраст, Пол, Адрес, Телефон, Паспортные данные, Код должности.
- Должности. Атрибуты - Код должности, Наименование должности, Оклад, Обязанности, Требования.
- Риски. Атрибуты - Код риска, Наименование, Описание, Средняя вероятность Договоры.
- Виды полисов. Атрибуты - Код вида полиса, Наименование, Описание, Условия, Код риска.
- Группы клиентов. Атрибуты - Код группы, Наименование, Описание.
- Клиенты. Атрибуты - Код клиента, ФИО, Дата рождения, Пол, Адрес, Телефон, Паспортные данные, Код группы.
- Полисы. Атрибуты - Номер полиса, Дата начала, Дата окончания, Стоимость, Сумма выплаты, Код вида полиса, Отметка о выплате, Отметка об окончании, Код клиента, Код сотрудника.
2.1.2 Анализ информационных задач и круга пользователей системы
Система создаётся для обслуживания следующих групп пользователей:
- дирекция;
- отдел кадров;
- агенты;
Функциональные возможности:
- ведение БД (запись, чтение, модификация, удаление);
- обеспечение логической непротиворечивости БД;
- реализация наиболее часто встречающихся запросов в готовом виде;
- предоставление возможности сформировать произвольный запрос на языке SQL
- предоставление возможности сформировать представление на языке SQL.
Используя эти возможности, группы пользователей могут выполнять свои задачи:
-·дирекция может наблюдать за своими подчиненными;
-·отдел кадров может нанять, уволить агентов;
-·агенты могут заключить и расторгнуть договоры.
Так же все пользователи могут получить любую информацию из базы данных в систематизированном и удобном для анализа виде.
2.1.3 Выработка требований и ограничений
Для исключения заведомо невозможных данных, введем ограничения целостности.
Основные ограничения целостности:
- Значения всех числовых атрибутов – больше нуля (или null, если атрибут необязателен).
- имена и названия должны содержать только буквы русского алфавита.
- адреса должны содержать буквы русского алфавита и цифры, могут содержать также точку и запятую.
2.2 Разработка базы данных в Microsoft SQL Server 2008
Структура базы данных может быть представлена в следующем виде:
Рис. 1. Информационная системы «Страховая компания»
Создаем таблицы базы данных. Все таблицы нашей БД находятся в подпапке "Таблицы" папки "Strahovka" в окне обозревателя объектов.
Рис. 2 – Таблица “Сотрудники”
Рис. 3 – Таблица “Должности”
Рис. 4 – Таблица “Риски”
Рис. 5 – Таблица “Виды полисов”
Рис. 6 – Таблица “Группы клиентов”
Рис. 7 – Таблица “Клиенты”
Рис. 8 – Таблица “Полисы”
Создаем статические запросы. В обозревателе объектов "Microsoft SQL Server 2008" все запросы БД находятся в папке "Представления".
Запрос – команда, которую вы даете вашей программе БД, и которая сообщает ей, чтобы она вывела определенную информацию из таблиц в память. Эта информация обычно посылается непосредственно на экран компьютера или терминала которым вы пользуетесь, хотя, в большинстве случаев, ее можно также послать принтеру, сохранить в файле (как объект в памяти компьютера), или представить как вводную информацию для другой команды или процесса.
Все запросы на получение практически любого количества данных из одной или нескольких таблиц выполняются с помощью предложения SELECT. В общем случае результатом реализации предложения SELECT является другая таблица.
Создадим запрос “Отдел кадров”. Он связывает таблицы "Сотрудники" и "Должности" по полю "Код должности". Программный код представлен на рис 9
Рис. 9 – Запрос “Отдел кадров”
Аналогично создаем запросы “Риски полисов”, “Список клиентов” и “Список полисов”.
Рис. 10 – Запрос “Риски полисов”
Рис. 11 – Запрос “Список клиентов”
Рис. 12 – Запрос “Список полисов”
Представления, или просмотры (VIEW), – это временные, производные (иначе - виртуальные) таблицы. Они являются объектами БД, информация в которых не хранится постоянно, как в базовых таблицах, а формируется динамически при обращении к ним. Обычные таблицы относятся к базовым, т.е. содержащим данные и постоянно находящимся на устройстве хранения информации. Представление не может существовать само по себе, а определяется только в терминах одной или нескольких таблиц. Применение представлений позволяет разработчику БД обеспечить каждому пользователю или группе пользователей наиболее подходящие способы работы с данными, что решает проблему простоты их использования и безопасности. Содержимое представлений выбирается из других таблиц с помощью выполнения запроса, причем при изменении значений в таблицах данные в представлении автоматически меняются. Представление - это фактически тот же запрос, который выполняется всякий раз при участии в какой-либо команде. Результат выполнения этого запроса в каждый момент времени становится содержанием представления. У пользователя создается впечатление, что он работает с настоящей, реально существующей таблицей.
Создаем представления (фильтры):
- для отображения сотрудников отдельных должностей (на основе запроса "Отдел кадров"),
- для отображения клиентов отдельных групп (На основе запроса "Список клиентов").
- для отображения полисов отдельных видов (На основе запроса "Список полисов").
- для отображения полисов по которым производились выплаты и по которым не производились выплаты (На основе запроса "Список полисов").
- для оконченных и неоконченных полисов (На основе запроса "Список полисов").
Фильтры создаются на основе запросов. Они будут основаны на запросах нашей базы данных. В окне "Таблицы" перейдем на вкладку "Представления" и добавим новый запрос. Затем установим критерий отбора записей в фильтре. Программный код готового фильтра будет иметь вид, представленный на рис.13.
Рис. 13 – Фильтр “Отдел кадров”
Аналогично создаем остальные фильтры.
Рис. 14 – Фильтр “Список клиентов”
Рис. 15 – Фильтр “Полисы отдельных видов”
Рис. 16 – Фильтр “Выплаты”
Рис. 17 – Фильтр “ для оконченных и неоконченных полисов”
2.3 Создание проекта в среде разработки “Microsoft Visual Studio 2008”
Создаем пользовательский интерфейс нашей БД в "Microsoft Visual Studio 2008". Его создание начнем с создания главной кнопочной формы. Для создания кнопки на панели объектов необходимо нажать кнопку
а затем нарисовать прямоугольник мышью на форме, удерживая ЛКМ.
Внешний вид готового внешнего интерфейса примет вид, показанный на рисунке 18.
Рис. 18 – Внешний вид кнопочной формы
Программный код рабочей базы данных примет вид:
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Form2.Show()
End Sub
Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
Form3.Show()
End Sub
Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
Form4.Show()
End Sub
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
Form5.Show()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Form6.Show()
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
Form7.Show()
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Form8.Show()
End Sub
Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click
Form9.Show()
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Form10.Show()
End Sub
Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click
Form11.Show()
End Sub
Private Sub Button16_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button16.Click
Form12.Show()
End Sub
Private Sub Button15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button15.Click
Form13.Show()
End Sub
Private Sub Button14_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button14.Click
Form14.Show()
End Sub
Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click
Form15.Show()
End Sub
Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click
Form16.Show()
End Sub
Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click
Form17.Show()
End Sub
End Class
Заключение
В ходе курсового проектирования создана информационная система для предметной области “Страховая компания”.
Разработана структура базы данных, состоящей из 5 таблиц, и сформулированы запросы на языке SQL для вывода наиболее часто запрашиваемой информации. Для ограничения целостности базы данных созданы 3 триггера, а для вывода и обработки данных из нескольких таблиц были реализованы представления.
Таким образом, спроектированная база данных может удовлетворить потребности администрации, менеджеров и агентов, работающих в страховой компании.
Список использованных источников
1. Грабер М., Понимание SQL. СПб, 2006.
2. Грофф Дж., Вайнберг П. SQL: Полное руководство./ 2-е изд. – К., 2001.
3. Мамаев Е., Шкарина Л. Microsoft SQL Server 2000 для профессионалов.- Спб., 2001.
4. Оутей М., Конте П. Эффективная работа: SQL Server 2000. – СПб, 2002.
КР-02069964-100100.62-12-13 |
| |||||||
Изм |
Лист |
№ докум. |
Подп. |
Дата | ||||

- База данных
- База данных
- База данных
- База данных
- База данных
- База данных
- База данных
- Бағдарламалық өнімді әзірлеуге кеткен шығындар есебі
- Бағыт бойынша туынды. Градиент
- Бады для похудения из лекарственных растений
- База водителей автобусов
- База даних підприємства LADA-сервіс
- База даних станції технічного обслуговування автомобілів «Garage Inc.»
- База даних Шкільна канцелярія