![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Третья нормальная форма
Таблица находится в третьей нормальной форме, если она удовлетворяет условиям второй нормальной формы и ни одно из неключевых полей таблицы не идентифицируется с помощью другого неключевого поля. Посмотрите внимательно на таблицу flat (квартиры) (рис. 1.3). Она содержит неключевое поле ACCOUNT (номер лицевого счета), которое однозначно определяет ответственного квартиросъемщика (поля: FAMILY, NAME, SECOND и PASPORT) в этой таблице. Уберем все эти поля в еще одну таблицу account и назначим в ней в качестве простого первичного ключа поле ACCOUNT (табл. 1.10).
Связи между таблицами Осталось установить связи между таблицами, и база данных будет готова к работе. Microsoft Access поддерживает четыре типа связей: один-к-одному, один-ко-многим, многие-к-одному и многие-ко-многим. П Связь модин-к-одномум означает, что каждой записи одной таблицы соответствует только одна запись другой таблицы и наоборот. В качестве примера рассмотрим связь между таблицами flat и account (рис. 1.4). Одна квартира — один ответственный квартиросъемщик. Связь между ними поддерживается при помощи совпадающих полей account. Обратите внимание! У полей, используемых для связи, одинаковое наименование (account) и тип (числовой с 5-ю разрядами). Всегда придерживайтесь этого правила при определении полей для связи любого типа между таблицами. Хотя, если быть более точным, связь между таблицами устанавливается на основании значений совпадающих полей, а не их наименований. П Связь " один-ко-многим". В качестве иллюстрации данного типа связи обратимся к таблицам street и building. Одной улице в таблице улиц street соответствует несколько зданий из таблицы зданий building. Связь между ними осуществляется на основании значений совпадающих полей STREET. Используется простой первичный ключ таблицы street. В качестве других примеров могут быть рассмотрены таблицы building и flat, flat и owners. Одному зданию соответствует несколько квартир, а одной квартире — несколько собственников. Для связи этих таблиц используются составные первичные ключи. П Связь " многие-к-одному" аналогична ранее рассмотренному типу " один-ко-многим". Тип связи между объектами полностью зависит от вашей точки зрения. Например, если вы будете рассматривать связь между собственниками и квартирой, то получите " многие-к-одному". Несколько собственников проживают в одной квартире. П Связь " многие-ко-многим" возникает между двумя таблицами в тех случаях, когда одна запись из первой таблицы может быть связана более чем с одной записью из второй таблицы, а одна запись из второй таблицы может быть связана более чем с одной записью из первой таблицы. Таких связей следует избегать, т. к. реляционная модель не позволяет непосредственно работать с ними. Microsoft Access или любая другая реляционная СУБД в этом случае бесполезны. Всегда можно ввести в базу данных еще одну-две промежуточные таблицы и тем самым избежать возможных неприятностей при разработке интерфейса вашего приложения, используя понятные и безотказно работающие связи " один-ко-многим". Некоторые варианты заданий из этой книги могут привести к связи " многие-ко-многим" между таблицами базы данных. Обратившись к материалам разд. 1.9, вы увидите авторское видение решения этой проблемы. 1.2.5. Что за третьей нормальной формой? Если вы довели уровень нормализации таблиц вашей базы данных до третьей нормальной формы и ваша задача — разработка системы масштаба предприятия, то смело можете переходить к разработке интерфейса. Однако если вы участвуете в разработке суперхранилища данных под Oracle или DB2, то разберитесь по специальной литературе с нормальной формой Бойса — Кодда, четвертой и пятой нормальными формами.
|