Теория СУБД

ЗА ТАБЛИЦАМИ — НАШЕ БУДУЩЕЕ!

Та или иная СУБД зависит от модели, ко­торая положена в основу базы. В наше вре­мя стали наиболее распространенными две модели: реляционная (модель отношений) и объектно-ориентированная (модель объек­тов). О них и пойдет речь в этой статье.

Начнем с реляционной модели. В далеком 1969 году американский математик доктор Э.Ф. Кодд (Е.F. Codd) проанализировал сло­жившуюся к тому времени ситуацию по базам данных и пришел к выводу, что дело плохо. Во всех имевшихся в то время моделях были существенные недостатки: избыточность дан­ных, сложность обработки и отсутствие безо­пасности хранения информации и т.п. После тягостных раздумий Кодд решил создать свою модель — реляционную. Для тех, кто злостно прогуливал английский, напомню, что relation переводится как "отношение" или просто "таблица". Гениальный доктор просто реали­зовал хранение данных в табличной форме, то есть организовал такие "хранилища" в ви­де логических структур (физические методы хранения могут быть любыми). Тем самым Кодд сумел добиться наглядности представле­ния информации и удобства ее обработки. Благодаря достижению этого гения для фор­мирования таблицы данных стало достаточно выполнить определенный логический запрос, подчиняющийся законам булевой алгебры. Среди операторов манипуляции данными су­ществуют минимум три операции: извлечение строк (SELECT), извлечение столбцов (PRO­JECT) и объединение таблиц (JOIN). В резуль­тате этих действий мы получаем таблицу. И простой вывод из всего этого: результатом любой операции в реляционной модели явля­ется объект того же рода, что и объект, над ко­торым осуществлялось действие.

Это и есть основное свойство опи­сываемой модели.

Кроме базовых знаний, нам понадо­бятся основные определения, приме­нимые к этой модели: тип данных, ат­рибут, кортеж, отношение и первич­ный ключ.

Тип данных – определение, которое соответствует понятию типа в языках программирования. Другими словами, для реляционной модели можно отме­тить такие основные типы, как "целые числа", "строки", "символы", "числа с плавающей запятой", "дата" и "день­ги" (куда в наше время без денег :)).

Атрибут – это столбец в таблице с данными. Например, если на экране имеется информация о хакерских те­чениях, эксплойтах и стаже деятель­ности, то все эти столбцы являются атрибутами.

Кортеж – строка в таблице с данны­ми. Таким образом, исчерпывающая информация на определенного хаке­ра является кортежем.

Отношение – таблица в целом. Опи­сание типов данных, применяемых в табличке, называется заголовком от­ношения, а все остальное (собствен­но данные) — телом отношения.

Первичный ключ – минимальный на­бор атрибутов (столбцов), которые бу­дут определять однозначную уникаль­ность каждого кортежа (строки) в отно­шении (таблице). При создании базы следует очень внимательно отнестись к заданию первичного ключа — в нашем примере ника хакера будет недостаточ­но (вдруг кто-нибудь захочет взять се­бе кличку своего кумира? :)). Бывает, что для аутентификации вводится до­полнительное поле с порядковым но­мером, который будет однозначно раз­ным для каждой строки. Но никто не запрещает выбирать для первичного ключа два или три атрибута: все как ты пожелаешь, лишь бы это действие бы­ло логически обоснованным (подобный ряд атрибутов будет называться сос­тавным первичным ключом).