Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД - вопросы.docx
Скачиваний:
8
Добавлен:
03.08.2024
Размер:
2 Мб
Скачать
  1. Реляционная модель данных.

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

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

Реляционная БД - база данных, организованная в виде набора отношений ее компонентов.

Реляционная БД - связанная между собой совокупность таблиц, где:

  • таблица (отношение) - совокупность строк и столбцов;

  • строки (кортежи/записи) - экземпляры объекта, конкретное событие или явление;

  • столбцы (атрибуты / домены / поля) - признаки, характеристики, параметры объекта, события, явления.

Свойства реляционных таблиц:

  • каждый элемент таблицы - один элемент данных;

  • все столбцы в таблице однородные, т.е. все элементы в столбце имеют одинаковый тип (числовой, символьный и т.д.) и длину;

  • каждый столбец имеет уникальное имя;

  • одинаковые строки в таблице отсутствуют;

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

Первичный ключ - поле или набор полей, однозначно идентифицирующий запись. Первичный ключ – уникален и минимально достаточен.

Пример реляционной таблицы без первичного ключа:

С первичным ключом:

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

Индексы – это механизмы быстрого доступа к данным в таблицах БД.

Методы доступа:

Последовательный метод доступа к данным в таблицах БД:

  • просматриваются все записи таблицы, от первой к последней.

Индексно-последовательный метод доступа к данным в таблицах БД:

  • поиск ведется по индексу, а не по самой таблице;

  • поиск в индексе начинается только с первой строки, удовлетворяющей, условию запроса или его части («прямой доступ»);

  • строки в индексе, начиная с такой записи, просматриваются последовательно.

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

Реляционная алгебра - множество операций в реляционной модели данных (ее определение в вопросе выше).

В реляционной алгебре разделяют 8 видов операций (чтобы было легче запомнить - 4 из них имеют аналог в математике, 4 новых):

  • Объединение

  • Пересечение

  • Вычитание

  • Декартово произведение

  • Выборка

  • Проекция

  • Соединение

  • Деление

Первые 4 аналогичны таким же операция над множествами, вторые уже чисто для бд.

Рассмотрим все операции по порядку

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

Входные данные - 2 таблицы

Выходные данные - 1 таблицы, является конкатенацией двух выходных данных

Аналог из питона - np.concatenate(a, b, axis = 0) (тупо по вертикали таблицы стакаем)

Пример:

  1. Пересечение

Входные данные - 2 таблицы

Выходные данные - 1 таблицы, является выборкой всех строк, которые повторяются ПО ВСЕМ ЭЛЕМЕНТАМ в ОБЕИХ таблицах

Аналог из питона: pd.merge(df1, df2, for = ‘inner’)

Пример:

Пример принял ислам, потом вставлю

  1. Вычитание

Входные данные - 2 таблицы

Выходные данные - 1 таблица, сочетает в себе те данные, которые есть ТОЛЬКО в первой таблице и которых нет во 2 (если данные есть во 2 таблице, но их нет в 1, то то мы не вставляем их в итоговую таблицу). Другим языком, мы ищем уникальные для 1 таблицы строки

Пример:

  1. Декартово произведение

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

Входные данные - 2 таблицы

Выходные - 1 таблицы. Как строится

  1. Берем первую таблицу, 1 ее строку. К 1 строке добавляем поочередно все строки из второй таблицы и добавляем в новую таблицу. Так делаем, пока в 1 таблице строки не закончатся

Примерное построение на питоне:

Пример:

5. Выборка

Входные данные - 1 таблица и условие отбора

Выходные данные - 1 таблица, с множество строк в таблице, удовлетворяющих заданным условиям (условиям отбора)

Пример из питона: df[df[‘age’] > 15]

Пример:

6. Проекция

Входные данные - 1 таблица и колонки для отбора

Выходные данные - столбцы из этой же таблицы с заданными наименованиями

Аналог питона: df[[idx1, idx2]]

Пример:

РАЗНИЦА МЕЖДУ ПРОЕКЦИЕЙ И ВЫБОРКОЙ

ПЕРВОЕ ВЫБИРАЕТ СТОЛБЦЫ

ВТОРОЕ ВЫБИРАЕТ СТРОКИ ПО КРИТЕРИЮ

7. Деление

Входные данные: таблица, подвыборка n-ого кол-ва столбцов

Выходные: строки таблицы, в которые выходит подвыборка

8. Соединение

Соединение - это последовательное выполнение декартового произведения + последующая выборка

Соседние файлы в предмете Проектирование баз данных