ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 19.05.2024

Просмотров: 57

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

10. Лекція:

Тема: Бази даних і СУБД. Введення в SQL

Мета: В лекції розглядаються поняття бази даних і СУБД, дається короткий опис існуючих типів баз даних (мережні, реляційні, ієрархічні). Розглядаються основи язика запитів SQL: операції вибору, додавання, зміни і видалення рядка, а також операції створення, зміни і видалення таблиці. База даних MySql. Використовування PhpMyAdmin для взаємодії з базою даних MySql. Обговорюються основні принципи відображення об'єктної моделі документа на реляційну структуру бази даних.

  1. Поясніть механізми роботи функції відкриття файлів.

  2. Що повертає ця функція в результаті роботи?

  3. Що визначає параметр тип доступу? Які значення він може приймати?

  4. Що відбудеться, якщо файл відкрити неможливо?

  5. Яким чином можна закрити зєднання з файлом? Навіщо це робити?

  6. Які засоби запису даних до файлу існують в мові РНР?

  7. Опишіть механізми роботи функції fwrite().

  8. Яким чином можна отримати дані з файлу?

  9. Опишіть механізм роботи функції fread().

  10. Опишіть механізм роботи функції filesize().

  11. Опишіть механізм роботи функції fgets().

  12. Опишіть механізм роботи функції fgetss().

  13. Опишіть механізм роботи функції fgetc().

  14. Опишіть механізм роботи функції readfile().

  15. Опишіть механізм роботи функції file().

  16. Яким чином можна програмно перевірити існування файлу?

  17. Опишіть механізми роботи названих функцій.

ПЛАН

1 Бази даних: основні поняття

2 Ключі

3 Індексація

5 Язик SQL

6 Основні оператори язика SQL

7 Оператор SELECT

8 Оператор INSERT

9 Оператор UPDATE

10 Оператор DELETE

В даній лекції ми розглянемо основні поняття теорії баз даних і познайомимо читачів з системою управління базами даних MySql, способами роботи з нею, її особливостями і реалізацією язика запитів SQL в цій СУБД. В основі прикладів, що наводяться в лекції, лежить інформаційна модель віртуального музею історії інформатики. Ця модель є набір колекцій опису історичних осіб, експонатів музею (артефактів), статі і зображень.


1 Бази даних: основні поняття

В житті ми часто стикаємося з необхідністю зберігати яку-небудь інформацію, а тому часто маємо справу і з базами даних. Наприклад, ми використовуємо записник для зберігання номерів телефонів своїх друзів і планування свого часу. Телефонна книга містить інформацію про людей, що живуть в одному місті. Все це свого роду баз даних. Ну а раз це бази даних, то подивимося, як в них зберігаються дані. Наприклад, телефонна книга є таблицею (табл. 10.1).

В цій таблиці дані – це власне номери телефонів, адреси і ПІБ., тобто рядки "Іванов Іван Іванович", "32-43-12" і т.п., а назви стовпців цієї таблиці, тобто рядки "ПІБ", "Номер телефону" і "Адреса" задають значення цих даних, їх семантику.

Таблиця 10.1. Приклад бази даних: телефонна книга

ПІБ Номер телефону Адреса

Іванов Іван Іванович 32-43-12 вул. Леніна, 12, 43

Ільін Федір Іванович 32-32-34 пр. Маркса, 32, 45

Тепер уявіть, що записів в цій таблиці не два, а дві тисячі, ви займаєтеся створенням цього довідника і десь відбулася помилка (наприклад, друкарська помилка в адресі). Мабуть, буде важкувато знайти і виправити цю помилку вручну. Потрібно скористатися якимись засобами автоматизації. Для управління великою кількістю даних програмісти (не без допомоги математиків) придумали системи управління базами даних (СУБД). В порівнянні з текстовими базами даних електронні СУБД мають величезне число переваг, від можливості швидкого пошуку інформації, взаємозв'язку даних між собою до використовування цих даних в різних прикладних програмах і одночасного доступу до даних декількох користувачів.

Для точності дамо визначення бази даних, пропоноване Глоссарій.ру

База даних – це сукупність зв'язаних даних, організованих за певними правилами, що передбачають загальні принципи опису, зберігання і маніпулювання, незалежна від прикладних програм. База даних є інформаційною моделлю наочної області. Звернення до баз даних здійснюється за допомогою системи управління базами даних (СУБД). СУБД забезпечує підтримку створення баз даних, централізованого управління і організації доступу до них різних користувачів.

Отже, ми прийшли до висновку, що зберігати дані незалежно від програм, так, що вони зв'язані між собою і організовані за певними правилами, доцільно. Але питання, як зберігати дані, за якими правилами вони повинні бути організовані, залишився відкритим. Способів існує множина (до речі, називаються вони моделями уявлення або зберігання даних). Найпопулярніші – об'єктна і реляційна моделі даних.


Автором реляційної моделі вважається Е. Кодд, який першим запропонував використовувати для обробки даних апарат теорії множин (об'єднання, перетин, різниця, декартовий добуток) і показав, що будь-яке представлення даних зводиться до сукупності двовимірних таблиць особливого вигляду, відомого в математиці як відношення.

Таким чином, реляційна база даних є набором таблиць (точно таких же, як приведена вище), зв'язаних між собою. Рядок в таблиці відповідає сутності реального світу (в приведеному вище прикладі це інформація про людину).

Приклади реляційних СУБД: MySql, PostgreSql.

В основу об'єктної моделі встановлена концепція об'єктно-орієнтованого програмування, в якій дані представляються у вигляді набору об'єктів і класів, зв'язаних між собою спорідненими відносинами, а робота з об'єктами здійснюється за допомогою прихованих (інкапсульованих) в них методів.

Приклади об'єктних СУБД: Cache, GemStone (від Servio Corporation), ONTOS (ONTOS).

Останнім часом виробники СУБД прагнуть з'єднати два ці підходи і проповідують об'єктно-реляційну модель представлення даних. Приклади таких СУБД – IBM DB2 for Common Servers, Oracle8.

Оскільки ми збираємося працювати з Mysql, то обговорюватимемо аспекти роботи тільки з реляційними базами даних. Нам залишилося розглянути ще два важливі поняття з цієї області: ключі і індексація, після чого ми зможемо приступити до вивчення язика запитів SQL.


2 Ключі

Спершу давайте подумаємо над таким питанням: яку інформацію потрібно дати про людину, щоб співбесідник точно сказав, що це саме та людина, сумнівів бути не може, іншого такого нема? Повідомити прізвище, очевидно, недостатньо, оскільки існують однофамільці. Якщо співбесідник людина, то ми можемо приблизно пояснити, про кого мова, наприклад пригадати вчинок, який здійснила та людина, або ще якось. Комп'ютер же такого пояснення не зрозуміє, йому потрібні чіткі правила, як визначити, про кого йде мова. В системах управління базами даних для вирішення такої задачі ввели поняття первинного ключа.

Первинний ключ (primary key, PK) – мінімальний набір полів, унікально ідентифікуючий запис в таблиці. Значить, первинний ключ – це в першу чергу набір полів таблиці, по-друге, кожний набір значень цих полів повинен визначати єдиний запис (рядок) в таблиці і, по-третє, цей набір полів повинен бути мінімальним зі всіх володіючих такою ж властивістю. Оскільки первинний ключ визначає тільки один унікальний запис, то ніякі два записи таблиці не можуть мати однакових значень первинного ключа .

Наприклад, в нашій таблиці (див. вище) ПІБ і адресу дозволяють однозначно виділити запис про людину. Якщо ж говорити загалом, без зв'язку з вирішуваною задачею, то такі знання не дозволяють точно вказати на єдину людину, оскільки існують однофамільці, що живуть в різних містах за однією адресою. Вся справа в межах, які ми самі собі задаємо. Якщо вважаємо, що знання ПІБ, телефону і адреси без вказівки міста для наших цілей достатньо, то все чудово, тоді поля ПІБ і адреса можуть утворювати первинний ключ. У будь-якому випадку проблема створення первинного ключа лягає на плечі того, хто проектує базу даних (розробляє структуру зберігання даних). Рішенням цієї проблеми може стати або виділення характеристик, які природним чином визначають запис в таблиці (завдання так званого логічного, або природного, PK), або створення додаткового поля, призначеного саме для однозначної ідентифікації записів в таблиці (завдання так званого сурогатного, або штучного, PK). Прикладом логічного первинного ключа є номер паспорта в базі даних об паспортних даних жителів або ПІБ і адресу в телефонній книзі (таблиця вище). Для завдання сурогатного первинного ключа в нашу таблицю можна додати поле id (ідентифікатор), значенням якого буде ціле число, унікальне для кожного рядка таблиці. Використовування таких сурогатних ключів має сенс, якщо природний первинний ключ є великим набором полів або його виділення нетривіальне.


Окрім однозначної ідентифікації запису, первинні ключі використовуються для організації зв'язків з іншими таблицями.

Наприклад, у нас є три таблиці: що містить інформацію про історичних осіб (Persons), що містить інформацію про їх винаходи (Artifacts) і що містить зображення як осіб, так і артефактів (Images) (рис 10.1).

Первинним ключем у всіх цих таблицях є поле id (ідентифікатор). В таблиці Artifacts є поле author, в якому записаний ідентифікатор, привласнений автору винаходу в таблиці Persons. Кожне значення цього поля є зовнішнім ключем для первинного ключа таблиці Persons. Крім того, в таблицях Persons і Artifacts є поле photo, яке посилається на зображення в таблиці Images. Ці поля також є зовнішніми ключами для первинного ключа таблиці Images і встановлюють однозначний логічний зв'язок Persons-Images і Artifacts-Images. Тобто якщо значення зовнішнього ключа photo в таблиці особи рівне 10, то це значить, що фотографія цієї особи має id=10 в таблиці зображень. Таким чином, зовнішні ключі використовуються для організації зв'язків між таблицями бази даних (батьківськими і дочірніми) і для підтримки обмежень посилальної цілісності даних.

Мал. 10.1. Приклад використовування первинних ключів для організації зв'язків з іншими таблицями


Смотрите также файлы