
- •9.Иерархические базы данных. Принципы построения, модель данных, области применения. Преимущества и недостатки.
- •10.Сетевые базы данных. Архитектура "клиент/сервер". Структура типового интерактивного приложения. Модель fs. Модель rda.
- •11.Модель сервера баз данных. Модель сервера приложений.
- •12.Реляционные базы данных. Принципы построения, модель данных, области применения. Преимущества и недостатки.
- •13.Реляционная система управления базами данных. Языки определения данных и языки манипулирования данными
- •14.Реляционная система управления базами данных. Процедурная (sql) форма реализации
- •15.Целостность бд. Понятие транзакций. Модели транзакций.
- •16.Назначение, состав, структура субд. Схема управления данными в субд. Процесс прохождения пользовательского запроса.
- •18.Основные понятия и конструкции pl/sql. Курсоры, хранимые процедуры, функции пользователя, триггеры.
14.Реляционная система управления базами данных. Процедурная (sql) форма реализации
SQL является информационно-логическим языком, предназначенным для описания, изменения и извлечения данных, хранимых в реляционных базах данных. SQL нельзя назвать языком программирования. SQL ориентирован на работу с множествами и не включает ни средств упраления выполнения программ, ни средст для создания форм и отчетов.
Каждое предложение SQL — это либо запрос данных из базы, либо обращение к базе данных, которое приводит к изменению данных в базе. В соответствии с тем, какие изменения происходят в базе данных, различают следующие типы запросов:
запросы на создание или изменение в базе данных новых или существующих объектов (при этом в запросе описывается тип и структура создаваемого или изменяемого объекта);
запросы на получение данных;
запросы на добавление новых данных (записей)
запросы на удаление данных;
обращения к СУБД.
Язык SQL представляет собой совокупность
операторов:
операторы определения данных (Data Definition Language, DDL)
CREATE создает объект БД (саму базу, таблицу, представление, пользователя и т. д.)
ALTER изменяет объект
DROP удаляет объект
операторы манипуляции данными (Data Manipulation Language, DML)
SELECT считывает данные, удовлетворяющие заданным условиям
INSERT добавляет новые данные
UPDATE изменяет существующие данные
DELETE удаляет данные
операторы определения доступа к данным (Data Control Language, DCL)
GRANT предоставляет пользователю (группе) разрешения на определенные операции с объектом
REVOKE отзывает ранее выданные разрешения
DENY задает запрет, имеющий приоритет над разрешением
операторы управления транзакциями (Transaction Control Language, TCL)
COMMIT применяет транзакцию.
ROLLBACK откатывает все изменения, сделанные в контексте текущей транзакции.
SAVEPOINT делит транзакцию на более мелкие участки.
инструкций;
и вычисляемых функций.
Преимущества
Независимость от конкретной СУБД
Наличие стандартов
Декларативность
Недостатки
Несоответствие реляционной модели данных:
Повторяющиеся строки
Неопределённые значения (nulls)
Явное указание порядка колонок слева направо
Колонки без имени и дублирующиеся имена колонок
Отсутствие поддержки свойства «=»
Использование указателей
Высокая избыточность
Сложность
Отступления от стандартов
Сложность работы с иерархическими структурами
15.Целостность бд. Понятие транзакций. Модели транзакций.
Целостность данных - это механизм поддержания соответствия базы данных предметной области. В реляционной модели данных определены два базовых требования обеспечения целостности:
целостность ссылок – для каждого значения внешнего ключа, появляющегося в дочернем отношении, в родительском отношении должен найтись котреж с таким же значением первичного ключа. Если две таблицы связаны между собой, то внешний ключ таблицы должен содержать только значения, уже имеющиеся среди значений ключа, по которому осуществляется связь. Если корректность значений внешних ключей не контролируется СУБД, то может нарушиться ссылочная целостность данных.
целостность сущностей - любое отношение должно обладать первичным ключом. Ни одна строка не может быть занесена в базу данных до тех пор, пока не будут определены все атрибуты ее первичного ключа. Это правило называется правилом категорийной целостности и кратко формулируется следующим образом: никакой атрибут первичного ключа строки не может быть пустым.
Транзакция (англ. transaction) — группа последовательных операций с базой данных, которая представляет собой логическую единицу работы с данными. Транзакция может быть выполнена либо целиком и успешно, соблюдая целостность данных и независимо от параллельно идущих других транзакций, либо не выполнена вообще и тогда она не должна произвести никакого эффекта.
Различают последовательные (обычные), параллельные и распределённые транзакции. Распределённые транзакции подразумевают использование больше чем одной транзакционной системы и требуют намного более сложной логики (например, two-phase commit — двухфазный протокол фиксации транзакции). Также, в некоторых системах реализованы автономные транзакции, или под-транзакции, которые являются автономной частью родительской транзакции.
Модели транзакций классифицируются на основании различных свойств:
структура транзакции;
параллельность внутри транзакции;
продолжительность.
Типы транзакций:
1. Плоские (классические)
2. Цепочечные
3. Вложенные
Плоские транзакции характеризуются 4 классическими свойствами:
атомарность – результаты всех операций, успешно выполненных в пределах транзакции, должны быть отражены в состоянии базы данных, либо в состоянии базы данных не должно быть отражено действие ни одной операции (конечно, здесь речь идет об операциях, изменяющих состояние базы данных);
согласованность – транзакция может быть успешно завершена с фиксацией результатов своих операций только в том случае, когда действия операций не нарушают целостность базы данных;
изолированность – две одновременно (параллельно или квазипараллельно) выполняемые транзакции никоим образом не действовали одна на другую;
долговечность (прочность) – после успешного завершения транзакции все изменения, которые были внесены в состояние базы данных операциями этой транзакции, должны гарантированно сохраняться, даже в случае сбоев аппаратуры или программного обеспечения.
Понятие транзакции необходимо для поддержания логической целостности БД. То свойство, что каждая транзакция начинается при целостном состоянии БД и оставляет это состояние целостным после своего завершения, делает очень удобным использование понятия транзакции как единицы активности пользователя по отношению к БД.