Что поспособствовало появлению распределенных бд
Что поспособствовало появлению распределенных бд
Разработчик: к.э.н. Зеневич А.М.
5. Системы обработки распределенных баз данных
5. СИСТЕМЫ ОБРАБОТКИ РАСПРЕДЕЛЕННЫХ БАЗ ДАННЫХ
5.1. Понятие и архитектура распределенной БД
Распределенная БД (РаБД) – набор логически связанных между собой разделяемых данных и их описаний, которые физически распределены по нескольким компьютерам ( узлам) в некоторой компьютерной сети.
Каждая таблица в РАБД может быть разделена на некоторое количество частей, называемых фрагментами. Фрагменты могут быть горизонтальными, вертикальными и смешанными. Горизонтальные фрагменты представляют собой подмножества строк, а вертикальные – подмножества столбцов. Фрагменты распределяются на одном или нескольких узлах.
С целью улучшения доступности данных и повышения производительности системы для отдельных фрагментов может быть организована репликация – поддержка актуальной копии некоторого фрагмента на нескольких различных узлах. Репликаты – множество различных физических копий некоторого объекта БД, для которых в соответствии с определенными в БД правилами поддерживается синхронизация с некоторой «главной копией».
Существуют несколько альтернативных стратегий размещения данных в системе: раздельное (фрагментированное) размещение, размещение с полной репликацией и размещение с выборочной репликацией.
Раздельное (фрагментированное) размещение. В этом случае БД разбивается на непересекающиеся фрагменты, каждый из которых размещается на одном из узлов системы. При отсутствии репликации стоимость хранения данных будет минимальна, но при этом будет невысок также уровень надежности и доступности данных в системе. Отказ на любом из узлов вызовет утрату доступа только к той части данных, которая на нем хранилась.
Размещение с полной репликацией. Эта стратегия предусматривает размещение полной копии всей БД на каждом из узлов системы. Следовательно, надежность и доступность данных, а также уровень производительности системы будут максимальными. Однако стоимость хранения данных и уровень затрат на передачу данных в этом случае будут самыми высокими.
Размещение с выборочной репликацией. Данная стратегия представляет собой комбинацию методов фрагментации, репликации и централизации. Одни массивы данных разделяются на фрагменты, тогда как другие подвергаются репликации. Все остальные данные хранятся централизованно. Целью применения данного метода является объединение всех преимуществ, существующих в остальных моделях, с одновременным исключением свойственных им недостатков. Благодаря своей гибкости, именно эта стратегия используется чаще всего.
5.2. Распределенная СУБД
Работу с РаБД обеспечивают распределенные СУБД. Распределенная СУБД (РаСУБД) – комплекс программ, предназначенный для управления распределенной БД и позволяющий сделать распределенность информации «прозрачной» для конечного пользователя. Из определения РаСУБД следует, что для конечного пользователя должен быть полностью скрыт тот факт, что распределенная БД состоит из нескольких фрагментов, которые могут размещаться на нескольких компьютерах, расположенных в сети и к ней возможен параллельный доступ нескольких пользователей. Назначение обеспечения «прозрачности» состоит в том, чтобы распределенная система внешне вела себя точно так же, как и централизованная. Такое распределение данных позволяет, например, хранить в узле сети те данные, которые наиболее часто используются в этом узле. Такой подход облегчает и ускоряет работу с этими данными и оставляет возможность работать с остальными данными БД, хотя для доступа к ним требуется потратить некоторое время на передачу данных по сети.
Основная задача РаСУБД состоит в обеспечении средств интеграции локальных баз данных, располагающихся в некоторых узлах компьютерной сети, с тем, чтобы пользователь, работающий в любом узле сети, имел доступ ко всем этим БД как к единой БД. Другими словами, для клиентских приложений РаБД представляется не набором баз, а единым целым. Каждый фрагмент БД сохраняется на одном или нескольких компьютерах, которые соединены между собой линиями связи и каждый из них работает под управлением отдельной СУБД. Пользователи взаимодействуют с РаБД через приложения. Приложения могут быть классифицированы как те, которые не требуют доступа к данным на других узлах (локальные приложения), и те, которые требуют подобного доступа (глобальные приложения). В РаСУБД должно существовать хотя бы одно глобальное приложение, поэтому любая РаСУБД должна имеет следующие особенности:
· набор логически связанных разделяемых данных;
· сохраняемые данные разбиты на некоторое количество фрагментов;
· между фрагментами может быть организована репликация данных;
· фрагменты и их реплики распределены по различным узлам;
· узлы связаны между собой сетевыми соединениями;
· работа с данными на каждом узле управляется локальной СУБД.
СУБД на каждом узле способна поддерживать автономную работу локальных приложений.
5.3. Гомогенные и гетерогенные распределенные БД
РаБД можно классифицировать на гомогенные и гетерогенные.
Гомогенной РаБД управляет один и тот же тип СУБД. Гетерогенной РаБД управляют различные типы СУБД, использующие разные модели данных – реляционные, сетевые, иерархические или объектно-ориентированные СУБД.
Гомогенные РаБД значительно проще проектировать и сопровождать. Кроме того, подобный подход позволяет поэтапно наращивать размеры РаБД, последовательно добавляя новые узлы к уже существующей РаБД. Гетерогенные РаБД обычно возникают в тех случаях, когда независимые узлы, управляемые своей собственной СУБД, интегрируются во вновь создаваемую РаБД.
5.4. Двенадцать правил К. Дейта для РаБД и РаСУБД
К. Дейтом были сформулированы 12 правил (1987) для типичной РаБД. Основой этих правил является то, что РАБД должна восприниматься пользователем точно так же, как и привычная централизованная БД.
1. Локальная автономность. В данном контексте автономность означает следующее:
· локальные данные принадлежат локальным владельцам и сопровождаются локально;
· все локальные процессы остаются чисто локальными;
· все процессы на заданном узле контролируются только этим узлом.
2. Отсутствие опоры на центральный узел. В системе не должно быть ни одного узла, без которого система не сможет функционировать, т.е. никакой конкретный сервис (управление транзакциями, оптимизация запросов и др.) не должен возлагаться на какой-либо специально выделенный центральный узел.
3. Непрерывное функционирование. В идеале в системе не должна возникать потребность в плановом останове ее функционирования.
4. Независимость от расположения. Пользователь должен получать доступ к базе данных с любого узла, причем получать доступ к любым данным, независимо от того, где они физически сохраняются.
5. Независимость от фрагментации. Пользователь должен получать доступ к данным независимо от способа их фрагментации.
6. Независимость от репликации. Пользователь не должен нуждаться в сведениях о наличии репликации данных, т.е. пользователь не будет иметь средств для получения прямого доступа к конкретной копии элемента данных, а также не должен заботиться об обновлении уже имеющейся копии.
7. Обработка распределенных запросов. Система должна поддерживать обработку запросов, ссылающиеся на данные, расположенные более чем на одном узле.
8. Обработка распределенных транзакций. Система должна поддерживать выполнение транзакций.
9. Независимость от типа оборудования. Система должна быть способна функционировать на оборудовании с различными вычислительными платформами.
10. Независимость от сетевой архитектуры. Система должна быть способна функционировать в сетях с различной архитектурой.
11. Независимость от операционной системы. Система должна быть способна функционировать под управлением различных операционных систем.
12. Независимость от типа СУБД.
5.5. Обработка распределенных запросов
В распределенной среде работа системы не должна демонстрировать никакого снижения производительности, связанного с его распределенной архитектурой, например с присутствием медленных сетевых соединений. РаСУБД должна находить наиболее эффективные стратегии выполнения запросов. В распределенной среде обработчик распределенных запросов отображает запрос на доступ к данным в упорядоченную последовательность операций локальных баз данных (в отличие от централизованной, где обработчик запросов оценивает каждый запрос на доступ к данным, а выполнение его представляет собой упорядоченную последовательность операций с БД). Дополнительная сложность возникает из-за необходимости учитывать наличие фрагментации, репликации и определенной схемы размещения данных. Обработчик распределенных запросов должен выяснить:
· к какому фрагменту следует обратиться;
· какую копию фрагмента использовать, если его данные реплицируются;
· какое из местоположений должно использоваться.
Возможности выполнения распределенного запроса поддерживаются сейчас почти всеми серверными СУБД (по крайней мере в том случае, когда в транзакцию вовлечены серверы от одного производителя). С этой целью используется механизм двухфазного завершения транзакций, когда на первом этапе серверы, вовлеченные в транзакцию, сигнализируют о готовности ее завершить, а на втором этапе происходит реальная фиксация изменений в БД.
5.6. Преимущества и недостатки РАСУБД
Системы с распределенными БД имеют дополнительные преимущества перед традиционными централизованными системами баз данных.
1. Отражение структуры организации.
2. Разделяемость и локальная автономность.
3. Повышение доступности данных.
4. Повышение надежности.
5. Повышение производительности.
6. Экономические выгоды.
7. Модульность системы.
1. Повышение сложности. РаСУБД являются более сложными программными комплексами, чем централизованные СУБД, что обусловлено распределенной природой используемых ими данных, а также репликацией данных.
2. Увеличение стоимости. Увеличение сложности означает и увеличение затрат на приобретение и сопровождение РаСУБД.
3. Проблемы защиты. В централизованных системах доступ к данным легко контролируется. Однако в распределенных системах требуется организовать контроль доступа не только к данным, реплицируемым на несколько различных узлов, но и защиту сетевых соединений самих по себе.
4. Усложнение контроля за целостностью данных. В РаСУБД повышенная стоимость передачи и обработки данных может препятствовать организации эффективной защиты от нарушений целостности данных.
5. Отсутствие стандартов. Отсутствуют стандарты на каналы связи и протоколы доступа к данным, а также отсутствуют инструментальные средства и методологии, способные помочь пользователям в преобразовании централизованных систем в распределенные.
6. Недостаток опыта. Еще не накоплен необходимый опыт промышленной эксплуатации распределенных систем, сравнимый с опытом эксплуатации централизованных систем.
7. Усложнение процедуры разработки БД. Разработка распределенных БД, помимо обычных трудностей, связанных с процессом проектирования централизованных БД, требует принятия решения о фрагментации данных, распределении фрагментов по отдельным узлам и организации процедур репликации данных.
8. Сложность управления и обусловленная этим потенциальная опасность потери целостности данных.
5.7. Обзор распределенных СУБД
В настоящее время наиболее развитыми в теоретическом и практическом отношении являются реляционные распределенные СУБД. К РаСУБД, наиболее изученным относятся:
В настоящее время в большинстве коммерческих реляционных серверных СУБД предусмотрены разные виды поддержки использования распределенных баз данных. Наиболее полно функции распределенной СУБД реализованы в системах:
· INGRES/STAR, разработанная отделением Ingres Division фирмы The ASK Group Inc.;
Наиболее близко подошли к реализации функций распределенных СУБД такие как:
· Informix On-line фирмы Informix Software;
История развития баз данных.
Содержание
История развития баз данных………………………………………………3-5
Особенности и требования………………………………………………9-10
История развития баз данных.
· представление данных в каждом файле было различным;
· необходимо было согласовывать данные в разных файлах для обеспечения непротиворечивости информации;
· необходимо было выбрать какие данные и в каком виде будут фигурировать в таких файлах, как файл приобретений товаров в примере;
· сложность разработки приложений и их обновления при изменении данных.
· Ситуация требовала улучшения и множество специалистов усердно работали над созданием чего-то более удобного в использовании. В начале 1970-х годов, спустя примерно 10 лет, ситуация начала улучшаться и появились первые базы данных.
В 1970 году Э. Ф. Кодд опубликовал статью, которая послужила основой для создания реляционной модели данных. Приемущество такой модели хранения данных заключается в минимальном дублировании данных и исключении некоторых типов ошибок, свойственных другим моделям. Согласно этой модели, данные хранятся в виде таблиц со столбцами и строками. Не все виды таблиц приемлемы для реляционной модели и нежелательные таблицы могут быть нормализованы для удовлетворения требованиям реляционной модели. В процессе нормализации таблица как-правило разбиваются на две или несколько более приемлемых таблиц.
В 1979 году небольшая компания Ashton-Tate выпустила продукт для микрокомпьютеров под названием dBase-II, назвав его реляционной СУБД. Благодаря успешной тактике, компании удалось распространить более 100 000 копий продукта среди пользователей компьютеров Osborne. Многие из пользователей компьютеров создавали программы для них и вскоре dBase стала очень популярной СУБД. В последствии Ashton-Tate была приобретена фирмой Borland. На самом деле продукт dBase не являлся реляционной СУБД, а представлял из себя язык программирования с расширенными функциями для обработки файлов. Пока развивалась dBase, другие производители начали перенос на микрокомпьютеры своих коммерческих СУБД для больших ЭВМ. Примерами таких СУБД являются Oracle, Ingress и Focus. Перенос СУБД на микрокомпьютеры послужил причиной улучшения пользовательского интерфейса, что повлекло за собой увеличение числа микрокомпьютеров, работающих с базами данных.
В середине 1980-х годов пользователи начали объединять свои компьютеры в локальные сети, что привело к возникновению клиент-серверной модели, а так же модели с совместным использованием файлов. Сеть позволяла совместно использовать дорогие принтеры и дисковые накопители большой емкости. В перспективе же пользователи хотели совместного использования их баз данных, что стимулировало развитие многопользовательских приложений баз данных для локальных сетей. Поскольку многопользовательская обработка данных в локальной сети отличается от многопользовательской обработки данных на мейнфрейме наличием нескольких вычислителей, возникали дополнительные сложности по координации действий вычислителей. Так появилась клиент-серверная архитектура обработки данных. Существует и более простая, но менее надежная архитектура, снованная на совместном использовании файлов.
В наши дни активно развиваются web-приложения баз данных, а так же базы данных с использованием Internet-технологий. Web-приложения баз данных делают данные доступными через обозреватель пользователя, в то время как базы данных с использованием Internet-технологий просто используют клиентские обозреватели и технологии типа XML и DHTML для работы с базой данных, не публикуя данные через Internet.
Существует еще две технологии баз данных, которые являются возможными, но пока не реализованы. Это объектно-ориентированные базы данных и распределенные базы данных. Распределенные базы данных представляют собой базу данных организации, распределенную по нескольким компьютерам локальной сети организации. Благодаря такой архитектуре возможно более гибкое разделение нагрузки по отделам предприятия, но реализация такой системой связана с радом проблем, некоторые из которых не решены до сих пор. Объектно-ориентированные базы данных позиционируются как средство для хранения структур данных, используемых
в объектно-ориентированном программировании. Поскольку объекты на порядок сложнее структур, то и реализация баз данных будет довольно сложной. Плюс ко всему, развитие объектно-ориентированных баз данных сдерживается наличием огромного количества реляционных БД, в которых хранятся огромные массивы информации.
Существуют различные определения базы данных. Обычно они либо неполны, либо слишком громоздки. Дадим простое определение, расширяя его по мере появления новых понятий.
Базой данных (БД) называют совокупность взаимосвязанных данных на машинных носителях, предназначенных для использования в интерактивном (диалоговом) режиме доступа и в программных приложениях. Обычно БД создается для хранения и доступа к данным из некоторой предметной области, то есть представляет собой информационную модель класса объектов.
Система управления базой данных (СУБД) – это языковые и программные средства для организации, пополнения, модификации и использования БД. Различают универсальные и специализированные СУБД. Универсальные СУБД являются системами широкого профиля и не имеют четко очереченных границ применения, а специализированные создаются для БД конкретного назначения: банковских, бухгалтерских и т. д. Специализированные СУБД в наибольшей степени учитывают специфику предметной области, что отражается в интерфейсе и процедурах обработки информации.
Выделяют класс промышленных или коммерческих СУБД как систем, разработанных профессиональными компаниями в области создания программного обеспечения, апробированных на практике и тиражируемых на некоторых коммерческих условиях. Промышленные СУБД относительно дешевы, достаточно надежны и документированы. Обычно их появлению предшествуют опытные разработки, пробные версии, предварительные публикации и т.п.
Начальные понятия. Этапы.
Администратором БД называют человека или группу лиц, ответственных за обслуживание БД. Администратор распределяет права доступа к информации, вносит изменения в структуру БД, отвечает за сохранность данных и их восстановление в случае сбоев, модернизирует программное обеспечение по мере появления новых версий. Администратор должен обладать квалификацией системного программиста и в то же время четко представлять проблемы пользователей.
Физическое описание данных это способы представление информации на машинных носителях.
Логическое описание данных это представление информации с точки зрения пользователя.
Логическое представление данных не всегда строго соответствует физическому. Например, пользователь представляет файл как нечто целое и неделимое, однако на внешних носителях файл может представляться фрагментировано, по кластерам. Более того, некоторые поля, такие как тексты неопределенной длины или изображения, могут физически размещаться в других файлах.
Физическая независимость данных – возможность изменения физического размещения данных без изменения их логической структуры и прикладных программ.
Логическая независимость данных – возможность изменения логической структуры данных (добавление новых полей, изменение порядка полей и их размерости) с сохранением работоспособности приложений, использующих прежнее представление.
Например, физическая независимость данных поддерживается обычно средствами операционной системы. Логическая независимость данных не обеспечивается в приложениях на Паскале и С.
Концепция БД сложилась в конце 60-х годов прошлого столетия и с тех пор постоянно развивалась. Известный специалист в области БД Д. Мартин рассматривает несколько этапов в развитии технологии обработки данных.
Первый этап сложился к началу 60-х годов прошлого века и характеризуется следующими признаками:
· информация преимущественно хранится в последовательных файлах на магнитных лентах;
· физическая структура данных строго соответствует логической;
· в качестве архива хранятся несколько копий файлов;
· файлы предназначены для единственной программы;
· программист планирует не только логическую, но и физическую организацию данных;
· при изменении физической или логической организации данных программа должна перерабатываться.
Недостатки первого этапа очевидны. Привязка файлов к одной программе приводит к многократному дублированию и противоречивости информации в разных приложениях. Трудоемкость разработки программ увеличивается, поскольку каждый программист должен предусматривать процедуры доступа к данным и их модификации. Даже при незначительных изменениях структуры данных прикладные программы должны корректироваться.
Второй этап относится к середине 60-х годов и имеет следующие особенности:
· появились внешние устройства прямого доступа, позволившие осуществить произвольный доступ к записям (прямой, индексно-последовательный);
· вошли в употребление процедуры поиска записи по ключевому полю (обычно одному);
· стало возможным переносить файлы на другие внешние устройства без изменения прикладных программ, что обычно обеспечивалось средствами языка управления данными соответствующей операционной системы.
Несмотря на очевидный прогресс, сохранились многие недостатки первого этапа.
Третий этап начался с конца 60-х годов. Основным достижением можно считать осознание необходимости централизации данных для доступа к ним различных приложений. При этом уменьшается избыточность и противоречивость информации, приложения используют стандартные средства доступа к данным. На этом этапе возросла сложность организации данных, был реализован эффективный поиск записей по многим ключам.
Именно на этом этапе появились первые СУБД. Прежде всего развивались теория и практика построения иерархических и сетевых СУБД. В этих моделях связи данных описываются с помощью деревьев и графов общего вида.
Четвертый этап датируется второй половиной 70-х годов. На этом этапе были реализованы в той или иной степени следующие основные характеристики СУБД:
· логическая и физическая независимость данных;
· удобство развтия БД;
· безопасность, секретность, целостность данных;
· поиск информации по различным запросам;
· языковые средства для администратора, прикладного программиста, пользователя-непрофессионала.
Безопасность, секретность и целостность данных – понятия близкие, но, тем не менее, различные. Под безопасностью понимают защиту данных от неавторизованной модификации помимо администратора СУБД. Секретность в общем случае означает запрет доступа к некоторой информации определенных пользователей. Наконец, целостность данных – это в первую очередь их непротиворечивость. Нарушения целостности возможны в случаях некорректной работы пользователей и сбоев оборудования.
С начала 70-х годов после публикаций Э. Кодда начались активные исследования реляционной модели данных. Основу реляционной СУБД составляют таблицы. Вплоть до 80-х годов реляционные СУБД считались перспективными, но трудными для реализации.
Опыт использования первых СУБД позволил выделить такие важные требования к ним, как:
· естественное представление различных структур данных;
· минимальные затраты на создание и поддержку БД;
· разнообразие возможностей поиска, в том числе незапланированных заранее;
· простота и дружественность;
· наличие непроцедурных языков пользователя (что получить, а не как).
Таким образом, к концу 70-х годов сформировались основные концепции СУБД, в соответствии с которыми были созданы первые промышленные СУБД. Они были в основном ориентированы не на рядовых пользователей, а на программистов достаточно высокой квалификации.
Новый этап в развитии СУБД наступил при появлениии персональных компьютеров. На этом этапе на передний план вышли такие особенности СУБД, как:
· дружественность и удобство работы пользователя (развитые диалоги, меню, оконный интерфейс, контекстная помощь);
· упрощение громоздких схем СУБД за счет частичной реализации ряда свойств;
· почти полный переход на реляционные СУБД;
· ориентация не только на программиста, но и на пользователя-непрофессионала;
· наличие средств автоматизации программирования в виде генераторов форм, меню, отчетов, запросов.
Новые СУБД распространялись вместе с персональными компьютерами ограмными тиражами. Так для СУБД dBase III Plus компании Ashton-Tate в 1986 году было зарегистрировано более 2 миллионов продаж. Вообще, СУБД линии dBase оказались одними из самых популярных. Язык программирования xBase, лежащий в их основе, стал классикой жанра. Не случайно ряд СУБД также использовали диалекты этого языка. В России особо популярными стали СУБД FoxBase+ и впоследствии FoxPro компании Fox Software, обладающие новыми возможностями по сравнению с dBase и непритязательные к техническим характеристикам компьютера. Позднее компания Fox Software была поглощена компанией MicroSoft, и соответствующие продукты выходили уже под ее маркой. Распространение получили такие СУБД как Paradox фирмы Borland, Access фирмы MicroSoft, сетевая СУБД dB Vista фирмы Raima Incorporation и многие другие. В России появились русифицированные версии некоторых из этих продуктов.
Дальнейший этап развития СУБД связан с возрастанием информационных потребностей и развитием сетевых технологий. Естественно, с усложнением архитектуры потребовались новые теоретические исследования, во много раз усложнилось и программное обеспечение.
Сначала получили распространение сетевые СУБД файл-серверной архитектуры. База данных в локальной сети централизованно хранится на специально выделенном компьютере, называемом файл-сервером. На клиентских местах устанавливаются копии СУБД. Необходимые данные запрашиваются по сети. В случае изменения БД корректирующая информация также отправляется по сети. При интенсивной работе с данными пропускная способность сети может оказаться недостаточной.
Клиент-серверные СУБД снижают трафик в сети. Клиент отправляет запрос к БД, который обрабатывается на сервере, возвращая полученный результат. Клиент-серверные СУБД могут масштабироваться до сотен и тысяч рабочих мест. Всеобщее распространение, подкрепленное стандартами, получил язык запросов SQL (Structured Query Language). Запрос к серверу формируется, как правило, на языке SQL, поэтому клиент-серверные СУБД стали называть SQL-серверами. Наиболее широко известны такие SQL-сервера как SQL Server, DB2, Oracle, Informix, Ingres, InterBase, MySQL.
Наконец, появились трехзвенные СУБД, в которых используется промежуточное звено – сервер приложений, являющийся посредником между клиентом и сервером БД. Сервер приложений призван полностью избавить клиента от забот по управлению данными. В результате получается «облегченный” клиент, не требующий больших ресурсов.
Одной из тенденций развития современных информационных технологий является распределенный характер информации. Данные находятся на компьютерах различных моделей, функционирующих под управлением различных операционных систем, а доступ к данным осуществляется разнородным программным обеспечением. Сами компьютеры территориально удалены друг от друга. Активно развивающиеся распределенные СУБД могут содержать сотни серверов БД и работать на предприятиях государственного масштаба. Интерес к распределенным СУБД в большой степени связан со стремительным развитием Интернета.
Основную часть рынка в настоящее время занимают реляционные СУБД. Вместе с тем многие приложения, такие как системы автоматизированного проектирования и управления, геоинформационные системы, системы хранения и поиска документов, системы мультимедиа и гипермедиа требуют более сложно организованных данных, которые не представимы в виде плоских таблиц. В связи с этим ведутся активные исследования и разработки в области создания объектно-ориентированных СУБД. Промежуточную позицию занимают объектно-реляционные СУБД, в которых прежние характеристики пытаются усилить новыми возможностями.
Заключение.
Хотя обработка баз данных всегда была важной темой, популярность Интернета сделала ее еще и одной из самых нужных специальностей. Навыки, которые вы разовьете, и знания, которые вы приобретете, будут чрезвычайно востребованы. Цель базы данных — помочь людям и организациям вести учет различных вещей. Хотя для этой цели можно использовать списки, они вызывают множество проблем. Их сложно изменять без возникновения несоответствий, удаления из списков могут иметь непредвиденные последствия, а неполные данные трудно записывать. Кроме того, вводя данные, легко вызвать их противоречивость. Наконец, различные части организации хотят поддерживать некоторые данные совместно, а некоторые — исключительным образом. Это трудно организовать при использовании списков.
Базы данных состоят из групп реляционных таблиц. В большинстве случаев каждая таблица содержит данные по определенной теме. Поддержка данных таким образом решает все проблемы, перечисленные для списков. Связи в таблицах представляются разными способами. В этой главе связи представлялись путем присвоения каждой строке уникального идентификатора и использования этого идентификатора для связи строки одной таблицы со строкой другой таблицы. Для представления связей использовались и внешние ключи. Таблицы можно создавать с помощью языка SQL, который является промышленным стандартом для обработки таблиц.
Система базы данных состоит из четырех основных элементов: пользователи, приложения базы данных, СУБД и сама база данных. Пользователи применяют базу данных для решения своих задач. Приложения производят формы, запросы и отчеты, выполняют логику приложения и управляют обработкой базы. СУБД создает, обрабатывает и администрирует базу данных. База данных — это самодокументированное собрание интегрированных записей. Она содержит пользовательские данные, метаданные, индексы, хранимые процедуры, триггеры и метаданные приложения. Хранимая процедура — это программа, которая обрабатывает участок базы данных и хранится в базе данных. Триггер — это процедура, которая вызывается при наступлении определенного события. На рис. 1.6 показаны функции компонентов базы данных.
Технология баз данных может использоваться в широком спектре приложений. Некоторые базы данных используются одним человеком, другие — группой людей, а третьи — большими организациями. В табл. 1.2 показаны некоторые характеристики этих разных типов баз данных.
Подобно всем информационным системам, системы баз данных разрабатываются в течение трех фаз: формулирования требований, проектирования и реализации. Во время фазы формулирования требований разрабатывается модель данных, или логическое представление структуры базы данных. Модели данных важны, потому что от них зависит проектирование базы данных и приложения. Диаграмма сущность—связь — средство, используемое для представления модели данных.
Модель данных преобразуется в таблицы и связи на фазе проектирования. Также проектируются индексы, ограничения, хранимые процедуры и триггеры. Диаграммы структур данных иногда используются для таблиц документов и их связей. Во время фазы реализации создаются таблицы, связи и ограничения, пишутся хранимые процедуры и триггеры, база данных заполняется данными и тестируется. Сегодня таблицы и связанные с ними конструкции создаются с помощью SQL или графических средств, являющихся частью СУБД.