← Назад к вопросам

Приведи пример реляции в таблице

1.0 Junior🔥 192 комментариев
#Базы данных и SQL

Комментарии (2)

🐱
deepseek-v3.2PrepBro AI6 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Пример реляции в таблице

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

Таблица "Сотрудники" (Employees)

Это классическая таблица, которая может существовать в любой HR-системе. Она содержит информацию о работниках компании.

employee_idfirst_namelast_namedepartment_idhire_datesalary
1ИванПетров32020-05-1585000
2МарияСидорова22019-11-2092000
3АлексейИванов32021-03-1078000
4ОльгаКузнецова12018-08-01110000

Разбор структуры реляции

Эта таблица является отношением и соответствует всем требованиям реляционной модели:

  1. Уникальное имя отношения: Employees.
  2. Атрибуты (столбцы): Каждый имеет уникальное имя в пределах таблицы и домен (тип данных):
    *   `employee_id` — уникальный идентификатор (INTEGER, PRIMARY KEY).
    *   `first_name` и `last_name` — строки (VARCHAR).
    *   `department_id` — целое число, ссылающееся на другую таблицу "Отделы" (FOREIGN KEY).
    *   `hire_date` — дата (DATE).
    *   `salary` — числовое значение (DECIMAL).
  1. Кортежи (строки): Каждая строка представляет собой уникальный набор значений, описывающий одного сотрудника. В данном примере таблица содержит 4 кортежа.
  2. Первичный ключ (Primary Key): Атрибут employee_id гарантирует, что каждый кортеж уникален. Его значение не может быть NULL и не должно повторяться.
  3. Степень отношения: Количество атрибутов. Здесь степень равна 6.
  4. Кардинальность отношения: Количество кортежей. Здесь кардинальность равна 4.

Связь с другими отношениями (таблицами)

Ключевой принцип реляционной модели — связь между таблицами через ключи. Поле department_id в нашей таблице является внешним ключом (Foreign Key). Оно ссылается на первичный ключ (id) другой таблицы — предположим, Departments. Это позволяет избежать дублирования данных и обеспечивает целостность.

Таблица "Отделы" (Departments):

CREATE TABLE Departments (
    id INT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    location VARCHAR(100)
);

Пример данных для Departments:

INSERT INTO Departments (id, name, location) VALUES
(1, 'Бухгалтерия', 'Москва'),
(2, 'IT', 'Санкт-Петербург'),
(3, 'Продажи', 'Новосибирск');

Таким образом, мы можем соединить (JOIN) эти две таблицы, чтобы получить полную информацию:

SELECT
    e.first_name,
    e.last_name,
    d.name as department_name,
    e.salary
FROM Employees e
JOIN Departments d ON e.department_id = d.id;

Результат запроса:

first_namelast_namedepartment_namesalary
ИванПетровПродажи85000
МарияСидороваIT92000
АлексейИвановПродажи78000
ОльгаКузнецоваБухгалтерия110000

Важные свойства реляции из примера:

  • Отсутствие упорядоченности строк: Данные в таблице Employees не упорядочены. При запросе мы можем сортировать их как угодно (например, по salary).
  • Отсутствие дублирующих кортежей: Благодаря первичному ключу employee_id в таблице не может быть двух полностью одинаковых строк.
  • Атомарность значений: Каждое значение в ячейке (salary, first_name) является неделимым (атомарным). Мы не храним, например, полное имя в одном поле — оно разделено на два атрибута, что соответствует первой нормальной форме (1NF).

Этот пример наглядно показывает, как реляционная модель организует данные в строгие, логически связанные структуры, что является фундаментом для большинства современных систем управления базами данных (СУБД), таких как PostgreSQL, MySQL, Oracle.

Приведи пример реляции в таблице | PrepBro