Рекомендуемая категория для самостоятельной подготовки:
Курсовая работа*
Код |
296700 |
Дата создания |
04 апреля 2014 |
Страниц |
43
|
Мы сможем обработать ваш заказ (!) 23 декабря в 12:00 [мск] Файлы будут доступны для скачивания только после обработки заказа.
|
Описание
Курсовой проект содержит 43 страницы, 31 рисунок, 1 таблицу, 6 использованных источника, 1 приложение.
Перечень ключевых слов:
МОДЕЛЬ, БАЗА ДАННЫХ, ТАБЛИЦА, ЗАПРОС, ОТЧЕТ, ФОРМА
Объекты использования: СУБД Microsoft SQL Server 2008, Delphi 2007.
Цель работы: создание модели базы данных, создание самой базы данных, включающей таблицы, формы, запросы, отчеты, главную кнопочную форму. В результате была создана модель базы данных, а также сама база данных " Междугородная телефонная служба" в системе Microsoft SQL Server 2008 и приложение пользователя, реализованное с помощью Delphi 2007.
...
Содержание
Введение…………………………………………………………………………..5
1. Анализ предметной области…………………………………………………..7
2. Информационная модель предметной области……………………………...9
3. Разработка базы данных с использованием операторов определения объектов………………………………………………………………………….11
4. Создание таблиц в базе данных……………………………………………..16
5. Описание структуры базы данных…………………………………………...27
6. Разработка программного обеспечения для обслуживания базы данных...31
Заключение……………………………………………………………………….37
Список использованной литературы…………………………………………...39
Приложение ……………………….…………………………………………...40
Введение
Название курсового проекта «Междугородная телефонная служба». Так как в настоящее время приходится работать с большим объемом данных, связанным с распределением производственных программ, то необходима удобная база для хранения и обработки этих данных.
Нашей задачей является: разработать базу данных для обеспечения удобства работы с различными видами производственных программ, в ней должна храниться информация об материальных ценностях и пользователях, она должна предусматривать возможность легкого просмотра необходимых данных.
Последовательность действий:
1. Разработка информационной модели для заданной предметной области.
2. Разработка структуры реляционной базы данных для заданной предметной области.
3. Реализация схемы базы данных в выбранной СУБД.
4. Разработка прикладного программног о обеспечения для работы с базой данных выбранной предметной области.
5. Создание следующих приложений:
• Сформировать ведомость оплаченных телефонных разговоров.
• Рассчитать количество, общее время и доходы от переговоров с заданным городом за указанный месяц.
• Сформировать список переговоров заданного абонента за указанный месяц.
• Сформировать список количества переговоров по всем видам абонентов за указанный месяц.
• Выдать счета на оплату переговоров всем абонентам (квартирные) за указанный месяц.
• Выдать счета на оплату переговоров всем абонентам-предприятиям за указанный месяц.
• Выдать счета на оплату переговоров всем абонентам-гостиницам за текущую дату
Фрагмент работы для ознакомления
- INT[(length)] [UNSIGNED] [ZEROFILL] – целое число
- REAL[(length,decimals)] [UNSIGNED] [ZEROFILL] – вещественное число
- VARCHAR(length) [BINARY] – строка
- DATE – дата
- [NOT NULL | NULL] – указывает, может ли данных столбец содержать незаполненное (пустое) значение или нет. Если не указано, то по умолчанию принимается NULL.
- [DEFAULT default_value] – задает значение по умолчанию для данного столбца. При вставке новой записи в таблицу командой INSERT если значение для поля col_name явно указано не было, то устанавливается значение default_value.
- [AUTO_INCREMENT] – при вставке новой записи в таблицу поле с этим атрибутом автоматически получит числовое значение, на 1 больше самого большого значения для этого поля в текущий момент времени. Данная возможность обычно используется для генерирования уникальных идентификаторов строк. Столбец, для которого применяется атрибут AUTO_INCREMENT, должен иметь целочисленный тип. В таблице может быть только один столбец с атрибутом AUTO_INCREMENT. Так же этот столбец должен быть проиндексирован. Отсчет последовательности чисел для AUTO_INCREMENT начинается с 1. Это могут быть только положительные числа.
После создания таблиц нужно их заполнить данными. Для этого используется команда INSERT, которая производит вставку новых строк в таблицу. Синтаксис команды INSERT:
INSERT [LOW_PRIORITY | DELAYED] [IGNORE] [INTO] tbl_name [(col_name,…)] VALUES (expression,…),(…),…
либо
INSERT [LOW_PRIORITY | DELAYED] [IGNORE] [INTO] tbl_name
SET col_name=expression, col_name=expression, …
либо
INSERT [LOW_PRIORITY | DELAYED] [IGNORE] [INTO] tbl_name [(col_name,…)] SELECT …
Общие положения работы команды INSERT:
- tbl_name – задает имя таблицы, в которую будет вставлена новая строка. На момент запуска команды INSERT таблица с таким именем должна существовать в базе данных.
- LOW_PRIORITY – если указан этот параметр, то вставка новой записи будет отложена до тех пор, пока другие сценарии не закончат чтение из этой таблицы. Надо отметить, что если таблица часто используется, то при указании этого параметра может пройти достаточно много времени, прежде чем данная команда будет выполнена.
- DELAYED – если указан этот параметр, то после выполнения команды INSERT сценарий сразу же получит ответ от БД об успешной вставке новой записи, а запись будет вставлено только после завершения использования данной таблицы другим сценарием. Это может быть удобно, если требуется высокая скорость работы скрипта.
- IGNORE – если некоторые поля таблицы имеют ключи PRIMARY или UNIQUE, и производится вставка новой строки, в которой эти поля имеют дублирующее значение, то действие команды аварийно завершается и выдается ошибка №1062 («Duplicate entry 'val' for key N»). Если в команде INSERT указано ключевое слово IGNORE, то вставка записей не прерывается, а строки с дублирующими значениями просто не вставляются.
Если MySQL был сконфигурирован с использованием опции DONT_USE_DEFAULT_FIELDS, то команда INSERT будет генерировать ошибку, если явно не указать величины для всех столбцов, которые требуют значений не-NULL.
Для добавления новых записей в существующую таблицу при помощи команды INSERT существует три основных синтаксиса:
- INSERT … VALUES – в этом случае в команде четко указывается порядок следования устанавливаемых полей и их значений. Если для поля или группы полей, присутствующих в таблице, не установить значение, то используется значение, установленное по умолчанию при создании таблицы. Если при выполнении команды INSERT не были указаны названия полей, то в VALUES() должны быть указаны значения для всех полей таблицы.
- INSERT … SET – в этом случае в команде каждому полю, присутствующему в таблице, присваивается значение в виде имя поля='значение'. Так же, как и с INSERT … VALUES, если одному или нескольким полям не задать значение, то установится значение по умолчанию. В качестве значений полям можно присваивать не только значения, но и выражения. В выражениях разрешено использовать значения полей таблицы, которые уже были установлены в этой команде.
- INSERT … SELECT – такой синтаксис позволяет внести в таблицу большое количество записей за один раз, причем из разных таблиц. Если для таблицы, в которую происходит вставка записей, не указан список полей, то значения для всех полей будут определены на основании результата работы SELECT. Если некоторые поля не определены, то для них будут принято значение по умолчанию.
4. Создание таблиц в базе данных
Перейдем к непосредственному созданию таблиц в MySQL. Для работы с MySQL воспользуемся панелью управления БД MySQL – phpMyAdmin.
Создадим базу данных MailDelivery. Структура запроса имеет вид:
CREATE DATABASE MailDelivery
На рисунке 3 приведено окно phpMyAdmin, в котором сообщается об успешном создании базы данных.
Рисунок 2 – Создание новой базы данных
Зайдем в базу данных MailDelivery в списке баз данных и выполним создание всех таблиц:
- таблица «Вид абонента». Структура запроса имеет вид:
CREATE TABLE type_nodes (
id_tnode INT UNSIGNED NOT NULL AUTO_INCREMENT KEY,
description VARCHAR(15));
На рисунке 3 приведено окно phpMyAdmin, в котором сообщается об успешном создании таблицы «Вид абонента».
Рисунок 3 – Создание таблицы «Виды узлов»
- таблица «Кварт. абонент». Структура запроса имеет вид:
CREATE TABLE nodes (
id_node INT UNSIGNED NOT NULL AUTO_INCREMENT KEY,
description VARCHAR(30),
id_tnode INT);
На рисунке 4 приведено окно phpMyAdmin, в котором сообщается об успешном создании таблицы «Кварт. абонент».
Рисунок 4 – Создание таблицы «Кварт. абонент»
Покажем создание связей между таблицами. Выбираем таблицу nodes из списка таблиц. Открывается структура таблицы. Используя кнопку «Связи» (Рисунок 6), создадим связь между таблицами «Вид абонента» и «Кварт. абонент» (Рисунок 7). Далее будем создавать аналогично связи между таблицами согласно схеме данных БД.
Рисунок 5 – Кнопка для создания связей
Рисунок 6 – Создание связей между таблицами
- таблица «Справочник тарифов». Структура запроса имеет вид:
CREATE TABLE trains (
id_train INT UNSIGNED NOT NULL AUTO_INCREMENT KEY,
nomer VARCHAR(10),
node_arrival INT,node_departure INT);
На рисунке 8 приведено окно phpMyAdmin, в котором сообщается об успешном создании таблицы «Справочник тарифов».
Рисунок 7 – Создание таблицы «Справочник тарифов»
- таблица «Вид тарифа». Структура запроса имеет вид:
CREATE TABLE type_tarif (
id_twagon INT UNSIGNED NOT NULL AUTO_INCREMENT KEY,
description VARCHAR(30));
На рисунке 9 приведено окно phpMyAdmin, в котором сообщается об успешном создании таблицы «Вид тарифа».
Рисунок 8 – Создание таблицы «Вид тарифа»
- таблица «Зона». Структура запроса имеет вид:
CREATE TABLE type_post (
id_tpost INT UNSIGNED NOT NULL AUTO_INCREMENT KEY,
description VARCHAR(30));
На рисунке 10 приведено окно phpMyAdmin, в котором сообщается об успешном создании таблицы «Зона».
Рисунок 9 – Создание таблицы «Зона»
- таблица «Абонент - предприятия». Структура запроса имеет вид:
CREATE TABLE wagons (
id_wagon INT UNSIGNED NOT NULL AUTO_INCREMENT KEY,
id_train INT,
node_arrival INT,node_departure INT,
nomer INT,
id_twagon INT);
На рисунке 10 приведено окно phpMyAdmin, в котором сообщается об успешном создании таблицы «Абонент - предприятия».
Рисунок 10 – Создание таблицы «Абонент - предприятия»
- таблица «Абонент - гостиница». Структура запроса имеет вид:
CREATE TABLE post (
id_post INT UNSIGNED NOT NULL AUTO_INCREMENT KEY,
id_node INT,
id_train INT,
id_wagon INT,
id_tpost INT,
count_all INT,
count_in INT);
На рисунке 11 приведено окно phpMyAdmin, в котором сообщается об успешном создании таблицы «Абонент - гостиница».
Рисунок 11 – Создание таблицы «Абонент - гостиница»
После создания таблиц их необходимо заполнить данными с помощью команды INSERT.
- таблица «Виды узлов». Структура запроса вставки одной записи имеет вид:
INSERT INTO `type_nodes`(`description`) VALUES ('начальный')
Поле «id_tnode» пропущено, так как это поле автоинкрементное и при вставке записи заполняется автоматически. Аналогично добавляем еще записи в таблицу. На рисунке 12 показаны все записи таблицы «Виды узлов».
Рисунок 12 – Записи таблицы «Виды узлов»
- таблица «Кварт. абонент». Структура запроса вставки одной записи имеет вид:
INSERT INTO `nodes`(`description`, `id_tnode`) VALUES ('Москва',1)
Поле «id_node» пропущено, так как это поле автоинкрементное и при вставке записи заполняется автоматически. Аналогично добавляем еще записи в таблицу. На рисунке 13 показаны все записи таблицы «Кварт. абонент».
Рисунок 13 – Записи таблицы «Кварт. абонент»
- таблица «Справочник тарифов». Структура запроса вставки одной записи имеет вид:
INSERT INTO `trains`(`nomer`, `node_arrival`, `node_departure`) VALUES ('A35',1,6)
Поле «id_train» пропущено, так как это поле автоинкрементное и при вставке записи заполняется автоматически. Аналогично добавляем еще записи в таблицу. На рисунке 14 показаны все записи таблицы «Справочник тарифов».
Рисунок 14 – Записи таблицы «Справочник тарифов»
- таблица «Вид тарифа». Структура запроса вставки одной записи имеет вид:
INSERT INTO `type_wagon`(`description`) VALUES ('почтово-сортировочный')
Поле «id_twagon» пропущено, так как это поле автоинкрементное и при вставке записи заполняется автоматически. Аналогично добавляем еще записи в таблицу. На рисунке 15 показаны все записи таблицы «Вид тарифа».
- таблица «Зона». Структура запроса вставки одной записи имеет вид:
INSERT INTO `type_post`(`description`) VALUES ('зона')
Поле «id_tpost» пропущено, так как это поле автоинкрементное и при вставке записи заполняется автоматически. Аналогично добавляем еще записи в таблицу. На рисунке 16 показаны все записи таблицы «Зона».
Рисунок 15 – Записи таблицы «Зона»
Рисунок 16 – Записи таблицы «Вид тарифа»
- таблица «Абонент - гостиница». Структура запроса вставки одной записи имеет вид:
INSERT INTO `wagons`(`id_train`, `node_arrival`, `node_departure`, `nomer`, `id_twagon`) VALUES (1,1,6,1,1)
Поле «id_wagon» пропущено, так как это поле автоинкрементное и при вставке записи заполняется автоматически. Аналогично добавляем еще записи в таблицу. На рисунке 17 показаны все записи таблицы «Абонент - гостиница».
Рисунок 17 – Записи таблицы «Абонент - гостиница»
- таблица «Почта». Структура запроса вставки одной записи имеет вид:
INSERT INTO `post`(`id_node`, `id_train`, `id_wagon`, `id_tpost`, `count_all`, `count_in`) VALUES (1,1,1,1,350,420)
Поле «id_post» пропущено, так как это поле автоинкрементное и при вставке записи заполняется автоматически. Аналогично добавляем еще записи в таблицу. На рисунке 18 показаны все записи таблицы «Абонент - гостиница».
Рисунок 18 – Записи таблицы «Абонент - гостиница»
5. Описание структуры базы данных
Составим проекты таблиц, которые будут затем реализованы в выбранной СУБД.
Описание структуры базы данных включает в себя описание таблиц и полей (с ограничениями значений), связей, первичных индексов и т.д.
В нашей базе данных мы выделяем семь таблиц:
Вид абонента
Кварт. абонент
Справочник тарифов
Вид тарифа
Зона
Абонент - предприятие
Абонент - гостиница
Целостность базы данных обеспечивает механизм связывания таблиц. Первым шагом при этом является определение типа связи. В результате становится возможным создание запросов, форм и отчетов, в которые вводятся данные из нескольких полей сразу. Связь устанавливает отношения между полями разных таблиц, имеющих одинаковые имена. В большинстве случаев с ключевым полем одной таблицы, являющимся уникальным идентификатором каждой записи, связывается внешний ключ другой таблицы.
Таблица «Вид абонента» имеет поля:
- Код – первичный ключ, который однозначно идентифицирует записи таблицы, поле является целым числом, имеет тип char (символьный тип);
- Номер вызываемого телефона – имеет тип char, 60 символов;
- Номер вызывающего телефона – целое поле;
- Вид тарифа – символьный тип данных, 17 символов.
Список литературы
Джоунс Эйри, Райан К. Стивенз, Рональд Р. Плю, Роберт Ф. Гарретт, Кригель Алекс. Функции SQL. Справочник программиста. - Издание: Вильямс, 2007
2. Д. Л. Осипов.Базы данных и Delphi. Теория и практика .-Издательство: БХВ-Петербург,ISBN 978-5-9775-0659-5; 2011 г.
3. Ицик Бен-Ган .Microsoft SQL Server 2008. Основы T-SQL.-Издательство: БХВ-Петербург , 2009.- 430с.
4. Никита Культин.Основы программирования в Delphi XE.-Издательство: БХВ-Петербург, 2011.-416 с
5. Уильям Р. Станек .Microsoft SQL Server 2008. Справочник администратора - Издание: БХВ-Петербург, Русская Редакция, 2009.-720с.
6. Таланов В.М., Федосин С.А. Проектирование информационных систем и баз данных. – Саранск: Издательство Мордовского университета, 2001.–72с.
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00472