Базы данных и системы управления базами данных
Для манипулирования информацией (вводом, поиском) используются специальные пакеты программ, называемые системами управления базами данных (СУБД). Этот вид программного обеспечения в последние годы быстро совершенствуется.
С одной стороны, СУБД шире используются для манипулирования новыми типами информации (мультимедиа, географические информационные системы), с другой -- созданы новые технологии (архитектура «клиент-сервер», распределенные базы данных, гипертекст), которые позволяют обеспечить доступ к информации пользователей в рамках сети 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.
Еще по теме Базы данных и системы управления базами данных:
- Глава 11 Базы данных и система управления базами данных MS Access
- Системы управления базами данных
- Банки данных, базы данных, базы знаний
- Архитектура системы медицинской информационной системы на основе базы данных
- 3.5. Практическая реализация базы данных и базы знаний
- 3.2. Структура и принципы организации базы данных и базы знаний
- Базы данных
- §1. Эволюция понятия «базы данных» и его место в системе гражданскоправовых понятий
- БАЗЫ ДАННЫХ
- Право изготовителя базы данных
- § 5. Право изготовителя базы данных
- Базы данных потребителей