
- •Информация и компьютер
- •Иерархические системы
- •Сетевые системы
- •Инфологическое проектирование баз данных
- •Выбор модели данных. Существование различных моделей обусловлено большим количеством разработанных к настоящему времени разнообразных субд.
- •Реляционные операторы
- •Целостность внешних ключей
- •Операторы dml (Data Manipulation Language) - операторы манипулирования данными
Реляционные операторы
Объединение отношений R1 и R2:
R = R1 U R2
Операция применяется только к отношениям одной и той же арности.
Пересечение отношений R1 и R2:
R = R1 R2 = R1 - (R1 - R2)
Разность отношений R1 и R2:
R = R1 - R2
Разностью (R1 - R2) называется множеством кортежей, принадлежащих отношению R1, но не принадлежащих отношению R2.
Декартово произведение отношений R1 и R2:
R = R1 x R2
Если отношение R1 имеет арность k1, а отношение R2 – арность k2, то декартовым произведением R1 x R2 отношений R1 и R2 называется множество кортежей арности (k1 + k2), причем первые k1 элементов образуют кортеж из отношений R1, а последние k2 элементов образуют кортеж из отношения R2.
Селекция отношения R1 по формуле F:
R = F (R2)
Где F – формула, образованная:
операндами, являющимися номерами столбцов
логическими операторами: and, or, not
арифметическими операторами сравнения: =, , >, , <, .
В формуле могут использоваться скобки.
Проекция отношения R1 на компоненты i1, i2, …, ir:
R = П i1, i2, …, ir(R1),
Где i1, i2, …, ir – номера столбцов отношения R1.
Операция проекции заключается в том, что из отношения R1 выбираются указанные столбцы и компонуются в указанном порядке.
Соединение отношений R1 и R2:
R = R1 R2 = i(n+j) (R1 x R2),
Где - арифметический оператор сравнения, n – арность отношения R1; i и j – номера столбцов соответственно в отношениях R1 и R2.
Деление отношений R1 и R2:
R = R1 : R2 = П1,2,…n-m(R2) - П1,2,…n-m((П1,2,…n-m(R1) x R2) - R1),
Где n – арность отношения R1; m – арность отношения R2; n>m, R2 .
Целостность сущностей.
Т.к. потенциальные ключи фактически служат идентификаторами объектов предметной области (т.е. предназначены для различения объектов), то значения этих идентификаторов не могут содержать неизвестные значения. Действительно, если бы идентификаторы могли содержать null-значения, то мы не могли бы дать ответ "да" или "нет" на вопрос, совпадают или нет два идентификатора.
Это определяет следующее правило целостности сущностей:
Правило целостности сущностей. Атрибуты, входящие в состав некоторого потенциального ключа не могут принимать null-значений
Целостность внешних ключей
Т.к. внешние ключи фактически служат ссылками на кортежи в другом (или в том же самом) отношении, то эти ссылки не должны указывать на несуществующие объекты. Это определяет следующее правило целостности внешних ключей:
Правило целостности внешних ключей. Внешние ключи не должны быть несогласованными, т.е. для каждого значения внешнего ключа должно существовать соответствующее значение первичного ключа в родительском отношении.
Нормализация отношений
Задача группировки атрибутов в отношения при условии, что набор возможных отношений заранее не фиксирован, допускает много различных вариантов и приводит к проблеме выбора рационального варианта из множества альтернативных вариантов схемы отношений. Рациональные варианты группировки атрибутов в отношения должны отвечать следующим требованиям:
Выбранные для отношений первичные (возможные) ключи должны быть минимальными.
Выбранный состав отношений базы должен быт минимальным (отличатся минимальной избыточностью атрибутов).
Не должно быть трудностей при выполнении операций включения, удаления и модификации данных в базе.
Перестройка набора отношений при введении новых типов данных должна быть минимальной.
Разброс времени ответа на различные запросы к БД должен быть небольшим.
Первая нормальная форма. Схема отношения R находится в первой нормальной форме тогда и только тогда, когда все входящие в неё атрибуты являются атомарными.
Вторая нормальная форма. Если X – ключ отношения R,Y (X,A – непервичный атрибут отношения R) то говорят, что в отношении R имеет место частичная зависимость (неполная функциональная зависимость), когда наблюдается:
X->A и Y->A.
Если это условие не выполняется, то говорят, что атрибут A функционально полно зависит от X в отношении R. Схема отношения R находится во второй нормальной форме, если она находится в первой нормальной форме, и каждый её непервичный атрибут функционально полно зависит от первичного ключа. Третья нормальная форма. Схема отношений R находится в третьей нормальной форме, если она находится во второй нормальной форме и ни один из непервичных атрибутов в R не является транзитивно зависимым от первичного ключа. Иными словами, схема отношений R находится в третьей нормальной форме, если она находится во второй нормальной форме и каждый непервичный атрибут (неключевой) нетразитивно зависит от первичного ключа.
Четвертая нормальная форма. Если в отношении присутствуют многозначные зависимости, то схема отношения должна находиться в четвертой нормальной форме. В противном случае снова возникнут соответствующие аномалии. Схема отношения R находится в четвертой нормальной форме, если всякий раз, когда существует многозначная зависимость X->->Y (где Y не пусто и не является подмножеством X, и XUY состоит не из всех атрибутов R), а X содержит ключ отношения R.
Основы SQL
Язык SQL оперирует терминами, несколько отличающимися от терминов реляционной теории, например, вместо "отношений" используются "таблицы", вместо "кортежей" - "строки", вместо "атрибутов" - "колонки" или "столбцы".
Стандарт языка SQL, хотя и основан на реляционной теории, но во многих местах отходит он нее. Например, отношение в реляционной модели данных не допускает наличия одинаковых кортежей, а таблицы в терминологии SQL могут иметь одинаковые строки. Имеются и другие отличия.
Язык SQL является реляционно полным. Это означает, что любой оператор реляционной алгебры может быть выражен подходящим оператором SQL.
Операторы SQL
Основу языка SQL составляют операторы, условно разбитые не несколько групп по выполняемым функциям.
Операторы DDL (Data Definition Language) - операторы определения объектов базы данных
CREATE SCHEMA - создать схему базы данных
DROP SHEMA - удалить схему базы данных
CREATE TABLE - создать таблицу
ALTER TABLE - изменить таблицу
DROP TABLE - удалить таблицу
CREATE DOMAIN - создать домен
ALTER DOMAIN - изменить домен
DROP DOMAIN - удалить домен
CREATE COLLATION - создать последовательность
DROP COLLATION - удалить последовательность
CREATE VIEW - создать представление
DROP VIEW - удалить представление