Теория СУБД
- Теория СУБД
- ЗА ТАБЛИЦАМИ — НАШЕ БУДУЩЕЕ!
- СВЯЗЫВАЕМ ДАННЫЕ
- ОБЪЕКТНЫЙ РАЙ
- ЛОКАЛЬНАЯ БАЗА
- СЕТЕВАЯ БАЗА ДАННЫХ
- КЛИЕНТ-СЕРВЕР
- ТРЕТИЙ УРОВЕНЬ
- ЛОГИКА
- ВИДЫ СТРУКТУР БАЗ
- ОБЗОР РЫНКА
- РАЗВИТИЕ ТЕХНОЛОГИЙ БД
- БАЗЫ ЗНАНИЙ И ЭКСПЕРТНЫЕ СИСТЕМЫ
- АНАЛИЗ ДАННЫХ И OLAP-ТЕХНОЛОГИИ
- ХРАНИЛИЩА ДАННЫХ И КОРПОРАТИВНАЯ ПАМЯТЬ
- ИСТОРИЯ РАЗВИТИЯ ИНТЕРФЕЙСОВ ДОСТУПА К БАЗАМ ДАННЫХ
- ЧТО ДАЛЬШЕ?
А как же обстоят дела с остальными СУБД? К какой модели принадлежат они? На самом деле, кроме реляционной модели существуют и другие. Ни одна из них на получила особого распространения, за исключением, пожалуй, объектно-ориентированной, которая появилась позже реляционной (поэтому ее иногда называют постреляционной) и применяется по сей день.
Основное условие в реляционной модели — это правило нормализации. Все значения таблицы должны быть логически неделимыми, столбцы и строки — неупорядоченными, и в отношении не должно быть двух одинаковых кортежей. Подобная нормализация часто нарушает естественные иерархические связи между объектами, что крайне неудобно, поэтому разработчики предложили новую СУБД, а именно — объектно-ориентированную. Суть такой парадигмы в том, что предметная область согласно ей представляется в виде объектов, которые соединены в так называемые классы. Каждый объект в классе наделяется пассивными характеристиками или методами. Управление объектом возможно только через имеющие отношение к нему методы. Атрибуты того или иного объекта могут принимать одно из множества допустимых значений, а набор конкретных значений определяет поведение объекта. Множество объектов с одним и тем же значением атрибутов и методов определяют класс объекта.
Получается, что теория объектно-ориентированной базы данных похожа на организацию любого объектно-ориентированного языка программирования. Так оно и есть. Любой класс объектов может быть унаследован от другого класса и может содержать в себе все его методы наряду с собственными. Также соблюдается правило инкапсуляции: менять значения атрибутов объекта разрешается только с помощью методов. И наконец, полиморфизм — это механизм переопределения методов у наследуемого объекта.
Основное достоинство ООБД в том, что такая база учитывает поведенческий аспект объекта, в отличие от реляционной СУБД, в которой между структурой и поведением есть разрыв. Правда, чтобы реализовать ООБД, потребуются специальные языки программирования, что сильно усложняет жизнь проектировщика :).
Чтобы не допустить таких накладок, реляционную и объектно-ориентированную СУБД попытались объединить. Ясное дело, что для этого потребовалось бы расширять стандарты и модернизировать уже существующие языки программирования. Таким образом, крупные фирмы IBM и Oracle доработали свои СУБД добавив объектную надстройку над реляционным ядром системы.
Для каждой модели БД существу ет свой язык управления. Для реляционной модели таким языком является SQL (Structured Query Language, или структурированный язык запросов). Создатели этого языка стремились максимально приблизить свое детище к человеческому (английскому) языку и при этом наполнить его логическим смыслом.
Язык SQL существенно облегчает работу тем, кто постоянно имеет дело с реляционными СУБД. Строго говоря, без этого структурированного языка многим несчастным пришлось бы писать программу, например, на С. Представь: чтобы полноценно работать с таблицей, сначала необходимо создать этот объект, потом запрограммировать процедуры обращения к ней (извлечение и добавление строк). Для избавления от подобного геморроя разработчики СУБД позаботились о создании языка SQL.
Все SQL-запросы очень похожи на логические условия булевой алгебры (кто не прогуливал матан, тот меня поймет :)). Ты сам в этом убедишься, если посмотришь на врезку с основными командами языка.
Как уже было сказано, существуют и другие виды, кроме реляционных. В частности, объектно-ориентированные. Естественно, что для таких баз данных будет применяться уже другой язык запросов.
В большинстве объектно-ориентированных баз данных существует простой графический интерфейс, позволяющий пользователю получить доступ к объектам в навигационном стиле. При этом игнорируется принцип инкапсуляции: никто не запретит тебе увидеть внутренности объектов напрямую. Но, как говорят эксперты, навигационный стиль в ООБД — это в некотором смысле "шаг назад" по сравнению с языками запросов в реляционных СУБД. И мучительные поиски лучшего языка запросов к ООБД идут до сих пор.
Основные языки обращений к БД все же основываются на простом SQL-синтаксисе и имеют своего рода расширение, применимое к объектам. Примерами таких языков служат ORION, Iris и O2 Reloop.
Как видишь, не одной реляционной моделью славится рынок баз данных. В наше время разработчики стараются расширять свои программные продукты различными нововведениями, добавляя объектно-ориентированные надстройки в уже существующее реляционное ядро СУБД. В дополнение к этому модифицируется и язык запросов SQL. В SQL3 уже существуют специфические методы для работы с ООБД, но их реализация пока оставляет желать лучшего.
Для нужд обычного человека (то есть тебя) вполне хватит реляционных СУБД, которые применяются повсеместно. Это и всенародно любимый MySQL, и менее любимый Access, и MSSQL. Подобных систем управления масса, определись и выбери ту, что тебе больше по сердцу. А сделать этот нелегкий выбор, как всегда, поможет этот уникальный СПЕЦвыпуск ;).