Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Белобжеский_Лекции_по_ББД.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
5.5 Mб
Скачать

Системы обработки баз данных

Технология баз данных была разработана для того, чтобы преодолеть ограниче­ния, свойственные системам обработки файлов. Чтобы понять, каким образом это было сделано, сравните систему обработки файлов (см. рис. 1.8) с системой обработки базы данных (database processing system) (см. рис. 1.7). Программы об­работки файлов обращаются непосредственно к файлам данных. В отличие от них, программы обработки баз данных для доступа к данным вызывают СУБД. Это отличие важно тем, что оно упрощает прикладное программирование: про­граммистам больше не нужно задумываться о том, как физически организовано хранение данных, и они могут смело сконцентрироваться на вопросах, представ­ляющих важность для пользователя, а не для компьютерной системы.

Данные интегрированы

В системе базы данных все данные хранятся в едином месте, называемом базой данных. Прикладная программа может попросить СУБД обратиться к данным о клиентах или о продажах, или к тем и другим. Если нужны данные обоих типов, программист задает только способ комбинирования данных, а СУБД выполняет все необходимые для этого операции. Таким образом, в задачи программиста не входит написание программ для объединения данных, что требовалось для систе­мы на рис. 1.8.

Меньшее количество дублирующихся данных

В базе данных дублирование данных минимально. Например, для базы данных бюро Treble Clef Music номер, имя и адрес клиента записываются только один раз. Когда эти данные потребуются, СУБД может получить их, а для их модифи­кации необходимо будет только одно обновление. Поскольку данные хранятся в одном месте, проблемы их целостности стоят не так остро: вероятность разно­чтений между несколькими копиями одного и того же элемента данных снижается.

Независимость программ от данных

База данных уменьшает зависимость программ от форматов файлов. Все форма­ты записей хранятся в самой базе данных (вместе с данными), и обращение к дан­ным производит СУБД, а не прикладные программы. В отличие от программ об­работки файлов, в прикладные программы базы данных не требуется включать формат всех файлов и записей, которые они обрабатывают. Прикладные про­граммы должны содержать лишь описание (длину и тип) каждого элемента дан­ных, который требуется им в базе данных. СУБД преобразует элементы данных в записи и выполняет другие подобные преобразования.

Независимость программ от форматов данных минимизирует влияние изме­нения формата данных на прикладные программы. Изменения формата вводятся в СУБД, а та, в свою очередь, обновляет информацию о структуре базы данных. По большей части прикладные программы не осведомлены о смене формата. Это также означает, что при добавлении, изменении или удалении каких-либо эле­ментов данных из базы данных модификации требуют только те программы, ко­торые непосредственно используют эти данные. Для приложений, состоящих из множества программ, это может дать существенную экономию времени.

Представление данных в удобном для пользователя виде

Как вы неоднократно обнаружите на всем протяжении данной книги, технология баз данных дает возможность непосредственно представить объекты, существую­щие в мире пользователя. Формы, подобные изображенным на рис. 1.5, легко по-

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

Определение термина «база данных»

Термин база данных (database) страдает от обилия различных интерпретаций. Он использовался для обозначения чего угодно — от обычной картотеки до многих томов данных, которые правительство собирает о своих гражданах. В этой книге мы будем использовать данный термин в конкретном значении: база данных — это самодокументированное собрание интегрированных записей. Важно понять обе части этого определения.

Самодокументированность

База данных является самодокументированной (self-describing): она содержит, в дополнение к исходным данным пользователя, описание собственной структу­ры. Это описание называется словарем данных (data dictionary), каталогом дан­ных (data directory) или метаданными (metadata).

В этом смысле база данных напоминает библиотеку, которую можно предста­вить как самодокументированный набор книг. Кроме книг в библиотеке имеется каталог с их описанием. Точно так же словарь данных (являющийся частью базы данных, подобно тому, как каталог является частью библиотеки) описывает дан­ные, содержащиеся в базе данных.

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

Во-вторых, если мы изменим структуру данных в базе (например, добавим новые элементы данных к существующей записи), то эти изменения мы внесем только в словарь данных. Лишь небольшую часть программ необходимо будет изменить (если таковые вообще будут). В большинстве случаев модификации потребуют только те программы, которые непосредственно обрабатывают элемен­ты данных, претерпевшие изменения.

База данных — это собрание интегрированных записей

Стандартная иерархия данных выглядит следующим образом: биты объединяют­ся в байты, или символы; символы группируются в поля; из полей формируются записи; записи организуются в файлы (рис. 1.9, а). Есть соблазн последовать этому образцу и сказать, что файлы объединяются в базу данных. Хотя это утвер­ждение будет верным, оно, тем не менее, отразит суть недостаточно полно.

В базе данных действительно содержатся файлы данных пользователя, одна­ко ими все не исчерпывается. Как уже упоминалось ранее, в разделе метаданных база данных содержит описание самой себя. Кроме того, база данных содержит индексы (indexes), которые представляют связи между данными, а также служат для повышения производительности приложений базы данных. Наконец, зачас­тую база данных содержит данные о приложениях, использующих эту базу дан­ных. Структура форм для ввода данных и отчетов иногда является частью базы данных. Эту последнюю категорию данных мы называем метаданными приложе­ний (application metadata). Таким образом, база данных содержит четыре типа данных, представленных на рис. 1.9, б: файлы данных пользователя, метаданные, индексы и метаданные приложений.

Рис. 1.9. Иерархия элементов данных: а — в системах обработки файлов и б — в системах баз данных

База данных является моделью модели

База данных представляет собой модель. Возникает соблазн сказать, что база данных — это модель реальности или некоторой части реальности, относящейся к бизнесу. Однако это неверно. База данных не моделирует реальность или какую-либо ее часть, но является моделью пользовательской модели (user model). На­пример, база данных Мэри Ричардс представляет собой модель того, как Мэри видит свой бизнес. С ее точки зрения, ее бизнес состоит из клиентов, работ и по­ставщиков клиентов. Поэтому в ее базе данных представлены факты, касающиеся этих объектов. Имена и адреса клиентов, описание и временные рамки произво­димых работ, имена поставщиков клиентов — все это данные, являющиеся важ­ными для ведения бизнеса в представлении Мэри.

Базы данных различаются по уровню детализации. Некоторые их них просты и примитивны. Список клиентов и сумм, которые они должны заплатить, — вот

приблизительное представление модели, существующей в голове Мэри. Более детализированное представление включает виды работ, имена поставщиков кли­ентов и путь, проделанный до места проведения каждой из работ. Очень подроб­ное представление может включать вид и количество использованной краски, требуемое количество малярных кистей и количество часов, ушедшее на каждую фазу работ — измерения, окраску дерева и стен, зачистку и т. п.

Степень детализации, которая должна присутствовать в базе данных, зависит от того, какого рода информация необходима. Ясно, что чем больше требуется информации, тем более подробной должна быть база данных. Выбор подходя­щей степени детализации является важной частью работы по проектированию базы данных. Как вы обнаружите, основополагающим критерием здесь является уровень детализации, имеющийся в голове пользователя.

База данных представляет собой динамическую модель, поскольку бизнес имеет свойство меняться: люди приходят и уходят, продукты появляются и уста­ревают, деньги зарабатываются и тратятся. По мере этих изменений данные, представляющие бизнес, также должны меняться. В противном случае они будут устаревать и представлять бизнес неадекватно.

Транзакции (transactions) являются представлением событий. Когда происхо­дят какие-то события, с базой данных должны быть выполнены соответствую­щие транзакции. Для этого кто-либо (например, оператор ввода данных, прода­вец или кассир в банке) запускает программу обработки транзакций и вводит данные для транзакций. Программа затем вызывает СУБД для внесения измене­ний в базу данных. Обычно программа обработки транзакций выдает на дисплей или распечатывает на бумаге отчет — например, подтверждение заказа или чек.