Федеральное государственное образовательное учреждение
высшего профессионального образования
«Чувашский государственный университет имени И.Н.Ульянова»
А.П. Дим
итриев
П.В.
Базы данных
Методические указания к лабораторным работам
Чебоксары 2011
УДК 004.451 Составитель: А.П. Димитриев
ББК 32.81я73
Ж55 Базы данных: Метод. указания к лабораторным работам / А. П. Димитриев; Чуваш. ун-т. Чебоксары, 2011. 36 с.
Составлены в соответствии с государственным образовательным стандартом высшего профессионального образования направления подготовки дипломированного специалиста 230100- Информатика и вычислительная техника специальности 230102 - Автоматизированные системы обработки информации и управления, утвержденным 27.03.2000 (регистрационный номер 224 тех/дс) и веденным с 1 сентября 2000.
Содержат варианты заданий для лабораторных работ. Рассматривается работа с базами данных в Microsoft Access, Borland Delphi и Cache.
Для студентов IV курса дневного обучения специальности 230102 – Автоматизированные системы обработки информации и управления.
Утверждено Методическим советом университета
Отв. редактор: канд. физ.-мат. наук доцент А.Л. Михайлов
Общие сведения
По стандарту, специалист по компьютерным технологиям должен решать задачи проектирования баз данных, владеть основными методами, способами и средствами хранения и переработки информации, иметь навыки работы с компьютером как средством управления информацией. Далее, студент должен знать базы данных и системы управления базами данных (СУБД) для информационных систем различного назначения.
Первые три лабораторные работы
выполняются в Microsoft Access. Он демонстрирует возможности современных СУБД. Вначале приобретаются простейшие навыки работы с ним, затем некоторые дополнительные. Следующая лабораторная работа выполняется в Borland Delphi, которая позволяет создавать самостоятельные приложения для работы с базой данных, пригодные для дипломных проектов. Последние четыре лабораторные работы делаются в Cache - постреляционной объектно-ориентированной СУБД, которая использовалась на Чебоксарском предприятии «Текстильмаш».
Реляционные базы данных
Лабораторная работа 1
Основы работы с Microsoft Access
Задание
. Использовать для базы данных предметную область по варианту, дополненную несколькими связанными таблицами произвольного содержания.
1. Создать базу данных (БД) с помощью шаблона.
Как это сделать:
После запуска программы Microsoft Access шаблоны доступны справа экрана. В версии 2003 надо выбрать пункт «Создать файл», потом во вкладке «Шаблоны» - «На моем компьютере». Появится окно «Шаблоны», где выбирается вкладка «Базы данных». В зависимости от предметной области по варианту выбрать одно из названий БД: «Контакты», «Мероприятия» и др. Например, для предметной области «Студенты факультета» это «Контакты», так как там имеется фамилия, имя. Нажать кнопку «ОК», затем появится окно, где можно указать имя создаваемого файла. Выберите папку и введите имя файла, где будет сохраняться база. В следующем окне нажмите «Далее». То, что появится для шаблона «Контакты», показано на рис. 1. Здесь поставьте галочки против тех полей, которые перечислены в варианте, а если таких нет, наиболее соответствующих. Например, «биография» соответствует полю «заметки». В следующих двух окнах выберите вид оформления экрана и отчета, например, стандартный и деловой. Потом задайте произвольное название БД и нажмите «Готово». Через некоторое время запустится форма, и с БД можно работать.
2. Изменить набор полей и таблиц (добавить, переименовать для своего варианта).
Как это сделать:
После создания или открытия БД будет видно такое окно:
В нем выберите «Таблицы» и среди таблиц ту, в которой меняется набор полей. Например, «Контакты». Затем нажмите кнопку «Конструктор», или щелкните по названию таблицы правой клавишей мыши (ПКМ) и выберите «Конструктор». Появится список полей таблицы, где указаны их имена, типы и др. информация. Здесь поменяйте имена полей на нужные по варианту, лишние удалите. Для удаления щелкните ПКМ слева от имени поля. Чтобы добавить поле, впишите в конец списка его название, справа выберите тип (текстовый, числовой и т.д.). В конце закройте окно со списком с сохранением изменений. Для создания таблицы выберите пункт «Создание таблицы с помощью мастера» (рис. 2). Далее следуйте указаниям мастера создания таблиц: выберите из списка поля, задайте имя таблицы (связи можно не создавать) и нажмите «Готово».
3. Заполнить все таблицы БД 15 записями со всеми полями.
Как это сделать:
Выберите то же окно (см. рис. п.2) и дважды щелкните на имени таблицы, куда будут вводиться данные. В поле «Счетчик» данные вводятся автоматически, вручную в него вводить нельзя. В другие поля вводите данные с клавиатуры или копируйте из заранее имеющегося текста. Нельзя вводить буквы в числовые поля. Некоторые поля могут иметь большой объем, например, биография. Для таких полей используют тип МЕМО. Чтобы ввести несколько строк в такое поле, растяните вниз строку слева мышью и для ввода с новой строки нажимайте «Ctrl»+ «Enter», потом набирайте текст, и так несколько раз.
4. Создать свою форму ввода с помощью мастера, содержащую поля, метки и кнопки для перехода по записям.
Как это сд
елать:
Перечисленные элементы находятся в «Вид», «Панель элементов». Для создания формы выберите окно (рис. 2) и нажмите «Формы». Затем выберите «Создание формы с помощью мастера» и следуйте указаниям мастера (рис. 3). А именно, выберите таблицу, куда форма будет вводить данные, и поля этой таблицы. Для выбора поля выделите его мышью и нажмите кнопку «стрелка вправо» (знак «больше»), при этом имя поля будет перенесено из левого в правый список. Для обратного переноса нажмите кнопку «стрелка влево». Для выбора всех полей нажмите кнопку «две стрелки вправо». В следующем окне выберите внешний вид формы, например, «В один столбец», затем выберите стиль и задайте имя формы. После нажатия «Готово» можно будет вводить данные с этой формой. Она уже содержит поля, метки и кнопки для перехода по записям.
Изменить формы для ввода (шрифт, размер).
Как это сд
елать:
Для изменения формы выберите окно (см. рис. 2) и нажмите «Формы». Затем выберите имя изменяемой формы и нажмите «Конструктор». Потом выберите (обязательно однократным щелчком мыши) тот элемент, шрифт и размер которого нужно изменить, например, метку «Имя». В панели инструментов «Формат» выберите другие название и размер шрифта, например, вместо «MS Sans Serif 8» - «Times New Roman 10».
Создать запрос с помощью мастера.
Как это сд
елать:
Для создания запроса выберите окно (см. рис. .2) и нажмите «Запросы». Затем выберите «Создание запроса с помощью мастера». Потом следуйте указаниям мастера (рис. 3). А именно, выберите таблицу, откуда запрос будет брать данные, и поля этой таблицы. Задайте имя запроса и нажмите «Готово».
7. Создать отчет с помощью мастера, берущий данные из созданного запроса, проверить работу.
Как это сд
елать:
Для создания отчета выберите окно (см. рис. 2) и нажмите «Отчеты». Затем выберите «Создание отчета с помощью мастера». Потом следуйте указаниям мастера (рис. 3). А именно, выберите запрос (не таблицу), откуда отчет будет брать данные, и поля этого запроса. Если это необходимо, задайте порядок сортировки, выберите вид макета для отчета, стиль и задайте имя отчета. Нажмите «Готово».
Создать новые связи между таблицами.
Как это сделать:
Для этого нужно, чтобы две таблицы имели индексное поле, и связь нужно сделать по этим двум полям. Чтобы сделать поле индексным, в конструкторе таблиц выберите поле, затем внизу напротив «Индексированное поле» выберите «Да». Поле первой таблицы сделайте ключевым, для него «Совпадения не допускаются», а для поля второй таблицы выберите «Совпадения допускаются». Для создания связи используется схема данных, появляющаяся при нажатии на ПКМ в пустой области около таблиц (см. рис. 2). С помощью мыши перенесите название поля в одной таблицы на название поля в другой таблице. Microsoft Access нарисует стрелку, означающую связь. В итоге при открытии таблицы слева становятся видны знаки «+», при нажатии на которые выводятся записи из связанной таблицы, где индексное поле имеет такое же значение.
9. Сортировать (расположить по алфавиту) и фильтровать записи. Фильтрование приводит к тому, что на экран выводятся не все записи, например, только имеющие фамилию «Иванов».
Как это сд
елать:
Для сортировки по алфавиту откройте таблицу. Потом нажмите в панели «Таблица» кнопку «А->Я», а для обратного порядка - «Я->А». Для фильтрования нажмите ПКМ на одной из ячеек и выберите в контекстном меню «Фильтр по выделенному».
Варианты предметной области:
1. Студенты факультета (фамилия, имя, отчество, год рождения, пол, группа, биография).
2. Преподаватели факультета (фамилия, имя, отчество, год рождения, адрес, телефон, предмет, должность, биография).
3. Сотрудники факультета (фамилия, имя, отчество, год рождения, должность, оклад, место работы, биография).
4. Книги для факультета (название, автор, объем, место хранения, год выпуска, реферат).
5. Лабораторное оборудование (наименование, стоимость, место установки, год выпуска, руководство по эксплуатации).
6. Компьютерные файлы (путь с именем, размер, описание, дата создания, содержимое первой страницы).
7. Рабочие программы преподавателей (предмет, автор, текст программы – до 10 страниц).
8. Зарегистрированные в поликлинике (фамилия, имя, отчество, год рождения, должность, диагноз, дата регистрации, лечащий врач, история болезни).
9. Успеваемость на факультете (фамилия, имя, отчество, группа, список предметов и оценок за все время обучения).
10. Заявления (фамилия, имя, отчество, должность, текст заявления – до 1 страницы, дата).
11. Абитуриенты (фамилия, имя, отчество, специальность, оценки по экзаменам, биография).
12. Публикации преподавателей (фамилия, имя, отчество, наименование, объем, год издания, преподаваемый предмет, реферат).
13. Контрактники (фамилия, имя, отчество, специальность, год контракта, сумма, текст контракта).
14. Выпускники (фамилия, имя, отчество, год выпуска, успеваемость, место работы, характеристика).
Итоги работы (фамилия, имя, отчество, список должностей с указанием дат приема и увольнения, номер паспорта).
Контрольные вопросы
. Для чего нужна форма? Что из себя представляет отчет? Какие Access предлагает шаблоны? Какие существуют в Access типы полей?
Список рекомендуемой литературы
1. П. Нортон. Разработка приложений в AccessÒ 97 в подлиннике: Пер. с англ. / Нортон П., Андерсен В. – СПб.: BHV – Санкт-Петербург, 2000.– 656 с.
Лабораторная работа 2
Microsoft Access
Теория
. Пояснения к пунктам задания.
1. Имеется множество СУБД, и разные пользователи предпочитают работать в различных системах, например, в бесплатной MySQL. Некоторые действия легче выполнить в Microsoft Access, а другие в привычной для пользователя системе. Экспорт и импорт позволяют обмениваться данными между различными СУБД.
2. Поле со списком позволяет выбрать данные из заранее составленного списка, чтобы для каждой записи не вводить эти строки вручную. Поиск данных в базе – одна из важнейших функций любой СУБД, а индексирование ускоряет поиск. Вычисляемые поля позволяют не хранить лишние данные, если их получение на основе имеющихся данных однозначно и не замедляет существенно работу.
3. В Microsoft Access используется язык программирования Visual Basic, позволяющий выполнять сложную обработку данных. Выполнение п. 3 дает простейшие навыки работы с этим языком, которые затем могут пригодиться и для работы с Cache при создании клиент-серверного приложения.
4. Пароль БД – один из уровней защиты информации Microsoft Access. Он не позволяет лицам, не знающим пароль, работать с этой БД в Access, однако сами данные легко могут быть считаны в текстовом редакторе.
Задание
.
Выполнить для заполненной таблицы (по вариантам, см. лабораторную работу 1) экспорт, затем импорт в следующих форматах: HTML, ASP (Active Server Pages, только экспорт), TXT, dBase IV, Excel. При этом необходимо сохранять названия столбцов и следить за сохранением типов данных. Просмотрите полученные файлы.
Как это сд
елать:
Для экспорта выделите имя таблицы, из меню «Файл» выберите «Экспорт», укажите папку, имя файла и тип файла, т.е. формат. Галочку «сохранить формат» ставьте для Excel и HTML. Для текстового файла (ТХТ) выберите «С разделителями», укажите разделитель, которого заведомо не может быть в данных таблицы, например, «@». Результат экспорта для dBase просматривает Database Desktop из группы Borland Delphi 7 или Borland C++ Builder 6. Чтобы сделать импорт, откройте или создайте БД, в меню «Файл» выберите «Внешние данные», «Импорт». Укажите папку, имя и тип файла.
Создать поле со списком на форме. Проверить работу поля со списком. Создать на форме кнопку для поиска в индексированной БД. Проверить работу, и что БД индексированная (в конструкторе таблиц). Создать вычисляемое поле Запустить полученный запрос.
Как это сделать:
Для создания поля со списком в конструкторе форм выбрать из панели элементов «Поле со списком» и далее «отвечать» на вопросы Microsoft Access. Если нет панели элементов, выбрать ее в меню «Вид». В этой же панели и кнопка (для поиска выбрать «Найти запись» в предлагаемом списке). Для создания вычисляемого поля в конструкторе запросов изменять заголовок столбца, например, заголовок первого+1, причем первый столбец должен ссылаться на числовое поле.
3. Присвоить значений переменной и константе.
Как это сд
елать:
Для этого перейти в Visual Basic изменением процедуры в свойствах кнопки в конструкторе форм (нажав ПКМ на кнопке и выбрав «Обработка событий». Например, можно написать «х = 0», с новой строки «соnst y=0».
Задать пароль БД и проверить его работу.
Как это сд
елать:
При открытии файла БД рядом с кнопкой «Открыть» появляется стрелка вниз, на которую нужно нажать. В списке выберите «Монопольно». В меню «Сервис» выбрать «Защита», «Задать пароль БД» (рис. 4). Введите пароль и подтверждение, и при следующем открытии БД Microsoft Access спросит пароль.
5. Организовать совместную работу в сети над одной таблицей БД.
Как это сд
елать:
Допустим, имя компьютера – «201-8». Это можно узнать, введя команду ipconfig /all в командной строке. Создайте папку с общим доступом (например, для папки d:1 с именем общего ресурса «1») и разрешите изменения по сети (чтение и запись). Запустите Access, создайте БД, например с именем bd2.mdb, сохранив в d:1. Заполните двумя записями. Создайте страницу доступа к данным с помощью мастера. Закройте ее, сохранив локально в d:1 с именем, например, s.htm. Нажмите на страницу ПКМ, выберите «Свойства» и замените локальный путь на путь UNC (201-81s.htm). Откройте html-страницу в папке с общим доступом в редакторе (например, FAR), найдите путь к БД Access (выполнив поиск «bd2»), замените на 201-81s.htm, сохраните. Закройте БД в Access. Откройте s.htm через Internet Explorer сразу на двух компьютерах локальной сети. Заполните одновременно на обоих компьютерах новыми записями и проверьте, видны ли изменения с другого компьютера. Закройте Internet Explorer на обоих компьютерах, заново откройте и посмотрите на изменения.
Контрольные вопросы. Какие форматы Microsoft Access предлагает для импорта? Какие форматы Microsoft Access предлагает для экспорта? Какие элементы могут быть на форме в Access? Какие слова употребляются в Visual Basic?
Список рекомендуемой литературы
1. П. Нортон. Разработка приложений в AccessÒ 97 в подлиннике: Пер. с англ. / Нортон П., Андерсен В. – СПб.: BHV – Санкт-Петербург, 2000.– 656 с.
Лабораторная работа 3
Язык SQL в Microsoft Access
Теория.
Запросы Access позволяют автоматически выполнять некоторые действия с таблицами и данными в них, не зная языка Visual Basic (они автоматически формируются на SQL). Язык SQL – универсальный язык работы с БД, используемый во многих СУБД. В данной лабораторной работе предполагается знакомство с этим языком.
Задание
. Просмотрите программы SQL для всех запросов (см. далее). Для просмотра программы SQL в меню Вид выберите команду Режим SQL. Выполните следующие запросы для таблиц по вариантам (см. работу 1):
1. Перекрестные запросы. В итоге видна таблица, столбцы которой имеют названия, взятые из одного из столбцов таблицы.
Как это сделать:
Создайте запрос. Перейдите в конструктор запросов. В меню «Запрос» выберите «Перекрестный». Напротив слева в списке «Перекрестная таблица» для одного из полей выберите «Заголовки строк», для другого «Заголовки столбцов», для третьего «Значение», а вместо групповой операции «Группировка» - «Sum». Причем третье поле должно быть числового типа. Для запуска запроса нажимайте кнопку «красный !» или в меню «Запрос» выберите «Запуск». Либо закройте конструктор запросов с сохранением и дважды нажмите имя запроса.
2. Запросы с параметрами. Параметры вводятся при запуске запроса.
Как это сделать:
Создайте запрос. Перейдите в конструктор запросов. В заголовке столбцов запроса указывается действие с полем с использованием квадратных скобок. Например, если поле называлось «сумма», выражение будет [сумма]+[1], где «1» - название параметра.
3. Запросы на суммирование. Суммируются значения числового поля для записей с одинаковыми значениями в полях, имеющих групповую операцию «группировка». Например, можно суммировать объем для Ивановых.
Как это сделать:
Создайте запрос. Перейдите в конструктор запросов. Групповая операция числового поля устанавливается в «Sum».
Запросы на выполнение:
4.1. Запросы на обновление. Например, к фамилии добавляется строка «а!», или сумма умножается на 0,13.
Как это сделать:
В конструкторе запросов в меню «Запрос» выбрать «Обновление». Далее, если поле называлось «сумма», записать «[сумма]*0,13» напротив «Обновление».
4.2. Запросы на добавление записей
Как это сделать:
В конструкторе запросов в меню «Запрос» выбрать «Добавление». Затем выбрать таблицу, куда будут добавляться записи. Установить условие отбора, например, чтобы добавлялись не все, а у кого сумма больше 100, т.е. для поля «сумма» вписать «>100».
4.3. Запросы на удаление. Удаление производится по условию, например, для суммы меньше 100 (если в таблице такие были).
Как это сделать:
Выполняется аналогично п.4.2., вместо «Добавление» - «Удаление».
4.4. Запросы на создание таблицы.
Как это сделать:
Выполняется аналогично п.4.2., вместо «Добавление» - «Создание таблицы». Затем задается имя создаваемой таблицы, условие отбора.
Контрольные вопросы. Какие слова употребляются в языке SQL? В чем отличие вида SQL для запроса на добавление и запроса на суммирование? Какой из созданных в лабораторной работе запросов больше по объему текста? Что содержит запрос (в виде SQL) – результат п. 4.1?
Список рекомендуемой литературы
1. П. Нортон. Разработка приложений в AccessÒ 97 в подлиннике: Пер. с англ. / Нортон П., Андерсен В. – СПб.: BHV – Санкт-Петербург, 2000.– 656 с.
2. Базы данных: учебное пособие / под ред. Хомоненко. М.: 2001 г.
Лабораторная работа 4
Базы данных и SQL в Delphi
Теория.
В работе рассмотрено создание БД из текста, обращение в Borland Delphi к таблице базы данных для чтения с помощью запроса SQL, программирование поиска данных, вывод на экран в виде таблицы и использование зашифрованной таблицы. Те же действия могут быть взамен выполнены в Borland C++ Builder.
Задание
. Выполните все последующее.
Создайте базу данных формата DBF с индексным файлом MDX, в Access, содержащую не менее 5000 записей с русскими или английскими словами и не менее двух полей.
Как это сделать:
Например, в Microsoft Word в данном тексте заменить (автоматически) пробелы на концы строк, сохранить как текст, импортировать в Access с фиксированной шириной полей, сделать индекс, экспортировать.
Создайте модуль данных в Delphi.
Как это сделать:
Запустите Delphi, создайте новый проект, в меню выберите последовательно «File», «New (Create)», «Data Module».
Для события модуля OnCreate установите процедуру DateModuleCreate.
Как это сделать:
Сделайте видимым окно Инспектора объектов (нажимая F11), выберите в нем вкладку «Events», введите имя процедуры напротив OnCreate, нажмите Enter.
Пример текста процедуры:
Session.ConfigMode := cmSession;
try Session.AddStandardAlias(‘Words’, 'D:','PARADOX');
// где Words - псевдоним БД, D: - путь к файлам БД
finally Session.ConfigMode := cmAll; end;
Можно изменить пути и псевдонимы, если необходимо. В разделе текста программы «Uses» добавьте DB, DBTables.
Поместите в модуль данных компонент SQL со знаком вопроса (с панели BDE). Выполните запрос SQL, создав сначала форму, выведите результат.
Как это сделать:
Поместите на форму текстовое поле Edit1 и кнопку Button1 со стандартной панели. Дважды щелкните на кнопку и введите в текст программы, например:
var ks:integer;
begin
DataModule2.Query1.Close;
DataModule2.Query1.SQL.Clear;
DataModule2.Query1.SQL.Add('SELECT * FROM ":Words:'+table1.dbf’+'"');
DataModule2.Query1.SQL.Add('WHERE');
DataModule2.Query1.SQL.Add('(OSN LIKE "'+ edit1.text + {'%'+ }'")');
DataModule2.Query1.Open;
ks:=DataModule2.Query1.RecordCount;
if ks>0 then begin
button1.caption:= DataModule2.Query1.Fields[1].AsString; end end;
Здесь таблица, содержащая индексированное поле для поиска – OSN (можно переименовать); table1.dbf – имя файла; псевдоним базы данных – Words; второе поле (Fields), выводимое на кнопку, имеет номер 1, так как нумерация с 0; ks – количество найденных строк, отвечающих условию запроса. При первом запуске программы на вопрос о добавлении в список Use выбрать ответ Yes. Программа ищет в БД введенную в текстовое поле строку, и если находит, выводит результат как надпись на кнопке.
Поместите на форму компоненты DBGrid1 с панели Data Controls, DataSource1 с панели Data Access, Table1 с панели BDE (этот компонент можно, но не обязательно поместить в модуль данных). Свойство TableName компонента Table1 установите в имя имеющегося файла базы данных, например, «d:table1.dbf», свойство Active – True. Выберите из списка свойства DataSet компонента DataSource1 «Table1». Выберите из списка свойства DataSource компонента DBGrid1 «DataSource1». На форме должна отобразиться таблица с данными.
Поместите на форму компонент DBNavigator1 с панели Data Controls. Выберите из списка свойства DataSource этого компонента также «DataSource1». Запустите программу, перемещайтесь по таблице, создавайте и удаляйте записи таблицы с использованием компонента DBNavigator1.
Добавьте на форму кнопку и поле Edt1. Напишите процедуру обработки нажатия кнопки для поиска номера записи с содержимым, вводимым в поле Edt1. Нечетные варианты:
procedure TForm1.btn1Click(Sender: TObject);
var i:Integer; begin i:=0; table1.Open; // открыть таблицу
table1.First; // переход в начало таблицы
while not(table1.eof) do // пока не достигнут конец таблицы
begin i:=i+1; // увеличить номер
if table1.FieldByName('CHRECHISH').AsString=edt1.Text then
// если содержимое поля CHRECHISH равно введенному
ShowMessage(IntToStr(i)); // вывод сообщения о номере
table1.next; // переход на следующую строку таблицы
end; table1.Close; // закрыть таблицу end;
Четные варианты:
procedure TForm1.btn2Click(Sender: TObject);var b:Boolean begin
b:=table1.locate('CHRECHISH',edt1.Text,[]) // имя поля CHRECHISH
table1.edit;//разрешить редактровать запись
Table1.Fields[1].AsString:= Table1.Fields[1].AsString+’1’;//добавить ‘1’
Table1.Post;// внести изменения
end;
Запустите программу и проверьте её работу.
Для шифрования базы данных создайте таблицу формата Paradox 7 (имеющую расширение DB). Для этого запустите Database Desktop (в «Пуск», «Все программы», «Borland Delphi 7» или «Borland C++ Builder 6»). Затем File, New, Table, «ОК». Введите имя поля в столбце «Field Name», тип в «Type» (например, А – символы), размер в «Size», например, 10, можно, но необязательно, сделать его ключевым (Key). В списке «Table Properties» (Свойства таблицы) выберите пароль (Password Security) и нажмите кнопку Define (Определить). В появившемся окне введите пароль и подтверждение, нажмите «ОК». Затем сохраните таблицу, нажав кнопку «Save As» и выбирая папку и вводя имя файла. Откройте полученную таблицу в Database Desktop (выбирая File, Open, Table). В меню выберите Table, Edit Data (редактировать) и введите несколько строк. Закройте таблицу. В Delphi измените свойство TableName компонента Table1 на соответствующее данной таблице, сохраните все и перезапустите Delphi. Загрузите последний проект и после ввода пароля появится содержимое зашифрованной таблицы. Нужен доступ к C: .
Контрольные вопросы.
Какие типы полей предлагает формат Paradox? Какие события могут быть для модуля данных? В чем различия компонентов DBGrid1 и DBNavigator1? Что делает метод Locate языка Delphi, а что ключевое слово SELECT языка SQL (в чем сходства и отличия)?
Список рекомендуемой литературы
1. В. В. Фаронов Программирование баз данных в Delphi 7: Питер / Фаронов В. В. - СПб.: Питер, 2006. - 458с.: ил. - (Учебный курс).
2. В.В. Фаронов Система программирования Delphi. / Фаронов В. В. СПб.: БХВ-Петербург, 2003. 912 с.
ПостРеляционные базы данных
Лабораторная работа 5
Первый пример Cache. Отладчик Caché Studio
Теория
. В данной работе используется постреляционная СУБД Cache для получения простейших навыков работы с этой системой и знакомства с языком программирования Caché Object Script.
Задание
. Рассмотрим в качестве примера простой класс Person. Типичные свойства физического лица – фамилия, имя и дата рождения. Всю техническую работу, связанную с организацией хранения и поиска лиц в БД, мы поручим Cache, кроме того, предусмотрим запрос по выбору физических лиц.
Студия
Теперь, для того чтобы определить этот класс объектов, запустим Студия. Правой кнопкой мыши необходимо щелкнуть по Cache-кубу. Появится перечень ранее определенных соединений с серверами Cache. Выбрав единственное имеющееся соединение Local, щелкните по кнопке Соединиться.
На экране высветится главное окно Студия, демонстрирующее иерархию классов, но пока что пустое.
Создание определения класса
Создание нового класса поддерживается мастером. Щелкните по значку Новый класс. На экране появится Мастер создания классов. Определение нового класса начинается с задания его имени и описания.
Имя класса – Person, сопроводите его кратким описанием (пакет User, используемый по умолчанию, нам вполне подходит, можно не изменять). Если затем вы щелкните по Вперед, то попадете на следующий экран, где устанавливается тип класса.
Выбирайте тип класса Persistent (Хранимый), чтобы Cache обеспечивала автоматическое сохранение и поиск объектов этого класса. Подтвердите решение о завершении работы нажатием на кнопку Закончить. Мастер классов создал новый класс, видимый и в иерархии классов в главном окне Студия.
Создание свойств
Теперь, для того чтобы определить свойства класса, щелкните по значку Новое свойство. Откроется окно определения нового свойства.
Начнем с сохранения свойства – фамилии физического лица. Введите Surname (Фамилия) в поле Имя свойства. Оставьте тип данных %Library.String, а под заголовком Характеристики установите флажок Обязательное: физических лиц без фамилии не бывает. После подтверждения кнопкой ОК будет создано новое свойство. Теперь, действуя аналогичным образом, определите свойства Name (Имя) – однако без характеристики Обязательное – и DateOfBirth (дата рождения) – свойство типа %Library.Date (Дата). Таким образом, определения класса приобретет нужный вид.
Создание запроса
Перейдем к определению нового запроса. Его назначение – осуществлять поиск всех физических лиц, информация о которых занесена в базу данных, с возможностью выбора того или иного лица для обработки данных. Щелчком по значку Новый запрос открывается Мастер запросов.
Для начала запросу следует присвоить имя, назовем его Wybor (выбор) и введем краткое описание. Щелчком по Вперед вы переходите к следующему шагу – определению параметров запроса, который сейчас нам не интересен, и мы минуем его с помощью Вперед. На следующем этапе устанавливаются поля, возвращаемые запросом.
Слева перед вами список всех свойств класса объектов и дополнительное поле ID. Выделите одно за другим поля ID, SurName, Name, DateOfBirth и щелкните по кнопке со значком Стрелка вправо. Тем самым вы перенесете эти поля в правый список выбранных полей. Если вы готовы, щелкните снова по Вперед.
Опустив следующий шаг, когда задается условие запроса, перейдем с помощью кнопки Вперед к выбору последовательности сортировки.
Сортировка выбранных физических лиц должна осуществляться в алфавитном порядке, поэтому из списка под заголовком Упорядочить по выберем поле SurName. Осталось только завершить создание запроса, щелкнув по кнопке Закончить. Теперь в главном окне Студия можно определение класса с тремя свойствами и одним запросом.
Компиляция
Прежде чем появится возможность использования нового класса в Cache, на последнем этапе необходимо провести его компиляцию. Щелкните для этого по кнопке Компил.класс, и через некоторое время вы увидите следующее итоговое сообщение:
Компиляция завершена
На этом определение класса в Студия завершено, и новый класс Person готов к применению.
Отладчик Caché Studio
Отладчик Caché Studio позволяет Вам пошагово выполнять программы запущенные на сервере Caché. Эти программы могут включать в себя файлы INT, MAC, методы внутри файлов CLS, классы CSP соответствующие требованиям HTTP, методы server-side invoked из клиентов Java или ActiveX, или приложения server-hosted.
Вы можете подсоединить отладчик к целевому процессу одним из следующих путей:
· Определяя цель отладки (имя программы или подпрограммы для отладки) для текущего проекта используя Проект > Параметры и затем выбирая Отладка > Старт чтобы стартовать целевую программу и подсоединиться к ее серверному процессу.
· Выбирая Отладка > Подключиться и выбирая запущенный процесс на сервере Caché для которого подключается.
Чтобы видеть файлы исходного кода INT при отладке, разрешите опцию Сохранять сгенерированный исходный код, в диалоге Инструменты > Параметры, Компилятор, вкладке Общие флажки.
Иногда использование отладки командной строки с командой zbreak может дать Вам лучший контроль.
Отладка программы
Следующий пример показывает, как отлаживается программа Caché.
1. Запустите Студию и выберите Файл > Новый проект чтобы создать новый проект называемый Project1.
2. Создайте новую программу (используя Файл > Создать и щелкая Caché ObjectScript Программа.
3. Введите код для этой программы:
MyTest ; MyTest.MACMain() PUBLIC { Set a = 10 For i = 1:1:10 { Set b = i Write b," " }}
4. Сохраните и компилируйте новую программу как MyTest.MAC используя Файл > Сохранить как.
5. Определите цель отладки для проекта выбирая пункт Проект > Параметры > Цель отладки, выбирая Метод класса или программа Caché, и вводя имя точки вхождения в Вашей новой программе, Main^MyTest.
6. Установи
7. Выберите Отладка > Старт для начала отладки. Когда отладчик остановится на Вашей точке разрыва, следующая команда которая будет выполнена выделяется желтым прямоугольником. Файл INT открывается в новом окне (если Вы разрешили параметр Сохранять сгенерированный исходный код, в диалоге Инструменты > Параметры, Компилятор, пункте Общие флажки).
8. Введите b и a в окно Просмотр так чтобы Вы могли видеть значения.
9. Выполняйте пошагово программу повторно выбирая Отладка > Шаг внутрь (F11) и обращайте внимание на изменение значения b.
Остановите отладку пошаговым переходом в конец программы или выбирая Отладка > Стоп.
Контрольные вопросы.
Какие типы данных имеются для свойств Caché? Какие программы предлагает Caché-куб? Какие кнопки находятся в Студии? Какие типы классов предлагает Caché? Какие разделы справки содержатся в Caché?
Список рекомендуемой литературы
1. В. Кирстен. СУБД Cache: Объектно-ориентированная разработка приложений. Учебный курс./ Кирстен В., Ирингер М., Рёриг Б., Шульте П. СПб. – Питер, 2001. 384 с.
Лабораторная работа 6
Создание Web интерфейса пользователя используя CSP[1]
Теория
. Интерфейс пользователя приложения - Web страница содержащая форму HTML, позволяющая Вам редактировать и просматривать данные, для персоны в базе данных. Вы создаете эту Web страницу используя файл CSP который содержит форму (ранее был создан PhoneBook.Person или другой класс).
Задание.
Выполните все последующее.
Создание файла
CSP
Создать файл CSP в Studio используя мастер Web Форм:
1. Создать новый файл CSP выбирая Файл > новый > вкладка CSP Файл > Caché Server Страница.
2. Окно Редактор CSP отображается содержащее источник для новой страницы CSP с заглавием Unititled.csp. Сохранить это используя Файл > Сохранить. В диалоге Сохранить как, двойной-щелчок на /csp/user чтобы открыть эту папку, введите Person.csp, и щелчок Сохранить как.
3. В окне редактора, поместите курсор в <BODY> секции файла CSP источника и выберите Вставить > Мастер Форм.
4. В Web мастере Форм, щелчок Далее.
5. Выберите класс PhoneBook.Person или др.и щелчок Далее.
6. Выберите свойства Имя и PhoneNumber или др. из списка доступных свойств. Они должны появиться в списке Выбранные Свойства.
7. Щелчок Готово.
Studio показывает исходный код HTML для формы в окне Редактора CSP:
("OBJID"))#> <!-- create a javascript function to invoke a search page --> <csp:search name="form_search" classname="PhoneBook.Person" where="%Id()" options="popup,nopredicates" onselect="update"> <form name="form" cspbind="objForm" cspjs="All" onsubmit='return form_validate();'><center><table cellpadding="3"> <tr> <td><b><div align="right">Name:</div></b></td> <td><input type="text" name="Name" cspbind="Name" size=""></td> </tr> <tr> <td><b><div align="right">PhoneNumber:</div></b></td> <td> <input type="text" name="PhoneNumber" cspbind="PhoneNumber" size=""> </td> </tr> <tr> <td> </td> <td> <input type="button" name="btnClear" value="Clear" onclick='form_new();'> <input type="button" name="btnSave" value="Save" onclick='form_save();'> <input type="button" name="btnSearch" value="Search" onclick='form_search();'> </td> </tr></table></center></form></body></html>
Сохранение и компиляция файла
CSP
, просмотр
Web
страницы
Вы можете сохранить изменения и компилировать файл CSP выбирая Build > Компилировать или Ctrl-F7 или значок .
Вы можете просмотреть Web страницу в браузере выбирая Вид> Web Страница или значок (рис. 6).
Введите данные (три элемента), выполните поиск.
Контрольные вопросы.
Какие типы файлов создает Caché? Какие зарезервированные слова используются в исходном коде CSP файла? Что спрашивает мастер Web форм? Перечислите способы компиляции файла CSP и просмотра Web страницы. Какие пункты меню предлагает Студия?
Список рекомендуемой литературы
1. В. Кирстен. СУБД Cache: Объектно-ориентированная разработка приложений. Учебный курс./ Кирстен В., Ирингер М., Рёриг Б., Шульте П. СПб. – Питер, 2001. 384 с.
Лабораторная работа 7
Создание пользовательского интерфейса Web используя Zen
Теория.
Zen поддерживает несколько подходов к Созданию основанных на Web форм, подобных форме CSP (см. выше). Фактически, сходный набор технологий обеспечивает основы как для CSP так и для Zen. Zen делает разработку полнофункциональных Web приложений легче при построении на коммуникационных возможностях клиента-сервера которые обеспечивает CSP.
Задание
. Создать страницу Zen которая может служить как основанный на Web пользовательский интерфейс для проекта, начатого ранее (при созданном классе). Высокоуровневые шаги:
1. Сделать Ваш класс Zen data adaptor.
2. Создать страницу Zen.
3. Добавить форму Zen.
4. Использовать форму для добавления элементов БД.
5. Добавить таблицу Zen для отображения элементов БД.
Создание Вашего класса
Data
Adaptor
Этот шаг использует PhoneBook.Person класс (или другой), который вы разработали для проекта ранее, и преобразует этот класс, чтобы работал как Zen data adaptor. Это не только способ работы с Zen страницами, но это быстрейший способ построения пользовательского интерфейса Zen основанный на существующем классе:
1. Открыть PhoneBook.Person класс.
Видно окно Studio Инспектор. В левой колонке, заголовке, выбрать Класс из выпадающего списка. Алфавитный список ключевых слов класса виден.
2. Найти ключевое слово Super и щелкнуть на нем для выделения. Поле хранит имя класса %Persistent. Эллиптическая кнопка появляется справа этого поля. Щелчок на нем. Это открывает диалог где можно выбрать суперклассы в добавление к %Persistent (рис. 7).
3. В левой колонке диалога, перейти к классу %ZEN.DataModel.Adaptor и выберите его. В центре диалога, щелчок на кнопке >. Имя класса %ZEN.DataModel.Adaptor теперь появится в правой колонке под %Persistent (рис. 8).
4. Щелчок OK.
5. Сохранить и компилировать класс PhoneBook.Person.
Создание страницы
Zen
Этот шаг создает класс страницы Zen который Вы можете редактировать чтобы создать пользовательский интерфейс для Вашего проекта:
1. Выбрать Файл > Новый или Ctrl-N или значок .
2. Выберите вкладку Custom.
3. Щелчок на значке Новая страница Zen.
4. Щелчок OK. Мастер страницы Zen виден (рис. 9).
Рис. 9. Мастер страницы Zen
Редактировать диалог так:
· Введите Имя Package PhoneBook
· Введите Имя Класса ZenPage
· Введите Имя Страницы My Telephone Book
· Щелчок Далее.
5. Мастер приглашает Вас выбрать формат исходной страницы. Щелчок Заголовок страницы. Затем щелчок Готово.
6. Мастер страницы Zen создает и показывает каркасную страницу Zen с предопределенными параметрами класса и блоки XML - XData Style и XData Contents. Вы не нуждаетесь в изучении этого кода подробно, но быть aware расположения XData Contents в классе. Вы будете изменять этот блок XML чтобы добавить пункты в Вашу новую страницу Zen:
XData Contents [XMLNamespace="http://www.intersystems.com/zen"]{ <page xmlns="http://www.intersystems.com/zen" title=""> <html id="title">Title</html> <vgroup width="100%"> <!-- put page contents here --> </vgroup> </page>}
7. Сохранить и компилировать класс выбирая Build > Компилировать или Ctrl-F7 или значок .
8. Просмотрите страницу Web выбирая Вид > Web Страница или значок . В этот раз, единственный пункт виден в браузере - текст «Title», отображенный элементом <html>.
Если Вы проверите блок XData Contents (см. Выше), Вы увидите что элемент <html> имеет атрибут id="title". id="title" указывает на стиль определенный #title который появляется в блоке XData Style в аналогичном классе страницы Zen. #title определяет фоновый цвет, формат, и шрифт чтобы было видно когда смотрите страницу. По умолчанию блок XData Style для Титульной Страницы оформлен так:
XData Style{ <style type="text/css"> /* style for title bar */ #title { background: #C5D6D6; color: black; font-family: Verdana; font-size: 1.5em; font-weight: bold; padding: 5px; border-bottom: 1px solid black; text-align: center; } </style>}
9. Измените текстовое содержимое элемента <html> для более осмысленного заглавия:
<html id="title">My Telephone Book</html>
10.
Сохранить и компилировать класс, тогда видно Web страницу «
My Telephone Book».
Добавление Формы
Zen
Теперь когда Вы имеете класс страницы Zen для работы с ним, вы можете редактировать элементы XML в его блоке XData Contents чтобы добавить пункты для отображения. В этом упражнении, Вы будете начинать добавляя форму которая позволит Вам добавлять объекты PhoneBook.Person для Вашей базы данных:
1. В Studio, открыть класс страницы Zen.
2. Поместить элементы <dataController> и <dynaФорм> внутри главного <vgroup> в XData Contents, точно как в примере:
XData Contents [XMLNamespace="http://www.intersystems.com/zen"]{ <page xmlns="http://www.intersystems.com/zen" title=""> <html id="title">My Telephone Book</html> <vgroup width="100%"> <dataController id="source" modelClass="PhoneBook.Person" modelId=""/> <dynaForm id="MyForm" controllerId="source" /> </vgroup> </page>}
Все что Вам надо сделать – поместить курсор между <vgroup> и </vgroup> и начать печатать.
После того как Вы напечатаете символ <, Studio Assist feature приглашает Вас выбрать из списка всех элементов. Сделайте двойной щелчок на одном из вариантов для его выбора. Затем печатайте символ пробела и Studio Assist предлагает Вам выбрать из списка атрибутов соответствующих этому элементу. Вы можете продолжать таким способом пока на введете целую строку.
Как альтернатива, если вы видите этот документ он-лайн, вы можете копировать и вставить строки <dataController> и <dynaForm> из вышеприведенного примера.
3. Обеспечьте два элемента <button> в XData Contents, так:
XData Contents [XMLNamespace="http://www.intersystems.com/zen"]{ <page xmlns="http://www.intersystems.com/zen" title=""> <html id="title">My Telephone Book</html> <vgroup width="100%"> <dataController id="source" modelClass="PhoneBook.Person" modelId=""/> <dynaForm id="MyForm" controllerId="source" /> <button caption="New" onclick="zenPage.newRecord();" /> <button caption="Save" onclick="zenPage.SaveRecord();" /> </vgroup> </page>}
Вы можете печатать новые элементы, или если вы видите этот документ он-лайн, для удобства вы можете копировать и вставить строки <button> из этого примера.
4. Сохранить и компилировать класс, тогда видна Web страница. Это должно выглядеть, как показано на рис. 10.
5. Если Вы забыли про щелчок на кнопках “New” и “Save” попытайтесь это сделать. Сообщение об ошибке отобразится. Щелчок OK для его пропуска.
Для понимания почему Вы увидели сообщение об ошибке, когда щелкнули на кнопке, смотрите тщательно на значения атрибута onclick для каждого элемента <button> в XData Contents. Каждое значение onclick - это выражение JavaScript которое выполняется автоматически при щелчке на кнопке.
Рис. 10. Web страница
В примерах, выражение onclick invokes метод который запускается на JavaScript на клиете. Специальная переменная zenPage указывает что метод определен в текущем классе страницы Zen. Методы сами называются newRecord и saveRecord
.
Для создания работы этих значений onclick, вы должны создать методы JavaScript на стороне клиента в классе страницы Zen. Это вполне просто сделать используя Мастер методов Zen в Studio.
Добавление методов стороны клиента
На этом шаге вы добавите методы которые создают новые объекты и сохраняют их в соответствии со щелчками на кнопке. Эти методы нужны, чтобы заполнить вашу БД объектами класса PhoneBook.Person:
1. В Studio, открыть the класс страницы Zen.
2. Поместить курсор под закрывающейся фигурной скобкой блока XData Contents, но до закрывающейся фигурной скобкой для класса страницы Zen.
3. Выбрать Инструменты > Шаблоны > Шаблоны или нажать Ctrl-T для отображение диалога Studio шаблон. Выбрать Мастер метода Zen. Щелчок OK. Виден диалог (рис. 11).
Редактируйте диалог так:
· Введите the Имя метода newRecord
· Выбрать метод is an instance
· Выбрать runs on the client
· Обеспечить Описание как показано.
· Очистить галочку Try/Catch.
· Щелчок Готово. Ваш новый метод появляется в классе страницы так:
Рис. 11. Диалог мастера метода Zen
/// Create a new instance of the controller object.Method newRecord() [Language = JavaScript]{ // TODO: implement alert('Client Method');}
4. Выбрать код внутри фигурных скобок как метод теперь выглядит так:
/// Create a new instance of the controller object.Method newRecord() [Language = JavaScript]{ var controller = zenPage.getComponentById('source'); controller.createNewObject();}
5. Повторять вышеперечисленные шаги чтобы добавить метод SaveRecord
. Затем используя Мастер метода Zen, введите значения в диалог так:
· Введите Имя метода SaveRecord
· Выбрать метод is an instance
· Выбрать runs on the client
· Обеспечить Описание.
· Очистить галочку Try/Catch.
· Щелчок Готово. Ваш новый метод появляется в классе страницы.
Редактируйте новый метод так, чтобы он выглядел так:
/// Save the current instance of the controller object.Method saveRecord() [Language = JavaScript]{ var form = zenPage.getComponentById('MyForm'); form.save();}
6. Сохранить и компилировать класс, затем смотреть Web страницу.
7. Щелчок на кнопке “New” на странице. Поля Имя и PhoneNumber пусты так что вы можете ввести новую информацию для каждого следующего элемента. После печатания каждого поля, щелчок на кнопке “Сохранить”. Новый элемент сохранен в базе данных.
8. Используйте “New” и “Сохранить” повторно чтобы добавить еще элементы.
Просмотр базы данных в таблице
Теперь Вы имеете нечто в Вашей базе данных, вы можете увидеть это. На этом шаге Вы добавите таблицу Zen которая показывает сохраненные объекты из Вашей базы данных. Вы будете затем изменять метод SaveRecord
так что он автоматически обновляет таблицу каждый раз при щелчке на кнопке “Сохранить” в пользовательском интерфейсе:
1. В Studio, открыть the класс страницы Zen.
2. Обеспечить один элемент <tablePane> внутри главной <vgroup> в XData Contents, точно как показано ниже (печатать или копировать):
XData Contents [XMLNamespace="http://www.intersystems.com/zen"]{ <page xmlns="http://www.intersystems.com/zen" title=""> <html id="title">My Telephone Book</html> <vgroup width="100%"> <dataController id="source" modelClass="PhoneBook.Person" modelId=""/> <dynaForm id="MyForm" controllerId="source" /> <button caption="New" onclick="zenPage.newRecord();" /> <button caption="Save" onclick="zenPage.saveRecord();" /> <tablePane id="people" sql="SELECT Name,PhoneNumber FROM PhoneBook.Person" /> </vgroup> </page>}
Атрибут <tablePane> sql обеспечивает выражение SQL. SELECT выводит списки двух свойств из вашего класса PhoneBook.Person, и FROM обеспечивает полное имя пакета и класса. Этот запрос SQL обеспечивает данные для <tablePane>.
3. Сохранить, компилировать класс, посмотреть Web страницу.
4. Используйте кнопки “New” и “Сохранить” для добавления еще элементов в базу данных.
5. Щелчок на кнопке обновления браузера чтобы видеть обновленную таблицу. Новые элементы видны.
6. Удалить нужное для пользователя чтобы обновить после каждого нового элемента, обновляя таблицу автоматически после каждого «сохранить». Чтобы accomplish это, добавьте две строки в метод SaveRecord
, так:
/// Save the current instance of the controller object.Method saveRecord() [Language = JavaScript]{ var form = zenPage.getComponentById('MyForm'); form.save(); var table = zenPage.getComponentById('people'); table.executeQuery();}
7. Сохранить и компилировать класс, затем смотреть Web страницу (рис. 12).
Рис. 12. Итоговая Web страница
8. Используйте “New” и “Сохранить” чтобы добавить еще элементы в базу данных. Каждый раз когда Вы щелкаете “Сохранить,” метод SaveRecord обновляет таблицу так что новейшие элементы становятся видны.
Контрольные вопросы.
Какие ошибки возникают при выполнении данной работы? Какие ключевые слова имеет класс, используемый в данной работе? Пояснить методы стороны клиента, добавляемые в данной работе. Что спрашивает Мастер методов Zen? Какие есть инструменты, кроме шаблонов?
Список рекомендуемой литературы
1. В.Кирстен. СУБД Cache: Объектно-ориентированная разработка приложений. Учебный курс./ Кирстен В., Ирингер М., Рёриг Б., Шульте П. СПб. – Питер, 2001. 384 с.
Лабораторная работа 8
Создание объектно-ориентированной базы данных
Теория
. Постреляционная СУБД Cache позволяет работать не только с таблицами, но и с объектами, в том числе и многомерными. Данная работа – один из шагов к созданию клиент-серверного приложения, полностью описанного в [1].
Создадим приложение, работающее с базой данных контактной информации о студентах. База данных будет содержать два класса: «Student» и «PhoneNumber». Создаваемые классы связанны, каждый экземпляр класса «Student» может иметь несколько телефонных номеров. Для создания и редактирования классов в Cache предназначена утилита Cache Studio.
Задание.
Выберите область User в которой будет создаваться класс используя меню Файл. Сменить область.
Создайте новый проект (Файл . Новый проект) и сохраните его под именем StudentContactDB (Файл . Сохранить проект).
Создайте новый класс Student (Файл . Создать . Класс Cache), откроется мастер создания класса. Укажите имя пакета «ContactStudentDB». Укажите имя класса «Student». Описание данного класса может остаться пустым, тем не менее, рекомендуется вводить описание класса, т.к. это описание будет использоваться, во-первых, для создания комментария к описанию класса, а во-вторых, для генерации документации класса. На следующем шаге создания класса выберите тип класса «Persistent» и нажмите «Далее». Необходимо заметить, что только объекты классов типа «Persistent» сохраняются в базе данных. На следующем шаге мастера выберите опцию «Генерация тестовых данных». Для завершения создания класса нажмите «Готово». Если Вы все сделали правильно, то в окне редактирования классов появиться заготовка для класса «Student», которую необходимо использовать для дальнейшего наполнения класса свойствами и методами. В левой части «Studio» Вы можете просмотреть создаваемый проект и увидеть уже созданный проект и классы, содержащиеся в нем.
Создание свойств класса
Свойства представляют состояние объектов. Существует два типа свойств:
• Свойства, содержащие значения;
• Свойства-связи, задающие связи между объектами.
Свойство имеет однозначное имя, тип, необязательный список ключевых слов, необязательный список параметров, определенных для соответствующего типа данных.
Синтаксис:
Property <Имя свойства> as <тип> (параметры) [ключевые слова]
Для добавления нового свойства к созданному классу воспользуйтесь мастером создания свойств из меню Класс.Добавить.Новое свойство. В открывшемся мастере введите имя нового свойства «Name» (описание можно оставить пустым, но для того, чтобы наглядно убедиться в работе мастера, введите значение «Имя студента»). Выберите «Далее», и на следующей странице мастера выберите тип свойства. Установите «Единичное значение типа» и тип «%String» (для отображения всех возможных типов свойств нажмите «Просмотр…»). Задайте характеристики свойства на следующей странице мастера. Выберите «Обязательно», чтобы это поле было не пустым. Далее следуйте по страницам мастера, оставляя все параметры без изменений.
Второе свойство, которое будет в классе студента это свойство типа контактных данных. Как и при создании предыдущего свойства воспользуйтесь мастером Класс.Добавить.Новое свойство. Имя свойства «ContactType», тип «%String». На вкладке «Параметры свойства» введите значения параметров создаваемого свойства. Найдите в списке параметр «VALUELIST» и определите для него следующие значения: «,HOME,MOBILE». Обратите внимание на запятую перед словом «HOME», которая указывает на разделитель допустимых значений свойства. Рекомендуется использовать латиницу для обозначения свойств.
Каждому студенту может соответствовать несколько телефонных номеров. Для их хранения создайте класс «PhoneNumber», отвечающий следующим условиям:
1. Класс принадлежит к тому же пакету, что и класс «Student»;
2. Тип класса «Persistent»;
3. Поддерживает автоматическую процедуру заполнения тестовыми данными.
Состав свойств класса PhoneNumber:
Имя свойства |
Тип |
Параметры |
PhoneNumberType |
%String |
VALUELIST=,HOME,MOBILE, FAX,PAGER |
Number |
%String |
POPSPEC = USPhone() |
Добавление запроса к классу «
PhoneNumber
»
Следующим шагом необходимо добавить запрос к классу «PhoneNumber».
Для этого выберите класс, в который будет добавлен запрос, и из главного меню вызовите мастера (Класс .Добавить . Новый запрос).
На первой странице мастера назначьте имя запросу «RetriveStudentByName». На следующей странице добавьте запросу входной параметр «name» типа %String с помощью кнопки со значком . Перейдя на следующий экран, вы сможете выбрать поля, которые будет возвращать запрос.
Наш запрос будет возвращать поля «%ID,Number,PhoneNumberType». Теперь вы можете закончить работу с этим мастером, который добавит в код класса следующие строки:
Query RetriveStudentByName(name As %String) As %SQLQuery(CONTAINID = 1)
{
SELECT %ID,Number,PhoneNumberType FROM PhoneNumber
}
Далее Вы сможете добавить условие для отбора по имени и сортировку по типу телефонного номера:
WHERE (Student->Name = :name)
ORDER BY PhoneNumberType
Обратите внимание, на регистр ввода переменных. Cache чувствительна к регистру.
Создание отношения между классами
Откройте в Cache Studio класс «Student», а, затем, для создания отношения воспользуйтесь мастером создания свойств (Класс . Добавить . Новое свойство). На первом экране мастера назначьте имя «PhoneNumbers» и выберите «далее». На следующей странице выберите тип свойства «Отношение». Следующая страница мастера позволит определить тип устанавливаемой связи. Выберите следующие характеристики:
1) Это свойство-отношение ссылается на «потомок: потомки этого объекта»
2) Это свойство-отношение связанно с объектами следующих типов:
«ContactStudentDB.PhoneNumber»
3) Имя соответствующего свойства в классе, который ссылается: «Student»
Экран мастера «Дополнительные изменения» оставьте без изменений! Мастер добавит следующие описания:
- в класс «Student»:
Relationship PhoneNumbers As ContactStudentDB.PhoneNumber [ Cardinality = children, Inverse = Student ];
- в класс «PhoneNumber»:
Relationship Student As ContactStudentDB.Student [ Cardinality = parent, Inverse = PhoneNumbers ];
Теперь Вы можете скомпилировать класс, для этого откройте его в среде «Studio» и в главном меню выполните Собрать . Компилировать.
Заполнение класса тестовыми данными
Для заполнения тестовыми данными созданных классов в Cache предусмотрен специальный метод Populate(). Выполните следующие шаги, чтобы заполнить класс студентов тестовыми объектами.
1. Запустите «Терминал» из меню Cache-куба.
2. В терминале выберите рабочую область с помощью команды «zn» (Слово перед знаком «>» означает текущую область. Например: для входа в область «USER» необходимо набрать «zn .USER.»).
3. Для заполнения данными таблицы, необходимо запустить метод заполнения: «do ##class(ContactStudentDB.Student). Populate(5,9)». Копирование не всегда работает, поэтому наберите с клавиатуры. Просмотрите полученный результат (см. ниже).
Просмотр таблиц и данных
Используя утилиту «Портал управления системой», запускаемую из Cache-куба, Cache позволяет, например, просмотреть содержимое таблиц вашего проекта и выполнить запросы на языке SQL. Для просмотра содержимого таблицы выполните следующие действия:
А). Откройте утилиту «Портал управления системой», далее SQL . Просмотр SQL схем;
Б). Выберите область, в которой ведется разработка проекта;
В). Выберите таблицу, и нажмите «Открыть таблицу» (OpenTable).
4. Для удаления данных следует запустить метод KillExtent(): «do ##class(ContactStudentDB.Student). %KillExtent()».
Контрольные вопросы.
Какие слова появляются как тестовые данные? Что содержит Портал управления системой? Какие существуют параметры свойства типа %String? Что спрашивает мастер запросов? Что спрашивает мастер свойств?
Список рекомендуемой литературы
1. Н.А. Иванчева. Постреляционная СУБД Caché. (метод. пособие). / Иванчева Н.А., Иваньчева Т.А. Новосибирский государственный университет. Высший колледж информатики. Новосибирск, 2004. - 120 с.
Содержание отчета
1. Титульный лист.
2. Теоретические сведения по темам лабораторных работ.
3. Задания по варианту.
4. Последовательность выполнения каждой работы.
5. Результаты выполнения каждой работы.
6. Выводы.
7. Использованная литература.
Алгоритм выполнения лабораторных работ
1. Прочитать теоретическую часть.
2. Определить свой номер варианта (для 1-й работы).
3. Выполнить работу на компьютере.
4. Показать преподавателю на компьютере, как выполняется работа (выборочно).
5. Составить часть отчета в электронном виде. В конце прохождения лабораторного практикума объединить все отчеты в один.
6. Ответить на один из контрольных вопросов.
Оглавление
Общие сведения……………………………………………….. |
3 |
Реляционные базы данных……………………………………. |
3 |
Лабораторная работа 1. Основы работы с Microsoft Access... |
3 |
Лабораторная работа 2. Microsoft Access……………………. |
7 |
Лабораторная работа 3. Язык SQL в Microsoft Access……… |
10 |
Лабораторная работа 4. Базы данных и SQL в Delphi………. |
11 |
Постреляционные базы данных……………………………… |
14 |
Лабораторная работа 5. Первый пример Cache. Отладчик Caché Studio……………………………………………………. |
14 |
Лабораторная работа 6. Создание Web интерфейса пользователя используя CSP…………………………………………. |
18 |
Лабораторная работа 7. Создание пользовательского интерфейса Web используя Zen…………………………………. |
20 |
Лабораторная работа 8. Создание объектно-ориентированной базы данных ………………………………………….. |
30 |
Содержание отчета……………………………………………. |
35 |
Алгоритм выполнения лабораторных работ………………… |
35 |
базы данных
Методические указания к лабораторным работам
Отв. за выпуск М.В. Яковлева
ЛР № 06547 от 28.01.2002
Подписано в печать 25.03.2011. Формат 60´84/16. Бумага газетная. Печать оперативная. Гарнитура Times
New
Roman
. Усл.печ. л. . Уч.-изд.л. . Тираж 50 экз. Заказ № .
Чувашский государственный университет
Типография университета
428015 Чебоксары, Московский просп., 15
[1]
В работах 5, 6 и 7 использована справка по Caché от разработчиков