проф. Владимир Димитров

Учебни дисциплини

Конспект по бази от данни

I. Основни понятия в СУБД

  1. Еволюция на СУБД. Първите СУБД. Релационни СУБД. Малки и големи системи. Архитектура клиент-сървър и архитектури с много нива. Мултимедийни данни. Интеграция на информацията.
  2. Структура на СУБД. Език за дефиниция на данните. Обработка и изпълнение на заявките. Управление на паметта и буферирането. Обработка на транзакции. Процесор на заявките.
  3. Предмет на СУБД. Проектиране на бази от данни. Програмиране с бази от данни. Разработка на СУБД. Интеграция на информацията.

II. Модел на данни същност-връзки

  1. Основни елементи на модела същност-връзки. Множества същности. Атрибути. Отношения. Диаграми същност-връзки. Екземпляри на диаграма същност-връзки. Видове бинарни отношения. Небинарни отоншения. Роли при отношенията. Атрибути на отношенията. Преобразуване на небинарните отоншения в бинарни. Подкласове в модела същност-връзки.
  2. Принципи на проектирането. Съответствие. Избягване на излишествата. Простота. Избор на точните отношения. Избор на точните елементи.
  3. Моделиране на ограниченията. Класификация на ограниченията. Ключовете в модела същност-връзки. Представяне на ключовете в модела същност-връзки. Ограничения на единствената стойност. Референтна цялостност. Представяне на референтната цялостност в диаграмите същност-връзки. Други видове ограничения.
  4. Слаби множества същности. Причини за наличието на слаби множества същности. Изисквания към слабите множества същности. Нотация на слабите множества същности.

III. Релационен модел на данни

  1. Основни понятия в релационния модел. Атрибути. Схеми. Кортежи. Домейни. Еквивалентни представяния на релация. Екземпляри на релация.
  2. Преобразуване на диаграми същност-връзки в релационни проекти. Преобразуване на множествата същности в релации. Преобразуване на връзките в релации. Комбиниране на релации. Преобразуване на слабите множества същности.
  3. Преобразуване на йерархии от подкласове в релации. Подход същност-връзки. Обектно-ориентиран подход. Използване на нулевите стойности за комбиниране на релациите. Сравнение на подходите.
  4. Функционални зависимости. Определение за функционална зависимост. Ключове на релациите. Суперключове. Откриване на ключовете в релациите.
  5. Правила за функционалните зависимости. Правило за разделяне/комбиниране. Тривиални функционални зависимости. Пресмятане покритието на атрибути. Коректност на алгоритъма за покритията. Правила на транзитивността. Покриващи множества на функционалните зависимости. Проектиране на функционалните зависимости.
  6. Проектиране схемите на релационните бази от данни. Аномалии. Декомпозиция на релации. Нормална форма на Бойс-Код. Декомпозиция в нормална форма на Бойс-Код. Възстановяване на информацията след декомпозиция. Трета нормална форма.
  7. Многозначни зависимости. Независимост на атрибут и следващото от това излишество. Определение за многозначна зависимост. Причини за многозначните зависимости. Четвърта нормална форма. Декомпозиция в четвърта нормална форма. Връзка между нормалните форми.

IV. Други модели на данни

  1. Обзор на обектно-ориентираните концепции. Системата за типизация. Класове и обекти. Идентификация на обектите. Методи. Йерархии от класове.
  2. Увод в ODL. Обектно-ориентирано проектиране. Декларации на класове. Атрибутите в ODL. Връзките в ODL. Инверсни връзки. Множественост на връзките. Методите в ODL. Типовете в ODL.
  3. Допълнителни концепции в ODL. Небинарните връзки в ODL. Подкласовете в ODL. Множественото наследяване в ODL. Разширения. Деклариране на ключове в ODL.
  4. Преобразуване на ODL проектите в релационни проекти. Преобразуване на ODL атрибутите в релационни атрибути. Неатомарните атрибути в класовете. Представяне на множествените атрибути. Представяне на типове конструирани с другите конструктори. Представяне на ODL връзките. Какво да се прави когато няма ключ?
  5. Полуструктуриран модел на данни. Мотивация за полуструктурирания модел на данни. Представяне на полуструктурираните данни. Интеграция на информацията чрез полуструктурираните данни.
  6. XML и неговия модел на данни. Семантични маркери. Добре оформен XML. Дефиниция типовете на документите. Използване на DTD. Списъци от атрибути.

V. Релационна алгебра

  1. Алгебра на релационните операции. Основи на релационната алгебра. Множествени операции върху релациите. Проекция. Селекция. Декартово произведение. Естествено съединение. Θ-съединения. Комбиниране на операции за формиране на заявки. Преименуване. Зависими и независими операции. Линейна нотация на алгебричните изрази.
  2. Релационни операции върху мултимножества. Защо са необходими мултимножествата? Обединение, сечение и разлика при мултимножествата. Проекция върху мултимножества. Декартово произведение върху мултимножества. Съединенията при мултимножествата.
  3. Допълнителни операции в релационната алгебра. Премахване на дубликати. Агрегатни операции. Групиране. Оператор за групиране. Разширяване на оператора за проекция. Оператор за сортиране. Външни съединения.
  4. Ограничения върху релациите. Релационната алгебра като език за ограниченията. Ограниченията за референтна цялостност. Други видове ограничения.

VI. Логически езици за заявки

  1. Логиката при релациите. Предикати и атоми. Аритметични атоми. Datalog правила и заявки. Значение на Datalog правилата. Екстенсионални и интенсионални предикати. Datalog правила върху мултимножества.
  2. Представяне на релационната алгебра в Datalog. Сечение. Обединение. Разлика. Проекция. Селекция. Произведение. Съединения. Група операции в Datalog.
  3. Рекурсивно програмиране в Datalog. Рекурсивни правила. Изчисляване на рекурсивни рекурсивни Datalog правила. Отрицание в рекурсивните правила.
  4. Рекурсия в SQL. Дефиниране на IDB релации в SQL. Разслоени отрицания. Проблемни изрази в рекурсивния SQL.

VIІ. Език за манипулация на данни SQL

  1.  Прости заявки на SQL. Проекция в SQL. Селекция в SQL. Сравняване на символни низове. Дати и времена. Нулеви стойности и сравнения включващи NULL. Логическата стойност UNKNOWN. Подреждане на изхода.
  2. Заявки включващи повече от една релация. Произведения и съединения в SQL. Преодоляване на противоречията при атрибутите. Променливи-кортежи. Интерпретация на заявките с множество релации. Обединение, сечение и разлика в заявките.
  3. Подзаявки. Подзаявки, които произвеждат скаларна стойност. Условия, в които участват релации. Условия, в които участват кортежи. Съотнасящи се подзаявки. Подзаявки в клаузата FROM. Изразяване на SQL съединения. Естествени съединения. Външни съединения.
  4. Операции с цели релации. Премахване на дубликатите. Дубликатите в съединенията, сеченията и разликите. Групиране и агрегиране в SQL. Операции на агрегиране. Групиране. Клауза HAVING.
  5. Модифициране на базата от данни. Вмъквания. Изтривания. Обновявания.
  6. Дефиниране на релационна схема в SQL. Типове данни. Проста декларация на таблица. Изменение схемата на релацията. Стойности по подразбиране. Индекси. Въведение в избора на индексите.
  7. Дефиниция на гледки. деклариране на гледка. Заявки върху гледки. Преименуване на атрибутите. Изменение на гледките. Интерпретация на заявките включващи гледки.

VIІІ. Ограничения и тригери

  1. Ключове и външни ключове. Деклариране на първични ключове. Ключове декларирани с UNIQUE. Влизане в сила на ограниченията по ключ. Деклариране на ограничения по външен ключ. Поддръжка на референтна цялостност. Отлагане проверката на ограниченията.
  2. Ограничения върху атрибути и кортежи. Ограничения за не-NULL стойности. Ограничения CHECK върху атрибути. Ограничения CHECK върху кортежи.
  3. Модификация на ограничения. Задаване имена на ограниченията. Промяна на ограниченията върху таблиците.
  4. Ограничения на ниво схема и тригери. Твърдения. Правила събитие-условие-действие. Тригерите в SQL. Заместващи тригери.