Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Лекция № 6




Операция деления отношений

Эта операция наименее очевидна из всех операций реляционной алгебры и поэтому нуждается в более подробном объяснении. Пусть заданы два отношения - A с заголовком {a1, a2,..., an, b1, b2,..., bm} и B с заголовком {b1, b2,..., bm}. Будем считать, что атрибут bi отношения A и атрибут bi отношения B не только обладают одним и тем же именем, но и определены на одном и том же домене. Назовем множество атрибутов {aj} составным атрибутом a, а множество атрибутов {bj} - составным атрибутом b. После этого будем говорить о реляционном делении бинарного отношения A(a,b) на унарное отношение B(b).

Результатом деления A на B является унарное отношение C(a), состоящее из кортежей v таких, что в отношении A имеются кортежи <v, w> такие, что множество значений {w} включает множество значений атрибута b в отношении B.

Предположим, что в базе данных сотрудников поддерживаются два отношения: СОТРУДНИКИ (ИМЯ, ОТД_НОМЕР) и ИМЕНА (ИМЯ), причем унарное отношение ИМЕНА содержит все имена, которыми обладают сотрудники организации. Тогда после выполнения операции реляционного деления отношения СОТРУДНИКИ на отношение ИМЕНА будет получено унарное отношение, содержащее номера отделов, сотрудники которых обладают всеми возможными в этой организации именами.

 

Контрольные вопросы.

1. Перечислите теоретико-множественные реляционные операции.

2. Перечислите специальные реляционные операции.

3. Как выполняется операция прямого произведения отношений.

4. Как выполняются операции ограничения отношения и операция проекции отношения?

 


 

 

Основные компоненты, входящие в состав приложений VFP

Приложение на VFP состоит из следующих компонентов:

- все описание приложения храниться в специальном файле проекта (расширение PJX)

 

 

 

 

В VFP принципиально изменена система организации данных. Теперь она приблизилась к теоретическим основам реляционной модели и позволяет более естественно выполнять операции реляционной алгебры.

Основная единица хранения данных — это таблица, в столбцах и строках которой содержатся данные, как это и было раньше в dbf-файле. Таблица сохранила расширение файла dbf и имеет прямую совместимость со “старыми” dbf-файлами. Таблицы объединяются в базу данных (БД), в которой можно описать все связи, устанавливаемые между полями отдельных таблиц, правила проверки, определяющие реакцию системы на вносимые изменения, добавление или удаление данных и правила проверки целостности данных в БД. Файлы баз данных имеют расширение dbc и при открытии автоматически поддерживают все перечисленные установки для входящих в нее таблиц. При необходимости мы можем создать и таблицы, не входящие в БД, — свободные таблицы.

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

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

• Первичный (Primary) — обеспечивает наличие только уникальных данных в поле, по которому построен. В таблице может быть только один первичный индекс.

• Кандидат (Candidate) — аналогичен первичному, но позволяет иметь несколько индексов этого типа для одной таблицы независимо от того, включена она в БД или нет.

• Регулярный (Regular) — обычный тип индекса, поддерживаемый в предыдущих версиях.

• Уникальный (Uniq) — при наличии одинаковых значении в поле, при активизации этого индекса обеспечивается вывод только уникальных значений. Этот тип индекса включен для поддержки совместимости.

 

Таким образом, база данных в VFP — это основной элемент организации данных, который помимо формирования структуры представления информации выполняет функции словаря данных за счет поддержки следующих функциональных возможностей:

• допускаются длинные имена таблиц;

• каждому полю и таблице можно давать комментарии;

• позволяется задавать длинные имена полей;

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

• введены значения по умолчанию для полей;

• добавлены два новых типа индексов: первичный и кандидат;

• предусмотрены правила проверки для полей и записей при изменении и вводе новых данных;

• имеются триггеры для поддержания целостности данных;

• поддерживаются постоянные связи между таблицами, размещенными в БД;

• имеются процедуры БД для описания сложных условий правил проверки;

• появились соединения с внешними источниками данных;

• поддерживаются локальные и внешние просмотры.

 

Все объекты хранятся в таблицах(за исключением файлов PRG и TXT)

 

Контейнерный файл БД (DBC) – содержит информацию о всех остальных таблицах входящих в БД. (Словарь БД) А также о различных ограничениях, значениях по умолчанию, триггерах,

Индексах, связях между таблицами, и тд.

 

Интерфейс управляемый событиями.

 

Основные элементы языка программирования Visual FoxPro.

- типы данных;

- переменные и массивы;

-рабочие области;

-операторы поиска и перемещения по записям;

-операторы циклов;

-управляющие операторы;

 

Аналогично многим языкам высокого уровня язык Visual Foxpro работает с переменными некоторого фиксированного набора типов. Т.К. основная цель языка VSFP - обработка данных из таблиц то, соответственно, и типы переменных совпадают с возможными типами полей в таблицах VFP. Имена полей могут содержать до 254 символов, но не должны содержать пробелы, не могут начинаться с цифры и включать специальные символы кроме символов подчеркивания.

Поля могут быть следующих типов:

ТИП ОБОЗНАЧЕНИЕ ДЛИНА В БАЙТАХ
Character C 1-254
Character(binary) C 1-254
Memo M Не ограничена
Memo(binary) M Не ограничена
Numeric N 1-20 цифр, 0-19 дробных деся-тичных знаков (хранятся значения от -0.99E19 до 0.99E20) Целые числа храняться в этом же формате.
Float F 20 цифр, 0-19 дробных десятичных знаков (хранятся значения от -0.99E19 до 0.99E20)
Double B 8 (фиксированная длина, допускаются значения от -4.9Е-324 до 1.8Е308)
Integer I 4 (фиксированная длина, допускаются значения от -2 147 483 647 до 2 147 483 647)
Currenсy Y 8 (фиксированная длина, допускаются значения от -9.2Е14 до 9.2Е14)
Date D 8 (фиксированная длина, допускаются значения от 01.01.100 до 31.12.9999)
DateTime T 8 (фиксированная длина, допускаются значения от 01.01.100 до 31.12.9999 плюс время от 00.00.00 до 23.59.59)
Logical L 1 (фиксированная длина)
General G Не ограничена

 

Переменные в VSFP не являюся жестко типизованными - тип переменной определяется последним присвоенным значением.

Переменные создаются либо описанием операторами Public, Private, либо оператором присваивания.

В VSFP разрешается работа с одномерными и двумерными массивами переменных. Для этого они должны быть описаны специальной командой:

DECLARE/DIMENSION <переменная> (<вырN1>[,<N2>])

[,<переменная> (<вырN1>[,<N2>])]

Нумерация элементов массива начинается с 1.

Сразу после описания все элементы массива получают тип LOGICAL и значение.F.

Тип каждого отдельного элемента определяется результатом последней операции присваивания.

Разрешается повторное описание существующего массива без потери имеющихся данных.

При обращении к элементам массива разрешено использовать круглые или квадратные скобки.

 

VSFP Может одновременно работать с большим количеством таблиц. Каждая таблица открывается в так называемой рабочей области, открывая новую таблицу Вы либо выбираете определенную рабочую область командой SELECT, либо таблица будет открыта в текущей рабочей области. Всего VSFP имеет 32767 рабочих областей. При запуске по умолчанию активизируется рабочая область 1. Таблица в текущей области открывается командой:

USE <имя таблицы>.

Открытие таблицы в конкретной области:

USE <имя таблицы> IN <номер рабочей области>.

Открытие таблицы в свободной области с наименьшим номером:

USE <имя таблицы> IN 0.

Открытой таблице VSFP назначает псевдоним (Alias) - имя длиной до 10 символов, служащее для ссылок на эту таблицу:

USE <имя таблицы> IN 0 ALIAS <псевдоним>.

 

Дополнение:

Над переменными и полями таблиц могут выполняться следующие операции:

Математические (перечислены в порядке приоритетов):

** или ^ - возведение в степень;

* - умножение, / - деление;

+ - сложение, - -вычитание;

Логические (в порядке приоритетов):

NOT - НЕ(другая форма -!);

AND - логическое И;

OR - логическое ИЛИ;

Знаки логических операций (кроме!) окаймляются точками или пробелами.

Отношения:

< - меньше, > - больше, = - равно, # - не равно,

<= - не больше, >= - не меньше.

Знаки отношения применимы как к числовым выражениям, так и к датам и символьным выражениям.

Если сравниваются символьные строки разной длины, сравнение выполняется по длине второго выражения; Остаток левого операнда, превышающий длину правого операнда, игнорируется. Существуют операции отношения только для символьных выражений:

$ -сравнение символьных строк. Операция A$B даст значение.T. если A идентично B,

либо A входит в B, и.F. в противном случае.

== - сравнение на полное тождество символьных строк и по длине, и по содержанию, включая пробелы.

Сцепления:

+ - соединение двух или более строк в одну;

- то же, но пробелы в конце первой строки помещаются в конец итоговой строки;




Поделиться с друзьями:


Дата добавления: 2015-06-25; Просмотров: 362; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.006 сек.