
- •1. Определение информации. Основные проблемы, возникающие при хранении информации.
- •2. Отличительные особенности субд как программного продукта. Понятие экземпляра и базы данных.
- •3. Категории пользователей субд. Функциональные требования различных категорий пользователей к субд.
- •4. История развития субд. Особенности не реляционных моделей данных.
- •5. Общая характеристика моделей данных. Основные свойства. Понятие атрибутов, доменов.
- •6. Отношения модели данных. Понятия сущности и связи.
- •7. Ограничение целостности модели данных. Трехуровневая архитектура ansi/sparc.
- •8. Структурные компоненты модели данных в нотации idef1x. Понятия сущность, связь. Типы сущностей и связей.
- •9. Реляционная модель данных. Базовые структурные компоненты реляционной модели данных. Основные свойства.
- •10. Свойства реляционной модели данных. Представление сущности.
- •11. Свойства реляционной модели данных. Представление связи.
- •12. Требования целостности в реляционной модели данных.
- •13. Язык определения данных в реляционной модели данных. Основные возможности. Примеры.
- •14. Типы ограничений целостности, основные типы данных, основные операции реляционной модели данных.
- •15. Проектирование реляционных баз данных. Цели проектирования, основные этапы.
- •16. Проектирование реляционных баз данных. Проблемы обновления, удаления, добавления данных. Типы ограничений целостности.
- •17. Функциональная зависимость. Нормализация отношений. Концепция нормальных форм.
- •18. Первая и вторая нормальные форма. Определение. Аномалии, возникающие при нарушении. Примеры нарушения и нормализации.
- •19. Третья нормальная форма. Нормальная форма Бойса-Кодда. Определение. Аномалии, возникающие при нарушении. Примеры нарушения и нормализации.
- •20. Понятие многозначной зависимости. Примеры.
- •21. Четвертая и пятая нормальные формы. Определение. Аномалии, возникающие при нарушении. Примеры нарушения и нормализации.
- •22. Основные свойства sql, как языка программирования. Отличие от других языков программирования.
- •23. Основы построения sql- запросов. Источники данных запроса. Условия выборки кортежей. Примеры.
- •24. Левые, правые и полные соединения. Функции для работы с null значениями. Выборка уникальных записей. Примеры.
- •25. Использование подзапросов. Типы подзапросов. Примеры.
- •26. Коррелированные подзапросы. Особенности использования in, not in,exists, not exists.
- •27. Теоретико-множественные операции в sql-запросах. Примеры.
- •28. Агрегирующие функции. Группировка кортежей. Примеры.
- •29. Представления. Особенности использования. Примеры.
- •30. Триггеры в Transact sql. Пример реализации триггера.
- •31. Курсоры. Основные функции. Правила применения. Примеры.
- •32. Внутренние структуры данных. Двухуровневая система доступа к данным. Отношения каталогов.
- •33. Методы доступа к данным. Бинарные деревья.
- •34. Методы доступа к данным. Многоходовые деревья.
- •35. Методы доступа к данным. Сбалансированные деревья. Структура, правила следования. Основные свойства.
- •36. Операция вставки элемента в в-дерево. Проблема переполнения, методы решения. Пример.
- •37. Операция удаления элемента из в-дерева. Проблема антипереполнения. Методы решения. Пример
- •42. Индекс на основе битовых карт. Основные свойства.
- •43. Индекс на основе битовых карт. Структура листового блока. Операция добавления элемента.
- •44. Индекс на основе битовых карт. Операция обновления элемента. Блокировка записей.
- •45. Методы доступа к данным. Основные операции выполнения sql-выражения.
- •46. Методы доступа к данным. Типы соединений таблиц.
14. Типы ограничений целостности, основные типы данных, основные операции реляционной модели данных.
Ограничения целостности - совокупность правил, позволяющих обеспечить в любой момент времени правильность данных (непротиворечивость, удовлетворяемость, адекватность существующим знаниям о реальном мире). Эти правила устанавливаются исходя из семантики предметной области. Ограничения могут быть внутренними (неявными) и явными. Внутренние ограничения предусматриваются самой моделью данных и тесно связаны со структурой данных. С ограничениями этого типа хорошо согласуются операции манипулирования данными, поэтому контроль над соблюдением внутренних ограничений обычно не вызывает трудностей. Как правило, внутренние ограничения целостности задаются вместе с определением структурных спецификаций средствами языка описания данных (ЯОД - Data Definition Language(DDL)). Явные ограничения включаются в структуру базы данных с помощью средств языка контроля данных (DCL, Data Control Language). В качестве явных ограничений чаще всего выступают условия, накладываемые на значения данных. Например, номер паспорта является уникальным, заработная плата не может быть отрицательной, а дата приёма сотрудника на работу обязательно будет меньше, чем дата его перевода на другую работу.
К внутренним ограничениям целостности в нотациях IDEF1X можно отнести: 1) ограничения на значения ключевых атрибутов: уникальность значений атрибутов первичных и альтернативных ключей определяется понятием ключа. Эти ограничения задаются соответствующим выделением ключей в концептуальной схеме (PRIMARY KEY, UNIQUE); 2) ограничения на допустимые значения атрибутов: все допустимые значения атрибутов должны удовлетворять условию принадлежности соответствующему домену. Эти ограничения задаются соответствующим описанием доменов и атрибутов. Кроме того, в описании атрибутов указывается обязательность значений определенных атрибутов (NULL, NOT NULL); 3) ограничения на существующие значения (ссылочные ограничения): существование одних сущностей (дочерних, типа категория) ставится в зависимость от существования других (родительских, родовых). Эти ограничения представляются с помощью соответствующих связей между множествами сущностей. Явные ограничения целостности задаются разработчиками.
Если
какое-либо ограничение целостности
(ОЦ) нельзя реализовать средствами DDL,
то возможны следующие способы его
реализации: 1) С помощью процедурных
объектов БД. Чаще всего для этой цели
используются
триггеры (trigger).
Триггер
– это процедура БД, которая привязана
к конкретной таблице и вызывается
автоматически при наступлении
определённого события (добавления,
удаления или модификации данных этой
таблицы). Если триггер диагностирует
нарушение ограничений целостности, он
выдаст сообщение об ошибке и команда
модификации данных не будет выполнена
(произойдёт автоматический откат,
rollback).
2) Программно
(т.е. через приложение). Для большей
гарантии соблюдения ОЦ желательно
проектировать программу так, чтобы
внесение изменений в данные и проверка
ОЦ выполнялись в одном единственном
месте. 3) Вручную.
Ручная процедура обязательно должна
быть описана в документации (в руководстве
пользователя).
Требование целостности сущностей: любой кортеж любого отношения должен быть отличим от любого другого кортежа этого же отношения. Ограничения: уникальность других атрибутов (АК); обязательность значений атрибутов (NULL, NOT NULL); допустимость значений атрибутов (CHECK).
Требование ссылочной целостности: значение атрибута внешнего ключа в любом кортеже дочернего отношения должно соответствовать значению атрибута первичного ключа в некотором кортеже родительского отношения.
Типы данных: Числовые - используются для представления целых, вещественных и десятичных чисел: SMALLINT, INTEGER, REAL, DECIMAL, и далее... Строковые типы данных - используются для представления символьных строк: CHAR[(len)]), VARCHAR[(len)] Типы данных дата – время используются для представления даты и времени: DATETIME, TIMESTAMP.
Основные
операции: Операция конкатенации (CONCAT
или || или +) - выполняет сцепление двух
строковых операндов и образует строковое
выражение. Арифметические
операции можно
использовать с операндами числовых
типов. Префиксная
операция +
(унарный плюс) не изменяет значение
своего операнда. Префиксная операция
–
(унарный минус) изменяет знак не нулевого
операнда. Бинарные
операции
(/, *, +, -) определяют сложение, вычитание,
умножение и деление, соответственно.
Операции
над датой и временем.
Значения даты и времени можно увеличивать,
уменьшать и вычитать. Эти операции могут
включать десятичные числа –
продолжительность.
Продолжительность
– это число, представляющее интервал
времени.
По типу производимых действий различают следующие операции: идентификация данных и нахождение их позиции в БД; выборка (чтение) данных из БД; включение (запись) данных в БД; удаление данных из БД; модификация (изменение) данных БД.