<<
>>

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

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

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

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

В 80-е гг. было разработано большое количество СУБД специ­ально для ПК. В нашей стране наибольшее распространение получили такие СУБД, как FoxBASE, dBASE III plus, R:Base, Paradox, а в конце восьмидесятых годов приобрел популярность пакет Clipper.

В 1991 г. начался новый этап в развитии СУБД для ПК, хотя основополагающие идеи этого этапа разрабатывались значительно раньше. Можно выде­лить три основные особенности нового этапа: распределенные базы данных, графический пользовательский интерфейс и архитектура «клиент-сервер». В 1993 г. первые СУБД этого нового поколения -­Microsoft Access, dBase IV получили широкое распространение среди пользователей персональных компьютеров.

В настоящее время фактическим стандартом систем управления базами данных для персональных компьютеров является СУБД Microsoft Access. Пакет Microsoft Access for Windows является мощ­ным средством управления базами данных, которое поддерживает реляционную модель данных и позволяет создавать сложные прило­жения на особом диалекте Visual BASIC (VBA). Microsoft Access мож­но применять для поиска и обработки всевозможных данных, а также для подготовки отчетных документов. Пользовательский интерфейс достаточно прост и предоставляет пользователю удобные возможно­сти для манипулирования базами данных.

В связи с бурным развитием сети Internet, которая является ги­гантской распределенной базой данных, возрос интерес к таким СУБД, как Oracle. В настоящее время эта система управления базами данных установлена на многих серверах Сети.

Реляционные базы данных. В подавляющем большинстве СУБД для персональных компьютеров информация организовывается в виде двухмерных таблиц и их называют реляционными базами данных.

Широкое распространение получил иерархический подход к ор­ганизации баз данных. Иерархические базы данных организовываются в виде деревьев, что предполагает неравноправие между данными - одни данные оказываются жестко подчинены другим. Такая организа­ция данных напоминает некоторые схемы построения баз знаний в экспертных системах и обеспечивает высокоэффективный поиск ин­формации. Однако иерархический подход к организации баз данных имеет и очевидные недостатки. Например, необходимо жестко опреде­лять связи между данными, что существенно усложняет организацию системы информации.

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

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

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

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

Как организовать информацию в реляционной базе данных, можно проиллюстрировать на примере базы BOOKS.MDB, созданной с помощью СУБД Microsoft Access 7.0. База BOOKS.MDB предназна­чена для хранения информации о книгах. Схема организации инфор­мации в этой базе показана на рис. 6.2.

Рис. 6.2. Схема данных базы BOOKS.MDB

База данных BOOKS.MDB состоит из 7 таблиц. Отношения между таблицами бывают трех типов: «один к одному», «один ко мно­гим» и «многие ко многим».

Пример отношения между таблицами Titles и Notes типа «один к одному» показан на рис. 6.3.

Рис. 6.3. Пример отношения между таблицами типа «один к одному»

В таблице Notes в полях типа MEMO хранятся примечания к

некоторым, но далеко не ко всем книгам. Поэтому, чтобы не перегру­

жать пустыми записями основную таблицу Titles, примечания вынесе-

ны в таблицу Notes. Связь между этими таблицами осуществляется по полям Book_Id. В любой таблице, как правило, хотя бы одно поле яв­ляется ключевым. Благодаря ключевым полям любой запрос к базе данных может быть оформлен в виде операций с таблицами и их по­лями (атрибутами), но не с их строками. Кроме того, ключевые поля используются для поддержки целостности реляционной базы данных. Таблица может иметь только один уникальный идентификатор, назы­ваемый первичным ключом (primary key), и несколько вторичных (внешних) ключей (foreign key), ссылающихся на первичные ключи других таблиц.

При этом внешние ключевые поля таблицы должны иметь одно из значений, определенное для первичных ключей. Так, значения внешнего ключа Book_Id таблицы Notes равны соответст­вующим значениям первичного ключа Book_Id таблицы Titles. Благо­даря этому устанавливается однозначное соответствие между полями таблиц, например: примечание в таблице Titles при Book_Id = 1 отно­сится к книге, для которой значение первичного ключа Book_Id табли­цы Titles равно также 1. Отношения типа «один ко многим» использу­ются, когда одной записи первой таблицы необходимо поставить в соответствие несколько записей второй таблицы. Например, случай, когда у одной книги два автора.

В действительности не только одна и та же книга может иметь несколько авторов, но и один и тот же человек может быть автором нескольких книг. Для описания такой ситуации приходится использо­вать связи, обеспечивающие отношения типа «многие ко многим» ме­жду записями таблиц. В этом случае связи между таблицами базы опи­сываются во вспомогательных таблицах (junction table) Tit_Auth и Tit_KeyW, которые связаны отношениями типа «один ко многим» с

другими таблицами. Следует отметить, что определять отношения ме­жду таблицами «вручную» - занятие трудоемкое. Этот процесс авто­матизируется с помощью макросов Microsoft Access или программы на Visual BASIC. Пример формы, которая позволяет одновременно ме­нять все таблицы базы BOOKS.MDB, показан на рис. 6.4. Программа, поддерживающая эту форму, написана на языке программирования Visual BASIC 5.0.

Поля «Номер», «Название книги:» и «Год:» заполняются из таблицы Titles. Поле «Издательство» заполняется из таблицы Publ, связанной с таблицей Titles отношениями типа «один ко многим». По­ле «Примечания» заполняется из таблицы Notes, связанной с таблицей Titles отношениями типа «один к одному». Список авторов и ключе­вых слов формируется на основе информации, хранящейся в таблицах

Authors и KeyWords соответственно. Предусмотрен также ввод новых фамилий или ключевых слов.

Рис. 6.4. Форма для ввода информации в базу BOOKS.MDB

При сохранении информации, введенной в форму рис. 6.4, в таблицу Tit_Auth добавляется столько записей, сколько авторов у кни­ги. При этом в поле Book_Id каждой новой записи копируется значе­ние первичного ключа таблицы Titles, а в поле Au_Id - значения пер­вичных ключей таблицы Authors. Название полей во вспомогательной таблице могут и не совпадать с названиями первичных ключей, но тип данных и размер этих полей должны совпадать обязательно. Таким образом, автоматически устанавливаются связи, показанные ломаными линиями на рис. 6.2. Обеспечение целостности данных достигается при установлении двух переключателей в меню СУБД Access - «Кас­кадное обновление связанных полей» и «Каскадное удаление связан­ных полей». Например, при установлении второго переключателя сти­рание записи о книге в таблице Titles приведет к стиранию записей в таблицах Tit_Auth и Tit_KeyW, для которых значение в поле Book_Id совпадает со значением ключевого поля удаленной записи. После это­го становится возможным удалить записи с фамилиями авторов книги и ключевыми словами, если на них нет ссылок из других записей таб­лицы Titles.

компьютерах, но и на больших ЭВМ. В рамках этой модели был раз­работан язык структурированных запросов SQL, который стал основ­ным средством для получения информации из реляционных баз дан­ных.

Структурированные запросы и поиск информации. Язык струк­турированных запросов SQL (Structured Query Language) был разрабо­тан корпорацией IBM в семидесятых годах, но всеобщее распростра­нение получил позднее, когда после появления компьютерных сетей потребовались стандартные языки для обмена информацией. Благода­ря своей независимости от специфики компьютера, а также поддержке лидерами в области технологии реляционных баз данных SQL стал стандартным языком. Синтаксис SQL похож на синтаксис английско­го языка и позволяет конструировать достаточно сложные запросы. SQL является непроцедурным языком, в нем отсутствуют многие стандартные для процедурных языков конструкции - функции, циклы, условные операторы. SQL состоит из инструкций, которые передаются СУБД, обеспечивая выполнение определенных действий. Эти инст­рукции в общем виде называются предложениями, но чаще использу­ется термин «команда SQL». Интерпретаторы команд SQL встраива­ются во многие процедурные языки программирования, такие как Visual BASIC, C/C++. В этом случае команда обычно формируется в виде строковой переменной. Например, на языке Visual BASIC для базы BOOKS.MDB можно сформировать следующую команду SQL, обеспечивающую формирование списка авторов книги в форме на рис. 6.4: sQry = «SELECT Authors.Author From Authors» & «INNER JOIN Tit_Auth ON Authors.Au_Id = Tit_Auth.Au_Id» & «WHERE ((Tit_Auth.Book_Id = « + txtNum.Text +»))», что означает запрос «Вы­брать из таблицы Authors все поля Author, содержащие фамилии авто­ров, для записей, в которых значение поля Au_Id совпадает со значе­нием поля Au_Id из таблицы Tit_Auth, при этом значение поля Book_Id таблицы Tit_Auth должно равняться значению ключевого поля табли­цы Titles». Значение ключевого поля таблицы Titles отображается в окошечке «Номер» формы на рис. 6.4.

Во многих пакетах команды SQL формируются автоматически из специальных меню или форм. В этих случаях команды SQL исполь­зуются в скрытом от пользователя виде. Примером такого использова­ния является язык запросов по образцу QBE, который, например, дос­таточно широко применялся в СУБД Paradox. Другим примером могут служить электронные таблицы Excel. В этих таблицах с помощью при­ложения MS-Query можно формировать различные запросы по образцу к базам данных форматов Access, dBASE, Parodox, FoxPro и других, доступ к которым осуществляется через интерфейс ODBS (Open Data Base Connectivity).

Архитектура «клиент-сервер». Распространение компьютерных сетей породило еще одну, кроме необходимости разработки стандар­тизованного языка запросов, проблему. Эта проблема возникает, когда несколько пользователей с разных компьютеров начинают изменять одну и ту же базу данных. До тех пор пока база данных открыта «только для чтения», особых трудностей не возникает, но, как только нескольким пользователям позволяется модифицировать базу, возни­кают трудно разрешимые конфликты. Эти проблемы разрешаются в рамках модели базы данных типа «клиент-сервер». При реализации этой модели система управления базами данных разделяется на две части -- «клиент» и «сервер». Программа «клиент» размещается на пользовательской машине и позволяет формировать запросы (как пра­вило, на языке SQL), которые по сети передаются на специализиро­ванную машину (часто называемую «сервером»), где работает про­грамма «сервер». Программа «сервер» обрабатывает запрос, формиру­ет из базы данных требуемую выборку записей и отсылает ее про­грамме «клиенту». Если пользователь предполагает изменять инфор­мацию в запрошенной выборке, доступ любого другого пользователя для модификации выбранных записей блокируется («монопольный захват»). Если пользователь запрашивает информацию «только для чтения», то доступ к выбранным записям не ограничивается («коллек­тивный захват»). Основной механизм, который позволяет избежать конфликтов между пользователями, заключается в разбиении процесса обработки информации на элементарные события -- группы команд SQL, которые могут выполняться (или не выполняться) только все вместе. Такие группы команд называются транзакциями. Транзакция начинается всякий раз, когда на вход «сервера» начинают поступать команды SQL, если никакая другая транзакция не является активной. Транзакция заканчивается либо командой внести изменения в базу данных, либо отказом от внесения изменений (откат). Если в процессе выполнения команд возникает какая-либо ошибка, автоматически вы­полняется откат и база данных остается в исходном состоянии.

Распределенные базы данных. Успехи модели баз данных типа «клиент-сервер» привели к очевидной идее, что не только обработку информации можно распределить между несколькими компьютерами, но и саму информацию хранить в разных местах. Поэтому в начале 90-х гг. все большую привлекательность для пользователей персо­нальных компьютеров стали приобретать распределенные базы дан­ных и соответственно СУБД, разработанные для больших ЭВМ. Со­временные информационные системы очень редко реализуются на одном персональном компьютере, и поэтому возникают проблемы ис­пользования данных, хранящихся на разных ЭВМ, с обеспечением при этом высокой надежности работы и защиты данных. Многолетний опыт решения таких проблем, накопленный при разработке СУБД для больших машин, широко используется при создании сетей из персо­нальных компьютеров. Под распределенной базой данных понимается логически единая база данных, которая размещается на нескольких ЭВМ. Гигантской распределенной базой данных является сеть Internet. Для пользователя любого из компьютеров, объединенных в сеть, в уз­лах которой распределена такая база данных, она выглядит как единое целое и одинаково доступна. При этом возникает много проблем с обеспечением целостности и непротиворечивости хранимых данных и, одновременно, приемлемого быстродействия прикладных программ, работающих с распределенной базой данных. Лишь в очень немногих системах управления базами данных (Sybase, Ingres, Informix) эти про­блемы решены в достаточном объеме, и самой известной из них явля­ется СУБД Oracle. В программное обеспечение этой СУБД входит од­на из наиболее полных реализаций языка структурированных запросов SQL, а также генераторы меню, отчетов и других экранных форм. Кроме того, программное обеспечение позволяет на основании ин­формации, хранящейся в СУБД, строить более 50 типов графиков и диаграмм. Oracle содержит очень надежную систему защиты данных, их целостности и непротиворечивости.

Мультимедиа. Термином «мультимедиа» (multimedia) обозна­чаются интерактивные компьютерные системы, обеспечивающие ра­боту с разнообразными типами данных -- неподвижными и движущи­ми изображениями, а также с текстом, речью и высококачественным звуком. В соответствующих базах данных хранится не только тексто­вая информация, но и оцифрованные видеоклипы, звуки и музыка, факсимильные изображения и многое другое. Современные системы управления мультимедийными базами данных поддерживают техноло­гию «клиент-сервер», описанную в предыдущем разделе, а сами базы данных оказываются распределенными по узлам всемирной компью­терной сети. Технология мультимедиа чаще всего используется в на­стоящее время в образовании - для создания обучающих программ, тренажеров, энциклопедий и справочников. На одном компакт-диске можно разместить тексты, изображения, звуки и видеоклипы, связан­ные в единую интерактивную систему, последовательность событий в которой определяется пользователем. Таким образом организованы обучающие программы.

6.2.

<< | >>
Источник: Толмачева Н.И., Шкляева Л.С.. Космические методы экологического мониторинга: учеб. пособие / Н.И. Толмачева, Л.С. Шкляева; Перм. ун­т.- Пермь,2006.- 296 с.. 2006

Еще по теме Базы данных и системы управления базами данных:

  1. Глава 11 Базы данных и система управления базами данных MS Access
  2. Системы управления базами данных
  3. Банки данных, базы данных, базы знаний
  4. Архитектура системы медицинской информационной системы на основе базы данных
  5. 3.5. Практическая реализация базы данных и базы знаний
  6. 3.2. Структура и принципы организации базы данных и базы знаний
  7. Базы данных
  8. §1. Эволюция понятия «базы данных» и его место в системе гражданскоправовых понятий
  9. БАЗЫ ДАННЫХ
  10. Право изготовителя базы данных
  11. § 5. Право изготовителя базы данных
  12. Базы данных потребителей