Главная страница
Навигация по странице:

  • 2. РАБОТА С ТАБЛИЦАМИ В СУБД VISUAL FOXPRO Время выполнения – 4 часа.Цель работы

  • 2.1. Работа с таблицами в среде Visual FoxPro

  • 2.2. Манипулирование данными в таблице

  • 2.3. Работа с индексами

  • методичка. методичка АИС2. Архитектура информационных систем


    Скачать 4.53 Mb.
    НазваниеАрхитектура информационных систем
    Анкорметодичка
    Дата23.02.2022
    Размер4.53 Mb.
    Формат файлаdoc
    Имя файламетодичка АИС2.doc
    ТипМетодические рекомендации
    #371079
    страница3 из 7
    1   2   3   4   5   6   7

    КОНТРОЛЬНЫЕ ВОПРОСЫ:
    1. Что такое концептуальное проектирование базы данных?

    1. Какие типы сущностей вы знаете?

    2. Какие типы связей вы знаете?

    3. Определите атрибуты и связывание их с типами сущностей и связей.

    4. Что такое домен атрибутов?

    5. Что такое атрибуты, являющиеся потенциальными и первичными ключами?

    6. Как происходит преобразование локальной концептуальной модели данных в локальную логическую модель?

    7. Как происходит определение набора отношений, исходя из структуры локальной логической модели данных?

    2. РАБОТА С ТАБЛИЦАМИ В СУБД VISUAL FOXPRO
    Время выполнения – 4 часа.
    Цель работы: узнать, как работать со таблицами в среде Visual FoxPro: создавать таблицы, объединять их в базу данных, добавлять или удалять записи из таблицы, создавать индексы и выполнять выбор данных.

    1.

    2.1. Работа с таблицами в среде Visual FoxPro
    Visual FoxPro, как и любая другая реляционная СУБД, хранит данные в таблицах. Таблицы можно создать двумя способами:

    - с помощью меню среды;

    - с помощью командного окна .

    Это показано на рис. 2.1.

    Рис. 2.1. Главное окно Visual FoxPro
    Для того, чтобы создать таблицу через меню, требуется нажать пункт меню File→New. Потом в открывшемся диалоговом окне New (рис. 2.2) требуется выбрать пункт Table для создания таблицы и затем нажать кнопку New File.

    Если использовать мастера (нажатие кнопки Wizard в диалоговом окне New, см. рис. 2.3) предлагается порядок действий, на основе которого можно создать таблицы по имеющимся в FoxPro образцам таблиц (Accounts, Customers и т.д.).

    Рассмотрим создание таблицы без применения мастера создания таблиц. При нажатии кнопки New File (см. рис. 2.2) необходимо ввести имя таблицы. При этом будет открыто окно для конструктора таблиц Table Designer (рис. 2.3).


    Рис. 2.2. Окно для создания объекта в Visual FoxPro



    Рис. 2.3. Вкладка Fields на окне конструктора таблиц.
    Диалоговое окно конструктора таблиц содержит три вкладки:

    - Fields – для определения полей таблицы;

    - Indexes – для определения индексов;

    - Table– информационная вкладка.

    Назначение кнопок, в конструкторе таблиц следующее [2]:

    - OK – сохраняет структуру таблицы;

    - Cancel – отменяет проведенные изменения;

    - Insert – вставляет новое поле (новый атрибут) таблицы (для вкладки Fields) или новый индекс (для вкладки Indexes);

    - Delete – удаляет указанное поле (атрибут) таблицы (для вкладки Fields) или указанный индекс (для вкладки Indexes).

    Используя вкладку Fields, на конструкторе таблиц, требуется ввести наименования полей (атрибутов) таблицы в колонке Name. Для каждого поля в столбце Type (по умолчанию стоит тип данных Character), длину поля в столбцы Width и Decimal (Width – общее число символов, Decimal – число символов после запятой, опция Decimal доступна только для полей типа Numeric). Столбец Index задает индекс (ascending – индекс по возрастанию, descending – индекс по убыванию), он автоматически сохраняется с типом Regular и с именем поля, по которому создан индекс и отражается на вкладке Indexes.

    В том случае если индекс не определен, то Visual FoxPro используя данную опцию, автоматически создает его.

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

    На вкладке Indexes конструктора таблиц, который представлен на (рис. 2.4), показаны все индексы, созданные по данной таблице. Индексы имеют следующие параметры:

    - Order отображается порядок индекса (ascending – возрастающий, descending – убывающий);

    - Name – имя индекса;

    - Type – тип индекса (см. табл. 2.1);

    - Expression – поле или поля, по которым строится индекс.

    На вкладке Table конструктора таблиц, который представлен на (рис. 2.5), отображается описание таблицы. Описание таблицы содержит следующие данные:

    - путь, по которому сохранена таблица (Table file);

    - количество записей в таблице (Records);

    - количество полей в таблице (Fields);

    - размер записи в таблице (Length).


    Рис. 2.4. Окно конструктора таблиц. Вкладка Indexes


    Рис. 2.5. Окно конструктора таблиц. Вкладка Table
    Далее для рассматриваемого варианта на вкладке Fields идентифицируем имена столбцов таблицы goods и к каким типам данных они относятся. Это показано на (рис. 2.6).


    Рис. 2.6. Создание таблицы goods
    После того как заполнена вкладка Fields, необходимо нажать кнопку OK. Далее предлагается сразу приступить к заполнению созданной таблицы (рис. 2.7).

    Рис. 2.7. Запрос на ввод данных
    При нажатии на кнопку Yes в диалоговом окне будет открыта область для ввода значений атрибутов. Данное окно представлено на (рис. 2.8). По окончании ввода данных закрываем окно ввода.

    Рис. 2.8. Окно для ввода значений атрибутов
    При отказе от немедленного заполнения таблицы (при нажатии кнопки No, см. рис. 2.7.) можно вернуться к этапу ввода данных позже.

    Командное окно (см. рис. 2.1) имеет возможность для ввода команд на языке программирования Visual FoxPro. Оно запускается автоматически при открытии Visual FoxPro. Также данное окно можно открыть с помощью пункта меню Window→Command Window (или одновременным нажатием клавиш Сntr+F2). После ввода любой команды на языке программирования Visual FoxPro она завершается нажатием клавиши Enter. Для создания таблицы через командное окно необходимо выполнить команду CREATE. Для этого необходимо в командном окне написать команду CREATE и нажать клавишу Enter. На экране появится диалоговое окно Create (рис. 2.9).


    Рис. 2.9. Окно Create
    В окне Create необходимо выбрать папку. В случае, если заранее не была определена папка по умолчанию (например, с помощью команды SET DEFAULT TO <имя_папки>), открывается папка, в которой установлен пакет Visual FoxPro.

    В окне Enter table следует ввести имя таблицы и нажать на кнопку Сохранить. При создании таблицы следует присваивать ей имя, которое показывало бы смысл хранимой информации, но в рамках правил операционной системы Windows [2, 4]. После того как таблица была сохранена (см. рис. 2.9) будет показано окно Table Designer – конструктор таблиц (см. рис. 2.3).

    Если запустить команду CREATE <имя_таблицы>, то таблица c таким именем сохранится в папку по умолчанию и сразу откроется окно для конструктора таблиц Table Designer (см. рис. 2.3). Например, для создания таблицы фирм в командном окне введем команду CREATE FIRMS, после чего открывается конструктор таблицы (см. рис. 2.3). Дальнейшие действия аналогичны как для таблицы goods.

    Возможно, при вводе данных в таблицу появятся ошибки, когда проектировалась структура таблицы (например, количества символов, выделенных для названия фирмы, не хватает). Для того чтобы исправить структуру таблицы надо с помощью команды MODIFY STRUCTURE это сделать. Синтаксис команды написанной в командном окне представлен на рис. 2.10:

    Рис. 2.10. Синтаксис команды MODIFY STRUCTURE
    По этой команде появится окно конструктора таблиц Table Designer (см. рис. 2.3–2.5), где можно внести соответствующие исправления.

    Для копирования таблицы необходимо сначала ее открыть. Для этого требуется выбрать пункт меню File→Open или выполнить команду USE <имя_таблицы> из командного окна.

    Для копирования таблицы выполните команду COPY TO <имя_новой_таблицы> или выберите пункт меню File→Save As….

    Для того чтобы удалить таблицу требуется выполнить команду DROP TABLE <имя_таблицы>. Кроме того существует еще один способ удаления таблицы. Для этого необходимо выполнить команду DELETE FILE <имя_таблицы>.dbf.

    В результате работы любой из этих команд файл таблицы будет удален с диска.

    Рабочие области могут использоваться для совместной работы с несколькими таблицами. Рабочая область – это виртуальный «рабочий стол», в одной рабочей области может быть открыта только одна таблица. Visual FoxPro имеет 32767 рабочих областей. Если вы открываете таблицы в разных рабочих пространствах и затем переключаетесь между этими областями (используя команду SELECT), вы можете одновременно работать с несколькими таблицами [2, 3]. По умолчанию таблица открывается в текущей рабочей области, а таблица, которая уже открыта в этой рабочей области, закрыта. Например, после последовательного выполнения команд, представленных на рис.2.11


    Рис. 2.11. Работа с несколькими рабочими областями
    В результате работы команд будет только открыта таблица table3. При этом при открытии таблицы table2 будет закрыта таблица table1. А при открытии таблицы table3 будет одновременно закрыта таблица table2. Чтобы открыть таблицу в определенной рабочей области, которая отличается от текущей, нужно либо выбрать эту рабочую область с помощью команды (SELECT <номер рабочей области>), либо выбрать свободную рабочую область с наименьшим номером (SELECT 0). Например, на основе команд, представленных на рисунке 2.12.


    Рис. 2.12. Команды для открытия сразу трех таблиц
    сразу откроются три таблицы, каждая в своей собственной рабочей области. Команда USE TABLE1 IN 1 равносильна выполнению двух команд:

    SELECT 1

    USE TABLE1

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



    Рис. 2.13. Команды для открытия сразу трех таблиц в разных рабочих областях
    Любой открытой таблице Visual FoxPro назначается псевдоним. Псевдоним – это имя, которое служит для ссылок на эту таблицу. По умолчанию псевдоним и открытая таблица имеют одно и то же имя. Для перехода между рабочими областями необходимо использовать команды:

    1. SELECT <номер_рабочей_области>, если известна рабочая область при открытии таблицы.

    2. SELECT <имя_таблицы>, если псевдоним одинаков с именем таблицы (по умолчанию).

    3. SELECT <псевдоним>, если псевдоним задан и не соответствует имени таблицы, которая открыта в текущей рабочей области.

    Команда USE без имени таблицы закрывает таблицу в текущей рабочей области (если рабочая область не указана) или в рабочей области, указанной командой SELECT.

    В нашем варианте необходимо сделать следующее. Для начала сделаем активной рабочую область № 1 командой SELECT, и в ней откроем таблицу goods (команды вводим в командном окне, см. рис. 2.1). Это показано на рис.2.14.


    Рис. 2.14. Команды для открытия таблицы goods
    Теперь просмотрим содержимое поля firm_name таблицы goods. Для этого необходимо использовать команду BROWSE FIELDS FIRM_NAME.

    В рабочей области №2 откроем таблицу firms и начнем вводить в нее данные. Команды для ввода данных показаны на рис. 2.15.


    Рис. 2.15. Команды для ввода данных в таблицу firms
    Таким образом, используя команду SELECT можно переключаться между таблицами и работать с ними.
    2.2. Манипулирование данными в таблице
    Для ввода новых строк необходимо ввести в командном окне команду APPEND BLANK. Также можно в окне просмотра содержимого таблицы (с помощью команды BROWSE) нажмите комбинацию клавиш Cntr+Y. Команда APPEND без аргументов открывает окно (рис. 2.16). В этом окне можно вносить данные в таблицу, при этом после ввода строки будет добавлена следующая.

    Рис. 2.16. Окно для добавления записей в таблицу goods
    Для того чтобы удалить записи из таблицы требуется для начала выделить эту запись на удаление. Потом с помощью команды PACK физически удалить с диска. Также это можно сделать через пункт меню Table→Remove Deleted Records.

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

    1. Для текущей записи (строки) нажмите комбинацию клавиш Cntr + T или выполните команду DELETE.

    2. Выполните команду DELETE FOR <условие>, которая отмечает удаление всех записей, которые удовлетворяют указанному условию.

    3. Нажмите левую кнопку мыши на дескрипторе удаления (самый левый столбец в окне просмотра).

    Записи, отмеченные для удаления в режиме просмотра содержимого таблицы в зависимости от настроек, либо не отображаются, либо отображаются, а отмечены черным цветом перед первым полем записи (на марке удаления) (рисунок 2.17). Если команда PACK не выполнена, то при нажатии сочетания клавиш Cntr+Tв режиме просмотра содержимого таблицы для помеченной на удаление записи пометка на удаление будет отменена. Еще один способ отменить пометку на удаление текущей строки – выполнить команду RECALL.

    Рис. 2.17. Удаление строки (безвозвратно)
    Чтобы осуществить редактирование отдельных значений полей записи для этого требуется сделать просмотр содержимого таблицы с помощью команды BROWSE. Если необходимо заменить значение одного атрибута, то можно для текущей строки выполнить команду

    REPLACE <имя_атрибута>;

    WITH <новое_значение_атрибута>

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

    REPLACE <имя_атрибута>;

    WITH <новое_значение_атрибута> FOR <условие>.

    В результате выполнения следующих команд в таблицу будет добавлена новая пустая строка, а затем последовательно вместо пустых значений полей записываются пользовательские значения. Это показано на рис. 2.18.


    Рис. 2.18. Команды для редактирования отдельных значений полей
    Команда для выбора определенных записей таблицы, которые удовлетворяют данному условию, необходимо использовать фильтр, который выглядит следующим образом: SET FILTER TO <условие>.

    Если установлено SET EXACT ON, будут выбраны только те записи, которые полностью удовлетворяют указанному условию, если правило точности не установлено (SET EXACT OFF, по умолчанию), тогда будут выбраны все записи, которые удовлетворяют условию.

    Чтобы отменить фильтр, выполните команду SET FILTER TO (без атрибутов). На рис. 2.19 показан результат выполнения команды SET FILTER TO для разных условий и при заданном и выключенном правиле точности.



    Рис. 2.19. Результат выполнения команды SET FILTER TO
    2.3. Работа с индексами
    Индексы могут применяться для логической сортировки записей и создания связей между таблицами. Кроме того, чтобы ускорить доступ к данным и контролировать порядок отображения табличных записей [3].

    Ключ индекса - это имя поля таблицы или выражение, которое включает набор имен полей и логически упорядочены таблицей [1]. Индексы могут быть как простыми (состоящими из одного выражения индекса) так и составными (состоящими из нескольких выражений индекса). Индексное выражение может состоять из одного или нескольких полей в таблице. В Visual FoxPro существует четыре типа индексов. Они представлены в таблице. 2.1. [2, 3].
    Таблица 2.1

    Типы индексов



    Тип

    Описание

    1

    Regular

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

    2

    Unique

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

    3

    Candidate

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

    4

    Primary

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


    Табличные индексы хранятся в файлах, которые имеют расширение *.CDX (для составных индексов) или *.IDX (для простых индексов). Индексы таблицы можно установить на вкладке «Индексы» таблицы Table Designer (см. Рис. 2.4) или с помощью окна команд.

    Если индекс создается через командное окно, вам необходимо выполнить команды, представленные на рис. 2.20.


    Рис. 2.20. Команды для создания индексов
    По умолчанию (если не указан тип индекса unique/candidate) создается индекс типа Regular (см. табл. 2.1).

    Для того чтобы создать составной индексов выполните команду INDEX ON <имя_поля> TAG <имя_индекса>.

    Тогда индексный файл будет иметь расширение *.CDX.

    Для открытия одного или нескольких существующих индексных файлов, которые используются в текущей таблицей примените команду SET INDEX TO <имя_индекса>

    Например, чтобы создать два индекса – упорядочим записи таблицы goods по полям good_name и colour. Для этого выполним команды на рис. 2.21.



    Рис. 2.21. Создание двух индексов
    Упорядочим записи таблицы в порядке, который соответствовал бы индексу ind_good:

    SET INDEX TO IND_GOOD

    BROWSE.

    Результат выполнения этих команд показан на рис. 2.22,а.

    Затем упорядочим записи таблицы в порядке, который соответствовал бы индексу ind_col (рис. 2.22,б):

    SET INDEX TO IND_COL

    BROWSE.

    Рис. 2.22. Результат создания индексов в таблице goods
    Кроме этого, создание уникальных и неуникальных индексов можно осуществить на основе следующей команды.

    Команда SET UNIQUE ON/OFF покажет, существует ли
    файл индекса записи в котором повторялись бы значения ключа индекса.

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

    SET UNIQUE ON INDEX ON

    GOOD_NAME TO IND_UNIQ

    будет создан индекс только по уникальным значениям поля
    good_name (рис. 2.23).

    Рис. 2.23. Уникальное индексирование по полю good_name
    В результате выполнения последовательности команд

    SET UNIQUE OFF

    INDEX ON GOOD_NAME TO IND_NON_UNIQ

    будет создан индекс по всем значениям поля good_name (рис. 2.24).

    Рис. 2.24. Неуникальное индексирование по полю good_name
    Если необходимо создать индексы с помощью конструктора таблиц, то надо открыть конструктор таблиц, применив команду MODIFY STRUCTURE. Затем необходимо перейти на вкладку Indexes(рис. 2.25).

    В столбец Nameтребуется ввести имя индекса, а с помощью раскрывающегося списка столбца Type надо выбирать необходимый тип индекса (см. табл. 2.1).

    В столбце Expressionвводится выражение, по которому строится индекс (в самом простом случае это имя поля (атрибута) таблицы). Для сохранения изменений необходимо нажать на кнопку ОК.

    Рис. 2.25. Определение индексов в окне конструктора таблиц
    Индексы можно удалить с помощью конструктора таблиц или с помощью команд. Чтобы удалить индексы в конструкторе таблиц, перейдите на вкладку «Индексы», укажите индекс, который нужно удалить, и нажмите кнопку «Удалить» (см. рис. 2.16). Чтобы удалить индекс из составного индекса, вам нужно выполнить команду DELETE TAG <имя_индекса> в окне команд.
    1   2   3   4   5   6   7


    написать администратору сайта