Архитектура клиент-сервер
На высоком уровне систему БД можно рассматривать состоящей из двух частей:
1. Сервера (машина БД)
2. Клиенты – внешний интерфейс
БД – Сервер – Приложения (Клиенты: пользовательские & встроенные) – Конечные пользователи
«Локальная архитектура» - на одной машине и клиент, и сервер (MAccess)
Функции сервера:
· Определение данных
· Обработка данных
· Защита и целостность данных
Когда клиенты и сервер разнесены по разным машинам:
· Машина #1: приложения & пользователь
· Машина #2: БД & СУБД
· Машина#1 – связь через удаленный доступ – Машина#2
+: различные машины → различные свойства машин → различные способности
Много клиентов, сервер один:
БД – СУБД – коммуникационная сеть – { приложение&пользователь1, приложение&пользователь2,…}
В распределенной СУБД запрос выполняется к любому количеству серверов одновременно, в отличие от доступа к данным с какого-то определенного сервера.
5.Реляционные объекты данных: домены (понятие, назначение, реализация) и отношения (понятие отношения и др. терминов реляционной модели данных, определение отношения, свойства отношения)
Домен – именованное множество скалярных значений одного типа данных, из которого берутся значения определенного атрибута отношения.
Например, таблица поставщиков, домены:
· S – S<натуральное число>
· STATUS – натуральное, целое число; оговоренный диапазон
· CITY – определить сложно, возможно перечисление
· SNAME – определить сложно
Создать домен:
CREATE DOMAIN DSTATUS AS
INTEGER CHECK (DSTATUS BETWEEN 0 AND 50);
CREATE TABLE S
(…
STATUS DSTATUS, //как тип данных
…);
В SQL домен – тип данных определенный пользователем.
Назначение доменов: ограничивать сравнения. Сравнивать логично только атрибуты, определенные на одном домене.
Отношение (R), определенное на множестве доменов D1,D2,…Dn, содержит две части: заголовок и тело. Заголовок содержит фиксированное множество пар вида:
Имя_атрибута: имя_домена
S = {S: DS, SNAME: DNAME, STATUS: DSTATUS, CITY: DCITY}
Каждый атрибут определен ровно на одном домене, все имена атрибутов разные.
Множество пар называют схемой.
Тело отношения содержит множество кортежей. Каждый кортеж является множеством пар:
Имя_атрибута: значение_атрибута
S = { {S: ‘S1’, SNAME: ‘Smith’, STATUS: 20, CITY: ‘London’},{…}, … }
Множество – неупорядоченная совокупность множества объектов
Свойства отношений:
1. Нет одинаковых кортежей
2. Кортежи не упорядочены
3. Атрибуты не упорядочены (обращение к столбцам через имена, а не №)
4. Все значения атрибутов атомарные – неделимы (нормализованные отношения)
Отношения обладающие 4-ым свойством называются нормализованными
Реляционная БД – БД воспринимаемая пользователем как набор нормализованных отношений.
Отношения – таблица
Кортеж – строка
Атрибут – столбец
Кардинальное число – количество кортежей
Степень отношения – количество атрибутов
6.Целостность реляционных данных: первичный ключ (определение, назначение, виды первичных ключей, доказательство существования, первичный ключ и null-значения)
Первичный ключ (PK) – для некоторого отношения R это подмножества множества атрибутов отношения R обладающие следующими свойствами:
1) Свойство уникальности – в отношении R не может быть 2-х различных кортежей с одинаковым значением первичного ключа.
2) Свойство не избыточности – никакое из подмножеств PK не должно обладать свойство уникальности
Первичный ключ обеспечивает механизм адресации на уровне кортежей.
Замечание: ключ из 1-го атрибута – простой, из нескольких – составной.
Любое отношение всегда имеет, по крайней мере, 1 PK, содержащий все атрибуты.
Единственный способ указать на определенный кортеж – привести его PK.
Возможных или потенциальных PK может быть несколько. Пример:
Таблица Менделеева:
· Name
· Symbol
· Number
В таком случае следует выбрать наиболее короткий.
Население
· ФИО
· Паспорт - PK
· Адрес
· Дата_рожд
Производство деталей
Деталь | Кол-во | Дата |
23.10.12 | ||
23.10.12 | ||
22.10.12 |
PK – деталь-дата
Ни один атрибут PK не может содержать null-значения. Null-значение – значение еще не известно, ячейка остается пустой, незаполненной. Следует отличать от 0 или пробела.
7.Целостность реляционных данных: внешние ключи (определение, назначение, виды внешних ключей, правило ссылочной целостности, способы поддержания ссылочной целостности, внешний ключ и null-значения)
Внешний ключ (Foreign Key) – в отношение R2 – это подмножество атрибутов R2 обладающих следующими свойствами:
1) Существует отношение R1 с PK
2) Любое значение FK в отношении R2 всегда совпадает со значением первичного ключа некоторого кортежа из отношения R1
Замечание: FK будет составным, если ссылается на составной первичный ключ. FK может ссылаться на 1-ый ключ этого самого же отношения.
Сотрудники:
Код - PK
ФИО
Код_рук – FK
Правило ссылочной целостности: БД не должна содержать несогласованных значений внешних ключей (несогл. – ссылается на несуществ значение PK)
Согласованность может нарушаться при изменении и при удалении значения PK, на которое есть ссылки.
Меры поддержания ссылочной целостности:
1) Запретить изменение значения PK на которое есть ссылки
2) Обновить или удалить соответствующее значение внешнего ключа
Атрибуты внешних ключей могут содержать null-значения.
8.Реляционная алгебра: операции традиционные и специальные, примитивные.
Традиционные операторы над множествами:
Объединение – возвращает отношение содержащее кортежи, принадлежащие хотя бы одному из исходных отношений.
Пересечение – возвращает кортежи, принадлежащие одновременно 2-м исходным отношениям.
Разность R1 и R2 - возвращает отношение кортежей, которые принадлежат 1-му отношению R1, но не принадлежат R2.
Операции объединение, пересечение и разность должны быть совместимы по типу операндов, т.е. R1 и R2 должны иметь одинаковое количество атрибутов, соответствующие атрибуты должны быть определены на одном и том же домене.
Произведение - возвращает результат сцепления каждого кортежа 1-го отношения с каждым кортежем 2-го отношения.
R1 |
A |
B |
C |
R2 |
X |
Y |
R1xR2 | |
A | X |
A | Y |
B | X |
B | Y |
C | X |
C | Y |
Специальные операции:
Выборка – возвращает кортежи, удовлетворяющие определенному критерию отбора.
σF(R) F – критерий отбора, R – отношения, σ – выборка
Поставщики, живущие в Лондоне σCITY = ‘London’(S)
Проекция – возвращает все кортежи исходного отношения, но только с теми атрибутами, на которые выполняется проекция. πS, SNAME, CITY(S)
Соединение – возвращает отношение, кортежи которого представляют собой сочетание кортежей 2-х исходных отношений, имеющих общее значение общих атрибутов.
R1 | R2 | R1 R2 | ||||
A1 | B1 | B1 | C1 | A1 | B1 | C1 |
A2 | B2 | B2 | C2 | A2 | B2 | C2 |
A3 | B3 | B3 | C3 | A3 | B3 | C3 |
Деление – для двух отношений бинарного и унарного возвращает отношение содержащее значение одного атрибута первого отношения, которое соответствует в другом атрибуте всем значениям второго отношения.
R1 | R2 | R1 R2 | ||
A | X | X | A | |
A | Y | y | ||
A | Z | |||
B | X | |||
B | Z |
Результат каждой операции над отношением также является отношением – свойство замкнутости.
Операции выборки, проекции, произведения, объединения и вычитания являются примитивными, ни одна из них не выражается через другие.
Пересечение, соединение и деление можно определить через примитивные операции.