Проблема однотипного ввода одинаковых значений

Проблема однотипного ввода одинаковых значений

Во многих случаях одни и те же данные вводятся различными способами. Например, ученика можно ввести как «Игорь Иванов», «Иванов Игорь», «Иванов И.». Все эти записи относятся к одному человеку, но использовать такие данные довольно сложно.

Ученик Курс Количество уроков Оценка
Иванов И. Базы данных, поток 54 от 12.11.2020   4.9
Павлова Анастасия БД, 12 ноября 2020 г., поток 54    
Игорь Иванов Linux. Рабочая станция, поток 48 от 02.10.2020    
Иванов Игорь Основы Python, поток 45 от 18.08.2020   4.9


Таблица 5. Пример ввода одинаковых данных, записанных в различном формате

 

Решаем проблемы методом приведения данных к нормальным формам

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

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

 

Убираем составные значения, приводим данные к первой нормальной форме

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

Фамилия ученика Имя ученика Курс Номер потока Дата начала обучения Количество уроков Оценка
Иванов Игорь Базы данных   12.11.2020   4.9
Павлова Анастасия Базы данных   12.11.2020    
Иванов Игорь Linux. Рабочая станция   02.10.2020    
Иванов Игорь Основы Python   18.08.2020   4.9


Таблица 6. Приведение данных к первой нормальной форме

Полученная структура удовлетворяет требованиям первой нормальной формы:

  1. Все значения в таблице должны быть простыми.
  2. Не должно быть повторения строк таблицы с одинаковыми данными — идентичными значениями.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: