База даних - набір відомостей, що зберігаються деяким упорядкованим способом. Іншими словами, база даних - це сховище даних. Самі по собі бази даних не представляли б інтересу, якби не було систем управління базами даних (СКБД).
Система управління базами даних - це сукупність мовних і програмних засобів, яка здійснює доступ до даних, дозволяє їх створювати, змінювати і видаляти, забезпечує безпеку даних і т.д. Загалом СУБД - це система, що дозволяє створювати бази даних і маніпулювати відомостями з них. А здійснює цей доступ до даних СУБД за допомогою спеціальної мови - SQL.
SQL - мова структурованих запитів, основним завданням якого є надання простого способу зчитування і запису інформації в базу даних.В залежності від структури розрізняють ієрархічну, мережеву, реляційну, об'єктно-орієнтовану і гібридну моделі баз даних. Найпопулярнішою на сьогоднішній день є реляційна структура бази даних.
Реляційні бази даних складаються з таблиць. Кожна таблиця складається із стовпців (їх називають полями або атрибутами) і рядків (їх називають записами або кортежами). Таблиці в реляційних базах даних мають ряд властивостей. Основними є наступні:
|
|
· У таблиці не може бути двох однакових рядків. У математиці таблиці, що володіють такою властивістю, називають відносинами - по-англійськи ставлення, звідси і назва - реляційні.
· Стовпці розташовуються в певному порядку, який створюється при створенні таблиці. У таблиці може не бути жодного рядка, але обов'язково повинен бути хоча б один стовпець.
· У кожного стовпця є унікальне ім'я (в межах таблиці), і всі значення в одному стовпці мають один тип (число, текст, дата...).
· На перетині кожного стовпця і рядка може знаходитися тільки атомарний значення (одне значення, яка не перебуває з групи значень). Таблиці, що задовольняють цій умові, називають нормалізованими.
В якості об’єкта проходження практики з проектування баз данних та інформаційних систем я обрав ТОВ «Машзавод».
На сьогодні дане підприємство є одним з найбільших в Україні і СНД виробників сучасного обладнання для переробки,транспортування,зберігання і синтезу нафти,газу і конденсату,еергетичного обладнання,устаткування для переробки сільськогосподарської продукції,виноробства,хімічної промисловості.Обладнаний універсальни,спеціальним устаткуванням,завод має значну технічну маневреність.Завод постійно працює над підвищенням якості і конкурентноспроможності своїх виробів,що дозволяє йому успішно працювати на зарубіжних ринках.
Для продуктивного функціонування дане підприємство повинно мати власну базу данних.
|
|
З допомогою неї керувати підприємством буде більш зручніше і ефективніше. Для цього я пропоную створити базу даних,яка буде містити 4 таблиці. Створюючи таблиці БД, я застосувував принцип нормалізації БД.
Нормалізація - це покроковий, оборотний процес заміни вихідної схеми іншою схемою, в якій таблиці мають більш просту і логічну структуру.Це потрібно для:
· усунення надмірності даних
· зберігання потрібні додаткові ресурси пам'яті, при дублюванні інформації дуже нескладно допустити помилку при введенні значень атрибута, в результаті чого БД перейде в неузгоджене стан.
Крім того, при роботі з такими таблицями можуть виникнути так звані аномалії оновлення.
Далеко не завжди ці недоліки можна врахувати відразу. Для їх усунення і застосовується процес нормалізації. Він включає ряд правил, використовуваних для перевірки всіх таблиць бази даних. Розрізняють:
§ 1НФ - перша нормальна форма
§ 2НФ - друга нормальна форма
§ 3НФ - третя нормальна форма
§ НФБК - нормальна форма Бойса-Кодда
§ 4НФ - четверта нормальна форма
§ 5НФ - п'ята нормальна форма
Кожна нормальна форма накладає певні обмеження на дані. Кожна нормальна форма більш високого рівня припускає, що аналізована таблиця вже знаходиться в нормальній формі на рівень нижче розглянутої.
Відповідно до вище наведеного, мої таблиці будуть мати таку структуру.
Таблиця robitnyk:
Назва_поля | Тип поля |
Kod_robitnyka | Int |
Full_name | Varchar(40) primary key |
Staj | Int not null |
Zarplata | Int not null |
Posada | Varchar (30) |
Telefon | Bigint not null |
Adressa | Varchar(20) |
Таблиця zeh:
Назва_поля | Тип поля |
Full_name | Varchar(40) |
Kod_zehu | Int not |
Nazva_zehu | Int not null |
Nazva_tovaru | Varchar(30) primary key |
Kilkist_robitnykiv | Int not null |
Таблиця Zamovlennya:
Назва_поля | Тип поля |
Nazva_tovaru | Varchar(30) |
Kod_klienta | Int primary key |
Data_zamov | Datetime |
Data_vykonannya | Datetime |
Cina | Int not null |
Таблиця Klient:
Назва_поля | Тип поля |
Kod_klienta | Int not null |
Full_name | Varchar(40) |
Adressa | Varchar(20) |
Telefon | Bigint not null |
Nayavnist_znyzhky | bool |
Таблиці будуть зв’язані наступним чином
Robitnyk | Zeh |
Full_name | Full_name |
Zeh | Zamovlennya |
Nazva_tovaru | Nazva_tovaru |
Zamovlennya | Klient |
Kod_klienta | Kod_klienta |
Між даними таблицями існує зв'язок один до багатьох. При такомузв’язку одному запису в першій таблиці відповідає лише один запис в іншій таблиці. Відповідність записів встановлюється по полю.