|
Дадим основное определение. База данных - это реализованная с помощью компьютера информационная структура (модель), отражающая состояние объектов и их отношения. Следует учесть, что это определение не является единственно возможным. Информатика в отношении определений чаще всего не похожа на математику с ее полной однозначностью. Если подойти к понятию “база данных” с чисто пользовательской точки зрения, то возникает другое определение: база данных - совокупность хранимых операционных данных некоторого предприятия. Все дело в том, какой аспект доминирует в рассмотрении; в данной главе первое из определений более уместно. Поскольку основу любой базы данных составляет информационная структура, базы данных делят на три рассмотренные выше типа: табличные (реляционные), сетевые, иерархические. Опыт использования баз данных позволяет выделить общий набор их рабочих характеристик: • полнота - чем полнее база данных, тем вероятнее, что она содержит нужную информацию (однако, не должно быть избыточной информации); • правильная организация - чем лучше структурирована база данных, тем легче в ней найти необходимые сведения; • актуальность - любая база данных может быть точной и полной, если она постоянно обновляется, т.е. необходимо, чтобы база данных в каждый момент времени полностью соответствовала состоянию отображаемого ею объекта; • удобство для использования - база данных должна быть проста и удобна в использовании и иметь развитые методы доступа к любой части информации. Соответственно возможностям организации реляционных, иерархических и сетевых информационых структур, существуют и аналогичные виды баз данных. В них данные представлены в формах, адекватных соответствующим структурам. Однако иерархические и сетевые базы данных являются гораздо менее распространенными, чем реляционные и не могут быть реализованы с помощью наиболее популярных СУБД, входящих в состав программного обеспечения ЭВМ, поэтому на них далее останавливаться не будем. Реляционные базы данных Наиболее распространенными в практике являются реляционные базы данных. Название “реляционная” (в переводе с английского relation - отношение) связано с тем, что каждая запись в таблице содержит информацию, относящуюся только к одному конкретному объекту. Всякое отношение должно иметь свое имя. Пусть есть отношение с названием “Альбомы группы”. В этом случае структура базы данных, состоящая из одной таблицы, запишется так: Альбомы группы (название альбома, год выпуска, тип альбома, фирма). Однако чаще база данных строится на основе нескольких таблиц, связанных между собой через общие атрибуты. Пусть, например, в базе данных “Рок-энциклопедия” содержатся две таблицы - 2, а и 2, б. Таблица 2, а Музыкальные альбомы групп | Код альбома | Код группы | Название альбома | Год выпуска | Тип альбома | Фирма | | 25 | 1 | Help! | 1965 | Lp (English) | Pariophone | | 36 | 2 | Led Zeppelin 4 | l97l | Lp | Atlantic | | 35 | 2 | Led Zeppelin 4 - | 1970 | Lp | Atlantic | | 34 | 3 | Flash Gordon | 1980 | Soundtrack | EMI | Таблица 2, б Рок группы | Код группы | Название группы | Страна | Дата создания | Дата распада | | 1 | The Bealles | Англия | 1963 | I970 | | 2 3 | Led Zeppelin 4 Flash Gordon | Англия Англия | 1989 199I | - - | Эти две таблицы связаны между собой общим полем “Код группы”. Поле “Код альбома” в таблице 2, а создается для того, чтобы отличать альбомы друг от друга. Это очень важно, так как в таблице могут находиться альбомы с одинаковыми названиями. Необходимость использования больше одной таблицы станет заметной, если объединить эти таблицы в одну (табл. 2.4). Таблица 3. Объединение таблиц 2 | Название группы | Страна | Дата создания | Дата распада | Название альбома | Год выпуска | Тип альбома | Фирма | | | | | | | | | | | The Beatles | Англия | 1963 | I970 | With the Beatles | 1963 | Lp | Pariophone | | The Beatles | Англия | 1963 | I970 | Please, please me | 1963 | Lp | Pariophone | | The Beatles | Англия | 1963 | I970 | Rubber soul | 1963 | Lp | Pariophone | Из таблицы 3 видно, что при внесении в нее данных об альбомах определенной группы каждый раз приходится дублировать информацию первых четырех полей таблицы. Многократное сохранение в БД одних и тех же данных (название группы, страна, дата создания, дата распада) приведет к неэффективному использованию памяти, к тому же существенно возрастет вероятность ошибок при вводе данных. Разбив же данные по таблицам, можно в значительной степени избежать этих трудностей. Через связь, определенную между этими таблицами, можно узнать • сколько альбомов выпустила группа; • выпускались ли альбомы у фирмы EMI; • в каком году было выпущено максимальное количество альбомов и т.п. Реляционные базы данных удобны еще и тем, что для получения ответов на различные запросы существует разработанный математический аппарат, который называется исчислением отношений или реляционной алгеброй. Ответы на запросы получаются путем “разрезания” и “склеивания” таблиц по строкам и столбцам. При этом ясно, что ответы также будут иметь форму таблиц. Надо отметить, что база данных - это, собственно, хранилище информации и не более того. Однако, работа с базами данных трудоемкая и утомительная. Для создания, ведения и осуществления возможности коллективного пользования базами данных используются программные средства, называемые системами управления базами данных (СУБД). Состав и функции систем управления базами данных База данных предполагает наличие комплекса программных средств, обслуживающих эту базу данных и позволяющих использовать содержащуюся в ней информацию. Такие комплексы программ называют СУБД. СУБД - это программная система, поддерживающая наполнение и манипулирование данными, представляющими интерес для пользователей при решении прикладных задач. Иными словами, СУБД является интерфейсом между базой данных и прикладными задачами. Ниже перечислены основные функции СУБД. 1. Определение данных - определить, какая именно информация будет храниться в базе данных, задать свойства данных, их тип (например, число цифр или символов), а также указать, как эти данные связаны между собой. В некоторых случаях есть возможность задавать форматы и критерии проверки данных. 2. Обработка данных - данные могут обрабатываться самыми различными способами. Можно выбирать любые поля, фильтровать и сортировать данные. Можно объединять данные с другой, связанной с ними, информацией и вычислять итоговые значения. 3. Управление данными - можно указать, кому разрешено знакомиться с данными, корректировать их или добавлять новую информацию. Можно также определять правила коллективного доступа. Входящие в состав современных СУБД средства совместно выполняют следующие функции: • описание данных, их структуры (обычно описание данных и их структуры происходит при инициировании новой базы данных или добавлении к существующей базе новых разделов (отношений); описание данных необходимо для контроля корректности использования данных, для поддержания целостности базы данных); • первичный ввод, пополнение информации в базе данных; • удаление устаревшей информации из базы данных; • корректировку данных для поддержания их актуальности; • упорядочение (сортировку) данных по некоторым признакам; • поиск информации по некоторым признакам (для описания запросов имеется специальный язык запросов, он обеспечивает также интерфейс между базой данных и прикладными программами пользователей, позволяет этим программам использовать базы данных); • подготовку и генерацию отчетов (средства подготовки отчетов позволяют создавать и распечатывать сводки по заданным формам на основе информации базы данных); • защиту информации и разграничение доступа пользователей к ней (некоторые разделы базы данных могут быть закрыты для пользователя совсем, открыты только для чтения или открыты для изменения; кроме того, при многопользовательском режиме работы с базой данных необходимо, чтобы изменения вносились корректно; для сохранения целостности данных служит механизм трансакций при манипулировании данными - выполнение манипуляций небольшими пакетами, результаты каждого из которых в случае возникновения некорректности операций “откатываются” и данные возвращаются к исходному состоянию); • резервное сохранение и восстановление базы данных, которое позволяет восстановить утраченную при сбоях и авариях аппаратуры информацию базы данных, а также накопить статистику работы пользователей с базой данных; • поддержку интерфейса с пользователями, который обеспечивается средствами ведения диалога (по мере развития и совершенствования СУБД этот интерфейс становится все более дружественным; дружественность существующих средств интерфейса предполагает • наличие развитой системы помощи (подсказки), к которой в любой момент может обратиться пользователь, не прерывая сеанса работы с компьютером и базой данных; • защиту от необдуманных действий, предупреждающую пользователя и предотвращающую потерю информации в случае поспешных или ошибочных команд; • наличие нескольких вариантов выполнения одних и тех же действий, из которых пользователь может выбрать наиболее удобные для себя, соответствующие его подготовке, квалификации, привычкам; • тщательно продуманную систему ведения человеко-машинного диалога, отображение информации на дисплее, использование клавиш клавиатуры). В настоящее время выделяют пять уровней проблематики систем управления базами данных: • реляционные базы данных, 1970 - 90 гг.; • объектно-ориентированные базы данных, 1980 - 90 гг.; • интеллектуальные базы данных, 1985 - 90 гг.; • распределенные базы данных, начало 1990 гг.; • базы данных мультимедиа и виртуальной реальности настоящего времени. Архитектурно СУБД состоит из двух основных компонентов; языка описания данных (ЯОД), позволяющего создать схему описания данных в базе, и языка манипулирования данными (ЯМД), выполняющего операции с базой данных (наполнение, обновление, удаление, выборку информации). Данные языки могут быть реализованы в виде тренажеров или интерпретаторов. Помимо ЯОД и ЯМД к СУБД следует отнести средства (или языки) подготовки отчетов (СПО), позволяющие подготовить сводки (отчеты) на основе информации, найденной в базе данных, по заданным формам. Язык описания данных (ЯОД) - это язык высокого уровня декларативного (непроцедурного) типа, предназначенный для формализованного описания типов данных, их структур и взаимосвязей. Исходные тексты описания данных на этом языке после трансляции отображаются в управляющие таблицы, задающие размещение в памяти ЭВМ и связи между собой рассматриваемых данных. В соответствии с этими описаниями СУБД находит в базе требуемые данные, правильно преобразует их и передает, например, в прикладную программу пользователя, которой они потребовались. При записи данных в базу СУБД по этим описаниям определяет место в памяти ЭВМ, куда их требуется поместить, преобразует к заданному виду и устанавливает необходимые связи. Язык манипулирования данными (или язык запросов) представляет собой систему команд, например, следующего типа: • произвести выборку данного, значение которого удовлетворяет заданным условиям; • произвести выборку всех данных определенного типа, значения которых удовлетворяют заданным условиям; • найти в базе позицию данного и поместить туда новое значение (или удалить данное) и т.д. Широкое распространение имеют СУБД для персональных компьютеров типа DBASE (DBASE III, IV, FoxPro, Paradox), Clipper, Clarion. Эти СУБД ориентированы на однопользовательский режим работы с базой данных и имеют очень ограниченные возможности. Языки подобных СУБД представляют собой сочетание команд выборки, организации диалога, генерации отчетов. В связи с развитием компьютерных сетей, в которых персональные компьютеры выступают в качестве развитых (интеллектуальных) терминалов, новые версии СУБД все в большей степени включают в себя возможности описанного ниже языка манипулирования данными SQL. В последнее время стали среди СУБД популярными ACCESS (входит в состав MS Office), Lotus, Oracle.
|