В семидесятых годах было предложено несколько моделей данных, названных семантическими моделями. К ним можно отнести семантическую модель данных, предложенную Хаммером (Hammer) и Мак-Леоном (McLeon) в 1981 году, функциональную модель данных Шипмана (Shipman), а также созданную
В 1981году, модель «сущность-связь», предложенную Ченом (Chen) в 1976 году, и ряд других моделей. В настоящий момент именно модель Чена «сущность-связь», или «Entity Relationship», стала фактическим стандартом в моделировании баз данных. Общепринятым стало сокращенное название ER-модель.
Как любая модель, модель «сущность-связь» имеет несколько базовых понятий, которые образуют исходные кирпичики, из которых строятся уже более сложные объекты по заранее определенным правилам.
В основе ER-модели лежат следующие базовые понятия: Сущность, с помощью которой моделируется класс однотипных объектов. Сущность имеет имя, уникальное в пределах моделируемой системы. Объект, которому соответствует понятие сущности, имеет свой набор атрибутов-характеристик, определяющих свойства данного представителя класса. Между сущностями могут быть установлены связи. Связи делятся на три типа по множественности:
Один-к-одному (1:1)-означает, что экземпляр одной сущности связан с только с одним экземпляром другой сущности.
Один-ко-многим (1:M)-означает что один экземпляр сущности, расположенный слева по связи, может быть связан с несколькими экземплярами сущности, расположенными справа по связи.
Многие-ко-многим (M:M)-означает, что один экземпляр первой сущности может быть связан с несколькими экземплярами второй сущности, и наоборот, один экземпляр второй сущности может быть связан с несколькими экземплярами первой сущности.
Для более полного понимания зависимости информационной системы, рассмотрим диаграммы «сущность - связь». Имеется четыре сущности: «Торговый чек», «Счет-фактура», «Покупатель» и «Автомобили». Таблица «Покупатель» связана с таблицей «Торговый-чек» связью Один-ко-многим. Аналогичной связью связаны «Торговый-чек» и «Счет-фактура» с таблицей «Автомобили». Рассмотрим связи присутствующие в данной курсовой работе.
Таблица «Торговый чек» связана с таблицей «Покупатель» следующей связью:
Связь «Отпуск товара по коду покупателя» подразумевает, что при вводе нового покупателя в таблицу «Торговый-чек» автоматически добавляется код покупателя, т.е. по полю “код покупателя” можно будет сделать необходимый запрос.
![]() |
Таблица «Счет-фактура» и «Торговый-чек» связана с таблицей «Автомобили» следующими связями:
Связь «Приобретение товара по номеру счета-фактуры» подразумевает, что при вводе нового счета-фактуры в таблицу «Автомобили» автоматически добавляется поле “номер счета-фактуры”.
Связь «Отпуск товара по номеру счета-фактуры» подразумевает, что при вводе нового поля “номер торгового чека” в таблицу «Автомобили» автоматически добавляется номер этого торгового чека.
Связь «Отпуск товара по коду покупателя» подразумевает, что при вводе нового покупателя в таблицу «Торговый-чек» в таблицу «Автомобили» автоматически добавляется код-покупателя.
Примечание: * - ключевые поля во всех таблицах.
2.4 Структурный анализ с помощью диаграмм “сущность - связь”
В данной курсовой работе присутствуют следующие таблицы:
Таблица 1: Автомобили (Avtom.db);
Имя поля | Тип данных | Размер поля |
N_Scheta_Fak | Числовой | |
Kod_Modeli | Счетчик | |
Name_Modeli | Текстовый | |
Color | Текстовый | |
Predlag_Zena | Денежный | |
Kol_vo_Door | Числовой | |
Engine_Power | Числовой | |
Type_Salon | Текстовый |
Таблица 2: Покупатели (Pok.db);
Имя поля | Тип данных | Размер поля |
Kod_Pokup | Текстовый | |
Seria_Pass | Текстовый | |
N_Pass | Текстовый | |
L_Name | Текстовый | |
F_Name | Текстовый | |
S_Name | Текстовый | |
Adres | Текстовый | |
Phone | Текстовый |
Таблица 3: Счет-фактура (SchFa.db);
Имя поля | Тип данных | Размер поля |
N_Scheta_Fak | Числовой | |
Kol_vo_zakup_modelei | Текстовый | |
Nazv_Zakup_Modeli | Текстовый | |
Zavodsk_Zena | Денежный | |
Date_Zakup | Дата |
Таблица 4: Торговый чек (Torg_Chek);
Имя поля | Тип данных | Размер поля |
N_Torg_Cheka | Счетчик | |
Kod_Pokup | Текстовый | |
Kod_Modeli | Текстовый | |
Kol_Prod_Avto | Числовой | |
Zena_Prod | Денежный | |
Date_Prod | Дата |
Определение ключевых полей в таблицах:
Название таблицы | Название ключевого поля |
Автомобили | Номер Счета-фактуры |
Покупатели | Код покупателя |
Счет-фактура | Номер Счета-фактуры |
Торговый-чек | Номер Торгового чека |
![]() |
Рис 2. Диаграмма “сущность-связь” (IDEF 1x).
Пояснения:
Первичные ключи следующие:
Таблица: Автомобили – Kod_Modeli.
Таблица: Покупатель – Kod_Pokup.
Таблица: Счет-фактура – N_Scheta_Fak.
Таблица: Торговый чек – N_Torg_Cheka.
Внешние ключи следующие:
Таблица: Автомобили – N_Scheta_Fak.
Таблица: Автомобили – N_Torg_Cheka.
Таблица: Автомобили – Kod_Pokup.
Таблица: Торговый чек – Kod_Pokup.
Таблица: Автомобили – N_Scheta_Fak.
![]() |
Рис 3. Диаграмма “сущность-связь” на русском языке.