Базы данных – важнейшая
составная часть информационных систем. Информационные системы
предназначены для хранения и обработки больших объемов информации.
Любая информационная система
должна выполнять три основные функции:
-ввод данных,
-запросы по
данным,
-составление
отчетов.
Обслуживание информационных
систем, реализованных в письменном (бумажном) виде, сопряжено со многими
трудностями.
Предположим мы хотим собрать
информацию про альбомы музыкальных групп. Пусть имеется информация о некоторых
альбомах: 1965, Led Zeppelin
4, Lp,
Help!,
Atlantic,
1971. Lp(England), EMI.
1970, Flash Gordon, Parlophone, 1980, Led Zeppelin 3, Soundtrack, Lp, Atlantic.
Этот список мало о чем говорит.
Извлечь какую-либо информацию из этого набора данных практически невозможно.
Название
альбома
Год выпуска
Тип
Фирма
альбома
Help!
1965
Lp (England)
Parlophone
Led Zeppelin 4
1971
Lp
Atlantic
Led Zeppelin 3
1970
Lp
Atlantic
Flash Gordon
1980
Soundtrack
EMI
Теперь воспринимать и
использовать информацию стало гораздо удобнее. Представленная таблица является
информационной моделью. Объектами, отраженными в этой модели, являются
музыкальные альбомы (групп), причем все данные взаимосвязаны.
В информатике совокупность
взаимосвязанных данных называется информационнойструктурой, или
структурой данных.
В примере объектами модели
являются музыкальные альбомы. Свойства объектов называют атрибутами
объектов. Каждая строка таблицы – есть совокупность атрибутов объекта. Такую
строку называют записью, а столбец – полем записи.
Помимо сведений, указанных в
атрибутах, табличная организация данных позволяет получить дополнительную
информацию. Табличная организация данных называется реляционной.
Кроме табличной структуры
данных существуют другие виды структурной организации данных (иерархическая,
сетевая).
Для иерархических структур
характерна подчиненность объектов нижнего уровня объектам верхнего уровня. Важно
отметить, что в дереве, между верхними и нижними объектами, задано отношение
«один ко многим».
Рисунок 152 – Пример
иерархической структуры
Несмотря на то, что в
атрибутах, описывающих песню, нет названия альбома, глядя на дерево по линиям
связи можно сказать, какая песня принадлежит альбому. Благодаря линиям связи
можно определить принадлежность альбома группе. Из данной иерархической
структуры можно узнать:
-в каком альбоме
больше песен;
-число альбомов
выпущенных группой;
-есть ли в
альбомах одинаковые песни и т.д.
Сетевую структуру данных можно представить в
виде схемы. В этом случае есть два уровня взаимосвязанных объектов, но отношение
между ними «многие ко многим»
Рисунок 153 – Пример сетевой
структуры
Пусть в этой сетевой структуре
данные о музыкантах и «инструментах» состоят из следующих атрибутов: музыкант -
ФИО, рост, цвет волос, время рождения; инструмент- название инструмента, какой
фирмой изготовлен инструмент.
Тогда схема позволяет ответить
на следующие вопросы:
-гитары какой
фирмы предпочитает большинство музыкантов;
-какой музыкант
владеет наибольшим количеством инструментов и др.
Построение структуры данных
происходит в следующем порядке:
-определяются
объекты описания;
-определяются
структуры этих объектов;
-выбирается тип
структуры, отображающий отношения между объектами (табличная, иерархическая,
сети);
-строится
конкретная информационная структура.
База данных (БД)
– это реализованная с помощью компьютера информационная структура (модель),
отражающая состояние объектов и их отношения.
Определение не является
единственно возможным. Например, с чисто пользовательской точки зрения база
данных – совокупность хранимых операционных данных некоторого предприятия.
Поскольку основу любой базы
данных составляет информационная структура, базы данных делят на три
рассмотренные выше типа: табличные (реляционные), сетевые,
иерархические.
Характеристики баз данных:
-полнота
- чем полнее база данных, тем вероятнее, что она содержит нужную информацию
(однако, не должно быть избыточной информации);
-правильная
организация
- чем лучше структурирована база данных, тем легче в ней найти необходимые
сведения;
-актуальность -
любая база данных может быть точной и полной, если она постоянно обновляется,
т.е. необходимо, чтобы база данных в каждый момент времени полностью
соответствовала состоянию отображаемого ею объекта;
-удобство для
использования - база
данных должна быть проста и удобна в использовании и иметь развитые методы
доступа к любой части информации.
Реляционные БД
Доктор Е.Ф. Кодд предложил
реляционную модель баз данных в 1979 г.
Название «реляционная» (в
переводе с английского relation
- отношение) связано с тем, что каждая запись в таблице содержит информацию,
относящуюся только к одному конкретному объекту.
Всякое отношение должно иметь
свое имя.
Как правило база данных
строится на основе нескольких таблиц, связанных между собой через общие
атрибуты.
Музыкальные альбомы групп
Код альбома
Код группы
Название
альбома
Год выпуска
Тип альбома
Фирма
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
Рок группы
Код группы
Название группы
Страна
Дата создания
Дата распада
1
The Bealles
Англия
1963
I970
2
Led Zeppelin 4
Англия
1989
-
3
Flash Gordon
Англия
199I
-
Эти две таблицы связаны между
собой общим полем «Код группы». Поле «Код альбома» создается для того, чтобы
отличать альбомы друг от друга. Это очень важно, так как в таблице могут
находиться альбомы с одинаковыми названиями.
Объединение таблиц
Название группы
Страна
Дата
создания
Дата
распада
Название
альбома
Год
выпуска
Тип
альбома
Фирма
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
Реляционные базы данных удобны
еще и тем, что для получения ответов на различные запросы существует
разработанный математический аппарат, который называется исчислением
отношений или реляционной алгеброй.
Ответы на запросы получаются
путем «разрезания» и «склеивания» таблиц по строкам и столбцам. При этом ясно,
что ответы также будут иметь форму таблиц.
Реляционная база данных
– совокупность отношений или двумерных таблиц. Каждая таблица состоит из строк и
столбцов.
Рисунок 154 – Основные понятия
Каждая строка данных в таблице
однозначно идентифицируется главным ключом (PK). С помощью внешних ключей (FK)
можно логически связывать информацию из нескольких таблиц.
Рисунок 155 – Отношения
сущностей
Ограничения целостности данных:
-Сущности – ни
одна часть первичного ключа не может иметь неопределенного значения (NULL).
Значение должно быть определенным и уникальным.
-Ссылки – значение
внешнего ключа должно совпадать со значением первичного ключа или быть
неопределенным (NULL).
-Столбцы –
значения столбца должны соответствовать заданному типу данных.
-Пользовательские
ограничения – значения должны соответствовать правилам бизнеса.
СУБД
БД – это, собственно, хранилище
информации и не более того. Она предполагает наличие комплекса программных
средств, обслуживающих эту базу данных и позволяющих использовать содержащуюся в
ней информацию. Такие комплексы программ называют системы управления базами
данных (СУБД).
СУБД
– это программная система, поддерживающая наполнение и манипулирование данными,
представляющими интерес для пользователей при решении прикладных задач. Иными
словами, СУБД является интерфейсом между базой данных и прикладными задачами.
Основные функции СУБД:
1.Определение
данных - определить,
какая именно информация будет храниться в базе данных, задать свойства данных,
их тип, а также указать, как эти данные связаны между собой. В некоторых случаях
есть возможность задавать форматы и критерии проверки данных.
2.Обработка данных - данные могут
обрабатываться самыми различными способами. Можно выбирать любые поля,
фильтровать и сортировать данные. Можно объединять данные с другой, связанной с
ними, информацией и вычислять итоговые значения.
3.Управление
данными - можно
указать, кому разрешено знакомиться с данными, корректировать их или добавлять
новую информацию. Можно также определять правила коллективного доступа.
Входящие в состав современных
СУБД средства совместно выполняют следующие функции:
1.описание
данных, их структуры (обычно описание данных и их структуры происходит при
инициировании новой базы данных или добавлении к существующей базе новых
разделов (отношений); описание данных необходимо для контроля корректности
использования данных, для поддержания целостности базы данных);
2.первичный
ввод, пополнение
информации в базе данных;
3.удаление
устаревшей информации из базы данных;
4.корректировку
данных для поддержания их актуальности;
5.упорядочение
(сортировку) данных
по некоторым признакам;
6.поиск
информации по
некоторым признакам (для описания запросов имеется специальный язык запросов, он
обеспечивает также интерфейс между базой данных и прикладными программами
пользователей, позволяет этим программам использовать базы данных);
7.подготовку и
генерацию отчетов;
8.защиту
информации и
разграничение доступа пользователей к ней (разграничение доступа; кроме
того, при многопользовательском режиме работы с базой данных необходимо, чтобы
изменения вносились корректно; для сохранения целостности данных служит механизм
транзакций при манипулировании данными - выполнение манипуляций
небольшими пакетами, результаты каждого из которых в случае возникновения
некорректности операций «откатываются» и данные возвращаются к исходному
состоянию);
9.резервное
сохранение и восстановление
базы данных, которое позволяет восстановить утраченную при сбоях и авариях
аппаратуры информацию базы данных, а также накопить статистику работы
пользователей с базой данных;
10.поддержку
интерфейса с пользователями,
который обеспечивается средствами ведения диалога. По мере развития и
совершенствования СУБД этот интерфейс становится все более дружественным.
Дружественность существующих средств интерфейса предполагает:
-наличие развитой
системы помощи (подсказки), к которой в любой момент может обратиться
пользователь, не прерывая сеанса работы с компьютером и базой данных;
-защиту от
необдуманных действий, предупреждающую пользователя и предотвращающую потерю
информации в случае поспешных или ошибочных команд;
-наличие
нескольких вариантов выполнения одних и тех же действий, из которых пользователь
может выбрать наиболее удобные для себя, соответствующие его подготовке,
квалификации, привычкам;
-тщательно
продуманную систему ведения человеко-машинного диалога, отображение информации
на дисплее, использование клавиш клавиатуры).
Архитектурно СУБД
состоит из двух основных компонентов:
-языка описания
данных
(ЯОД), позволяющего создать схему описания данных в базе;
-языка
манипулирования данными
(ЯМД), выполняющего операции с базой данных (наполнение, обновление, удаление,
выборку информации).
Помимо ЯОД и ЯМД к СУБД следует
отнести средства (или языки) подготовки отчетов (СПО), позволяющие
подготовить сводки (отчеты) на основе информации, найденной в базе данных, по
заданным формам.
Язык описания данных (ЯОД)
- это язык высокого уровня декларативного(непроцедурного) типа,
предназначенный для формализованного описания типов данных, их структур и
взаимосвязей.
Исходные тексты описания данных
на этом языке после трансляции отображаются в управляющие таблицы, задающие
размещение в памяти ЭВМ и связи между собой рассматриваемых данных.
В соответствии с этими
описаниями СУБД находит в базе требуемые данные, правильно преобразует их и
передает, например, в прикладную программу пользователя, которой они
потребовались.
При записи данных в базу СУБД
по этим описаниям определяет место в памяти ЭВМ, куда их требуется поместить,
преобразует к заданному виду и устанавливает необходимые связи.
Язык манипулирования данными
(или язык запросов) представляет собой систему команд, например, следующего
типа:
-произвести
выборку данного, значение которого удовлетворяет заданным условиям;
-произвести
выборку всех данных определенного типа, значения которых удовлетворяют заданным
условиям;
-найти в базе
позицию данного и поместить туда новое значение (или удалить данное) и т.д.
Широкое распространение имеют
СУБД для персональных компьютеров типа DBASE
(DBASE III,
IV, FoxPro,
Paradox),
Clipper,
Clarion.
Эти СУБД ориентированы на однопользовательский режим работы с базой данных и
имеют очень ограниченные возможности. Языки подобных СУБД представляют собой
сочетание команд выборки, организации диалога, генерации отчетов.
В связи с развитием
компьютерных сетей, в которых персональные компьютеры выступают в качестве
развитых (интеллектуальных) терминалов, новые версии СУБД все в большей степени
включают в себя возможности описанного ниже языка манипулирования данными SQL.
В последнее время стали среди
СУБД популярными ACCESS
(входит в состав MS Office),
Lotus,
Oracle.
SQL
Язык манипулирования данными
SQL
(от английских слов
Structured Query Language)
стал классическим языком реляционных баз данных.
Простейшая операция выборки
представляется командой SELECT
– FROM
–WHERE
(выбрать – из – где):
Часть команды «where»
не является обязательной, например:
select
ФИО_студента
from
Успеваемость.
Выборка всех данных:
select
*
from
Успеваемость.
Выбрать из таблицы
«Успеваемость» фамилии студентов, сдавших на "5" экзамен по информатике:
select
ФИО_студента
from
Успеваемость
where
Дисциплина = “Информатика” AND
Оценка=5.
Выборка может быть и вложенной:
select
ФИО_студента
from
Успеваемость
where
ФИО_студента in
(select
Фамилия
from
Студент
where
Ф_т = “физмат”).
Помимо
select, from,
where
в команде выборки можно использовать и другие служебные слова, например:
order by
<атрибут> asc
- определяет сортировку результата выборки в порядке возрастания (asc) или
убывания (desc)
значения атрибута;
group by
<атрибут1> -
группирует данные по значениям атрибута;
SQL
имеет также команды, позволяющие обновлять данные (update),
вставлять (insert)
и удалять (delete).
Например:
update
Студент
setKypc=3
whereKypc=2
Добавление строки
insert inio
Успеваемость:
<“Семенов С.С.”,
“Информатика”, 5,15/01/96, Петров П.П.>.
Удаление
delete
Успеваемость
where
Оценка=2
Существенно расширяют
возможности языка библиотечные функции, такие как count
(подсчет), sum
(суммирование), avg
(среднее), max
и min.
Иерархические БД
-Типичным
представителем (наиболее известным и распространенным) является Information
Management System (IMS) фирмы IBM. Первая версия появилась в 1968 г.
-
Time-Shared Date Management System (TDMS)компании
Development Corporation;
-
Mark IV Multi - Access Retrieval Systemкомпании
Control Data Corporation;
-System - 2000
разработки SAS-Institute;
-Серверы
каталогов, такие, как LDAP и Active Directory.
-По принципу
иерархической БД построены иерархические файловые системы, состоящая из
корневой директории, в которой имеется иерархия поддиректорий и файлов, и
Реестр Windows.
Сетевые БД
-CronosPRO -
это система,
предназначенная для организации информации в виде банков данных и их дальнейшей
обработки. Информация хранится в структурированном виде, то есть, упорядочена
определенным образом. Структура банка определяется самим пользователем, в
зависимости от стоящих перед ним задач.
-СУБД ЛИНТЕР -
система управления
базами данных, которая полностью разработана в России.
Реляционные БД
Примеры:
-MySQL
-MS SQL Server
-DB2
-Firebird
-InterBase
-SQLite
-MS Access
-Paradox
-OpenOffice.org
Base
dBase
– семейство широко распространённых СУБД, а также язык программирования,
используемый в них.
Самая первая СУБД этого
семейства называлась dBase II и была выпущена в 1980 году, пришедшие ей
на смену dBase III и dBase IV были несколько лет одной из самых
распродаваемых программ.
Долгое время dBase не
портировали под Microsoft Windows, в результате чего в этой нише у программы
оказались сильные конкуренты — Paradox, Clipper, FoxPro и
Microsoft Access.
Поскольку формат данных dBase
не был закрытым, с середины 80-х множество компаний стали производить свои
диалекты языка и версии системы.
СУБД типа DBASE
позволяют работать с реляционными базами данных (БД), структура которых состоит
из трех элементов:
-число полей БД;
-характеристикакаждогополя;
-число записей в
БД.
-Каждое поле имеет
следующие характеристики:
-
Field name (имя поля)
-Type
(тип)
-
Width (ширина)
-Dec
(дес.знаки)
Запуск СУБД осуществляется
из операционной системы ехе-файлом (db.exe,
foxdb
и т.п.)
DBASE
создает следующие типы файлов:
-.dbf
- файлы с записями БД;
-.prg
- файлы с текстами программ;
-.frm
- файлы структуры форматных отчетов;
-.ndx
- индексные файлы, сортирующие записи по определенному ключу;
-.mem
- файлы данных переменной
Mem.
DBF —
формат хранения данных, используемый в качестве одного из стандартных способов
хранения и передачи информации СУБД, электронными таблицами и т. д.
В связи с отсутствием какой-то
официальной стандартизации в настоящее время достаточно сложно гарантировать,
что разрабатываемая прикладная программа будет писать и читать произвольный
DBF-файл, но базовая совместимость всё-таки сохраняется.
Некоторые команды:
-Вставить данные (Insert).
-Перемещение по
таблице и просмотр записей БД (Go
top, Go bottom,
Display
и др.).
-Редактирование
записей позволяют проводить следующие команды (Edit
N, Delete,
Copy
и др. ).
-Изменить
структуру БД (Modify).
-Обработка данных
(Sort,
Index,
Find
).
Microsoft
Access
(англ. доступ) – реляционная СУБД корпорации Microsoft.
Имеет широкий спектр функций, включая связанные запросы, сортировку по разным
полям, связь с внешними таблицами и базами данных.
Благодаря встроенному языку VBA,
в самом Access можно писать приложения, работающие с базами данных.
СУБД Oracle
Рисунок 156 –
Структура СУБД Oracle
-SQL:
Язык команд для взаимодействия с сервером Oracle.
-SQL*Plus:
Инструмент Oracle,
предназначенный для распознавания и выполнения команд SQL и PL/SQL.
-PL/SQL:
Процедурный язык Oracle, дополняющий SQL логикой прикладной программы.
-INITCAP –
преобразование начальных букв в верхний регистр.
-CONCAT –
конкатенация значений.
-SUBSTR – возврат
подстроки.
-LENGTH – возврат
количества символов.
-NVL –
преобразование неопределенного значения.
Групповые функции:
-SUM
– возвращает суммарное значение.
-AVG – возвращает
среднее значение.
-MAX – возвращает
максимальное значение.
-MIN – возвращает
минимальное значение.
-COUNT(*) –
возвращает количество строк в таблице.
Для запроса данных из более,
чем одной таблицы используются соединения. Строки соединяются с помощью общих
значений – как правило, значений первичных и внешних ключей.
Объектно-ориентированная
база данных – БД, в
которой данные оформлены в виде моделей объектов, включающих прикладные
программы, которые управляются внешними событиями.
Результатом совмещения
возможностей (особенностей) баз данных и возможностей объектно-ориентированных
языков программирования являются Объектно-ориентированные системы управления
базами данных (ООСУБД). ООСУБД позволяет работать с объектами баз данных также,
как с объектами в программировании на ООЯП. ООСУБД расширяет языки
программирования, прозрачно вводя долговременные данные, управление
параллелизмом, восстановление данных, ассоциированные запросы и другие
возможности.
Разница между
объектно-реляционными и объектными СУБД: первые являют собой надстройку над
реляционной схемой, вторые же изначально объектно-ориентированы. Главная
особенность и отличие объектно-реляционных, как и объектных, СУБД от реляционных
заключается в том, что они интегрированы с Объектно-Ориентированным (OO) языком
программирования, внутренним или внешним как C++, Java.
Примеры:
-Oracle
-PostgreSQL
Многомерные СУБД
Основаны на OLAP
технологиях. OLAP (англ. online analytical processing,
аналитическая обработка в реальном времени) — технология обработки информации,
включающая составление и динамическую публикацию отчётов и документов.
Используется аналитиками для быстрой обработки сложных запросов к базе данных.
Эти программные продукты
позволяют реализовать множество различных представлений данных и характеризуются
тремя основными чертами:
-многомерное
представление данных;
-сложные
вычисления над данными;
-вычисления,
связанные с изменением данных во времени.
Рисунок 159 – Пример
многомерной БД
Первым продуктом, выполняющим
OLAP-запросы, был Express (компания IRI). Другие хорошо известные
OLAP-продукты:
-
Microsoft Analysis Services (ранее
называвшиеся OLAP Services,
часть
SQL Server),
-
Oracle OLAP Option,
-DB2
OLAP Server от
IBM,
-SAP
BW.
Наибольшее применение OLAP
находит в продуктах для бизнес-планирования и хранилищах данных.