История развития СУБД (из книги)

3. Трехуровневая архитектура ANSI/SPARC

Первая попытка создания стандартной терминологии и общей архитектуры СУБД была принята в 1971 г. группой DBTG. Она была создана после конференции CODASYL прошедшей в том же году. Группа DBTG признала необходимость использования 2х уровневого подхода. (схема-подсхема) При национальном институте стандартов США был создан комитет планирования стандартов и норм – ANSI/SPARC (ANSI – American National Standard Institute, SPARC – Standards Planning and Requirements Committee). И в 1975 г. этот комитет признал необходимость использования трехуровневого подхода к созданию системного каталога.

В соответствии с этим подходом используются три уровня абстракции описания элементов данных; они формируют трехуровневую архитектуру, охватывающую внешний, концептуальный и внутренний уровни.

Разделение приводит к тому, что каждый отвечает за свое и знает только свое; тем самым, достигается независимость от физического представления и от логического представления.

Внешний уровень – представление БД с точки зрения конечных пользователей. Этот уровень описывает ту часть БД, которая относится к каждому конечному пользователю. (из книги)

Концептуальный уровень – обобщающее представление БД. Описывает, какие данные хранятся в БД, а также связи, существующие между ними. (из книги)

Внутренний уровень – физическое представление БД в компьютере; описывает, как информация хранится в БД. (из книги)

Концептуальная схема является «сердцем» БД. Она поддерживает все внешние представления, а сама поддерживается средствами внутренней схемы. Именно концептуальная схема призвана быть полным и точным представлением требований к данным организации (предприятия).

Пример(различия между 3-мя уровнями представления данных):

• Представление 1: ФИО, дата рождения, сумма выплат за год;

• Представление 2: ФИО, дата приема на работу, подразделение

• Обобщенное представление: ФИО, дата рождения, дата приема на работу, подразделение, сумма выплат за год

• Внутреннее представление:

struct Employee {

int номер_сотрудника;

int номер_подразделения;

char фамилия [50], имя[50], отчество[50];

struct Date дата_рождения, дата_приема;

float сумма_выплат;

};


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: