- •21. Об’єкти реляційної бази даних. Їх створення та модифікація засобами sql. Приклад реалізації за допомогою Data Definition Language.
- •22. Обмеження реляційної бази даних. Їх створення та модифікація засобами sql. Приклад реалізації Data Definition Language.
- •23.Операції реляційної алгебри та їх реалізація на мові sql.
- •24.Нормальні форми реляційної бази даних. Приклад структури бд та аномалії зміни даних.
- •Аномалии модификации данных
- •25.Теорія множин та реляційні бази даних. Поняття відношення. Особенности теоретико-множественных операций реляционной алгебры
- •Операции объединения, пересечения, взятия разности. Совместимость по объединению
- •Основные понятия
- •26.Поняття транзакції, властивості транзакцій.
- •5.1. Механизм транзакций
- •27.Ізоляція транзакцій. Проблеми паралельної роботи та механізми блокування. Уровни изоляции транзакций
- •5.4. Блокировки
- •28.Ізоляція транзакцій. Визначення графіку виконання та правильного графіку виконання транзакції. Уровни изоляции транзакций
- •29.Ізоляція транзакцій. Рівні ізоляції та управління рівнем ізоляції транзакції в sql сервері. Уровни изоляции
- •Синтаксис операторов sql, определяющих уровни изоляции
- •30.Типи даних та функції для роботи з ними в реляційних базах даних. Приклади використання.
- •31.Представлення (view). Приклади використання.
- •Способ создания и содержимое представлений
- •Использование
- •Команда create view
- •32.Управління доступом до даних в реляційних базах даних. Ролі, користувачі та їх права доступу. Аутентификация и авторизация
- •Методы аутентификации
- •33.Мова xml. Мова xPath. Приклади xml документу та xPath виразів.
- •Синтаксис xPath
- •34.Поняття Web сервісу, стек протоколів ws.
- •Стек протоколов Web Services
- •35. Мови html та css. Приклад html сторінки.
- •Структура html-документа
- •Структура html страницы
- •36. Реалізація ієрархічних структур на ms sql Server. Приклади знаходження елементу структури та всіх його потомків із строки, що містить шлях до елементу Иерархические данные (sql Server)
- •Родители-потомки
- •37.Оператор select. Групові операції. Приклади використання агрегатних функцій.
- •Синтаксис оператора select
- •Групповые функции в операторе select
- •Что такое агрегатные функции ?
- •Как использовать агрегатные функции ?
- •Специальные атрибуты count
- •Использование distinct
- •38.Витяг даних з кількох таблиць. Приклади використання inner join, left(right) outer join, exists, any. Выборка из нескольких таблиц.
- •Специальные операторы any или some
- •Много-столбцовые внешние ключи
- •Ограничение foreign key
- •Манипулирование реляционными данными
- •Целостность в реляционной модели данных
- •Предложение create procedure
- •Предложение alter procedure
- •40.Мова xml. Визначення схеми документу за допомогою xsd. Приклад схеми та документу, що задовольняє цій схемі. Приклад програмної валідації xml документу.
Синтаксис операторов sql, определяющих уровни изоляции
Уровень изоляции транзакции задается следующим оператором:
SET TRANSACTION {ISOLATION LEVEL
{READ UNCOMMITTED
| READ COMMITTED
| REPEATABLE READ
| SERIALIZABLE}
| {READ ONLY | READ WRITE}}.,..
Этот оператор определяет режим выполнения следующей транзакции, т.е. этот оператор не влияет на изменение режима той транзакции, в которой он подается. Обычно, выполнение оператора SET TRANSACTION выделяется как отдельная транзакция:
… (предыдущая транзакция выполняется со своим уровнем изоляции)
COMMIT;
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
COMMIT;
… (следующая транзакция выполняется с уровнем изоляции REPEATABLE READ)
Если задано предложение ISOLATION LEVEL, то за ним должно следовать один из параметров, определяющих уровень изоляции.
Кроме того, можно задать признаки READ ONLY или READ WRITE. Если указан признак READ ONLY, то предполагается, что транзакция будет только читать данные. При попытке записи для такой транзакции будет сгенерирована ошибка. Признак READ ONLY введен для того, чтобы дать производителям СУБД возможность уменьшать количество блокировок путем использования других методов сериализации (например, метод выделения версий).
Оператор SET TRANSACTION должен удовлетворять следующим условиям:
Если предложение ISOLATION LEVEL отсутствует, то по умолчанию принимается уровень SERIALIZABLE.
Если задан признак READ WRITE, то параметр ISOLATION LEVEL не может принимать значение READ UNCOMMITTED.
Если параметр ISOLATION LEVEL определен как READ UNCOMMITTED, то транзакция становится по умолчанию READ ONLY. В противном случае по умолчанию транзакция считается как READ WRITE.
Выводы
Современные многопользовательские системы допускают одновременную работу большого числа пользователей. При этом если не предпринимать специальных мер, транзакции будут мешать друг другу. Этот эффект известен как проблемы параллелизма.
30.Типи даних та функції для роботи з ними в реляційних базах даних. Приклади використання.
MySQL поддерживает несколько различных типов данных: Числовые данные — это все целые числа (без дробной части) и вещественные числа (с дробной частью). Строковые данные — последовательность символов, заключенная в кавычки. В MySQL в качестве стандарта используются одинарные кавычки и для совместимости с другими базами данных рекомендуется именно их использование. Календарные данные — тип для обозначение даты и времени, принимает различные формы, например строковую «2007-11-23» или числовую 20071123. Особенностью этого типа данных является их хранение в едином внутреннем формате, что позволяет производить операции сложения и вычитания, в независимости от внешнего представления. NULL — специальный тип данных, обозначает отсутствие информации. Итак, теперь о каждом типе данных подробнее. Числовые данные Числовые данные делятся на точечные (это BOOLEAN, INTEGER, DECIMAL) и приближенные (FLOAT, REAL, DOUBLE PRESISION).
INT{(N)}, INTEGER{(N)} - 4 байта // от -2147683648 до 2147683648 (от -2^31 до 2^31-1) // от 0 до 4294967295 (от 0 до 2^32-1) BIGINT{(N)} - 8 байта // от -2^63 до 2^63-1 // от 0 до 2^64
BOOL, BOOLEAN - 1 байт // либо 0, либо 1 DECIMAL{(N{,D})}, DEC{(N{,D})}, NUMERIC{(N{,D})} - N+2 байта // Повышенная точность, зависит от значений N и D.
Итого, имеем: пять целых типов TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT. Различающихся между собой диапазоном хранимых в них величин. Чем больше диапазон значений, тем больше памяти для его хранения потребуется. Целые типы данных могут быть объявлены положительными. Для этого после объявления необходимо использовать ключевое слово UNSIGNED. В таком случае элементам столбца нельзя будет присвоить отрицательные значения, а допустимый диапазон положительных чисел которые может принимать элемент, удваивается. Например: TINYINT принимает от -128 до 127, а TINYINT UNSIGNED — от 0 до 255.
FLOAT{(N,D)} - 4 байта // минимальное значение ± 1.175494351*10^(-39) // максимальное значение ± 3.402823466*10^38 DOUBLE{(N,D)}, REAL{(N,D)}, DOUBLE PRECISION{(N,D)} - 8 байт // минимальное значение ± 2.2250738585072014*10^(-308) // максимальное значение ± 1.797693134862315*10^308
Параметр N — задает количество символов для всего числа, D — количество символов дробной части.
При выборе столбцов для создания структуры таблицы, обязательно необходимо обращать внимание на размер, который занимает тот или иной тип данных: в случае если значения, размещаемые в базе данных, никогда не выйдут за 100, не надо выбирать тип более TINYINT. При хранении в поле только положительных значений, применение параметра UNSIGNED позволит увеличить диапазон значений в два раза. Пример создания таблицы: create table table1 ( number1 int default 0, number2 float default 1.0 )
Из примера видно, что после типа столбца задано ключевое слово DEFAULT. Это поле позволяет задать значение поля по умолчанию, так для поля number1 это значение равно 0, а для number2 1.0. Ключевое слово DEFAULT является не обязательным и может не указываться, то-есть мы можем создать таблицу и так:create table table1 (number1 int,number2 float)