Информационные системы

Информационные системы

Электронный учебник

Лабораторная работа №2

 

 Создание базы данных.

Для создания базы данных в Visual FoxPro можно использовать мастера по созданию базы данных или создавать базу данных в интерактивном режиме с помощью конструктора базы данных. Конструктор базы данных позволяет создавать и модифицировать таблицы, входящие в базу данных, определять для них индексы. Можно устанавливать отношения между таблицами, которые будут поддерживаться при создании форм и отчетов. Все описание структуры базы храниться в словаре базы данных, который представляет собой совокупность системных таблиц.

Создание базы данных  в конструкторе проектов

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

1.       Выбрать вкладку «Data» окна конструктора проектов.

2.       Установить курсор мыши на значение Database и нажать кнопку New.

3.       В открывшемся окне диалога «New database» нажать кнопку New database.

4.       В поле Enter окна диалога «Create»  нужно задать имя создаваемой базы данных, убедившись, что в поле Тип файла установлен тип сохраняемого файла «Database», а в поле Папка правильно выбран каталог, в котором следует расположить базу данных.

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

 

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

 

Для создания новых таблиц и модификации существующих можно использовать:

·    Команды меню Database (табл.1)

·    Команды контекстного меню

·    Панель инструментов конструктора базы данных «Database Designer»

Команды

Назначение

New Table

Создает новую таблицу

Add Table

Добавляет таблицу в базу данных

New Remote View

Создает удаленное представление данных

New Local View

Создает локальное представление данных

Modify

Модифицирует таблицу

Browse

Показывает таблицу в режиме Browse

Remove

Удаляет таблицу из базы данных

Find Object

Находит указанный вами объект в окне конструктора

Rebuild Table Indexes

Перестраивает индексы

Remove Delete Records

Физически удаляет помеченные для удаления записи

Edit Relationship

Редактирует отношения между таблицами

Edit Referential      Integrity

Определяет условия целостности данных

Edit Stored Procedures

Редактирует хранимую процедуру

Connections

Выводит на экран окно диалога «Connections»,в котором вы можете создавать или модифицировать соединения с удаленными данными

Arrange

Упорядочивает объекты по имени или типу и выравнивает их по горизонтали или вертикали

Refresh

Переводит окно конструктора базы данных

Properties

Выводит на экран окно диалога «Database Properties»

Clean Up Database

Очищает базу данных(файл с расширением .DBC) от помеченных для удаления объектов

  Таблица 1. Команды меню Database

При нажатии правой кнопки мыши на экране появляется контекстное меню конструктора базы данных, которое содержит наиболее часто используемые команды из меню Databаse, команду  Help,  а также команды для раскрытия уровней вложенности объектов в окне конструктора базы данных (Expand All) и их свертывания (Collapse All).

       Рис 2. Панель инструментов «Databаse Designer».

        Панель инструментов «Databаse Designer»  содержит кнопки для выполнения наиболее часто используемых действий над базой данных (рис. 2.).Описание кнопок панели инструментов – в табл. 2.

Название

Назначение

New Table

Создает новую таблицу

Add Table

Добавляет таблицу в базу данных

Remove Table

Удаляет таблицу из базы данных

New Remote View

Создает удаленное представление данных

New Local View

Создает локальное представление данных

Modify Table

Модифицирует таблицу

Browse Table

Показывает таблицу в режиме Browse

Edit Stored Procedures

Редактирует хранимую процедуру

Connections

Создает связь с удаленными данными

Таблица 2. Панель инструментов «Databаse Designer».

Создание таблиц.

 

В Visual FoxPro  существует несколько основных правил по заданию наименования таблицы: 

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

·         Наименование таблицы может содержать буквы, цифры и знак подчеркивания. Воздержитесь от использования специальных символов (%, !, @, &, $, # ).

·         В наименовании таблицы недопустимо наличие пробелов.

·         Каждая таблица в базе данных должна иметь уникальное имя.

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

·         Выбрать команду Database | New Table 

·         Выбрать команду New Table контекстного меню

·         Нажать кнопку New Table на панели инструментов  «Databаse Designer».

Независимо от того, каким способом создается таблица, откроется окно диалога «New Table» (рис. 3),  которое предлагает воспользоваться мастером для создания таблицы или же создавать ее самостоятельно с помощью конструктора таблиц.

                          

              Рис.3 окно диалога «New Table»

 

Создание таблицы с помощью конструктора таблиц.

 Можно перейти в конструктор таблиц из мастера по созданию таблицы или же непосредственно из окна диалога  «New Table», нажав кнопку New Table и определив имя создаваемой таблицы в окне диалога «Create».в результате выполнения этих действий откроется окно диалога создания таблицы «Table Designer» (рис. 4).

 Окно диалога «Table Designer» содержит три вкладки «Fields», «Indexes», «Table». На вкладке «Fields», которая является активной при открытии окна диалога, определяются поля таблицы. Вкладка «Indexes» служит для определения индексов таблицы. Вкладка «Table» – позволяет определять для таблицы условие достоверности вводимых данных и триггеры добавления, удаления и модификации данных.

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


Рис. 4 Окно диалога создания таблицы  «Table Designer».

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

 Тип данных поля вводится в строке ввода столбца Type, ширина полей – в строке ввода столбца Width, а количество десятичных знаков – в строке ввода Decimal.  Столбец Index   предназначен для задания индекса типа Regular для данного поля. 

 При вводе имени поля по умолчанию присваивается ему текстовый тип данных (Character) с шириной поля, равной 10.

 Типы полей:

 Character – текстовый, максимальная ширина поля составляет 254 символа.

 Integer –  для хранения целых чисел, диапазон допустимых значений поля от – 2147483647 до 2147483647.

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

 Double – для   хранения данных  с  высокой  точностью, диапазон   от      – 4.94065648541247*10-324       до           –8.988465743115*10+307 .

 Logical – для создания полей логического типа, размер всегда равняется 1.

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

 DateTime – для хранения дат и времени суток.

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

 Memo –  текстовые поля произвольной длины могут содержать те же типы данных, что и простые текстовые поля. Отличие между этими полями заключается в том, что размер Memo – поля не ограничен 254 символами, а зависит от объема данных, хранящихся в этом поле. Фактически объем данных, которые можно ввести в поле данного типа, определяется объемом жесткого диска. Visual FoxPro автоматически создает файл для хранения данных Memo – поля, с расширением .FPT , а его имя совпадает с наименованием таблицы.

 General – для хранения в таблицах изображения и другие двоичные данные.

  

 Свойства полей

Каждое поле таблицы обладает свойствами, значения которых отображаются в нижней части вкладки «Fields». Область «Display» задает форматы для ввода и отображения данных:

Свойство

Описание

Format

Задает формат отображения данных в формах, отчетах и окне «Browse»

Input mask

Задает формат ввода данных

Caption

Определяет заголовок поля

 Область «Map field type to classes» предназначена для выбора библиотеки и имени класса, который будет использоваться для создания объектов в форме при размещении данного поля таблицы:

Свойство

Описание

Display library

Задает путь и имя файла библиотеки классов

Display class

Задает имя класса из выбранной библиотеки

Область «Field validation» содержит следующие поля:

Свойство

Описание

Rule

Условие правильности ввода данных

Message

Сообщение, выводимое при неправильном вводе данных

Default value

Начальное значение поля

 

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

 Правила использования опции NULL:

·         По умолчанию команда APPEND BLANK  добавляет запись с пустыми полями, а не с неопределенными значениями;

·         При установке опции NULL на пустое символьное поле, оно останется пустым;

·         При установке опции NULL на числовое  поле, имеющее нулевое значение, значение поля не изменяется;

·         При сбросе опции NULL на символьное поле с неопределенным значением, поле становится пустой строкой;

·         При сбросе опции NULL на числовом поле с неопределенным значением, в поле заносится число ноль.

Установка опции NULL

-     Выполнить в командном окне или в программе команду SET NULL ON ;

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

В противном случае Visual FoxPro будет выдавать сообщение об ошибке при попытке добавить запись с неопределенным значением поля при помощи команд APPEND FROM или INSERT SQL.

Добавление и удаление полей таблицы

 Для добавления нового поля в структуру таблицы нужно установить курсор на поле,  выше которого  предполагается добавить новое поле, и нажать кнопку Insert.

Для удаления поля таблицы необходимо перейти на строку с описанием данного поля и нажать кнопку Delete.

 

Свойства таблицы

 Каждая таблица обладает определенными для нее свойствами. Для задания свойств таблицы нужно выбрать вкладку «Table» (рис. 5). Здесь можно ввести текстовое описание таблицы, определить условие проверки ввода данных на уровне записей и создать триггеры для добавления, изменения и удаления записей таблицы. Определение условий правильности ввода данных при описании таблицы гарантирует достоверность данных в таблице, так как проверка осуществляется независимо от того, из какого приложения произошло обращение к таблице.


Рис. 5 Вкладка «Table» конструктора таблиц

Задания.

 1.                Создайте на диске каталог с вашим именем.

 2.  Создайте  проект при помощи мастера с именем Sales. В качестве места хранения укажите свой персональный каталог.

   3.   В окне конструктора проекта создайте базу данных с именем Sales.

   4.  В базе данных создайте две таблицы со следующей структурой:

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

n/n

Наименование

Тип

Описание

1

icdCustomer

Integer

Код покупателя

2

cCompany

Character (20)

Предприятие

3

cLastName

Character (16)

Фамилия

4

cFirstName

Character (16)

Имя

5

cSecondName

Character (16)

Отчество

6

cZIP

Character (6)

Почтовый индекс

7

cCountry

Character (20)

Страна

8

cRegion

Character (20)

Область

9

CCity

Character (20)

Город

10

Caddress

Character (60)

Остальная часть адреса

11

YCreditLimit

Currency

Кредит

12

MNotes

Memo

Примечание

Таблица Ordsale содержит информацию о заказах и покупках различных покупателей.

n/n

Наименование

Тип

Описание

1

icdCustomer

Integer

Код покупателя

2

isdGoods

Integer

Код товара

3

dOrderDate

Date

Дата заказа

4

OrderQuant

Numeric(10)

Заказанное количество

5

yUnitPrice

Currency

Цена

6

cNotes

Character (254)

Примечание

Из данных таблиц можно получить информацию о каждом клиенте (табл. Customer) и сделанных им покупках (табл. Ordsale). Каждая запись в таблицах идентифицирует один объект группы (покупатель или сделанный заказ). Отношение между объектами определяет отношение между таблицами. Предлагается, что один и тот же покупатель может сделать несколько заказов и покупок. Между покупателями и сделанными ими заказами существует отношение один-ко-многим. Связь таблиц осуществляется на основании данных в совпадающих полях icdCustomer.

 Примечание: При закрытии окна конструктора таблиц откажитесь от немедленного ввода данных!

 5.       Укажите для каждого поля в таблицах краткий комментарий.

 6.       Выбрав имя таблицы, и используя кнопку BROWSE, просмотрите содержимое обеих таблиц.

 7.       В режиме просмотра таблицы при помощи комбинации клавиш Ctrl+Y добавьте несколько новых строк и заполните эти строки данными.

 8.       Измените, заголовки нескольких полей в первой таблице и просмотрите ее в режиме BROWSE. (При просмотре обратите внимание на то, чтобы в пункте меню View был выбран режим Browse, а не Edit).

 9.       При помощи комбинации клавиш Ctrl+T пометьте строки в таблице на удаление. Физически удалить эти строки можно при помощи команды меню Table | Remove Deleted Records.

 10.       Сохраните свой проект для дальнейшей работы.

 

Пример выполнения работы