Архитектура клиент-сервер

На высоком уровне систему БД можно рассматривать состоящей из двух частей:

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

 

Результат каждой операции над отношением также является отношением – свойство замкнутости.

Операции выборки, проекции, произведения, объединения и вычитания являются примитивными, ни одна из них не выражается через другие.

Пересечение, соединение и деление можно определить через примитивные операции.