Создание программ в среде VFP

Основные понятия систем баз данных (БД).

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

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

Пример:

STUD

FAM NAME GR KAF FOTO
Ким Иван     ● ссылка на файл
    ● ссылка на файл
  ● ссылка на файл

Совокупность всех имён полей – таблица.

Строка в таблице - кортеж (студент) с атрибутами.

KAFEDRA

KAF ZAV TEL
     
     

KAF – в БД данные взаимосвязаны. Используется вся имеющаяся информация, причём информация не должна повторятся.

Системы баз данных.

Банк данных – некий срез системы БД.

АИПС – информационно- поисковая система.

Пользователи:

а) Создатели (владельцы)

б) Администратор

в) Программисты–разработчики (разработчики СУБД)

г) Программисты-разработчики прикладных программ

д) Конечные пользователи.

Универсальный язык – с его помощью можно задать запрос. Пример:

1)QBF, QBE

FAM =(оператор) Ким
NAME = Пётр
GR    
KAF    

2) Yandex и др.

Система управления базами данных.

Определение. Система управления базами данных (СУБД) – это система, предназначенная для поддержки использования БД, и включает в себя следующие функции:

1) Создание БД: Определение данных, инициализация файлов, ввод данных с ФЛК (формально – логическим контролем).

2) Справочная функция

3) Манипулирование данными

4) Обновление данных

5) Реструктуризация данных

6) Поддержка средств программирования и проектирования приложений

7) Обеспечение целостности

8) Обеспечение безопасности

СУБД функционирует в определенной операционной обстановке и поддерживает определённую модель данных.

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

Организация БД в СУБД Visual Fox Pro (VFP)

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

STUD

FAM NAME GR KAF
Ким Иван    
   
 

2 языка, поддерживаемые Fox Pro:язык Fox Pro и SQL- стандартный язык.

Установление пути в директории по умолчанию: tools – options – file locations – default dir.

Команды:

1) Dir – содержание текущей директории

2) Create stud - создать файл с расширением dbt (Stud.dbt).

Таблица структуры файла:

name type width dec
FAM C    
NAME C    
GR C    
KAF N    
STIPA N    
FOTO G    
BIRTHDAY D    

C – Символьный тип

N- numeric – числовой тип с фиксированной запятой

G – general – хранит в таблице адрес файла с фотографией

D – Дата

По умолчанию ММ.ДД.ГГ. Set date to germane →ДД.ММ.ГГ.

MEMO – для хранения документов большого размера (текст, ссылка на файл.dbt.

LOGICAL - логический – TRUE (T, t, Y, y) или FAULSE (F, f, N, n).

3) APPEND – сист. выделенную форму:

4) BROWSE – увидеть таблицу

5) MODIFY STRUCTURE – изменить структуру

Поиск:

1) Locate for FAM = «Ким» - найти первого Кима и остановится. Continue – продолжить поиск

2) Index on FAM to ST_FAM – создание индексного файла

Индексный файл:

FAM указатель
   

Если Index on FAM-NAME to … то порядок

Ким Иван Ким Пётр Сан Иван указатель

Seek «Ким» - поиск Кима в индексированном файле.

Browse – курсор на первом Киме

3) Set filter to fam = «Ким»

Browse – строчки таблицы STUD с Кимом

То же самое с SQL командой select * from stud where fam = «Ким»

Способы установления связи между таблицами.

I. Физическое соединение двух таблиц.

Join

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

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

Select1 && активировать 1-ю раб. обл.

Use stud && открыть таблицу

Browse

Select 2 && активировать 2-ю раб. обл.

Use kafedra && открыть таблицу

Select 1

Join with kafedra to tab3 for.t. && создать третью таблицу, объединяющую две

Join with kafedra to tab3 for stud.kaf=kafedra.kaf && объединение только при совпадении.

Физический способ – очень громоздкий. В БД связи логические. Данные могут изменяться.

Правила записи команд в СУБД VFP:

1) Каждая команда записывается с новой строки

2) В командах ключевые слова и вводимые параметры разделяются пробелом

3) Строка-комментарий - * в первой позиции. Комментарий в строке - &&

4) Если в команде используется список значений, то ставится запятая

5) Признак продолжения команды в следующей строке – «;» в конце строки.

6) Сам текст программы может заканчиваться командой Return – возврат к управлению командой.

II. Установление связей с помощью команды SET RELATIONS.

Соответствует программному поиску.

STUD.dbt KAFEDRA.dbt

FAM NAME GR KAF   KAF ZAV TEL
Сан Ким Ван   Петр   К7-28   связь→   Румянцев 323..

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

Modify command poisk

Select 1

Use STUD index ST_FAM

Set Index to ST_FAM && активизировать индексный файл

Select 2

Use kafedra index KAF_KAF

(Index on KAF to KAF_KAF && должен быть заранее создан)

Select 1

Set relations to KAF into KAFEDRA.

Для установления связей между таблицами необходимо:

1) Определить родительскую и подчинённую таблицу

2) Проиндексировать подчинённую таблицу по связующему полю

3) Проверить, чтобы связующие поля в родительской и подчинённой таблице имели один тип и размер

4) Необходимо указать имя связующего поля в родительской таблице

Данная процедура устанавливает связь 1:1. Для установления связи 1:n используется команда set skip.

Set skip to KAFEDRA

FAM1=” “

@1,1 say «введите фамилию» get FAM1

READ

FAM2=alltrim(FAM1)&&отсечёт пробелы

Seek FAM2

Browse fields STUD.FAM, STUD.NAME, STUD.GR;

,STUD.KAF, KAFEDRA.KAF, KAFEDRA.ZAV,KAFEDRA.TEL.

FAM NAME GR KAF KAF ZAV TEL
Ким ### ### Петр ### ### К7-28 ### ### ### ### ### ### Румянцев ….. ….. 323… 323.. 323..

### - аналогичные строки

III. Установление связи в форме

Формы Fox Pro:

1) Типовые

1. По первой таблице

2. По 2-м связанным 1:n таблицам

2) Созданные пользователями

File – new – form – wizard –

FAM NAME  

Форма хранится в виде файла

Do form имя – запуск формы

1:n – выбрать род поля – выбрать поля дочерней таблицы – сортировка - …

Модификация форм.

В дизайнере форм добавляется один объект. При добавлении кнопки с панели инструментов: указатель –Click,…Browse – команда кнопки. При редактировании форм их необходимо закрывать.

IV. Установление связи в БД.

Сохраняется на всё время функционирования БД. Физически БД – файл.dbc.

Создание: File – New – Data base -…

Browse

Сохранённую таблицу можно добавить в БД при помощи команды Add.

Для осуществления связи в БД надо в родительской таблице указать связующее поле. Это делается заданием первичного индекса Primary key. В дочерней таблице индекс - [-]. При этом БД поддерживает целостность.

Создание отчётов в среде VFP.

Отчёт – это:

1.) печатный многостраничный документ в который включены данные из БД.

2.) Вид объекта

Создание: File – new – report – quick report

Вид отчёта:

FAM NAME GR KAF -Объекты типа Text Верхний Колонтитул
FAM NAME GR KAF -Объекты типа fields Описание строки БД
DATE() Page Gen() - Печать даты и номера стр. Нижний колонтитул

Получилось:

Report form имя – запуск отчёта.

Изменить – Report designer.

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

Создание лейблов в среде VFP.

Label (карточка) – создаётся через wizard.

1.) Выбор размера – количество столбцов, высота карточки

2.) Выбор таблицы

3.) формирование этикетки

FILE NAME GR KAF ► ◄ FAM NAME GR KAF
     

Программа – гистограмма (необходима для демонстрации возможностей работы с таблицами).

Возможности управления:

1.) кол- во столбцов

2.) выбор конкретной группы

clear && очистить экран

kol_gr = 5

@ 1,1 say “введите количество групп” get kol_gr.

Read

Clear

@ 1,1 to 20,1 &&вертикальная ось

@20,1 to 20,80 &&горизонтальная ось

@ 1,5 say “Распределение студентов по группам”

i=1

Do while i<=kol_gr

Use stud

Set uniq on &&включить уникальность

Index on GR to i1 &&индексировать по группам

Browse fields GR &&Вывести на экран список групп в алфавитном порядке выбираем номер группы.

GR1=GR

Use &&закрыть STUD

Set uniq off

Use STUD

Count for GR=GR1 to kol_st

@ 20-kol_st,i*10-5 to 20,i*10

@ 21,i*10 – 5 say GR1

@ 20 – kol_st – 1? I*10 – 3 say str(kol_st, 2,0)

i=i+1

enddo.&& пишется слитно!

Создание меню в среде VFP.

File – new – menu

Menu – generate ……….ok

Do menu1.mpe – запуск меню

Текст программы в текстовом файле.prg (modify command gist1)

Функции СУБД.

I. Создание БД. Включает определение, инициализацию файлов и ввод данных с ФЛК. К определению относится установление связей между таблицами, определение индексных файлов, определение структуры данных. Инициализация – создание пустой базы данных по заданным определениями данным. При вводе данных осуществляется формально – логический контроль (тип, размер, шаблон, одз). Он ориентирован на обеспечение целостности данных.

Создание БД осуществляется:

1) Определение

· Диалоговыми средствами

· Командами СУБД

· Средствами SQL

2) Инициализация скрыта от пользователя

3) Формы для ввода данных

II. Справочная функция – обеспечивает доступ к данным:

  • Команды поиска родной СУБД (Locate, seek)
  • Стандартизованный язык SQL (select)
  • Средства поиска для конечного пользователя

III. Манипулирование данными – работа с файлами – таблицами (переименование, удаление, соединение, объединение).

Удаление данных в некоторых системах запрещено или фиксируется.

IV. Обновление данных – замена введенных значений на другие.

Проблемы из-за изменений:

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

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

3) В многопользовательских системах необходимо осуществлять одновременное изменение данных разными пользователями – проблема тупиковых ситуаций.

V. Реструктуризация данных – изменения в определении данных: ввод и удаление столбцов, изменение размера поля, типа поля, изменение связей, индексов.

Реструктуризация проводится в следующей последовательности этапов:

1) Внесение изменений в структуру БД

2) Инициализация новой пустой БД

3) Копирование данных из старой БД в новую

4) Переименование (старая БД удаляется или ей присваивается имя.bak)

При реструктуризации данных потерь не происходит.

VI. Средства для программирования и проектирования приложений.

Средства программирования:

а) Встроенный язык программирования (Fox Pro)

б) Встроенная среда программирования (Visual Fox Pro)

в) Использование стандартного языка программирования, среды программирования с обращением к БД через команды SQL (Delphi)

г) Для языка программирования разработаны процедуры для обращения к данным (Turbo Pascal)

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

е) Встроенные key’s средства проектирования БД.

VII. Обеспечение целостности БД

Целостность – фундаментальное свойство БД. Обеспечение целостности состоит в гарантии:

1) Нерушимости данных и связей между ними, в том числе при использовании многими пользователями

2) Быстрого восстановления без потерь при сбоях и авариях

3) Контроля данных

На практике:

1) Проблема тупиковых ситуаций – 2 пользователя изменяют один файл. Используется транзакция – последовательность операций по изменению данных, такая, что либо все операции в последовательности выполняются полностью, либо все отменяются. Отмена сделанных изменений – откат. Два механизма внесения изменений:

1. 2-х фазовый протокол фиксации изменений: при внесении изменений все объекты блокируются, при подтверждении изменения – блокировка снимается.

2. Отложенная транзакция – регистрируется время начала изменения данных

2) Скачок напряжения – установка фильтров или источников бесперебойного питания. БД сама закрывается или закрывает пользователь.

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

LOG – журнал (системный) – последняя копия используется при гибели БД. В системном журнале часто сохраняются и данные оперативной памяти.

3) Контроль данных.

Осуществляется при вводе данных – ФЛК(Формально – логический контроль). Позволяет контролировать тип данных, одз, шаблоны и т.д. Существуют также другие виды контроля, например семантический – по смыслу.

VIII. Безопасность – защита данных от случайного или преднамеренного доступа лиц, не имеющих на это права.

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

Безопасность обеспечивает:

1) Проверка полномочий (имя пользователя, пароль)

2) Ограничение доступа. Существует два вида – привилегии доступа и привилегии безопасности.

Привилегии доступа – select(выбор данных),update(изменение данных),delete(удаление данных),insert(ввод данных). Привилегия доступа предоставляется пользователям разного типа (админы, владельцы и т.д.), по ролям (опр. Паролем), всем пользователям.

Привилегия безопасности – никогда группами – только конкретным пользователям. Необходимо сохранение секретных данных.

Уровни: security, владелец БД, оператор.

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

Модели данных.

Данные – описание разных явлений, предметов вне зависимости от того, доступно полное понимание его или нет.

Информация – приращение знаний.

Задача поисковых систем – давать информацию, а не данные.

Далее будем считать данные = информация.

Модель данных – представление о предметной области в виде данных и связей между ними.

Предметная область – часть реального мира, представляющая интерес для данного пользователя и отражаемая в БД.

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

Схема создания БД:

Проек-ие даталгич. модели

Схема – графическое или формальное определение логической структуры данных. Пример:

STUD

FAM NAME GR

STUD(FAM,NAME,GR) Д.Б.={STUD,KAFEDRA}.

Архитектура (общая схема) систем БД.

Эта схема – многоуровневое представление данных

Интерфейс пользователя – представление о данных конкретного пользователя

Внешний уровень – определяется внешней схемой (моделью). Представление о данных разработчика прикладных программ пользователя.

Концептуальный уровень – определяется схемой БД – общее концептуальное представление обо всех данных в БД.

Внутренняя модель определяется внешней схемой. Внутренняя модель отражает физическую последовательность данных на диске. К внутренней модели относится структура индексного файла. Внутренняя модель – представление о данных разработчика БД.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: