КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Для чего нужны информационные системы?
2. Виды ИС.
3. Что такое подсистема?
1. Принципы организации иерархической БД 2. Принципы организации сетевой БД 3. Принципы организации реляционной БД 4. Понятия: отношения, кортеж, атрибут
1. Какие разновидности архитектур баз данных вам известны? 2. Есть ли кардинальные различия с точки зрения архитектуры между однопользовательской архитектурой и архитектурой "файл-сервер"? 3. Архитектура "файл-сервер" неэффективна, по крайней мере, в двух отношениях, каких? 4. Функциями приложения-клиента являются… 5. Трёхуровневая архитектура, синоним трёхзвенная архитектура (англ. three-tier или Multitier architecture) предполагает наличие следующих компонентов приложения, каких?
1. На какие стадии делится процесс создания АИС?
2. Какие документы разрабатываются в процессе создания АИС?
3. Что входит в состав технического проекта?
Задание 1. Создание таблицы «Водители»
1.1. Запустить MS Access 2007 (Пуск/Программы/MS Office/ MS Access 2007);
1.2. Создать новую БД «Грузоперевозки»;
1.3. Создать таблицу «Водители» рис 1
Вкладка «Создание», «Конструктор таблиц»
1.3.1. Для поля код_водителя задать признак первичного ключа (ПКМ / Ключевое поле)
1.3.2. Остальные поля оставляем текстовыми
1.4. Создать таблицу «Справочник Улиц» рис 2
1.5. Создать таблицу «СправочникМарокАвтомобилей» рис 3
1.6. Создать таблицу «СправочникНомАвто»
1.7. Создать таблицу «Автомобили» рис 5
Рисунок 5 Создание таблицы «Автомобили»
1.8. Создать Справочники для таблицы «Автомобили» по образцу:
Справочники необходимо создать для полей, значения которых, для разных типов автомобилей, могут повторяться, например: цвет, марка, модель и т.д.
В итоге должны появиться таблицы:
1.9. «СправЦветов»
1.10. «СправМарок»
1.11. «СправМоделей»
1.12. «СправОбъемКузова»
1.13. «СправКомпоновка»
1.14. «СправПроизводитель»
1.15. «СправГодВыпуска»
1.16. «СправТипТоплива»
1.17. «СправМаксМощность»
1.18. Создать таблицу «Грузы»
Для выполнения задания использовать информацию из лекционного материала.
2. КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Что такое БД?
2. Сто такое СУБД?
3. Понятие ключевого поля.
Задание 1. Создать связь между полями основных таблиц (Водители, Автомобили, Грузы) и таблиц справочников по образцу:
1.1. Открыть таблицу «Автомобили» в режиме конструктора
1.2. В поле «Марка» установить тип данных «Мастер подстановок»
1.3. Согласно иллюстрациям установить значения
Аналогичным образом установить связи со справочниками для полей:
Марка
Цвет
ОбъемДвигателя
ТипКузова
Компоновка
Производитель
ГодВыпуска
ТипТоплива
Максимальная мощность двигателя
Водитель
2.1. Открыть таблицу «Водители» в режиме конструктора – установить связи
Поле Улица – таб. «Справочник улиц», поле «наименование»
2.2. Таблица «Грузы»
Поля:
Автомобиль – таб. «Автомобили», поле «код_автомобиля»
Улица – таб. «Справочник улиц», поле «наименование»
2. КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Виды связей. Перечислить. Пояснить.
2. Перечислите типы данных. Для чего необходимо указывать тот или иной тип данных?
Задание 1. Создать связь между полями основных таблиц (Водители, Автомобили, Грузы) и таблиц справочников. Создать схему данных.
1.1. По выполнении соединения полей таблиц, необходимо составить схему данных и указать параметры соединений. Для этого в MS Access существует вкладка «Работа с базами данных». Кнопка на панели инструментов «Схема данных».
1.2. При первом обращении к этому инструменту открывается пустая схема данных.
1.3. Для того чтобы увидеть все созданные таблицы необходимо ПКМ в контекстном меню выбрать команду «Отобразить все»
1.4. Отобразятся все созданные вами таблицы и связи между ними.
1.5. Далее необходимо указать мощность для всех связей. Для этого нужно ПКМ щелкнуть на линии связи (либо двойной щелчок) и выбрать команду «Изменить связь».
1.6. Затем в появившемся диалоговом окне поставить галочки. Кнопка ОК.
В результате схема данных должна выглядеть как на рисунке 1.6.
2. КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Как изменить связь таблиц?
2. Как добавить в схему данных отсутствующую таблицу?
3. Что такое сущность?
4. Что такое атрибут сущности?
5. Раскройте понятие «Предметная область».
1.1. Для того чтобы внести данные в БД сначала необходимо заполнить все справочники.
Аналогичным образом внесите данные в другие справочники:
1. СправочникМарокАвтомобилей
2. СправочникНомАвто
3. СправЦветов
4. СправМарок
5. СправМоделей
6. СправОбъемов
7. СправКузовов
8. СправКомпоновка
9. СправПроизводитель
10. СправГодВыпуска
11. СправТипТоплива
12. СправМаксМощность
После того как все справочники будут заполнены можно приступать к заполнению основных таблиц (Автомобили, Водители, Грузы).
2. КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Что за информация содержится в справочниках
2. Чем отличаются основные таблицы «Автомобили», «Водители» и «Грузы» от таблиц справочников.
3. Понятие ключей. Первичный ключ. Внешний ключ.
1. Создать запрос выводящий сведения о всех грузах предприятия.
2. Создать запрос с параметром. В результате выполнения запроса должны отобразиться данные о грузах находящихся «ВРаботе».
3. Создать запрос с параметром. В результате выполнения запроса должны отобразиться данные о доставленных грузах.
1. Создание запроса «Все грузы»
1. Вкладка Создание\Конструктор запросов.
2. Добавить таблицы «Водители», «Автомобили», «Грузы»
3. Переместить необходимые поля из таблиц (двойной щелчек).
Поля: водитель, наименование груза, вес, стоимость, улица, дом, кв, Вработе, доставлено, автомобиль.
4. Нажать кнопку «Выполнить»
5. Результат выполнения запроса:
2. Создание запроса «ГрузыВРаботе»
1. Создание\Конструктор запросов
2. Добавить таблицы («Автомобили», «Водители», «Грузы»).
3. Добавить необходимые поля (Наименование груза, вес, стоимость, ВРаботе….см рисунок 5.)
В поле ВРаботе\условие отбор значение поставить в true. Теперь при выполнении запроса
3. Запрос «ГрузыДоставленные»создайте самостоятельно по образцу.
Вопросы:
1. Для чего необходимы запросы?
2. С помощью каких инструментов можно создать запрос?
3. В каких режимах работает запрос?
1. Запустите приложение Microsoft Access.
ПРИМЕЧАНИЕ. Версия MS Access может быть любой, но сохранять БД необходимо в формате
до MS Access 2003 включительно (т.е. должен получится файл с расширением «mdb»).
2. Создайте новую таблицу в режиме «Конструктор». Задайте следующую структуру таблицы
(рис.1-2):
− поле «КодГруппы», тип: счетчик, первичный ключ;
− поле «НазваниеГруппы», тип: текстовый, длина: 20, обязательное, индексированное.
3. Сохраните таблицу под именем «Группы»
4. Аналогичным образом создайте таблицу «Улицы» со следующей структурой:
− поле «КодУлицы», тип: счетчик, первичный ключ;
− поле «НазваниеУлицы», тип: текстовый, длина: 40, обязательное, индексированное.
5. Основная таблица «Студенты» имеет следующую структуру:
− поле «КодСтудента», тип: счетчик, первичный ключ;
− поле «Фамилия», тип: текстовый, длина: 20, обязательное, индексированное;
− поле «Имя», тип: текстовый, длина: 15, обязательное, индексированное;
− поле «КодУлицы», тип: длинное целое, создается с помощью мастера подстановки;
− поле «НомерДома», тип: целое, обязательное;
− поле «НомерКвартиры», тип: целое;
− поле «КодГруппы», тип: длинное целое, создается с помощью мастера подстановки;
− поле «Комментарий», тип: текстовый, длина: 250.
6. Откройте окно «Схема данных», для всех связей включите механизм «Обеспечение
целостности данных» и активизируйте режим «Каскадное обновление связанных полей».
Итоговый результат приведен на рис.3:
7. Сохраните БД под именем «Студенты.mdb»
Лабораторная работа №2. Подключение БД к приложению
Приложение для работы с БД будет создаваться в среде Delphi v7.2 Second Edition. В других
версиях задача решается аналогичным образом.
ПРИМЕЧАНИЕ. В последних версиях Delphi название технологии «ADO» было изменено на
«dbGo».
1. Запустите среду разработки Delphi. При этом автоматически будет создан новый проект.
Добавьте в него модуль данных: File New Data Module. Имя модуля «DataModule1» можно
оставить без изменения.
2. Разместите в модуле данных компонент TADOConnection (отвечает за соединение с базой
данных) с вкладки ADO палитры компонентов (рис.4). Т.к. компонент данного типа будет в
приложении единственным, ему можно оставить имя без изменения: «ADOConnection1».
Рисунок 4. Компонент «TADOConnection»
3. В инспекторе объектов найдите свойство ConnectionString компонента TADOConnection
(рис.5) и вызовите диалоговое окно создания строки соединения.
Рисунок 5. Свойство «ConnectionString»
4. В диалоговом окне нажмите кнопку Build…, которая запускает мастер построения строки
соединения. На первом шаге мастера выберите в списке Поставщики OLE DB элемент Microsoft
Jet 4.0 OLE DB Provider и нажмите кнопку Далее>>.
5. На следующем шаге укажите имя БД «Студенты.mdb» и нажмите кнопку Проверить
подключение. При этом на экране должно появится сообщение Проверка подключения
выполнена. В противном случае необходимо исправить неправильно указанные драйвер БД
и/или имя БД и путь к ней.
6. Закройте окно мастера построения строки соединения, затем окно создания строки
соединения.
7. Значение свойства LoginPrompt компонента TADOConnection измените на False, иначе при
каждом подключении к БД будет происходить запрос имени пользователя и пароля.
На этом этап создания соединения приложения с БД завершен.
ПРИМЕЧАНИЕ. Если при указании имени БД было использовано стандартное диалоговое окно
открытия файла, то в строку соединения помещено абсолютное имя файла БД. При переносе
проекта в другую папку и/или на другой компьютер база данных станет недоступна.
Рекомендуется отредактировать строку соединения «вручную», заменив имя файла БД на
относительное.
8. Разместите в модуле данных компонент типа TADOTable. Измените следующие его свойства:
− Name: tblGroups;
− Connection: ADOConnection1;
− TableName: Группы;
− Active: True.
9. Вызовите редактор полей компонента «tblGroups» через его контекстное меню (рис.6).
10. В окне редактора полей выполните команду AddAllFields контекстного меню (рис.7).
11. Для поля «КодГруппы» измените значение свойства Visible на False. Для поля
«НазваниеГруппы» измените значение свойства DisplayLabel на «Название группы» и значение
свойства DisplayWidth на «10».
12. В модуле данных разместите компонент TDataSource (вкладка Data Access). Измените его
свойства:
− Name: dsrGroups;
− DataSet: tblGroups.
13. Аналогично создайте и настройте два компонента для связи приложения с таблицей
«Улицы» (рис.8).
14. Для таблицы «Студенты» процесс будет отличаться только настройкой полей компонента
TADOTable. Поля «КодСтудента», «КодУлицы» и «КодГруппы» сделайте не отображаемыми
(«невидимыми»).
15. Создайте поле подстановки для внешнего ключа «КодУлицы». В контекстном меню
редактора полей вызовите команду New Field… (рис.9).
16. В диалоговом окне создания нового поля заполните значения в соответствии с рис.10
17. Переместите созданное поле в редакторе полей на нужное место.
Рисунок 11. Окончательный вид редактора полей компонента «tblStudents»
19. Для всех отображаемых полей, включая поля подстановки, настройте свойства DisplayLabel
и DisplayWidth.
На этом создание и настройка компонентов для связи приложения с БД закончены.
Окончательный вид модуля данных приведен на рис.12.
1. Создайте новую форму: File New Form. Измените следующие свойства:
− Name: frmGroups;
− Caption: Справочник «Группы».
2. Разместите на форме компонент Panel. Свойства:
− Caption: ‘’ (пустая строка);
− Align: alRight;
− BevelOuter: bvNone.
3. На панели в нижней части разместите кнопку.
− Name: btnClose;
− Caption: Закрыть;
− группа свойств Anchors:
akLeft: False;
akTop: False;
akRight: True;
akBottom: True.
Код обработчика нажатия на кнопку задайте следующий:
procedure TfrmGroup.btnCloseClick(Sender: TObject);
begin
frmGroup.Close
end;
4. На форму вне панели поместите компонент DBGrid (вкладка Data Controls). Свойства:
− Name: dbgrGroup;
− Align: alClient;
− TabOrder: 0.
5. Для того, чтобы компоненты, размещенные на данной форме, могли обращаться к
компонентам из модуля данных, выполните команду File Use Unit… и в списке выберите имя,
которое вы задали модулю данных при сохранении. Затем нажмите кнопку OK.
6. Поместите на панель (вверху) кнопку для удаления записей из таблицы.
− Name: btnDelete;
− Caption: Удалить.
Код:
procedure TfrmGroup.btnDeleteClick(Sender: TObject);
begin
DataModule1.tblGroups.Delete
end;
7. Следующий шаг – кнопка для добавления записей в таблицу.
− Name: btnAdd;
− Caption: Добавить.
procedure TfrmGroup.btnAddClick(Sender: TObject);
begin
DataModule1.tblGroups.Append;
dbgrGroup.SetFocus
end;
Задание для самостоятельного выполнения. Доработать приложение
− создайте форму для работы с таблицей «Улицы»;
− создайте форму для работы со списком студентов; кроме стандартных операций
(добавление, удаление, редактирование) и вызова форм справочников предусмотреть
возможность поиска по фамилии.
1. Откройте проект Delphi, созданный при выполнении лабораторной работы №4. В нем имеется модуль данных и одна форма, на которой отображаются данные из таблицы БД.
2. Разместите на панели в верхней части формы компоненты Label1 (TLabel), Edit1 (TEdit), Label2 (TLabel), Button1 (TButton) так же, как на рисунке. Все эти компоненты находятся в категории Standard палитры компонентов Delphi. Измените свойство Caption компонентов Label и Button в соответствии с приведенным примером, свойство Text компонентов Edit очистите.
3. Для события OnClick компонента Button1 прописываем следующий код:
procedure TForm1.Button1Click(Sender: TObject);
var
OldF, NewF: string;
begin
// Проверка наличия исходных данных
if (Edit1.Text='') or (Edit2.Text='') then begin
ShowMessage('Надо заполнить все поля!'); // Сообщение на экран
Exit // Выход из процедуры
end;
// Поиск записи с заданной фамилией
if DataModule2.ADOTable1.Locate('Фамилия',Edit1.Text,[]) then begin
// Такая запись найдена, теперь она является текущей
OldF := DataModule2.ADOTable1.FieldValues['Фамилия']; // Запоминаем текущую фамилию
DataModule2.ADOTable1.Edit; // Переводим запись в режим редактирования
DataModule2.ADOTable1.FieldValues['Фамилия'] := Edit2.Text; // Изменяем значение поля
DataModule2.ADOTable1.Post; // Сохраняем изменения
NewF := DataModule2.ADOTable1.FieldValues['Фамилия']; // Запоминаем текущую фамилию
ShowMessage('Фамилия '+OldF+' изменена на '+NewF)
end
else begin
// Такая запись не найдена, создаем новую
DataModule2.ADOTable1.Append;
// Новая запись становится текущей и
// автоматически переводится в режим редактирования
//
// Заполняем необходимые поля
DataModule2.ADOTable1.FieldValues['Фамилия'] := Edit1.Text;
// ВНИМАНИЕ! Поле типа "Счетчик" заполняется автоматически
// ВНИМАНИЕ! Запись не будет сохранена, пока не будут заполнены
// все поля, помеченные как "Обязательное для заполнения"
//
// Сохраняем изменения
DataModule2.ADOTable1.Post
end;
end;
Комментариев нет:
Отправить комментарий