
- •1. Общее представление о базе данных. Примеры.
- •2. Назначение и основные элементы бд.
- •3. Назначение, основные функции и понятие субд.
- •4. Логическая структура субд.
- •5. Трёхуровневая архитектура бд.
- •6. Жизненный цикл базы данных.
- •7. Архитектура субд, как комплекса программ.
- •8. Краткий обзор dbf–ориентированных локальных субд.
- •9. Краткий обзор серверов баз данных. Informix, Sybase, ms sql, Oracle.
- •10. Модель субд типа «Файл–Сервер». Распределение функций.
- •11. Модель субд типа «Клиент/Сервер». Распределение функций.
- •12. Двухуровневая архитектура «Клиент/Сервер». "Толстый" и "тонкий" клиенты.
- •13. Трехуровневая архитектура «Клиент/Сервер». Api–компонент системы.
- •14. Типы моделей бд. Иерархическая и сетевая модели данных.
- •15. Реляционная модель данных. Структура. Общее представления.
- •16. Понятие домена.
- •17. Отношения, атрибуты и кортежи.
- •18. Формализация отношений в виде таблиц. Сравнение отношений и таблиц.
- •19. Единство трёхуровневой структуры бд.
- •20. Потенциальные ключи. Первичные и альтернативные ключи.
- •21. Null–значения. Целостность сущностей.
- •22. Внешние ключи. Ссылочная целостность. Родительские и дочерние отношения.
- •23. Индексные файлы. Сортировка файлов бд.
- •24. Поиск записей в файле бд. Индексные ключи. Алгоритмы поиска.
- •25. Стратегии ссылочной целостности.
- •26. Основы реляционной алгебры. Операции «Объединение», «Пересечение», «Вычитание», «Де–картово произведение». Примеры.
- •27. Специальные реляционные операции: «Выборка», «Проекция», «Соединение», «Деление». Примеры.
- •28. Понятие о sql и pl/sql. Типы команд sql.
- •29. Типы данных в sql.
- •30. Команды языка определения данных. Create table.
- •31. Команда select. Примеры. Формальное описание.
- •32. Предложение union.
- •33. Предложения where, having, group by
- •34. Команды insert, update, delete.
- •35. Команды управления доступа к данным. Grant, revoke, set role.
- •36. Управление транзакциями с помощью sql.
- •37. Процедурное расширение sql. Структура программы в pl/sql.
- •38. Типы данных определяемые пользователем record и table.
- •39. Предложение into для присваивания переменным значений бд.
- •40. Курсоры.
- •41. Операторы управления if. . . Then. . . , go to.
- •42. Циклы loop, while, for.
- •43. Обработка ошибок в pl/sql. Встроенные исключительные ситуации.
- •44. Процедура Raise_Application_Error.
- •45. Исключительные ситуации, определяемые пользователем.
- •46. Анонимные блоки pl/sql. Процедуры, функции и пакеты.
- •47. Триггеры базы данных. Операторные и строчные триггеры. Примеры.
- •48. Представления.
- •49. Снимки.
- •50. Последовательности.
- •51. Библиотечные функции sql. Числовые функции.
- •52. Библиотечные функции sql. Функции символьного типа.
- •53. Библиотечные функции sql. Функции для работы с датой и временем.
- •54. Библиотечные функции sql. Функции преобразования типов.
- •55. Библиотечные функции sql. Групповые функции.
- •56. Теория проектирования реляционных баз данных. Избыточность. Аномалии обновления, включения и удаления.
- •57. Функциональные зависимости. Примеры.
- •58. Аксиомы Армстронга функциональных зависимостей.
- •59. Замыкания множества зависимостей. Примеры.
- •60. Замыкания множества атрибутов. Примеры
- •61. Неприводимое множество зависимостей.
- •62. Понятие нормальной формы. Иерархия нф.
- •63. Первая нормальная форма. Примеры.
- •64. Декомпозиция без потерь. Теорема Хеза.
- •65. Вторая нормальная форма. Примеры.
- •66. Третья нормальная форма. Примеры.
- •67. Сохранение зависимостей.
- •68. Нормальная форма Бойса–Кодда. Примеры.
- •69. Многозначные зависимости.
- •70. Четвертая нормальная форма. Примеры.
- •71. Зависимости соединения.
- •72. Пятая нормальная форма. Примеры.
- •73. Итоговая схема процедуры нормализации.
- •74. Альтернативные нормальные формы.
- •75. Основные понятия семантического моделирования. Er–диаграммы. Сущность.
- •76. Экземпляр, атрибут, ключ и связи сущностей. Определения и обозначения.
- •77. Пример проектирования простой er–модели.
- •78. Концептуальные и физические er–модели. Примеры.
- •79. Понятие экспертной системы (эс), как специального типа информационной системы.
- •80. Обобщенная модель экспертной системы.
- •81. Основные характеристики эс.
- •82. Базовые функции эс. Приобретение знаний. Представление знаний.
- •83. Управление процессом поиска решений. Разъяснение принятого решения.
- •84. Понятие знания. Основные признаки знания.
- •85. Типы эс.
- •86. Представление знаний в эс. Сетевое представление знаний.
- •87. Представление знаний в эс. Фреймовая модель представление знаний.
- •88. Представление знаний в эс. Продукционная модель знаний. Стратегия управления
- •89. Методология разработки эс.
- •90. Понятие объектно – ориентированной бд.
- •91. Языки программировния ообд.
- •92. Языки запросов ообд.
47. Триггеры базы данных. Операторные и строчные триггеры. Примеры.
Еще один механизм обеспечения целостности, а так же обработки данных. Триггер – специализированная процедура PL/SQL, отличающаяся способом вызова и объектом обработки данных, т.е любой триггер создается для целевой таблицы. Для запуска триггера исп–ся спец усл по кот–му сервер СУБД автоматически запускает тело триггера. Создается – CREATE. Усл запуска один из операторов DML (INSERT, UPDATE, DELETE) либо добавляются не обязательные ограничения. Т.е с помощью ограничения (фильтра) фактически усл–ия запуска просто конкретизируются (детал–ся).
Ограничение триггера – простое логическое выражение кот–е может быть задано в предложении when командой create trigger
CREATE TRIGGER reorder AFTER UPDATE OF onhand, reorder ON stock FOR EACH ROW WHEN (:new.onhand>=:new.reorder) BEGIN INSERT INTO reorder VALUES (:new.id, :new.onhand, :new.reorder); END reorder
2 типа триггеров: операторные(вып–ся 1 раз); строчные(вып–ся столько раз сколько строк связаны с данным телом тригера) FOR EACH ROW
Триггер на каскадное обновление (таблицы Rent –Realty)
CREATE OR REPLACE TRIGGER CASCADE_UPD_RNT_RLTY
AFTER UPDATE ON RENT
FOR EACH ROW
BEGIN
IF (:NEW.Type <> :OLD.Type) THEN
UPDATE REALTY SET REALTY.Type = :NEW.Type WHERE
REALTY.Type= :OLD.Type;
END IF;
END;
48. Представления.
Представление – это логическая таблица, созданная на основе реальной таблицы или другого представления. Представление не содержит собственных данных, а скорее является «окном», через которое можно просматривать или изменять данные из таблиц. Представление хранится в словаре данных как команда SELECT.
Преимущества представлений: 1)Ограничивается доступ к базе данных вследствие того, что представления могут отображать определенное подмножество базы данных. 2)С помощью простых запросов пользователь может такие же результаты, как с помощью сложных. Например, использование представлений позволяет осуществить выборку данных из нескольких таблиц без каких – либо знаний об операторе соединения таблиц (join). 3)Обеспечивается независимость данных для пользователей, посылающих случайные незапрограммированные запросы, и прикладных программ. Одно представление может использоваться для выборки данных из нескольких таблиц. 4)Использование представлений позволяет обеспечить доступ к данным по различным критериям для различных групп пользователей.
Создание представления CREATE [OR REPLACE] [FORCE | NOFORCE] VIEW имя [(псевдоним [, псевдоним]...)] AS подзапрос [WITH CHECK OPTION [CONSTRAINT ограничение]][WITH READ ONLY]
FORCE – создание представления независимо от того, существуют ли базовые таблицы
NOFORCE создание представления только при условии существования базовых таблиц. Значение принято по умолчанию. Псевдоним – имена выражений, выбранных в запросе для представления. Количество псевдонимов должно быть = количеству выражений, выбранных представлением. Подзапрос – полная команда SELECT. Для столбцов в списке SELECT можно использовать псевдонимы. WITH CHECK OPTION режим, при котором добавлять или обновлять можно только строки, доступные в представлении. Ограничение – имя, присвоенное ограничению CHECK OPTION. WITH READ ONLY запрет применения к данному представлению операций DML.
Запрос, который определяет представление, может содержать команду SELECT со сложным синтаксисом, включая соединения, группы и подзапросы.
Запрос, который определяет представление, не может содержать предложение ORDER BY
Если вы не указываете имя ограничения сами, система присвоит его по умолчанию в формате SYS_Сn.
Для изменения определения представления без его удаления и создания заново, а также для изменения предоставленных привилегий можно использовать режим OR REPLACE.
Существуют 2 вида представлений: простые(одна таблица, нет ф–ий, операции DML есть) и сложные(одна и более таблиц, содержит ф–ии, операции DML нет). Основное отличие связано с операциями DML.Операции DML могут выполняться над представлениями в соответствии со следующими правилами:Удаление строки из представления возможно, если представление не содержит ничего из следующего(Условие соединения,Групповые функции,Предложение GROUP BY,Команда DISTINCT), Данные в представлении могут быть изменены, если представление не содержит ничего из вышеперечисленного и ничего из следующего списка:(Столбцы, описанные как выражения, например, Rn*1.5, Псевдостолбец ROWNUM), Добавление данных через представление возможно, если оно не содержит ничего из вышеперечисленного и если в базовой таблице нет столбцов типа NOT NULL, не включенных в представление. Все необходимые значения должны присутствовать в представлении. Помните, что через представление вы добавляете значения прямо в основную таблицу.
Можно сделать так, чтобы при добавлении или обновлении данных через простое представление можно было запрашивать добавленные или обновленные данные через представление. Можно сделать так, чтобы выполнение операции DML через представление было невозможно. Для этого представление создается с режимом WITH READ ONLY.