Россия |
Проектирование баз данных и работа с ними Веб-приложений. Введение в БД, SQL Server, ADO.NET
Презентацию к данной лекции Вы можете скачать здесь.
9.1. Проектирование баз данных
9.1.1. Понятие базы данных
Большинство автоматизированных систем тем или иным образом используют структурированную информацию. В современных приложениях такие упорядоченные данные принято хранить в базах данных – особых файлах, использование которых вместе со специальными программными средствами позволяет пользователю, как просматривать необходимую информацию, так и манипулировать ею.
Например, телефонный справочник представляет собой простейшую базу данных, в которой вся информация располагается в единственной таблице [1, 2]. Каждая запись в этой таблице содержит идентификатор конкретного человека – ФИО и его номер телефона. Таким образом, таблица состоит из записей, информация в которых разделена на несколько частей – полей (табл. 9.1).
ФИО | Номер телефона |
---|---|
Иванов Иван Иванович | 532-43-12 |
Ильин Федор Иванович | 321-32-34 |
Рассмотрим различные определения базы данных:
- Базой данных является представленная в объективной форме совокупность самостоятельных материалов, систематизированных таким образом, чтобы эти материалы могли быть найдены и обработаны с помощью электронной вычислительной машины [3].
- База данных – организованная в соответствии с определенными правилами и поддерживаемая в памяти компьютера совокупность данных, характеризующая актуальное состояние некоторой предметной области и используемая для удовлетворения информационных потребностей пользователей [4].
- База данных – совокупность данных, хранимых в соответствии со схемой данных, манипулирование которыми выполняют в соответствии с правилами средств моделирования данных [5].
- База данных – некоторый набор перманентных (постоянно хранимых) данных, используемых прикладными программными системами какого-либо предприятия [6].
- База данных – совокупность взаимосвязанных данных, совместно хранимых в одном или нескольких компьютерных файлах [7].
- База данных – совместно используемый набор логически связанных данных (и описание этих данных), предназначенный для удовлетворения информационных потребностей организации [8].
- База данных – это совокупность связанных данных, организованных по определенным правилам, предусматривающим общие принципы описания, хранения и манипулирования, независимая от прикладных программ [9].
Существует множество и других определений, отражающих скорее субъективное мнение тех или иных авторов о том, что означает этот термин в их понимании, однако общепризнанная единая формулировка отсутствует. Наиболее часто используются следующие отличительные признаки [10]:
- База данных хранится и обрабатывается в вычислительной системе. Таким образом, любые некомпьютерные хранилища информации (архивы, библиотеки, картотеки и т. п.) базами данных не являются.
- Данные в базе данных логически структурированы (систематизированы) с целью обеспечения возможности их эффективного поиска и обработки в вычислительной системе. Структурированность подразумевает явное выделение составных частей (элементов), связей между ними, а также типизацию элементов и связей, при которой с типом элемента (связи) соотносится определенная семантика и допустимые операции.
- База данных включает метаданные, описывающие логическую структуру БД в формальном виде (в соответствии с некоторой метамоделью). В соответствии с ГОСТ Р ИСО МЭК ТО 10032-2007, "постоянные данные в среде базы данных включают в себя схему и базу данных. Схема включает в себя описания содержания, структуры и ограничений целостности, используемые для создания и поддержки базы данных. База данных включает в себя набор постоянных данных, определенных с помощью схемы. Система управления данными использует определения данных в схеме для обеспечения доступа и управления доступом к данным в базе данных " [5].
Из перечисленных признаков только первый является строгим, а другие допускает различные трактовки и различные степени оценки. Можно лишь установить некоторую степень соответствия требованиям к БД.
Многие специалисты указывают на распространенную ошибку, состоящую в некорректном использовании термина база данных вместо термина система управления базами данных. Эти понятия, следовательно, необходимо различать.
Система управления базами данных ( СУБД ) – это специализированная программа (чаще комплекс программ), предназначенная для организации и ведения базы данных [11].
Таким образом, система управления базой данных ( СУБД ) – важнейший компонент информационной системы. Для создания и управления информационной системой СУБД необходима в той же степени, как для разработки программы на алгоритмическом языке необходим транслятор.
Основные функции СУБД [12]:
- управление данными во внешней памяти (на дисках);
- управление данными в оперативной памяти;
- журналирование изменений и восстановление базы данных после сбоев;
- поддержание языков БД (язык определения данных, язык манипулирования данными).
Обычно современная СУБД содержит следующие компоненты [12] (рис. 9.1):
- ядро, которое отвечает за управление данными во внешней и оперативной памяти и журналирование;
- процессор языка базы данных, обеспечивающий оптимизацию запросов на извлечение и изменение данных и создание, как правило, машинно-независимого исполняемого внутреннего кода;
- подсистему поддержки времени исполнения, которая интерпретирует программы манипуляции данными, создающие пользовательский интерфейс с СУБД;
- сервисные программы (внешние утилиты), обеспечивающие ряд дополнительных возможностей по обслуживанию информационной системы.
На рис. 9.2 приведены основные функции и содержимое компонентов обработки баз данных [13].
9.1.2. Классификация БД
Существует огромное количество разновидностей баз данных, отличающихся по различным критериям (например, в "Энциклопедии технологий баз данных" М. Р. Когаловского [4] определяются свыше 50 видов БД).
Базы данных могут быть классифицированы [10]:
- По технологии хранения:
- БД во вторичной памяти (традиционные);
- БД в оперативной памяти (in-memory databases);
- БД в третичной памяти (tertiary databases);
- По содержимому:
- Географические;
- Исторические;
- Научные;
- Мультимедийные;
- По степени распределенности:
- Централизованные (сосредоточенные);
- Распределенные.
Подробнее же рассмотрим классификацию БД по моделям данных.
9.1.2.1. Классификация БД по модели данных
В классической теории баз данных, модель данных есть формальная теория представления и обработки данных в системе управления базами данных (СУБД), которая включает, по меньшей мере, три аспекта [12, 14]:
- структура данных – описывает точку зрения пользователя на представление данных;
- набор допустимых операций, выполняемых на структуре данных ( модель данных предполагает, как минимум, наличие языка определения данных (ЯОД), описывающего структуру их хранения, и языка манипулирования данными (ЯМД), включающего операции извлечения и модификации данных);
- ограничения целостности – механизм поддержания соответствия данных предметной области на основе формально описанных правил.
Другими словами, структура данных определяет, что из себя логически представляет база данных, ограничения целостности определяют средства описаний корректных состояний базы данных, набор допустимых операций определяет способы перехода между состояниями базы данных (то есть способы модификации данных) и способы извлечения данных из базы данных [14].
Каждая БД и СУБД строится на основе некоторой явной или неявной модели данных. Все СУБД, построенные на одной и той же модели данных, относят к одному типу. Например, основой реляционных СУБД является реляционная модель данных, сетевых СУБД – сетевая модель данных и т.д.
Длительное время термин " модель данных " использовался без формального определения. Одним из первых специалистов, который достаточно формально определил это понятие, был Э. Кодд. В статье " Модели данных в управлении базами данных" [15] он определил модель данных как комбинацию трех компонентов:
- коллекции типов объектов данных, образующих базовые строительные блоки для любой базы данных, соответствующей модели;
- коллекции общих правил целостности, ограничивающих набор экземпляров тех типов объектов, которые законным образом могут появиться в любой такой базе данных;
- коллекции операций, применимых к таким экземплярам объектов для выборки и других целей.
В процессе исторического развития в СУБД использовалось следующие модели данных [12]:
9.1.2.1.1. Иерархические
Иерархическая модель базы данных состоит из объектов с указателями от родительских объектов к потомкам, соединяя вместе связанную информацию.
Организация данных в СУБД иерархического типа определяется в следующих терминах [12]:
- Атрибут (элемент данных) – наименьшая единица структуры данных. Обычно каждому элементу при описании базы данных присваивается уникальное имя. По этому имени к нему обращаются при обработке. Элемент данных также часто называют полем.
- Запись – именованная совокупность атрибутов. Использование записей позволяет за одно обращение к базе получить некоторую логически связанную совокупность данных. Именно записи изменяются, добавляются и удаляются. Тип записи определяется составом ее атрибутов. Экземпляр записи – конкретная запись с конкретным значением элементов
- Групповое отношение – иерархическое отношение между записями двух типов. Родительская запись (владелец группового отношения) называется исходной записью, а дочерние записи (члены группового отношения) – подчиненными. Иерархическая база данных может хранить только такие древовидные структуры.
Одной из наиболее популярных иерархических СУБД была Information Management System (IMS) компании IBM, появившаяся в 1968 году [13].