Операции над множествами
⇐ ПредыдущаяСтр 2 из 2 Основными операциями над множествами являются объединение, пересечение и разность. Определение 1. Объединением двух множеств называется новое множество Определение 2. Пересечением двух множеств называется новое множество Определение 3. Разностью двух множеств называется новое множество Если класс объектов, на которых определяются различные множества обозначить (Универсум), то дополнением множества называют разность
Це́лостность ба́зы да́нных (database integrity) — соответствие имеющейся в базе данных информации её внутренней логике, структуре и всем явно заданным правилам. Каждое правило, налагающее некоторое ограничение на возможное состояние базы данных, называется ограничением целостности (integrity constraint). Примеры правил: вес детали должен быть положительным; количество знаков в телефонном номере не должно превышать 25; возраст родителей не может быть меньше возраста их биологического ребёнка и т.д. Задача аналитика и проектировщика базы данных — возможно более полно выявить все имеющиеся ограничения целостности и задать их в базе данных.
Объект — это совокупность кода и данных, которые воспринимаются как одно целое. Объект может являться частью приложения, как, например, элемент управления или форма. Приложение в целом также может быть объектом.
Классы
Класс, например, это проект дома. Он определяет на бумаге как будет выглядеть дом, чётко описывает все взаимосвязи между его различными частями, даже если дом не существует в реальности.
А объект — это реальный дом, который построен в соответствии с проектом. Данные, которые хранятся в объекте похожи на дерево, провода и бетон, из которых построен дом: без сборки в соответствии с проектом, они будут всего лишь кучей материалов. Однако, собранные вместе они становятся отличным и удобным домом.
Отношение — фундаментальное понятие реляционной модели данных. По этой причине модель и называется реляционной Отношение имеет простую графическую интерпретацию в виде таблицы, столбцы (поля, атрибуты) которой соответствуют вхождениям доменов в отношение, а строки (записи) — наборам из значений, взятых из исходных доменов. Число строк (кортежей) называют кардинальным числом отношения (кардинальностью), илимощностью отношения. Такая таблица обладает рядом свойств: 1. В таблице нет двух одинаковых строк. 2. Таблица имеет столбцы, соответствующие атрибутам отношения. 3. Каждый атрибут в отношении имеет уникальное имя. 4. Порядок строк в таблице произвольный. Под атрибутом здесь понимается вхождение домена в отношение. Строки отношения называются кортежами.
Прямое или декартово произведение двух множеств — это множество, элементами которого являются всевозможные упорядоченные пары элементов исходных множеств. Понятие прямого произведения естественно обобщается на произведение множеств с дополнительной структурой (алгебраической, топологическиой, и т. д.) поскольку произведение множеств часто наследует структуры, имевшиеся на исходных множествах.
Нормальная форма — свойство отношения в реляционной модели данных, характеризующее его с точки зрения избыточности, потенциально приводящей к логически ошибочным результатам выборки или изменения данных. Нормальная форма определяется как совокупность требований, которым должно удовлетворять отношение.
Процесс преобразования отношений базы данных (БД) к виду, отвечающему нормальным формам, называется нормализацией. Нормализация предназначена для приведения структуры БД к виду, обеспечивающему минимальную логическую избыточность, и не имеет целью уменьшение или увеличение производительности работы или же уменьшение или увеличение физического объёма базы данных.[1] Конечной целью нормализации является уменьшение потенциальной противоречивости хранимой в базе данных информации. Как отмечает К. Дейт,[2] общее назначение процесса нормализации заключается в следующем: · исключение некоторых типов избыточности; · устранение некоторых аномалий обновления; · разработка проекта базы данных, который является достаточно «качественным» представлением реального мира, интуитивно понятен и может служить хорошей основой для последующего расширения; · упрощение процедуры применения необходимых ограничений целостности. Устранение избыточности производится, как правило, за счёт декомпозиции отношений таким образом, чтобы в каждом отношении хранились только первичные факты (то есть факты, не выводимые из других хранимых фактов).
Первая нормальная форма (1NF) — базовая нормальная форма отношения в реляционной модели данных. Определение[править | править исходный текст] Переменная отношения находится в первой нормальной форме тогда и только тогда, когда в любом допустимом значении отношения каждый его кортеж содержит только одно значение для каждого из атрибутов. В реляционной модели отношение всегда находится в первой нормальной форме по определению понятия отношение. Что же касается различных таблиц, то они могут не быть правильными представлениями отношений и, соответственно, могут не находиться в 1NF. В соответствии с определением К. Дж. Дейта для такого случая, таблица нормализована (эквивалентно — находится в первой нормальной форме) тогда и только тогда, когда она является прямым и верным представлением некоторого отношения. Конкретнее, рассматриваемая таблица должна удовлетворять следующим пяти условиям: 1. Нет упорядочивания строк сверху-вниз (другими словами, порядок строк не несет в себе никакой информации).
2. Нет упорядочивания столбцов слева-направо (другими словами, порядок столбцов не несет в себе никакой информации). 3. Нет повторяющихся строк. 4. Каждое пересечение строки и столбца содержит ровно одно значение из соответствующего домена (и больше ничего). 5. Все столбцы являются обычными[1]. «Обычность» всех столбцов таблицы означает, что в таблице нет «скрытых» компонентов, которые могут быть доступны только в вызове некоторого специального оператора взамен ссылок на имена регулярных столбцов, или которые приводят к побочным эффектам для строк или таблиц при вызове стандартных операторов. Таким образом, например, строки не имеют идентификаторов кроме обычных значений потенциальных ключей (без скрытых «идентификаторов строк» или «идентификаторов объектов»). Они также не имеют скрытых временных меток[1].
Вторая нормальная форма (англ. Second normal form; сокращённо 2NF) — одна из нормальных форм таблицы реляционной базы данных. Определение[править | править исходный текст] Переменная отношения находится во второй нормальной форме тогда и только тогда, когда она находится в первой нормальной форме и каждый неключевой атрибут неприводимо зависит от её потенциального ключа.[1] Неприводимость означает, что в составе потенциального ключа отсутствует меньшее подмножество атрибутов, от которого можно также вывести данную функциональную зависимость.[1] Для неприводимой функциональной зависимости часто используется эквивалентное понятие «полная функциональная зависимость».[1] Если потенциальный ключ является простым, то есть состоит из единственного атрибута, то любая функциональная зависимость от него является неприводимой (полной). Если потенциальный ключ является составным, то согласно определению второй нормальной формы в отношении не должно быть неключевых атрибутов, зависящих от части составного потенциального ключа. Вторая нормальная форма по определению запрещает наличие неключевых атрибутов, которые вообще не зависят от потенциального ключа. Таким образом, вторая нормальная форма запрещает создавать отношения как несвязанные (хаотические, случайные) наборы атрибутов.
Третья нормальная форма (англ. Third normal form; сокращённо 3NF) — одна из возможных нормальных форм отношения реляционной базы данных. 3NF была изначально сформулирована Э. Ф. Коддом в 1971 году. Определение[править | править исходный текст] Переменная отношения R находится в 3NF тогда и только тогда, когда выполняются следующие условия: · R находится во второй нормальной форме. · ни один неключевой атрибут R не находится в транзитивной функциональной зависимости от потенциального ключа R. Пояснения к определению: Неключевой атрибут отношения R — это атрибут, который не принадлежит ни одному из потенциальных ключей R. Функциональная зависимость множества атрибутов Z от множества атрибутов X (записывается X → Z, произносится «икс определяет зет») является транзитивной, если существует такое множество атрибутов Y, что X → Y и Y → Z. При этом ни одно из множеств X, Y и Z не является подмножеством другого, то есть функциональные зависимости X → Z, X → Y и Y → Z не являются тривиальными. Определение 3NF, эквивалентное определению Кодда, но по-другому сформулированное, дал Карло Заниоло в 1982 году. Согласно ему, переменная отношения находится в 3NF тогда и только тогда, когда для каждой из её функциональных зависимостей X → A выполняется хотя бы одно из следующих условий: · Х содержит А (то есть X → A — тривиальная функциональная зависимость) · Х — суперключ · А — ключевой атрибут (то есть А входит в состав потенциального ключа). Определение Заниоло четко определяет разницу между 3NF и более строгой нормальной формой Бойса-Кодда (НФБК): НФБК исключает третье условие («А — ключевой атрибут»).
Четвёртая нормальная форма (4NF) — одна из возможных нормальных форм отношения реляционной базы данных. Определение[править | править исходный текст] Переменная отношения R находится в четвёртой нормальной форме, если она находится в НФБК и все нетривиальные многозначные зависимости фактически являютсяфункциональными зависимостями[1] от её потенциальных ключей. Эквивалентная формулировка определения: Переменная отношения R находится в четвёртой нормальной форме тогда и только тогда, когда в случае существования таких подмножеств A и B атрибутов этой переменной отношения R, для которых выполняется нетривиальная многозначная зависимость A →→ B, все атрибуты переменной отношения R также функционально зависят от А [2].
Транзитивная зависимость — это зависимость между неключевымиатрибутами. Транзитивные зависимости изымаются также с помощью декомпозицииотношения на другие два или больше отношений, которые не содержат транзитивных отношений и объединение которых даст начальное отношение. ? 4-й шаг (4-я итерация) нормализации выполняет анализ на присутствие независимых многозначных зависимостей в отношении. Если они есть, то выполняется декомпозиция отношения.
Нормальная форма Бойса-Кодда (англ. Boyce-Codd normal form; сокращённо BCNF) — одна из возможных нормальных форм отношения в реляционной модели данных. Иногда нормальную форму Бойса-Кодда называют усиленной третьей нормальной формой, поскольку она во всех отношениях сильнее (строже) по сравнению с ранее определённой 3НФ[1]. Названа в честь Рэя Бойса и Эдгара Кодда, хотя Кристофер Дейт указывает, что на самом деле строгое определение «третьей» нормальной формы, эквивалентное определению нормальной формы Бойса-Кодда, впервые было дано Иэном Хитом (англ. Ian Heath) в 1971 году, поэтому данную форму следовало бы называть «нормальной формой Хита»[1].
Определение[править | править исходный текст] Переменная отношения находится в BCNF тогда и только тогда, когда каждая её нетривиальная и неприводимая слева функциональная зависимость имеет в качестве своего детерминанта некоторый потенциальный ключ[1]. Менее формально, переменная отношения находится в нормальной форме Бойса-Кодда тогда и только тогда, когда детерминанты всех ее функциональных зависимостей являются потенциальными ключами. Для определения BCNF следует понимать понятие функциональной зависимости атрибутов отношения. Пусть R является переменной отношения, а X и Y — произвольными подмножествами множества атрибутов переменной отношения R. Y функционально зависимо от X тогда и только тогда, когда для любого допустимого значения переменной отношения R, если два кортежа переменной отношения R совпадают по значению X, они также совпадают и по значению Y. Подмножество X называют детерминантом, а Y — зависимой частью. Функциональная зависимость тривиальна тогда и только тогда, когда ее правая (зависимая) часть является подмножеством ее левой части (детерминанта). Ситуация, когда отношение будет находиться в 3NF, но не в BCNF, возникает, например, при условии, что отношение имеет два (или более) потенциальных ключа, которые являются составными и имеют общий атрибут. На практике такая ситуация встречается достаточно редко, для всех прочих отношений 3NF и BCNF эквивалентн
Многозначная зависимость — это разновидность функциональной зависимости. Атрибут В находится в многозначительной зависимости от атрибута А, тогда коду одного значения атрибута А отвечает много значений атрибута В. Например, между атрибутами код структурного подраздела: табельный номер = 1: Б, так как в одном подразделе может работать много сотрудников. Т.е. многозначной зависимости отвечает отношение 1:Б между атрибутами. Существуют понятия тривиальной и нетривиальной многозначительной зависимости. Зависимость типа X ®> У и У ®> Х является тривиальной, а зависимость X ®> У и У #®> X - нетривиальной. Присутствие нетривиальных многозначных зависимостей в схеме отношения и независимость их правых частей предопределяют комбинаторику правых частей отношения.
Индекс (англ. index) — объект базы данных, создаваемый с целью повышения производительности поиска данных. Таблицы в базе данных могут иметь большое количество строк, которые хранятся в произвольном порядке, и их поиск по заданному критерию путем последовательного просмотра таблицы строка за строкой может занимать много времени. Индекс формируется из значений одного или нескольких столбцов таблицы и указателей на соответствующие строки таблицы и, таким образом, позволяет искать строки, удовлетворяющие критерию поиска. Ускорение работы с использованием индексов достигается в первую очередь за счёт того, что индекс имеет структуру, оптимизированную под поиск — например, сбалансированного дерева. Некоторые СУБД расширяют возможности индексов введением возможности создания индексов по столбцам представлений[1] или индексов по выражениям.[2] Например, индекс может быть создан по выражению upper(last_name) и соответственно будет хранить ссылки, ключом к которым будет значение поля last_name в верхнем регистре. Кроме того, индексы могут быть объявлены как уникальные и как не уникальные. Уникальный индекс реализует ограничение целостности на таблице, исключая возможность вставки повторяющихся значений.
Двои́чное де́рево — древовидная структура данных, в которой каждый узел имеет не более двух потомков (детей). Как правило, первый называется родительским узлом, а дети называются левым и правым наследниками. Для практических целей обычно используют два подвида бинарных деревьев — двоичное дерево поиска и двоичная куча.
Двоичное дерево поиска (англ. binary search tree, BST) — это двоичное дерево, для которого выполняются следующие дополнительные условия (свойства дерева поиска): · Оба поддерева — левое и правое, являются двоичными деревьями поиска. · У всех узлов левого поддерева произвольного узла X значения ключей данных меньше, нежели значение ключа данных самого узла X. · В то время, как у всех узлов правого поддерева того же узла X значения ключей данных не меньше, нежели значение ключа данных узла X. Очевидно, данные в каждом узле должны обладать ключами, на которых определена операция сравнения меньше. Как правило, информация, представляющая каждый узел, является записью, а не единственным полем данных. Однако, это касается реализации, а не природы двоичного дерева поиска. Для целей реализации двоичное дерево поиска можно определить так: · Двоичное дерево состоит из узлов (вершин) — записей вида (data, left, right), где data — некоторые данные, привязанные к узлу, left и right — ссылки на узлы, являющиеся детьми данного узла - левый и правый сыновья соответственно. Для оптимизации алгоритмов конкретные реализации предполагают также определения поля parent в каждом узле (кроме корневого) - ссылки на родительский элемент. · Данные (data) обладают ключом (key), на котором определена операция сравнения "меньше". В конкретных реализациях это может быть пара (key, value) - (ключ и значение), или ссылка на такую пару, или простое определение операции сравнения на необходимой структуре данных или ссылке на неё. · Для любого узла X выполняются свойства дерева поиска: key[left[X]] < key[X] ≤ key[right[X]], т. е. ключи данных родительского узла больше ключей данных левого сына и нестрого меньше ключей данных правого. Двоичное дерево поиска не следует путать с двоичной кучей, построенной по другим правилам. Основным преимуществом двоичного дерева поиска перед другими структурами данных является возможная высокая эффективность реализации основанных на нём алгоритмов поиска и сортировки. Двоичное дерево поиска применяется для построения более абстрактных структур, таких как множества, мультимножества, ассоциативные массивы.
При определении измерения каждый из фактов, как правило, соединяется с одним и только одним элементом измерения, в то время как отдельные элементы измерения могут быть связаны с несколькими разными фактами. Например, клиент может иметь много заказов, но каждый заказ принадлежит только одному клиенту. В терминологии связанных баз данных такая связь имеет название связь «один ко многим». Однако в некоторых случаях один факт может быть соединен с несколькими элементами измерения. В терминологии связанных баз данных такая связь имеет название связь «многие ко многим». Например, клиент может иметь несколько причин для совершения покупки, а причина покупки может быть связана с несколькими покупками.Соединяемая таблица используется для определения причин покупок, которые связаны с каждой покупкой. Измерение «Причина покупки», основанное на таких связях, будет иметь несколько элементов, связанных с одной транзакцией продажи. Связи «многие ко многим» выводят модель измерений за пределы классической схемы «звезда» и поддерживают комплексную аналитику, когда измерения не связаны напрямую с таблицей фактов.
Реляционная алгебра — замкнутая система операций над отношениями в реляционной модели данных. Операции реляционной алгебры также называют реляционными операциями. Первоначальный набор из 8 операций был предложен Э. Коддом в 1970-е годы и включал как операции, которые до сих пор используются (проекция, соединение и т.д.), так и операции, которые не вошли в употребление (например, деление отношений). В процессе развития реляционной теории и практики было предложено несколько новых реляционных операций, например полусоединение (SEMI-JOIN) и полуразность, или анти-полусоединение (ANTI-SEMI-JOIN)[1][2], CROSS APPLY и OUTER APPLY, транзитивное замыкание (TCLOSE) и др. Поскольку многие операции выразимы друг через друга, в составе реляционной алгебры можно выделить несколько вариантов базиса (набора операций, через который выразимы все остальные). Наиболее известный и строго определённый базис (алгебра А) предложен Кристофером Дейтом и Хью Дарвеном[3]. Реляционная алгебра и реляционное исчисление эквивалентны по своей выразительной силе[4]. Существуют правила преобразования запросов между ними. Переименование[править | править исходный текст] В результате применения операции переименования получаем новое отношение, с измененными именами атрибутов. R RENAME Atr1, Atr2, … AS NewAtr1, NewAtr2, … где R — отношение Atr1, Atr2, … — исходные имена атрибутов NewAtr1, NewAtr2, … — новые имена атрибутов Объединение[править | править исходный текст] Отношение с тем же заголовком, что и у совместимых по типу отношений A и B, и телом, состоящим из кортежей, принадлежащих или A, или B, или обоим отношениям. A UNION B Пересечение[править | править исходный текст] Отношение с тем же заголовком, что и у отношений A и B, и телом, состоящим из кортежей, принадлежащих одновременно обоим отношениям A и B. A INTERSECT B Вычитание[править | править исходный текст] Отношение с тем же заголовком, что и у совместимых по типу отношений A и B, и телом, состоящим из кортежей, принадлежащих отношению A и не принадлежащих отношению B. A MINUS B Декартово произведение[править | править исходный текст] Отношение (A1, A2, …, Am, B1, B2, …, Bm), заголовок которого является сцеплением заголовков отношений A(A1, A2, …, Am) и B(B1, B2, …, Bm), а тело состоит из кортежей, являющихся сцеплением кортежей отношений A и B: (a1, a2, …, am, b1, b2, …, bm) таких, что (a1, a2, …, am) ∈ A, (b1, b2, …, bm) ∈ B. Синтаксис: A TIMES B Выборка (ограничение)[править | править исходный текст] Отношение с тем же заголовком, что и у отношения A, и телом, состоящим из кортежей, значения атрибутов которых при подстановке в условие c дают значение ИСТИНА. c представляет собой логическое выражение, в которое могут входить атрибуты отношения A и/или скалярные выражения. A WHERE c Проекция[править | править исходный текст] Основная статья: Проекция (реляционная алгебра) Отношение с заголовком (X, Y, …, Z) и телом, содержащим множество кортежей вида (x, y, …, z), таких, для которых в отношении A найдутся кортежи со значением атрибута X равным x, значением атрибута Y равным y, …, значением атрибута Z равным z. При выполнении проекции выделяется «вертикальная» вырезка отношения-операнда с естественным уничтожением потенциально возникающих кортежей-дубликатов. A[X, Y, …, Z] или PROJECT A {x, y, …, z} Соединение[править | править исходный текст] Операция соединения есть результат последовательного применения операций декартового произведения и выборки. Если в отношениях имеются атрибуты с одинаковыми наименованиями, то перед выполнением соединения такие атрибуты необходимо переименовать. (A TIMES B) WHERE c Деление[править | править исходный текст] Отношение с заголовком (X1, X2, …, Xn) и телом, содержащим множество кортежей (x1, x2, …, xn), таких, что для всех кортежей (y1, y2, …, ym) ∈ B в отношении A(X1, X2, …, Xn, Y1, Y2, …, Ym) найдется кортеж (x1, x2, …, xn, y1, y2, …, ym). A DIVIDEBY B
Операторы[править | править исходный текст] Согласно общепринятому стилю программирования, операторы (и другие зарезервированные слова) в SQL всегда следует писать прописными буквами.[6] Операторы SQL делятся на: · операторы определения данных (Data Definition Language, DDL): · CREATE создает объект БД (саму базу, таблицу, представление, пользователя и т. д.), · ALTER изменяет объект, · DROP удаляет объект; · операторы манипуляции данными (Data Manipulation Language, DML): · SELECT считывает данные, удовлетворяющие заданным условиям, · INSERT добавляет новые данные, · UPDATE изменяет существующие данные, · DELETE удаляет данные; · операторы определения доступа к данным (Data Control Language, DCL): · GRANT предоставляет пользователю (группе) разрешения на определенные операции с объектом, · REVOKE отзывает ранее выданные разрешения, · DENY задает запрет, имеющий приоритет над разрешением; · операторы управления транзакциями (Transaction Control Language, TCL): · COMMIT применяет транзакцию, · ROLLBACK откатывает все изменения, сделанные в контексте текущей транзакции, · SAVEPOINT делит транзакцию на более мелкие участки.
При объединении одним оператором двух выражений с разными типами данных, параметрами сортировки, точностями, масштабами или длинами, результат определяется следующим образом.
SQL Server предоставляет синонимы типов данных для совместимости со стандартом ISO. Дополнительные сведения см. в разделе Синонимы типов данных (Transact-SQL). Категории типов данных Типы данных в SQL Server объединены в следующие категории.
В зависимости от параметров хранения, некоторые типы данных в SQL Server относятся к следующим группам:
SELECT (англ., означает «выбрать») — оператор DML языка SQL, возвращающий набор данных (выборку) из базы данных, удовлетворяющих заданному условию. В большинстве случаев, выборка осуществляется из одной или нескольких таблиц. В последнем случае говорят об операции слияния — JOIN. В тех СУБД, где реализованы представления (англ. view) и хранимые процедуры (англ. stored procedure), также возможно получение соответствующих наборов данных. При формировании запроса SELECT пользователь описывает ожидаемый набор данных: его вид (набор столбцов) и его содержимое (критерий попадания записи в набор, группировка значений, порядок вывода записей и т. п.). Запрос выполняется следующим образом: сначала извлекаются все записи из таблицы, а затем для каждой записи набора проверяется её соответствие заданному критерию. Если осуществляется слияние из нескольких таблиц, то сначала составляется произведение таблиц, а уже затем из полученного набора отбираются требуемые записи. Особую роль играет обработка NULL-значений, когда при слиянии, например, двух таблиц — главной (англ. master) и подчинённой (англ. detail) — имеются или отсутствуют соответствия между записями таблиц, участвующих в слиянии. Для решения этой задачи используются механизмы внутреннего (англ. inner) и внешнего (англ. outer) слияния. Один и тот же набор данных может быть получен при выполнении различных запросов. Поиск оптимального плана выполнения данного запроса является задачейоптимизатора.
Назначение экранных форм Edit 0 4 … Для баз данных, состоящих из большого количества таблиц, наглядная и удобная работа может быть организована при использовании экранных форм. Данный режим позволяет использовать все необходимые данные из одной или нескольких таблиц. Можно разместить на экранной форме меню, панели инструментов, командные кнопки и другие сложные объекты для работы с данными. На экранных формах можно организовать выбор информации из таблиц-справочников с использованием раскрывающихся списков или отдельных окон, использовать специальные режимы редактирования данных с сохранением или отменой изменений, режимы поиска и отбора информации, печати необходимых отчетов на принтере и пр.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|