Общая характеристика реляционной модели данных

Автор работы: Пользователь скрыл имя, 28 Февраля 2013 в 14:56, лекция

Описание работы

Основы реляционной модели данных были впервые изложены в статье Е.Кодда в 1970 г. Эта работа послужила стимулом для большого количества статей и книг, в которых реля-ционная модель получила дальнейшее развитие. Наиболее распространенная трактовка реляционной модели данных принадлежит К.Дейту. Согласно Дейту, реляционная модель состоит из трех частей:
• Структурной части
• Целостной части
• Манипуляционной части

Файлы: 1 файл

Базовые понятия реляционной модели данных.docx

— 169.99 Кб (Скачать файл)

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

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

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

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

• процессор описания и  поддержания структуры базы данных;

• процессор запросов к  базе данных;

• монитор транзакций;*

• интерфейс ввода данных;

• интерфейс запросов;

• интерфейс выдачи сведений;

• генератор отчетов.

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

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

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

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

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

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

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

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

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

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

Отличительные    особенности    языка    SQL.    Основные    группы инструкций языка SQL.

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

Быстрое и массовое распространение  языка SQL в реляционных СУБД к  середине 80-х годов привело фактически к принятию его в качестве стандарта  по организации и обработке данных. В 1986 г. Американским национальным институтом стандартов (ANSI) и Международной организацией по стандартизации (ISO) язык был стандартизирован де-юре, т. е. признан стандартным языком описания и обработки данных в реляционных СУБД. В 1989 г. ANSI/ISO была принята усовершенствованная версия SQL - SQL2, а в 1992 г. третья версия - SQL3.

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

Язык SQL состоит из двух частей:

• языка описания (определения) данных - DDL (Data Definition Language); 
• языка манипулирования данными - DML (Data Manipulation Language).

Синтаксис SQL-инструкций включает:

• название инструкции (команду);

• предложения, определяющие источники, условия операции;

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

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

Структура SQL-инструкций

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

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

Перечень SQL-инструкций разделяется  по частям языка SQL.

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

CREATETABLE... - создать таблицу;

CREATEINDEX... - создать индекс;

ALTERTABLE... - изменить структуру ранее  созданной таблицы; 
DROP... - удалить существующую таблицу и базы данных.

В структуре инструкций CREATETABLE и ALTERTABLE важную роль играет предложение CONSTRAINT (создать ограничения на значения данных - razgovorodele.ru) со следующими установками - NOT NULL (не допускаются нулевые, точнее «пустые» значения по соответствующему полю, иначе говоря, определяется поле с обязательным заполнением), AUTOINC (поле с инкрементальным, т. е. последовательно возрастающим с каждой новой записью, характером значений) и PRIMARY KEY (определение для поля уникального, т. е. без повторов, индекса, что в результате задает режим заполнения данного поля с уникаль-ными неповторяющимися по различным строкам значениями).

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

SELECT... - выбрать данные из базы  данных;

INSERT... - добавить данные в базу  данных;

UPDATE... - обновить данные в базе  данных;

DELETE... - удалить данные;

GRANT... - предоставить привилегии  пользователю;

REVOKE... - отменить привилегии пользователю;

COMMIT... - зафиксировать текущую транзакцию;

ROLLBACK... - прервать текущую транзакцию.

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

Помимо предложения CONSTRAINT в SQL-инструкциях используются следующие  предложения:

FROM... - указывает таблицы или  запросы, которые содержат поля, перечисленные в инструкции SELECT;

WHERE... - определяет, какие записи  из таблиц, перечисленных в предложении  FROM, следует включить в результат  выполнения инструкции SELECT, UPDAТЕ  или DELETE; 
GROUP BY... - объединяет записи с одинаковыми значениями в указанном списке полей в одну запись;

НАVING... - определяет, какие сгруппированные  записи отображаются при использовании инструкции SELECT с предложением GROUP BY;

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

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

В качестве источника данных по предложению FROM, помимо таблиц и  запросов, могут использоваться также  результаты операций соединения таблиц в трех разновидностях-INNER JOIN... ON..., LEFT JOIN. ..ON... и RIGHT JOIN...ON... (внутреннее соединение, левое и правое внешнее соединение, соответственно).

Информация о работе Общая характеристика реляционной модели данных