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

Поддержка языков базы данных

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

В первых базах данных существовало 2 языка:

1. Язык определœения схемы базы SDL.

2. язык манипулирования данных DML.

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

На сегодняшний день наиболее распространённым языком является

S tructured

L anguage

Этот язык и поддерживает, и создаёт схему базы данных и позволяет этими данными манипулировать. Он содержит всœе необходимые средства для обеспечения целостности базы данных. Эти ограничения целостности содержатся в специальных каталогах, что позволяет на языковом уровне контролировать целостное состояние базы данных. Специальные операторы языка SQL определяют так называемые представления базы данных. Представление - ϶ᴛᴏ запросы, которые хранятся в базе. Для пользователя представление - ϶ᴛᴏ таблица с помощью, которой можно ограничить или расширить видимость базы данных для конкретного пользователя данных. Язык SQL содержит так специальные операнды, которые обеспечивают авторизацию доступа к объектам базы данных. Поскольку разные пользователи имеют разные полномочия для работы с данными, то эти полномочия описываются в специальных таблицах – каталогах, которые поддерживаются на языковом уровне.

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

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

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

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

Схема отношения - ϶ᴛᴏ поименованное множество пар элементов. А в

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

Отношение - ϶ᴛᴏ множество кортежей соответствующей некоторой одной схеме, то есть реляционная база данных - ϶ᴛᴏ набор отношений, имена которых совпадают с именами схем отношений в структуре базы данных.

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

  1. Базы данных и информационные системы.
  2. Системы управления БД.
  3. Реляционная модель данных.
  4. Этапы проектирования реляционных БД.
  5. Нормализация отношений.
  6. Операции над отношениями.

4.1. Базы данных и информационные системы.

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

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

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

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

По технологии обработки данных БД делятся на централизованные и распределенные. Централизованная БД хранится в памяти одной вычислительной системы. Если эта вычислительная система является компонентом сети ЭВМ, возможен распределенный доступ к такой базе. Такой способ использования БД часто применяется в локальных сетях.

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

По способу доступа к данным БД разделяются на БД с локальным и БД с сетевым (удаленным) доступом. Системы централизованных БД с сетевым доступом предполагают две основные архитектуры: Файл-сервер, Клиент-сервер.

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

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

При проектировании и эксплуатации БД к ней предъявляются следующие требования:

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

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

  1. Анализ предметной области, ее описание, формулировка ограничений целостности.
  2. Проектирование структуры БД: состава и структуры файлов БД, связей между ними.
  3. Задание ограничений целостности при описании структуры БД и процедур обработки данных.
  4. Защита данных: обеспечение порядка входа в систему; определение прав доступа пользователей к данным; выбор и создание программно-технических средств защиты данных; тестирование средств защиты данных; сбор статистики об использовании данных; обеспечение восстановления БД.
  5. Анализ обращений пользователей к БД.
  6. Работа над совершенствованием и динамическим развитием БД.

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

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

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

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

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

4.2. Системы управления БД.

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

К основным функциям СУБД относятся:

  1. Надежное хранение больших объемов данных сложной структуры во внешней памяти вычислительной системы.
  2. Непосредственное управление данными во внешней и оперативной памяти и обеспечение эффективного доступа к ним в процессе решения задачи.
  3. Поддержание целостности данных и управление транзакциями.
  4. Обеспечение восстановления БД после технического или программного сбоя.
  5. Поддержка языка описания данных и языка запросов.
  6. Обеспечение безопасности данных.
  7. Обеспечение параллельного доступа к данным нескольких пользователей.

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

  1. Непротиворечивость данных. Она обеспечивается требованием целостности БД. Целостность БД подразумевает систему правил, используемых в СУБД для поддержания полной, непротиворечивой и адекватно отражающей предметную область информации, а также обеспечения защиты от случайного удаления или изменения данных в связанных таблицах. Целостность должна обеспечиваться независимо от того, каким образом данные заносятся в память (в интерактивном режиме, посредством импорта или с помощью специальных программ). С требованием целостности данных связано понятие транзакции. Транзакция – последовательность операций над БД, рассматриваемых как единое целое (то есть все или ничего).
  2. Многоаспектное использование данных. Возможность поступления информации в единую БД из различных источников и возможность ее использования любым пользователем в соответствии с правами доступа и функциями.
  3. Возможность модификации системы – возможность ее расширения и изменения данных, а также дополнение новыми функциями без ущерба для системы в целом.
  4. Надежность и безопасность – целостность БД не должна нарушаться при технических сбоях.
  5. Скорость доступа – обеспечение быстрого доступа к требуемой информации.
  6. Импорт-экспорт данных – возможность обмена данными с другими программными средствами.

4.3. Реляционная модель данных.

Реляционная модель данных представляет собой совокупность отношений, содержащих всю информацию, которая должна храниться в БД.

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

Отношение задается своим именем и списком атрибутов – элементов, связанных этим отношением: <имя отношения>(<список атрибутов>).

Имя отношения выбирается таким образом, чтобы оно поясняло смысл связи между элементами отношения (семантику отношения).

Для описания некоторого свойства объекта или связи используется простейший неделимый элемент данных, называемый атрибутом. Атрибут характеризуется именем, типом, значением и другими свойствами.

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

Значение атрибута – величина, характеризующая некоторое свойство объекта и связи. Список имен атрибутов отношения и их характеристик называют схемой отношения.

Характеристики атрибутов задают область допустимых значений (ОДЗ) для каждого аргумента отношения.

Кортеж – один экземпляр отношения.

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

Деталь (< номер детали >, <название детали>, <цвет>, <вес>).

Поставщик (< код поставщика >, <фамилия>, <город>).

Поставка деталей (< код поставщика >, < номер детали >, <количество>).

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

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

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

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

4.4. Этапы проектирования реляционной БД.

Проектирование реляционной БД состоит из трех этапов: концептуального, логического и физического проектирования

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

Пример.

Имя отношения: Деталь

Поле

Признак ключа

Формат поля

Имя поля

Наименование

Тип

Длина

Точность

Номер детали

Номер детали

Числовой

Целое

Название детали

Название детали

Символьный

Цвет

Цвет детали

Символьный

Вес

Вес детали, г

Числовой

С плавающей точкой

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

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

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

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

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

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

4.5. Нормализация отношений.

В реляционной БД на каждое отношение накладывается такое ограничение – они должны быть нормализованы.

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

Основателем реляционной модели данных Е. Коддом выделены три нормальные формы отношений. Этот набор в дальнейшем был дополнен нормальной формой Бойса-Кодда, и далее четвертой и пятой нормальными формами.

Первая нормальная форма.

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

Пример: СПИСОК

Студент

Номер зачетной книжки

Дисциплина

Семестр

Оценка

Фамилия

Номер комнаты

Номер телефона

Иванов

29-07-64

Математика

Хорошо

Кузнецов

29-07-64

Информатика

Отлично

Горбунова

29-08-15

Психология

Хорошо

Данное отношение не нормализовано, так как содержит сложный атрибут Студент. Чтобы привести отношение к нормализованному виду, надо от него избавиться. Полученное соотношение СПИСОК (Фамилия, Номер_комнаты, Номер_телефона

Операции над отношениями.

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

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

Е.Коддом выделены три нормальные формы отношений и предложен механизм, позволяющий любое отношение преобразовать к третьей (самой совершенной) нормальной форме.

Первая нормальная форма

Пример: приведенное ниже отношение СТУДЕНТ не нормализовано, поскольку содержит сложный атрибут "Спорт".

СТУДЕНТ

Фамилия

Курс

Специальность

Спорт

Вид

Разряд

Иванов

Савинов

Петров

Бух.учет

ФИК

Статистика

Плавание

Шахматы

Теннис

м.с.

к.м.с.

Чтобы привести это отношение к нормализованному виду, надо избавиться от сложного атрибута "Спорт". Тогда полученное отношение СТУДЕНТ(Фамилия, Вид_спорта, Курс, Специальность, Спорт_разряд) является нормализованным. Ключ в нем является составным, состоящим из атрибутов "Фамилия" и "Вид_спорта".

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

Например, отношение СТУДЕНТ(Номер, Фамилия, Имя, Отчество, Дата, Группа) находится в первой нормальной форме.

Вторая нормальная форма

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

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

Функциональная зависимость реквизитов — зависимость, при которой в экземпляре информационного объекта определенному значению ключевого реквизита соответствует только одно значение описательного реквизита.

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

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

Рис. 19. Графическое изображение функциональной зависимости реквизитов

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

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

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

Пример : Отношение СТУДЕНТ(Номер, Фамилия, Имя, Отчество, Дата, Группа) находится в первой и во второй нормальной форме одновременно, так как описательные реквизиты однозначно определены и функционально зависят от ключа Номер. Отношение УСПЕВАЕМОСТЬ(Номер, Фамилия, Имя, Отчество, Дисциплина, оценка) находится в первой нормальной форме и имеет составной ключ Номер+Дисциплина. Это отношение не находится во второй нормальной форме, так как атрибуты Фамилия, Имя, Отчество не находятся в полной функциональной зависимости с составным ключом отношения.

Третья нормальная форма

Понятие третьей нормальной формы основывается на понятии нетранзитивной зависимости.

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

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

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

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

"Расщепление" информационного объекта, содержащего транзитивную зависимость описательных реквизитов, показано на рис. 20. Как видно из рис. 19, исходный информационный объект СТУДЕНТ ГРУППЫ представляется в виде совокупности правильно структурированных информационных объектов (СТУДЕНТ и ГРУППА), реквизитный состав которых тождественен исходному объекту. Отношение СТУДЕНТ (Номер, Фамилия, Имя, Отчество, Дата, Группа) находится одновременно в первой, второй и третьей нормальной форме.

Рис. 20. Пример "расщепления" структуры информационного объекта

Требования нормализации. В один информационный объект реквизиты включаются в соответствии с требованиями третьей нормальной формы реляционной модели. Рассмотрим эти требования применительно к информационному объекту.

  • Информационный объект должен содержать уникальный идентификатор-ключ (простой или составной).
  • Все описательные (неключевые) реквизиты должны быть взаимно независимы.
  • Все реквизиты, входящие в составной ключ, должны быть также взаимно независимы.
  • Каждый описательный реквизит должен функционально-полно зависеть от ключа информационного объекта. Это означает, что каждому значению ключа соответствует только одно значение описательного реквизита.
  • При составном ключе описательные реквизиты должны зависеть целиком от всей совокупности реквизитов, образующих ключ (не допускается полная зависимость описательного реквизита от какой-либо части ключа).
  • Каждый описательный (неключевой) реквизит в информационном объекте не может зависеть от ключа транзитивно, то есть через другой промежуточный реквизит.
    1. Операции над отношениями

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

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

Операции над отношениями

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

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

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

Основными операциями над отношениями в реляционной БД являются следующие восемь:

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

Совокупность этих операций образует полную алгебру отношений.

  1. Объединение. Операция выполняется над двумя совместимыми отношениями: R 1 , R 2 . В результате операции объединения строится новое отношение R = R 1 U R 2 . Отношение R имеет тот же состав атрибутов и совокупность кортежей исходных отношений. Причем в эту совокупность не включаются дубликаты.

R 1 «Клиенты банка А»

Город

Фамилия

К11

Москва

Петров

К12

Санкт-Петербург

Смирнов

К13

Воронеж

Соколов

R 2 «Клиенты банка В»

Город

Фамилия

К21

Самара

Петров

Москва

Петров

Тверь

Семенов

R «Клиенты»

Город

Фамилия

К11

Москва

Петров

К12

Санкт-Петербург

Смирнов

К13

Воронеж

Соколов

К21

Самара

Петров

К23

Тверь

Семенов

В новое отношение R не вошел кортеж К22, так как он дублирует кортеж К11. Результат объединения включает все кортежи 1-ого отношения и недостающие кортежи из 2-ого отношения. Отношения R 1 и R 2 – операнды, а отношение R – результат.

  1. Пересечение – R 1 , R 2 . Результирующее отношение RP = R 1 3 R 2 , содержит одинаковые кортежи, которые есть в каждом из двух исходных, т.е. результат пересечения содержит только те кортежи 1-ого отношения, которые есть во 2-ом. Результат пересечения имеет тот же состав атрибутов, как и в исходных.

Действие происходит над теми же операндами. Пересечение двух отношений R 1 «Клиенты банка А» и R 2 «Клиенты банка В» дает одно отношение RP «Клиент», которое будет являться результатом.

RP «Клиент»

Пересечение отношений

R – клиент

Город

Фамилия

Москва

Петров

К11 (К22)

  1. Вычитание – операция выполняется над двумя совместимыми отношениями R 1 , R 2 с идентичным набором атрибутов. В результате операции вычитания строится новое отношение RV = R 1 – R 2 с идентичным набором атрибутов, содержащее только те кортежи первого отношения R 1 , которые не повторяются в другом отношении R 2 . Вычитание отношения R 2 «Клиенты банка В» из отношения R 1 «Клиенты банка А», поскольку К11 = К22, дает отношение RV «Клиент»:

RV = R 1 – R 2 = {К11, К12, К13} – {К21, К22, К23} = {К12, К13}

RV «Клиент»

Разность отношений

Город

Фамилия

К12

Санкт-Петербург

Смирнов

К13

Воронеж

Соколов

Отношение RV «Клиент» является результатом разности отношений при выполнении действий над теми же операндами (R 1 и R 2 ).

  1. Декартово произведение выполняется над двумя отношениями R 1 , R 2 с разными схемами. В результате операции декартова произведения образуется новое отношение RD = R 1 * R 2 , которое включает все атрибуты исходных отношений. Результирующее отношение состоит из всевозможных сочетаний кортежей исходных отношений R 1 , R 2 . Число кортежей декартова произведения равно произведению количеств кортежей в исходных отношениях, т.е. степень результирующего отношения равна сумме степеней отношений-операндов, а мощность - произведению их мощностей.

Пример: Декартово произведение двух отношений R 1 «Студент» и R 2 «Предмет» дает новое отношение RD «Экзаменационная ведомость», которое содержит все атрибуты исходных отношений. Отношения R 1 и R 2 – операнды, а отношение RD – результат.

R 1 «Студент»

Номер

Фамилия

К11

Иванов

К12

Петров

К13

Сидоров

R 2 «Предмет»

КОД

Наименование

К21

Математика

К22

Информатика

RD «Экзаменационная ведомость»

Номер

Фамилия

Код

Наименование

Оценка

К11

К21

Иванов

Математика

К11

К22

Петров

Математика

К12

К21

Сидоров

Математика

К12

К22

Иванов

Информатика

К13

К21

Петров

Информатика

К22

Сидоров

Информатика

Заметим, что в полученное отношение целесообразно добавить атрибут «Оценка» для записи результатов экзамена.

  1. Деление – операция выполняется над двумя отношениями R 1 , R 2 , имеющими в общем случае разные структуры и некоторые одинаковые атрибуты. В результате операции образуется новое отношение, структура которого получается исключением из множества атрибутов отношения R 1 , множества атрибутов отношения R 2 . Отношение-делитель должно содержать подмножество атрибутов отношения-делимого. Результирующее отношение содержит только те атрибуты делимого, которых нет в делителе. В него включают только те кортежи, декартовы произведения которых с делителем содержатся в делимом. Результирующие строки не должны содержать дубликаты.

R 1 «Экз_ведомость» R 2 «Результаты» R «Студенты»

Фамилия

Предмет

Оценка

Предмет

Оценка

Фамилия

Антонов

Информатика

Информатика

Антонов

Антонов

Экономика

Экономика

Павлов

Павлов

Информатика

Павлов

Павлов

Экономика

Селезнев

Информатика

Селезнев

Экономика

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

Ниже приведен пример исходного отношения R «Служащий» и результат проекции (RPR ) этого отношения на два его атрибута – «должность» и «номер отдела».

R «Служащий»

Служащий

Номер отдела

Должность

Иванов

инженер

Петров

инженер

Нестеров

инженер

Никитин

лаборант

Отношение RPR

Номер отдела

Должность

инженер

инженер

лаборант

  1. Соединение выполняется для заданного условия соединения над двумя логически связанными отношениями. Исходные отношения R 1 и R 2 имеют разные структуры, в которых есть одинаковые атрибуты – внешние ключи (ключи связи). Операция соединения формирует новое отношение, структура которого является совокупностью всех атрибутов исходных отношений. Результирующие кортежи формируются объединением каждого кортежа из R 1 с теми кортежами R 2 , для которых выполняется условие. При этом условием, как правило, являются одинаковые значения внешнего ключа в исходных отношениях.

В качестве примера осуществим соединение над отношением R 1 «Группы» и R 2 «Студенты», которые будут являться операндами.

R 1 «Группы» R 2 «Студенты»

Специальность

Код_студента

Код_студента

Фамилия

Курс

Математика

Давыдов

Физика

Холодная

Бух.учет

Некрасов

Пушкин

Невзоров

В качестве атрибута для соединения можно выбрать ключ "Код_студента". Результирующее отношение включает все атрибуты 1-ого и 2-ого отношений и кортежи с одинаковым значением ключа. Результатом будет являться отношение R «Старосты групп».

R «Старосты групп»

Специальность

Код_студента

Фамилия

Курс

Математика

Давыдов

Физика

Пушкин

Бух.учет

Невзоров

  1. Выбор – операция выполняется над одним отношением R . Для отношения R по заданному условию (предикату) осуществляется выборка подмножества кортежей. Результирующее отношение имеет ту же структуру, но число его кортежей будет меньше (или равно) исходному.

Пример: Из отношения R «Клиент» осуществить выборку кортежей по условию «Возраст > 30 лет».

R «Клиент» Результат

Фамилия

Возраст

Фамилия

Возраст

Панфилов

Панфилов

Королев

Ломов

Михайлов

Ломов

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

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

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

Таким образом, мы предполагаем, что решение о выборе СУБД уже принято руководителем ИТ-проекта, и согласовано с заказчиком базы данных, т.е. СУБД задана. Проектировщик базы данных должен ознакомиться с документацией, в которой описан диалект 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) - объект базы данных, представляющий собой поименованную совокупность привилегий, которые могут назначаться пользователям, категориям пользователей или другим ролям.

Терминология и базовые понятия реляционных БД

Почти все программные продукты, созданные с конца 70-х г. основаны на реляционном подходе:

1. Данные представлены в двухмерных таблицах, организованных по определенным правилам.

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

Реляционные базы данных – единое хранилище данных, которое однозначно определяется, а затем используется многими пользователями. Изменение и добавление данных в БД не влияет на приложение.

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

Базовые понятия реляционных баз данных:

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

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

3. Кортеж , соответствующий данной схеме отношения, - это множество пар {имя атрибута, значение}, которое содержит одно вхождение каждого имени атрибута, принадлежащего схеме отношения.

4. Атрибут – столбец таблицы, поле файла БД. Значения атрибутов в таблице-отношении могут иметь только один определенный вид функциональной зависимости друг от друга, а именно все значения в произвольном кортеже должны по отдельности зависеть только от значений столбца или группы столбцов - одних для всего отношения. Такой столбец или группа столбцов называются ключевыми, а значения атрибутов в них - ключами.

5. Домен – набор допустимых значений одного или нескольких атрибутов.

6. Степень отношения определяется количеством атрибутов, которое оно содержит. Отношение с одним атрибутом имеет степень 1 и называется унарным отношением. Отношение с двумя атрибутами называется бинарным, отношение с тремя атрибутами – тернарным, а для отношения с большим количеством атрибутов используется термин n-арное.

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

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

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

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

11. Потенциальный ключ – суперключ, который не содержит подмножества, также являющегося суперключем данного отношения. Потенциальный ключ К для данного отношения R обладает двумя свойствами:

· Уникальность. В каждом кортеже отношения R значение ключа К единственным образом идентифицирует этот кортеж.

· Неприводимость. Никакое допустимое подмножество ключа К не обладает свойством уникальности.

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

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

14. Отношение - это множество кортежей, соответствующих одной схеме отношения.

15. Базовое отношение – отношение, кортежи которого физически хранятся в базе данных.

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

17. Фундаментальные свойства отношений:

· Отношение имеет имя, которое отличается от имен всех других отношений в реляционной схеме.

· Каждая ячейка отношения содержит только одно элементарное (неделимое) значение.

· Каждый атрибут имеет уникальное имя.

· Значения атрибута берутся из одного и того же домена.

· Каждый кортеж является уникальным, т.е. дубликатов кортежей быть не может.

· Порядок следования атрибутов не имеет значения.

· Теоретически порядок следования кортежей в отношении не имеет значения. (Но практически этот порядок может существенно повлиять на эффективность доступа к ним.)

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

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

2. В манипуляционной части модели утверждаются два фундаментальных механизма манипулирования реляционными БД - реляционная алгебра и реляционное исчисление.

3. Целостность (от англ. integrity – нетронутость, неприкосновенность, сохранность, целостность) понимается как правильность данных в любой момент времени.

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

Реляционная База Данных (РБД) - это набор отношений, имена которых совпадают с именами схемотношений в схеме БД.

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

· Тип данных – тип значений конкретного столбца.

· Домен (domain) – множество всех допустимых значений атрибута.

· Атрибут (attribute) – заголовок столбца таблицы, характеризующий поименованное свойство объекта, например, фамилия студента, дата оформления заказа, пол сотрудника и т.п.

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

· Отношение (relation) – таблица, отражающая информацию об объектах реального мира, например, о студентах, заказах, сотрудниках, жителях и т.д.

· Первичный ключ (primary key) – поле (или набор полей) таблицы, однозначно идентифицирующий каждую из ее записей.

· Альтернативный ключ – это поле (или набор полей), несовпадающее с первичным ключом и уникально идентифицирующий экземпляр записи.

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

· Реляционная модель данных (РМД) - организация данных в виде двумерных таблиц.

Каждая реляционная таблица должна обладать следующими свойствами:

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

2. Каждое значение, записывается на пересечении строки и столбца - является атомарным (неразделимым).

3. Значения каждого поля должны быть одного типа.

4. Каждое поле имеет уникальное имя.

5. Порядок расположения записей несущественен.

Основные элементы БД:

Поле - элементарная единица логической организации данных. Для описания поля используются следующие характеристики:

· имя, например, Фамилия, Имя, Отчество, Дата рождения;

· тип, например, строковый, символьный, числовой, датовый;

· длина, например, в байтах;

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

Запись - совокупность значений логически связанных полей.

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


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

Запрос – сформулированный вопрос к одной или нескольким взаимосвязанным таблицам, содержащий критерии выборки данных. Запрос осуществляется с помощью структурированного языка запросов SQL (Srtructured Query Language). В результате выборки данных из одной или нескольких таблиц может быть получено множество записей, называемое представлением.

Представление данных – сохраняемый в базе данных именованный запрос на выборку данных (из одной или нескольких таблиц).

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

Отчет – компонент системы, основное назначение которого – описание и вывод на печать документов на основе информации из БД.

Общая характеристика работы с РБД:

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

В структурной части модели фиксируется, что единственной структурой данных, используемой в реляционных БД, является нормализованное n-арное отношение.

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


28. АЛГОРИТМИЧЕСКИЕ ЯЗЫКИ. ТРАНСЛЯТОРЫ (ИНТЕРПРЕТАТОРЫ И КОМПИЛЯТОРЫ). АЛГОРИТМИЧЕСКИЙ ЯЗЫК БЕЙСИК. СТРУКТУРА ПРОГРАММЫ. ИДЕНТИФИКАТОРЫ. ПЕРЕМЕННЫЕ. ОПЕРАТОРЫ. ОБРАБОТКА ОДНОМЕРНЫХ И ДВУХМЕРНЫХ МАССИВОВ. ФУНКЦИИ ПОЛЬЗОВАТЕЛЯ. ПОДПРОГРАММЫ. РАБОТА С ФАЙЛАМИ ДАННЫХ.

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

Алгоритмический язык (Algorithmic language) - язык программирования - искусственный (формальный) язык, предназначенный для записи алгоритмов. Язык программирования задается своим описанием и реализуется в виде специальной программы: компилятора или интерпретатора. Примерами алгоритмических языков служат – Borland Pascal, C++, Basic и т.д.

Основные понятия алгоритмического языка:

Состав языка :

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

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

Выражения - это последовательность элементарных конструкций и символов,

Оператор - последовательность выражений, элементарных конструкций и символов.

Описание языка:

Описание символов заключается в перечислении допустимых символов языка. Под описанием элементарных конструкций понимают правила их образования. Описание выражений - это правила образования любых выражений, имеющих смысл в данном языке. Описание операторов состоит из рассмотрения всех типов операторов, допустимых в языке. Описание каждого элемента языка задается его СИНТАКСИСОМ и СЕМАНТИКОЙ.

Синтаксические определения устанавливают правила построения элементов языка.

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

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

Элементарные конструкции - это минимальные единицы языка, имеющие самостоятельный смысл. Они образуются из основных символов языка.

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

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

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

Трансляторы - (англ. translator - переводчик) - это программа-переводчик. Она преобразует программу, написанную на одном из языков высокого уровня, в программу, состоящую из машинных команд.

Программа, написанная на каком-либо алгоритмическом языке высокого уровня, не может быть непосредственно выполнена на ЭВМ. ЭВМ понимает только язык машинных команд. Следовательно, программа на алгоритмическом языке должна быть переведена (транслирована) на язык команд конкретной ЭВМ. Такой перевод осуществляется автоматически специальными программами-трансляторами, создаваемыми для каждого алгоритмического языка и для каждого типа компьютеров.

Существуют два основных способа трансляции - компиляция и интерпретация.

1.Компиляция: Компилятор (англ. compiler - составитель, собиратель) читает всю программу целиком, делает ее перевод и создает законченный вариант программы на машинном языке, который затем и выполняется.

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

2. Интерпретация: Интерпретатор (англ. interpreter - истолкователь, устный переводчик) переводит и выполняет программу строка за строкой.

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

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

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

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

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

Loading...Loading...