База данных Visual FoxPro 6.0 (основные понятия и инструментальные средства среды разработки)

Содержание

Слайд 2

Что такое SQL

SQL (Structured Query Language) - язык структурированных запросов: является универсальным

Что такое SQL SQL (Structured Query Language) - язык структурированных запросов: является
языком для создания, модификаций и управления данными в реляционных базах данных.
Историческая справка:
предложен в 1970 И.Ф. Коддом (E.F.Codd) в исследовательской лаборатории IBM
начало 80-х Oracle Relational Technology создаёт СУБД на основе SQL
в 1989 уже существует более 25 SQL-подобных СУБД
в 1983 выходит ANSI-стандарт (American National Standards Institute) SQL, а в 1992 расширенный стандарт (SQL2 или SQL-92). Все промышленные версии стараются поддерживать ANSI-SQL, но не обеспечиваю его полностью, однако, каждая из них имеет свои расширения, стремясь покрыть требуемые функциональные возможности.

Слайд 3

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

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

Общие требования к реляционной СУБД

Слайд 4

Данные в реляционной СУБД

Отношение (relation), таблица (table), файл (file)

Вся информация представлена

Данные в реляционной СУБД Отношение (relation), таблица (table), файл (file) Вся информация
в виде таблиц:

Атрибут (attribute), столбец (column), поле (field)

Кортеж (tuple), строка (row), запись (record)

Ячейка (cell), адрес (addres), значение атрибута (alltibute value)

Слайд 5

В реляционных СУБД обычно существует два типа таблиц:
пользовательские таблицы (user tables)
системные таблицы

В реляционных СУБД обычно существует два типа таблиц: пользовательские таблицы (user tables)
(system tables).
В VFP системные таблицы в виде одной единственной таблицы-файла с расширением dbc. Обычно также системные таблицы объединяются в системную базу данных (в MS SQL Server например, это база Master)
Системные таблицы (известные также под названием системный каталог [system catalog]) содержат описания баз(ы) данных. Доступ к этим таблицам обычно открыт и осуществляется либо через системные процедуры-функции либо непосредственно.
Независимость данных в реляционных СУБД обеспечивается на двух уровнях:
Физическая независимость - означает независимость от способа физического хранения данных.
Логическая независимость - означает, что правильное функционирование не зависит от изменений, вносимых в структуру пользовательских данных.

Структура СУБД

Слайд 6

Язык программирования

Единый язык высокого уровня, позволяющий:
описывать данные (data definition)
манипулировать данными (data manipulation)
вести

Язык программирования Единый язык высокого уровня, позволяющий: описывать данные (data definition) манипулировать
администрирование данных (data administration)
Любая операция осуществляется посредством:
операторов (statement)
команд (command)
Манипулирование с данными различается на
выборку данных (data retrieval) или запросы к данным (data queries)
модификация данных (data modification)
Язык SQL является непроцедурным языком (nonprocedural language)

Слайд 7

База данных

Является источником данных приложения
Свою информацию хранит в файлах с расширениями:
*.dbc -

База данных Является источником данных приложения Свою информацию хранит в файлах с
основные данные
*.dct - memo поля
*.dcx - индексы

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

Структура файла:

Слайд 8

Объекты базы данных

Таблицы
локальные представления
удалённые представления
соединения с вн. источниками
сохранённые процедуры

Каждый из объектов имеет

Объекты базы данных Таблицы локальные представления удалённые представления соединения с вн. источниками
ряд своих свойств, значения которых хранятся в базе данных.
Кроме того, таблицы хранятся в файлах с расширениями: *.dbf, *.fpt, *.cdx

Слайд 9

Работа с объектами базы данных

создать таблицу
добавить таблицу
создать удалённое представление
создать локальное представление
вызвать

Работа с объектами базы данных создать таблицу добавить таблицу создать удалённое представление
среду редактирования текущего объекта
просмотр таблицы значений объекта
удалить объект из базы данных
найти объект базы данных
обновить индексы
удалить записи, отмеченные на удаление
редактировать межтабличные отношения
редактирование признаков ссылочной целостности
редактирование сохранённых процедур
редактирование соединений с внешними источниками
переустановить расположение объектов
обновить данные об объектах базы данных
выполнить команду PACK для базы данных
вызвать диалог редактирования свойств базы данных

Слайд 10

Работа с объектами базы данных

раскрыть все
свернуть все
найти объект

список
удалить
свернуть
редактировать
помощь

...

удалить
редактировать
целостность
помощь

База данных:

Таблица:

Отношение:

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

Слайд 11

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

Name - название таблицы
DeleteTrigger - триггер (хранимая процедура особого типа, которую

Список свойств таблицы Name - название таблицы DeleteTrigger - триггер (хранимая процедура
пользователь не вызывает непосредственно, а исполнение которой обусловлено действием по модификации данных удаления записи из таблицы
InsertTrigger - триггер добавления записи в таблице
UpdateTrigger - триггер изменения записи в таблице
Path - месторасположение таблицы
PrimaryKey - первичный ключ таблицы
RuleExpression - предикат контроля значений полей уровня записи
RuleText - сообщение об ошибки значений полей
Comment - комментарий таблицы

Слайд 12

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

Name - alias таблицы
Record validation - функция контроля данных полей уровня

Свойства таблицы Name - alias таблицы Record validation - функция контроля данных
записи:
Rule - функция-предикат(это утверждение, истинность которого зависит от значения переменных, входящих в него).
Message - строка-сообщение об ошибки
Triggers - функции-предикаты, вызываемые при событиях: добавления (Insert), изменения (Update), удаления (Delete) данных записи. У буферизованных таблиц при вызове функции TABLEUPDATE()

Все перечисленные свойства сохраняются в базу данных Visual FoxPro,
и следовательно недоступны для свободных (free) таблиц.

Это название отображается в Project Manager
и используется как alias при открытии таблицы

Эти функции автоматически обновляются
при переустановках в Referential Integrity

Это свойство редактируется также из Project Manager
см. Description

Слайд 13

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

Name - название поля
Type - тип поля
Size - размер поля
Format

Свойства поля таблицы Name - название поля Type - тип поля Size
- формат поля
InputMask - шаблон поля
Caption - заголовок поля
RuleExpression - предикат контроля значения поля
RuleText - сообщение об ошибки значения поля
DefaultValue - значение поля по умолчанию
DisplayLibrary - библиотека элементов управления
DisplayClassLibrary - название класса поля
Comment - комментарий поля

Слайд 14

Поля таблицы

Name - название поля (до 128 символов в *.dbc)
Width -

Поля таблицы Name - название поля (до 128 символов в *.dbc) Width
общая длина
Decimal - количество знаков после точки
Index - автоматически добавляет Regular индекс в CDX-файл *
NULL - признак допустимости NULL значения поля

Type - типы полей:

*

*

*

*

Используя эту кнопку,
Вы можете изменить порядок полей

Слайд 15

Поля таблицы

Display - обеспечивает форматирование для операции ввода /вывода:
Format - задаёт

Поля таблицы Display - обеспечивает форматирование для операции ввода /вывода: Format -
размер и стиль отображения для Browse, Form и Report
Input mask - обеспечивает шаблон ввода данных
Caption - задаёт заголовок столбца/названия поля для Browse, Form и Report

Это свойство редактируется также из Project Manager
см. Description

Слайд 16

Свойства индекса таблицы

Name - название индекса
Order - направление сортировки индекса
Type -

Свойства индекса таблицы Name - название индекса Order - направление сортировки индекса
тип индекса
Expression - определяющее выражение индекса
Filter - фильтрующее выражение индекса

Слайд 17

Индексы таблицы

Order - определяет порядок сортировки данных поля
Name - название индекса (до

Индексы таблицы Order - определяет порядок сортировки данных поля Name - название
10 символов)
Type - определяет тип индекса
Expression - «определяющее» выражение для значений индекса
Filter - «фильтрующее» выражение значений индекса

Primary - не допускает повторение значений, один на таблицу.
Candidate - тоже, что и Primary, но может быть несколько в таблице.
Unique - допускает повторения, но сохраняет только одно значение.
Regular - не контролирует значения.

Используя эту кнопку,
Вы можете изменить порядок индексов

Слайд 18

Свойства отношения

Application - ссылка на объект приложения, содержащий данный
ChildAlias - название подчинённой

Свойства отношения Application - ссылка на объект приложения, содержащий данный ChildAlias -
таблицы
ChildOrder - индекс подчинённой таблицы
Comment - комментарий
Name - название
OneToMany - признак один-ко-многим
ParentAlias - название родительской таблицы
RelationalExpr - реляционное выражение родительской таблицы
Tag - дополнительная информация

Слайд 19

Обеспечение ссылочной целостности данных

Щёлкнув левой клавишей мыши на первичном ключе родительской

Обеспечение ссылочной целостности данных Щёлкнув левой клавишей мыши на первичном ключе родительской
таблицы и не отпуская клавиши, переместите указатель мыши на индекс подчинённой таблицы.
Названия индексов:
в родительской - первичный (primary) [только один в таблице]
в подчинённой - внешний (foreign) [может быть несколько в одной таблице, и соответствует числу родительских таблиц]

Возникнет связь

Слайд 20

Список свойств представления (view)

Name - название представления
BatchUpdateCount - количество update-операторов
CompareMemo - включать

Список свойств представления (view) Name - название представления BatchUpdateCount - количество update-операторов
ли memo в WHERE
ConnectName - имя используемого соединения
FetchAsNeeded - использовать ли выборку данных
FetchMemo - выбирать ли memo поля
FetchSize - количество записей в выборке
MaxRecords - максимальное количество требуемых записей
Offline - является ли отсоединённым представлением
ParameterList - список параметров и их типов
Prepared - повторно используемый ли запрос (допустимо ли REQUERY())
RuleExpression - выражение контроля уровня записи
RuleText - сообщение об ошибке контроля уровня записи
SendUpdates - требуется ли посылка изменений источнику
ShareConnection - разделяемое ли соединение используется
SourceType - тип представления
SQL - SQL-оператор

Tables - список используемых таблиц
UpdateType - способ выполнения изменений
UseMemoSize - минимальная длина memo-полей
WhereType - способ формирования WHERE
Comment - комментарий таблицы

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

Слайд 21

Представления (view) среда редактирования

Позволяет создать /изменить SQL запрос к данным, в

Представления (view) среда редактирования Позволяет создать /изменить SQL запрос к данным, в
результате выполнения которого, получается Vfp cursor
В верхней части диалога отображается схема используемых таблиц и межтабличных связей
В нижней, на закладках: Fields, Join, Filter, Order By, Group By, - обеспечивается возможность изменения соответствующих частей SQL-оператора
На закладке Update Cretaria Вы можете настроить режимы взаимодействия с источником данных
В Miscellaneous Вы можете дополнительно ограничить число записей (или их %), а также исключить дублирование данных

Условия межтабличных объединений
Вы можете определять используя
левую клавишу мыши

Слайд 22

Список свойств соединения

Name - название соединения
Asynchronous - допустим ли Asynchronous режим соединения

Список свойств соединения Name - название соединения Asynchronous - допустим ли Asynchronous

BatchMode - допустим ли Batch режим соединения
ConnectString - строка параметров соединения
ConnectTimeout - Timeout соединения
Database - Database соединения
DataSource - DSN соединения
DispLogin - режим диалога ввода пароля ODBC
DispWarnings - допустим ли вывод сообщений
IdleTimeout - время ожидания закрытия
PacketSize - размер сетевого пакета
PassWord - PWD соединения
QueryTimeout - время ожидания результата
Transactions - транзакционный режим
UserId - UID соединения
WaitTime - время задержки контроля завершения запроса
Comment - комментарий соединения

Слайд 23

Соединения с внешними источниками данных

Внешние источники данных должны быть специфицированы в

Соединения с внешними источниками данных Внешние источники данных должны быть специфицированы в
ODBC Data Source Administrator.
В Visual FoxPro базе данных может быть использовано несколько таких источников, в качестве соединений к внешним данным, редактируемых из диалога Connections.
Внешние представления(Remote view) имеют имя соединения в качестве свойства, параметры которого прозрачно используются для получения соединения с внешним источником данных.

Слайд 24

Параметры соединения

Specify data source - определяет внешний источник данных
возможны два варианта:
Data

Параметры соединения Specify data source - определяет внешний источник данных возможны два
source, userid, password - повторяют параметры источника, зарегистрированного в ODBC Administrator.
Connection string - задаёт строку, содержащую перечисление параметров и их значений, используя ‘;’ в качестве разделителя.
Verify Connection... - может быть использована для проверки работоспособности соединения.
New Data Source… - вызывает диалог ODBC Administrator
Display ODBC login prompt - определяет должен ли вызываться диалог ввода пароля при установке соединения: Когда необходимо, Всегда, Никогда.
Оставшаяся часть диалога позволяет задать ряд параметров ODBC соединения, которые могут отличаться от задаваемых по умолчанию

Нажатие кнопки OK приводит к диалогу сохранения параметров соединения под некоторым именем в базу данных Visual FoxPro, которое в дальнейшем используется Внешними представлениями (Remote view) в качестве соединения. Список соединений базы данных редактируется из диалога Connections.

Этот диалог может быть вызван из Project Manager

Слайд 25

Сохранённые процедуры

Список всех сохранённых процедур удобно представлен в Project Manager.
Язык написания -

Сохранённые процедуры Список всех сохранённых процедур удобно представлен в Project Manager. Язык
это подмножество языка Visual FoxPro, ориентированное на работу с данными.
Если Вы используете контроль ссылочной целостности, генерируемый средствами Visual FoxPro, не пытайтесь редактировать полученный код вручную.

Если у Вас возникла необходимость сделать чего-нибудь с данными, не задумываясь оформляйте это в виде сохранённой процедуры, никак не следует делать это методом конкретного экземпляра формы.
При обращении к сохранённым процедурам контролируйте активность базы данных