Теория и практика построения баз данных (1088289), страница 6
Текст из файла (страница 6)
Сравнительные характеристики перечисленных типов баз данных приведены в табл. 1.1. Прочтя книгу, вы сможете проектировать и реализовывать базы ланных наподобие тех, что используются в малярной фирме Мэри Ричарде и в бюро проката ТгеЫе С!е1 Мпэ1с. Возможно, вы будете еше не в состояш1и созлавать такие большие и сложные базы данных, как та, что используется в бюро регистрации транспортных средств, но, тем не менее, сможете быть полезным членом команды по разработке и создашпо такой базы данных. Вы также сможете создавать небольшие или средних размеров базы данных, использующие интернет-технологии.
Системы обработки файлов 35 Поль Пользователи Попьв файла клиентов Попьзсватв файла кпивнтов Рис. 1.б. Двв системы обработки фвйпсв 34 Глава 1. Введение а базы данных Когда-то граница между прикладной программой и СУБД была четко определена. Приложения писались на языках третьего поколения, таких как СОВО1, и обращалнсь к СУБД за услугами по обработке данных. Фактически, так дело обстоит до сих пор, чагце всего в базах данных, располагающихся на больших ЭВМ. Рис. 1.7. Отношения между пользователями, приложениями базы данных, СУБД и базой данных Сегодня, однако, возможности и функции многих коммерческих СУБД расширились настолько, что СУБД могут самостоятельно выполнять значительную часть функций, ранее находившихся в ведении прикладных программ. Например, в большинстве коммерческих СУБД есть генераторы отчетов п Форм, которые можно встраивать в приложения. Этот факт важен для нас по двум причинам.
Во-первых, хотя основной объем этого текста посвящен проектированию и разработке баз данных, мы часто будем уделять внимание проектированию и разработке приложений. В конце концов, ни одному пользователю не нужна база данных как таковая, Пользователям скорее нужны формы, отчеты и запросы по их данным. Во-вторых, время от времени вы будете замечать, что материал этого курса в чем-то пересекается с материалом курса системного программирования, поскольку разработка эффективных приложений баз данных требует многих навыков из тех, что вы приобрели или приобретете в ходе изучения курса системного программирования.
И наоборот, в большинство современных курсов системного программирования входит такая тема, как проектирование баз данных. Различие между двумя курсами заключается в расстановке акцентов; здесь мы делаем упор на проектирование, построение п обработку базы данных, а в курсе системного программирования — на разработку информационных систем, большинство из которых использует технологию баз данных. Системы обработки файлов учв1ии способ уяснить общую природу и свойства рассмотпеть ха акте истпк и ' р р и систем, существовавших до появления технологии баз данных. Прп эксплуата и ц и такого рода систем возникал ряд проблем, которые технология баз данных помогла решить. В первых деловых информационных системах группы записей хранились в отдельных файлах; такие системы назывались систеиами б 6 у (Г1— о ра отки у)айвов (111ергосеззш8 зузгетз).
На пю. 1.8 аботки ф ). 1 . 1.8 приведены в качестве примера две систе. б- мыоС1 р Файлов, которые можно было бы использовать б ть в 1оро проката ТгеЫе е1 Мцз1с. Одна система обрабатывает данные кл цию о прокате. . нентов, а другая — информаХотя системы об аботки файл р ф ов являются огромным усовершенствованием по сравненико с ведением записей вручную, у них есть значительны. ные ограничения: + данные разделены п изолированы; + значительная часть данных дублируется; + прикладные программы зависят от форматов файлов; + зачастую файлы несовместимы друг с другом; + представление данных в виде, удобном для пользователя, еля, оказывается затруднительным.
Разделенные и изолированные данные Служащие бюро ТгеЫе С1е1 Мцз)с должны ассоциировать клиентов с инструментами, которые те берут в аренду. Для системы, нзображенной на ис. 1.8, проката и скомонпиробразом извлечь данные из файлов клиентов и п ок б вать нх в третий файл. В системах обработки файлов это вызовет сло р, системные аналитики и программисты должны оп е елпть, к ложности. части каждого из ф д ' фаилов для этого требуются, а затем решить, как файлы должны относиться д г к друг к другу; наконец, они должны скоординировать обработку 36 Глава 1. Введение в базы данных Системы обработки баз данных 37 файлов таким образом, чтобы извлечение данных происходило корректно. Даже для двух файлов эта задача довольно сложна, а вообразите себе, что необходимо скоординировать 10 или более файлов! Дублирование данных В примере с бюро проката ТгеЫе С1е1Мцз1с часто возникает ситуация, когда пмя клиента, его адрес и другие данные записываются несколько раз.
А именно, эти данные записываются один раз в файл клиентов, а затем казгдьсй раз, когда с данным клиентом заключается договор аренды, — в файл проката. То, что при этом впустую тратится дисковое пространство, — еще не самая большая проблема: главная проблема, возникающая при дублировании ланных, касается целостности данных (дага 1псейгйу). Совокупность данных обладает цеяостностью, если данные в ней лопшески согласованы. Когда данные дублируются, это зачастую нарушает их целостность. Например, если клиент сменит фамилию или адрес, то все файлы, содержащие эти данные, необходимо будет обновить, но существует опасность, что обновлены будут не все файлы, и межлу ними появятся несоответствия. В случае ТгеЫе С!е1 Мпгйс может оказаться, что в разных записях в файле проката клиент имеет разные адреса. Проблемы целостности данных являются серьезными.
Есяи данные противоречат друг другу, это прнвелет к несогласованным результатам и неопределенности. Если отчет одного прн.ложепия не согласуется с отчетом другого приложения, то кто сможет сказать, какой из них является правильным? Когда результаты не согласованы, достоверность хранимых данных и даже само функционирование административной информационной системы сгавятся под сомнение. Зависимость прикладных программ от форматов файлов При обработке файлов прикладные про|раммы зависят от форматов файлов. Обычно в системах обработки файлов физические форматы файлов и записей являются частью кода приложения.
В языке СОВО1-, например, форматы файлов записываются в разделе РАТА 01Н!5!ОН Проблема заключается в том, что при внесении изменений в форматы файлов приходится также менять и прикладные программы, Например, если в запцси о клиенте поле почтового индекса будет рас|цирено с пяти цифр до девяти, все программы, работающие с втой записью, необходимо будет модифицировать, даже если оцн не используют зто поле. Поскольку файл клиентов может обрабатываться лвалцатью программамн, такое изменение означает, что программист должен обнаружить все затронутые программы, внести в них изменения и затем заново протестировать их; все это требует значительных временных затрат и является дополнительным источником ошибок.
Кроме того. требовать от программистов модификации программ, не использующих то поле, формат которого изменился, — значит просто бросать деньги на ветер. Несовместимость файлов Одним из следствий зависимости прикладных прогр .. р грамм от форматов файлов является то, что сами фо маты файл ф р. ф " овзависятотязыкаплисредства,используемого для их генерации. Так, формат файла, созданного программой на языке СОВО1., отличается от формата файла, созданного программой на %зца! Ваз1с, который, в свою очередь, отличается от формата файла, созданного программой на С++.
В результате, оперативно комоинировать или сравнивать файлы оказывается невозможно. Пусть, например, в файле под названием Г!1~-А хранятся данные о клиенте, содержащие поле Номер Клиента, а в файле под названием Г!сс-В хранятся данные об аренде, также содержаьчие пол Н Кл . П е омер иента. Пусть нам требуется скомбинировать записи, у которых знач н е ие этого поля одинаково. Если г аммой на С++, т Г!Е-А обрабатывается программой на Ъ'1зца1 Ваз1с, а ГТ1Е-В об абат граммой на ++, то прежле чем мы сможем комбинировать записи из пих, нам прилется преобразовать оба файла к некоторому б .
ф времени, а иногда вызывает затруднения. С увеличением ением количества комбинируемых файлов растет и число таких проблем. Т рудность представления данных в удобном для пользователя виде В системе об аботки файл пол . р ф . ов нелегко представить данные в естествен ьзователя виде. Пользователи хотят видеть ла венном лля нные о аренде в формате, анаб логичном изображенному на рис. 1.5, б. Но для т б лля того что ы вывести данные в таком виде, необходимо извлечь данные из нес ол ф ".
к . эких файлов, скомбинировать их ля в том, что в системах оои представить вместе, Причина возникшего затрудненн б работки файлов связи между загисямп не представл ены в явной форме и це обрабатываются. Поскольку система обработки файло в не может ыстро определить, б какие клиенты взяли напрокат какие ипструме т и ы, то создание отчета, демонстрирующего, например, предпочтения клиента, представ дставляется краине трудной эадачеи. Системы обработки баз данных юлогия баз данных была разраб ого, что ы преодолеть ограничения, свойственные системам обработки файло .
Ч лов. тооы понять, каким образом это было сделано, сравните систему обработки ", " ( .. об аботкн фаилов (см. рис. 1.8) с системой о ра откн базы данных (дасаЬазе ргосезгйпй хужею) (см. рнс. 1.?). Программы обработки файлов обращаются непосредственно к ф " . В к файлам данных. В отличие от них, программы обработки баз данных для доступа к данным вызывают СУБД.
Это отличие важно тем, что оно упрощает прикладное программирование: программистам больше не нужно задумываться о, ф . том, как физически организовано хранение данных, и они могут смело сконцентрировать аться на вопросах, представляющих важность для пользователя, а не для компь ютерной системы. 38 Глава 1. Введение в базы данных Определение термина «база данных 39 Данные интегрированы В системе базы данн в ых се данные хранятся в едином месте, называемом базой данных. Прикладная программа может попросить СУБД обратиться к данным о клиентах или о продаж дажах, или к тем и другим.
Если нужны данные обоих типов, программист залает тольк о ко сгюсоб комбинирования данных, а СУБД выполняет все необходимые для это го операции. Таким образоьк в задачи программиста не входит написание пр ограмм для объединения данных, что требовалось для системы на рис. 1.8. Меньшее количество дублирующихся данных х дублирование данных минимально. Например, для базы данных В базе данных ду . бюро ТгеЫе С!е1 Мцз)с номер, имя и адрес клиента записываются только один раз, Когда этн данные потребуются, СУБД может получить их, а для их модификации неооходимо у будет только одно обновление. Поскольку данные хранятся в одном месте, про ле б мы их целостности стоят не так остро: вероятность разночтений между нес колькими копиями одного и того же элемента данных снижается.