Реляционная модель данных. Постреляционные субд. объектные субд. недостатки реляционных субд. основные концепции объектно-ориентированных субд

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

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

Коммерческие СУБД ведут свою историю с середины 60-х годов, когда компанией IBM был выпущен первый продукт данного класса – иерархическая СУБД IMS. В начале 70-х годов Эдгаром Коддом были заложены основы реляционной модели данных, был разработан структурированный язык запросов SQL, а в 80-х годах были созданы промышленные СУБД, которые в скором времени заняли доминирующее положение. В настоящее время ведущая тройка игроков – Microsoft, Oracle и IBM – полностью контролируют рынок, а их флагманские продукты Microsoft SQL Server, Oracle Database и IBM DB2 вместе занимают долю рынка около 90%. Рынок СУБД активно растет и, по мнению аналитиков Forrester, к 2013 году его общий объем достигнет 32 млрд долл.

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

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

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

Поскольку постреляционная модель использует многомерные структуры, позволяющие хранить в полях таблицы другие таблицы, ее еще называют "не первой нормальной формой" или "многомерной базой данных". В качестве языка в данной модели запросов используется расширенный SQL, позволяющий извлекать сложные объекты из одной таблицы без операций соединения. Можно сказать, что реляционные и постреляционные СУБД различаются способами хранения и индексирования данных, во всем остальном они схожи. Первыми постреляционными СУБД, получившими достаточно большую известность, стали Universe компании Ardent (впоследствии купленной Informix, которую, в свою очередь, приобрела IBM) и ADABAS компании Software AG.

Объектно-реляционные СУБД

Кроме отказа от нормализации, постреляционные СУБД позволяют хранить в полях отношений данные абстрактных, определяемых пользователями типов. Это дает возможность решать задачи нового уровня, хранить объекты и массивы данных, ориентированные на конкретные предметные области, а также роднит постреляционные СУБД с еще одним классом – объектно-ориентированными СУБД. Внедрение объектного подхода в традиционную реляционную модель дало повод к появлению еще одного направления – объектно-реляционных СУБД. Первым представителем данного класса систем принято считать систему Informix Universal Server одноименной компании.

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

Одной из наиболее известных постреляционных СУБД является система Postgres, созданная в середине 80-х годов прошлого века под руководством одного из ведущих разработчиков СУБД Майкла Стоунбрейкера. Стоунбрейкер оказал (и продолжает оказывать) огромное влияние на индустрию СУБД, приложив руку практически ко всем перспективным разработкам в данной сфере. В Postgres традиционная реляционная модель была расширена за счет внедрения механизмов управления объектами, которые позволяли хранить и эффективно управлять нетрадиционными типами данных. Также в Postgres поддерживалась многомерная темпоральная модель хранения и доступа к данным. Все основные идеи и разработки Postgers были продолжены и развиты в свободно распространяемой СУБД PostgreSQL, которая в настоящее время является наиболее развитой открытой СУБД.

Зачастую постреляционными называют также СУБД, которые позволяют представлять данные как в виде реляционных таблиц, так и классов объектов. Типичным представителем данного вида СУБД является система Cache компании InterSystems. По словам ее разработчиков, в данной системе наиболее эффективно совмещены реляционный и объектный подходы, основанные, соответственно, на стандартах SQL-92 и ODMG 2.0. Механизмы работы с объектами и реляционными таблицами находятся на одном логическом уровне, что обеспечивает более высокую скорость доступа и работы с данными и функциональную полноту. Также Cache использует многомерную модель хранения данных и оптимизирована для обработки транзакций в системах с большими и сверхбольшими БД (сотни гигабайт, терабайты) и большим количеством (тысячи, десятки тысяч) одновременно работающих пользователей, при этом позволяя получать очень высокую производительность.

Перспективы развития

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

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

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

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

Максим Никитин

План-конспект урока

Тема: Базы данных. Основные объекты БД. СУБД.

Цель урока:

  • 1. Познавательная - познакомить учащихся с:
    • определением базы данных и СУБД,
    • их основными типами (моделями),
    • интерфейсом программы Ms ACCESS,
    • основными объектами БД,
    • разными способами создания таблиц.
  • 2. Развивающая
    • Учить строить аналогии, выделять главное, ставить и решать проблемы.
  • 3. Воспитательная
    • Воспитывать аккуратность, внимательность, вежливость и дисциплинированность.

План урока:

  • 1. Актуализация опорных знаний.
  • 2. Запуск программ на выполнение;
  • 3. Ввод данных в таблицу.
  • 2. Определение БД И СУБД.
  • 3. Типы СУБД.
  • 4. Реляционная СУБД. Таблица, запись, поле.
  • 5. Самостоятельная работа на компьютере.
  • 6. Закрепление нового материала.
  • 7. Итоги урока.
  • 1 Определение БД И СУБД

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

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

    БД делятся на фактографические и документальные. Фактографические БД содержат короткие сведения об объектах, поданные в точно определенном формате (1-3), например, Автор, название, год издания … В документальных БД содержится информация разного типа: текстовая, звуковая, графическая, мультимедийная (4, 5). Например, БД современной музыки может содержать тексты и ноты песен, фотографии авторов, звуковые записи, видеоклипы. Сама по себе БД содержит только информацию – «Информационный склад» –и не может обслуживать запросы пользователя на поиск и обработку информации. Обслуживание пользователя осуществляет СИСТЕМА УПРАВЛЕНИЯ БАЗОЙ ДАННЫХ. СУБД – Это ПО, которое позволяет создавать БД, обновлять и дополнять информацию, обеспечивать гибкий доступ к информации. СУБД создает на экране компьютера определенную среду для работы пользователя (интерфейс), и имеет определенные режимы работы и систему команд. Именно на основе СУБД создаются и функционируют информационно-поисковые системы(WWW).

    3. Типы СУБД

    Известны 3 способа организации информации в БД и связей между ними:

    • Иерархические (в виде дерева),
    • Сетевые,
    • Реляционные.

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

    4. Реляционная СУБД. Таблица, запись, поле.

    Реляционной (от английского “ relation” - отношение) называется БД, которая содержит информацию, организованную в виде прямоугольной таблицы. Каждая строка таблицы содержит информацию об одном конкретном объекте БД (книге, сотруднике, товаре), а каждый столбец – конкретную характеристику этого объекта (фамилия, название, цена). Строки такой таблицы называются записями, столбцы – полями. Каждая запись должна отличаться от другой значением хотя бы одного поля, которое называется ключом. Ключевое поле – это поле или группа полей, которые однозначно определяют запись. Например, табельный номер сотрудника, код изделия, номер автомобиля. Таб_№ ФИО Дата_рожд Дата_приема Должность Оклад 001 < Иванов И.И. 12.05.65 1.02.80 директор 1000 002 Петров П.П. 30.10.75 2.03.95 бугалтер 500 003 Сидоров С.С 4.01.81 4.06.00 исполнитель 100 Каждое поле имеет свой формат и тип. Реальные БД состоят, как правило, из нескольких таблиц, связанных между собой каким-нибудь полем и, при запросе к такой БД можно использовать информацию из разных таблиц. Основные объекты БД:

    • Таблицы - основные объекты БД, где хранится информация,
    • Запросы – предназначенные для выбора нужных данных из одной или нескольких взаимосвязанных таблиц.
    • Формы – предназначенные для ввода, просмотра и редактирования взаимосвязанных данных в удобном виде.
    • Отчёты – формирование данных в удобном для просмотра виде и при необходимости их печати.

    5. Самостоятельная работа на компьютере

    На сетевом диске, в папке «ЗАДАНИЯ ДЛЯ БД» открыть презентацию «Базы данных и СУБД», прочитать ее и ответить письменно на вопросы:

    • 1. Какое основное назначение БД?
    • 2. По каким критериям классифицируются БД? Укажите критерий и виды, соответственно этого критерия.
    • 3. Что такое ключевое поле в БД?
    • 4. Какой основной элемент БД?
    • 5. Какие операции можно производить с помощью СУБД с БД?
    • 6. Основные типы данных в таблицах СУБД.

    6. Итоги урока

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

    Практическая часть

    Создание базы данных. Ввод и форматирование данных

    • 1. Включите компьютер. Загрузите СУБД ACCESS. Сначала нужно создать новую базу данных.
    • 2. Выполним следующую последовательность действий: в меню Файл выберем команду Создать. Имя файла: skaz.mdb. OK. Перед вами появилось диалоговое окно «База данных».
    • 3. Внимательно прочитайте назначение кнопок на панели инструментов, медленно перемещая курсор мыши по кнопкам.
    • 4. После этого создайте таблицу, выполнив следующую последовательность действий: Таблица/Создать/Новая таблица.

    Создание таблицы, то есть определение входящих в таблицу полей, производится заполнением специальной таблицы: Поле Тип данных Описание

    • 5. Заполните такую таблицу, внеся в нее следующие данные:

    Поле Тип данных Описание № Счетчик Персонаж Текстовый Профессия Текстовый Особые приметы Текстовый Герой Логический Положительный или отрицательный герой

    • 6. Поле № не обязательное, мы его вводим для того, чтобы определить ключевое поле, так как любая таблица должна иметь ключ.
    • 7. Созданную таблицу нужно сохранить, дав ей имя с помощью команд: Файл/Сохранить как..., Имя таблицы: «Персонаж», OK.
    • 8. Введите информацию в таблицу Таблица/«Персонаж»/Открыть и обычным образом введите данные, например такие:

    № Персонаж Профессия особые приметы герой

    • 1 Буратино деревянный человечек длинный нос Да
    • 2 Папа Карло Шарманщик Да
    • 3 Карабас Барабас директор кукольного театра длинная борода, достающая до пола Нет
    • 4 Лиса Алиса Мошенница хромая на одну ногу Нет
    • 5 Кот Базилио Мошенник слепой на оба глаза Нет
    • 6 Мальвина артистка театра девочка с голубыми волосами Да
    • 7 Дуремар Фармацевт характерный запах тины Нет
    • 8 Тортилла хранительница золотого ключика черепаха Да
    • 9. При помощи мыши выделите:
      • а) запись 5,
      • б) запись 3,
      • в) с третьей по седьмую запись. Отмените выделение.
      • г) Выделите все записи. Отмените выделение.
      • д) Выделите поле «Персонаж».
      • е) Выделите одновременно поля: «Профессия», «Особые приметы» и «Герой», отмените выделение.
      • ж) Выделите все поля. Это можно сделать при помощи мыши или в меню Правка выбрать команду Выделить все записи.
    • 10. Отмените выделение.
    • 11. Выделите:
      • а) В поле «Особые приметы» отметьте шестую запись.
      • б) В поле «Персонаж» выделите с четвертой по шестую запись.
      • в) Не отпуская кнопку мыши, отметьте эти же записи в полях «Особые приметы» и «Герой».
    • 12. Отмените выделение.
    • 13. Выделите всю таблицу.
    • 14. Отмените выделение.
    • 15. Измените ширину каждого столбца, так чтобы ширина колонок была минимальной, но был виден весь текст.

    Это можно сделать при помощи мыши, раздвинув столбцы или следующим образом. Выделите нужный столбец и нажмите правую кнопку мыши, в контекстном меню выберете команду «Ширина столбца»; в открывшемся окне нажмите кнопку По ширине данных. Проделайте такую же работу со всеми полями. Высоту строки можно изменить аналогичным образом с помощью мыши или в меню Формат командой Высота строки. Причем достаточно отредактировать одну строку, высота остальных строк изменяется автоматически.

    • 16. Любым способом измените высоту строки и сделайте ее равной 30.
    • 17. Измените шрифт таблицы на Arial Cyr, размер шрифта 14, полужирный.

    Изменить шрифт можно так: вывести указатель мыши за пределы таблицы и нажать левую кнопку мыши, в контекстном меню выбрать Шрифт или в меню Правка на панели инструментов выбором команды Шрифт.

    • 18. Измените шрифт текста на Times New Roman Cyr, размер шрифта 10.
    • 19. Измените ширину полей.
      • а) Сделайте столбец «Персонаж» шириной 20.
      • б) Столбец «Особые приметы» шириной 25.

    Вы видите, что текст в этих полях напечатался в две строки.

    • 20. Подгоните ширину столбцов так, чтобы текст вмещался полностью.
    • 21. Выполните сортировку таблицы по полю «Персонаж» в порядке, обратном алфавитному.

    Это можно сделать так. Выделите поле «Персонаж» и нажмите кнопку Сортировка по убыванию на панели инструментов.

    • 22. Верните таблицу в исходное состояние.

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

    • Структурный аспект (составляющая) - данные в базе данных представляют собой набор отношений.
    • Аспект (составляющая) целостности - отношения (таблицы) отвечают определенным условиям целостности. РМД поддерживает декларативные ограничения целостности уровня домена (типа данных), уровня отношения и уровня базы данных.
    • Аспект (составляющая) обработки (манипулирования) - РМД поддерживает операторы манипулирования отношениями (реляционная алгебра, реляционное исчисление).

    Кроме того, в состав реляционной модели данных обычно включают теорию нормализации.

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

    Термин «реляционный» означает, что теория основана на математическом понятии отношение (relation). В качестве неформального синонима термину «отношение» часто встречается слово таблица. Необходимо помнить, что «таблица» есть понятие нестрогое и неформальное и часто означает не «отношение» как абстрактное понятие, а визуальное представление отношения на бумаге или экране.

    Для лучшего понимания РМД следует отметить три важных обстоятельства:

    • модель является логической, т.е. отношения являются логическими (абстрактными), а не физическими (хранимыми) структурами;
    • для реляционных баз данных верен информационный принцип: все информационное наполнение базы данных представлено одним и только одним способом, а именно - явным заданием значений атрибутов в кортежах отношений; в частности, нет никаких указателей (адресов), связывающих одно значение с другим;
    • наличие реляционной алгебры позволяет реализовать декларативное программирование и декларативное описаний ограничений целостности, в дополнение к навигационному (процедурному) программированию и процедурной проверке условий.

    Принципы реляционной модели были сформулированы в 1969-1970 годах Э. Ф. Коддом (E. F. Codd). Идеи Кодда были впервые подробно изложены в статье «A Relational Model of Data for Large Shared Data Banks», ставшей классической.

    Строгое изложение теории реляционных баз данных (реляционной модели данных) в современном понимании можно найти в книге К. Дж. Дейта. «C. J. Date. An Introduction to Database Systems» («Дейт, К. Дж. Введение в системы баз данных»).

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

    Достоинства реляционной модели

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

    Недостатки реляционной модели

    • Относительно низкая скорость доступа и большой объем внешней памяти.
    • Трудность понимания структуры данных из-за появления большого кол-ва таблиц в результате логического проектирования.
    • Далеко не всегда предметную область можно представить в виде совокупности таблиц.

    Постреляционные СУБД. Объектные СУБД. Недостатки реляционных СУБД. Основные концепции объектно-ориентированных СУБД.

    Реляционные системы управления базами данных являются ограниченными. Они идеально походят для таких традиционных приложений, как системы резервирования билетов или мест в гостиницах, а также банковских систем, но их применение в системах автоматизации проектирования, интеллектуальных производственных системах и других системах, основанных на знаниях, часто является затруднительным. Это, прежде всего, связано с примитивностью структур данных, лежащих в основе реляционной модели данных. Плоские нормализованные отношения универсальны и теоретически достаточны для представления данных любой предметной области. Однако в нетрадиционных приложениях в базе данных появляются сотни, если не тысячи таблиц, над которыми постоянно выполняются дорогостоящие операции соединения, необходимые для воссоздания сложных структур данных, присущих предметной области.

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

    В качестве других недостатков реляционных СУБД отмечаются следующие:

    · негибкость структуры для развивающихся БД,

    · затруднения в построении концептуальной модели для объектов с многочисленными связями “многие – ко – многим”,

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

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

    1. Абстракция: Каждая реальная "вещь", которая хранится в БД, является членом какого-либо класса. Класс определяется как совокупность свойств, методов, общедоступных и частных структур данных, а также программы, применимых к объектам (экземплярам) данного класса. Классы представляют собой ни что иное, как абстрактные типы данных. Методы - это процедуры, которые вызываются для того, чтобы произвести какие-либо действия с объектом (например, напечатать себя или скопировать себя). Свойства - это значения данных, связанные с каждым объектом класса, характеризующие его тем или иным образом (например, цвет, возраст).

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

    3. Наследование (одиночное или множественное): Классы определены как часть иерархии классов. Определение каждого класса более низкого уровня наследует свойства и методы его родителя, если они только они явно не объявлены ненаследуемыми или изменены новым определением. При одиночном наследовании класс может иметь только один родительский класс (т.е. классовая иерархия имеет древовидную структуру). При множественном наследовании класс может происходить от многочисленных родителей (т.е. иерархия классов имеет структуру ориентированного нециклического графа, не обязательно древовидную).

    4. Полиморфизм : Несколько классов могут иметь совпадающие имена методов и свойств, даже если они считаются различными. Это позволяет писать методы доступа, которые будут правильно работать с объектами совершенно различных классов, лишь бы соответствующие методы и свойства были в этих классах определены.

    5. Сообщения : Взаимодействие с объектами осуществляется путем посылки сообщений с возможностью получения ответов.

    Каждый объект, информация о котором хранится в ООБД, считается принадлежащим какому-либо классу, а связи между классами устанавливаются при помощи свойств и методов классов.

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

    Реляционные БД с их строгим определением структуры и ограниченным набором разрешенных операций, бесспорно, не подходят в качестве базовой платформы для ООБД. Более приспособленной для использования в качестве базовой платформы для СУООБД представляется система М-языка с ее более гибкой структурой данных и более процедурным подходом к разработке.

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

    Объектно-реляционными СУБД являются, к примеру, Oracle Database и PostgreSQL; разница между объектно-реляционными и объектными СУБД: первые являют собой надстройку над реляционной схемой, вторые же изначально объектно-ориентированы.

    Доступ к объекту в реляционных СУБД.1) СУБД определяет страницу во внешнем устройстве хранения, содержащую требуемую запись. Используя механизмы индекса или выполняя полный просмотр таблиц. Затем СУБД считывает эту страницу из внешнего устройства хранения и копирует ее в КЕШ 2.СУБД последовательно переносит данные из КЕШа в пространство памяти приложения. При этом может понадобится выполнить преобразования типов данных SQL в типы данных приложения. Приложение может обновлять значения полей в своем пространстве памяти. 3. модифицированные приложением поля данных средствами языка SQL переносится назад в КЕШ СУБД, в процессе чего может опять потребоваться выполнить преобразование типов данных. 4. СУБД сохраняет обновленную страницу на внешнем устройстве хранения переписывая ее из КЕШа.

    Доступ к объекту в ООСУБД. 1. ООСУБД наход ит на внешнем уст-ве хранения страницу, содержащую требуемый объект, используя его индекс если это необходимо. Затем ООСУБД считывает из внешнего устр-ва хранения требуемую страницу и копирует ее в КЕШ страниц приложения, находящийся в пределах памяти, отведенной приложению. 2. ООСУБД м ожет выполнить несколько преобразований: 1. подстановку ссылок (указателей) одного объекта на другой. 2. введение в состав данных объекта информации, которая необходима для обеспечения соответствия требованиям, предъявляемым со стороны языка программирования. 3. Изменение формата представления данных созданных на разных аппаратных платформах или языках программирования. 3. Приложение осуществляет доступ к объекту и обновляет его по мере необходимости. 4. Когда приложению потребуется сделать внесенные изменения пермонентными или выгрузить на время стр. из КЕШа на диск, то перед копированием стр. на внешнее уст-во хранения ООСУБД должна выполнить обратные преобразования аналогичные описанным выше.



    Билет №27

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

    Деловая активность предприятия обычно характеризуется интен­сивностью использования инвестированного (внутреннего) капитала. В производстве капитал находится в постоянном движении, переходя из одной стадии кругооборота в другую: т. е. реализуется технология Д®Т®…®П®…Т®Д". Деньги, товар

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

    Эффективность использования инвестированного капитала оценивается путем расчета следующих показателей.

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

    Таким образом, мы предполагаем, что решение о выборе СУБД уже принято руководителем ИТ-проекта, и согласовано с заказчиком базы данных, т.е. СУБД задана. Проектировщик базы данных должен ознакомиться с документацией, в которой описан диалект SQL, поддерживаемый выбранной СУБД. В настоящей лекции предполагается, что была выбрана СУБД Oracle 9i, хотя подавляющая часть материала охватывает объекты в любой промышленной реляционной СУБД.

    Замечание. О выборе СУБД. Выбор СУБД относится к многокритериальной задаче выбора и в настоящем курсе не рассматривается. Следует помнить о том, что СУБД обычно поддерживает только одну модель данных: реляционную, иерархическую, сетевую, многомерную, объектно-ориентированную, объектно-реляционную. Исключение составляют небольшое число СУБД. Например, ADABAS, Software AG (сетевая и реляционная модели), или Oracle 9i, Oracle Inc. (реляционная и объектно-реляционная модели). Обычно при выборе СУБД при всех прочих равных возможностях стараются создать базу данных на СУБД, претендующей на промышленный стандарт.

    Иерархия объектов реляционной базы данных прописана в стандартах по SQL, в частности, в стандарте SQL-92 , на который мы будем ориентироваться при изложении материала настоящей лекции. Этот стандарт поддерживается практически всеми современными СУБД, вплоть до настольных. Иерархия объектов реляционной базы данных показана на рисунке ниже.

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

    Замечание. В контексте лекции атрибуты, колонки, столбцы и поля считаются синонимами. То же относится и к терминам "строка", "запись" и "кортеж".

    Таблицы и представления, которые представляют физическое отражение логической структуры базы данных, собираются в схему. Несколько схем собираются в каталоги, которые затем могут быть сгруппированы в кластеры. Следует отметить, что ни одна из групп объектов стандарта SQL-92 не связана со структурами физического хранения информации в памяти компьютеров.


    Рис. 8.1.

    Помимо указанных на рисунке объектов, в реляционной базе данных могут быть созданы индексы, триггеры, события, хранимые команды, хранимые процедуры и ряд других. Теперь перейдем к определению объектов реляционной базы данных.

    Основные объекты реляционной базы данных

    Кластеры, каталоги и схемы не являются обязательными элементами стандарта и, следовательно, программной среды реляционных баз данных.

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

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

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

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

    Далее объекты реляционной базы данных будут вводиться в контексте реляционной СУБД Oracle 9i. Такой подход принят потому, что проектирование физической модели реляционной базы данных выполняется для конкретной среды ее реализации.

    В Oracle 9i термин схема (Schema) используется для описания всех объектов базы данных, которые созданы некоторым пользователем. Для каждого нового пользователя автоматически создается новая схема.

    К числу основных объектов реляционных баз данных относятся таблица, представление и пользователь.

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

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

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

    Для упрощения идентификации и именования объектов в базе данных поддерживается такие объекты, как синоним, последовательность и .

    Синоним ( Synonym ) - это альтернативное имя объекта (псевдоним) реляционной базы данных, которое позволяет иметь доступ к данному объекту. Синоним может быть общим и частным. Общий синоним позволяет всем пользователям базы данных обращаться к соответствующему объекту по его псевдониму. Синоним позволяет скрыть от конечных пользователей полную квалификацию объекта в базе данных.

    Последовательность (Sequence) - это объект базы данных, который позволяет генерировать последовательность уникальных чисел (номеров) в условиях многопользовательского асинхронного доступа. Обычно элементы последовательности используются для уникальной нумерации элементов таблиц (строк) в операциях модификации данных.

    Определенные пользователем типы данных ( User-defined data types ) представляют собой определенные пользователем типы атрибутов (домены), которые отличаются от поддерживаемых (встроенных) СУБД типов. Они определяются на основе встроенных типов. Определенные пользователем типы данных образуют ту часть среды СУБД, которая организована в соответствии с объектно-ориентированной парадигмой.

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

    Индекс (Index) - это объект базы данных, создаваемый для повышения производительности выборки данных и контроля уникальности первичного ключа (если он задан для таблицы). Полностью индексные таблицы (index-organized tables) исполняют роль таблицы и индекса одновременно.

    Табличное пространство или область ( Tablespace ) - это именованная часть базы данных, используемая для распределения памяти для таблиц и индексов. В Oracle 9i - это логическое имя физических файлов операционной системы. Все объекты базы данных, в которых хранятся данные, соответствуют некоторым табличным пространствам . Большинство объектов базы данных, в которых данные не хранятся, находятся в словаре данных, расположенном в табличном пространстве SYSTEM .

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

    Секция (Partition) - это объект базы данных, который позволяет представить объект с данными в виде совокупности подобъектов, отнесенных к различным табличным пространствам . Таким образом, секционирование позволяет распределять очень большие таблицы на нескольких жестких дисках.

    Для обработки данных специальным образом или для реализации поддержки ссылочной целостности базы данных используются объекты: хранимая процедура, функция, команда, триггер, таймер и пакет (Oracle). С помощью этих объектов базы данных можно выполнять так называемую построчную обработку (record processing) данных. С точки зрения приложений баз данных построчная обработка - это последовательная выборка данных по одной строке, ее обработка и переход к обработке следующей строки.

    Данные объекты реляционной базы данных представляют собой программы, т.е. исполняемый код. Этого код обычно называют серверным кодом (server-side code) , поскольку он выполняется компьютером, на котором установлено ядро реляционной СУБД. Планирование и разработка такого кода является одной из задач проектировщика реляционной базы данных.

    Хранимая процедура ( Stored procedure ) - это объект базы данных, представляющий поименованный набор команд SQL и/или операторов специализированных языков обработки программирования базы данных (например, SQLWindows или PL/SQL).

    Функция (Function) - это объект базы данных, представляющий поименованный набор команд SQL и/или операторов специализированных языков обработки программирования базы данных, который при выполнении возвращает значение - результат вычислений.

    Команда (Command) - это поименованный оператор SQL, который заранее откомпилирован и сохраняется в базе данных. Скорость обработки команды выше, чем у соответствующего ему оператора SQL, т.к. при этом не выполняются фазы синтаксического разбора и компиляции.

    Триггер (Trigger) - это объект базы данных, который представляет собой специальную хранимую процедуру. Эта процедура запускается автоматически, когда происходит связанное с триггером событие (например, до вставки строки в таблицу).

    Таймер (Timer) отличается от триггера тем, что запускающим событием для хранимой процедуры является событие таймера.

    Пакет (Package) - это объект базы данных, который состоит из поименованного структурированного набора переменных, процедур и функций.

    В распределенных реляционных СУБД имеются специальные объекты: снимок и связь базы данных.

    Снимок (Snapshop) - локальная копия таблицы удаленной базы данных, которая используется для тиражирования (репликации) таблицы или результата запроса. Снимки могут быть модифицируемыми или предназначенными только для чтения.

    Связь базы данных (Database Link) или связь с удаленной базой данных - это объект базы данных, который позволяет обратиться к объектам удаленной базы данных. Имя связи базы данных, грубо говоря, можно представить как ссылку на параметры доступа к удаленной базы данных.

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

    Роль (Role) - объект базы данных, представляющий собой поименованную совокупность привилегий, которые могут назначаться пользователям, категориям пользователей или другим ролям.