База даних і електронна таблиця

Дуже ймовірно, ви вже колись користувалися програмами для роботи з електронними таблицями, зокрема Calligra Sheets, LibreOffice Calc або Microsoft® Excel. Якщо це так, ви певно могли подумати: гаразд, у електронних таблицях і у базах даних є таблиці, навіщо ж користуватися останніми?

Порівнюючи електронні таблиці і бази даних ви можете зіткнутися з такими питаннями (пізніше ми розглянемо ці питання докладніше):

Чим база даних відрізняється від електронної таблиці?

Поступово розширюючи можливості мобільного телефону, додайте до вашої таблиці Contacts стовпчик (поле) Адреса. Додайте більше телефонних номерів (робочі, домашні) для кожної з осіб у списку, а також додайте до імен прізвища. Щоб це було простіше зрозуміти, зробимо такі припущення:

  • кількість осіб у таблиці обмежено двома (очевидно, у справжній базі даних цих осіб можуть бути сотні або тисячі)

  • осіб з однаковими іменами і прізвищами у таблиці немає

Таблиця 6.2. Таблиця контактів

Ім’я і прізвищеТелефонАдреса

Joan Smith

699 23 43 12

Вестерн-гейт 1, Варшава

Adam Willson

711 19 77 21

Лондон, Фроґс-драйв 5

Joan Smith

110 98 98 00

Вестерн-гейт 1

Smith Joan

312 43 42 22

Варшава, Вестерн-гейт 1

ADAM Willson

231 83 02 04

Frogs Drive 5, London


Подібну таблицю можна створити як у формі електронної таблиці, так і у формі бази даних. Користуватися електронною таблицею, звичайно ж, дуже просто. З якими ж проблемами ми можемо зіткнутися на цьому етапі?

Цілісність довідкових даних

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

Крім того, не існує простих способів вилучення даних певної особи з таблиці, оскільки для подібного вилучення слід вилучити всі пов’язані з цією особою рядки таблиці.

Резервування даних

Цю проблему безпосередньо пов’язано з попередньою. У полях Ім’я та прізвище та Адреса ті самі дані доведеться вводити декілька разів. Це типовий для електронних таблиць неефективний спосіб зберігання даних, оскільки за його використання розміри бази даних невиправдано збільшуються, а отже робота з даними вимагатиме підвищеного використання ресурсів комп’ютера (більший об’єм даних і повільніший доступ).

Як можна розв’язати ці проблеми за допомогою бази даних? Ви можете розділити інформацію на менші фрагменти створенням додаткової таблиці Особи з лише двома стовпчиками: Ім’я та прізвище і Адреса:

Таблиця 6.3. Таблиця осіб

Ім’я і прізвищеАдреса

Joan Smith

Вестерн-гейт 1, Варшава

Adam Willson

Frogs Drive 5, London


Кожен рядок у таблиці Особи відповідатиме одній особі. Віднині таблицю Контакти буде пов’язано або, як ще кажуть, вона стане реляційною для таблиці Особи .

Цілісність і коректність даних

Зауважте спосіб, у який вводяться дані до полів Назва і прізвище та Адреса. Люди, які вводять дані можуть помилитися, а іноді є просто неуважними. У даних нашого прикладу у обох полях даних імені та прізвища можна використати різні послідовності імені і прізвища (Джоан Сміт і Сміт Джоан; Адам і АДАМ та багато інших варіантів).

Наведена вище проблема демонструє те, що, наприклад, пошук номеру телефону особи з адресою «Вестерн-гейт 1, Варшава» не дасть вам повних результатів. Ви отримаєте лише один рядок з трьох можливих. Крім того, ви не знайдете всіх телефонних номерів, якщо шукатимете за ключовими словами «Джоан Сміт» у полі Ім’я та прізвище, оскільки запис «Сміт Джоан» не відповідає ключу пошуку «Джоан Сміт».

Як же розв’язати ці проблеми за допомогою бази даних? Ви можете виконати це завдання зміною компонування таблиці Особи у такий спосіб:

  1. Поділити дані у полі Ім’я і прізвище на два окремих поля: Ім’я і Прізвище.

  2. Поділити дані у полі Адреса між трьома окремими полями: Вулиця, Номер будинку і Місто.

  3. Забезпечити коректність даних: програма має переконатися, що жодне з полів не є порожнім, наприклад, ви завжди маєте вказувати номер будинку.

Змінена таблиця виглядає десь так:

Таблиця 6.4. Таблиця осіб

НазваПрізвищеВулицяНомер будинкуМісто

Джоан

Сміт

Вестерн-гейт

1

Варшава

Адам

Вілсон

Фроґс-драйв

5

Лондон

Умови

    

обов’язкове поле

обов’язкове поле

обов’язкове поле

обов’язкове поле

обов’язкове поле


Завдяки введенню умови обов’язкове поле ми можемо забезпечити повноту введення даних. У інших таблицях ви можете, звичайно ж, пропустити деякі поля під час введення даних.

Обмеження перегляду даних

У електронних таблицях всі рядки і стовпчики таблиці показано у дещо важкій для сприйняття формі, особливо у таблицях, що містять дуже великий обсяг даних. Ви, звичайно ж, можете фільтрувати і впорядковувати рядки у електронній таблиці, але вам слід бути дуже обережним з такими діями. Користувачі електронних таблиць ризикують забути, що дані, які вони переглядають, було фільтровано, що може призвести до помилок. Наприклад, під час обчислення сум ви можете вважати, що у таблиці 100 рядків з даними, а насправді, у ній міститься ще 20 прихованих рядків.

Якщо вам потрібно попрацювати над невеличкою підмножиною даних, наприклад, надіслати її іншим користувачам для редагування, ви можете скопіювати частину електронної таблиці і вставити її до іншої електронної таблиці, а після редагування вставити змінені дані назад до основної електронної таблиці. Подібне «ручне» редагування може спричинити втрату даних або помилку у обчисленнях.

Для обмеження кількості записів у перегляді даних у програмах для роботи з базами даних передбачено запити, форми і звіти.

Дуже практичний спосіб обмеження показаних даних розширеної версії описаної раніше таблиці Особи:

Таблиця 6.5. Таблиця осіб

НазваПрізвищеВулицяНомер будинкуМістоПрибуток

Джоан

Сміт

Вестерн-гейт

1

Варшава

2300

Адам

Вілсон

Фроґс-драйв

5

Лондон

1900


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

Швидкодія і місткість

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

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

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

  • Послідовність рядків, оскільки ви можете впорядкувати рядки відповідно до ваших потреб. Крім того, ви можете переглянути одні і ті самі дані у різний спосіб у різному порядку.

  • Те саме стосується стовпчиків (полів) таблиці.

Разом з обмеженням показаних даних, описаним у попередньому розділі, ці якості і визначають переваги баз даних.

Запис даних

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

У такому разі вся робота з електронною таблицею буде проблематичною. Поля для введення даних буде досить широко рознесено електронною таблицею. Дуже часто такі поля не буде убезпечено від (навмисного чи ненавмисного) втручання користувачів.

Звіти

У базах даних можливе групування, обмеження та підбиття підсумків щодо даних у формі звіту. Електронні ж таблиці зазвичай друкуються як невеличкі таблички без автоматичного керування розбиттям на сторінки та компонування полів.

Програмування

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

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

Доступність для декількох користувачів

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

Класичним способом спільного використання даних електронної таблиці є надсилання цілого файла з нею (зазвичай, електронною поштою) або відкриття доступу до файла електронної таблиці у комп’ютерній мережі. Цей спосіб виявляється малоефективним, якщо йдеться про великі групи людей: дані, які потрібні вже зараз, може бути заблоковано внаслідок того, що зараз ними користується хтось інший.

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

Безпека

Убезпечення електронної таблиці або її окремих розділів за допомогою пароля є лише символічною дією. Після того, як доступ до вашого файла буде відкрито у комп’ютерній мережі, будь-хто зможе скопіювати файл і спробувати зламати пароль. Здебільшого подібний злам не є аж надто важким, якщо пароль зберігається у самому файлі електронної таблиці.

Блокування редагування або копіювання у електронній таблиці (або її частині) так само легко усунути.

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

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