В настоящее время информационные системы (ИС) нашли широкое применение во всех отраслях промышленности и экономики. Одними из важнейших составных частей ИС являются базы данных (БД) и системы управления базами данных (СУБД).
БД – совокупность специальным образом организованных данных, хранимых в памяти вычислительной системы, отображающих состояние объектов и их взаимосвязей в рассматриваемой предметной области.
СУБД – это комплекс языковых и программных средств, предназначенных для создания, ведения и совместного использования БД многими пользователями.
В функции этих компонентов ИС входят:
1) хранение и модификация больших объемов информации,
2) обеспечение возможности поиска информации по различным критериям,
3) обеспечение возможности реорганизации информации,
4) предоставление информации в удобной форме.
Принято различать настольные и серверные СУБД. Настольные размещаются, как правило, на одном компьютере. Серверные СУБД основаны на архитектуре клиент/сервер и размещаются на разных компьютерах. Сервер базы данных используется и для хранения информации, и для обработки запросов к БД. Запросы клиентской рабочей станции обрабатываются сервером базы данных и обратно возвращаются только результаты выполнения запроса. Такой подход уменьшает трафик в сети. Обработка запросов сервером базы данных, как правило, осуществляется быстрее, чем на рабочей станции, так как:
1) в качестве сервера, как правило, используется более мощный компьютер,
2) СУБД, используемая в качестве сервера базы данных, обладает более мощными средствами обработки данных.
В ряде случаев клиентская и серверная части являются компонентами одной СУБД, например SQL Plus и Oracle. В других случаях, в качестве клиентской части используется приложение, написанное, например на С++, а в качестве сервера базы данных – мощная СУБД, например Oracle.
В качестве серверов баз данных в большинстве случаев используются реляционные СУБД, для которых стандартным языком доступа к данным является структурированный язык запросов SQL. Настоящие методические указания посвящены изучению этого языка.
Модели данных – средство определения структур данных и процессов над этими данными. Типы структур данных различают по правилам композиции структур данного типа из структур другого типа и правилам обработки структур данного типа.
Различают иерархическую, сетевую, реляционную, многомерную и объектно-ориентированную модели данных. В иерархической модели для описания данных используют древовидную структуру. В сетевой модели для описания используют графы общего вида. В многомерной модели данные представляются в виде многомерных кубов. Объектно-ориентированная модель основана на теории объектно-ориентированного программирования.
Реляционной считается такая база данных, в которой все данные представлены в виде двумерных таблиц, связанных между собой, и все операции над базой данных сводятся к манипуляциям с таблицами. Каждая таблица должна иметь уникальное имя: Студент, Кадры, Товары и др. Эти таблицы на этапе проектирования БД называются сущностями. Если данные меняются в одной таблице, то они автоматически меняются во всех таблицах, связанных с первой.
При использовании реляционной модели данных БД – это совокупность двумерных таблиц для хранения той или иной информации.
Основы теории реляционных баз данных заложил британский учёный Эдгар Кодд. Также им определен математический аппарат реляционной алгебры, на котором основываются реляционные БД.
К свойствам реляционной БД относят:
1) каждая таблица состоит из строк и столбцов;
2) каждая таблица имеет имя, уникальное внутри БД;
3) все элементы данного столбца однородны (как, например, только текст, только дата, только число и т.д.).
При проектировании БД используют следующие термины: поле (столбец), запись (строка), отношение (таблица), первичный и внешний ключ.
Поле – наименьшая, поименованная единица данных к которой можно непосредственно обращаться (используется для представления атрибутов). Значение поля может относиться к различным типам данных: числовому, символьному, дата/время и т.д.
Запись – поименованная совокупность полей (используется для представления сущности). Например, сущность «Товар» может иметь запись из следующих полей и их значений: «Наименование товара» – Стол, «Цена» – 2850, «Количество» – 26 и т.п.
Отношение – совокупность экземпляров записей определенного типа.
Отношения обладают следующими свойствами:
1) Значения атрибутов атомарны, т.е. их нельзя расчленить на несколько значений. Например, если требуется атрибут «Стол» разделить на «Стол письменный» и «Стол обеденный», то следует создать 2 записи.
2) Каждая запись в отношении уникальна, т.е. не существует двух записей с полностью совпадающим набором значений его атрибутов.
3) Каждый атрибут имеет уникальное имя в пределах отношения.
4) Последовательность атрибутов в отношении произвольная.
5) Последовательность записей в отношении произвольная.
Первичный ключ – это минимальный набор атрибутов, уникально идентифицирующий сущность. Другими словами – первичный ключ задает индивидуальное значение каждой записи в таблице. Например, если в некотором текстовом поле отношения «Товары» каждая запись поля «Наименование товара» имеет уникальное значение, например «Стол письменный», то атрибут «Наименование товара» может являться первичным ключом. В противном случае для идентификации записей первичный ключ может состоять из нескольких атрибутов. Например, «Наименование товара» и «Группа товаров».
Связи между таблицами (Рис. 1.) в реляционной модели осуществляются за счет внешних ключей. Атрибут, значения которого ссылаются на значения первичного ключа другого отношения, называется внешним ключом. Например, таблицы «Сотрудник» и «Руководитель» (см. рисунок) имеют связь Многие-к-Одному. В этой связи участвуют первичный ключ «Номер» из таблицы «Руководитель» и атрибут «Номер руководителя» из таблицы «Сотрудник», который может принимать только те значения, которые существуют в указанном первичном ключе. Поэтому атрибут «Номер руководителя» называется внешним ключом.
Рис.1. Связь между таблицами
Достоинства реляционной модели:
1) простота модели и модификации данных,
2) независимость данных и простота реализации,
3) запросы формируются без учета системной реализации,
4) хорошая теоретическая база в виде реляционной алгебры.
В качестве недостатка реляционной модели можно указать на то, что она обладает избыточностью (одно и тоже значение несколько раз присутствует в различных записях).