- •Оглавление
- •Введение
- •1 Постановка задачи
- •1.1 Разработка программного продукта
- •1.1.1 Выбор метода построения оптимальгоно пути.
- •1.1.2 Определение логистических расходов на транспорте. Транспортные тарифы.
- •1.4.1.4 Требования к информационной и программной совместимости
- •1.4.1.5 Стадии и этапы разработки:
- •1.2.5 Описание работы программы
- •1.2 Техническое задание на разработку программного продукта.
- •1.4.1.2 Определение требований к надежности, техническому и программному обеспечению
- •1.4.1.3 Требования к составу и параметрам технических средств
- •2 Разработка программного продкута автоматизации процесса грузоперевозок
- •2.1 Разработка алгоритма поиска пути
- •2.2 Концептуальное проектирование базы данных
- •2.3 Логическое проектирование базы данных
- •2.4 Выбор целевой субд и среды программирования
- •2.5 Физическое проектирование бд
- •2.6 Разработка форм приложения
- •3. Обоснование экономической эффективности проекта
- •3.1 Экономические показатели системы
- •3.2 Трудоемкость обработки информации
- •3.3 Жизненный цикл проекта
- •Заключение
- •Список литературы
- •Приложения
2.2 Концептуальное проектирование базы данных
Концептуальное проектирование базы данных – это процедура конструирования информационной модели предприятия, не зависящей от каких-либо физических условий реализации.
В процессе ее разработки должны быть определены:
• типы сущностей;
• типы связей;
• атрибуты;
• домены атрибутов;
• потенциальные ключи;
• первичные ключи.
Определение типов сущностей. Первый этап в построении локальной концептуальной модели данных состоит в определении основных объектов, которые могут интересовать пользователя. Эти объ¬екты являются типами сущностей, входящих в модель.
Тип сущности – представляет собой множество объектов реального мира с одинаковыми свойствами. Тип сущности характеризуется независимым существованием и может быть объектом с физическим (реальным) существованием или объектом с концептуальным (абстрактным) существованием.
Сущность – это экземпляр типа сущности, который может быть идентифицирован уникальным образом. Тип сущности обладает уникальным набором атрибутов, а каждая сущность имеет свои собственные значения для каждого атрибута. Типы сущностей можно классифицировать как сильные и слабые.
Атрибут – это свойство типа сущности или типа связи. Атрибуты сущности содержат значения, описывающие каждую сущность. Значения атрибутов представляют основную часть сведений, сохраняемых в базе данных. При этом связь, которая соединяет две сущности, также может иметь атрибуты, аналогичные атрибутам типа сущностей.
Связь – это ассоциация между сущностями, включая по одной сущности из каждого участвующего в связи типа сущности. Связи позволяют по одной сущности находить другие сущности, связанные с нею.
Ключ сущности – это неизбыточный набор атрибутов, значения которых в совокупности являются уникальными для каждого экземпляра сущности. Неизбыточность заключается в том, что при удалении любого атрибута из ключа нарушается его уникальность.
Сущность может иметь несколько различных ключей.
Потенциальный ключ — в реляционной модели данных — подмножество атрибутов отношения, удовлетворяющее требованиям уникальности и минимальности (несократимости).
Уникальность означает, что не существует двух кортежей данного отношения, в которых значения этого подмножества атрибутов совпадают (равны).
Минимальность (несократимость) означает, что в составе потенциального ключа отсутствует меньшее подмножество атрибутов, удовлетворяющее условию уникальности. Иными словами, если из потенциального ключа убрать любой атрибут, он утратит свойство уникальности.
Поскольку все кортежи в отношении по определению уникальны, в нём всегда существует хотя бы один потенциальный ключ (например, включающий все атрибуты отношения).
В отношении может быть одновременно несколько потенциальных ключей. Один из них может быть выбран в качестве первичного ключа отношения, тогда другие потенциальные ключи называют альтернативными ключами
Теоретически, все потенциальные ключи равно пригодны в качестве первичного ключа, на практике в качестве первичного обычно выбирается тот из потенциальных ключей, который имеет меньший размер (физического хранения) и/или включает меньшее количество атрибутов.
Перви́чный ключ (англ. primary key) — в реляционной модели данных один из потенциальных ключей отношения, выбранный в качестве основного ключа (или ключа по умолчанию).
Если в отношении имеется единственный потенциальный ключ, он является и первичным ключом. Если потенциальных ключей несколько, один из них выбирается в качестве первичного, а другие называют «альтернативными».
С точки зрения теории все потенциальные ключи отношения эквивалентны, то есть обладают одинаковыми свойствами уникальности и минимальности. Однако в качестве первичного обычно выбирается тот из потенциальных ключей, который наиболее удобен для тех или иных практических целей, например для создания внешних ключей в других отношениях либо для создания кластерного индекса. Поэтому в качестве первичного ключа как правило выбирают тот, который имеет наименьший размер (физического хранения) и/или включает наименьшее количество атрибутов.
Каждая связь может иметь один из следующих типов связей:
Связь типа один-к-одномуозначает, что один экземпляр первой сущности (левой) связан с одним экземпляром второй сущности (правой). Связь один-к-одному чаще всего свидетельствует о том, что на самом деле мы имеем всего одну сущность, неправильно разделенную на две.
Связь типа один-ко-многимозначает, что один экземпляр первой сущности (левой) связан с несколькими экземплярами второй сущности (правой). Это наиболее часто используемый тип связи. Левая сущность (со стороны "один") называется родительской, правая (со стороны "много") – дочерней.
Связь типа много-ко-многимозначает, что каждый экземпляр первой сущности может быть связан с несколькими экземплярами второй сущности и каждый экземпляр второй сущности может быть связан с несколькими экземплярами первой сущности. Тип связи много-ко-многим является временным типом связи, допустимым на ранних этапах разработки модели. В дальнейшем этот тип связи должен быть заменен двумя связями типа один-ко-многим путем создания промежуточной сущности.
