- •Базы данных: основные понятия и определения. Требования, предъявляемые к базам данных.
- •Выбор хранимых данных.
- •Реляционная модель данных.
- •Реляционная алгебра.
- •Методология проектирования баз данных. Основные задачи проектирования баз данных.
- •Основные этапы проектирования баз данных.
- •Концептуальное (инфологическое) проектирование бд.
- •Логическое (даталогическое) проектирование бд.
- •Методология структурного анализа и проектирования sadt.
- •Диаграммы потоков данных: внешние сущности, системы и подсистемы, процессы, хранилища данных, потоки данных. Нотация Гейна – Сарсона.
- •Сравнительный анализ sadt-моделей и диаграмм потоков данных.
- •Функциональные модели, используемые на стадии проектирования.
- •Принципы и средства структурного подхода к разработке по.
- •Методология моделирования idef3: составные элементы, объекты ссылок, перекрестки.
- •Подходы к моделированию в базах данных.
- •Анализ предметной области. Описание объектов и их свойств. Связи между элементами моделей данных. Описание сложных объектов.
- •Проблема целостности базы данных.
- •Даталогическое проектирование. Нотация Питера Чена. Нотация idef 1х.
- •Проектирование реляционных баз данных на основе принципов нормализации. Правила технической нормализации.
- •Алгоритм процесса нормализации схем отношений.
- •Нормализация. Функциональная зависимость. Первая, вторая, нормальные формы.
- •Нормализация. Функциональная зависимость. Третья нормальная форма.
- •Нормализация. Функциональная зависимость. Нормальная форма Бойса – Кодда.
- •Разработка реляционных баз данных на основе принципов нормализации.
- •Основные аксиомы Армстронга. Замыкание.
- •Нормальные формы высших порядков.
- •Методологии проектирования.
- •Инфологическое моделирование данных: модель «сущность-связь».
- •Принципы поддержки целостности в реляционной модели данных.
- •Моделирование данных. Метод Баркера.
- •Моделирование данных. Метод idef1x.
- •Case-средство для концептуального моделирования данных на стадии формирования требований к ис – Silverrun.
- •Нормализация. Функциональная зависимость. Первая, вторая, третья нормальные формы. Нормальная форма Бойса – Кодда.
- •Инструментальные средства моделирования. Проектирование баз данных с использованием са erWin Data Modeler (erWin).
- •Алгоритм перехода от er – модели к реляционной схеме данных.
- •Основные принципы объектно-ориентированного моделирования.
- •Сущность методологии объектно-ориентированного анализа и проектирования.
- •Язык объектного моделирования uml. Виды диаграмм uml. Последовательность построения диаграмм.
- •Модель прецедентов (вариантов использования, use-cases).
- •Моделирование статической структуры системы с помощью диаграммы классов: стереотипы классов.
- •Моделирование статической структуры системы с помощью диаграммы классов: механизм пакетов.
- •Моделирование статической структуры системы с помощью диаграммы классов: атрибуты.
- •Моделирование статической структуры системы с помощью диаграммы классов: основные и вспомогательные операции.
- •Моделирование статической структуры системы с помощью диаграммы классов: типы связей.
- •Инкапсуляция, наследование, полиморфизм.
- •Моделирование поведения системы.
- •Использование диаграммы последовательностей для упорядочивания сообщений во времени.
- •Использование диаграммы кооперации для описания структурной организации объектов.
- •Моделирование физических аспектов функционирования системы с помощью диаграмм развертывания.
- •Особенности построения физической модели базы данных.
- •Ограничения ссылочной целостности.
- •Моделирование процессов обработки данных.
- •Индексирование.
- •Методы совместного доступа к базам данных.
- •Транзакции и блокировки.
- •Типы параллелизма.
- •Вертикальный гибридный
- •Свойства транзакций. Способы завершения транзакций.
- •Проблемы параллельного выполнения транзакций.
- •Методы сериализации транзакций. Механизм блокировок. Типы конфликтов.
- •Если одна транзакция заблокировала данные, то остальные транзакции при обращении к данным обязаны ждать разблокировки
- •Взаимоблокировкой считается ситуация когда транзакции оказываются в режиме ожидания, длящемся бесконечно долго
- •Оптимистическое решение проблемы взаимоблокировок позволяет взаимоблокировке произойти, но затем восстанавливает систему откатывая одну из транзакций, участвующих во взаимоблокировке
- •Правила совместимости захватов. Проблема тупиковых ситуаций и её решение.
- •Уровни изолированности пользователей.
- •Гранулированные синхронизационные захваты.
- •Метод временных меток. Более старая транзакция откатывается при попытке доступа к данным, задействованным более молодой транзакцией
- •Предикатные синхронизационные захваты.
Реляционная модель данных.
Реляционная модель данных – это модель организации данных в базе данных, основанная на теории отношений (реляций) между данными. Она представляет собой набор таблиц, связанных между собой ключами, и позволяет хранить и обрабатывать данные в структурированном формате.
Реляционная модель данных широко используется в современных базах данных, так как обладает простотой, гибкостью и эффективностью в работе.
Реляционная БД - база данных, организованная в виде набора отношений ее компонентов.
Реляционная БД - связанная между собой совокупность таблиц, где:
таблица (отношение) - совокупность строк и столбцов;
строки (кортежи/записи) - экземпляры объекта, конкретное событие или явление;
столбцы (атрибуты / домены / поля) - признаки, характеристики, параметры объекта, события, явления.
Свойства реляционных таблиц:
каждый элемент таблицы - один элемент данных;
все столбцы в таблице однородные, т.е. все элементы в столбце имеют одинаковый тип (числовой, символьный и т.д.) и длину;
каждый столбец имеет уникальное имя;
одинаковые строки в таблице отсутствуют;
порядок следования строк и столбцов может быть произвольным.
Первичный ключ - поле или набор полей, однозначно идентифицирующий запись. Первичный ключ – уникален и минимально достаточен.
Пример реляционной таблицы без первичного ключа:
С первичным ключом:
Внешний ключ - поля связи дочерней таблицы. Внешний ключ по составу полей должен совпадать с первичным ключом или с частью первичного ключа родительской таблицы
Индексы – это механизмы быстрого доступа к данным в таблицах БД.
Методы доступа:
Последовательный метод доступа к данным в таблицах БД:
просматриваются все записи таблицы, от первой к последней.
Индексно-последовательный метод доступа к данным в таблицах БД:
поиск ведется по индексу, а не по самой таблице;
поиск в индексе начинается только с первой строки, удовлетворяющей, условию запроса или его части («прямой доступ»);
строки в индексе, начиная с такой записи, просматриваются последовательно.
Реляционная алгебра.
Реляционная алгебра - множество операций в реляционной модели данных (ее определение в вопросе выше).
В реляционной алгебре разделяют 8 видов операций (чтобы было легче запомнить - 4 из них имеют аналог в математике, 4 новых):
Объединение
Пересечение
Вычитание
Декартово произведение
Выборка
Проекция
Соединение
Деление
Первые 4 аналогичны таким же операция над множествами, вторые уже чисто для бд.
Рассмотрим все операции по порядку
Объединение
Входные данные - 2 таблицы
Выходные данные - 1 таблицы, является конкатенацией двух выходных данных
Аналог из питона - np.concatenate(a, b, axis = 0) (тупо по вертикали таблицы стакаем)
Пример:
Пересечение
Входные данные - 2 таблицы
Выходные данные - 1 таблицы, является выборкой всех строк, которые повторяются ПО ВСЕМ ЭЛЕМЕНТАМ в ОБЕИХ таблицах
Аналог из питона: pd.merge(df1, df2, for = ‘inner’)
Пример:
Пример принял ислам, потом вставлю
Вычитание
Входные данные - 2 таблицы
Выходные данные - 1 таблица, сочетает в себе те данные, которые есть ТОЛЬКО в первой таблице и которых нет во 2 (если данные есть во 2 таблице, но их нет в 1, то то мы не вставляем их в итоговую таблицу). Другим языком, мы ищем уникальные для 1 таблицы строки
Пример:
Декартово произведение
если не знаешь, что такое декартово из матеши - земля тебе пухом
Входные данные - 2 таблицы
Выходные - 1 таблицы. Как строится
Берем первую таблицу, 1 ее строку. К 1 строке добавляем поочередно все строки из второй таблицы и добавляем в новую таблицу. Так делаем, пока в 1 таблице строки не закончатся
Примерное построение на питоне:
Пример:
5. Выборка
Входные данные - 1 таблица и условие отбора
Выходные данные - 1 таблица, с множество строк в таблице, удовлетворяющих заданным условиям (условиям отбора)
Пример из питона: df[df[‘age’] > 15]
Пример:
6. Проекция
Входные данные - 1 таблица и колонки для отбора
Выходные данные - столбцы из этой же таблицы с заданными наименованиями
Аналог питона: df[[idx1, idx2]]
Пример:
РАЗНИЦА МЕЖДУ ПРОЕКЦИЕЙ И ВЫБОРКОЙ
ПЕРВОЕ ВЫБИРАЕТ СТОЛБЦЫ
ВТОРОЕ ВЫБИРАЕТ СТРОКИ ПО КРИТЕРИЮ
7. Деление
Входные данные: таблица, подвыборка n-ого кол-ва столбцов
Выходные: строки таблицы, в которые выходит подвыборка
8. Соединение
Соединение - это последовательное выполнение декартового произведения + последующая выборка
