Устранение избыточности данных
Один из бывших сотрудников Администрации по делам малого бизнеса разработал начальную версию базы данных. Сведения о местоположении используются повсеместно — для заёмщиков, банков и проектов. В каждой из соответствующих таблиц присутствуют столбцы city, state и zip_code, что приводит к дублированию данных. Ваша задача — нормализовать эти данные о местоположении. Вам предстоит применить знания нормализации на практике: создать таблицу place, которая объединит все данные о местоположении в одном месте.
Это упражнение является частью курса
Создание баз данных PostgreSQL
Инструкции к упражнению
- Создайте таблицу
place, в которойzip_code— пятисимвольный PRIMARY KEY типаCHAR,city— текстовый столбец длиной до 50 символов, аstate— двухсимвольный столбец. - Удалите столбцы
city,stateиzip_codeиз определения таблицыborrower, убрав соответствующий SQL-код. - Добавьте в таблицу
borrowerстолбецplace_id(внешний ключ), ссылающийся на столбецzip_codeтаблицыplace.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
-- Create the place table
___ ___ ___ (
-- Define zip_code column
___ ___(___) ___ KEY,
-- Define city column
___ ___(___) NOT NULL,
-- Define state column
___ ___(___) NOT NULL
);
CREATE TABLE borrower (
id SERIAL PRIMARY KEY,
name VARCHAR(50) NOT NULL,
approved BOOLEAN DEFAULT NULL,
-- Remove zip_code column (defined below)
zip_code CHAR(5) NOT NULL,
-- Remove city column (defined below)
city VARCHAR(50) NOT NULL,
-- Remove state column (defined below)
state CHAR(2) NOT NULL,
-- Add column referencing place table
___ ___(___) ___ ___(___)
);