- •Информационные системы: определение, функции, классификация.
- •Модели представления данных.
- •Субд: общие сведения, функции, классификация.
- •5. Реляционная алгебра.
- •6. Теоретико-множественные операторы реляционной алгебры: объединение.
- •7. Теоретико-множественные операторы реляционной алгебры: пересечение.
- •8. Теоретико-множественные операторы реляционной алгебры: вычитание.
- •9. Теоретико-множественные операторы реляционной алгебры: декартово произведение.
- •10. Специальные реляционные операторы: выборка
- •12. Специальные реляционные операторы: тэта-соединение.
- •13. Специальные реляционные операторы: экви-соединение.
- •14. Специальные реляционные операторы: естественное соединение.
- •15. Специальные реляционные операторы: деление.
- •16. Нормализация: общие сведения.
- •17. Нормальные формы: первая нормальная форма (определение, примеры).
- •22.Транзакции. Управление транзакциями.
- •23. Язык манипулирования данными sql: общие сведения, формы построения запросов.
22.Транзакции. Управление транзакциями.
Поддержание механизма транзакции - показатель уровня развитости СУБД, корректное поддержание является основой целостности БД и составляют основу изолированности пользователя с многопользовательскими системами.
Транзакция - неделимое с точки зрения БД последовательность операторов манипулирования БД (чтение удаление вставка и др) причем такая, что либо результаты всех операторов входящих в транзакции отображаются в БД либо воздействие всех этих операторов полностью отсутствует.
В многопользовательских системах с одной БД одновременно могут работать несколько пользователей или прикладных программ.
Важной задачей является изолирование пользователей т.е. создание иллюзии того, что каждый пользователь работает с Бд в одиночку.При соблюдении обязательного требования целостности БД возможны 3 уровня изолированности трансзакции.
Отсутствие потерянных изменений.
Пример: Трансакция №1 - изменяет объект БД «А» до завершения транзакции №1 транзакция №2 так же изменяет объект «А»транзакция №2 завершается по причине нарушения ограничения целостности. Тогда при повторном чтении объекта А транзакция №1 не видит изменения этого объекта произведенных раннее, такая ситуация называется ситуация потерянных изменений и противоречит требованию изолированности пользователя, чтобы избежать такой ситуации в транзакции №1 требуется чтобы до ее завершения никакая другая транзакция не могла изменять объект «А».
Отсутствие таких изменений является минимальным требованием к субд в плане синхронизации параллельно выполняемых транзакции.
Отсутствие чтения грязных данных
Трансакция №1 - изменяет объект БД «А» параллельно транзакция №2 читает объект «А» т.к. операция изменения не завершена транзакция №2 видит несогласованные «грязные данные»
Минимальным требованием является блокировка чтения объекта А до завершения операции по изменению транзакцией №1
Отсутствие неповторяющихся чтений
Трансакция №1 - читает объект БД «А» до завершения транзакции №1, транзакция №2 изменяет объект А и успешно завершается. Транзакция №1 повторно читает объект А и видит его измененное состояние, чтобы избежать неповторяющихся чтений до завершения транзакции №1 никакая другая транзакция не должна изменять объект А. это является максимальным требованием к синхронизации транзакции, но не гарантирует изолированности пользователей.
23. Язык манипулирования данными sql: общие сведения, формы построения запросов.
Все операторы языка SQL можно условно разделить на три группы операторов. Оператор языка запросов – SELECT, операторы языка манипуляции данными (Insert, Update, Delete) и операторы языка определения данных (Create, Drop, Alter).
Запросы DML (ЯМД)
К запросам языка манипуляции данными (Data Manipulation Language) относятся запросы на добавление, удаление и модификацию кортежей.
Добавление кортежа производится командой:
INSERT INTO имя_таблицы [(<список столбцов>)] VALUES (<список значений>)
Список столбцов и список значений указываются через запятую, а значения добавляются в соответствующие столбцы. Если необходимо добавить кортеж целиком (т.е. значения есть для всех полей и их порядок совпадает с порядком полей в отношении), то описание списка столбцов можно опустить.
Оператор удаления данных DELETE позволяет удалить одну или несколько строк из таблицы в соответствии с условиями, которые задаются для удаляемых строк. Синтаксис оператора DELETE следующий:
DELETE FROM <имя_таблицы> [WHERE <условия_отбора>]
Если условия отбора не задаются, то из таблицы удаляются все строки.
Операция обновления данных UPDATE требуется тогда, когда происходят изменения данных, которые надо отразить в базе данных.
Запрос на обновление может изменить сразу целую группу записей. Этот запрос состоит из трех частей:
• Предложение UPDATE, которое указывает на обновляемую таблицу;
• Предложение SET, задающее данные для обновления;
• Необязательный критерий WHERE, ограничивающий число записей, на которые воздействует запрос на обновление.
