- •Первая нормальная форма.
- •Основной пример. Отношение (Сотрудники-Отделы-Проекты)
- •Функциональные зависимости отношений.
- •Вторая нормальная форма.
- •Анализ декомпозированных отношений
- •Третья нормальная форма.
- •Алгоритм приведения к 3нф.
- •Сравнение нормализованной и ненормализованной модели.
- •Корректность процедуры нормализации - декомпозиция без потерь.
- •Теорема Хеза.
- •Четвертая нормальная форма.
- •Многозначные зависимости.
- •Теорема Фейджина.
- •Пятая нормальная форма.
- •Зависимости соединения.
- •Приведение от 3нф к 5нф.
- •Информационная система. Состав и свойства.
- •Функциональные части ис. Обеспечивающие части ис.
- •Средства структурного анализа и их взаимоотношения.
- •Диаграммы потоков данных.
- •Основные компоненты диаграммы потоков данных.
- •Контекстная диаграмма dfd и детализация процессов.
- •Процесс построения модели dfd
- •Триггеры и ограничения. События, условия и действия.
- •Объявление и открытие курсора.
- •Оператор fetch.
- •Предметная область и ее модель.
- •Физическое проектирование бд.
- •Процедурные и декларативные языки манипулирования данными.
- •Потребительские свойства ис.
- •Характерные особенности современных крупных проектов ис.
- •Частные принципы создания ис.
- •Организационно-технологические принципы создания ис.
- •Аспекты описания ис.
- •Стадии проектирования ис.
- •Предпроектная стадия проектирования ис.
- •Этап проектирования ис.
- •Этап внедрения ис.
- •Анализ информационных потребностей ис.
- •Жизненный цикл программного обеспечения ис.
- •Модели жизненного цикла по ис.
- •Каскадная модель жизненного цикла по ис.
- •Спиральная модель жизненного цикла по ис.
- •Итерационная модель жизненного цикла по ис.
- •Этап определения стратегии.
- •Принципы структурного анализа.
- •Словарь данных dfd.
- •Спецификации управления.Диаграммы переходов состояний (std).
- •Из каких объектов состоит std.
- •Основные понятия er-диаграмм: сущности, экземпляры, атрибуты, связи.
- •Типы и модальности связей.
- •Более сложные элементы er-модели.
- •Подтипы и супертипы.
- •Получение реляционной схемы из er-диаграммы.
- •Пример разработки простой er-модели.
- •Проектирование баз данных.
- •Концептуальное и логическое проектирование бд.
- •Денормализация для оптимизации
- •Физическое проектирование бд. Типы данных.
- •Физическое проектирование бд. Индексы, кластеры.
- •Физическое проектирование бд. Временные данные.
- •Физическое проектирование бд. Хранение объектов данных.
- •Оптимизация запросов, основные понятия.
- •Синтаксическая оптимизация
- •Оптимизация, основанная на правилах
- •Оптимизация, основанная на вычислении стоимости
- •Последовательность шагов оптимизации запросов
- •Физические операции манипулирования данными.
- •Анализ запросов с целью повышения скорости их выполнения
- •Использование базовых переменных, понятие курсора
- •Базовая переменная sqlstate.
- •Операции встроенного sql, не использующие курсоров.
- •Операции, использующие курсоры.
- •Операторы позиционного удаления и модификации данных.
- •1.Оператор позиционного удаления
- •2.Оператор позиционной модификации
- •Понятие, назначение и структура хранимых процедур.
- •Использование хранимых процедур.
- •Операторы окончания транзакции.
- •Встроенный sql в vba.
- •Уровни моделирования выделяемые при разработке базы данных.
- •Принципы проектирование реляционных баз данных
- •Критерии оценки качества логической модели данных. Адекватность базы данных предметной области
- •Назначение нормализации отношений.
- •Приведение к 5нф.
- •Этапы разработки проекта: стратегия и анализ.
- •Этапы проектирования.Стратегия.
- •Этап анализа.
- •Основные методологии структурного анализа.
- •Сильные и слабые сущности.
- •Некоторые принципы проверки качества и полноты информационной модели.
- •Методология idef1х.
- •Идентифицирующие и неидентифицирующие связи.
- •Мощность связи.
Базовая переменная sqlstate.
Единичный SELECT. Получить статус и город для поставщика, чей номер поставки задан базовой переменной Giv#
EXEC SQL SELECT STATUS, CITY
INTO :RANK, :CITY
FROM S
WHERE S# = Giv# ;
Термин «единичный SELECT» используется для обозначения выражения выборки, значением которого будет таблица, содержащая не более одной строки. Если в данном примере существует ровно одна строка в таблице S, удовлетворяющая условию WHERE, то значения STATUS и CITY из этой строки в соответствии с запросом будут присвоены базовым переменным RANK и CITY, а значение SQLSTATE будет равно 00000. Если в таблице S нет ни одной строки, удовлетворяющей условию WHERE, то переменной SQLSTATE будет присвоено значение 02000; а если таких строк больше одной, то будет сгенерирована ошибка и переменная SQLSTATE будет содержать код ошибки.
Операции встроенного sql, не использующие курсоров.
Ниже перечислены операторы обработки, для которых не требуется использовать курсоры:
«единичный SELECT» INSERT UPDATE (кроме формы CURRENT) DELETE (тоже кроме формы CURRENT)
Единичный SELECT. Получить статус и город для поставщика, чей номер поставки задан базовой переменной Giv#
EXEC SQL SELECT STATUS, CITY
INTO :RANK, :CITY
FROM S
WHERE S# = Giv# ;
Термин «единичный SELECT» используется для обозначения выражения выборки, значением которого будет таблица, содержащая не более одной строки. Если в данном примере существует ровно одна строка в таблице S, удовлетворяющая условию WHERE, то значения STATUS и CITY из этой строки в соответствии с запросом будут присвоены базовым переменным RANK и CITY, а значение SQLSTATE будет равно 00000. Если в таблице S нет ни одной строки, удовлетворяющей условию WHERE, то переменной SQLSTATE будет присвоено значение 02000; а если таких строк больше одной, то будет сгенерирована ошибка и переменная SQLSTATE будет содержать код ошибки.
INSERT. Вставить новую деталь в таблицу Р (номер детали, ее название и вес определены базовыми переменными P#, PNAME, PWT соответственно; цвет и город неизвестны)
EXEC SQL INSERT
INTO P (P#, PNAME, COLOR, WEIGHT, CITY)
VALUES (:P#, :PNAME, DEFAULT, :PWT, DEFAULT) ;
UPDATE. Увеличить статус всех поставщиков из Ростова на значение, определенное базовой переменной Inc.
EXEC SQL UPDATE S
SET STATUS = STATUS + :Inc
WHERE CITY = ‘Ростов’ ;
Если нет строк поставщиков, удовлетворяющих условию WHERE, переменной SQLSTATE присваивается значение 02000.
DELETE. Удалить все поставки для поставщиков из города, определенного базовой переменной CITY
EXEC SQL DELETE
FROM SP
WHERE :CITY =
(SELECT CITY FROM S WHERE S.S# = SP.S#) ;
И снова, если нет строк, удовлетворяющих условию WHERE, , переменной SQLSTATE присваивается значение 02000
Операции, использующие курсоры.
пусть требуется получить информацию для всех поставщиков в городе, определенном базовой переменной Y.
EXEC SQL DECLARE X CURSOR FOR
SELECT S.S#, S.NAME, S.STATUS
FROM S
WHERE S.CITY = :Y;
EXEC SQL OPEN X;
DO for all S rows accessible via X;
EXEC SQL FETCH X INTO :S, :NAME, :STATUS
……….
END;
EXEC SQL CLOSE X;
Оператор DECLARE X CURSOR … определяет курсор с именем Х, связанный с табличным выражением, определенным оператором SELECT, который является частью всего выражения DECLARE. При этом табличное выражение не вычисляется; это происходит только при открытии курсора. Затем для выборки строк из результирующего множества по одной за раз используется оператор FETCH, присваивающий выбранные значения базовым переменным в соответствии со спецификациями в инструкции INTO. Здесь для простоты базовым переменным даны те же имена, что и у соответствующих столбцов базы данных.
Оператор FETCH обычно используется в цикле, поскольку в результирующем множестве большое (и обычно заранее неизвестное) число строк. В данном примере цикл будет повторяться до тех пор, пока не закончатся строки для результирующего множества. При выходе из цикла курсор Х деактивируется.
