Добавил:
СПбГУТ * ИКСС * Программная инженерия Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основное / Письменные лекции по дисциплине «Базы данных».docx
Скачиваний:
89
Добавлен:
29.11.2021
Размер:
713.33 Кб
Скачать

2.2. Отношения

Реляционные базы данных состоят из нескольких таблиц, связь между которыми устанавливается с помощью совпадающих полей. Каждая запись в таблицах идентифицирует один объект. Отношение между объектами определяет отношение между таблицами. Существует 4 типа отношений:

Отношение «один-к-одному» (1:1) означает, что каждая запись в одной таблице соответствует только одной записи в другой таблице.

Пример — студент 1:1 сессия. Каждый студент имеет определенный набор экзаменационных оценок в сессию.

Отношение «один-ко-многим» (1:М) означает, что каждой записи в одной таблице соответствует одна или несколько записей в другой таблице.

Пример — стипендия 1:M сессия. Установленный размер стипендии по результатам сдачи сессии может повторяться многократно для различных студентов.

Отношение «многие-к-одному» (М:1) аналогично рассмотренному ранее типу «один-ко-многим». Тип отношения между объектами зависит от вашей точки зрения.

Отношение «многие-ко-многим» (N:М) возникает между двумя таблицами в тех случаях, когда каждая запись в одной таблице соответствует 0, 1, 2 и более записей в другой таблице и наоборот.

Пример — студент N:M преподаватель. Один студент обучается у многих преподавателей, один преподаватель обучает многих студентов.

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

2.3. Ключ

Ключ СУБД — это атрибут или набор атрибутов, который помогает идентифицировать строку (кортеж) в отношении (таблице).

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

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

Все остальные ключи отношения называются возможными ключами.

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

2.4. Пример выгрузки данных

USE university; // Используем указанную базу данных

SELECT name, … [либо *] FROM имя_табл // Выводим указанные параметры с указанной таблицы (* - означает вывод всех полей таблицы)

WHERE условие name = 'Ivan' // Условие - вывод всех полей, где имя = Ivan

ORDER BY имя_поля, // Упорядочить данные по имя_поля

GROUP BY имя_поля // Группировать записи по имя_поля

LIMIT 5 // Максимальное количество записей = 5

GROUP BY можно использовать в операторе SELECT для сбора данных по нескольким записям и группировки результатов по одному или нескольким столбцам.

Подробнее про ORDER BY: https://oracleplsql.ru/order-by-sql.html

Подробнее про GROUP BY: https://oracleplsql.ru/group-by-sql.html