+Лабораторна робота №1
Вивчення принципів побудови інформаційного забезпечення САПР
Мета роботи: ознайомлення з призначенням, структурою побудови і роботою бази даних для автоматизованого проектування.
Теоретичні відомості
Інформаційне забезпечення є необхідною частиною систем автоматизованого проектування (САПР), яка забезпечує їх функціонування. Під інформацією розуміється сукупність фактів, явищ і подій, що представляють інтерес і підлягають реєстрації й обробці. Інформація, відповідним чином систематизована, складає основу для побудови баз даних. Під терміном "дані" розуміється інформація, представлена у вигляді, що дозволяє автоматизувати процеси збору, зберігання і подальшої її обробки в обчислювальній машині. Обробка даних – це процес перетворення даних в бажану інформацію за допомогою ЕОМ. База даних (БД) САПР представляє сукупність даних, що зберігаються в ЕОМ і задовольняють інформаційні потреби автоматизованого проектування. База даних – структурована сукупність даних. Найменша одиниця опису даних називається елементом опису. Сукупність елементів опису, які об'єднані відношенням належності до одного описуваного об'єкту, називається записом. Організація технічного забезпечення САПР впливає на структуру інформаційного забезпечення і в першу чергу баз даних. Якщо БД сконцентрована в одному вузлі обчислювальної мережі, то вона називається зосередженою, в іншому випадку – розподіленою. Якщо інформаційне обслуговування за допомогою БД відноситься до всієї САПР, то БД називають загальною, а якщо до окремої системи САПР або до окремого пакету прикладних програм, то локальною БД. Основні проблеми в організації розподілених і локальних БД полягають в розробці заходів щодо забезпечення цілісності даних, своєчасному оновленню інформації й організації оперативного обміну даними між програмами і базою даних. Тут як посередник виступає система управління базою даних.
Система управління базою даних (СУБД) складається з мов і програмних засобів, призначених для створення і використання бази даних прикладними програмами, а так само безпосередньо користувачами – непрограмістами. СУБД повинна забезпечувати простоту фізичної реалізації БД, можливість централізованого і децентралізованого управління БД, представлення користувачу несуперечливої інформації, виконання різних функцій.
Наявність СУБД звільняє програміста від необхідності самостійно планувати розміщення даних в пам'яті ЕОМ, піклуватися про їх захист. Сукупність баз даних і СУБД визначає таке поняття як банк даних. Застосування бази даних дозволяє розв'язати наступні проблеми при організації і введенні великих масивів інформації:
скорочення надмірності;
забезпечення цілісності;
розмежування доступу;
забезпечення незалежності представлення даних.
Надмірність спричиняється наявністю різних форм представлення одних і тих же даних, копіюванням частини даних для подальшого використовування прикладними програмами, повторними записами однакових даних на різних фізичних носіях інформації.
Цілісністю називається властивість БД у будь-який момент часу містити лише достовірні дані. Наявність надмірних, суперечливих і невірно складених даних порушує цілісність БД. Однією з найважливіших переваг застосування БД є можливість забезпечення незалежності представлення даних в прикладних програмах від типів пристроїв, що запам'ятовують, і способів їх фізичної організації. В основному це досягається побудовою двох рівнів представлення даних: логічного і фізичного.
На логічному рівні дані представляються у вигляді, зручному для використання в прикладних програмах або проектувальниками.
Фізичний рівень представлення даних відображає спосіб зберігання і структуру даних з урахуванням їх розташування в ЕОМ.
Взаємозв'язок БД з прикладними програмами представлений на рис.1.
Рис.1. Схема взаємозв'язку СУБД з прикладними програмами:
ППа, ППб – прикладні програми користувачів а і б; РОа, РОб – робочі області користувачів а і б; ЗШа, ЗШб – зовнішні моделі даних користувачів а і б; ВН – внутрішня логічна послідовність даних; СБ – системний буфер.
Прикладні програми ППа і ППб користувачів а і б звертаються із запитами до СУБД, яка формує звернення до програмних засобів того або іншого методу доступу у складі операційної системі (ОС). Одержані дані спочатку поступають в системний буфер, а потім поміщаються в доступну користувачу робочу область. Таким чином, СУБД можна розглядати як деяку надбудову на ОС, через яку проходить спілкування прикладного користувача з масивами інформації.
Види моделей даних
Важливим поняттям в БД є модель даних – формалізований опис, що відображає склад і типи даних, а також взаємозв'язок між ними. Моделі даних класифікують за рядом ознак. У залежності від об'єму описуваної інформації на логічному рівні розрізняють зовнішню і внутрішню моделі даних. Зовнішня модель даних (логічна підсхема) описує структуру інформації, що відноситься до деякої конкретної процедури або до групи споріднених процедур. Внутрішня логічна модель даних (логічна схема) об'єднує всі підсхеми БД.
За способом відображення зв'язків між даними на логічному рівні розрізняють моделі: реляційну, ієрархічну та мережеву. Сукупність моделі даних і операцій, проведених над даними, називається поводом. У відповідності до моделей даних розрізняють реляційний, ієрархічний та мережеві підходи. Оскільки підхід лежить в основі побудови СУБД, то розрізняють реляційні, ієрархічні та мережеві СУБД. Найбільш поширеними є ієрархічні та мережеві СУБД. Однак реляційні СУБД, не дивлячись на труднощі їх програмної реалізації, дозволяють найбільш зручно для користувача описати структуру даних та маніпулювання ними.
Реляційні моделі даних останнім часом отримали широке розповсюдження внаслідок простої форми представлення даних, а також завдяки розвинутому теоретичному апарату, який дозволяє описувати різні перетворення реляційних даних. Основу реляційної моделі даних складає сукупність даних, сформованих у вигляді таблиці. Така форма представлення даних є звичною для спеціаліста, котрий користується різною довідковою літературою. Оперування співвідношеннями (таблицями) передбачає перегляд всіх записів. Коли БД є великою, а це є типовим для САПР, то неможливо здійснити повний перегляд всіх її записів. Тому необхідно попередньо впорядкувати і об'єднати в групи записи за ознаками пошуку. В теорії СУД відомі чотири варіанти зв'язків між двома таблицями, які дозволяють здійснити групування записів у множини. Всіх їх розглядають з точки зору того, як нова таблиця зв'язана з однією із існуючих таблиць.
Відношення один-до-одного. При такому відношенні кожному запису першої таблиці відповідає не більше одного запису другої таблиці й навпаки.
Відношення багато-до-одного. При такому відношенні будь-якому запису другої таблиці БД може відповідати будь-яка кількість записів першої таблиці, але не навпаки.
Відношення один-до-багатьох. При такому відношенні будь-якому запису першої таблиці БД може відповідати будь-яка кількість записів другої таблиці. Це відношення є таким як і багато-до-одного, але навпаки.
Відношення багато-до-багатьох. При такому відношенні будь-якому запису першої таблиці БД може відповідати будь-яка кількість записів другої таблиці і навпаки.
Для організації пошуку потрібних записів використовують поняття ключа і зв'язку. Ключ – унікальне ім'я запису, у якості якого може виступати як елемент якого-небудь атрибуту в записі – простий ключ, так і сукупність елементів декількох атрибутів – складовий ключ. За допомогою ключа відбувається идентифікація кожного конкретного запису, а також впорядкування записів у БД. Існує декілька типів ключів, які потрібно знати для досконалішого вивчення реляційних баз даних.
Первинний ключ. Первинний ключ містить набір значень, які повністю визначають стрічку базової таблиці, яка є основною. Кожному значенню первинного ключа відповідає тільки одна стрічка таблиці. Використання первинного ключа найпростішим чином запобігає дублюванню записів таблиці. Таблицям, які ніколи не використовуються як головна таблиця зв'язку, первинний ключ не потрібен.
Потенційний ключ. Будь-який стовпець або група стовпців, що задовольняють вимогам первинного ключа, можуть претендувати на те, щоб стати первинним ключем і називаються потенційним ключем.
Складовий ключ. Якщо необхідно використати для ідентифікації запису таблиці даних декілька її полів, то такий ключ буде називатись складовим.
Зовнішній ключ. Зовнішній ключ є полем, значення якого відповідає значенням первинного ключа або частини складового первинного ключа іншої таблиці, яка зв'язана з поточною (тією, що розглядається). У склад зовнішнього ключа може входити як одне, так і декілька полів (складовий зовнішній ключ).
Недоліками реляційної моделі є велика надлишковість даних та пов'язана з цим проблема забезпечення непротиріччя даних при їх обновленні.
Ієрархічна БД має граф логічної схеми у вигляді дерева. В ієрархічній моделі БД зв'язки направлені тільки від верхніх сегментів до нижніх. Це пояснюється принциповою властивістю ієрархічного представлення даних: кожен запис має зміст лише тоді, коли вона розглядається в своєму контексті, тобто будь-який запис не може існувати без передуючого йому запису за ієрархією. При пошуку в ієрархічній БД необхідно вказувати значення ключа на кожному рівні ієрархії. До переваг ієрархічних моделей даних (ІМД) відносяться:
простота розуміння та використання;
наявність успішних реалізацій систем управління базою даних, основаних на її застосуванні;
забезпечення певного рівня незалежності даних;
простота оцінки експлуатаційних характеристик завдяки наперед заданим взаємозв'язкам.
До недоліків ІМД слід віднести наступне: через строгу ієрархічну впорядкованість об'єктів моделі ускладнюються операції внесення та видалення; тільки при значно погіршеній продуктивності системи можна штучно реалізувати взаємозв'язки "багато до багатьох".
Необхідність в організації різноманітних впорядкувань записів в БД з метою задоволення різних типів запитів привела до розробки мережевих баз даних. В мережевій моделі даних в принципі розв'язані будь-які групування записів і організація довільних зв'язків між ними.
Набір – основна конструкція мережевих моделей, що є поіменним дворівневим деревом, за допомогою якого можуть бути побудовані багаторівневі дерева і більшість мережевих структур.
В структурах мережевих даних елементарні дані та відношення між ними представляються у вигляді орієнтованої мережі (вершини – дані, дуги – відношення). До переваг мережевої моделі даних відносяться: простота реалізації взаємозв'язків "багато до багатьох", що часто зустрічаються; найбільша повнота розуміння та використання користувачами; можливість реалізації непроцедурних мов запитів.
До недоліків відносяться: видалення початкових об'єктів зумовлює видалення породжених; доступ до будь-якого породженого вузла можливий тільки через початковий; низька продуктивність при великих об'ємах баз даних; більш складний опис даних в прикладній програмі у порівнянні з ієрархічним підходом.
Типи даних в MySQL
MySQL – швидка та надійна СУБД. База даних дозволяє ефективно зберігати, шукати , сортувати і отримувати дані. Сервер MySQL керує доступом до даних, дозволяючи одночасно працювати з ними багатьом користувачам, які мають на це право. Тобто MySQL є багатопотоковим сервером. Він використовує SQL (Structured Query Language – мову структурованих запитів), стандартну мову запитів в бази даних. На теперішній час MySQL доступний як програмне забезпечення з відкритим вихідним кодом.
Одним з головних принципів побудови реляційної БД є те, що в кожному полі таблиці повинні міститися дані тільки одного типу. Для даних різних типів створюють окремі поля. Тип даних поля обов'язково задається. Крім того, можна визначати розмір поля та інші його характеристики.
В MySQL визначені три базових типи стовпців: числовий, дата і час, стрічковий. Кожна з цих категорій поділяється на багато типів. Кожен з них має різний розмір, тому, вибираючи розмір треба вибирати найменший, в якому поміщаються дані. У більшості типів даних при створенні стовпця вибраного типу можна вказувати максимальну величину.
Числові типи даних містять цілі числа або числа з плаваючою комою. Для чисел з плаваючою комою можна вказувати кількість цифр після десяткової точки. Числові типи приведені в таблиці 1.
Таблиця 1.
За допомогою типу дати і часу в MySQL можна вводити дані дати і часу або в числовому, або в стрічковому форматі. Типи дати і часу наведені в таблиці 2.
Таблиця 2.
Стрічкові типи поділяються на три групи. Перша група – прості стрічки, які є короткими фрагментами тексту. Це є типи char і varchar. Ширину кожного з них можна регулювати. Стовпці з типом char доповнюються пробілами до максимально заданої ширини, а ширина стовпців з типом залежить від розміру даних. Друга група – це типи text і blob. Їх розміри можуть бути різними. Перший тип даних призначений для більш довгих текстових фрагментів, другий – для війкових даних. Blob означає binary large object (великий двійковий об'єкт) і може містити будь-які дані, у тому числі й звуки та зображення. На практиці ці типи є однакові, за винятком того, що text чуттєвий до реєстра, а blob – ні. До третьої групи відносяться два спеціальних типи set і enum. Тип set (множина) призначений для того, щоб визначити, що дані в цьому стовпці належать конкретному набору фіксованих значень. Дані у стовпці можуть мати декілька значень із набору. В конкретному наборі можна задавати до 64 елементів. Тип enum (перелік) подібний до попереднього, але стовпці цього типу можуть мати лише одне з фіксованих значень або null, а максимальна кількість елементів у переліку складає 65535. В таблиці 3 наведено опис стрічкових типів даних.
Таблиця 3.
Для збереження та читання даних в та з бази в MySQL використовують мову SQL, яка широко використовується також в таких системах баз даних, як Oracle, Sybase, Microsoft SQL Server та інших.
Для того, щоб почати працювати з БД, спочатку треба зберегти в ній дані. Це можна здійснити за допомогою оператора INSERT, який використовується для внесення стрічок з даними в БД. Типова форма оператора INSERT виглядає так:
INSERT INTO table [(column1, column2,...)] VALUES (value1, value2,...)
Замість table вказується реальне ім'я таблиці, замість column – ім'я стовпця, замість value – значення, яке потрібно записати. Всі значення, крім чисел і дати, поміщаються у лапки.
Для читання даних з бази використовують оператор SELECT, який має багато опцій та варіантів використання. Основна форма оператора виглядає так:
SELECT items
FROM tables
[ WHERE condition ]
[ GROUP BY group_type ]
[ HAVING where_definition ]
[ ORDER BY order_type ]
[ LIMIT limit criteria ].
В дужках подані необов'язкові конструкції. Наведемо найбільш вживані конструкції.
SELECT column1, column3 FROM table1.
За допомогою цієї конструкції вибираються стовпці 1 і 3 з таблиці 1. Якщо треба вибрати всі стовпці таблиці, то можна скористатись оператором групового символу *. Наприклад,
SELECT * FROM table1.
Якщо треба вибрати деяку підмножину стрічок в таблиці, тоді вказується деякий критерій вибору за допомогою конструкції WHERE. Наприклад:
SELECT * FROM table1 WHERE number=3;
SELECT column1, column3 FROM table1 WHERE name="Двигун".
В першій конструкції вибираються всі дані з таблиці 1, але тільки із стрічок в яких стовпець number рівний 3. В другій конструкції вибираються дані із стовпців 1 і 3 таблиці 1, в яких стовпець name рівний "Двигун". Тут мається на увазі, що у стовпці стрічкового типу name записано слово "Двигун". Існують інші вирази та оператори, які використовуються в конструкції WHERE. Найбільш вживані приведені у таблиці 4.
Таблиця 4.
Оператор like використовує механізм відповідності SQL. Взірець може складатись з довільного тексту плюс символ % для того, щоб вказати співпадіння з будь-якою кількістю символів, і символ _ (підкреслення), щоб вказати співпадіння з одним символом. В MySQL відповідності не чуттєві до регістру. Наведемо приклад використання оператора like,
SELECT * FROM table1 WHERE name LIKE "Д%".
В цій конструкції вибираються всі дані з таблиці 1, але тільки із стрічок в яких стовпець name починається із символу Д.
В SQL можна перевіряти декілька критеріїв зразу, об'єднуючи їх за допомогою операцій and або or.
Для отримання даних з декількох таблиць необхідно виконати операцію об'єднання. Тут мається на увазі об'єднання двох і більше таблиць для того, щоб збереглись відношення між ними. Наприклад,
SELECT table1.id, table2.name, table2.quantity FROM table1, table2 WHERE table1.id = table2.id.
Дана конструкція вибирає поле id з таблиці 1 та поля name, quantity з таблиці 2, але лише ті рядки, в яких поля id кожної таблиці співпадають. У списку після оператора FROM перераховані дві таблиці, оскільки дані вибираються з обох таблиць. Результуючі дані поміщаються в одну загальну таблицю.
Якщо стрічки, які отримані у результаті запиту до бази потрібно сортувати в певному порядку, то можна використати конструкцію ORDER BY в операторі SELECT. Наприклад,
SELECT table1.id, table2.name, table2.quantity FROM table1, table2 WHERE table1.id = table2.id ORDER BY table1.id.
По замовчуванню порядок сортування йде за зростанням (це можна вказати ключовим словом ASC). Змінити порядок сортування на зворотний можна за допомогою ключового слова DESC. Наприклад,
SELECT id, name, number FROM table1 ORDER BY name DESC.
В MySQL існує набір функцій агрегації, які допомагають виконувати ряд операцій як над цілою таблицею, так і над окремими стовпцями. Найбільш поширені з них це MAX та MIN, які знаходять максимальне та мінімальне значення в стовпці. Наприклад,
SELECT MAX(number) FROM table1.
В цій конструкції знаходиться максимальне значення поля number.
Програма роботи
Ознайомитися з принципами побудови інформаційного забезпечення САПР і основами проектування баз даних.
Запустити програму-клієнта mysqlfront.exe, яка дозволяє працювати з базою даних.
Створити за завданням викладача базу даних, у якій є не менше трьох таблиць.
За завданням викладача виконати вибірку окремих фрагментів бази даних та зберегти їх на диску у вигляді файла.
Зміст звіту за виконану роботу
У звіті потрібно подати:
Тему, мету та програму роботи.
Структуру бази даних. Характеристику типів даних у базі.
Сформовані до бази даних запити, які здійснюють вибірку окремих даних з бази.
Результати виконання запитів у вигляді таблиць.
Висновки.