База данных комплектующих персональных компьютеров

МИНИСТЕРСТВО  ОБРАЗОВАНИЯ И НАУКИ

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

УЛЬЯНОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Колледж экономики  и информатики

 

 

 

Специальность Программное обеспечение ВТ и АС    

Шифр курсовой работы 230105 2010 25      

 

 

 

КУРСОВАЯ  РАБОТА

 

 

ДИСЦИПЛИНА ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАМНЫХ ПРОДУКТОВ

 

ТЕМА  РАБОТЫ:  «База данных Комплектующих ПК»       

 

СТУДЕНТ  Канатьев А.А               (фамилия, инициалы)

 

ПРЕПОДАВАТЕЛЬ Глушков В. А       

(фамилия,  инициалы)

 

 

 

ДАТА  ЗАЩИТЫ_____30.03.12_______ОЦЕНКА________________

 

 

 

 

 

 

 

 

 

 

Ульяновск

2012


 

СОДЕРЖАНИЕ

ВВЕДЕНИЕ…………………………………………………………………..……3

1 Основы разработки баз данных ………….……………………………....…….4

1.1 Требования к программе …………………………………………..…….……4

1.2 База данных……….……………………………………………………….…....9

1.2.1 Что такое база данных?…………………….…………………………....…..9

1.2.2 Таблицы баз данных………………………………………….……..…...…10

1.2.3 Наборы данных……………………………………………………………...12

1.2.4 Режимы наборов данных ………………………………………………..…13

1.2.5 Перемещение по записям набора данных…………...…………….……..13

1.2.6 Модификация набора данных……………………………………...….….15

1.2.7 Редактирование  записей………………………………………………......16

1.2.8 Добавление  записей………………………………………………….……17

1.2.9 Удаление  записей…………………………………………………….……18

1.2.10 Организация  связей между таблицами………………………………….20

1.3 Историческая  справка о Delphi……………………………………….…….23

2 Разработка  программы с описанием……………………………………….....26

2.1 Создание  обучающей части……………………………………………...….26

ЗАКЛЮЧЕНИЕ……….……………………………………………...………….29

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ……………………………30

ПРИЛОЖЕНИЯ A……………………………………………………………….31

 

 

 

 

 

 

 

 

 

 

 

 

ВВЕДЕНИЕ

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

Также необходимо продумать и найти способы  реализации таких функций и возможностей, как:

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

- удобный  для пользователя способ ввода  этих параметров поиска (уменьшение  количества параметров, вводимых  вручную, и создание полей с  возможность выбора данных параметров  или их неполного ввода);

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

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

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

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

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

1. Основы разработки баз данных

1.1Требования к программе

Обзор функционирования ПО

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

1) по  месту обучения: ВУЗ, институт, факультет,  специальность, курс;

2) по  личным данным: фамилия, имя, отчество, дата рождения и успеваемость  студента.

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

Требования к оборудованию и  операционной системе

1) Программа  должна работать под управлением  операционной системы семейства  Windows версии 98 и выше.

2) Для  установки программы необходимо 2,5 Мб дискового пространства.

3) В ходе  работы программа должна занимать  не более 15 Мб оперативной памяти.

Требования  к аппаратной части должны совпадать  с требованиями операционной системы.

Функциональные требования

1) Все  окна программы, кроме окна  «Поиск студентов», должны иметь  фиксированный размер, т.е. их  размер не должен изменяться  пользователем, в том числе  сворачиваться и разворачиваться  (отсутствуют кнопки «свернуть»  и «развернуть» в заголовке  окна, а также в пункте меню  в левом верхнем углу).

2) При  изменении размеров окна «Поиск  студентов» компонент для отображения  результатов поиска должен изменять  свои размеры соответствующим  образом.

3) Окно  «Поиск студентов» должно содержать  главное меню со следующими  пунктами:

а) Файл:

- сохранить  данные поиска (предназначено для  сохранения данных поиска в  файл);

- функциональный  просмотр (предназначено для просмотра  листа с данными, приготовленного  для печати и задания особых  параметров печати);

- печать (предназначено для вывода на  печать результатов поиска);

б) Параметры  поиска:

- сброс  всех параметров (предназначено  для установления всех параметров  поиска в первоначальное состояние);

в) Справка:

- помощь (предназначено для вызова справки  по пользованию программы);

- о программе  (данные о программе и её  создателях);

4) Остальные  окна не должны содержать главного  меню.

Требования к производительности

1) Время  от момента запуска программы  до отображения окна не должно  превышать 2 секунд.

2) Время,  затраченное на обработку и  вывод результатов поиска не  должно превышать 3 секунд.

Детальная спецификация интерфейсов

1) На  окне «База данных студентов», открывающем при запуске программы,  должно находиться название программы  и кнопки «Начать поиск» для  перехода к поиску данных о  студентах, а также кнопка «Выход»  для завершения работы с программой. При нажатии на кнопку «Выход»  система должна запросить подтверждение  на выход из программы сообщением  «Вы действительно хотите выйти  из программы?».

В случае ответа «Да» программа должна завершить  свою работу, в противном случае, т.е. при нажатии кнопки «Нет»  программа должна продолжить работу.

2) На  форме «Поиск студентов» должно  находиться поле для отображения результатов поиска со списком отобранных студентов. Также на данной форме должны находиться две области «Поиск студента по вузу и специальности» и «Поиск студента по личным данным».

Область «Поиск студента по вузу и специальности» должна содержать поля-списки: «Выберите  вуз», «Выберите институт», «Выберите  факультет», «Выберите специальность», «Выберите курс». Каждое из данных полей-списков  должно содержать варианты значений, предназначенные для выбора.

Область «Поиск студента по личным данным»  должна содержать поля-списки «Успеваемость», а также для ввода даты рождения студента 3 поля-списка: «Число», «Месяц», «Год». Также в этой области должны находиться 3 поля ввода для поиска по фамилии «Введите фамилию», по имени  «Введите имя», по отчеству «Введите отчество».

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

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

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

3) В окне  «О программе» должны содержаться  информация об авторе программы  и её название.

4) В окне  «Помощь» должно быть поле  со списком возможных разделов  справки и поле для поиска  этих разделов, путем ввода в  него, хотя бы первых букв названия  искомого раздела. Также должны  быть кнопка «Отмена» для выхода  из справки и кнопка «Показать»  для открытия выбранного раздела  справки.

5) Окно  «Справка» должно содержать информацию  раздела справки, выбранного в окне «Помощь».

6) Окно  «Функциональный просмотр» служит  для просмотра листа с данными,  подготовленными для печати. Данное  окно должно содержать изображение  листа подготовленного для печати, а также кнопки «Печать» для  перехода на окно с определением  параметров печати; кнопка «Увеличить»  для увеличения масштаба изображения,  кнопка «Уменьшить» для уменьшения  масштаба изображения; поле-список, предназначенное для выбора масштаба  изображения из списка; кнопка  «Закрыть» для закрытия окна  «Функциональный просмотр»; кнопка  «Задать особые параметры печати»  для открытия соответствующего  окна.

7) Окно  «Печать» должно содержать следующие  секции:

а) «Принтер». В данной секции должно содержаться  поле-список «имя» для выбора принтера, кнопка «Свойства» для выбора свойств  или параметров печати принтера, кнопку «Найти принтер», предназначенную для  того, чтобы выбрать принтер, которого не имеется среди списка предложенных.

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

б) «Копии». В данной секции должно содержаться  поле «число копий» для выбора количества копий распечатываемых данных и  опция «разобрать по копиям» для  последовательной печати каждой копии  данных.

Также должны содержаться кнопки «Печать» для  печати данных, полученных в результате поиска, кнопка «Предварительный просмотр»  для просмотра печатаемых данных, т.е. открытие окна «Предварительный просмотр», и кнопка «Отмена» для отмены печати.

8) Окно  «Сохранить данные поиска» предназначено  для сохранения результатов поиска  в файл. Данное окно должно  содержать панели для навигации  по папкам и выбора папки,  в которую сохраняется в файл. Также поля для ввода имени  файла и его расширения, кнопки  «Сохранить данные» и «Отмена»  с соответствующими функциями.

9) База данных.

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

10) Окно «Особые параметры печати»  должно содержать элементы для  задания критериев, по которым  будут выделены соответствующие  строчки в таблице при распечатке  в табличном виде или номер  и ФИО студента при распечатке  простым текстом.

 

1.2 База данных

1.2.1 Что такое база данных?

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

Современной формой информационных систем являются банки данных, которые включают:

▪ вычислительную систему;

▪ систему  управления базами данных (СУБД);

▪ одну или несколько баз данных (БД);

▪ набор  прикладных программ.

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

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

По характеру  использования СУБД разделяют на персональные и многопользовательские.

Персональная  СУБД обеспечивает возможность создания локальных БД (расположены на одном  и том же компьютере, что и работающее с ними приложения). К персональным СУБД относятся Paradox, dBase, FoxPro, Access и другие.

Многопользовательские СУБД позволяют создавать информационные системы, функционирующие в компьютерных сетях. К ним относятся Oracle, Informix, InterBase и другие.

В зависимости  от вида организации данных различают  следующие модели БД:

▪ Иерархическую

▪ Сетевую

▪ Реляционную

▪ Объектно-ориентированную

В иерархической  БД данные представляются в виде древовидной  структуры.

В сетевой  БД данные организуются в виде графа.

Реляционная БД получила название от англ. слова Relation – отношение. Данные представлены в  виде таблицы.

Объектно-ориентированную  БД объединяют сетевую и реляционную  модели и используются для создания крупных БД с данными сложной  структуры.

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

Система Delphi не является СУБД, но обладает ее возможностями. Предоставляемые Delphi средства обеспечивают создание и использование различных  видов БД, а также разработку приложений для работы практически с любыми БД. Delphi не имеет своего формата таблиц (языка описания данных), но использует форматы таблиц других СУБД (dBase, Paradox, InterBase).

 

1.2.2 Таблицы баз данных

Реляционная БД состоит из взаимосвязанных таблиц. Обычно таблицы, образующие БД, находятся  в каталоге на жестком диске. Таблицы  хранятся в файлах, поэтому их можно  перемещать и копировать обычным  способом.

Для одной  таблицы создается несколько  файлов, содержащих данные, индексы, ключи  и т. п. Имя главного файла таблицы (файла, содержащего данные) – оно  же является именем таблицы – задается при создании таблицы. Имена остальных  файлов задаются автоматически, причем имена файлов совпадают с именем таблицы, за исключением расширений имен.

Каждая  таблица БД, состоящая из строк  и столбцов, предназначена для  хранения информации об однотипных объектах системы. Строка таблицы называется записью, а столбец – полем. Каждое поле должно иметь уникальное имя в пределах таблицы. Поле содержит данные одного из допустимых типов, например, целого или строкового.

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

С таблицей в целом можно выполнять следующие  операции:

▪ создание (определение структуры);

▪ изменение  структуры (реструктуризация);

▪ переименование;

▪ удаление.

При создании таблицы задается структура и  имя таблицы.

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

При переименовании таблица получает новое имя, в  результате чего новое имя также  получают все ее файлы. Для этого  используются соответствующие программы (утилиты), предназначенные для работы с БД, например, Database Desktop или Data Pump.

При удалении таблицы с диска удаляются  все ее файлы.

Для работы с БД предназначены специальные  средства Delphi, которые можно разделить  на два вида:

Инструментальные  средства (специальные программы  и пакеты, обеспечивающие обслуживание БД вне разрабатываемых приложений).

Компоненты, предназначенные для создания приложений, осуществляющих операции с БД.

Инструментальные  средства:

▪ Borland Database Engine (BDE) – процессор баз данных, который представляет собой набор  библиотек, предназначенных для  организации доступа к БД из приложений Delphi.

▪ Database Desktop – программа создания и редактирования таблиц и другие.

Компоненты, связанные с БД, делятся на визуальные (используются для создания интерфейсной части приложения, видны в работающих программах) и невизуальные (предназначены  для организации доступа к  данным, содержащимся в таблицах, не видны в работающих программах). Эти компоненты находятся на страницах Data Access, Data Controls, Midas, Decision Cube, QReport, InterBase палитры компонентов.

 

1.2.3 Набор данных

Таблицы БД располагаются на диске и являются физическими объектами. Для операций с данными, содержащимися в таблицах, используются наборы данных (НД). В терминах Delphi набор данных – это совокупность записей, взятых из одной или нескольких таблиц БД. НД является логической таблицей, с которой можно работать при выполнении приложения. Взаимодействие таблицы и НД напоминает взаимодействие физического файла и файловой переменной. В Delphi для работы с наборами данных таблиц применяются несколько компонент, но наиболее универсальным и часто используемыми являются НД Table и Query.

Компонент Table представляет собой набор данных, который в некоторый момент времени  может быть связан с одной таблицей БД. Связь между таблицей и компонентом Table устанавливается через его  свойство TableName, который определяет имя таблицы.

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

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

реляционный – основан на обработке группы записей. При реляционном способе  доступа для задания операций используются средства языка структурированных  запросов – SQL (Structured Query Language).

 

1.2.4 Режимы наборов данных

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

НД может  находиться в одном из следующих  режимов:

▪ dsInactive – НД закрыт и неактивен, доступ к его данным невозможен.

▪ dsBrowse – режим просмотра, в котором  осуществляется перемещение по записям  НД и просмотр данных.

▪ dsEdit –  редактирование текущей записи.

▪ dsInsert – вставка новой записи.

▪ dsSetKey – поиск записи, удовлетворяющей  заданному критерию.

▪ dsCalcField – выполняется расчет вычисляемых  полей.

▪ dsFilter – выполняется фильтрация записей.

 

1.2.5 Перемещение по записям набора данных

Перемещение по НД заключается в управлении указателем текущей записи (курсором). Этот указатель  определяет запись, с которой будут  выполняться какие-либо операции.

Перед перемещением указателя текущей записи НД автоматически  переводится в режим просмотра.

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

Процедура First – установка курсора на первую запись НД;

Процедура Next – на следующую запись;

Процедура Last – на последнюю запись;

Процедура Prior – на предыдущую запись;

Функция MoveBy (n:integer): integer – перемещение на число запсией, указанных в параметре n

n>0 –  перемещение вперед;

n=, =150 or Cena нижней границы AND значение < верхней границы" (вместо операций сравнения < > могут указываться и операции =).

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

Для фильтрации записей по диапазону компонент Table имеет следующие методы:

ApplyRange –  активизирует фильтр (включение  фильтра);

CancelRange –  деактивизирует фильтр (выключение  фильтра);

SetRangeStart – устанавливает нижнюю границу  диапазона;

SetRangeEnd –  устанавливает верхнюю границу  диапазона;

EditRangeStart – изменяет предварительно заданную  нижнюю границу диапазона;

EditRangeEnd – изменяет предварительно заданную верхнюю границу диапазона;

SetRange –  имеет тот же эффект, что и  последовательное выполнение методов  SetRangeStart, SetRangeEnd и ApplyRange. Процедура  позволяет одновременно задать  границы диапазона и выполнить  фильтрацию.

Свойство KeyExclusive типа Boolean определяет, как учитывается  заданное граничное значение при  анализе записей. Если KeyExclusive = False (по умолчанию), то записи, у которых  значения полей фильтрации совпадают  с границами диапазона, включаются в состав НД, а если KeyExclusive = True, то такие записи в НД не попадают. Свойство KeyExclusive действует отдельно для нижней и верхней границы. Значение этого  свойства должно устанавливаться после  вызова методов SetRangeStart, SetRangeEnd, EditRangeStart и EditRangeEnd.

Пример:

Table1.IndexName: ='indCena'; //установка текущего индекса  indCena (создан по полю Cena таблицы Tovar.db)

Table1. SetRangeStart;

Table1. KeyExclusive: = True;

Table1.FieldByName('Cena').AsFloat: =100.5;

Записи, содержащие в поле Cena значение 100,5, не входят в отфильтрованный НД (т. к. KeyExclusive = True). Фильтрация по диапазону подчиняется условию Cena >100,5. Если бы KeyExclusive = False, то условие фильтрации выглядело бы по-другому (Cena >=100,5).

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

 

1.2.6 Модификация набора данных

Модификация НД представляет собой редактирование, добавление и удаление его записей. Модифицируемость НД зависит от различных условий. Можно разрешить или запретить изменение НД с помощью соответствующих свойств. Управлять возможностью изменения НД Table можно с помощью свойства ReadOnly типа Boolean. Если значение этого свойства = True, то изменения записей запрещаются. По умолчанию свойство ReadOnly имеет значение False, и НД можно модифицировать.

Для проверки, можно ли изменять НД, предназначено  свойство CanModify типа Boolean. Если это свойство имеет значение True, то НД изменять можно, а если False, то изменения в НД запрещены.

 

1.2.7 Редактирование записей

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

▪ перевести  НД в режим редактирования;

▪ изменить значения полей записи;

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

НД переводится  в режим редактирования вызовом  метода Edit, например Table1.Edit – редактирование текущей записи НД Table1.

Редактирование  записей осуществляется для модифицируемого  НД, поэтому перед вызовом метода Edit следует выполнять проверку на возможность редактирования записи (например, путем анализа свойства CanModify).

Пример: If Table1.CanModify then Table1.Edit;

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

procedure TForm1.Button1Click(Sender: TObject);

begin

if not Table1.CanModify then

begin

Beep;

MessageDlg ('Редактирование запрещено!', mtInformation, [mbOk], 0);

Exit;

end;

Table1.Edit;

end;

Здесь переход  в режим редактирования осуществляется при нажатии кнопки Button, которая  может иметь название «Редактировать»  или «Edit». Перед переводом в  этот режим выполняется проверка, можно ли изменять записи НД Table1, и  если нет, то процедура выдает соответствующее  сообщение и завершается.

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

При выполнении метода Edit непосредственно перед  переводом НД в режим редактирования возникает событие BeforeEdit, которое  можно использовать для проверки возможности перехода в этот режим. Например, при попытке пользователя редактировать запись ему может  быть предложено подтвердить свои действия:

База данных комплектующих персональных компьютеров