Автор работы: Пользователь скрыл имя, 28 Февраля 2013 в 14:56, лекция
Основы реляционной модели данных были впервые изложены в статье Е.Кодда в 1970 г. Эта работа послужила стимулом для большого количества статей и книг, в которых реля-ционная модель получила дальнейшее развитие. Наиболее распространенная трактовка реляционной модели данных принадлежит К.Дейту. Согласно Дейту, реляционная модель состоит из трех частей:
• Структурной части
• Целостной части
• Манипуляционной части
Соответственно в
Непосредственная обработка и доступ к данным в большинстве СУБД осуществляется через организацию в оперативной памяти штатными средствами операционной системы или собственными средствами системы буферов оперативной памяти, куда на время обработки и доступа помещаются отдельные компоненты файла базы данных (страницы). Поэтому другой составной частью функций СУБД по организации доступа и обработки данных являетсяуправление буферами оперативной памяти.
Еще одной важной функцией
СУБД с точки зрения организации
доступа и обработки данных является так
называемая журнализация всех текущих
изменений базы данных. Журнализация представл
* Резервная копия БД и журнал изменений,
как правило, размещаются на отдельных
от основного файла БД носителях.
Исходя из рассмотренных функций, в структуре СУБД в современном представлении можно выделить следующие функциональные блоки:
• процессор описания и поддержания структуры базы данных;
• процессор запросов к базе данных;
• монитор транзакций;*
• интерфейс ввода данных;
• интерфейс запросов;
• интерфейс выдачи сведений;
• генератор отчетов.
* Как правило, в
Схематично взаимодействие
компонент СУБД представлено на рис.
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... - указывает таблицы или
запросы, которые содержат
WHERE... - определяет, какие записи
из таблиц, перечисленных в предложении
FROM, следует включить в результат
выполнения инструкции SELECT, UPDAТЕ
или DELETE;
GROUP BY... - объединяет записи с одинаковыми
значениями в указанном списке полей в
одну запись;
НАVING... - определяет, какие сгруппированные записи отображаются при использовании инструкции SELECT с предложением GROUP BY;
IN... - определяет таблицы в любой внешней базе данных, с которой ядро СУБД может установить связь;
ORDERBY... - сортирует записи, полученные
в результате запроса, в
В качестве источника данных по предложению FROM, помимо таблиц и запросов, могут использоваться также результаты операций соединения таблиц в трех разновидностях-INNER JOIN... ON..., LEFT JOIN. ..ON... и RIGHT JOIN...ON... (внутреннее соединение, левое и правое внешнее соединение, соответственно).
Информация о работе Общая характеристика реляционной модели данных