1.2. Структуры данных
1.2.1. Абстракция
Основной способ структуризации данных - это абстракция. Абстракция представляет собой совокупность деталей конкретного предмета, явления или понятия, которое может быть соответственным образом рассмотрено и именовано, как целое.
Прежде чем начать рассмотрение методов абстракции, необходимо пояснить понятия знака и типа. Предполагается, что предметная область (то, что описыва¬ется с помощью БД) состоит из некоторых объектов. Каждый знак определяет конкретное значение или конкретный экземпляр объекта. Тип - некоторый класс подобных знаков.
Существует два способа абстракции - обобщение и агрегация. Обобщение позволяет соотносить множество знаков или типов с одним типом. Обобщение из знаков в тип называется классификацией, обобщение из типов в тип называется
обобщением в узком смысле. Операция, обратная классификации, называется экземпляризацией. Операция, обратная обобщению в узком смысле, называется специализацией.
Агрегация - абстракция, посредством которой объект конструируется из других базовых объектов. Операция, обратная агрегации называется декомпозицией.
Простейший пример структуризации данных приведен на схеме (рис. 1).
Агрегация и обобщение применяются в заимозаменяющим образом и выражают структурные и классификационные аспекты типизации соответственно. На основе этих операций и определяется множество структур данных.

                                                            

                                                                    Рис. 1. Способы абстракции

                                                     1.2.2. Основные формы хранения данных.
Данные, в соответствии с определением, должны быть формализованы. Рассмотрим наиболее часто применяемые формы хранения данных.
Множество - есть совокупность правильно идентифицированных объектов, удовлетворяющих условию принадлежности.
Примечание. Данное определение, хотя и не является формальным, по смыслу соответству¬ет понятию множества, известному из курса математики.
Комплекс - есть множество, для каждого элемента которого определена позиция, причем в одной позиции может быть несколько элементов. Номер позиции для каждого элемента обычно указывается верхним индексом. Комплекс, имею¬щий в каждой позиции только по одному элементу, называется кортежом. Множество можно рассматривать, как комплекс, все элементы которого находятся в одной позиции.
Примеры.

1 1 2 2 2 3

{ 11, 51, 62, 72, 92, 143} - комплекс,

{11,51,61,71,91,141} = {1,5,6,7,9,14} - множество,

{ 11, 52, 63, 74, 95, 146}=<1,5,6,7,9,14> - кортеж.

Интенсионал множества определяет свойства множества, общие для всех его элементов. Экстенсионал множества определяет одну из возможных реализаций множества путем явного указания элементов.
Домен - есть множество однородных элементов, из которых черпаются значения семантически значимых объектов и/или их свойств. Именованный домен называется атрибутом.
Отношение - это некоторое подмножество декартова произведения одного или более множеств.
Например: СТУДЕНТЫ е ФИОх номер_зачетких стипендия (фактически СТУ¬ДЕНТЫ - это таблица с тремя атрибутами (полями) - «ФИО», «номер_зачетки» и «стипендия»).
ФИО Номер_зачетки Стипендия



Интенсионал отношения определяется интенсионалами, входящих в него множеств и общими свойствами собственно отношения.
Экстенсионал отношения определяет одну из возможных его реализаций.
Таким образом, интенсионал БД определяет структуру, а экстенсионал - её конкретное содержание.
1.2.3. Табличное представление структур данных
Наиболее часто в моделях данных приходится иметь дело с табличным представлением структур данных, пример которого приведен на рис. 2.

 

Рис. 2. Табличное представление структур данных

Примечание. На рис. 2 отмечено, что интенсионалом БД с точки зрения табличного представления являются наборы атрибутов таблиц. Экстенсионалу соответствует наполнение таблиц.

 

На примере видно, что фактически схему данных (интенсионал) БД в данном представлении определяют названия полей (столбцов, атрибутов) таблиц и названия самих таблиц. Содержимое таблиц определяет экстенсионал БД. Важным аспектом является связи между таблицами, реализованные путем копирования значений полей из одной таблицы в другую. Так, таблица «уч. курс» фактически содержит ссылки на таблицы «студенты» и «преподаватели», так как поле «ФИО студ.» связано с полем «ФИО» таблицы «студенты», а поле «ФИО преп.» с полем «ФИО» таблицы «преподаватели».