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