Лекция 9. Базы данных, классификация. Проектирование баз данных. Реляционные базы данных. Системы управления базами данных
База данных – это реализованная с помощью компьютера информационная структура (модель), отражающая состояние объектов и их отношений. Опыт использования баз данных позволяет выделить общий набор их рабочих характеристик:
• полнота— чем полнее база данных, тем вероятнее, что она содержит нужную информацию (однако не должно быть избыточной информации);
• правильная организация— чем лучше структурирована база данных, тем легче в ней найти необходимые сведения;
• актуальность— любая база данных может быть точной и полной, если она постоянно обновляется, т.е. необходимо, чтобы база данных в каждый момент времени полностью соответствовала состоянию отображаемого ею объекта;
• удобство для использования— база данных должна быть проста и удобна в использовании и иметь развитые методы доступа к любой части информации.
В основе любой базы данных лежит модель данных, которая предопределяет множество выводимых допустимых типов данных и отношений между ними и является основой для построения модели конкретной базы данных.
Для организации данных в БД используют три типа информационных структур (моделей данных): иерархическую, сетевую и реляционную.
В иерархическойБД существует упорядоченность элементов в записи. Для неё характерна подчиненность объектов нижнего уровня объектам верхнего уровня. Иерархическую БД образует, например, каталог файлов, хранимых на диске, а дерево каталогов - наглядная демонстрация ее структуры.
Сетевая БД отличается большей гибкостью, т.к. в ней существует возможность устанавливать дополнительно к вертикальным иерархическим связям горизонтальные связи (рис.1).Сетевая структура данных представляет собой произвольный граф. Пример: отношение между объектами – студент и объектами – спортивные кружки.
Рис. 1. Сетевая структура данных
Реляционными(от англ. relation - отношение) являются БД, содержащие информацию, организованную в виде прямоугольных таблиц. Реляционная таблица представляет собой двумерный массив и обладает следующими свойствами:
- каждый элемент таблицы - один элемент данных;
- все столбцы в таблице однородные, т. е. элементы в столбце имеют одинаковый тип (числовой, символьный и т.д.) и длину;
· каждый столбец имеет уникальное имя;
· одинаковые строки отсутствуют;
· порядок следования строк и столбцов может быть произвольным.
Отношения в реляционной базе данных представлены в виде таблиц, строки которых соответствуют записям, а столбцы — полям.
Запись— полный набор данных об определенном объекте, т. е. это информация, расположенная в строках (кроме строки заголовка).
Поле— элемент таблицы, который содержит данные определенного рода, например фамилию студента, т. е. это информация, расположенная в столбцах. Поле, каждое значение которого однозначно определяет соответствующую запись, называется простым ключом(ключевым полем). Так, в табл. СТУДЕНТ, ключевым является поле с именем Номер зачетной книжки, поскольку любой другой атрибут отношения
СТУДЕНТ {Номер зачетной книжки, Фамилия, Имя, Отчество, Дата рождения, Группа)
не позволяет однозначно идентифицировать запись.
Если записи однозначно определяются значениями нескольких полей, то такая таблица имеет составной ключ.
Чтобы связать две реляционные таблицы, необходимо ключ первой таблицы ввести в состав ключа второй таблицы (возможно совпадение ключей); в противном случае нужно ввести в структуру первой таблицы внешний ключ— ключ второй таблицы.
Например, рассмотрим БД, состоящую из трех связанных таблиц: СТУДЕНТ, СЕССИЯ, СТИПЕНДИЯ (рис. 2).
СЕССИЯ (Номер зачетной книжки, Оценка1, Оценка2, Оценка3, Результат сдачи сессии);
СТИПЕНДИЯ (Результат сдачи сессии, Размер академической стипендии, Размер социальной стипендии)
Рис. 2. Связывание таблиц через ключи
В базах данных определены три типа связей:
• один к одному (1:1);
• один ко многим (1: М);
• многие ко многим (М: М).
Связь один к одномупредполагает, что любая запись в первой таблице может быть связана только с одной записью второй таблицы, и наоборот.
Связь один ко многимозначает, что любая запись первой таблицы связана с несколькими записями второй таблицы, но в то же время любая запись во второй таблице связана только с одной записью первой. Эта связь широко используется в реляционных базах данных.
Связь многие ко многимозначает, что каждой записи первой таблицы соответствует несколько записей второй таблицы и также каждой записи второй таблицы соответствует несколько записей из первой таблицы. В явном виде эта связь в РБД не поддерживается, но имеются способы ее косвенной организации путем создания дополнительных таблиц.
С понятием базы данных тесно связано понятие систем управления базой данных. Это комплекс программных средств, предназначенных для создания структуры новой базы, наполнения ее содержимым, редактирования содержимого и визуализация информации. Под визуализацией информации базыпонимается отбор отображаемых данных в соответствии с заданным критерием, их упорядочение, оформление и последующая выдача на устройство вывода или передача по каналам связи. является интерфейсом между базой данных и прикладными задачами. Перечислим основные функции СУБД.
1. Определение данных— определить, какая именно информация будет храниться в БД, задать свойства данных, их тип (например, число цифр или символов), а также указать, как эти данные связаны между собой. В некоторых случаях есть возможность задавать форматы и критерии проверки данных.
2. Обработка данных— данные могут обрабатываться самыми различными способами. Можно выбирать любые поля, фильтровать и сортировать данные. Можно объединять данные с другой, связанной с ними, информацией и вычислять итоговые значения.
3. Управление данными— можно указать, кому разрешено знакомиться с данными, корректировать их или добавлять новую информацию. Можно также определять правила коллективного доступа.
Входящие в состав современных СУБД средства совместно выполняют следующие функции:
• описание данных, их структуры (обычно описание данных и их структуры происходит при инициировании новой БД или добавлении к существующей базе новых разделов (отношений); описание данных необходимо для контроля корректности использования данных, для поддержания целостности БД);
• первичный ввод, пополнение информации в БД;
• удаление устаревшей информации из БД;
• корректировку данных для поддержания их актуальности;
• упорядочение (сортировку) данных по некоторым признакам;
• поиск информации по некоторым признакам. Для описания запросов имеется специальный язык запросов SQL (от англ. Structured Query Language – структурированный язык запросов). Он является международным стандартом языка запросов и обеспечивает интерфейс между БД и прикладными программами пользователей;
• подготовку и генерацию отчетов (средства подготовки отчетов позволяют создавать и распечатывать сводки по заданным формам на основе информации БД);
• защиту информации и разграничение доступа пользователей к ней (некоторые разделы БД могут быть закрыты для пользователя совсем, открыты только для чтения или открыты для изменения; кроме того, при многопользовательском режиме работы с БД необходимо, чтобы изменения вносились корректно; для сохранения целостности данных служит механизм транзакций при манипулировании данными — выполнение манипуляций небольшими пакетами, результаты каждого из которых в случае возникновения некорректности операций «откатываются» и данные возвращаются к исходному состоянию);
• резервное сохранение и восстановление БД, которое позволяет восстановить утраченную при сбоях и авариях аппаратуры информацию БД, а также накопить статистику работы пользователей с БД;
• поддержку интерфейса с пользователями, который обеспечивается средствами ведения диалога.
По степени универсальности различают два класса СУБД:
· системы общего назначения;
· специализированные системы.
СУБД общего назначения не ориентированы на какую-либо предметную область или на информационные потребности какой-либо группы пользователей. Этот программный продукт способен работать в определенной операционной системе, имеет развитые функциональные возможности и поставляется пользователям как коммерческое изделие.
Специализированные СУБД создаются в редких случаях при невозможности или нецелесообразности использования СУБД общего назначения.
В мире существует множество систем управления базами данных. Несмотря на то что они могут по-разному работать с разными объектами и предоставляют пользователю различные функции и средства, большинство СУБД опираются на единый устоявшийся комплекс основных понятий. Это дает возможность рассмотреть одну систему и обобщить ее понятия, приемы и методы на весь класс СУБД. Одна из известнейших СУБД Microsoft Access, вхолит в пакет Microsoft Office.