- •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 документу.
36. Реалізація ієрархічних структур на ms sql Server. Приклади знаходження елементу структури та всіх його потомків із строки, що містить шлях до елементу Иерархические данные (sql Server)
Встроенный тип данных hierarchyid упрощает хранение и запрос иерархических данных.hierarchyid оптимизирован для представления деревьев, которые являются наиболее распространенным типом иерархических данных.
Иерархические данные представляют собой набор элементов данных, связанных между собой иерархическими связями. Иерархические связи — это связи, в которых один из элементов данных является родителем другого элемента. Примеры иерархических данных, которые обычно хранятся в базах данных, включают следующее.
Организационная структура
Файловая система
группа задач в проекте;
Классификация языковых терминов
Диаграмма связей между веб-страницами
Тип данных hierarchyid используется для создания таблиц с иерархической структурой или для описания иерархической структуры данных, которые хранятся в другом расположении. Для запросов и управления иерархическими данными следует использовать функции hierarchyid в Transact-SQL.
Родители-потомки
Если используется подход «родители-потомки», в каждой строке содержится ссылка на родительскую переменную. Следующая таблица определяет типичную таблицу для хранения строк в связи типа «родители-потомки».
USE AdventureWorks2012 ;
GO
CREATE TABLE ParentChildOrg
(
BusinessEntityID int PRIMARY KEY,
ManagerId int REFERENCES ParentChildOrg(BusinessEntityID),
EmployeeName nvarchar(50)
) ;
GO
Сравнение подхода «родители-потомки» и hierarchyid для распространенных операций
Запросы по поддеревьям выполняются значительно быстрее, если используется тип hierarchyid.
Запросы по прямым потомкам обрабатываются немного медленнее, если используется тип hierarchyid.
Операции по перемещению узлов типа hierarchyid, не являющихся конечными, выполняются медленнее.
Вставка неконечных узлов и вставка или перемещение конечных узлов имеют для типа данныхhierarchyid одинаковую сложность.
Метод «родители-потомки» может оказаться более эффективным в следующих случаях.
Размер ключа очень важен. При одинаковом количестве узлов значение типа hierarchyid занимает столько же или больше памяти, чем значение одного из целочисленных типов (smallint, int, bigint). По этой причине можно использовать метод «родители-потомки», но только в редких случаях, так как типhierarchyid обеспечивает более эффективное использование памяти при операциях ввода-вывода и требует меньше команд ЦП по сравнению со структурами типа «родители-потомки».
Запросы редко бывают обращены сразу к нескольким частям иерархии. Иными словами, запрос обычно касается только одной точки иерархической структуры. В этих случаях хранение данных в одном месте не имеет значения. Например, метод «родители-потомки» предпочтителен в случае, если таблица организаций используется только для обработки заработной платы отдельных работников.
Структура неконечных поддеревьев часто меняется, и очень важна производительность. В иерархической структуре «родители-потомки» изменение местоположения строки иерархии касается только одной строки. Если используется тип hierarchyid, изменение местоположения строки влияет наn строк, где n — количество узлов в перемещаемом поддереве.
Если поддерево без конечных узлов необходимо часто перемещать и важна высокая производительность, но при этом большинство перемещений происходит на определенном уровне иерархии, рекомендуется разбить данные на две иерархические структуры: более высоких и более низких уровней. В этом случае все перемещения будут происходить на последнем уровне верхней иерархии. Например, рассмотрим иерархию веб-сайтов, входящих в одну службу. Сайты содержат много страниц, имеющих иерархическую структуру. Сайты службы могут перемещаться в другие места в иерархии сайтов, но реорганизация страниц происходит редко. Это можно представить так:
CREATE TABLE HostedSites
(
SiteId hierarchyid, PageId hierarchyid
) ;
GO