Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 1 Введение в базы данных.docx
Скачиваний:
13
Добавлен:
14.11.2019
Размер:
124.51 Кб
Скачать

13

Введение в базы данных. Трехуровневая модель

  • База данных — совокупность информационных элементов из некоторой предметной области, постоянно хранящаяся в памяти вычислительной системы и используемая различными прикладными программами.

  • База данных — организованная в соответствии с определёнными правилами и поддерживаемая в памяти компьютера совокупность данных, характеризующая актуальное состояние некоторой предметной области и используемая для удовлетворения информационных потребностей пользователей[1].

  • База данных — некоторый набор перманентных (постоянно хранимых) данных, используемых прикладными программными системами какого-либо предприятия[3].(Дейт)

  • База данных — совместно используемый набор логически связанных данных (и описание этих данных), предназначенный для удовлетворения информационных потребностей организации[4].( Коннолли Т., Бегг К.)

Система управления базами данных (СУБД) — совокупность языковых и программных средств, предназначенных для создания, ведения и совместного использования БД многими пользователями.

Примеры предприятий и организаций? Примеры прикладных программ?

Примеры данных?

Общепризнанная единая формулировка отсутствует.

Наиболее часто используются следующие отличительные признаки:

  1. БД хранится и обрабатывается в вычислительной системе. Таким образом, любые внекомпьютерные хранилища информации (архивы, библиотеки, картотеки и т. п.) базами данных не являются.

  2. Данные в БД логически структурированы (систематизированы) с целью обеспечения возможности их эффективного поиска и обработки в вычислительной системе. Структурированность подразумевает явное выделение составных частей (элементов), связей между ними, а также типизацию элементов и связей, при которой с типом элемента (связи) соотносится определённая семантика и допустимые операции[5].

  3. БД включает метаданные, описывающие логическую структуру БД в формальном виде (в соответствии с некоторой метамоделью). В соответствии с ГОСТ Р ИСО МЭК ТО 10032-2007, «постоянные данные в среде базы данных включают в себя схему и базу данных. Схема включает в себя описания содержания, структуры и ограничений целостности, используемые для создания и поддержки базы данных. База данных включает в себя набор постоянных данных, определенных с помощью схемы. Система управления данными использует определения данных в схеме для обеспечения доступа и управления доступом к данным в базе данных»[2].

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

В такой ситуации не последнюю роль играет общепринятая практика. В соответствии с ней, например, не называют базами данных файловые архивы, Интернет-порталы или электронные таблицы, несмотря на то, что они в некоторой степени обладают признаками БД. Принято считать, что эта степень в большинстве случаев недостаточна (хотя могут быть исключения).

Многие специалисты указывают на распространённую ошибку, состоящую в некорректном использовании термина «база данных» вместо термина «система управления базами данных», и указывают на необходимость различения этих понятий[6].

История

История возникновения и развития технологий баз данных может рассматриваться как в широком, так и в узком аспекте.

В широком аспекте понятие истории баз данных обобщается до истории любых средств, с помощью которых человечество хранило и обрабатывало данные. В таком контексте упоминаются, например, средства учёта царской казны и налогов в древнем Шумере (4000 г. до н. э.)[7], узелковая письменность инков — кипу, клинописи, содержащие документы Ассирийского царства и т. п. Следует помнить, что недостатком этого подхода является размывание понятия «база данных» и фактическое его слияние с понятиями «архив» и даже «письменность».

История баз данных в узком аспекте рассматривает базы данных в традиционном (современном) понимании. Эта история начинается с 1955 г., когда появилось программируемое оборудование обработки записей. Программное обеспечение этого времени поддерживало модель обработки записей на основе файлов. Для хранения данных использовались перфокарты[7].

Оперативные сетевые базы данных появились в середине 1960-х. Операции над оперативными базами данных обрабатывались в интерактивном режиме с помощью терминалов. Простые индексно-последовательные организации записей быстро развились к более мощной модели записей, ориентированной на наборы. За руководство работой DBTG (Data Base Task Group), разработавшей стандартный язык определения данных и манипулирования данными, Чарльз Бахман получил Тьюринговскую премию.

В это же время в сообществе баз данных COBOL была проработана концепция схем баз данных и концепция независимости данных.

Следующий важный этап связан с появлением в начале 1970-х реляционной модели данных, благодаря работам Эдгара Ф. Кодда. Работы Кодда открыли путь к тесной связи прикладной технологии баз данных с математикой и логикой. За свой вклад в теорию и практику Эдгар Ф. Кодд также получил премию Тьюринга.

Сам термин database (база данных) появился в начале 1960-х гг., и был введён в употребление на симпозиумах, организованных фирмой SDC (System Development Corporation) в 1964 и 1965 гг.[8]

1. ТРЕХУРОВНЕВАЯ МОДЕЛЬ ОРГАНИЗАЦИИ БАЗ ДАННЫХ

После того, как была выработана концепция базы данных и системы управления ее, специалисты, начиная с 1971 года, стали работать над общей архитектурой и терминологией базы данных. Вопросы, касающиеся того, как должна быть устроена база данных, были решены не сразу. В течение ряда лет велись научные исследования в этом направлении, предлагались различные способы реализации. В результате многократных обсуждений предлагаемых решений в 1978 году учеными была принята трехуровневая система организации данных, предложенная Национальным Институтом стандартизации – ANSI (American National Standards Institute) и Комитетом по планированию выпуска стандартов и технических условий – SPARC Соединенных штатов Америки. В соответствии с принятой концепцией предлагается выделять три уровня абстракции представления данных: внешний, концептуальный и внутренний (рис. 1). Хотя идеология ANSI/SPARС не стала стандартом, она представляет основу для понимания основных функциональных особенностей баз данных и систем управления базами данных (СУБД).

Рис. 1. Трехуровневая модель организации баз данных

Основное внимание в этом подходе сконцентрировано на необходимости воплощения независимости каждого уровня для изоляции программ от особенностей представления данных на более низком уровне. То есть цель этого представления – отделение пользовательского представления базы данных от ее физического представления. Фундаментальным моментом в этом подходе является выделение трех уровней абстракции, то есть трех различных уровней абстракции описания элементов данных:

§ Внешний уровень – это тот, на котором представляют данные пользователи;

§ концептуальный уровень служит для отображения данных внешнего уровня на внутренний и обеспечивает необходимую независимость данных разных уровней друг от друга;

§ на внутреннем уровне данные воспринимаются СУБД и операционной системой.

Внешний уровень – это самый верхний уровень, который отражает представление конечного пользователя о конфигурации данных (более подробно о типах пользователей баз данных будет изложено в последней лекции). Каждый пользователь представляет реальный мир по-своему, исходя из того вида работы, которую он выполняет. Остальная часть реального мира его не интересует. Некоторые представления пользователя не являются исходными, а потому в базе данных их не следует сохранять, так как они могут быть вычислены, например, вместо данных о возрасте, которые надо часто менять, следует внести в базу данные о дате рождения, и из них вычислять возраст.

Конечные пользователи часто оперируют с приложениями. Каждое приложение видит и обрабатывает только те данные, которые необходимы именно ему. Например, системе отдела кадров нужны сведения о возрасте, домашнем адресе сотрудника, а система расчета зарплаты учитывает квалификацию работника, стаж его работы.

Концептуальный уровень – это объединяющее представление данных, используемых всеми пользовательскими приложениями, работающими с данной базой. На этом уровне база данных представляет собой общий взгляд пользователя на данные проектируемой базы. Это, например, представление с точки зрения менеджера высшего уровня о данных всего предприятия. Здесь описывается: какие данные хранятся в базе, и каковы связи между ними. Этот уровень отражает логическую структуру всей базы с точки зрения администратора базы данных. В действительности концептуальный уровень отражает обобщенную модель предметной области (объектов реального мира), для которой создается база данных.

Концептуальный уровень – это попытка представить требования к базе со стороны организации. И этот уровень не должен содержать никаких сведений о методах хранения данных. Здесь должны быть отражены:

§ все сущности, включаемые в базу, их атрибуты и связи;

§ накладываемые на данные ограничения;

§ семантическая информация о данных;

§ информация о мерах обеспечения безопасности и поддержки целостности данных.

База данных на концептуальном уровне имеет высокую степень абстракции и характеризуется аппаратной и программной независимостью. Создаваемая на этом уровне концептуальная модель служит основой для идентификации и описания основных объектов данных.

Внутренний уровень служит для адаптации концептуальной модели к конкретной СУБД. Другими словами, внутренняя уровень – это представление базы данных со стороны СУБД, и на этом уровне описывается, как данные должны храниться в компьютере. А потому на этом уровне требуется, чтобы проектировщик привел свойства и ограничения концептуальной модели в соответствие с выбранной моделью реализации базы данных. Внутренний уровень предназначен для достижения оптимальной производительности и обеспечения оптимального использования дискового пространства. На этом уровне осуществляется взаимодействие СУБД с методами доступа операционной системы. Здесь хранится такая информация:

§ распределение дискового пространства для хранения данных и индексов;

§ описание подробностей хранения данных;

§ сведения о размещении записей;

§ сведения о сжатии данных и методах их шифрования.

База данных, создаваемая на этом уровне, имеет средний уровень абстракции и характеризуется аппаратной независимостью и программной зависимостью, то есть она зависит от программного обеспечения базы данных. А потому любые изменения в программном обеспечении СУБД потребуют изменений во внутренней модели, для того чтобы она соответствовала требованиям СУБД.

В действительности ниже внутреннего уровня находится еще уровень физического представления данных, то есть физический уровень, на котором описываются способы хранения информации на носителях, например, на винчестерах. Другими словами, физический уровень – это собственно данные, хранящиеся на внешних носителях информации и расположенные в файлах или страничных структурах. Этот уровень контролируется операционной системой, но под управлением СУБД. Здесь требуется определить, как устройства физического хранения, так и методы доступа, необходимые для извлечения данных с физического носителя. База данных, создаваемая на этом уровне, имеет самый низкий уровень абстракции и характеризуется аппаратной и программной зависимостью.

Предложенная архитектура позволяет обеспечить логическую и физическую независимость при работе с данными. Логическая независимость предполагает возможность изменения одного приложения без корректировки других, работающих с этой же базой данных. А физическая независимость предполагает возможность переноса хранимой информации с одних носителей на другие при сохранении работоспособности всех приложений, работающих с конкретной базой. Логическая независимость устанавливается между 1 и 2 уровнями, а физическая между 2 и 3. Именно этого не хватало при использовании файловых систем.

В соответствии с трехуровневой архитектурой существует три различных типа схем базы данных. На самом высоком уровне имеется несколько внешних схем данных, которые соответствуют разным представлениям пользователей. На концептуальном уровне описываются все элементы и связи между ними. Для каждой базы данных имеется только одна концептуальная схема. Внутренняя схема является полным описанием данных внутреннего уровня и содержит определение хранимых записей: методы представления, описание полей данных, сведения об индексах и схемах хеширования данных. СУБД отвечает за установление соответствия между этими тремя типами схем, а также за проверку их непротиворечивости.

Архитектура базы данных. Физическая и логическая независимость

В процессе научных исследований, посвященных тому, как именно должна быть устроена СУБД, предлагались различные способы реализации. Самым жизнеспособным из них оказалась предложенная американским комитетом по стандартизации ANSI (American National Standards Institute) трехуровневая система организации БД, изображенная на рис. 2.1:

Рис. 2.1.  Трехуровневая модель системы управления базой данных, предложенная ANSI

  1. Уровень внешних моделей — самый верхний уровень, где каждая модель имеет свое "видение" данных. Этот уровень определяет точку зрения на БД отдельных приложений. Каждое приложение видит и обрабатывает только те данные, которые необходимы именно этому приложению. Например, система распределения работ использует сведения о квалификации сотрудника, но ее не интересуют сведения об окладе, домашнем адресе и телефоне сотрудника, и наоборот, именно эти сведения используются в подсистеме отдела кадров.

  2. Концептуальный уровень — центральное управляющее звено, здесь база данных представлена в наиболее общем виде, который объединяет данные, используемые всеми приложениями, работающими с данной базой данных. Фактически концептуальный уровень отражает обобщенную модель предметной области (объектов реального мира), для которой создавалась база данных. Как любая модель, концептуальная модель отражает только существенные, с точки зрения обработки, особенности объектов реального мира.

  3. Физический уровень — собственно данные, расположенные в файлах или в страничных структурах, расположенных на внешних носителях информации.

Эта архитектура позволяет обеспечить логическую (между уровнями 1 и 2) и физическую (между уровнями 2 и 3) независимость при работе с данными. Логическая независимость предполагает возможность изменения одного приложения без корректировки других приложений, работающих с этой же базой данных. Физическая независимость предполагает возможность переноса хранимой информации с одних носителей на другие при сохранении работоспособности всех приложений, работающих с данной базой данных. Это именно то, чего не хватало при использовании файловых систем.

Выделение концептуального уровня позволило разработать аппарат централизованного управления базой данных.

Процесс прохождения пользовательского запроса

Рисунок 2.2 иллюстрирует взаимодействие пользователя, СУБД и ОС при обработке запроса на получение данных. Цифрами помечена последовательность взаимодействий:

Рис. 2.2.  Схема прохождения запроса к БД

  1. Пользователь посылает СУБД запрос на получение данных из БД.

  2. Анализ прав пользователя и внешней модели данных, соответствующей данному пользователю, подтверждает или запрещает доступ данного пользователя к запрошенным данным.

  3. В случае запрета на доступ к данным СУБД сообщает пользователю об этом (стрелка 12) и прекращает дальнейший процесс обработки данных, в противном случае СУБД определяет часть концептуальной модели, которая затрагивается запросом пользователя.

  4. СУБД запрашивают информацию о части концептуальной модели.

  5. СУБД получает информацию о запрошенной части концептуальной модели.

  6. СУБД запрашивает информацию о местоположении данных на физическом уровне (файлы или физические адреса).

  7. В СУБД возвращается информация о местоположении данных в терминах операционной системы.

  8. СУБД вежливо просит операционную систему предоставить необходимые данные, используя средства операционной системы.

  9. Операционная система осуществляет перекачку информации из устройств хранения и пересылает ее в системный буфер.

  10. Операционная система оповещает СУБД об окончании пересылки.

  11. СУБД выбирает из доставленной информации, находящейся в системном буфере, только то, что нужно пользователю, и пересылает эти данные в рабочую область пользователя.

БМД — это База Метаданных,именно здесь и хранится вся информация об используемых структурах данных, логической организации данных, правах доступа пользователей и, наконец, физическом расположении данных. Для управления БМД существует специальное программное обеспечение администрирования баз данных, которое предназначено для корректного использования единого информационного пространства многими пользователями.

Всегда ли запрос проходит полный цикл? Конечно, нет. СУБД обладает достаточно развитым интеллектом, который позволяет ей не повторять бессмысленных действий. И поэтому, например, если этот же пользователь повторно обратится к СУБД с новым запросом, то для него уже не будут проверяться внешняя модель и права доступа, а если дальнейший анализ запроса покажет, что данные могут находиться в системном буфере, то СУБД осуществит только 11 и 12 шаги в обработке запроса.

Разумеется, механизм прохождения запроса в реальных СУБД гораздо сложнее, но и эта упрощенная схема показывает, насколько серьезными и сложными должны быть механизмы обработки запросов, поддерживаемые реальными СУБД.

Классификации БД

Существует огромное количество разновидностей баз данных, отличающихся по различным критериям (например, в «Энциклопедии технологий баз данных»[1] определяются свыше 50 видов БД).

Укажем только основные классификации.

Классификация БД по модели данных:

Примеры:

  • иерархические,

  • сетевые,

  • реляционные,

  • объектные и объектно-ориентированные,

  • объектно-реляционные.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]