Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по базам данных.doc
Скачиваний:
33
Добавлен:
08.03.2015
Размер:
1.21 Mб
Скачать

Базы данных начались разрабатываться в 60-е годы и развивались до середины 75-х. При создании баз данных учитывались следующие требования: хранение, поиск, модификация данных, а также надёжность и многоканальность.

На первом этапе использовалась файловая система организации баз данных, но она была не надёжна.

В середине 60-х годов начались разрабатываться первые СУБД.

Рассмотрим пример.

Пусть в системе хранятся следующие данные: Номер, Зарплата, Отдел, Руководитель отдела, ФИО. Самый простой способ организовать Б.Д. это использовать файл записи. Недостатки: Очень трудно поддерживать администрирование Б.Д., так как некоторые записи будут повторяться, то есть появится избыточное дублирование. Можно использовать два файла: а) Сотрудники, б) Отделы. Но и здесь нарушается логическая система данных. Использование СУБД позволяет исключить все эти недостатки. Основная идея здесь состоит в том, чтобы отделить данные от приложений. Таким образом, Б.Д. представляет собой структурированную модель предметной области, интегрирующую представление всех пользователей.

- Централизованное управление.

  • Отсутствие избыточного дублирования.

  • Поддержка целостности (непротиворечивости) данных.

  • Удобство создания новых приложений.

  • Иммунитет к изменениям структуры и доступам данных.

  • Защита от разрушения и несанкционированного доступа к данным.

  • Поддержка существующих стандартов в области обработки данных. Были выработаны следующие стандарты: DDL,DML.

  • Следующая организация разработки Б.Д.

ANSI / SPARC

ACMSIGMOD.

Принято выделять три уровня представления данных:

  1. Внешнее представление.

  2. Концептуальное представление.

  3. Внутренне или физическое представление.

В основе концептуального представления лежат: иерархическая, реляционная, . . . модели.

СУБД должна поддерживать данные на любом уровне. При этом очень важно, чтобы СУБД обеспечивала независимость при работе с данными на других уровнях, то есть пользователь не должен заботится о нижних уровнях.

Основные модели баз данных.

В процессе концептуального творчества в Б.Д. исследуется предметная область. Результат обычно представляется в виде некоторой модели предметной области. Эта модель отражает все существующие с точки зрения разработчика систему (семантику) предметной области. Одним из наиболее точных подходов в построении предметной области является модель СущностьиСвязь.

Основным понятием этой модели являетсяСущность.Под ней понимается нечто существенное различимое в реальном мире. (Например: студент, преподаватель, кафедра). Концептуальным примером сущности является студент – Иванов. Множество всех экземпляров некоторой сущности из некоторой предметной области называетсянабором экземпляров.Каждая сущность имеет некоторые существенные признаки –атрибуты.Например, для сущностиСтудент атрибутом будет Иванов (Фамилия, адрес).

Если говорить об экземплярах одной сущности, то они должны различаться хотя бы в одном атрибуте. Выделяют уникальный атрибут (№ паспорта, № зачётной книжки и т. д.).

В реальном мире все сущности как-то связаны между собой связями(Например, между студентом и преподавателем существует связь “обучает” и так далее).

Принято рассматривать три вида связи:

  1. 1:1(простая связь). Если любому экземпляру одной сущности соответствует не более одного экземпляра другой сущности.

  1. 1:M (множественная связь). Если любому экземпляру одной сущности соответствует несколько экземпляров второй сущности, но любому экземпляру второй сущности соответствует не более одного экземпляра первой сущности.

  1. M:M (множественная связь). Если любому экземпляру одной сущности соответствует множество экземпляров второй сущности и наоборот.

Связи могут иметь атрибуты.

В данном примере атрибутом связи является количество.

Модель представления данных в СУБД.

Свойство любой Б.Д. заключается в том, что её организация зависит от используемой модели СУБД, поэтому к ней добавляют слово модель.

  1. Иерархическая модель.

  2. Сетевая.

  3. Инвертированные файлы.

  4. Реляционная.

В настоящее время СУБД основываются на реляционной модели, поэтому иерархическая и сетевая модели относятся к до реляционным моделям. К пост реляционному периоду относится объектно-ориентированная модель, и чисто объектные СУБД.

Иерархическая модель данных.

В основе данной модели лежит дерево, точнее Б.Д. представляет упорядоченный экземпляр дерева.

Присутствует иерархическая связь.

25 отдел 12 сотрудников 12000

165 . . . . . .

164 Петров 50

166 . . . . . .

1) Любой экземпляр дерева может иметь записи, может иметь несколько подчинённых, но не более одного предшественника.

2) Любой экземпляр не может существовать без своего предшественника.

В данной модели трудно организовать представление связи M:M.

Пример:

Нет однозначной иерархии, поэтому проводят искусственную иерархию, то есть предполагают, что один студент не может посещать лекции у более одного преподавателя.

3) Для каждого экземпляра одного типа может существовать различное число подгрупп.

Сетевая модель данных.

Данная модель является обобщением иерархической модели. Здесь не ограничено число предков, таким образом, получаем граф. Более естественное представление связи M:M.Получаем структурно ориентированный граф, что существенно упрощает структуру сети.

В данной модели используется мультисписок - переход от одного списка к другому.

Ограничение целостности не требуется.

Инвертированные файлы.

Данные в этих базах представляются в виде таблицы, и далее вводилось инвертирование (индексирование).

Пусть имеется файл о поставщиках некоторых товаров.

Поставщики:

Код

Фамилия

Категория

Сотрудники

А1

Петров

10

Москва

А2

Иванов

30

Тула

А3

Орлов

30

Орёл

А4

Сидоров

40

Москва


Инвертированная таблица.

Указатели

Город

A2

Тула

А1, A4

Москва

А3

Орёл


Такая запись позволяет производить быстрый поиск по атрибутам.

Общие особенности до реляционного периода:

1) Все эти СУБД не строились на строгих моделях манипулирования представления.

2) Фактически в этих БД пользователь располагал низкоуровневым интерфейсом.

3) Неоднозначность представления данных.

Реляционная модель данных.

В 1970 году опубликовал Кодд.

Отличия: Входил строго определённый аппарат в виде реляционной алгебры. Все данные собраны в таблицу, которую называют отношением.

Пример: Отношение “Поставщики”.

Код

Фамилия

Категория

Сотрудники

А1

Иванов

10

Москва

А2

Петров

30

Москва

А3

Сидоров

30

Киев

А4

Орлов

40

Орёл


Столбцы в данной таблице называются атрибутами.

Каждый конкретный поставщик (экземпляр отношения) размещён в строке-кортеже.

Домен - множество допустимых значений атрибута.

Отношение “Товар”.

Код_тов

Наименование

Цена

Сотрудники

В1

Мяч

120

Тула

В2

Сетка

200

Орёл

В3

Шайба

100

Москва


Совпадение атрибутов связывает таблицы. Связи представляются в виде отношения. Пример: между “поставщиками” и “товарами” существует связь “поставляют”.

Код_пост

Код_тов

Количество

А1

В2

140

А1

В1

100

А2

В1

50

А3

В2

70

А4

В3

90


Список имён атрибутов в реляционной модели называют схемой отношения.

Например:

Поставщики (Код_пост, ФИО, Категория, Город).

Товар (Код_тов, Наименование, Цена, Город).

Поставка (Код_пост,Код_тов, Количество).

Любое под множество образует подсхему Б.Д..

При проектировании Б.Д. основными целями являются:

  • Каждому внешнему представлению соответствует внешняя подсхема, с которой работает программист.

  • Требование атомарности значения атрибута. Это вытекает, что домен есть множество значений простого типа данных.

Пример неправильно составленной базы данных:

Номер отдела

Сотрудники

216

Петров

Орлов

Иванов


Пример правильно составленной базы данных:

Номер отдела

Сотрудники

216

Петров

216

Орлов

216

Иванов

  • Отсутствие кортежей дубликатов.

  • Каждое множество состоит из различных элементов, следовательно, нужно наличие у каждого отношения ключа, однозначно идентифицирующий кортеж отношения.

  • Отсутствие требования упорядоченности кортежей, то же самое можно сказать и об атрибутах. Для ссылки на атрибут необходимо использовать его имя.

Реляционная модель данных включает три основные части:

  1. Структурная. Структура данных единственна для отношения, находящегося в первой нормальной форме.

  2. Манипуляционная. Фиксируется два фундаментальных механизма данных, которые называются реляционной алгеброй и реляционным исчислением. На их базе строится язык SQL.

  3. Целостносная. Определяется два требования: а) отличие любого кортежа от другого кортежа этого же отношения; б) Требование ссылочной целостности.

Сотрудники (Код_сотр, ФИО, Год_рожд, Код_должн),

Должность (Код_должн, Наименование, Оклад).

В отношении “должность” первичным ключом является “Код_долж”.

Внешним ключом называется такой ключ, который в другой БД является первичным ключом.

Требование целостности по ссылкам означает, что любому значению внешнего ключа в некотором отношении, должно соответствовать такое же значение первичного ключа в отношении, по которому делается ссылка по внешнему ключу. В ряде случаев допускается идентичное наименование ключа.

В связи со ссылочной целостностью возникает проблема обновления данных. При удалении кортежа с первичным ключом может возникнуть ситуация, когда в БД внешние ключи ссылаются на удалённые кортежи. Поэтому запрещается удалять кортежи, если на них имеются ссылки. При удалении кортежа с первичным ключом, все ссылки принимают неопределённое значение. Поэтому при удалении кортежа с первичным ключом из БД также удаляют все кортежи, в которых имеются ссылки на него (Каскадное удаление).

Элементы реляционной алгебры.

Пусть D1, D2, D3, . . ., Dn - совокупность множества доменов необязательно различных.

D1* D2* D3* . . .* Dn -называется множество упорядоченных кортежей таких, что

, , , . . ., . ОтношениеRнаD1, D2, D3, . . ., Dn называют декартовым подмножествомD1* D2* D3* . . .* Dn . Число кортежей входящих в отношение называюткардинальным числом, а число доменов называютстепенью отношения.

Рассмотрим пять основных операций:

1. Объединение.

Пусть R, S отношения одинаковой арности. Объединениемназывают отношение той же арности, множество кортежей которого принадлежит либоRилиS,либо обоим отношениям.

Пример.

2. Разность.

Пусть R, S отношения одинаковой арности. Разностьюназывают множество кортежей, принадлежащихRи не принадлежащих S.

П

R - S : a b c

a c e

ример.

3. Декартово произведение.

Пусть R отношениеk1арности, а S отношениеk2арности. Декартовым произведением называют множество кортежей длиныk1+k2таких, что первый принадлежитR, а последний к S.

Пример.

4. Проекция.

Пример.

Для получения проекции нужно:

а) Вычеркнуть часть столбцов (атрибутов).

б) Переупорядочить оставшиеся столбцы.

в) Если в полученном отношении оказались одинаковые кортежи, исключить повторяющиеся кортежи.

Пусть R есть отношениеkарности и пустьi1, i2, i3, . . ., in, где, есть множество различных целых чисел из диапазона от1доk.

Есть множество кортежей а1, а2, а3, . . ., аn, для каждого из которых существует кортежb1, b2, b3, . . ., bnиз отношенияR, такой что

5. Селекция.

Пусть F выражение, составленное из констант номеров или имён атрибутов отношенияи логических операций. Тогда селекцией отношенияRпо выражению Fназывают множество кортежей изFпринимающих истинное значение.

Пример.

Множество кортежей из “Товар”, в которых атрибут Город=“Москва”.

Очень часто используется операция соединения, и её естественные разновидности. Пусть Rотношение арностиk1, аS арностиk2.Пустьи.

Операция соединения определяется через селекцию:

Замечание:

Вместо номеров атрибутов можно использовать имена.

Пример.

S : D E

  1. 1

6 2

Выбираются кортежи, в которых значение ВменьшеD.

Естественное соединение.

Предполагают, что имеются одноимённые атрибуты, и соединение выполняют по одноимённым атрибутам (по их значениям). При этом одноимённые атрибуты не дублируются.

Пример.

Соединение производится по атрибутамВиС,

R: a b c d

a b c e

d b c d

. . .

d b c e

c a d b

На основе реляционной алгебры строится язык манипулирования данными - реляционное исчисление, которое разделяется на а) Исчисление на доменах, б) Исчисление на кортежах.

Единственная структура- это таблица.

Проектирование систем баз данных.

  1. Строят концептуальную модель предметной области, максимально отражающую её.

  2. Строят схему БД.

  3. Должна быть обеспечена возможность хранения всех необходимых данных в БД, исключая избыточность дублирования.

  4. Необходимо свести к минимуму число хранимых отношений. Для этого нормализуют отношения для предотвращения аномалий при вставке, удалении, обновлении.

Устранение избыточности.

Пусть имеется некоторое отношение:

Служащий

Начальник

Рабочий тел

Иванов

Котлов

22-22-22

Петров

Орлов

22-45-23

Сидоров

Соколов

22-34-30

Орлов

Котлов

22-22-22

В отношении имеется избыточное дублирование значения атрибута “Рабочий тел”у Котлова.

Пусть преподаватель консультирует студентов, которые проживают в общежитии.

Консультант:

Номер

Имя

Комната

Тел

Предмет

Семестр

Оценка

3215

Петров

212

382

Математика

1

3

3215

Петров

212

382

Базы данных

1

3

3215

Петров

212

382

Физика

2

4

3215

Петров

212

382

Математика

2

3

3462

Иванов

314

368

Математика

2

4

3462

Иванов

314

368

Алгебра

3

5

3462

Иванов

314

368

Физика

3

4

3567

Смирнов

212

382

Базы данных

3

4

3567

Смирнов

212

382

Английский

4

3

3567

Смирнов

212

382

Сети

4

5

4566

Алексеев

325

316

Немецкий

2

4


В представленном отношении нет атомарности атрибутов.

Аномалия вставки.

Предположим, что появился студент, который не закончил обучаться по какому-то предмету, то есть у него отсутствует оценка.

Аномалия обновления.

Если у Петрова изменился номер комнаты, то нужно изменять четыре кортежа.

Аномалия удаления.

Преподаватель узнаёт, что Алексеев закончил изучение немецкого языка и удаляет его из списка, пропадает информация о комнате и телефоне или оставить Алексеева в списке, но без предмета, что очень неудобно.

Выполним нормализацию, которая основана на понятии функциональной зависимости между атрибутами.

Определим, что такое функциональная зависимость.

Пусть аиbатрибуты БД.

Если каждому значению атрибута а,в любой момент времени, соответствует одно и тоже значение атрибутаb, то говорят, что атрибутbзависит ота,то естьа.Под атрибутома можно понимать не только один атрибут, но и целую группу атрибутов.

Отношение находится в первой нормальной форме, если все его атрибуты являются простыми.

На первом этапе выписываются все функциональные зависимости для этого отношения:

НомерИмя

НомерКомната

НомерТелефон

ТелефонКомната

Комната Телефон

Номер, Предмет, Семестр Оценка

Отношение находится во второй нормальной форме, если оно находится в 1НФ, и каждый не ключевой атрибут функционально полно зависит от первичного ключа.

Если первичным ключом является отношение, то оно находится во второй нормальной форме.

(Номер, Имя, Должность, Оклад, Кафедра, Предмет, Часы, Сл. Телефон)

Первичный ключ может быть составным:

(Номер, Предмет, Имя, Должность, Оклад, Кафедра, Часы, Сл. Телефон)

Отношение находится в третьей нормальной форме, если оно находится во 2НФ, и каждый не ключевой атрибут не транзитивно зависит от первичного ключа.

НомерДолжностьОклад – транзитивная зависимость.

Выполним декомпозицию.

Преподаватель_предмет (Номер, Предмет, Часы)

Преподаватель (Номер, Имя, Должность, Кафедра)

Кафедра (Кафедра, Сл. Телефон)

Должность (Должность, Оклад)

Все четыре отношения в третьей нормальной форме.

Существуют более сильные требования. В ряде ситуаций 3-я нормальная форма не помогает, тогда применяют третью нормальную форму Бойса-Кодда.

Определения:

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

Пусть имеет место функциональная зависимость A,причём,Взависит функционально полно отA,тогда атрибутAназывают детерминантомВ.

Пример.Отношение “Консультант”.

Возможный ключ:

Детерминанты: Имя, Комната, Тел, Оценка.

Отношение находится в нормальной форме Бойса-Кодда, если любой его детерминант является возможным ключом.

Сведение к НФБК устраняет большинство аномалий при проектировании БД.

Существует методика на основе функциональных зависимостей между атрибутами. Как и в случае любой нормализации выполняется декомпозиция:

  1. Разрабатывается отношение в 1 НФ.

  2. Определяются и выписываются все функциональные зависимости.

  3. Для каждого из отношений выписываются возможные ключи и детерминанты и определяют, находятся ли они в НФБК, если нет, выполняют декомпозицию на два отношения.

  4. Для полученных отношений повторяют шаги 2 и 3.

Пусть имеется отношение R(А, В, С, D, E, . . .).Пусть имеет место функциональная зависимость

С.Тогда декомпозиция выполняется следующим образом:

То есть функциональная зависимость выделяется в отдельное отношение.

Такая декомпозиция происходит без потерь при естественном соединении.

Пример.Пусть существуют

Появились два лишних кортежа.

Декомпозиция отношения консультант:

Номер, Предмет, СеместрОценка

НомерИмя

НомерКомната

НомерТелефон

ТелефонКомната

Комната Телефон

Консультант (Номер, Имя, Комната, Тел, Предмет, Семестр, Оценка)

В данном отношении имеются транзитивные цепочки A.Поэтому руководствуются правилом крайнего (Если в функциональной зависимости имеется транзитивная зависимость, то декомпозицию выполняют по крайней с правой зависимости).

Применим это к отношению “Консультант”.

R1 (Номер, Предмет, Семестр, Имя, Комната, Оценка)

R2 (Комната, Телефон)

R3 (Номер, Предмет, Семестр, Оценка)

R4 (Номер,Имя, Комната).

Таким образом, окончательно получаем:

R2 (Комната, Телефон)

R3 (Номер, Предмет, Семестр, Оценка)

R4 (Номер,Имя, Комната).

R2:R4:

Номер

Имя

Комната

3215

Петров

212

3462

Иванов

314

3567

Смирнов

212

4566

Алексеев

325


Комната

Тел

212

382

314

368

325

316

R3:

Номер

Предмет

Семестр

Оценка

3215

Математика

1

3

3215

Базы данных

1

3

3215

Физика

2

4

3215

Математика

2

3

3462

Математика

2

4

3462

Алгебра

3

5

3462

Физика

3

4

3567

Базы данных

3

4

3567

Английский

4

3

3567

Сети

4

5

4566

Немецкий

2

4

Существенно сократилось число кортежей.

Замечание к методу декомпозиций.

Всегда нужно руководствоваться правилом крайней правой функциональной зависимости. Если наоборот, то будет утеряна функциональная зависимость, которая имеет место.

ПустьR (А, В, С),то может быть:

В данном примере нельзя проводить декомпозицию по одной зависимости, так как вторая может быть потеряна. Нужно: R1(А, В); R2( С, B).

Существует метод синтеза: Все функциональные зависимости с одинаковыми детерминантами выделяются в отдельные группы, и каждой группе отводится отдельное отношение.

Удаление избыточных функциональных зависимостей.

Существуют функциональные зависимости, которые можно выразить через другие, для этого необходимо удалить избыточные функциональные зависимости. Это осуществляется через правила вывода, каждое из которых осуществляет связь между функционалами.

1. Правило рефлексивности.

Если X,Y,Y, то имеет место функциональная зависимостьX.

2. Правило транзитивности.

ЕслиAиВ, то имеет место зависимостьА, но она избыточна.

Таким образом,

3. Правило пополнения.

a) ЕслиAфункциональная зависимость, то имеет место зависимостьА,Z, но она избыточна.

б) Если Aфункциональная зависимость, то имеет место зависимостьА,Z, но она избыточна.

а) б)

4. Правило объединения.

Если AиА, то имеет место зависимостьА, но она избыточна.

5. Правило декомпозиции.

Если А, то имеет место зависимость AиА, но они избыточны.

6. Правило псевдо-транзитивности.

Если Аи В,С, то имеет место зависимость A,но она избыточна.

Пусть требуется построить набор функциональных зависимостей, в котором нет избыточных функциональных зависимостей.

1. В.Избыточная зависимость .

2. Применяем правило декомпозиции.

3. Окончательно получаем.

Минимальный набор функциональных зависимостей, который получаются удалением из исходных набора всех избыточных, называется минимальным покрытием.

Замечание: Строгая теория избыточных функциональных зависимостей включает в себя шесть правил вывода, три из которых правиларефлексивности, транзитивности, объединенияназываютсяаксиомами Армстронга,остальные правила выводятся из них.

С учётом этой теории можно уточнить алгоритм:

  1. Построить универсальное отношение (то есть ненормализованное).

  2. Определить все функциональные зависимости между атрибутами.

  3. Удалить избыточные функциональные зависимости и получить минимальное покрытие с помощью правил вывода.

  4. Декомпозировать универсальное отношение в набор, находящийся в НФБК.

  5. Если может быть построено не одно минимальное покрытие, то выбирают лучшей вариант:

а) Выписывают все функциональные зависимости и проверяют выполнение следующих условий:

- Каждая функциональная зависимость входит не более чем в одно отношение.

- Набор функциональных зависимостей должен совпадать с минимальным покрытием.

б) В полученном наборе отношения могут быть избыточны. Отношение R1является избыточным в наборе отношенияR,если все атрибутыR1 целиком входят в некоторое отношение Rили в некоторое соединение других отношений БД. Если такие отношения присутствуют, то их удаляют.

Проектирование БД в терминах “сущность” - “связь”.

ЕRдиаграмма (“сущность” - “связь”).

Рассмотрим данные диаграммы.

Пусть требуется показать все экземпляры сущности и явно указать все связи между ними.

Имеется связь M:M.

Рассмотрим ЕRдиаграммы, которые отображают семантику предметной области.

Сущность изображается в виде прямоугольника, а связь – ромбом.

Могут иметь место две различные ситуации:

Класс принадлежит сущности, то есть является обязательным, если любой экземпляр сущности связан с некоторыми экземплярами другой сущности.

Класс не принадлежит сущности, то есть является необязательным, если может существовать экземпляр этой сущности, не связанный с некоторыми экземплярами другой сущности.

Характеристика принадлежности на диаграммах ЕR - типа.

На этих диаграммах приписывают ключевые атрибуты.

По данным диаграммам можно сформировать бизнес правила:

  1. Преподаватель может преподавать несколько предметов.

  2. Преподаватель должен преподавать хотя бы один предмет.

  3. Предмет может преподаваться более чем одним преподавателем.

  4. Предмет может не преподаваться.

Процесс проектирования начинается с анализа предметной области, и с построения диаграмм ЕR - типа. При этом выписываются все бизнес правила, которые отражены на данной диаграмме.

Построение отношений на основе диаграмм ER-типа

Выделим сущности: преподаватель, студент, предмет.

Преподаватель - ТабПр

Студент - НомЗач

Факультет - КодФ

Декан - ТабДек

Кафедра - КодКаф

Для каждой сущности определим ключ, связи будем наносить на диаграмму ER-типа:

Теперь минимизируем связи (устанавливаем бизнес-правила):

Будем считать, что студент обучается на одном факультете.

Пусть на факультете обучается обязательно один студент.

Студент может изучать никакой предмет – быть в академическом отпуске.

Раз предмет ввели новый, следовательно, его еще никто не изучает, следовательно, преподаватель к этому предмету еще не приписан.

К каждой связи мы должны прописать четыре бизнес-правила, следовательно, всего 24 бизнес-правила.

Декан может преподавать, поэтому должна быть связь между деканом и преподавателем (этой связи нет – это ошибка нашей схемы).

Для устранения этой ошибки уберем сущность «декан», и установим связь «возглавляет» между факультетом и преподавателем.

Построим диаграмму по предметной области.

Теперь анализируем диаграмму. Анализируется каждая связь, и руководствуясь конкретными правилами, выписывают набор предварительных отношений.

Рассмотрим эти правила:

1

1

1

.

ТабПр, …

КодПр, …

ПреподавательПреподаетПредмет

П1 математика

П2 физика

П3 английский

П4 БД

Максимальное количество отношений можно построить:

ПрепПред (ТабПр, …, КодПр, …)

Правило № 1: Если имеет место бинарная связь 1:1 и класс принадлежности к обеим сущностям обязателен, то достаточно одного отношения, ключом которого может быть любая из сущностей.

2.

1

1

ТабПр, …

КодПр, …

ПреподавательПреподаетПредмет

П1 математика

П2 физика

П3 английский

П4 БД

Сети

П

Это внешний ключ, который ссылается

реподаватель (ТабПр, …, КодПр)

Предмет (КодПр, …)

Правило № 2: Если характер бинарной связи 1:1, и класс принадлежности одной сущности обязателен, а другой не обязателен, то строятся два отношения, каждое для соответствия сущности с ее первичным ключом. Ключевой атрибут сущности с необязательным классом принадлежности добавляется в отношение для сущности с обязательным классом принадлежности в качестве внешнего ключа.

3.

1

1

ТабПр, …

КодПр, …

ПреподавательПреподаетПредмет

П1 математика

П2 физика

П3 английский

П4 БД

Преподаватель (ТабПр, …)

Предмет (КодПр, …)

ПрепПред (ТабПр,КодПр, …)

Правило № 3: Если характер бинарной связи 1:1 и класс принадлежности обеих сущностей не обязателен, то строятся три отношения по одному для каждой из сущностей с соответствующими первичными ключами, и одно для связи, где ключ составлен из первичных ключей обеих сущностей.

4.

1

n

ТабПр, …

КодПр, …

1

n

ТабПр, …

КодПр, …

ПреподавательПреподаетПредмет

П1 математика

П2 физика

П3 английский

П4 БД

сети

Минимум два отношения:

Преподаватель (ТабПр, …)

Предмет (КодПр, …, ТабПр)

Правило № 4: Если характер бинарной связи 1:nи класс принадлежностиn-связной сущности обязателен, то независимо от класса принадлежности односвязной сущности строятся два отношения, по одному для каждой из сущностей с их первичными ключами. Кроме того, в отношение дляn-связной сущности добавляется ключевой атрибут односвязной сущности в качестве внешнего ключа.

5.

1

n

ТабПр, …

КодПр, …

1

n

ТабПр, …

КодПр, …

ПреподавательПреподаетПредмет

П1 математика

П2 физика

П3 английский

П4 БД

сети

метрология

Правило № 5: Если характер бинарной связи 1:nи класс принадлежностиn-связной сущности не обязателен, то независимо от класса принадлежности односвязной сущности строятся три отношения в соответствии с правилом № 3.

6

m

.

n

ТабПр, …

КодПр, …

m

n

ТабПр, …

КодПр, …

m

n

ТабПр, …

КодПр, …

ПреподавательПреподаетПредмет

П1 математика

П2 физика

П3 английский

П4 БД

сети

метрология

Правило № 6: Если характер бинарной связи m:n, то независимо от классов принадлежности сущностей к этой связи строятся три отношения, в соответствии с правилом № 3.

Сущность1

Сущность2

Отношение1

Отношение2

Отношение3

Характер множественности

Класс принадлежности

Характер множественности

Класс принадлежности

1

Обязателен

1

Обязателен

(ключ1, …, ключ2, …)

-

-

1

Обязателен

1

Необязателен

(ключ1, …, ключ2)

(ключ2, …)

-

1

Необязателен

1

Необязателен

(ключ1, …)

(ключ2, …)

(ключ1,ключ2, …)

1

Любой

n

Обязателен

(ключ1, …)

(ключ2, …, ключ1, …)

-

1

Любой

n

Необязателен

(ключ1, …)

(ключ2, …)

(ключ1,ключ2, …)

m

Любой

n

Любой

(ключ1, …)

(ключ2, …)

(ключ1,ключ2, …)

Ключ1, …

Ключ2, …

Замечания распределений ключевых атрибутов.

После построения предварительных отношений, в которых записаны только ключевые атрибуты, необходимо приписать к соответствующим атрибутам ключевые атрибуты. В большинстве случаев эта задача оказывается неочевидной. Но могут встретиться ситуации, когда некоторые ключевые атрибуты трудно приписать к тому или иному атрибуту.

Одновременно выписываются и анализируется функциональные зависимости.

Если некоторым атрибутам невозможно найти однозначное место, то это говорит о том, что есть ошибка.

Нестандартные ситуации.

1. Использование связи более высокого порядка.

ТабПр, …

КодПр, …

НомАуд, …

Теперь покажем связь более высокого порядка.

n

m

ТабПр, …

КодПр, …

1

НомАуд, …

У каждого преподавателя есть предпочитаемая аудитория.

Конкретный предмет преподаватель предпочитает читать только в одной аудитории.

Один преподаватель для преподавания разных предметов может предпочитать разхные аудитории.

Правило: Если связь двухсторонняя, то необходимо использовать четыре отношения; по одному на сущность и одно для связи.

Преподаватель (ТабПр, …)

Предмет (КодПр, …)

Аудитория (НомАуд, …)

ППА (ТабПр,КодПр,НомАуд, …)

Для связи более высокого порядка используют аналогичное правило, при этом n-арная связь порождает (n+ 1) отношения.

Ролевые сущности

Представление предметной области оказывается недостаточным для представления ее семантики.

1

n

ТабМ, …

ТабР, …

Мастер (ТабМ, …)

Рабочий (ТабР, …,ТабМ)

Ключевые атрибуты, которые мы будем распределять: ФИО, Оклад, Норма, ТелР, ТелД.

Мастер (ТабМ, Оклад, ТелР,…)

Рабочий (ТабР, Норма, …,ТабМ)

На практике часто различают атрибуты: ФИОМ, ФИОР, ТелДМ, ТелДР – но это плохо!

Чтобы решить эту проблему, введем обобщающую сущность: служащий.

Проектирование схемы осуществляется с помощью правила ролей.

Служащий (ТабС, ФИО, ТелД)

Мастер (ТабМ, Оклад, ТелР)

Рабочий (ТабР, Норма, ТабМ)

Связь между двумя сущностями рекурсивна.

Введение в SQL

SQL– это язык реляционных баз данных, это наиболее стандартизированный язык реляционных СУБД.

SQLбыл дополнен в 1992 году –SQL2.

SQL– это структурированный язык запроса (StructuredQueryLanguage).

SQL=DDL+DML

  • Имеется первичный ключ у каждого отношения

  • Столбцы считаются упорядоченными

  • Поименованными являются атрибуты

Пять основных элементов: Три основные функции:

SCHEMA CREATE

DOMAIN ALTER

TABLE DROP

VIEW

INDEX

DDL: CREATE, ALTER, DROP.

CREATE SCHEMA

CREATE DOMAIN

CREATE TABLE

CREATE VIEW

CREATE INDEX

DROP SCHEMA

DROP DOMAIN

DROP TABLE

DROP VIEW

DROP INDEX

ALTER DOMAIN

ALTER TABLE