Главная страница
Навигация по странице:

  • 3. Напишите предложение SELECT для отыскания всех узлов иерархии не имеющих потомков для случая моделирования иерархии методом правого и левого коэффициентов. SELECT name

  • FROM nested_category WHERE rgt = lft + 1;

  • Атрибут сущности

  • Модальности связи

  • Функциональная зависимость

  • 2. Напишите предложение SELECT для отыскания всех общих предков для двух наперёд заданных узлов иерархии в случае моделирования иерархии методом правого и левого коэффициентов.

  • 3. Коллективный доступ к данным. Проблемы коллективного доступа. Понятие блокирования или захвата.

  • Семантическая модель Entity-Relationship (сущность-связь). Связи: один к одному, один ко многим, многие ко многим. Сущность

  • Перечислите и раскройте понятия зависимостей используемых при определении нормальных форм. Нормальная форма

  • Внешние ключи

  • Неключевым атрибутом

  • Полная функциональная зависимость

  • Транзитивная функциональная зависимость

  • Проектирование реляционных БД с использованием нормализации: нормальная форма Бойса-Кодда, четвертая нормальная форма.

  • Ответы к экзамену по базам данных. Создание, модификация и уничтожение таблиц. Предложение языка sql create table. Основные типы данных. Предложение alter table. Предложение drop table


    Скачать 0.53 Mb.
    НазваниеСоздание, модификация и уничтожение таблиц. Предложение языка sql create table. Основные типы данных. Предложение alter table. Предложение drop table
    Дата28.01.2018
    Размер0.53 Mb.
    Формат файлаdocx
    Имя файлаОтветы к экзамену по базам данных.docx
    ТипДокументы
    #35327
    страница6 из 6
    1   2   3   4   5   6

    2. Проектирование реляционных БД с использованием нормализации: первая, вторая и третья нормальные формы.
    ПЕРВАЯ ФОРМА − Отношение R находится в первой нормальной форме (1НФ), если значения каждого его атрибута являются атомарными, т.е. такими значениями, которые не являются множеством значений или повторяющейся группой.

    В определении реляционной модели Кодда все отношения всегда находятся в 1НФ.

    Каждый атрибут отношения должен хранить одно-единственное значение и не являться ни списком, ни множеством значений.

    ВТОРАЯ ФОРМА − Отношение R находится во второй нормальной форме (2НФ), если никакие не ключевые атрибуты не являются функционально зависимыми лишь от части ключа.

    Таким образом, 2НФ может оказаться нарушена только в том случае, когда ключ составной.

    Каждый не ключевой столбец в таблице должен уникально идентифицироваться по первичному ключу
    ТРЕТЬЯ ФОРМА − Отношение R находится в третьей нормальной форме (3NF) в том и только в том случае, если находится в 2NF и каждый не ключевой атрибут не транзитивно зависит от первичного ключа.

    Кроме удовлетворения требованиям второй нормальной формы, каждый не ключевой столбец таблицы должен быть независимым от других не ключевых столбцов
    3. Напишите предложение SELECT для отыскания всех узлов иерархии не имеющих потомков для случая моделирования иерархии методом правого и левого коэффициентов.
    SELECT name

    FROM nested_category

    WHERE rgt = lft + 1;

    Экзаменационный билет № 10
    1. Как связаны различные типы зависимостей, процесс нормализации и отношения типа «сущность - связь»
    Замыкания множества зависимостей

    Одни функциональные зависимости могут подразумевать другие функциональные зависимости. Например,

    (A → B) ∧ (B → C) ⇒ (A → C)

    Множество S+ всех функциональных зависимостей, которые подразумеваются данным множеством функциональных зависимостей S называется замыканием множества S.

    Аксиомы Армстронга

    Пусть A, B, C, D - произвольные подмножества множества атрибутов заданной переменной отношения R.

    1. Рефлексивность. Если B ⊂ A, то A → B

    2. Дополнение. Если A → B, то AC → BC

    3. Транзитивность. Если A → B,B → C, то A → C

    4. Самоопределение. A → A

    5. Декомпозиция. Если A → BC, то A → B,A → C

    6. Объединение. Если A → B,A → C, то A → BC

    7. Композиция. Если A → B,C → D, то AC → BD
    Пусть у нас есть отношение r(R) и множества атрибутов A, B, C, D ⊆ R. Для сокращения записи вместо X ∪ Y будем писать просто XY.
    Группа 1: базовые правила.

    1. Дополнение

    2. (A ∪ B ∪ C = R) ∧ (B ∩ C ⊆ A) ⇒ ((A →→ B) ⇔ (A →→ C))

    3. Транзитивность

    4. (A →→ B) ∧ (B →→ C) ⇒ (A →→ C\B)

    5. Рефлексивность

    6. (B ⊆ A) ⇒ (A →→ B)

    7. Приращение

    8. (A →→ B) ∧ (C ⊆ D) ⇒ (AD →→ BC)
    Группа 2: выводятся несколько дополнительных правил, упрощающих задачу вывода многозначных зависимостей.

    1. Псевдотранзитивность

    2. (A →→ B) ∧ (BC →→ D) ⇒ (AC →→ D\BC)

    3. Объединение

    4. (A →→ B) ∧ (A →→ C) ⇒ (A →→ BC)

    5. Декомпозиция

    6. (A →→ BC) ⇒ (A →→ B ∩ C) ∧ (A →→ B\C) ∧ (A →→ C\B)

    Группа 3: устанавливается связь между функциональными и многозначными зависимостями.

    1. Репликация (копирование)

    2. (A → B) ⇒ (A →→ B)

    3. Слияние

    4. (A →→ B) ∧ (C → D) ∧ (D ⊆ B) ∧ (B ∩ C = nothing) ⇒ (A → D)
    Группа 4:

    для функциональных зависимостей, выводятся из вышеприведенных правил. (A →→ B)∧(AB → C) ⇒ (A → C\B)
    Сущность – множество экземпляров реальных или абстрактных объектов, обладающих общими атрибутами или характеристиками.

    Сущность – класс однотипных объектов.
    Атрибут сущности – именованная характеристика, являющаяся некоторым свойством сущности.
    Ключ сущности – неизбыточный набор атрибутов, значения которых в совокупности являются уникальными для каждого экземпляра сущности.
    Связь – некоторая ассоциация между двумя сущностями:

    - один-к-одному - любая запись в первой таблице может быть связана только с одной записью второй таблицы и наоборот;

    - один-ко-многим - любая запись первой таблицы связана с несколькими записями второй, но любая запись во второй таблице связана только с одной записью первой таблицы;

    -много-ко-многим - каждой записи первой таблицы соответствуют несколько записей второй и наоборот. В явном виде эта связь в реляционных БД не поддерживается, но имеются способы ее косвенной организации путем создания дополнительных таблиц.
    Модальности связи:

    - может

    - должен
    Модель Сущность-Связь (ER-модель) (англ. entity-relationship model или entity-relationship diagram) — это модель данных, позволяющая описывать концептуальные схемы. Она предоставляет графическую нотацию, основанную на блоках и соединяющих их линиями, с помощью которых можно описывать объекты и отношения между ними какой-либо другой модели данных. В этом смысле ER-модель является средством описания моделей данных.
    Нормальная форма — свойство отношения в реляционной модели данных, характеризующее его с точки зрения избыточности, которая потенциально может привести к логически ошибочным результатам выборки или изменения данных. Нормальная форма определяется как совокупность требований, которым должно удовлетворять отношение.

    Процесс преобразования базы данных к виду, отвечающему нормальным формам, называется нормализацией. Нормализация предназначена для приведения структуры базы данных к виду, обеспечивающему минимальную избыточность, то есть нормализация не имеет целью уменьшение или увеличение производительности работы или же уменьшение, или увеличение объёма БД. Конечной целью нормализации является уменьшение потенциальной противоречивости хранимой в БД информации.

    Цель нормализации - минимизировать повторения данных и возможные структурные изменения БД при процедурах обновления. Это достигается разделением (декомпозицией) одной таблицы в две или несколько с последующим использованием при запросах операции навигации.
    Функциональная зависимость - в отношении R атрибут Y функционально зависит от атрибута X (X и Y могут быть составными) в том и только в том случае, если каждому значению X соответствует в точности одно значение Y: R.X (r) R.Y.

    Множество атрибутов X называется детерминантом функциональной зависимости, а множество атрибутов Y называется зависимой частью.

    Функциональная зависимость атрибутов утверждает лишь то, что для каждого конкретного состояния базы данных по значению одного атрибута (детерминанта) можно однозначно определить значение другого атрибута (зависимой части). Но конкретные значение зависимой части могут быть различны в различных состояниях базы данных.
    2. Напишите предложение SELECT для отыскания всех общих предков для двух наперёд заданных узлов иерархии в случае моделирования иерархии методом правого и левого коэффициентов.

    https://pp.userapi.com/c841323/v841323438/5e5cf/vd_aflghkmg.jpg

    3. Коллективный доступ к данным. Проблемы коллективного доступа. Понятие блокирования или захвата.
    Блокировкой называется временное ограничение на выполнение некоторых операций обработки данных. Блокировка может быть наложена как на отдельную строку таблицы, так и на всю базу данных. Управлением блокировками на сервере занимается менеджер блокировок, контролирующий их применение и разрешение конфликтов. Транзакции и блокировки тесно связаны друг с другом. Транзакции накладывают блокировки на данные, чтобы обеспечить выполнение требований ACID. Без использования блокировок несколько транзакций могли бы изменять одни и те же данные.

    Блокировка представляет собой метод управления параллельными процессами, при котором объект БД не может быть модифицирован без ведома транзакции, т.е. происходит блокирование доступа к объекту со стороны других транзакций, чем исключается непредсказуемое изменение объекта. Различают два вида блокировки:

    • блокировка записи – транзакция блокирует строки в таблицах таким образом, что запрос другой транзакции к этим строкам будет отменен;

    • блокировка чтения – транзакция блокирует строки так, что запрос со стороны другой транзакции на блокировку записи этих строк будет отвергнут, а на блокировку чтения – принят.

    В СУБД используют протокол доступа к данным, позволяющий избежать проблемы параллелизма. Его суть заключается в следующем:

    • транзакция, результатом действия которой на строку данных в таблице является ее извлечение, обязана наложить блокировку чтения на эту строку;

    • транзакция, предназначенная для модификации строки данных, накладывает на нее блокировку записи;

    • если запрашиваемая блокировка на строку отвергается из-за уже имеющейся блокировки, то транзакция переводится в режим ожидания до тех пор, пока блокировка не будет снята;

    • блокировка записи сохраняется вплоть до конца выполнения транзакции.

    Если в системе управления базами данных не реализованы механизмы блокирования, то при одновременном чтении и изменении одних и тех же данных несколькими пользователями могут возникнуть следующие проблемы одновременного доступа:

    • проблема последнего изменения возникает, когда несколько пользователей изменяют одну и ту же строку, основываясь на ее начальном значении; тогда часть данных будет потеряна, т.к. каждая последующая транзакция перезапишет изменения, сделанные предыдущей. Выход из этой ситуации заключается в последовательном внесении изменений;

    • проблема "грязного" чтения возможна в том случае, если пользователь выполняет сложные операции обработки данных, требующие множественного изменения данных перед тем, как они обретут логически верное состояние. Если во время изменения данных другой пользователь будет считывать их, то может оказаться, что он получит логически неверную информацию. Для исключения подобных проблем необходимо производить считывание данных после окончания всех изменений;

    • проблема неповторяемого чтения является следствием неоднократного считывания транзакцией одних и тех же данных. Во время выполнения первой транзакции другая может внести в данные изменения, поэтому при повторном чтении первая транзакция получит уже иной набор данных, что приводит к нарушению их целостности или логической несогласованности;

    • проблема чтения фантомов появляется после того, как одна транзакция выбирает данные из таблицы, а другая вставляет или удаляет строки до завершения первой. Выбранные из таблицы значения будут некорректны.

    Для решения перечисленных проблем в специально разработанном стандарте определены четыре уровня блокирования. Уровень изоляции транзакции определяет, могут ли другие (конкурирующие) транзакции вносить изменения в данные, измененные текущей транзакцией, а также может ли текущая транзакция видеть изменения, произведенные конкурирующими транзакциями, и наоборот. Каждый последующий уровень поддерживает требования предыдущего и налагает дополнительные ограничения:

    • уровень 0 – запрещение "загрязнения" данных. Этот уровень требует, чтобы изменять данные могла только одна транзакция; если другой транзакции необходимо изменить те же данные, она должна ожидать завершения первой транзакции;

    • уровень 1 – запрещение "грязного" чтения. Если транзакция начала изменение данных, то никакая другая транзакция не сможет прочитать их до завершения первой;

    • уровень 2 – запрещение неповторяемого чтения. Если транзакция считывает данные, то никакая другая транзакция не сможет их изменить. Таким образом, при повторном чтении они будут находиться в первоначальном состоянии;

    • уровень 3 – запрещение фантомов. Если транзакция обращается к данным, то никакая другая транзакция не сможет добавить новые или удалить имеющие строки, которые могут быть считаны при выполнении транзакции. Реализация этого уровня блокирования выполняется путем использования блокировок диапазона ключей. Подобная блокировка накладывается не на конкретные строки таблицы, а на строки, удовлетворяющие определенному логическому условию. Блокировки, используемые уровнями изоляции, подразделяются на:

    • разделяемые блокировки (S-locks), которые могут одновременно устанавливаться несколькими пользователями;

    • исключительные блокировки (X-locks), которые устанавливаются только одним пользователем, получающим эксклюзивный доступ к данным.

    Существуют следующие логические и физические уровни блокировок:

    • блокировка на уровне таблицы (table-level locking);

    • блокировка на уровне строк (row-level locking);

    • блокировка на уровне элемента таблицы (item-level locking);

    • блокировка на уровне БД (dbspace-level locking);

    • блокировка на уровне табличного пространства (tablespace-level locking); блокировка на уровне страницы или блока (page-level locking).
    В большинстве СУБД создается механизм обработки транзакций, при инициировании которого все изменения данных будут рассматриваться как предварительные до тех пор, пока пользователь (реже система) не выдаст предложения:

    COMMIT (фиксировать), превращающее все предварительные обновления в окончательные (“зафиксированные”);

    ROLLBACK (откат), аннулирующее все предварительные обновления.

    Экзаменационный билет № 11


    1. Семантическая модель Entity-Relationship (сущность-связь). Связи: один к одному, один ко многим, многие ко многим.


    Сущность – множество экземпляров реальных или абстрактных объектов, обладающих общими атрибутами или характеристиками.

    Сущность – класс однотипных объектов.
    Атрибут сущности – именованная характеристика, являющаяся некоторым свойством сущности.
    Ключ сущности – неизбыточный набор атрибутов, значения которых в совокупности являются уникальными для каждого экземпляра сущности.
    Связь – некоторая ассоциация между двумя сущностями:

    - один-к-одному - любая запись в первой таблице может быть связана только с одной записью второй таблицы и наоборот;

    - один-ко-многим - любая запись первой таблицы связана с несколькими записями второй, но любая запись во второй таблице связана только с одной записью первой таблицы;

    -много-ко-многим - каждой записи первой таблицы соответствуют несколько записей второй и наоборот. В явном виде эта связь в реляционных БД не поддерживается, но имеются способы ее косвенной организации путем создания дополнительных таблиц.
    Модальности связи:

    - может

    - должен
    Модель Сущность-Связь (ER-модель) (англ. entity-relationship model или entity-relationship diagram) — это модель данных, позволяющая описывать концептуальные схемы. Она предоставляет графическую нотацию, основанную на блоках и соединяющих их линиями, с помощью которых можно описывать объекты и отношения между ними какой-либо другой модели данных. В этом смысле ER-модель является средством описания моделей данных.


    1. Перечислите и раскройте понятия зависимостей используемых при определении нормальных форм.


    Нормальная форма — свойство отношения в реляционной модели данных, характеризующее его с точки зрения избыточности, которая потенциально может привести к логически ошибочным результатам выборки или изменения данных. Нормальная форма определяется как совокупность требований, которым должно удовлетворять отношение.

    Процесс преобразования базы данных к виду, отвечающему нормальным формам, называется нормализацией. Нормализация предназначена для приведения структуры базы данных к виду, обеспечивающему минимальную избыточность, то есть нормализация не имеет целью уменьшение или увеличение производительности работы или же уменьшение, или увеличение объёма БД. Конечной целью нормализации является уменьшение потенциальной противоречивости хранимой в БД информации.

    Цель нормализации - минимизировать повторения данных и возможные структурные изменения БД при процедурах обновления. Это достигается разделением (декомпозицией) одной таблицы в две или несколько с последующим использованием при запросах операции навигации.
    Функциональная зависимость - в отношении R атрибут Y функционально зависит от атрибута X (X и Y могут быть составными) в том и только в том случае, если каждому значению X соответствует в точности одно значение Y: R.X (r) R.Y.

    Множество атрибутов X называется детерминантом функциональной зависимости, а множество атрибутов Y называется зависимой частью.

    Функциональная зависимость атрибутов утверждает лишь то, что для каждого конкретного состояния базы данных по значению одного атрибута (детерминанта) можно однозначно определить значение другого атрибута (зависимой части). Но конкретные значение зависимой части могут быть различны в различных состояниях базы данных.

    Атрибуты представляют собой свойства, характеризующие сущность. В структуре таблицы каждый атрибут именуется и ему соответствует заголовок некоторого столбца таблицы.
    Первичным ключом (ключом отношения, ключевым атрибутом) называется атрибут или набор атрибутов отношения, однозначно идентифицирующий каждый из его кортежей. Первичный ключ по определению уникален: в отношении не может быть двух разных кортежей с одинаковыми значениями первичного ключа. Атрибуты, составляющие первичный ключ, не могут иметь значение NULL. Понятие NULL в теории реляционных баз данных призвано обозначать отсутствие какого-либо значения атрибута. Для каждого отношения первичный ключ может быть только один.

    Внешние ключи – это основной механизм для организации связей между таблицами и поддержания целостности и непротиворечивости информации в базе данных.

    Внешний ключ – это набор атрибутов одного отношения, являющийся возможным ключом другого отношения.
    Неключевым атрибутом называется любой атрибут отношения, не входящий в состав ключа (в частности, первичного).
    Взаимно независимые атрибуты - два или более атрибута взаимно независимы, если ни один из этих атрибутов не является функционально зависимым от других.
    Полная функциональная зависимость - функциональная зависимость R.X (r) R.Y называется полной, если атрибут Y не зависит функционально от любого точного подмножества X.
    Транзитивная функциональная зависимость - функциональная зависимость R.X -> R.Y называется транзитивной, если существует такой атрибут Z, что имеются функциональные зависимости R.X -> R.Z и R.Z -> R.Y и отсутствует функциональная зависимость R.Z --> R.X.


    1. Проектирование реляционных БД с использованием нормализации: нормальная форма Бойса-Кодда, четвертая нормальная форма.


    Детерминант − любой атрибут, от которого полностью функционально зависит некоторый другой атрибут.
    БОЙС-КОДД − Отношение R находится в нормальной форме Бойса-Кодда (BCNF) в том и только в том случае, если каждый детерминант является возможным ключом.

    Вариант третьей нормальной формы, в котором требуется, чтобы каждый столбец, от которого зависит другой столбец, сам должен быть уникальным ключом.

    Отношение находится в нормальной форме Бойса – Кодда, когда оно находится в третьей нормальной форме и в нём отсутствуют функциональные зависимости атрибутов первичного ключа от неключевых атрибутов.
    ЧЕТВЁРТАЯ ФОРМА − Отношение R находится в четвертой нормальной форме (4NF), если в случае существования многозначной зависимости A −> −> B все остальные атрибуты R функционально зависят от A.

    Четвёртая нормальная форма запрещает существование многозначных зависимостей между столбцами. Если столбец вместо того, чтобы уникально идентифицировать другой столбец, ограничивает его значения некоторым предопределённым множеством значений – это означает, что между ними существует многозначная зависимость.

    Отношение находится в четвёртой нормальной форме если оно находится в нормальной форме Бойса – Кодда и не содержит нетривиальных многозначных зависимостей, равно как и нефункциональных многозначных зависимостей.
    1   2   3   4   5   6


    написать администратору сайта