Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика / Лекция 14 БД, БнД, модели данных, СУБД.doc
Скачиваний:
92
Добавлен:
31.05.2015
Размер:
99.84 Кб
Скачать

Банк данных (БнД)

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

Преимущества БнД.

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

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

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

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

Требования к БнД:

    1. адекватность отображения предметной области (полнота, целостность и непротиворечивость данных, актуальность информации, т.е. ее соответствие состоянию объекта на данный момент времени);

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

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

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

    5. обеспечение взаимной независимости программ и данных;

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

Компоненты банка данных

Состав банка данных. Банк данных является сложной человеко-машинной системой, включающей в свой состав различные взаимосвязанные и взаимозависимые компоненты (рис. 1.1).

Ядром БнД является база данных.

Программные средства БнД.

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

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

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

Для обработки запросов к БД пишутся соответствующие программы, которые представляют прикладное программное обеспечение БнД.

Языковые средства БнД.

Языковые средства СУБД являются важнейшей компонентой банков данных, так как в конечном счете они обеспечивают интерфейс пользователей разных категорий с банком данных. Языковые средства большинства СУБД относятся к языкам четвертого поколения (к первому поколению языков относят машинные языки, ко второму - символические языки ассемблера, к третьему - алгоритмические языки типа PL, COBOL и т.п., которые в 60-е годы назывались языками высокого уровня, но уровень которых гораздо ниже, чем у языков четвертого поколения).

По своим функциональным возможностям выделяют следующие категории языков:

  • Языки, обеспечивающие только возможности запросов. Они обеспечивают вывод требуемых данных на экран или печать в нужном формате.

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

  • Генераторы отчетов. Они позволяют выбирать нужные данные из файлов или баз данных и форматировать их в виде требуемых форм документов.

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

  • Инструментальные средства поддержки решений. Языки этого типа предназначены для создания систем принятия решений. Это могут быть системы типа «что-если», системы, выполняющие временной или трендовый анализ, и др. Возможно использование как универсальных, так и проблемно-ориентированных средств

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

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

  • Языки очень высокого уровня. В большинстве случаев приложения строятся при помощи непроцедурных языков. Но некоторые языки являются процедурными (например, NOMAD), но программирование на них значительно короче, чем, например, на COBOLe.

  • Параметризированные пакеты прикладных программ. Эта категория программных средств известна давно, и «четвертое поколение» относится к таким ППП, которые допускают легкую модификацию самого пакета, позволяют пользователям генерировать собственные отчеты, запросы к базе данных и т. д.

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

Модель данных – абстракция, которая приложима к конкретным данным. Позволяет пользователям трактовать их как информацию (сведения, содержащие не только данные, но и связи между ними).

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

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

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

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

- иерархическая,

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

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

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

Иерархическая модель данных позволяет непосредственно реализовывать связи со степенями один - ко - многим (1:N) и один - ко - одному (1:1). Для реализации связи со степенью многие – ко – многим (M:N) необходимо производить дублирование деревьев.

- сетевая,

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

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

- реляционная,

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

Таблица состоит из строк и столбцов и имеет имя, уникальное внутри базы данных, которое именуется, как отношение . Строка таблицы носит название картежа , а столбец – атрибута .

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

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

Множество всех возможных значений (область определения) атрибута объекта называется доменом . Например, для атрибута ВЕС домен задается интервалом целых чисел, поскольку отрицательного веса не бывает.

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

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

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

Принципиальное отличие реляционных и объектно-ориентированных БД заключается в следующем:

  • объектно-ориентированная модель данных оказывается более адекватной моделью предметной области реального мира;

  • объекты вторых можно хранить и использовать непосредственно, не раскладывая их по таблицам;

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

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

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

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

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

СУБД

Активная деятельность по отысканию приемлемых способов обобществления непрерывно растущего объема информации привела к созданию в начале 60-х годов специальных программных комплексов, называемых "Системы управления базами данных" (СУБД).

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

Основные функции СУБД

1. Непосредственное управление данными во внешней памяти.

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

2. Управление буферами оперативной памяти

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

3. Управление транзакциями

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

2.1.4. Журнализация

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

Во всех случаях придерживаются стратегии "упреждающей" записи в журнал (так называемого протокола Write Ahead Log - WAL). Эа стратегия заключается в том, что запись об изменении любого объекта БД должна попасть во внешнюю память журнала раньше, чем измененный объект попадет во внешнюю память основной части БД. Ели в СУБД корректно соблюдается протокол WAL, то с помощью журнала можно решить все проблемы восстановления БД после любого сбоя.

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

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

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

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

Соседние файлы в папке Информатика