Для демонстрации процесса проектирования баз данных создадим базу данных минеральных удобрений. В качестве источника данных используем сайт компании Фосагро.

На этапе концептуального проектирования определим основные сущности и мощности связей между сущностями. Можно выделить следующие сущности:

  • производитель. В данной сущности будет хранится информация о предприятиях производителях минеральных удобрений
  • удобрение. Основная сущность базы данных, которая будет агрегировать в себе информацию о свойствах и характеристиках удобрений, хранящихся в других сущностях
  • химический состав. Данная сущность предназначена для хранения информации о процентном составе минеральных удобрений
  • компоненты удобрений. Основным назначением данной сущности является хранение информации о химических соединениях, входящих в состав того или иного удобрения
  • фасовка. В данной сущности агрегируется информация о способах фасовки того или иного минерального удобрения
  • совместимость. Данная сущность предназначена для отображения возможности совместного использования разных видов удобрений
  • сезонность. Данная сущность предназначена для отображения наиболее эффективного периода использования того или иного минерального удобрения
  • свойства удобрения. Одна из основных сущностей базы данных, содержит информацию об основных свойствах того или иного минерального удобрения
  • тип почвы. В данной сущности хранится информация о типах почв, для которых применимо то или иное минеральное удобрение
  • применимость. Содержит информацию о культурах, для которых может использоваться минеральное удобрение
  • преимущества. Содержит информацию об основных преимуществах использования того или итого минерального удобрения
  • способ применения. Данная сущность предназначена для отображения рекомендательных способах применения того или иного минерального удобрения
  • тип удобрения. Содержит информацию о типах удобрений
  • агрегатное состояние. Содержит информацию об агрегатном состоянии того или иного минерального удобрения
  • единицы измерений. Содержит информацию о единицах измерений, используемых в сущности химический состав
  • единица удобрения. Данная сущность предназначена для агрегации информации о том, какая марка удобрения была произведена на тот или ином предприятии в том или ином агрегатном состоянии и расфасована в ту или иную упаковку

Описанную выше концептуальную модель можно представить следующим образом:


Физическая модель данных:

Таблица БД «FERTILIZER» (Удобрения)

Атрибут Тип данных Пояснение
ID_FERTILIZER SERIAL Уникальный номер записи удобрение, первичный ключ <pk>
NAME VARCHAR(100) Название
BRAND VARCHAR(100) Марка
DESCRIPTION VARCHAR(4000) Описание


Таблица БД «FERT_PROPERTIES» (Свойства удобрений)

Атрибут Тип данных Пояснение
ID_FERTILIZER SERIAL Уникальный номер записи удобрение, первичный ключ <pk>, ссылка на номер записи удобрения (внешний ключ <fk>)
PH_MIN NUMERIC(3,1) Минимальное значение pH
PH_MAX NUMERIC(3,1) Максимальное значение pH
GRANULE_HARDNESS VARCHAR(20) Прочность гранул
GRANOSOSTAV VARCHAR(20) Граносостав
COLOR VARCHAR(30) Окрас


Таблица БД «SEASONS» (Сезонность)

Атрибут Тип данных Пояснение
ID_SEASON SERIAL Уникальный номер записи сущности сезонность, первичный ключ <pk>
SEASON VARCHAR(20) Сезонность


Таблица БД «FERT_SEAS_REL»

Атрибут Тип данных Пояснение
ID_FERTILIZER SERIAL Уникальный номер записи сущности удобрение, часть составного первичного ключа <pk>, ссылка на номер записи сущности удобрения (внешний ключ <fk1>)
ID_SEASON SERIAL Уникальный номер записи сущности сезонность, часть составного первичного ключа <pk>, ссылка на номер записи сущности сезонность (внешний ключ <fk2>)


Таблица БД «ADVANTAGES» (Преимущества)

Атрибут Тип данных Пояснение
ID_ADVANTAGE SERIAL Уникальный номер записи сущности преимущества, первичный ключ <pk>
ADVANTAGE VARCHAR(4000) Преимущество


Таблица БД «FERT_ADV_REL»

Атрибут Тип данных Пояснение
ID_FERTILIZER SERIAL Уникальный номер записи сущности удобрение, часть составного первичного ключа <pk>, ссылка на номер записи сущности удобрения (внешний ключ <fk1>)
ID_ADVANTAGE SERIAL Уникальный номер записи сущности преимущества, часть составного первичного ключа <pk>, ссылка на номер записи сущности преимущества (внешний ключ <fk2>)


Таблица БД «CHEMICALS» (Компоненты)

Атрибут Тип данных Пояснение
ID_CHEM SERIAL Уникальный номер записи сущности компоненты, первичный ключ <pk>
CHEM_NAME VARCHAR (30) Название химического соединения
CHEM_FORMULA VARCHAR (30) Химическая формула
NOTE VARCHAR (500) Примечание


Таблица БД «UNITS» (Единицы измерений)

Атрибут Тип данных Пояснение
ID_UNIT SERIAL Уникальный номер записи сущности единицы измерений, первичный ключ <pk>
UNIT VARCHAR (30) Единица измерений


Таблица БД «CHEMICAL_COMPOSITION» (Химический состав)

Атрибут Тип данных Пояснение
ID_CHEM_COMP SERIAL Уникальный номер записи сущности химический состав, первичный ключ <pk>
ID_FERTILIZER SERIAL Ссылка на уникальный номер записи сущности удобрения (внешний ключ <fk1>)
ID_CHEM SERIAL Ссылка на уникальный номер записи сущности компоненты (внешний ключ <fk2>)
ID_UNIT SERIAL Ссылка на уникальный номер записи сущности единицы измерений (внешний ключ <fk3>)
AMOUNT VARCHAR (20) Количественное значение


Таблица БД «PURPOSE» (Назначение)

Атрибут Тип данных Пояснение
ID_PURPOSE SERIAL Уникальный номер записи сущности назначение, первичный ключ <pk>
PURPOSE VARCHAR (4000) Назначение


Таблица БД «FERT_PURP_REL»

Атрибут Тип данных Пояснение
ID_FERTILIZER SERIAL Уникальный номер записи сущности удобрение, часть составного первичного ключа <pk>, ссылка на номер записи сущности удобрения (внешний ключ <fk1>)
ID_PURPOSE SERIAL Уникальный номер записи сущности назначение, часть составного первичного ключа <pk>, ссылка на номер записи сущности назначение (внешний ключ <fk2>)


Таблица БД «CULTURES» (Культуры)

Атрибут Тип данных Пояснение
ID_CULTURE SERIAL Уникальный номер записи сущности культуры, первичный ключ <pk>
CULTURE VARCHAR (20) Культура


Таблица БД «FERT_CULT_REL»

Атрибут Тип данных Пояснение
ID_FERTILIZER SERIAL Уникальный номер записи сущности удобрение, часть составного первичного ключа <pk>, ссылка на номер записи сущности удобрения (внешний ключ <fk1>)
ID_CULTURE SERIAL Уникальный номер записи сущности культуры, часть составного первичного ключа <pk>, ссылка на номер записи сущности культуры (внешний ключ <fk2>)


Таблица БД «SOIL_TYPE» (Тип почвы)

Атрибут Тип данных Пояснение
ID_SOIL_TYPE SERIAL Уникальный номер записи сущности тип почвы, первичный ключ <pk>
SOIL_TYPE VARCHAR (30) Тип почвы


Таблица БД «FERT_SOIL_TYPE_REL»

Атрибут Тип данных Пояснение
ID_FERTILIZER SERIAL Уникальный номер записи сущности удобрение, часть составного первичного ключа <pk>, ссылка на номер записи сущности удобрения (внешний ключ <fk1>)
ID_SOIL_TYPE SERIAL Уникальный номер записи сущности тип почвы, часть составного первичного ключа <pk>, ссылка на номер записи сущности тип почвы (внешний ключ <fk2>)


Таблица БД «FERT_CULT_REL»

Атрибут Тип данных Пояснение
ID_USAGE SERIAL Уникальный номер записи сущности способ применения, первичный ключ <pk>
USAGE VARCHAR (1000) Способ применения


Таблица БД «FERT_USAGE_REL»

Атрибут Тип данных Пояснение
ID_FERTILIZER SERIAL Уникальный номер записи сущности удобрение, часть составного первичного ключа <pk>, ссылка на номер записи сущности удобрения (внешний ключ <fk1>)
ID_USAGE SERIAL Уникальный номер записи сущности способ применения, часть составного первичного ключа <pk>, ссылка на номер записи сущности способ применения (внешний ключ <fk2>)


Таблица БД «COMPATIBILITY» (Совместимость)

Атрибут Тип данных Пояснение
ID_FERTILIZER_1 SERIAL Уникальный номер записи сущности удобрение, часть составного первичного ключа <pk>, ссылка на номер записи сущности удобрения (внешний ключ <fk1>)
ID_FERTILIZER_2 SERIAL Уникальный номер записи сущности удобрение, часть составного первичного ключа <pk>, ссылка на номер записи сущности удобрения (внешний ключ <fk2>)


Таблица БД «PACKAGE» (Фасовка)

Атрибут Тип данных Пояснение
ID_PACKAGE SERIAL Уникальный номер записи сущности фасовка, первичный ключ <pk>
PACKAGE VARCHAR (30) Фасовка


Таблица БД «MANUFACTURER» (Производитель)

Атрибут Тип данных Пояснение
ID_MAN SERIAL Уникальный номер записи сущности производитель, первичный ключ <pk>
MAN_OWNER VARCHAR (100) ФИО собственника предприятия
MAN_NAME VARCHAR (100) Название производителя
INN VARCHAR (12) ИНН
OKPO VARCHAR (10) ОКПО
OKVED VARCHAR (6) ОКВЭД
OKATO VARCHAR (10) ОКАТО
OKONH VARCHAR (6) ОКОНХ
REG_ADDRESS VARCHAR (200) Юридический адрес
POST VARCHAR (200) Почтовый адрес
PHONE VARCHAR (20) Телефон
E_MAIL VARCHAR (200) Адрес электронной почты
FAX VARCHAR (20) Факс
DESCRIPTION VARCHAR (1000) Описание предприятия
NOTE VARCHAR (500) Примечание


Таблица БД «AGGREGATE_STATE» (Агрегатное состояние)

Атрибут Тип данных Пояснение
ID_AGG_STATE SERIAL Уникальный номер записи сущности агрегатное состояние, первичный ключ <pk>
AGG_STATE VARCHAR (50) Агрегатное состояние


Таблица БД «FERTILIZER_UNIT» (Единица удобрения)

Атрибут Тип данных Пояснение
ID_FERTILIZER SERIAL Уникальный номер записи сущности удобрение, часть составного первичного ключа <pk>, ссылка на номер записи сущности удобрения (внешний ключ <fk1>)
ID_MAN SERIAL Уникальный номер записи сущности производитель, часть составного первичного ключа <pk>, ссылка на номер записи сущности производитель (внешний ключ <fk2>)
ID_PACKAGE SERIAL Уникальный номер записи сущности фасовка, часть составного первичного ключа <pk>, ссылка на номер записи сущности фасовка (внешний ключ <fk3>)
ID_AGG_STATE SERIAL Уникальный номер записи сущности агрегатное состояние, часть составного первичного ключа <pk>, ссылка на номер записи сущности агрегатное состояние (внешний ключ <fk4>)
Последнее изменение: Понедельник, 6 февраля 2023, 15:31