Інтернет і бази даних, використання бд oracle і mysql при створенні сайтів
Ця сторінка відкриває цикл статей, присвячених використанню баз даних при створенні сайтів. На прикладі двох баз - Oracle і MySQL - дуже широко застосовуються і при цьому є, можна сказати, повною протилежністю один одному, ми розглянемо, як веб-програмісту працювати з базами даних: від основних принципів зберігання і обробки даних в БД до деяких хитрих прийомів , що дозволяють спростити програмування і підвищити ефективність роботи додатків.
Що таке база даних?
Визначень баз даних існує величезна кількість. Але з точки зору прикладного програміста головне в базі даних то, що йому зовсім не обов'язково знати особливості фізичного зберігання даних на диску. Файли, блоки, сегменти etc. - програміст, який працює з базою даних, може взагалі не замислюватися про ці подробиці. Він працює з інформацією на логічному рівні, оперуючи такими поняттями, як таблиця, запис, поле.
Які бувають бази даних
У класичній теорії виділяють три основних типи баз даних: ієрархічні, мережеві і реляційні. В останні роки, з широким розповсюдженням об'єктно-орієнтованих мов програмування, стали активно розвиватися об'єктні бази даних.
Першими з'явилися ієрархічні бази даних. Інформація в ієрархічній базі організована за принципом деревовидної структури, у вигляді відносин предок / нащадок. Кожен запис може мати не більше однієї батьківської записи і кілька підлеглих. Зв'язки записів реалізуються у вигляді фізичних покажчиків з одного запису на іншу. Основний недолік ієрархічної структури бази даних - неможливість реалізувати відносини "багато до багатьох", а також ситуації, коли запис має кілька предків.
Мережева структура баз даних з'явилася як розвиток ієрархічної. Треба підкреслити, що термін "мережева" вживається тут у зовсім незвичному для епохи інтернету / інтранету сенсі. Це слово підкреслює модель зв'язків даних в базі, коли кожен запис може знаходитися в стосунках "багато до багатьох" з іншими записами, що робить графічну модель бази схожою на рибальську сітку. Розробляти серйозні додатки в рамках мережевої моделі бази даних досить важко, причому складність розробки при ускладненні завдань зростає в геометричній прогресії.
Справжній прорив у розвитку баз даних стався тоді, коли зросла потужність комп'ютерів дозволила в повній мірі реалізувати реляційну модель даних. Теорія реляційних баз даних була розроблена доктором Коддом на початку 70-х років 20 століття. У реляційних базах дані зберігаються у вигляді таблиць, що складаються з рядків і стовпців. Стовпці таблиць реляційної бази можуть містити скалярні дані фіксованого типу - числа, рядки, дати. Таблиці в реляційної базі даних можуть бути пов'язані відносинами "один до одного" або "один до багатьох".
Реляційні бази даних займають зараз домінуюче становище. Не буде великим перебільшенням сказати, що ієрархічна і мережна структури баз даних пішли в минуле, поступившись своїм місцем реляційних баз. MS SQL Server і MS Access, InterBase і FoxPro, PostgreSQL і Paradox. Всі вони побудовані на реляційній моделі даних. Реляційною базою в чистому вигляді є і MySQL.
Об'єктно-орієнтовані бази даних (ООБД) з'явилися зовсім недавно як природний розвиток об'єктно-орієнтованих мов програмування. На сьогоднішній день ООБД поки не мають скільки-небудь широкого поширення, але, безсумнівно, вони найближчим часом будуть бурхливо розвиватися. Це підтверджує і той факт, що розробники багатьох реляційних БД включають в свої бази кошти роботи з об'єктними типами даних. Такі бази даних отримали назву об'єктно-реляційних. Цим шляхом, зокрема, розвивається і Oracle. Колишня раніше чисто реляційної базою, Oracle починаючи з 8 версії підтримує можливість зберігання і обробки об'єктів і без будь-якої натяжки може бути віднесена до об'єктно-реляційному класу баз даних.