- •«Информационное обеспечение систем управления»
- •1. Общие понятия ио
- •1) Файловые системы (фс)
- •2) Системы, использующие бд
- •1) По размещению:
- •2) По виду модели данных:
- •1) По размещению:
- •2. Жизненный цикл ио, проектирование ио
- •В соответствии с гост 34.601-90 Автоматизированные системы в стадии создания определены следующие стадии создания автоматизированных систем:
- •2) Каскад с возвратом (возможно переопределение требований):
- •3) Итерационная модель:
- •4) Эволюционная модель:
- •Проектирование ис. Основное проектирование данных и по
- •3. Инфологическое проектирование
- •Нотация Чена:
- •Нотация Баркера:
- •Нотация idef1x:
- •Основными элементами er-модели являются:
- •Сущность
- •Атрибут
- •Множественность
- •Обязательность
- •Расширение нотаций
- •Проблемы er-моделирования
- •4. Логические модели данных. Сетевая и иерархическая модели
- •Сетевая модель данных
- •Операции сетевой модели
- •1) Операции с данными:
- •2) Операции со связями:
- •3) Навигация по данным:
- •Иерархическая модель данных
- •5. Реляционная модель данных
- •Операции с реляционными данными
- •1) Унарные операции (операции с одним отношением):
- •2) Операции с двумя однотипными отношениями:
- •3) Операции с разнотипными отношениями:
- •1. Внутренние соединения:
- •Реляционное исчисление
- •6. Нормализация отношений
- •1Нф требует:
- •2Нф требует:
- •7. Даталогическое проектирование
- •Рассмотрим преобразование реляционной логической модели
- •I. Преобразование исходной инфологической модели (им):
- •Преобразования сущностей
- •Преобразования свойств
- •Преобразования связей
- •II. Переход к логической модели:
- •III. Нормализация отношений
- •IV. Дополнительные действия
- •8. Ограничения целостности, виды и реализация
- •1) По области действия.
- •2) По месту реализации.
- •3) По способу реакции на нарушение.
- •4) По моменту выполнения проверки.
- •9. Средства доступа к данным и разработки приложений
- •10. Язык sql
- •1. Основные составляющие языка sql.
- •2. Методы и средства контроля целостности в основном реализованы в create table:
- •3. Операторы модификации данных:
- •4. Выборка:
- •5. Управление доступом:
- •6. Управление транзакциями:
- •11. Создание бд в sql
- •1. Оператор создания схемы бд
- •2. Оператор создания домена
- •3. Оператор создания таблицы
- •4. Оператор фиксации результатов работы с бд
- •12. Выборка данных в sql
- •1) Формирование единой таблицы:
- •2) Ограничение единой таблицы по строкам:
- •3) Отбор выходных столбцов выборки:
- •4) Группирование строк таблицы выборки:
- •5) Ограничение по групповым строкам:
- •6) Объединение выборки:
- •7) Упорядочивание записей выборки:
- •13. Восстановление данных
- •14. Организация многопользовательского доступа
- •15. Защита от несанкционированного доступа
- •2. Защита на уровне субд
- •3. Защита на уровне приложения
- •16. Физическая организация данных в бд
- •1. Последовательная организация.
- •2. Списковое хранение
- •3. Индексная организация
- •4. Хэшированная организация
- •17. Методы поиска в бд
- •1. Последовательный поиск:
- •2. Блочный поиск.
- •3. Бинарный поиск
- •4. Индексный поиск
- •5. Хешированный поиск
2. Методы и средства контроля целостности в основном реализованы в create table:
Имеющиеся в языке возможности позволяют задать в описаниях данных следующие свойства:
– NOT NULL – обязательность.
– UNIQUE – уникальность.
– DEFAULT – значение по умолчанию.
– CHECK – условие ограничения.
– PRIMARY KEY, FOREIGN KEY – поддержка связей.
– ON UPDATE, ON DELETE – триггеры по умолчанию.
Связь осуществляется за счет указания соответствия первичных и внешних ключей FK=PK, отсутствие связи – указанием FK=NULL, при нарушении ссылочной целостности FK=прочее. Возможные реакции триггера задают, что делать с внешним ключом, если произошло нарушение ссылки:
1) CASCADE – если при выполнении действия (удаления, изменения) – выполняем то же действие и с подчиненной.
2) SET NULL – если при выполнении указанной операции произошел разрыв связи, то мы значение внешнего ключа очищаем.
3) SET DEFAULT – если при выполнении указанной операции произошел разрыв связи, то мы значение внешнего ключа меняем на значение по умолчанию.
4) NO ACTION – ничего не делать, во многих системах заменено на RESTRICT.
3. Операторы модификации данных:
– INSERT – добавление данных,
– UPDATE – обновление данных,
– DELETE – удаления данных.
4. Выборка:
– SELECT. Оператор состоит из предложений SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY, которые должны быть записаны в команде именно в той последовательности, в которой они перечислены в синтаксической формуле.
5. Управление доступом:
– GRANT – назначение прав доступа.
Предположим, пользователь является владельцем таблицы «Sotrudnik» и хочет позволить пользователю Ivanov выполнять запросы к ней. В этом случае пользователь должен ввести команду
GRANT SELECT ON Sotrudnik TO Ivanov;
– REVOKE – удаление прав доступа.
Команда имеет синтаксис, схожий с синтаксисом оператора GRANT. Например, отмена привилегии на просмотр таблицы «Sotrudnik» для пользователя Ivanov будет выглядеть следующим образом:
REVOKE SELECT ON Sotrudnik TO Ivanov;
6. Управление транзакциями:
Транзакция представляет собой законченную совокупность действий над БД, которая переводит ее из одного целостного в логическом смысле состояния в другое.
– SET TRANSACTION – задает параметры транзакции, объявляет её начало.
– COMMIT – нормальное завершение, завершение транзакции с фиксацией всех результатов.
– ROLLBACK – завершение транзакций с отменой всех выполненных изменений.
Конкретные СУБД используют различные механизмы управления транзакциями. Некоторые СУБД для задания транзакции используют операторы BEGIN TRANSACTION-END TRANSACTION, и все команды, заключенные между ними, составляют транзакцию. В некоторых системах считается, что, инициируя сеанс работы с SQL, пользователь начинает транзакцию, которая будет продолжаться, пока не будет введен оператор COMMIT WORK, который сделает все изменения, проведенные в ходе транзакции, постоянными, или оператор ROLLBACK WORK, который отменяет все сделанные в транзакции изменения. После каждого оператора COMMIT или ROLLBACK начинается новая транзакция.
Во многих СУБД присутствует специальный параметр AUTO-COMMIT, который, находясь во включенном состоянии, приводит к автоматической фиксации изменений каждой нормально завершенной операции.
Транзакция может быть помечена как «только чтение» (READ ONLY). При выполнении такой транзакции попытка провести изменение данных будет вызывать сообщение об ошибке. Задание признака READ ONLY позволяет увеличить производительность как этой, так и параллельно исполняемых транзакций.
Транзакции должны соответствовать требованиям ACID (Atomicity, Consistency, Isolation, Durability – Атомарность, Согласованность, Изолированность, Долговечность):
Атомарность: транзакция представляет собой некоторый набор законченных действий. Система обеспечивает их выполнение по принципу «все или ничего» - либо выполняются все действия, тогда транзакция «фиксируется»; либо, если возможность выполнить все действия отсутствует, например в случае сбоев, транзакция «откатывается» назад, а БД остается в исходном состоянии.
Согласованность: предполагается, что в результате выполнения транзакции система переходит из одного корректного состояния в другое.
Изолированность: при выполнении транзакции данные могут временно находиться в несогласованном состоянии. Такие данные не должны быть видны другим транзакциям, пока изменения не будут завершены (т.е. пока все модификации не будут формально зафиксированы). Система обеспечивает каждой транзакции иллюзию того, что та выполняется изолированно, как если бы прочие транзакции либо завершились до ее начала, либо начнут выполняться после ее завершения.
Долговечность: если транзакция зафиксирована, то ее результаты должны быть долговечными. Новые состояния всех объектов сохранятся даже в случае аппаратных или системных сбоев.
Существуют многочисленные модели транзакций, обеспечивающие соблюдение требований ACID. Некоторые из этих моделей:
- плоские транзакции;
- контрольные точки;
- многозвенные транзакции;
- вложенные транзакции.
Использование языка SQL:
В целом, язык SQL не является самодостаточным для создания приложений БД и их полномасштабного обслуживания. Поэтому разработчикам приложений предоставляется различные формы соединения языка SQL с другими (внешними) языками.
В персональных системах язык используется как часть основного языка.
В серверных системах он используется в следующих вариантах:
1) как вспомогательный язык приложения для обращения к СУБД.
2) как средство интерактивных запросов.
3) как средство написания программного кода для серверной части.
Для объединения SQL с базовым языком приложения используются следующие методы:
1. Локальный SQL.
Операторы SQL включаются во внешний язык наравне с прочими операторами и обрабатываются расширенным транслятором внешнего языка как его «родные» операторы. Таким образом, имеет место расширение исходного языка на группу операторов SQL с соответствующим расширением транслятора. Этот вариант характерен для персональных СУБД.
2. Встроенный SQL.
В текст программы на внешнем языке операторы SQL включаются с явным их выделением. Например, встраивание операторов SQL в текст С-программы выполняется в виде:
EXEC SQL
<SQL-оператор>
END SQL
При обработке пакета программы предварительно выполняется программа предтранслятор, которая преобразует SQL-вставки в эквивалентные конструкции внешнего языка, после чего выполняется трансляция с помощью стандартного транслятора внешнего языка. Обмен данными между SQL-вставками и основным кодом программы производится через явно указываемый набор переменных связи.
3. Модульный SQL.
Операторы SQL размещаются в модулях-подпрограммах, обращение к которым осуществляется по стандартным правилам базового языка. В модульном SQL обмен выполняется через входные и выходные параметры процедур.
4. Динамический SQL – поддерживает ввод, трансляцию и исполнение SQL команд в ходе выполнения программы. Операторы SQL определяются не на момент создания пакета программы, а на момент ее исполнения. Таким образом, трансляция SQL-операторов откладывается на время выполнения программы, что позволяет реализовывать заранее непредвиденные запросы. Для подготовки исполнения используется команда PREPARE, для исполнения EXECUTE.
