МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Разработка программного обеспечения для Отделения Реанимации и Интенсивной Терапии новорожденных МГБ N1 г. Сургута

    БД (обычно SQL), подсистему поддержки времени выполнения, набор утилит. В

    некоторых системах эти части выделяются явно, в других - нет, но логически

    такое разделение можно провести во всех СУБД.

    Ядро СУБД отвечает за управление данными во внешней памяти, управление

    буферами оперативной памяти, управление транзакциями и журнализацию.

    Соответственно, можно выделить такие компоненты ядра (по крайней мере,

    логически, хотя в некоторых системах эти компоненты выделяются явно), как

    менеджер данных, менеджер буферов, менеджер транзакций и менеджер журнала.

    Как можно было понять из первой части этой лекции, функции этих компонентов

    взаимосвязаны, и для обеспечения корректной работы СУБД все эти компоненты

    должны взаимодействовать по тщательно продуманным и проверенным протоколам.

    Ядро СУБД обладает собственным интерфейсом, не доступным пользователям

    напрямую и используемым в программах, производимых компилятором SQL (или в

    подсистеме поддержки выполнения таких программ) и утилитах БД. Ядро СУБД

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

    "клиент-сервер" ядро является основной составляющей серверной части

    системы.

    Основной функцией компилятора языка БД является компиляция операторов языка

    БД в некоторую выполняемую программу. Основной проблемой реляционных СУБД

    является то, что языки этих систем (а это, как правило, SQL) являются

    непроцедурными, т.е. в операторе такого языка специфицируется некоторое

    действие над БД, но эта спецификация не является процедурой, а лишь

    описывает в некоторой форме условия совершения желаемого действия

    (вспомните примеры из первой лекции). Поэтому компилятор должен решить,

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

    Применяются достаточно сложные методы оптимизации операторов, которые мы

    подробно рассмотрим в следующих лекциях. Результатом компиляции является

    выполняемая программа, представляемая в некоторых системах в машинных

    кодах, но более часто в выполняемом внутреннем машинно-независимом коде. В

    последнем случае реальное выполнение оператора производится с привлечением

    подсистемы поддержки времени выполнения, представляющей собой, по сути

    дела, интерпретатор этого внутреннего языка.

    Наконец, в отдельные утилиты БД обычно выделяют такие процедуры, которые

    слишком накладно выполнять с использованием языка БД, например, загрузка и

    выгрузка БД, сбор статистики, глобальная проверка целостности БД и т.д.

    Утилиты программируются с использованием интерфейса ядра СУБД, а иногда

    даже с проникновением внутрь ядра.

    Ранние подходы к организации БД. Системы, основанные на инвертированных

    списках, иерархические и сетевые СУБД. Примеры. Сильные места и недостатки

    ранних систем

    Прежде, чем перейти к детальному и последовательному изучению реляционных

    систем БД, остановимся коротко на ранних (дореляционных) СУБД. В этом есть

    смысл по трем причинам: во-первых, эти системы исторически предшествовали

    реляционным, и для правильного понимания причин повсеместного перехода к

    реляционным системам нужно знать хотя бы что-нибудь про их

    предшественников; во-вторых, внутренняя организация реляционных систем во

    многом основана на использовании методов ранних систем; в-третьих,

    некоторое знание в области ранних систем будет полезно для понимания путей

    развития пост реляционных СУБД.

    Заметим, что в этой лекции мы ограничиваемся рассмотрением только общих

    подходов к организации трех типов ранних систем, а именно, систем,

    основанных на инвертированных списках, иерархических и сетевых систем

    управления базами данных. Мы не будем касаться особенностей каких-либо

    конкретных систем; это привело бы к изложению многих технических деталей,

    которые, хотя и интересны, находятся несколько в стороне от основной цели

    нашего курса. Детали можно найти в рекомендованной литературе.

    Начнем с некоторых наиболее общих характеристик ранних систем:

    1. Эти системы активно использовались в течение многих лет, дольше, чем

    используется какая-либо из реляционных СУБД. На самом деле некоторые

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

    базы данных, и одной из актуальных проблем информационных систем

    является использование этих систем совместно с современными системами.

    2. Все ранние системы не основывались на каких-либо абстрактных моделях.

    Как мы упоминали, понятие модели данных фактически вошло в обиход

    специалистов в области БД только вместе с реляционным подходом.

    Абстрактные представления ранних систем появились позже на основе

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

    3. В ранних системах доступ к БД производился на уровне записей.

    Пользователи этих систем осуществляли явную навигацию в БД, используя

    языки программирования, расширенные функциями СУБД. Интерактивный

    доступ к БД поддерживался только путем создания соответствующих

    прикладных программ с собственным интерфейсом.

    4. Можно считать, что уровень средств ранних СУБД соотносится с уровнем

    файловых систем примерно так же, как уровень языка Кобол соотносится с

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

    реляционных систем соответствует уровню языков Ада или APL.

    5. Навигационная природа ранних систем и доступ к данным на уровне

    записей заставляли пользователя самого производить всю оптимизацию

    доступа к БД, без какой-либо поддержки системы.

    6. После появления реляционных систем большинство ранних систем было

    оснащено "реляционными" интерфейсами. Однако в большинстве случаев это

    не сделало их по-настоящему реляционными системами, поскольку

    оставалась возможность манипулировать данными в естественном для них

    режиме.

    3.1. Основные особенности систем, основанных на инвертированных списках

    К числу наиболее известных и типичных представителей таких систем относятся

    Datacom/DB компании Applied Data Research, Inc. (ADR), ориентированная на

    использование на машинах основного класса фирмы IBM, и Adabas компании

    Software AG.

    Организация доступа к данным на основе инвертированных списков используется

    практически во всех современных реляционных СУБД, но в этих системах

    пользователи не имеют непосредственного доступа к инвертированным спискам

    (индексам). Кстати, когда мы будем рассматривать внутренние интерфейсы

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

    интерфейсам систем, основанных на инвертированных списках.

    3.1.1. Структуры данных

    База данных, организованная с помощью инвертированных списков, похожа на

    реляционную БД, но с тем отличием, что хранимые таблицы и пути доступа к

    ним видны пользователям. При этом:

    1. Строки таблиц упорядочены системой в некоторой физической

    последовательности.

    2. Физическая упорядоченность строк всех таблиц может определяться и для

    всей БД (так делается, например, в Datacom/DB).

    3. Для каждой таблицы можно определить произвольное число ключей поиска,

    для которых строятся индексы. Эти индексы автоматически поддерживаются

    системой, но явно видны пользователям.

    3.1.2. Манипулирование данными

    Поддерживаются два класса операторов:

    1. Операторы, устанавливающие адрес записи, среди которых:

    прямые поисковые операторы (например, найти первую запись таблицы по

    некоторому пути доступа);

    операторы, находящие запись в терминах относительной позиции от предыдущей

    записи по некоторому пути доступа.

    Операторы над адресуемыми записями

    Типичный набор операторов:

    LOCATE FIRST - найти первую запись таблицы T в физическом порядке;

    возвращает адрес записи;

    LOCATE FIRST WITH SEARCH KEY EQUAL - найти первую запись таблицы T с

    заданным значением ключа поиска K; возвращает адрес записи;

    LOCATE NEXT - найти первую запись, следующую за записью с заданным адресом

    в заданном пути доступа; возвращает адрес записи;

    LOCATE NEXT WITH SEARCH KEY EQUAL - найти следующую запись таблицы T в

    порядке пути поиска с заданным значением K; должно быть соответствие между

    используемым способом сканирования и ключом K; возвращает адрес записи;

    LOCATE FIRST WITH SEARCH KEY GREATER - найти первую запись таблицы T в

    порядке ключа поиска K cо значением ключевого поля, большим заданного

    значения K; возвращает адрес записи;

    RETRIVE - выбрать запись с указанным адресом;

    UPDATE - обновить запись с указанным адресом;

    DELETE - удалить запись с указанным адресом;

    STORE - включить запись в указанную таблицу; операция генерирует адрес

    записи.

    3.1.3. Ограничения целостности

    Общие правила определения целостности БД отсутствуют. В некоторых системах

    поддерживаются ограничения уникальности значений некоторых полей, но в

    основном все возлагается на прикладную программу.

    3.2. Иерархические системы

    Типичным представителем (наиболее известным и распространенным) является

    Information Management System (IMS) фирмы IBM. Первая версия появилась в

    1968 г. До сих пор поддерживается много баз данных, что создает

    существенные проблемы с переходом как на новую технологию БД, так и на

    новую технику.

    3.2.1. Иерархические структуры данных

    Иерархическая БД состоит из упорядоченного набора деревьев; более точно, из

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

    Тип дерева состоит из одного "корневого" типа записи и упорядоченного

    набора из нуля или более типов поддеревьев (каждое из которых является

    некоторым типом дерева). Тип дерева в целом представляет собой иерархически

    организованный набор типов записи.

    Пример типа дерева (схемы иерархической БД):

    Здесь Отдел является предком для Начальник и Сотрудники, а Начальник и

    Сотрудники - потомки Отдел. Между типами записи поддерживаются связи.

    База данных с такой схемой могла бы выглядеть следующим образом (мы

    показываем один экземпляр дерева):

    Все экземпляры данного типа потомка с общим экземпляром типа предка

    называются близнецами. Для БД определен полный порядок обхода - сверху-

    вниз, слева-направо.

    В IMS использовалась оригинальная и нестандартная терминология: "сегмент"

    вместо "запись", а под "записью БД" понималось все дерево сегментов.

    3.2.2. Манипулирование данными

    Примерами типичных операторов манипулирования иерархически организованными

    данными могут быть следующие:

    Найти указанное дерево БД (например, отдел 310);

    Перейти от одного дерева к другому;

    Перейти от одной записи к другой внутри дерева (например, от отдела - к

    первому сотруднику);

    Перейти от одной записи к другой в порядке обхода иерархии;

    Вставить новую запись в указанную позицию;

    Удалить текущую запись.

    3.2.3. Ограничения целостности

    Автоматически поддерживается целостность ссылок между предками и потомками.

    Основное правило: никакой потомок не может существовать без своего

    родителя. Заметим, что аналогичное поддержание целостности по ссылкам между

    записями, не входящими в одну иерархию, не поддерживается (примером такой

    "внешней" ссылки может быть содержимое поля Каф_Номер в экземпляре типа

    записи Куратор).

    В иерархических системах поддерживалась некоторая форма представлений БД на

    основе ограничения иерархии. Примером представления приведенной выше БД

    может быть иерархия

    3.3. Сетевые системы

    Типичным представителем является Integrated Database Management System

    (IDMS) компании Cullinet Software, Inc., предназначенная для использования

    на машинах основного класса фирмы IBM под управлением большинства

    операционных систем. Архитектура системы основана на предложениях Data Base

    Task Group (DBTG) Комитета по языкам программирования Conference on Data

    Systems Languages (CODASYL), организации, ответственной за определение

    языка программирования Кобол. Отчет DBTG был опубликован в 1971 г., а в 70-

    х годах появилось несколько систем, среди которых IDMS.

    3.3.1. Сетевые структуры данных

    Сетевой подход к организации данных является расширением иерархического. В

    иерархических структурах запись-потомок должна иметь в точности одного

    предка; в сетевой структуре данных потомок может иметь любое число предков.

    Сетевая БД состоит из набора записей и набора связей между этими записями,

    а если говорить более точно, из набора экземпляров каждого типа из

    заданного в схеме БД набора типов записи и набора экземпляров каждого типа

    из заданного набора типов связи.

    Тип связи определяется для двух типов записи: предка и потомка. Экземпляр

    типа связи состоит из одного экземпляра типа записи предка и упорядоченного

    набора экземпляров типа записи потомка. Для данного типа связи L с типом

    записи предка P и типом записи потомка C должны выполняться следующие два

    условия:

    Каждый экземпляр типа P является предком только в одном экземпляре L;

    Каждый экземпляр C является потомком не более, чем в одном экземпляре L.

    На формирование типов связи не накладываются особые ограничения; возможны,

    например, следующие ситуации:

    1. Тип записи потомка в одном типе связи L1 может быть типом записи

    предка в другом типе связи L2 (как в иерархии).

    2. Данный тип записи P может быть типом записи предка в любом числе типов

    связи.

    3. Данный тип записи P может быть типом записи потомка в любом числе

    типов связи.

    4. Может существовать любое число типов связи с одним и тем же типом

    записи предка и одним и тем же типом записи потомка; и если L1 и L2 -

    два типа связи с одним и тем же типом записи предка P и одним и тем же

    типом записи потомка C, то правила, по которым образуется родство, в

    разных связях могут различаться.

    5. Типы записи X и Y могут быть предком и потомком в одной связи и

    потомком и предком - в другой.

    6. Предок и потомок могут быть одного типа записи.

    Простой пример сетевой схемы БД:

    3.3.2. Манипулирование данными

    Примерный набор операций может быть следующим:

    Найти конкретную запись в наборе однотипных записей (инженера Сидорова);

    Перейти от предка к первому потомку по некоторой связи (к первому

    сотруднику отдела 310);

    Перейти к следующему потомку в некоторой связи (от Сидорова к Иванову);

    Перейти от потомка к предку по некоторой связи (найти отдел Сидорова);

    Создать новую запись;

    Уничтожить запись;

    Модифицировать запись;

    Включить в связь;

    Исключить из связи;

    Переставить в другую связь и т.д.

    3.3.3. Ограничения целостности

    В принципе их поддержание не требуется, но иногда требуют целостности по

    ссылкам (как в иерархической модели).

    3.4. Достоинства и недостатки

    Сильные места ранних СУБД:

    Развитые средства управления данными во внешней памяти на низком уровне;

    Возможность построения вручную эффективных прикладных систем;

    Возможность экономии памяти за счет разделения подобъектов (в сетевых

    системах).

    Недостатки:

    Слишком сложно пользоваться;

    Фактически необходимы знания о физической организации;

    Прикладные системы зависят от этой организации;

    Их логика перегружена деталями организации доступа к БД.

    Теоретические основы

    Мы приступаем к изучению реляционных баз данных и систем управления

    реляционными базами данных. Этот подход является наиболее распространенным

    в настоящее время, хотя наряду с общепризнанными достоинствами обладает и

    рядом недостатков. К числу достоинств реляционного подхода можно отнести:

    наличие небольшого набора абстракций, которые позволяют сравнительно просто

    моделировать большую часть распространенных предметных областей и допускают

    точные формальные определения, оставаясь интуитивно понятными;

    наличие простого и в то же время мощного математического аппарата,

    опирающегося главным образом на теорию множеств и математическую логику и

    обеспечивающего теоретический базис реляционного подхода к организации баз

    данных;

    возможность ненавигационного манипулирования данными без необходимости

    знания конкретной физической организации баз данных во внешней памяти.

    Реляционные системы далеко не сразу получили широкое распространение. В то

    время, как основные теоретические результаты в этой области были получены

    еще в 70-х, и тогда же появились первые прототипы реляционных СУБД, долгое

    время считалось невозможным добиться эффективной реализации таких систем.

    Однако отмеченные выше преимущества и постепенное накопление методов и

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

    тому, что уже в середине 80-х годов реляционные системы практически

    вытеснили с мирового рынка ранние СУБД.

    В настоящее время основным предметом критики реляционных СУБД является не

    их недостаточная эффективность, а присущая этим системам некоторая

    ограниченность (прямое следствие простоты) при использование в так

    называемых нетрадиционных областях (наиболее распространенными примерами

    являются системы автоматизации проектирования), в которых требуются

    предельно сложные структуры данных. Еще одним часто отмечаемым недостатком

    реляционных баз данных является невозможность адекватного отражения

    семантики предметной области. Другими словами, возможности представления

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

    очень ограничены. Современные исследования в области постреляционных систем

    главным образом посвящены именно устранению этих недостатков.

    Общие понятия реляционного подхода к организации БД. Основные концепции и

    термины

    На этой лекции мы введем на сравнительно неформальном уровне основные

    Страницы: 1, 2, 3, 4, 5, 6


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.