Компоненты Visual FoxPro
Visual foxpro как программа, состоящая из отдельных компонентов, которые используются для хранения и представления информации. Правила использования опции NULL, ее функции. Порядок поддержания ссылочной целостности базы данных с помощью конструктора.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 14.02.2014 |
Размер файла | 29,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
10
Размещено на http://www.allbest.ru/
Лекция
1. Компоненты Visual FoxPro информация текстовый ссылочный
Visual FoxPro состоит из отдельных компонентов, которые используются для хранения и представления информации. Этими компонентами являются таблицы, представления данных, формы, отчеты, запросы, программы и библиотеки. Для создания форм и отчетов используются конструкторы, поэтому эти компоненты часто называют конструкторскими объектами. Конструкторские объекты являются составными объектами, т.е. состоят из более мелких объектов (таких как поля, кнопки, диаграммы, рамки и т.д.), которые называются объектами интерфейса.
К объектам интерфейса относятся:
- Текстовые объекты
- Прямоугольники и линии
- Поля
- Кнопки
- Графические объекты
- OLE - объекты
- Страницы документов и т.д.
Каждый объект хранится в отдельном файле, причем имена файлов, содержащих основные объекты, вы задаете самостоятельно, а наименования файлов, содержащих объекты, связанные с таблицей, совпадают с именем таблицы. В зависимости от типа содержащегося в нем объекта, Visual FoxPro автоматически присваивает каждому файлу расширение, которое помогает в идентификации объекта.
Компоненты Visual FoxPro:
Формы используются для ввода и просмотра таблиц в окне формы. Формы позволяют ограничить объем информации, отображаемой на экране, и представить ее в требуемом виде. С помощью мастера вы можете создать форму, поместив в нее поля исходной таблицы, расположенные в соответствии с одним из заранее созданных шаблонов. С помощью конструктора форм вы можете создавать формы любой степени сложности.
Отчеты используются для отображения информации, содержащейся в базе данных. С помощью конструктора отчетов вы можете разработать собственный отчет, включающий группировку данных, групповые и вычисляемые поля и оформить их соответствующим образом.
Запрос является средством для извлечения информации из базы данных, причем данные могут быть распределены среди нескольких таблиц. В Visual FoxPro для формирования запросов используется способ, получивший название запроса по образцу. Используя это средство, на основании визуальной информации вы можете извлечь нужную информацию из одной или нескольких таблиц. Для выполнения более сложных запросов может быть использована конструкция SQL.
Представления данных предназначены для просмотра выборки, выполненной на основе запросов, в виде обычных таблиц. Описание представления данных хранится в словаре базы данных. Для просмотра представления данных не требуется выполнять запрос,а достаточно открыть его в режиме таблицы. Представления данных могут использоваться в формах, отчетах, при создании запросов и программ.
Программы, написанные на языке Visual FoxPro, предназначены для выполнения различных операций. При использовании объектно-ориентированного программирования, как правило, программы связаны с объектами. размещаемыми в формах. Однако, программа может выступать и в роли независимого объекта. Такие программы выполняются независимо от наличия форм на экране.
Библиотеки классов предназначены для хранения классов, созданных в Visual FoxPro. Классы могут использоваться при создании форм.
2. Создание базы данных, таблиц и индексов
2.1 Создание б.д.
Visual FoxPro является системой управления реляционными базами данных. В реляционной б.д. все все данные хранятся в виде прямоугольных таблиц, при этом все операции над базой данных сводятся к манипуляции с таблицами. Таблица состоит из строк и столбцов и имеет уникальное имя в базе данных. База данных содержит множество таблиц, связь между которыми устанавливается с помощью совпадающих полей. В каждой из таблиц содержится информация о каких-либо объектах одного типа (группы).
Н-р, в таблице ФТЭ содержится информация об эффектах, в таблице кодификаторов величин - список и коды величин, в таблице кодификаторов природы- список и коды природы. База данных содержит список этих таблиц и связей между ними. Visual FoxPro поддерживает четыре типа отношений между таблицами: один-к-одному, один-ко-многим, много-к-одному, много-ко-многим.
При проектировании реляционной базы данных вавм необходимо решить вопрос о наиболее эффективной структуре данных. Основные цели, которые при этом преследуются:
- Обеспечить быстрый доступ к данным в таблицах
- Исключить ненужное повторение данных, которое может являться причиной ошибок при вводе и нерационального использования дискового пространства компьютера. Т.е. необходимо нормализовать б.д.
- Обеспечить целостность данных таким образом, чтобы при изменении одних объектов автоматически происходило соответствующее изменение связанных с ними объектов.
Создание б.д. осуществляется в интерактивном режиме с помощью конструктора базы данных, который позволяет создавать и модифицировать таблицы, входящие в б.д., определять для них индексы. Все описание структуры базы хранится в словаре базы данных, который представляет из себя совокупность системных таблиц. В дальнейшем вы можете выбрать из него необходимую информацию о базе данных. База данных Visual FoxPro содержит также триггеры и хранимые процедуры.
2.3 Создание таблицы
В Visual FoxPro можно создавать как таблицы, входящие в базу данных, так и отдельные таблицы, аналогичные таблицам, создаваемым в предыдущих версиях FoxPro. При создании таблиц, входящих в базу данных, можно кроме наименования таблицы определить длинное имя таблицы, содержащее до 128 символов. Это имя затем будет отображаться в окне проекта,а также использоваться при создании форм, запросов и отчетов.
2.3.1 Типы полей
Каждое поле таблицы характеризуется наименованием, типом и шириной поля. Допустимыми являются данные следующих типов:
Текстовый CHARACTER, CHARACTER (binary) - максимальная ширина поля составляет 254 символа. Добавлен новый тип текстового поля Character(binary), который используется в том случае, если не требуется учитывать кодовую страницу отображаемых данных, т.е. для хранения символов с кодами ASCII от 0 до 255.
Числовой Integer, Numeric, Float, Double. Тип Integer используется для хранения только целых чисел, при этом экономится место для хранения данных и вам не потребуется дополнительный формат для отображения данных в виде целых чисел. Поля Numeric и Float содержат числовые данные в двоичном формате с фиксированной точкой. Данные этого типа занимают 8 байт оперативной памяти и могут иметь ширину от 1 до 20. Тип Float оставлен для совместимости с предыдущими версиями. Тип Double предназначен для чисел с плавающей точкой и хранит 18 разрядов в сжатом виде. Такое поле занимает ровно 8 байт.
Логический тип Logical - содержит значения, соответствующие логической истине или логической лжи. Размер поля всегда -1.
Тип даты и даты-времени Date, DateTime очень похожи. Оба хранят даты. Каждый из них требует 8 байт для хранения даты в виде YYYYMMDD - 4 цифры на год, по 2 на месяц и день независимо от того, указывается век или нет. Для типа DateTime требуется еще 6 байт для хранения времени в виде HHMMSS, где HH - часы от 00 до 23, ММ - минуты, SS - секунды. Если вы превращаете тип Date в DateTime, то автоматически устанавливается время 12:00:00. Вы можете прибавить 1 к дате и увеличить ее на один день. Точно также вы можете прибавлять по 1 секунде к переменной типа DateTime.
Поле денежного типа Currency предназначено для хранения денежных сумм. Для этого поля определена точность, равная четырем знакам после запятой, которую вы не можете изменить. Данные этого типа занимают 8 байт в оперативной памяти. Максимально возможная сумма - чуть больше 922 триллионов.
Текстовое поле произвольной длины Memo и Memo (binary)- позволяет хранить длинные текстовые строки (более 254 символов). Memo-поля обеспечивают переменный размер сохраняемой строки на основе блочной структуры. блок состоит из фиксированного числа символов (по умолчанию - 64). Это означает, что каждые следующие 64 символа в строке требуют дополнительного блока. Н-р, если у вас есть строка из 72 байт, то для “лишних” 8 байт потребуется целый 64-символьный блок.
Размер блока можно менять с помощью команды SET BLOCKSIZE. Возможные размеры от 33 до 511 байт. Блоки большего размера кратны 512 байтам и обозначаются целыми числами от 1 до 32. Visual FoxPro допускает также блоки размера 0. В этом случае Visual FoxPro в процессе записи занимает байты по одному, поэтому память не расходуется понапрасну, однако производительность будет ниже, чем при большом размере блока.
Команда SET BLOCKSIZE должна располагаться до первой записи в Memo-поле. Когда вы создаете первую запись в Memo-поле, Visual FoxPro запоминает текущий размер блока в Memo-файле. Для того чтобы изменить размер блока в Memo-файле, вам придется перезаписать каждое Memo-поле. Запомните, что независимо от размера блока первый блок резервирует 8 байт под указатель.
Почему вас должен волновать размер блока? Чем он больше, тем больше лишней памяти тратится при просмотре Memo-поля, если записи сильно отличаются по длине. С другой стороны, чем больше блоков в Memo-поле, тем медленнее Visual FoxPro их выводит. Поэтому лучше всего размер блока установить равным наиболее вероятной длине записи.
Поле Memo(binary) - может содержать двоичные данные, такие как просканированные изображения и оцифрованная музыка.
Двоичное поле произвольной длины General применяется для хранения графики. Это поле является специальной разновидностью Memo-поля. Данные поля General хранятся в том же FPT-файле, что и другие Memo-поля.
2.3.2 Свойства полей
Кроме этих основных параметров каждое поле обладает дополнительными свойствами, определяющими условия ввода данных:
Validation Rule - условие правильности ввода данных. Н-р, в таблице ФТЭ поле POGRESH (погрешность) не может принимать значение > 30. Это условие и вводится в качестве правила. Если условие не выполняется, то можно выдать свое сообщение, которое задается в текстовом поле Validation Text. Правилом проверки может быть любое логическое выражение. Если выражение слишком сложное и не помещается в одну строку, то можно вычислять его с помощью пользовательской функции. Единственное требование к такой функции - возвращаемое значение должно быть логического типа. Проверка значения поля производится в момент любого его изменения - при выходе из поля при просмотре вручную или при выполнении команд INSERT(вставить) и REPLACE (заменить).
Default Value - задание значения поля по умолчанию. Тип выражения должен совпадать с типом поля. Значение по умолчанию будет присваиваться полю каждый раз при добавлении новой записи как в программе, так и при ручном редактировании таблицы.
Caption - заголовок поля. Он используется при при просмотре или редактировании таблицы в качестве заголовка столбца.
Field Comment - это поле ввода служит для хранения информации, содержащей краткое описание поля. Эта информация записывается как Memo-поле, поэтому длина ее не ограничена. Комментарий может быть использован для любых целей или вообще не использован. Он нужен только для облегчения обслуживания таблицы.
2.3.3 Использование опции NULL
В предыдущих версиях FoxPro было невозможно определить, ввел ли пользователь пустое значение в поле преднамеренно или просто пропустил поле при вводе. Пустое поле, в зависимости от его типа, понимается как пустая строка символов, число ноль или логическая ложь. Однако все эти значения могут являться допустимыми значениями полей. Например, пустое поле города в адресе клиента может означать, что либо человек живет в поселке, либо название города просто забыли ввести. Нулевое значение в поле итоговой суммы товаров, купленных покупателем, может означать, что покупатель либо еще ничего не покупал, либо вернул все купленные товары из-за их плохого качества. Такая же неоднозначность проявляется и для полей логического типа. если женатый человек случайно пропустил вопрос “Женаты ли вы”, и соответствующее поле приняло значение логической лжи, что означает “нет”, то у жены этого человека потом наверняка возникнут вопросы по этому поводу.
Visual FoxPro позволяет решить все эти конфликты путем использования нового значения поля - NULL. Для этого, во-первых, нужно выполнить команду SET NULL ON в командном окне или в программе. Во-вторых, нужно изменить структуру таблицы, установив опцию NULL для всех полей, которые должны принимать это значение. если вы этого не сделаете, Visual FoxPro будет выдавать сообщение об ошибке при попытке добавить запись с неопределенным значением при помощи команд APPEND FROM или INSERT SQL. Значение NULL будет помещено во все поля, допускающие это значение и не содержащие информации.
Предостережение. По умолчанию использование неопределенного значения NULL в полях запрещено. Если при этом выполнена команда SET NULL ON, то поле нельзя пропустить, не введя в него информацию. Не допускайте появления пустых или неопределенных индексных полей. Для этого введите команду SET NULL ON и снимите флажки на индексных полях.
Правила использования опции NULL:
- по умолчанию команда APPEND BLANK добавляет запись с пустыми полями, а не с неопределенными значениями.
- при установке опции NULL на пустое символьное поле оно останется пустым
- при установке опции NULL на числовое поле, имеющее нулевое значение, значение поля не изменяется
- при сбросе опции NULL на символьное поле с неопределенным значением поле становится пустой строкой
- при сбросе опции NULL на числовое поле с неопределенным значением в поле заносится число ноль.
2.3.4 Свойства таблицы и хранимые процедуры
Условия достоверности ввода данных можно задать и на уровне записей. Эти условия будут являться свойствами таблицы. Проверка производится при попытке перехода на другую запись после любого изменения в текущей записи. Проверка на уровне записи обычно используется, если условие проверки требует анализа более одного поля записи. Н-р, при вводе данных о новом сотруднике можно проверить, превышает ли его возраст 18 лет. Для этого надо сравнить дату приема на работу и дату рождения. другим примером может быть отпуск товара в кредит. В этом случае при вооде новой строки в счете необходимо сравнить итоговую сумму заказа покупателя с установленным для него максимальным кредитом.
Для определения выражения проверки достоверности ввода используются поле ввода Validation Rule, в которое вводится логическое выражение. Если значение этого выражения равно (.Т.), то считается, что пользователь ввел допустимые данные и разрешается выход из записи. В противном случае Visual FoxPro не позволяет переместить указатель на другую запись и не записывает сделанные изменения, показывая при этом сообщение, заданное в поле Validation Text.
Для проверки правильности записей в Visual FoxPro введена новая функция GETFLDSTATE(). Она позволяет определить, изменилось ли поле в текущей записи за время выполнения последней команды и была ли запись помечена на удаление. Синтаксис функции:
GETFLDSTATE (имя поля ! номер поля [,псевдоним ! рабочая область])
Функция возвращает одно из значений, определяющих состояние заданного поля.
Возвращаемое значение |
Состояние записи |
|
1 |
Значение поля не изменилось. Состояние признака удаления также не было изменено |
|
2 |
Изменилось либо поле, либо признак удаления |
|
3 |
Поле в добавленной записи не изменилось и признак удаления этой записи сохранил свое значение |
|
4 |
В добавленной записи изменилось либо поле, либо признак удаления |
Эта информация выдается только для таблиц, включенных в базу данных. Информацию о всех полях текущей записи можно получить с помощью функции GETFLDSTATE(-1). В этом случае функция возвращает строку, в которой сначала находится состояние признака удаления, а за ним - состояния всех полей записи. Использование функции с аргументом 0 возвращает только состояние признака удаления. При использовании с любыми другими аргументами, кроме (-1), эта функция возвращает числовое значение.
Если правило проверки не укладывается в одно выражение, то его (правило) можно определить в виде пользовательской функции и записать как хранимую процедуру базы данных. Хранимая процедура - это процедура, хранящаяся в б.д. Она может содержать любые команды и функции, допустимые в пользовательских функциях. Хранимые процедуры при необходимости можно использовать и самостоятельно для выполнения операций, которые характерны для текущей базы данных.
Предостережение!
- Изменение любого поля записи из тела функции проверки в Visual FoxPro запрещается. Функция служит только для диагностики ошибок, но не для их коррекции.
- Проверка правильности записей выполняется при закрытии окна просмотра или экранной формы, даже если не изменив текущей записи вы затронули ее содержимое.
- Все правила проверки и процедуры проверок записаны в базе данных. Отделение таблицы от базы данных приведет к разрушению связей с этими процедурами. Сами процедуры останутся на месте, но их выполнение станет невозможным.
К свойствам таблицы также относятся триггеры. Триггер - код события уровня записи, выполняемый после операции вставки, обновления или удаления. За теми или иными событиями м.б. закреплены раздичные действия. Триггеры запускаются в последнюю очередь, после правил проверки. Триггеры могут определяться только для таблиц, входящих в состав б.д. процедуры триггеров м.б. использованы для дополнительных вычислений и проверок в описанных выше случаях. например, может потребоваться послать сообщение поставщику товара по электронной почте в случае, если определенного товара на складе осталось мало.
Имеются ограничения на использование триггеров. Вы не можете:
- перемещать указатель записи в текущей рабочей области
- изменять значения полей текущей записи
- закрыть текущую рабочую область или открыть в ней новый файл
Лучше всего использовать триггеры для обеспечения (поддержания) межтабличной целостности.
В окне свойств таблицы можно определить следующие триггеры:
INSERT - определяет действия, который будут выполняться после добавления или вставки новой записи в таблицу
UPDATE - определяет действия, которые будут выполняться после изменений записи таблицы
DELETE - определяет действия, которые будут выполняться после удаления записи из таблицы
Для определения триггеров необходимо ввести в эти поля логические выражения, которые как правило содержат вызов пользовательской функции или хранимой процедуры. Если результат выражения равен (.Т.), то заданные действия выполняются. В противнос случае выполнение не происходит и формируется сообщение об ошибке. Таким образом, с помощью триггера вы можете не только задать действия, выполняемые при возникновении события, но и определить, будут ли добавлены, модифицированы или удалены записи в таблице.
Вызов перечисленных выше триггеров происходит в следующих случаях:
вызов INSERT:
- при выполнении команд APPEND FROM, APPEND FROM ARRAY, APPEND BLANK
- когда вы добавляете новую запись в режиме BROWSE или EDIT
- при выполнении команд IMPORT (импортирует данные из файла внешнего формата, создавая новую таблицу Visual FoxPro), INSERT-SQL, RECALL
- при снятии метки об удалении записи в режиме BROWSE или EDIT
вызов UPDATE:
- при наступлении любого события, которое приводит к модификации записи (н-р, при изменении значения поля)
- при выполнении команд GATHER (замещает данные в текущей записи таблицы содержимым таблицы), REPLACE, REPLACE FROM ARRAY, UPDATE-SQL (обновляет записи в таблице)
вызов DELETE:
- при выполнении команды DELETE
- когда вы помечаете запись для удаления в режиме BROWSE или EDIT
При создании триггеров необходимо учитывать особенности их вызова:
- выполнение команды PACK не приводит к вызову триггеров
- выполнение команды ZAP(удаление из таблицы всех записей, оставляя лишь структуру) не вызывает триггер DELETE при модификации записей, помеченных для удаления, триггеры не вызываются момент вызова триггера зависит от выбранного режима буферизации данных (при работе в сети) - используется для защиты данных в многопользовательской среде. Буферизация - в 2-х режимах, выбор режима определяет время блокирования одной или нескольких записей, а также момент и условия их освобождения.
Свойства таблицы при необходимости можно менять программным путем с помощью новых команд ALTER TABLE и ALTER COLUMN. Н-р, потребовалось изменить название города по умолчанию:
ALTER TABLE tabl1 ALTER COLUMN gorod SET DEFAULT `Астрахань'
Фактически можно изменять любое свойство таблицы, помня только о том, что таблица должна входить в базу данных.
2.4 Типы индексов
Первичный ключ - столбец или столбцы таблицы, значения которых однозначно идентифицируют строку таблицы., т.е. он не может встречаться в более чем одной записи таблицы (иными словами первичный ключ должен быть уникальным).
Внешний ключ - столбец или комбинация столбцов, значения которых необходимы для сопоставления с первичным ключом в другой таблице. Используется для объединения родственных таблиц.
REGULAR - хранятся значения индексного выражения для всех записей таблицы. Если несколько записей имеют одинаковое значение индексного выражения, то каждое значение хранится отдельно и содержит ссылку на связанную с ней запись.
UNIQUE - хранятся только неповторяющиеся значения индексного выражения. Если две или более записей содержат одинаковое значение индексного выражения, то будет храниться только одно значение и ссылка на первую из записей с одинаковым значением индексного выражения. Таблица может иметь несколько уникальных индексов.
CANDIDATE - создается уникальный индекс, который не содержит полей с пустыми значениями. Этот индекс обладает всеми качествами первичного ключа и не является им только по той причине, что таблица не может содержать более одного первичного ключа.
PRIMARY - создается уникальный индекс, который используется для связывания таблиц и определения условий целостности данных. Поля, входящие в первичный ключ, не должны допускать ввод пустых значений. В отличие от уникального индекса таблица может иметь только один первичный ключ.
2.4.1 Определение отношений между таблицами
В Visual FoxPro можно устанавливать постоянные и временные отношения между таблицами. Постоянные отношения хранятся в словаре базы данных. Они автоматически используются каждый раз при открытии таблиц. Наличие постоянных отношений особенно полезно при создании представлений, запросов, форм и отчетов. Временные отношения создаются командой SET RELATION и в отличие от постоянных отношений аннулируются при выходе из Visual FoxPro или при выполнениии новой команды SET RELATION.
При определении типа отношений (один-к-одному, один-ко-многим, много-к-одному, много-ко-многим) необходимо соблюдать следующие правила:
- исходная (та, которую относят к другой, т.е. дочерняя) таблица должна иметь индекс PRIMARY или CANDIDATE. Определить постоянное отношение исходя из обычного (REGULAR) или уникального (UNIQUE) индекса невозможно.
- в том случае, если первичный ключ исходной таблицы присоединяется к первичному (PRIMARY) или CANDIDATE индексу другой таблицы, то отношение считается типа один-к-одному, так как оба индекса уникальные и включают в себя каждую запись таблицы. Присоединение к индексу другого типа (обычному или уникальному) предполагает отношение один-ко-многим, потому что допускает наличие в подчиненной таблице повторяющихся записей. Уникальный индекс ведь не запрещает наличие записей с одинаковыми значениями индексного выражения, а просто содержит ссылку только на одну из таких записей.
2.5 Определение условий целостности данных
Установленные отношения между таблицами могут быть использованы для задания условий целостности данных. Целостность данных является одним из самых важных требований, предъявляемых к базам данных. Н-р, в таблице природы удалим запись с механической природой (код и название), в связанной с ней таблице ФТЭ вы не сможете определить название природы по коду. Т.е. говорят, что в этом случае нарушена ссылочная целостность.
Ссылочная целостность - это правила, обеспечивающие непротиворечивость данных, особенно в случае отношений между первичными и внешними ключами различных таблиц. Visual FoxPro следит за ссылочной целостностью с помощью пользовательских правил уровня полей и правил уровня записей. С помощью конструктора ссылочной целостности можно сформировать правила для управления вставкой, обновлением и удалением записей в связанных таблицах. Эти правила также как и правила проверки на уровне полей и записей, сохраняются в словаре базы данных.
Проверка целостности может осуществляться программными средствами. Однако более правильным является определение условия целостности данных на уровне базы данных, так как в этом случае ни одно приложение не может нарушить целостность данных.
2.6 Определение правил поддержания ссылочной целостности базы данных с помощью конструктора
CASCADE - при изменении значений полей первичного ключа или ключа-кандидата в родительской таблице автоматически осуществляется каскадное изменение всех соответствующих значений в дочерней таблице. ( пример - изменение кода природы). При удалении записи в родительской таблице автоматически осуществляется каскадное удаление всех записей из дочерней таблицы, связанных с удаляемой записью. Н-р, от услуг некой фирмы отказался какой-либо клиент. В родительской таблице имеется его код и фамилия, в дочерней - список платежей этого клиента и других клиентов. При удалении из родительской таблицы записи с данными об этом клиенте, в дочерней удаляются все его платежи.
RESTRICT - не позволяет изменять значения полей первичного ключа или ключа-кандидата в родительской таблице, если в дочерней таблице имеется хотя бы одна запись, содержащая ссылку на изменяемую запись. Не позволяет удалять записи в родительской таблице, если в дочерней таблице имеется хотя бы одна запись, содержащая ссылку на удаляемую запись. При попытке удаления записи возникает ошибка, которую вы можете обработать программно.
IGNORE - позволяет изменять значения полей первичного ключа или ключа-кандидата ( или удалять записи) в родительской таблице, независимо от существования связанных записей в дочерней таблице. Целостность данных при этом не поддерживается.
Правила для добавления записей действуют со стороны дочерней таблицы:
RESTRICT - запрещает добавление записи к дочерней таблице, если в родительской таблице отсутствует запись с подходячщим значением ключа.
IGNORE - не выполняется никаких проверок на целостность.
После определения правил для всех отношений в базе данных происходит создание ряда триггеров и хранимых процедур. Если соответствующие триггеры и процедуры уже существовали, то перед их перезаписью делается резервная копия. Если вы ранее написали хранимые процедуры для джругих целей (н-р, для проверки правильности), то их придется скопировать вручную из резервной копии в базу данных.
Предостережение. Если вы изменили одну из таблиц, вовлеченных в отношения, их индексы или сами отношения, повторите запуск конструктора ссылочной целостности. Это поможет уточнить процедуры, согласовав их со сделанными изменениями.
2.6.1 Определения других типов ссылочной целостности
Конструктор ссылочной целостности - это не единственный способ определения общих правил поддержания ссылочной целостности базы данных. Существует множество других правил, таких как:
Ограниченная вставка - предотвращает добавление к родительской таблице записи, не удовлетворяющей одному из внешних ключей (эти ключи содержатся в специальном файле). Эта возможность может использоваться, н-р, для ограничения адресов возможных клиентов.
Ограниченная замена - аналогична ограниченной вставе. Она не позволяет изменить запись, если новое значение этой записи не удовлетворяет ни одному из внешних ключей.
Запрещенное удаление - предотвращает удаление записи из дочерней таблицы, если на нее есть ссылки в родительской таблице. Н-р, в таблице банковских реквизитов нельзя удалять записи, если на них есть ссылки в таблице клиентов.
Запрещенная замена - запрещает изменение записи дочерней таблицы, пока на нее есть ссылки в родительской таблице.
Каскадное удаление - удаляет все дочерние записи при попытке удалить родительскую запись.
Объединяющая замена - при изменении дочерней записи такие же изменения деляются автоматически во всех родительских записях.
Обнуляющее удаление - позволяет удалить дочернюю запись, но изменяет все ссылки на нее в родительской таблице на значения (.NULL.)
Обнуляющая замена - позволяет изменить ключевое поле дочерней записи, но при этом все ссылки на эту запись принимают значение (.NULL.)
Удаление по умолчанию - аналогично обнуляющему удалению, но ссылки на удаленную запись принимают значение не (.NULL.), а какое-то определенное значение по умолчанию.
Замена по умолчанию - аналогична обнуляющей замене, только ссылки на запись вместо .NULL. устанавливаются в определенное значение.
Предупреждающее удаление - позволяет удалить запись из дочерней таблицы, но при этом предупреждает пользователя о том, что в родительской таблице остались ссылки на несуществующую запись.
Предупреждающая замена - позволяет изменить ключевое поле дочерней записи, предупреждая при этом о наличии неправильных ссылок в родительской таблице.
Во многих случаях приходится одновременно использовать несколько перечисленных выше методов. В некоторых ситуациях необходим более строгий контроль, в других - менее. Но если вы в базе данных через конструктор или программным путем определите триггеры, то даже при работе в интерактивном режите никакой пользователь не сможет испортить ваши таблицы и нарушить ссылочную целостность в них.
Контейнерный файл базы данных.
Контейнерный файл базы данных - это файл, имеющий расширение .DBC и содержащий информацию обо всех остальных таблицах, входящих в состав базы данных. С .DBC файлом связан файл .DCT, содержащий memo-поля контейнерного файла б.д. и .DCX-файл, являющийся структурным индексом файла б.д.
Таблица контейнерного файла б.д. хранит справочную информацию обо всех типах объектов: полях, принимаемых по умолчанию значениях, установленных ограничениях, триггерах, индексах, связях между таблицами, информацию о локальных и удаленных представлениях, а также длинные имена таблиц и полей, хранимые процедуры, связи с удаленными источниками данных.
Имя поля |
Тип данных |
Длина |
Назначение поля |
|
OBJECTID |
Integer |
4 |
Ключевое поле - порядковый номер |
|
PARENTID |
Integer |
4 |
Указатель на родительский объект. Для таблиц и представлений представлений подительским объектом является база данных, поэтому их указатели показывают на первые четыре записи этой таблицы |
|
OBJECTTYPE |
Character |
10 |
Длинное имя объекта |
|
OBJECTNAME |
Character |
128 |
Двоичный код свойств этого объекта |
|
PROPERTY |
Memo(binary) |
4 |
Двоичный код программ этого объекта |
|
CODE |
Memo(binary) |
4 |
Флажки, обеспечивающие ссылочную целостность данных |
|
RIINFO |
Character |
6 |
Поле расширения, которое можно использовать в своих целях |
|
USER |
Memo |
4 |
Последнее поле в таблице контейнерного файла б.д. является неопределнным и может использоваться для расширения возможностей создаваемого приложения. Записи в таблице контейнерного файла представляют отдельные поля, индексы, таблицы, связи, представления и одиночные соединения. Некоторые из записей хранят информацию о самой б.д., они имеют тип Database.
Use baza1.dbc
Browse
Имя базы данных, к которой относится таюлица, фиксируется в заголовке файла таблицы .DBF. Включение маркера файла .DBC в заголовке .DBF-файла повлекло за собой некоторое увеличение размера этого заголовка и послужило причиной того, что .DBF-файлы FoxPro версии2.х, не имеют обратной совместимости с файлами VFP. Если вы захотите сохранить файл .DBF формата VFP в формате FoxPro 2.x, вся информация о связи с б.д. будет потеряна.
Размещено на Allbest.ru
...Подобные документы
Теоретические основы создания баз данных в Visual Foxpro 9.0. Описание программы, использование ее команд. Создание табличной базы данных, отношений между таблицами в многотабличной базе данных больных в больнице. Редактирование табличного отчета.
курсовая работа [681,2 K], добавлен 19.12.2013Создание базы данных в Visual FoxPro. Упорядочивание данных в таблицах. Определение отношений между таблицами и проверка условий целостности данных. Расширенные SQL-запросы и безусловная выборка значений. Использование квантора существования в запросах.
методичка [926,3 K], добавлен 30.09.2013Базы данных и системы управления базами данных. Структура простейшей базы данных, свойства полей. Понятие языка SQL. Проектирование баз данных, режимы работы, объекты. СУБД Microsoft Access. Создание базы данных "Электротовары" средствами Visual FoxPro.
курсовая работа [5,7 M], добавлен 29.04.2014Обзор возможностей, базовых классов и элементов управления Microsoft Visual Foxpro, описание функций и возможностей языка SQL. Постановка задачи, руководство пользователя и листинг программы. Компоненты информационной системы, основные функции СУБД.
курсовая работа [360,1 K], добавлен 12.06.2010Відомості про бази даних, їх історія становлення та загальна інформація про Microsoft Visual FoxPro. Установка Visual FoxPro, створення проекту, таблиць, запитів. Аналіз реляційної бази даних. Прийоми проектування і реалізації реляційної бази даних.
курсовая работа [1,6 M], добавлен 22.04.2019Разработка инфологической и даталогической моделей. Особенности реализации базы данных оказания платных образовательных услуг в СУБД Visual Foxpro и Interbase. Описание и обоснование набора введенных индексов, правил поддержки ссылочной целостности.
курсовая работа [291,3 K], добавлен 21.05.2013Описание модели предметной области, построение функциональной модели. Проектирование структуры базы данных, реализация спроектированной базы данных при помощи СУБД Visual FoxPro. Создание форм при помощи мастера форм, построение исполняемого файла.
лекция [4,0 M], добавлен 04.11.2009Компоненты и классификация банков данных. Модели данных: иерархическая, сетевая, реляционная, постреляционная, многомерная, объектно-ориентированная. Настольные системы управления базами данных: VisualdBase, Рarаdох, Microsoft FoxРrо и Visual FoxРrо.
курсовая работа [849,8 K], добавлен 25.04.2015Описание предметной области. Организация диалога пользователя с компьютером. Определение важных для предметной области объектов, их свойств и отношений друг с другом. Среда разработки базы данных - Microsoft Visual FoxPro 6.0. Требования к приложению.
курсовая работа [880,1 K], добавлен 11.01.2012Общая характеристика деятельности Калининградского филиала федерального государственного бюджетного учреждения "Центр системы мониторинга рыболовства и связи". Инструктаж на рабочем месте. Анализ базы данных предприятия с помощью программы Visual FoxPro.
отчет по практике [18,7 K], добавлен 10.02.2014Алгоритм разработки базы данных и сопровождающей ее программы, предназначенных для автоматизированного учета услуг спортивного клуба. Инфологическое, даталогическое проектирование. Разработка приложений баз данных в среде Visual FoxPro 5.0 InterBase.
курсовая работа [593,9 K], добавлен 01.04.2013Реализация базы данных, содержащей несколько таблиц, а также информационных запросов, форм и отчетов к ней в СУБД FoxPro. База данных "Справочник Меломана" спроектирована для быстрого поиска исполнителей и информации об их творческой деятельности.
курсовая работа [5,8 M], добавлен 28.04.2012Разработка базы данных FoxPro (БД), листинг программы. Работа с несколькими таблицами и установление взаимосвязей между ними. Система меню, формирование отчетов. Использование расширенных средств ввода и вывода данных. Организация справочной системы.
дипломная работа [1,7 M], добавлен 20.08.2009Анализ требований к базе данных. Концептуальная (инфологическая) модель предметной области. Сопоставление компонентов логической и физической модели. Создание форм, запросов и отчетов в среде СУБД Visual FoxPro 8.0. Расчеты по аккредитивам и чекам.
курсовая работа [1,7 M], добавлен 24.06.2013Автоматизация учета складских операций с целью организации компьютеризации документооборота и учетных операций с помощью Microsoft Visual FoxPro 6.0. Описание структуры базы данных. Этапы проектирования БД. Выбор программного и технического обеспечения.
курсовая работа [1,1 M], добавлен 26.12.2011Создание средств накопления больших объемов информации на машинных носителях. Системы управления базами данных. Создание компьютерной техники и программного обеспечения. Структурированные взаимосвязанные данные и их хранение. Приложения Visual FoxPro.
курсовая работа [609,7 K], добавлен 12.05.2009Требования к MS Office 2007. Набор средств разработки Visual Studio Tools for Office как альтернатива VBA. Разработка СУБД на базе MS Access. Разработка надстройки "Электронные компоненты" для PowerPoint на языке C# в среде MS Visual Studio 2010.
дипломная работа [5,2 M], добавлен 03.05.2013Построение инфологической модели данных каталога магазина цифровых дисков. Окно создания новых файлов. Типы данных в Visual FoxPro. Список типов индекса. Структура таблиц, связи между ними. Настройка внешнего вида формы. Выбор поля для сортировки данных.
курсовая работа [4,3 M], добавлен 24.09.2013Системный анализ и оценка требований к базе данных. Концептуальная (инфологическая) модель предметной области. Построение ERD-диаграммы и физической модели в методологии IDEF1X. Составление форм, запросов и отчетов в среде СУБД Visual FoxPro 8.0.
курсовая работа [1,3 M], добавлен 24.06.2013История возникновения систем управления базами данных (СУБД). Непосредственный и программный режимы работы СУБД Visual FoxPro. Активное использование форм, запросов и отчетов. Разработка информационной базы данных "Оптовая база". Создание файла базы.
курсовая работа [2,5 M], добавлен 05.01.2015