дано тело реляционного отношения с первичным ключом
Дано тело реляционного отношения с первичным ключом
Цифра 8 указывает на
Представление ( View ) это
ü именованное отношение
ü при изменении значений данных в исходных отношениях будут изменяться и данные видимые через конкретное представление ( View )
ü производное отношение
Является ли приведенное утверждение корректным: «Нормализованное отношение это отношение, в котором все значения атрибутов атомарны «?
Кардинальное число отношения это
· количество кортежей в отношении
Верно ли утверждение: «В отношении разные атрибуты могут быть определены на одном и том же домене»
Укажите на рисунке номер позиции понятия «Домены»
Укажите на рисунке номер позиции понятия «Наименование атрибута»
Укажите на рисунке номер позиции понятия «Ключ»
Укажите на рисунке номер позиции понятия » Заголовок отношения»
Укажите на рисунке номер позиции понятия «Кортеж»
Укажите на рисунке номер позиции понятия «Отношение»
Укажите на рисунке номер позиции понятия «значение атрибута»
Укажите на рисунке номер позиции понятия «Атрибут»
На какие элементы указывают приведенные буквы?
а = Домены
б = Наименование атрибута
в = Ключ
г = Заголовок отношения
д = Кортеж
е = Отношение
ж = Значение атрибута
з = Атрибут
Под доменом понимается
ü множество атомарных значений, из которых могут браться значения конкретного атрибута
ü множество скалярных значений, из которых могут браться значения конкретного атрибута
Множество пар имя-атрибута : значение-атрибута > следущего вида:
Фиксированное множество атрибутов или, точнее, пар имя-атрибута : имя-домена>:
Укажите свойства реляционного отношения
ü Атрибуты реляционного отношения не упорядочены
ü Кортежи отношения не имеют порядковых номеров (не упорядочены)
ü В реляционном отношении не может быть двух или более одинаковых кортежей
ü Значения атрибутов отношения скалярны
ü Поиск и выборка кортежей реляционного отношения может осуществляться только по значениям атрибутов отношения
ü В теории реляционных баз данных рассматриваются только нормализованные отношения из-за того, что для любого ненормализованного отношения существует эквивалентная ему нормализованная форма
ü Для обращения к атрибуту реляционного отношения следует указать имя атрибута
ü В реляционном отношении не допускаются одинаковые кортежи
ü Все значения атрибутов реляционного отношения должны быть атомарными
ü Все значения атрибутов реляционного отношения должны быть скалярными
Укажите правильное соответствие приведенных типов отношений из определениям
7. Реляционная модель. Операции над данными
Язык SQL не является реляционно-полным
ü основан на реляционной алгебре и реляционном исчислении
Свойство полноты реляционной алгебры
ü говорит о том, что основных операторов, задаваемых реляционной алгеброй, достаточно для построения любых, сколь угодно сложных алгебраических выражений
Является ли операция «перестановка атрибутов» операцией реляционной алгебры?
Любое выражение реляционной алгебры можно преобразовать в эквивалентное ему выражение реляционного исчисления
Отметьте утверждения, вытекающие из свойства замкнутости реляционной алгебры
ü результат, который возвращается любым оператором реляционной алгебры, всегда является реляционным отношением
ü входными операндами, которые принимают операторы реляционной алгебры, являются реляционные отношения
· представляет собой формальный способ описания выходного отношения в терминах входных отношений, оставляя полностью в стороне вопрос о способе получения этого выходного отношения
Является ли операция «выбрать предыдущий кортеж» операцией реляционной алгебры?
Является ли операция «выбрать первый атрибут» операцией реляционной алгебры?
Свойство замкнутости реляционной алгебры
ü позволяет из ограниченного набора основных реляционных алгебраических операторов строить сложные, вложенные друг в друга алгебраические выражения
ü в качестве входных и выходных операндов алгебраических операторов могут быть только реляционные отношения
Является ли операция «выбрать следующий атрибут» операцией реляционной алгебры?
Является ли операция «декартово произведение» операцией реляционной алгебры?
Отметьте правильные утверждения.
ü результат, который возвращается любым оператором реляционной алгебры, всегда является реляционным отношением
Является ли операция «выбрать следующий кортеж » операцией реляционной алгебры?
Является ли операция «декартово деление» операцией реляционной алгебры?
Реляционная алгебра и реляционное исчисление
Является ли операция «декартово сложение» операцией реляционной алгебры?
Любое выражение реляционной алгебры
· можно преобразовать в эквивалентное ему выражение реляционного исчисления
Является ли операция «умножение» операцией реляционной алгебры?
Отметьте правильные утверждения.
ü входными операндами, которые принимают операторы реляционной алгебры, являются реляционные отношения
Даны два отношения: А и В
Тогда отношение C
Это
Даны два отношения: А и В
Тогда отношение C
Это
Даны два отношения: А и В
С помощью какой из перечисленных ниже операций из этих отношений можно получить отношение C?
Даны два отношения: А и В
С помощью какой из перечисленных ниже операций можно из этих отношений получить отношение C?
С помощью какой из перечисленных ниже операций можно из отношения А получить отношение B?
С помощью какой из перечисленных ниже операций можно из отношения А получить отношение B?
Даны два отношения: СТУДЕНТЫ и ПРЕПОДАВАТЕЛИ
С помощью какой из перечисленных операций можно из этих отношений получить отношение, приведенное ниже?
Основы реляционной алгебры
Реляционная алгебра базируется на теории множеств и является основой логики работы баз данных.
Когда я только изучал устройство баз данных и SQL, предварительное ознакомление с реляционной алгеброй очень помогло дальнейшим знаниям правильно уложиться в голове, и я постараюсь что бы эта статья произвела подобный эффект.
Так что если вы собираетесь начать свое обучение в этой области или вам просто стало интересно, прошу под кат.
Реляционная база данных
Для начала введем понятие реляцинной базы данных, в которой будем выполнять все действия.
Реляционной базой данных называется совокупность отношений, содержащих всю информацию, которая должна хранится в базе. В данном определении нам интересен термин отношение, но пока оставим его без строго определения.
Лучше представим себе таблицу продуктов.
таблица PRODUCTS
ID | NAME | COMPANY | PRICE |
123 | Печеньки | ООО ”Темная сторона” | 190 |
156 | Чай | ООО ”Темная сторона” | 60 |
235 | Ананасы | ОАО ”Фрукты” | 100 |
623 | Томаты | ООО ”Овощи” | 130 |
Таблица состоит из 4х строк, строка в таблице является кортежем в реляционной теории. Множество упорядоченных кортежей называется отношением.
Перед тем как дать определение отношения, введем еще один термин — домен. Домены применительно к таблице это столбцы.
Для ясности, теперь введем строгое определение отношения.
Ключи в отношениях
В отношении требованием является то, что все кортежи должны различаться. Для однозначной идентификации кортежа существует первичный ключ. Первичный ключ это атрибут или набор из минимального числа атрибутов, который однозначно идентифицирует конкретный кортеж и не содержит дополнительных атрибутов.
Подразумевается, что все атрибуты в первичном ключе должны быть необходимыми и достаточными для идентификации конкретного кортежа, и исключение любого из атрибутов в ключе сделает его недостаточным для идентификации.
Например, в такой таблице ключом будет сочетание атрибутов из первого и второго столбца.
COMPANY | DRIVER |
ООО ”Темная сторона” | Владимир |
ООО ”Темная сторона” | Михаил |
ОАО ”Фрукты” | Руслан |
ООО ”Овощи” | Владимир |
Видно, что в организации может быть несколько водителей, и чтобы однозначно идентифицировать водителя необходимо и значение из столбца “Название организации” и из “Имя водителя”. Такой ключ называется составным.
В реляционной БД таблицы взаимосвязаны и соотносятся друг с другом как главные и подчиненные. Связь главной и подчиненнной таблицы осуществляется через первичный ключ (primary key) главной таблицы и внешний ключ ( foreign key ) подчиненной таблицы.
Внешний ключ это атрибут или набор атрибутов, который в главной таблице является первичным ключем.
Этой подготовительной теории будет достаточно для знакомства с основными операциями реляционной алгебры.
Операции реляционной алгебры
Для понимания важно запомнить, что результатом любой операции алгебры над отношениями является еще одно отношение, которое можно потом так же использовать в других операциях.
Создадим еще одну таблицу, которая нам пригодится в примерах.
ID | SELLER |
123 | OOO “Дарт” |
156 | ОАО ”Ведро” |
235 | ЗАО “Овоще База” |
623 | ОАО ”Фирма” |
Условимся, что в этой таблице ID это внешний ключ, связанный с первичным ключом таблицы PRODUCTS.
Для начала рассмотрим самую простую операцию — имя отношения. Её результатом будет такое же отношение, то есть выполнив операцию PRODUCTS, мы получим копию отношения PRODUCTS.
Проекция
Проекция является операцией, при которой из отношения выделяются атрибуты только из указанных доменов, то есть из таблицы выбираются только нужные столбцы, при этом, если получится несколько одинаковых кортежей, то в результирующем отношении остается только по одному экземпляру подобного кортежа.
Для примера сделаем проекцию на таблице PRODUCTS выбрав из нее ID и PRICE.
Синтаксис операции:
π (ID, PRICE) PRODUCTS
В результате этой операции получим отношение:
ID | PRICE |
123 | 190 |
156 | 60 |
235 | 100 |
623 | 130 |
Выборка
Выборка — это операция, которая выделяет множество строк в таблице, удовлетворяющих заданным условиям. Условием может быть любое логическое выражение.
Для примера сделаем выборку из таблицы с ценой больше 90.
Синтаксис операции:
σ (PRICE>90) PRODUCTS
ID | NAME | COMPANY | PRICE |
123 | Печеньки | ООО ”Темная сторона” | 190 |
235 | Ананасы | ОАО ”Фрукты” | 100 |
623 | Томаты | ООО ”Овощи” | 130 |
В условии выборки мы можем использовать любое логическое выражение. Сделаем еще одну выборку с ценой больше 90 и ID товара меньше 300:
σ (PRICE>90 ^ ID π COMPANY σ (PRICE 123 Для примера использования этой операции представим себе необходимость выбрать продавцов с ценами меньше 90. Без произведения необходимо было бы сначала получить ID продуктов из первой таблицы, потом по этим ID из второй таблицы получить нужные имена SELLER, а с использованием произведения будет такой запрос: Реляционная модель данных – логическая модель данных. Впервые была предложена британским учёным сотрудником компании IBM Эдгаром Франком Коддом (E. F. Codd) в 1970 году в статье «A Relational Model of Data for Large Shared Data Banks» (русский перевод статьи, в которой она впервые описана, опубликован в журнале «СУБД» N 1 за 1995 г.). В настоящее время эта модель является фактическим стандартом, на который ориентируются практически все современные коммерческие СУБД. В реляционной модели достигается гораздо более высокий уровень абстракции данных, чем в иерархической или сетевой. В упомянутой статье Е.Ф. Кодда утверждается, что «реляционная модель предоставляет средства описания данных на основе только их естественной структуры, т.е. без потребности введения какой-либо дополнительной структуры для целей машинного представления». Другими словами, представление данных не зависит от способа их физической организации. Это обеспечивается за счет использования математической теории отношений (само название «реляционная» происходит от английского relation – «отношение»). В состав реляционной модели данных обычно включают теорию нормализации. Кристофер Дейт определил три составные части реляционной модели данных: Структурная часть модели определяет, что единственной структурой данных является нормализованное n-арное отношение. Отношения удобно представлять в форме таблиц, где каждая строка есть кортеж, а каждый столбец – атрибут, определенный на некотором домене. Данный неформальный подход к понятию отношения дает более привычную для разработчиков и пользователей форму представления, где реляционная база данных представляет собой конечный набор таблиц. Манипуляционная часть модели определяет два фундаментальных механизма манипулирования данными – реляционная алгебра и реляционное исчисление. Основной функцией манипуляционной части реляционной модели является обеспечение меры реляционности любого конкретного языка реляционных БД: язык называется реляционным, если он обладает не меньшей выразительностью и мощностью, чем реляционная алгебра или реляционное исчисление. Целостная часть модели определяет требования целостности сущностей и целостности ссылок. Первое требование состоит в том, что любой кортеж любого отношения отличим от любого другого кортежа этого отношения, т.е. другими словами, любое отношение должно обладать первичным ключом. Требование целостности по ссылкам, или требование внешнего ключа состоит в том, что для каждого значения внешнего ключа, появляющегося в ссылающемся отношении, в отношении, на которое ведет ссылка, должен найтись кортеж с таким же значением первичного ключа, либо значение внешнего ключа должно быть неопределенным (т.е. ни на что не указывать). Можно провести аналогию между элементами реляционной модели данных и элементами модели «сущность-связь». Реляционные отношения соответствуют наборам сущностей, а кортежи – сущностям. Поэтому, также как и в модели «сущность-связь» столбцы в таблице, представляющей реляционное отношение, называют атрибутами. Основными понятиями реляционных баз данных являются: отношение, тип данных, атрибут, домен, кортеж, первичный и внешний ключ Реляционная модель основана на математическом понятии отношения, физическим представлением которого является таблица. Отношения используются для хранения информации об объектах, представленных в базе данных. Отношение обычно имеет вид двумерной таблицы, в которой строки соответствуют отдельным записям, а столбцы — атрибутам. При этом атрибуты могут располагаться в любом порядке – независимо от их переупорядочивания отношение будет оставаться одним и тем же, а потому иметь тот же смысл. Понятие тип данных в реляционной модели данных полностью адекватно понятию типа данных в языках программирования. В современных реляционных БД допускается хранение символьных, числовых данных, специализированных числовых данных (денежный), а также специальных данных (дата, время, временной интервал). Домен — это набор всех допустимых значений, которые может содержать данный атрибут. Понятие «домен» часто путают с понятием «тип данных». Необходимо четко различать эти два понятия. Тип данных — это физическая концепция, а домен — логическая. Например, «целое число» — это тип данных, а «возраст» — это домен. Сущности Адрес и Фамилия могут быть реализованы как текстовые поля, однако очевидно, что это разные виды текстовых полей, и принадлежат они к разным доменам. Для любых двух доменов можно сравнивать определенные для них атрибуты, и выполнять логические операции. Если над атрибутами двух доменов можно выполнять логические операции, то это домены, имеющие совместимый тип данных. Кортеж – это строка отношения. Элементами отношения являются кортежи, или строки таблицы. В отношении Группа каждая строка содержит пять значений, по одному для каждого атрибута. Кортежи могут располагаться в любом порядке, при этом отношение будет оставаться тем же самым, а значит, и иметь тот же смысл. Кортежи называются расширением (extension), состоянием (state) или телом отношения, которое со временем изменяется. Степень отношения определяется количеством атрибутов, которое оно содержит. Отношение Группа (рисунок 6.1) имеет пять атрибутов, и, следовательно, его степень равна пяти. Это значит, что каждая строка таблицы является пятиэлементным кортежем, т.е. кортежем, содержащим пять значения. Отношение только с одним атрибутом имеет степень 1 и называется унарным (unary) отношением (или одноэлементным кортежем). Отношение с двумя атрибутами называется бинарным (binary), отношение с тремя атрибутами — тернарным (ternary), а для отношений с большим количеством атрибутов используется термин п-арное (n-агу). Определение степени отношения является частью заголовка отношения. Кардинальность – это количество кортежей, которое содержится в отношении. Эта характеристика меняется при каждом добавлении или удалении кортежей. Кардинальность является свойством тела отношения и определяется текущим состоянием отношения в произвольно взятый момент. Существует еще одна терминология: отношение в нем называется файлом (file), кортежи — записями (records), а атрибуты — полями (fields). Эта терминология основана на том факте, что физически реляционная СУБД может хранить каждое отношение в отдельном файле. В табл. 6.2 показаны соответствия, существующие между тремя группами терминов. Каждый атрибут определен на домене, поэтому домен можно рассматривать как множество допустимых значений данного атрибута. Несколько атрибутов одного отношения и даже атрибуты разных отношений могут быть определены на одном и том же домене. В примере, показанном на рисунке, атрибуты «Оклад» и «Премия» определены на домене «Деньги». Поэтому, понятие домена имеет семантическую нагрузку: данные можно считать сравнимыми только тогда, когда они относятся к одному домену. Таким образом, в рассматриваемом нами примере сравнение атрибутов «Табельный номер» и «Оклад» является семантически некорректным, хотя они и содержат данные одного типа. Атрибут, значение которого однозначно идентифицирует кортежи, называется ключевым (или просто ключом). В нашем случае ключом является атрибут «Табельный номер», поскольку его значение уникально для каждого работника предприятия. Если кортежи идентифицируются только сцеплением значений нескольких атрибутов, то говорят, что отношение имеет составной ключ. Отношение может содержать несколько ключей. Всегда один из ключей объявляется первичным, его значения не могут обновляться. Все остальные ключи отношения называются возможными ключами. В отличие от иерархической и сетевой моделей данных в реляционной отсутствует понятие группового отношения. Для отражения ассоциаций между кортежами разных отношений используется дублирование их ключей. Пример базы данных, содержащей сведения о подразделениях предприятия и работающих в них сотрудниках, применительно к реляционной модели будет иметь вид: Например, связь между отношениями ОТДЕЛ и СОТРУДНИК создается путем копирования первичного ключа «Номер_отдела» из первого отношения во второе. Таким образом: Атрибуты, представляющие собой копии ключей других отношений, называются внешними ключами. Достоинства реляционной модели: Недостатки реляционной модели: Для начала покажем смысл этих понятий на примере отношения СЛУЖАЩИЕ, содержащего информацию о служащих некоторого предприятия (рис. 2.1). Обычно в современных реляционных базах данных допускается хранение символьных, числовых данных (точных и приблизительных), специализированных числовых данных (таких, как «деньги»), а также специальных «темпоральных» данных (дата, время, временной интервал). Кроме того, в реляционных системах поддерживается возможность определения пользователями собственных типов данных (более подробно мы обсудим это в лекции 9, курса «Введение в модель данных SQL»). В примере на рис. 2.1 мы имеем дело с данными трех типов : строки символов, целые числа и «деньги». Конечно, это достаточно грубая терминология, поскольку у обычных таблиц и строки, и столбцы упорядочены, тогда как атрибуты и кортежи отношений являются элементами неупорядоченных множеств. Тем не менее, когда мы перейдем к рассмотрению практических вопросов организации реляционных баз данных и средств управления, то будем использовать эту «житейскую» терминологию. Подобной терминологии придерживаются в большинстве коммерческих реляционных СУБД. Иногда также используются термины файл как аналог таблицы, запись как аналог строки и поле как аналог столбца. Напомню, что этой терминологией мы пользовались в лекции 1.Печеньки ООО ”Темная сторона” 190 123 OOO “Дарт” 156 Чай ООО ”Темная сторона” 60 156 ОАО ”Ведро” 123 Печеньки ООО ”Темная сторона” 190 156 ОАО ”Ведро” 156 Чай ООО ”Темная сторона” 60 123 OOO “Дарт” Дано тело реляционного отношения с первичным ключом
Состав реляционной модели данных
Структура реляционной модели данных
Применение реляционной модели данных
Достоинства и недостатки реляционной модели данных
Введение в реляционную модель данных
Основные понятия реляционных баз данных
Тип данных
Домен
Заголовок отношения, кортеж, тело отношения, значение отношения, переменная отношения
Первичный ключ и интуитивная интерпретация реляционных понятий