Программирование >>  Реализация целостности данных 

1 ... 11 12 13 [ 14 ] 15 16 17 ... 124


ЧАСТЬ 1 Теории щюнньи- баз данных

Отношение Enrollments

1 hbhcy DwulHi QiUjr French ittitii IHlilBfif IZhMAiilnf ! PiHt Ed;tc4tiJlii

.w..V.. . J!i:nr** .l!!? iFiiicfUdLci Ookinr EriaUih Ct4n**l.i iHntry

1 3.,inii,......Чвпрпв Phfiical Eduta Biqfoy French........ffrtsljri ..........ChfHriPf .........

fyltf.il i* .. Peicflilf iFiflflch.... !1Г!Т.1?л1.Д(.У!?;.-Яйгу .....lEfjigliB-h .. . ЕЙоНвд..............heraiHfl, ..

Рис. 2-6, Такая структура затрудняем ченае ответов на некоторые вопросы

Enrollments

.,..1 NwfiJ.., 2 Andrew

. OayQljo. , j, 1 Biology

Fulier i l:Physical Education

. . 3 Janet.......

Levelling

1 Physical Education

, .. 4 Margaret

/Peacock

.. VFrencti,

5 Steven

6 Michael

7 Robert

Buchanan jSuyama ; King

Гйо(од); .......

1 French

1 History

iiNancy

J BaniDlio

2 French

JFiiller

2 Biology

.... Il .l3i5?:i5f!,... r

jLevBrlmg

7 ! 2. Biology

-!ZIZ... Margaaret

:Peacock

2. PhysicalEliucalion

-..HZ. 5.Steye n

auchanan

,2; French.

-..:,~...!!l.,.6,.Wwbae.!l

Suyanna

. 2 P!lJ,?!??LEducatior{

7 Robert

King

2 French

Davdlip

Э English

2. Andrew

Fuller

! 3 French

Puc. 2- 7. Данная структура содержит больше шсей, но для нее легче формулировать шпросы

Чтобы получить ответ на вопрос Кто из студентов в этом году изучаем гию? щью первого отношения, придется искать записи со значением /o,g;v- в шести различных полях. Соответствующее выражение SELECT языка SQL будет выглядеть так:

SELECT entlD FROM Enrollments WHER od1 = Biology ;.od2 = Biology od3 = Biology iod4 iogy i6d5 = Biology OR Biology

А при использовании отношения, показанного на рис. 2-7, требуется выполнить поиск только в одном поле Class:

SELECT StudentID FRO Iments WHERE Class Biology

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



ГЛАВА 2

Устранить избыточность и упростить структуру данных, чтобы облегчить их получение - вот главные ориентиры при построении модели. Все остальное - только попытки формализовать эти базовые принципь!. Но если вы когда-либо создавали большую (или не очень большую) модель данных, то знаете, что как бы ни были эти принци-

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

Основные принципы

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

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

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

Декомпозиция без потерь

Реляционная модель позволяет различным образом соединять отношения, связывая их через атрибуты. Процесс получения полностью

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

разбивают на несколько других отношений. Нужно сделать это так,

чтобы получившиеся в результате отношения можно было бы вновь соединить и получить точную копию структуры и данных исходного отношения. Это и есть принцип декомпозиции без потерь. Например, вы можете получить из отношения (рис. 2-8), два других отношения (рис. 2-9).



Теории ионных баз данных


ШАЭ 04 Диа-9г 1024Э М-ЛщЩ

QI-S.p.gi:Vins 91 akools Chevshai 59 rue de ГАЬЬауа

K-sep-94,Hsrw. CaineVy [15-3e>-9ilflciuai!le£ згпс)( n6Sejig< 5UEretries iJelicQs

I Чите 51

aiisinai . jMunslei 44087

Rub do PfliU,67 :flicdeJinekD CE4S4:a76

2Vnia du CommaFce Lynn . . . 59004

Boulevard Tirou, 255 Chafiarai &X0

Puc. 2-8. Ненормаяизованкое отношение

Отношение Customers

ALFM

ANATR

дяЪит

BSRB3

Aft.dl FuinftisH.................Obm t 57

jia Tfujiilo EmflanadadDS ( halBdas ia. de я . t> si Ariilirlio MonnoTaiiusria Malaae-os 2312

AroLind lha Horn 120 Hanover 3a. Baftilunds sftabbkop Йага>буадап 3

i:jn9

r.22:i: voii.uD.F aiJGi t ii;nt>r van

Londsn , WA1 I DP LiilaL sag 22

Отношение Invoices

1[B4aVlNET

а/4Я4

10249 TOMSP

1055П HAIMAR

.........ш........

.........S*?.

10251 viCTE

ia!K:supB[)

Slim

PttC 9. Отношение срис. 2-8можнить на эти два отношения без потери данн1х

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

Ключи-кандидаты и первичные ключи

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

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

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



1 ... 11 12 13 [ 14 ] 15 16 17 ... 124

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика