Базы данных. 14
Введение
Базы данных использовались в вычислительной технике с незапамятных времен. В первых компьютерах использовались два вида внешних устройств – магнитные ленты и магнитные барабаны. Емкость магнитных лент была достаточно велика. Устройства для чтения-записи магнитных лент обеспечивали последовательный доступ к данным. Для чтения информации, которая находилась в середине или конце магнитной ленты, необходимо было сначала прочитать весь предыдущий участок. Следствием этого являлось чрезвычайно низкая производительность операций ввода-вывода данных во внешнюю память. Магнитные барабаны давали возможность произвольного доступа, но имели ограниченный объем хранимой информации.
Разумеется, говорить о какой-либо системе управления данными во внешней памяти, в тот момент не приходилось. Каждая прикладная программа, которой требовалось хранить данные во внешней памяти, сама определяла расположение каждого блока на магнитной ленте. Прикладная программа также брала на себя функции информационного обмена между оперативной памятью и устройствами внешней памяти с помощью программно-аппаратных средств низкого уровня. Такой режим работы не позволяет или очень затрудняет поддержку на одном носителе нескольких архивов долговременно хранимой информации. Кроме того, каждой прикладной программе приходилось решать проблемы именования частей данных и структуризации во внешней памяти.
История БД фактически началась с появлением магнитных дисков. Такие устройства внешней памяти обладали существенно большей емкостью, чем магнитная лента и барабаны, а также обеспечивали во много раз большую скорость доступа в режиме произвольной выборки. В отличие от современных систем управления, которые могут применяться для самых различных баз данных, подавляющее большинство ранее разработанных СУБД были тесно связаны с пользовательской базой для того, чтобы увеличить скорость работы, хоть и в ущерб гибкости.
Первоначально СУБД применялись только в крупных организациях с мощной аппаратной поддержкой, необходимой для работы с большими объемами данных.
Современные авторы часто употребляют термины "банк данных" и "база данных" как синонимы, однако в общеотраслевых руководящих материалах по созданию банков данных Государственного комитета по науке и технике (ГКНТ), изданных в 1982 г., эти понятия различаются.
Там приводятся следующие определения банка данных, базы данных и СУБД:
Банк данных (БнД) - это система специальным образом организованных данных - баз данных, программных, технических, языковых, организационно-методических средств, предназначенных для обеспечения централизованного накопления и коллективного многоцелевого использования данных.
База данных (БД) - именованная совокупность данных, отражающая состояние объектов и их отношений в рассматриваемой предметной области.
Система управления базами данных (СУБД) - совокупность языковых и программных средств, предназначенных для создания, ведения и совместного использования БД многими пользователями.
1.Основные понятия баз данных
В современных базах данных хранятся не только данные, но и информация.
База данных (БД)– организованная структура, предназначенная для хранения информации. Современные БД позволяют размещать в своих структурах не только данные, но и методы (т.е. программный код), с помощью которых происходит взаимодействие с потребителем или другими программно-аппаратными комплексами.
Системы управления базами данных (СУБД) – комплекс программных средств, предназначенных для создания структуры новой базы, наполнения ее содержанием, редактирования содержимого и визуализации информации. Под визуализацией информации базы понимается отбор отображаемых данных в соответствии с заданным критерием, их упорядочение, оформление и последующая выдача на устройство вывода или передача по каналам связи.
Существует много систем управления базами данных. Они могут по-разному работать с разными объектами и предоставляют пользователю разные функции и средства. Большинство СУБД опираются на единый устоявшийся комплекс основных понятий.
2.Классификация
В зависимости от архитектуры построения системы управления базами СУБД могут подразделяться на следующие типы:
-Иерархические
-Сетевые
-Табличные
Иерархический тип
Окружающий мир переполнен иерархическими данными. Любая группа объектов, в которой один объект может быть «родителем» для произвольного числа других объектов, организована в виде иерархического дерева. При работе с иерархиями используется «семейная» терминология (родители, внуки, предки, потомки), поскольку семья является самым распространённым примером объектов (в данном случае – людей), объединённых иерархическими отношениями. В то же время место объекта в иерархическом дереве - не более чем условное обозначение связи с другими объектами. Иерархическая структура всего лишь помогает сохранить и найти объект.
Иерархические модели имеют древовидную структуру, где каждому узлу соответствует один сегмент, представляющий собой поименованный линейный кортеж полей данных. Каждому сегменту соответствует один входной и несколько выходных сегментов. Каждый элемент структуры лежит на единственном иерархическом пути, начинающемся от корневого. Иерархические базы данных наиболее пригодны для моделирования структур, по своей природе являющихся иерархическими. В качестве примеров можно привести воинские подразделения или сложные механизмы, состоящие из более простых узлов, которые в свою очередь тоже можно подвергнуть декомпозиции. Тем не менее существует значительное количество организаций, не сводящихся к простой иерархии. В этой модели запрос, направленный вниз по иерархии, прост, однако запрос, направленный вверх по иерархии, более сложен. К достоинствам иерархической модели данных относятся эффективное использование памяти ЭВМ и неплохие показатели времени выполнения основных операций над данными. Иерархической базой данных является файловая система, состоящая из корневой директории, в которой имеется древовидная структура поддиректорий и файлов.
Организация данных в СУБД
иерархического типа определяется в терминах: элемент, агрегат, запись (группа),
групповое отношение, база данных.
Атрибут (элемент данных) - наименьшая единица структуры данных. Обычно каждому элементу при описании базы данных присваивается уникальное имя. По этому имени к нему обращаются при обработке. Элемент данных также часто называют полем.
Запись - именованная совокупность атрибутов. Использование записей позволяет за одно обращение к базе получить некоторую логически связанную совокупность данных. Именно записи изменяются, добавляются и удаляются. Тип записи определяется составом ее атрибутов. Экземпляр записи - конкретная запись с конкретным значением элементов
Групповое отношение - иерархическое отношение между записями двух типов. Родительская запись (владелец группового отношения) называется исходной записью, а дочерние записи (члены группового отношения) - подчиненными. Иерархическая база данных может хранить только такие древовидные структуры.
Корневая запись каждого дерева обязательно должна содержать ключ с уникальным значением. Ключи некорневых записей должны иметь уникальное значение только в рамках группового отношения. Каждая запись идентифицируется полным сцепленным ключом, под которым понимается совокупность ключей всех записей от корневой по иерархическому пути.
При графическом изображении групповые
Для групповых отношений в иерархической
Структурная часть иерархической модели
Основными информационными
единицами в иерархической
Как и сетевая, иерархическая модель данных базируется на графовой форме построения данных, и на концептуальном уровне она является просто частным случаем сетевой модели данных. В иерархической модели данных вершине графа соответствует тип сегмента или просто сегмент, а дугам — типы связей предок — потомок. В иерархических структуpax сегмент — потомок должен иметь в точности одного предка.
Иерархическая модель представляет собой связный неориентированный гpaф древовидной структуры, объединяющий сегменты. Иерархическая БД состоит из упорядоченного набора деревьев.
Недостатки
К основным недостаткам
иерархических моделей следует отнести:
неэффективность, медленный доступ к сегментам данных
нижних уровней иерархии, четкая ориентация
на определенные типы запросов и др. Также недостатком
Сетевые базы данных
Сетевая модель расширяет иерархическую модель, позволяя группировать связи между записями в множества. С логической точки зрения связь — это не сама запись. Связи лишь выражают отношения между записями. Как и в иерархической модели, связи ведут от родительской записи к дочерней, но на этот раз поддерживается множественное наследование.
Следуя спецификации CODASYL, сетевая модель поддерживает DDL (Data Definition Language — язык определения данных) и DML (Data Manipulation Language — язык обработки данных). Это специальные языки, предназначенные для определения структуры базы данных и составления запросов. Несмотря на их наличие, программист по-прежнему должен знать структуру базы данных.
В сетевой модели допускаются отношения "многие ко многим", а записи не зависят друг от друга. При удалении записи удаляются и все ее связи, но не сами связанные записи.
В сетевой модели требуется, чтобы связи устанавливались между существующими записями во избежание дублирования и искажения целостности. Данные можно изолировать в соответствующих таблицах и связать с записями в других таблицах.
Программисту не нужно
заботиться о том, как организуется
физическое хранение данных на диске.
Это ослабляет зависимость
Оптимальную структуру
базы данных сложно сформировать, а
готовую структуру трудно менять.
Если вид таблицы претерпевает изменения,
все отношения с другими
Примеры сетевых СУБД: СООБЗ Cerebrum, ИСУБД CronosPRO[2], dbVista, Cache, GT.M
Сетевая БД состоит из набора записей и набора связей между этими записями. На формирование связи особых ограничений не накладывается. В иерархических структурах запись-потомок должна иметь в точности одного предка, а в сетевой структуре данных потомок может иметь любое число предков.
Достоинства
Достоинством сетевой модели данных
является возможность эффективной
реализации по показателям затрат памяти
и оперативности. В сравнении
с иерархической моделью
1. обработка больших объемов
информации (возможность построения
на основе таких СУБД «
2. поддержка аналитической обработки данных;
3. эффективная реализация обработки данных по показателям затрат памяти и оперативности.
Недостатки
Пользователи сетевых СУБД ограничены связями, определенными для них разработчиками БД-приложений. Подобно иерархическим, сетевые СУБД предполагают разработку БД приложений опытными программистами и системными аналитиками.
Также к недостаткам
сетевой модели данных относится
высокая сложность и жесткость
схемы БД, построенной на ее основе,
а также сложность для
Табличные базы данных.
Табличная база данных содержит перечень объектов одного типа, т. е. объектов с одинаковым набором свойств. Такую базу данных удобно представлять в виде двумерной таблицы.
Рассмотрим, например, базу данных «Компьютер» (табл.), представляющую собой перечень объектов (компьютеров), каждый из которых имеет имя (название). В качестве характеристик (свойств) могут выступать тип процессора и объем оперативной памяти.
Столбцы такой таблицы называют полями; каждое поле характеризуется своим именем (названием соответствующего свойства) и типом данных, отражающих значения данного свойства. Поля Название и Тип процессора — текстовые, а Оперативная память — числовое. При этом каждое поле обладает определенным набором свойств (размер, формат и др.). Так, для поля Оперативная память задан формат данных целое число.
Поле базы данных — это столбец таблицы, включающий в себя значения определенного свойства.
Строки таблицы являются записями об объекте; эти записи разбиты на поля столбцами таблицы. Запись базы данных — это строка таблицы, которая содержит набор значений различных свойств объекта.
В каждой таблице должно быть, по крайней мере, одно ключевое поле, содержимое которого уникально для любой записи в этой таблице. Значения ключевого поля однозначно определяют каждую запись в таблице.
3 Режимы работы с базами данных
Обычно с БД работают две категории исполнителей:
• Проектировщики – разрабатывают структуру таблиц базы и согласовывают ее с заказчиком; разрабатывают объекты, предназначенные для автоматизации работы и ограничения функциональных возможностей работы с базой (из соображений безопасности);
• Пользователи – работают с базами данных, наполняют ее и обслуживают.
СУБД имеет два режима:
проектировочный и
В проектировочном режиме создаются и изменяются структура базы и ее объекты. В пользовательском используются ранее подготовленные объекты для наполнения БД или получения данных из нее.
4 Объекты базы данных
БД может содержать разные типы объектов. Каждая СУБД может реализовывать свои типы объектов.
Таблицы – основные объекты любой БД, в которых хранятся все данные, имеющиеся в базе, и хранится сама структура базы (поля, их типы и свойства).
Отчеты – предназначены для вывода данных, причем для вывода не на экран, а на печатающее устройство (принтер). В них приняты специальные меры для группирования выводимых данных и для вывода специальных элементов оформления, характерных для печатных документов (верхний и нижний колонтитулы, номера страниц, время создания отчета и другое).
Страницы или страницы доступа к данным – специальные объекты БД, выполненные в коде HTML , размещаемые на web -странице и передаваемые клиенту вместе с ней. Сам по себе объект не является БД, посетитель может с ее помощью просматривать записи базы в полях страницы доступа. Т.о., страницы – интерфейс между клиентом, сервером и базой данных, размещенным на сервере.
Макросы и модули – предназначены для автоматизации повторяющихся операций при работе с системой управления БД, так и для создания новых функций путем программирования. Макросы состоят из последовательности внутренних команд СУБД и являются одним из средств автоматизации работы с базой. Модули создаются средствами внешнего языка программирования. Это одно из средств, с помощью которых разработчик БД может заложить в нее нестандартные функциональные возможности, удовлетворить специфические требования заказчика, повысить быстродействие системы управления, уровень ее защищенности.
5 Запросы и формы
Запросы – служат для извлечения данных из таблиц и предоставления их пользователю в удобном виде. С их помощью выполняют отбор данных, их сортировку и фильтрацию. Можно выполнить преобразование данных по заданному алгоритму, создавать новые таблицы, выполнять автоматическое заполнение таблиц данными, импортированными из других источников, выполнять простейшие вычисления в таблицах и многое другое.
Особенность запросов состоит в том, что они черпают данные из базовых таблиц и создают на их основе временную результирующую таблицу ( моментальный снимок ) – образ отобранных из базовых таблиц полей и записей. Работа с образом происходит быстрее и эффективнее, нежели с таблицами, хранящимися на жестком диске.
Обновление БД тоже можно
осуществить посредством
Формы – средства для ввода данных, предоставляющие пользователю необходимые для заполнения поля. В них можно разместить специальные элементы управления (счетчики, раскрывающиеся списки, переключатели, флажки и прочее) для автоматизации ввода. Пример, заполнение определенных полей бланка. При выводе данных с помощью форм можно применять специальные средства их оформления.
6 Системы программирования. Понятие системы программирования
Система программирования – инструментальное ПО, предназначенное для поддержки разработки программных систем на этапах программирования и отладки. Каждая система программирования должна иметь некоторый встроенный в нее язык программирования, предназначенный для общения с человеком – разработчиком программной системы.
В самом общем случае для создания программы на выбранном языке программирования нужно иметь следующие компоненты .
1. Текстовый редактор . Т.к. текст программы записывается с помощью слов, происходящих от английского языка, и символов для записи всевозможных операций, то формировать файл с исходным текстом программы можно в любом редакторе. Специализированные редакторы ориентированы на конкретный язык программирования. Подобные редакторы созданы для всех популярных языков программирования и дополнительно могут автоматически проверять правильность синтаксиса программы непосредственно во время ее ввода.
2. Компилятор . Исходный текст с помощью программы-компилятора переводится в машинный код.
На этом этапе создается промежуточный объектный код (двоичный файл, стандартное решение . OBJ ).
3. Редактор связей и библиотеки функций . Исходный текст большой программы, как правило, состоит из нескольких модулей. Каждый модуль состоит отдельный файл с объектным кодом, которые затем нужно объединить в единое целое. К ним нужно добавить машинный код подпрограмм, реализующих различные стандартные функции (например, вычисление sin и cos ). Такие функции содержатся в библиотеках (файлы с расширением . LIB ), которые поставляются вместе с компилятором.
Объектный код обрабатывается специальной программой – редактором связей или сборщиком , который выполняет связывание объектных модулей и машинного кода стандартных функций, находя их в библиотеках, и формирует на выходе работоспособное приложение – исполнимый код для конкретной платформы.
Если по каким-то причинам объектный модуль или нужная библиотека не найдены, то сборщик сообщает об ошибке и готовой программы не получается.
4. Исполнимый код – это законченная программа, которую можно запустить на любом компьютере, где установлена операционная система, для которой эта программа создавалась. Как правило, итоговый файл имеет расширение . EXE или . COM .
7 Экспертные системы
Экспертная система (ЭС) – expert system - особый класс систем искусственного интеллекта, включающий знания об определённой слабо структурированной и трудно формализуемой узкой предметной области и способная предлагать и объяснять разумные решения. Ее основным назначением является: интерпретация данных, диагностика состояния, мониторинг, прогнозирование, планирование и обучение. Все эти задачи по существу сводятся к распознаванию образов.
ЭС – интеллектуальная система, предназначенная для оказания консультационной помощи специалистам, работающим в некоторой предметной области. Выделяют два типа экспертных систем.
ЭС первого типа . Предназначены для специалистов, чей профессиональный уровень не слишком высок. В базах знаний таких систем содержатся знания, полученные от специалистов экстра-класса.
ЭС второго типа . Предназначены для специалистов высокой квалификации, выполняя для них значительную часть рутинных операций и просмотр больших массивов информации. В экспертной системе обязательно присутствует система объяснений.
Системы управления базами данных позволяют объединять большие объемы информации и обрабатывать их, сортировать, делать выборки по определенным критериям и т. п.
8.История развития СУБД
Рост производительности персональных вычислительных машин спровоцировал развитие СУБД, как отдельного класса. К середине 60-х годов прошлого века уже существовало большое количество коммерческих СУБД. Интерес к базам данных увеличивался все больше, так что данная сфера нуждалась в стандартизации. Автор комплексной базы данных Integrated Data Store Чарльз Бахман (Charles Bachman) организовал целевую группу DTG (Data Base Task Group) для утверждения особенностей и организации стандартов БД в рамках CODASYL - группы, которая отвечала за стандартизацию языка программирования COBOL. Уже в 1971 году был представлен свод утверждений и замечаний, который был назван Подход CODASYL, и спустя некоторое время появились первые успешные коммерческие продукты, изготовленные с учетом замечаний вышеупомянутой рабочей группы. В 1968 году отметилась и компания IBM, которая представила собственную СУБД gпод названием IMS. Фактически данный продукт представлял собой компиляцию утилит, которые использовались с системами System/360 на шаттлах Аполлон. Решение было разработано согласно коцпетам CODASYL, но при этом была применена строгая иерархия для структуризации данных. В свою очередь в варианте CODASYL за базис была взята сетевая СУБД. Оба варианта, меж тем, были приняты сообществом позднее как классические варианты организации работы СУБД, а сам Чарльз Бахман в 1973 году получил премию Тьюринга за работу Программист как навигатор. В 1970 году сотрудник компании IBM Эдгар Кодд, работавший в одном из отделений Сан Хосе (США), в котором занимались разработкой систем хранения, написал ряд статей, касающихся навигационных моделей СУБД. Заинтересовавшись вопросом он разработал и изложил несколько инновационных подходов касательно оптимальной организаци систем управления БД. Работа Кодда внесла значительный вклад в развитие СУБД и является действительным основоположником теории реляционных баз данных. Уже 1981 году Э.Ф.Кодд создал реляционную модель данных и применил к ней операции реляционной алгебры.
Заключение
Преимущества использования БД
Рассмотрим, какие преимущества получает пользователь при использовании БД как безбумажной технологии:
- Компактность
Информация хранится в БД, нет необходимости хранить многотомные бумажные картотеки
- Скорость
Скорость обработки информации (поиск, внесение изменений) компьютером намного выше ручной обработки
- низкие трудозатраты
Нет необходимости в утомительной ручной работе над данными
- применимость
Всегда доступна свежая информация
Дополнительные преимущества появляются при использовании БД в многопользовательской среде, поскольку становится возможным осуществлять централизованное управление данными.
Современные системы управления базами данных обеспечивают как физическую (независимость от способа хранения и метода доступа), так и логическую независимость данных (возможность изменения одного приложения без изменения остальных приложений, работающих с этими же данными).
Современные СУБД дают возможность включать в них не только текстовую и графическую информацию, но и звуковые фрагменты и даже видеоклипы.
Простота использования СУБД позволяет создавать новые базы данных, не прибегая к программированию, а пользуясь только встроенными функциями. СУБД обеспечивают правильность, полноту и непротиворечивость данных, а также удобный доступ к ним.
Популярные СУБД - FoxPro, Access for Windows, Paradox. Для менее сложных применений вместо СУБД используются информационно-поисковые системы (ИПС), которые выполняют следующие функции:
- хранение большого объема информации;
- быстрый поиск требуемой информации;
- добавление, удаление и изменение хранимой информации;
- вывод ее в удобном для человека виде.
Список использованной литературы
Информатика. Базовый курс /Симонович С.В. и др. - СПб: Издательство «Питер», 2000. – 640с.
Информатика. Учебное пособие /Ломтадзе В.В., Шишкина Л.П. – Иркутск: ИрГТУ, 1999. – 116с.
Информатика. Учебное пособие /Под ред. В.Г. Кирия. – Иркутск: ИрГТУ, 1998 часть 2. – 382с.
