Вопрос:

Вопрос: У вас есть таблица с полями «id», «names», «birth». Пример заполнения первой строки выглядит так: 1/Aleksander Pushkin/1799. Находится ли данная таблица в нормальном состоянии? Как ее привести в нормальное состояние, если это необходимо? Что сделают команды ALTER TABLE users ADD COLUMN fname VARCHAR(20) NOT NULL, ADD COLUMN Iname VARCHAR(20); UPDATE users SET fname = SUBSTRING_INDEX (names,' ',1) ?

Смотреть решения всех заданий с листа

Ответ:

Краткое пояснение:

Краткое пояснение: Таблица не находится в нормальном состоянии, так как поле "names" содержит одновременно фамилию и имя. Для нормализации необходимо разделить это поле на два отдельных поля: "fname" (имя) и "lname" (фамилия).

Пошаговое решение:

  • Анализ состояния: Таблица не находится в нормальном состоянии, потому что столбец "names" содержит и фамилию, и имя, нарушая принцип атомарности данных.
  • Приведение к нормальному состоянию: Для нормализации необходимо разделить столбец "names" на два новых столбца: "fname" для имени и "lname" для фамилии.
  • Действие команд:
    • ALTER TABLE users ADD COLUMN fname VARCHAR(20) NOT NULL, ADD COLUMN Iname VARCHAR(20); — Эти команды создают два новых столбца: "fname" и "lname".
    • UPDATE users SET fname = SUBSTRING_INDEX (names,' ',1) — Эта команда обновляет столбец "fname", заполняя его именами, которые находятся до первого пробела в столбце "names".
  • Результат выполнения команд: После выполнения указанных команд, столбец "fname" будет заполнен именами, а столбец "lname" останется со значениями NULL, так как его заполнение не предусмотрено данными командами.

Ответ: нет, таблица не находится в нормальном состоянии, т.к. столбец «names» несет в себе фамилию и имя. Для приведения данной таблицы в нормальное состояние необходимо вместо столбца «names» сделать столбцы с именем и фамилией раздельно и перенести туда данные фамилии и имени соответственно. Обозначенные команды создадут столбцы «fname» и «Iname». При этом столбец «fname» будет заполнен именами (буквами слева до знака пробела), а столбец «Iname» — значениями NULL.

ГДЗ по фото 📸
Подать жалобу Правообладателю