
- •1.Субд FoxPro 2.0. Команды создания, открытия и закрытия бд. Рабочие области.
- •Краткая характеристика foxpro
- •2.Субд FoxPro 2.0.Коменда изменения структуры бд,дополнения и редактирования.
- •3. Команды FoxPro: If и Case.
- •4. Циклы в foxpro while, for, scan
- •5 Структура команд субд FoxPro
- •Команды вывода list и display
- •Команды перемещения по базе данных
- •Функции, связанные с указателем записи
- •Команды удаления данных
- •Команда изменения значения поля бд
- •Ускоренный поиск
- •Приблизительный поиск
- •8.Команда создания новой базы данных.
- •9 Команда sql по дополнению бд
- •Команда sql по дополнению бд
- •10 Команда sql по удалению записей (для Visual FoxPro)
- •Команда sql по удалению записей (для Visual FoxPro)
- •11 Общий вид команды формирования запроса select.
- •Указание результатов выборки и источника данных
- •Указание объекта, куда пересылается выборка:
- •Критерий отбора данных:
- •Группировка данных
- •Сортировка данных
- •12 Нормализация структуры данных.
- •Нормализация данных при реляционном подходе
- •Нормализация структуры данных
- •13 Нормализация отношений.
- •Пример нормализации отношений
- •14 Реляционные операторы.
- •Традиционные операции над множествами. Объединение (union).
- •Пересечение (intersect).
- •Вычитание (minus).
- •Произведение (times).
- •15 Специальные реляционные операторы: выборка, проекция, соединение, деление. Выборка (where)
- •Проекция [ ].
- •Соединение ( join ).
- •Деление (divideby)
- •Примеры реляционных выражений.
Пример нормализации отношений
Рассмотрим нормализацию отношений на примере деятельности торговой фирмы, выполняющей заказы по поставке продуктов. Пусть каждый заказ оформляется в виде таблицы со строками, состоящими из следующих полей (атрибутов):
1) Номер заказа - тип числовой (или счетчик);
2) Код клиента- тип числовой (или символьный);
3) Наименование клиента- тип символьный;
4) Адрес клиента- тип символьный;
5) Код продукта - тип числовой (или символьный);
6) Название продукта - тип символьный;
7) Количество- тип числовой (кг или шт.);
8) Дата поставки - тип даты (дд.мм.гггг);
9) Цена- тип числовой (руб/кг);
10) Стоимость- тип числовой (руб).
Такая таблица содержит в каждой строке полную информацию о соответствующем заказе, что позволяет вести учет и анализ деятельности фирмы. Кроме того, эта таблица представляет собой универсальное отношение.
Найдем детерминанты, то есть атрибуты А, от значений которых однозначно зависят атрибуты В.
Очевидные детерминанты:
1) Код клиента (от него зависят такие атрибуты как Наименование клиента и Адрес клиента- это полная функциональная зависимость);
2) Код продукта (от него зависят атрибуты Название продукта и Цена- это полная функциональная зависимость);
3) Номер заказа (однозначно идентифицирует заказ, кроме того атрибуты Код клиента, Код продукта, Количество, Дата поставки однозначно зависят от этого атрибута).
Первая нормальная форма требует атомарных значений атрибутов. Это касается поля Адрес клиента, то есть необходимо расписать это поле на несколько полей. Например, на поля Улица, Дом, Квартира. Повторяющихся групп в нашей таблице нет.
Вторая нормальная форма требует убрать из таблицы частичные функциональные зависимости. У нас это выполняется путем создания двух новых отношений (таблиц) с именами
1) Клиенты (поля: Код клиента, Наименование клиента, Улица, Дом, Квартира );
2) Продукты (поля: Код продукта, Название продукта, Цена).
Третья нормальная форма требует убрать зависимость между неключевыми атрибутами. У нас это касается поля Стоимость. Это поле - вычисляемое поле и его надо вообще убрать из таблицы.
Нормальная форма Бойса- Кодда (BCNF) требует, чтобы каждый детерминант являлся возможным ключом. В новых таблицах поля Код клиента и Код продукта будем считать ключевыми полями соответственно таблиц Клиенты и Продукты. В таблице Заказы ключевым полем является поле Номер заказа.
Так как в наших трех таблицах отсутствуют многозначные зависимости, то требования 4NF, то есть четвертый нормальной формы, выполняются. Итак, в результате нормализации отношений получили три таблицы:
1) Оперативная таблица Заказы:
____________________________________________
|Номер | Код |Количество| Код | Дата |
|заказа|продукта| |клиента| поставки|
|______|________|__________|_______|_________|
| ... | ... | ... | ... | ... |
|______|________|__________|_______|_________|
2) Справочная таблица Продукты:
________________________________________
| Код продукта | Название продукта| Цена |
|______________|__________________|______|
| ... | ... | ... |
|______________|__________________|______|
3) Справочная таблица Клиенты:
__________________________________________
| Код |Наименование|Улица|Дом|Квартира |
|клиента|клиента | | | |
|_______|____________|_____|___|_________|
| ... | ... | ... |...| ... |
|_______|____________|_____|___|_________|