- •Множества и операции над множествами.
- •Основная операция над множествами. Мощность множества.
- •Кортежи. Декартово произведение.
- •Транзитивные замыкания отношений.
- •Типы данных в бд
- •Декартово произведение множеств
- •Объединение новой записи (union)
- •Пересечение наборов записей (intersect)
- •Условное соединение
Транзитивные замыкания отношений.
Пусть отношение Rзадано на декартовом произведении в степени некоторого множества А.
Транзитивным замыканием Rназывается новое отношение Ṝ, состоящее из картежей (х,у) для которых выполняется:
либо картеж (х,у) ϵ R
либо найдется конечная последовательность z1,z2,…,znϵA, такая что (х, z1)(z1,z2),…,(zn,y) ϵК
Пусть множество А – множество деталей конструкций
А = {Болт, Гайка; двигатель, Автомобиль; Колесо, Ось}
Причем некоторые из деталей конструкции могут использоваться при сборке других деталей конструкций.
Взаимосвязь деталей описывает отношение R («непосредственно используется в…»)
Конструкция |
Где используется |
Болт |
Двигатель |
Болт |
Колесо |
Гайка |
Колесо |
Колесо |
Автомобиль |
Ось |
Колесо |
Транзитивные отношения Ṝ представляется в виде таблицы:
Конструкции |
Где используются |
Болт |
Двигатель |
Болт |
Колесо |
Гайка |
Двигатель |
Гайка |
Колесо |
Колесо |
Автомобиль |
Ось |
Колесо |
Болт |
Автомобиль |
Гайка |
Автомобиль |
Ось |
Автомобиль |
Смысл транзитивного замыкания отношения Ṝ состоит в описании включения деталей друг в друга не только непосредственно, а через использование их в промежуточных деталях. Так, например, болт используется в автомобили, т.к. он используется в двигателе, а двигатель в автомобиле.
Краткие выводы об основных понятиях и терминах.
Отношение – это подмножество декартового произведения множеств. Отношения состоят из однотипных картежей.
Отношения являются математическим аналогом понятия таблица.
Отношение обладает степенью и мощностью.
Степень отношения – это количество элементов в каждом кортеже отношения (аналог – количество столбцов в таблице)
Мощность отношения – мощность множества кортежей отношения( аналог – количество строк в таблице)
Базовые понятия реляционной модели данных (РМД)
Типы данных и домены. Общая характеристика РМД
Основы РМД были заложены Коддом в 1970. Это работы послужила стимулом для большого числа статей, в которых РМД получила свое дальнейшее развитие.
Наиболее распространённая трактовка РМД принадлежит Дейту. Согласно Дуйту, РМД состоит из 3х частей:
Структурная часть
Целостная часть
Манипуляционная часть
Описывает, какие объекты рассматриваются в РМД. Постулируется, что единственной структурой данных, используемой в РМД является Нормализованные n-арные отношения.
Описывает ограничения специального вида, которые должны выполняться в любых БД. Эта целостность сущности, целостность внешних ключей.
Описывает 2 эквивалентных способа манипулирования реляционными данными – реляционную алгебру, реляционное исчисление.
Типы данных
Любые данные, используемые в программирования имеют свои типы.
Примечание: РМД требует, чтобы типы используемых данных были простыми
Для уточнения этого утверждения посмотрим, какие вообще типы данных существуют.
Как правило типы данных делятся на 3 группы:
Простые
Структурированные
Ссылочные
01.03.12
Тема: SQL
ОПЕРАТОР SELECT
Select – ключевое слово которое сообщает СУБД, что эта команда – запрос. Все запросы начинаются этим словом с последующим пробелом. За ним может слеловать способ выборки – с удалением дубликатов или без удаления (ALL – все поля, все записи по всем столбцам с указанием определенных столбцов). Затем следует список перечисленных через запятую столбцов, либо знак ‘*’.
Синтаксис оператора Select
SELECT [ALL|DISTINCT] (список полей| или *)
FROM (список таблиц)
[WHERE (условие выборки или соединение) ]
[GROUP BY (список полей для вывода результатов)]
[HAVING (условие выборки для группы)]
[ORDER BY (список полей, по которым отсортировать записи)]
ALL – означает, что в результирующий набор строк включаются все строки удовлетворяющие условию запроса
DISTINCT – означает, что в результирующем набор строк попадают все строки, не имеющие дубликатов
Символ * означает, что в результирующий набор попадут все строки из всех столбцов
FROM – в разделе FROM задается список исходных отношений (таблиц).
В разделе WHERE задается условие отбора.
В разделе GROUP BY – задается список полей группировки.
HAVING – задается условие, предъявляемой каждой группе.
В разделе ORDER BY указывается способ сортировки.
В разделе WHERE могут быть использованы следующие предикаты:
1.предикаты сравнения (<,>,<=,<>)
2.предикат between A and B
3.предикат вхождения во множество IN
4. Предикаты сравнения с образцом LIKE и NOT LIKE
5.предикат сравнения с не определенным значением IS NULL
Для МОБД будет состоять из трех таблиц: R1, R2, R3
Пр.1: Select *
From r1,r2;
Примечание! Этот запрос соответствует декартовому произведению.
Пр.2: (проекция дек. Произв.)
Select r1.a, r2.b
From r1,r2;
Этот запрос соответствует проекции декартово произведения двух таблиц на два столбца (а – с таблицы r1, и b с таблицы r2. При этом дубликаты всех строк сохранены.
Пр.3:(вывести список всех групп без повторений) где должны пройти экзамены
Select distinct группа
From r3
Пр.4: Вывести списко студентов которые сдали экзамен по БД
Select ФИО
From r1
Where дисциплина = “БД” and оценка = 5;
Пр.5:вывести список всех студентов которым надо сдавать экзамен с указанием названием дисциплин, по которым должны проводится экзамены
Select ФИО, дисциплина
From r2, r3
Where r2 группа = r3 группа;
Здесь левая часть раздела where задает условия соединения отношения r2 , r3, при отсутствии условия соединения. Результат будет равен декартовому произведению (расширенному). В этом случае каждому студенту были бы приписаны дисциплины из отношения r3, а не те, по которым нужно сдавать экзамены.
Пр. Вывести список лентяев, имеющихся несколько двоек (максимум 2)
Select distinct r1. ФИО
From r1 a, r1 b
Where a.фио=b.фио and
a.дисциплина <> b.дисциплина
a.оценка<=2 and b. Оценка<=2;
Здесь мы используем псевдоним (a,b) для наименования отношения r1, так как для записи условия поиска необходимо работать с двумя экземплярами а и b указанного отношения r1.