Автор работы: Пользователь скрыл имя, 02 Марта 2015 в 14:32, курсовая работа
Мета цієї курсової роботи полягає у розробці бази даних предметної області, яка має відношення до ведення електронного магазину. У загальному випадку створення будь-якої програмної системи, у тому числі і бази даних, проходить складний життєвий цикл. Існує багато методологій по опису життєвого циклу проектування та розробки баз даних.
У якості логічній моделі бази даних була обрана реляційна модель, оскільки саме реляційна модель використовується у більшості розвинених СКБД.
Для перетворення концептуальної моделі, представленої у вигляді мови ER–моделювання, у реляційну модель, був використаний наступний алгоритм.
Рис.1 Концептуальна ER-модель проходження практики студентами
Сутність може унікально ідентифікуватися комбінацією атрибутів і/або зв'язків. При використанні в ідентифікаторі сутності зв'язку до складу первинного ключа включається зовнішній ключ, який посилається на ту таблицю, з якою пов’язаний той або інший зв’язок.
Повна логічна база даних на основі концептуальної моделі з урахуванням обмежень цілісності та наведеного вище алгоритму детально представлена в наступних таблицях.
Таблиця 1. Відношення сутності КЛІЄНТ
client
Ім’я стовпця |
Тип |
Довжина |
Призначення |
Обмеження цілісності стовпців |
Cli_ID |
ціле число |
10 |
Унікальний ID |
Первинний ключ |
First_name |
строка |
50 |
Ім’я клієнта |
Обов’язковий |
Last_name |
строка |
50 |
Прізвище клієнта |
|
Middle_name |
строка |
50 |
По батькові клієнта |
|
Birthday |
дата |
Дата народження клієнта |
||
Telephone |
строка |
15 |
Телефон клієнта |
Обов’язковий |
Address |
текст |
Адреса доставки |
Обов’язковий | |
man_ID |
ціле число |
10 |
Менеджер який веде клієнта |
Зовнішній ключ, що посилається на первинний ключ відношення Менеджер. Обов’язковий |
Date_reg |
дата |
Дата реєстрації клієнта в БД |
Обов’язковий |
Таблиця 2. Відношення сутності ЗАМОВЛЕННЯ
order
Ім’я стовпця |
Тип |
Довжина |
Призначення |
Обмеження цілісності стовпців |
Ord_ID |
ціле число |
10 |
Унікальний ID замовлення |
Первинний ключ |
Date_order |
дата |
Дата замовлення |
Обов’язковий | |
Curr_goods |
ціле число |
10 |
Ідентифікатор товару |
Зовнішній ключ, що посилається на первинний ключ відношення ТОВАР. |
Count_goods |
ціле число |
15 |
Кількість товару |
Обов’язковий |
Reserve |
ціле число |
1 |
Признак резервування замовлення |
|
Manager_ID |
ціле число |
10 |
Ідентифікатор менеджера, який буде виконувати замовлення клієнта |
Зовнішній ключ, що посилається на первинний ключ відношення МЕНЕДЖЕР. |
Cli_ID |
ціле число |
10 |
Ідентифікатор клієнта |
Зовнішній ключ, що посилається на первинний ключ відношення КЛІЄНТ. Обов’язковий |
Price |
ціле число |
15 |
Ціна товару |
Обов’язковий |
Таблиця 3. Відношення сутності ПРОДАЖА
Sale
Ім’я стовпця |
Тип |
Довжина |
Призначення |
Обмеження цілісності стовпців |
Sale_ID |
ціле число |
10 |
Унікальний ID продажи |
Первинний ключ |
Ord_ID |
ціле число |
10 |
Ідентифікатор замовлення |
Зовнішній ключ, що посилається на первинний ключ відношення ЗАМОВЛЕННЯ. Обов’язковий |
Date_Sale |
дата |
Дата продажи |
Обов’язковий | |
Curr_goods |
ціле число |
10 |
Ідентифікатор товару |
Зовнішній ключ, що посилається на первинний ключ відношення ТОВАР. |
Count_goods |
ціле число |
15 |
Кількість товару |
Обов’язковий |
Manager_ID |
ціле число |
10 |
Ідентифікатор менеджера, який ФАКТИЧНО виконав замовлення клієнта |
Зовнішній ключ, що посилається на первинний ключ відношення МЕНЕДЖЕР. |
Price |
ціле число |
15 |
Ціна товару |
Обов’язковий |
Таблиця 4. Відношення сутності ТОВАР
good
Ім’я стовпця |
Тип |
Довжина |
Призначення |
Обмеження цілісності стовпців |
Good_ID |
ціле число |
10 |
Унікальний ID товару |
Первинний ключ |
Good_name |
строка |
255 |
Назва товару |
Обов’язковий |
Count_of_good |
ціле число |
15 |
Кількість товарів на складі |
Обов’язковий |
article |
текст |
Артикул |
||
Country_of_origin |
текст |
Країна-виробник |
||
Quality |
строка |
30 |
Якість товару |
Таблиця 5. Відношення сутності МЕНЕДЖЕР
Manager
Ім’я стовпця |
Тип |
Довжина |
Призначення |
Обмеження цілісності стовпців |
man_ID |
ціле число |
10 |
Унікальний ID МЕНЕДЖЕРА |
Первинний ключ |
First_name |
строка |
50 |
Ім’я менеджера |
Обов’язковий |
Last_name |
строка |
50 |
Прізвище менеджера |
Обов’язковий |
Middle_name |
строка |
50 |
По батькові менеджера |
Обов’язковий |
Birthday |
дата |
Дата народження менеджера |
Обов’язковий | |
Sex |
ціле число |
1 |
Стать менеджера |
Обов’язковий |
Address |
текст |
Адреса менеджера |
Обов’язковий | |
Family |
текст |
Склад родини менеджера |
Обов’язковий | |
Date_start |
дата |
Дата прийому на роботу |
Обов’язковий | |
Date_end |
дата |
Дата завершення роботи |
База даних спроектована для її збереження у СУБД MySQL, яка підтримує реляційну модель даних. Ця СУБД має дуже розвинені можливості по створенню та супроводу баз даних, володіє можливостями індексування полів, що дозволяє одержувати доступ до даних за мінімальний час, а також функціями по забезпеченню підтримки цілісності даних між реляційними таблицями, що дозволяє розробнику мінімізувати тимчасові витрати на створення бази даних, а кінцевому користувачеві витрати на підтримку цілісності збережених даних і одержання даних з бази даних. Робота з базою даних підтримується за допомогою реляційної мови запитів SQL.
Логічна модель бази даних легко відображається в реляційну фізичну модель, оскільки логічна модель була побудована з використанням реляційної структури даних. Крім того, логічна модель була приведена у третю нормальну форму, тому усі відношення представляються у фізичній моделі окремими таблицями. Ніякі злиття відношень в одну таблицю для підвищення ефективності виконання окремих класів запитів не виконуються у зв’язку з тим, що такі класи запитів не були знайдені. У результаті отримано сімнадцять таблиць реляційної бази даних, де кожне відношення прямо відповідає окремій таблиці, атрибути кожного відношення стають полями цієї таблиці, а первинні ключі відношень стають первинними ключами таблиць.
-- Створення таблиці client
CREATE TABLE IF NOT EXISTS `client` (
`cliID` int(10) unsigned NOT NULL AUTO_INCREMENT,
`First_name` varchar(50) NOT NULL,
`Last_name` varchar(50) NOT NULL,
`Middle_name` varchar(50) NOT NULL,
`Birthday` date NOT NULL,
`Telephone` varchar (25) NOT NULL,
`Address` text NOT NULL,
`menID` int(10) unsigned NOT NULL,
`Date_reg` date NOT NULL,
PRIMARY KEY (`cliID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
-- Створення таблиці order
CREATE TABLE IF NOT EXISTS `order` (
`Ord_ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
`Date_order` date DEFAULT NULL,
`Curr_goods` int(10) unsigned NOT NULL,
`Count_goods` int(15) unsigned NOT NULL,
` Reserve` tinyint(1) unsigned NOT NULL,
`Manager_ID` int(10) unsigned NOT NULL,
`Cli_ID` int(10) unsigned NOT NULL,
`Price` int(25) unsigned NOT NULL,
PRIMARY KEY (`Ord_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
-- Створення таблиці sale
CREATE TABLE IF NOT EXISTS `sale` (
`Sale_ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
`Ord_ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
`Date_sale` date DEFAULT NULL,
`Curr_goods` int(10) unsigned NOT NULL,
`Count_goods` int(15) unsigned NOT NULL,
`Manager_ID` int(10) unsigned NOT NULL,
`Cli_ID` int(10) unsigned NOT NULL,
`Price` int(25) unsigned NOT NULL,
PRIMARY KEY (`Sale_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
-- Створення таблиці good
CREATE TABLE IF NOT EXISTS `good` (
`Good_ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
`Good_name` varchar(255) NOT NULL,
`Count_of_good` int(15) unsigned NOT NULL,
`article` varchar (15) NOT NULL,
`Country_of_origin` varchar (30) NOT NULL,
`Quality` varchar (30) NOT NULL,
PRIMARY KEY (`measID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
-- Створення таблиці manager
CREATE TABLE IF NOT EXISTS ` manager ` (
`man_ID` int(10) unsigned NOT NULL,
`First_name` varchar(50) NOT NULL,
`Last_name` varchar(50) NOT NULL,
`Middle_name` varchar(50) NOT NULL,
`Birthday` date NOT NULL,
`Sex` tinyint(1) unsigned NOT NULL,
`Address` text NOT NULL,
`Date_start` date NOT NULL,
`Date_end` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Обмеження цілісності таблиць
-- Додавання зовнішнього ключа з поля man_ID сутності КЛІЄНТ на поле man_ID -- сутності МЕНЕДЖЕР
ALTER TABLE `client` ADD FOREIGN KEY(`man_ID`) REFERENCES `manager`(`man_ID`) ON DELETE CASCADE;
-- Додавання зовнішнього ключа з поля cliID сутності КЛІЄНТ на поле Cli_ID -- сутності ЗАМОВЛЕННЯ
ALTER TABLE `client` ADD FOREIGN KEY(`man_ID`) REFERENCES `order` (`man_ID`) ON DELETE CASCADE;
-- Додавання зовнішнього ключа з поля Good_ID сутності ТОВАР на поле
-- Curr_goods сутності ЗАМОВЛЕННЯ
ALTER TABLE `good` ADD FOREIGN KEY(`Good_ID`) REFERENCES `order` (`Curr_goods`) ON DELETE CASCADE;
-- Додавання зовнішнього ключа з поля man_ID сутності МЕНЕДЖЕР на поле
-- Manager_ID сутності ЗАМОВЛЕННЯ
ALTER TABLE `manager` ADD FOREIGN KEY(`man_ID`) REFERENCES `order` (`Manager_ID`) ON DELETE CASCADE;
-- Додавання зовнішнього ключа з поля cliID сутності КЛІЄНТ на поле Cli_ID -- сутності ПРОДАЖИ
ALTER TABLE `client` ADD FOREIGN KEY(`man_ID`) REFERENCES `sale` (`man_ID`) ON DELETE CASCADE;
-- Додавання зовнішнього ключа з поля Ord_ID сутності КЛІЄНТ на поле Ord_ID -- сутності ПРОДАЖИ
ALTER TABLE `order` ADD FOREIGN KEY(`Ord_ID`) REFERENCES `sale` (`Ord_ID `) ON DELETE CASCADE;
-- Додавання зовнішнього ключа з поля cliID сутності КЛІЄНТ на поле Cli_ID -- сутності ПРОДАЖИ
ALTER TABLE `client` ADD FOREIGN KEY(`man_ID`) REFERENCES `sale` (`man_ID`) ON DELETE CASCADE;
-- Додавання зовнішнього ключа з поля Good_ID сутності ТОВАР на поле
-- Curr_goods сутності ПРОДАЖИ
ALTER TABLE `good` ADD FOREIGN KEY(`Good_ID`) REFERENCES `sale` (`Curr_goods`) ON DELETE CASCADE;
-- Додавання зовнішнього ключа з поля man_ID сутності МЕНЕДЖЕР на поле
-- Manager_ID сутності ПРОДАЖИ
ALTER TABLE `manager` ADD FOREIGN KEY(`man_ID`) REFERENCES `sale` (`Manager_ID`) ON DELETE CASCADE;
Проектування баз даних — це складний, багатокроковий процес перетворення інформаційного середовища ПО у інформаційну модель у вигляді бази даних. Цей процес складається з різних етапів, а саме: розробка стратегії автоматизації, аналіз ПО, побудова концептуальної моделі ПО, логічне та фізичне проектування БД. На сучасному етапі розвитку інформатики проектування баз даних перетворилося на цілком сформовану наукову дисципліну, яка має у своєму складі формально-теоретичну та технологічну складові. Теоретичної основою проектування баз даних є теорія нормалізації, яка дозволяє чітко і строго відповісти на таке запитання: як слід проводити перетворення початкової схеми ПО таким чином, щоб результуюча схема бази даних була еквівалентна початковій і була краща за неї. Методологія проектування детально описує усі етапи життєвого циклу створення бази даних з використанням сучасних мов опису ПО.
Информация о работе Стратегія автоматизації предметної області