![]() |
|
Программирование >> Реализация баз данных
Таблица Employees
Phc. 3-3. Нормализованная таблица с уникальным идентификатором Безусловно мбиы со сведениями о самих книгах и выпустивших их издательствах можно поместить в одну и ту ицу, однако этот способ порождает некоторые проблемы. Для каждой вышедшей в данном издательстве книги придется добавлять и хранить избыточные сведения об издательстве. Эта информация займет дополнительное ме.::то в базе данных. Если адрес издательства изменится, то соответствующие коррективы придется вносить в запись для каждой книги. Более того, при удалении из таблицы Books последней книги, вышедшей в каком-либо издательстве, сведения об этом ииательстве будут потеряны. Таблица Books РС9Э99 f>SZ091 SU1111 Net Etkjurtte лэг ttw Enemy? Cookino wtth Computers; Algodata Infosystems etey, New Moon Books Algodata Surreptitious Balance Sheets S IntosystemSi Boston Serkelev OA. 1 .USA Рис. 3-4. Таблица со сведениями о книгах и издательствах Таблица Books
Рис. 3-5. Нормализованная структура базы данн1х, в которой заглавия книг и сведения об издательствах хранятся в разных таблицах В нормализованной базе данных сведения о книгах и издательствах будут храниться по крайней мере в двух таблицах: в одной сведения о книгах, а в другой - об издательствах (рис. 3-5). Теперь сведения об издательстве необходимо ввести только один раз, после чего они будут связаны дои книгой. Если сведения об издательстве изменятся, то 1:о(лис1-ствуюшие коррективы достаточно внести только в одном месте. Эти сведения останутся в базе даже в том случае, если в ней не останется ни одной книги данного издательства. В таблицах следуем столбцов, допускающих пустые значения 10г>т быть столбцы, допускающие пустые значения. Пустое значение гпитс тельствует о том, что у этого атрибута записи значение отсутствует. Несмотря на то, что в единичных случаях пустые значения полезны, лучше всего использовать их как можно реже, поскольку их приходится обрабатывать специальным образом, что увеличивает сложность операций с данными. Если есть несколько пустые зна- чения и в нескольких строках эти столбцы содержат пустые значения, следует рассмотреть возможность выделения таких столбцов в отдельную связанную с главной таблицей. Храня данные в двух отдельных таблицах, вы упростите структуру главной таблицы, не исключая возможности при необходимости сохранять и пустые значения. В таблице не должно быть повторяющихся значений или столбцов В таблице не должно быть списков значений для некоторой единицы информации. Допустим, требуется учитывать названия и авторов книг. Хотя большинство книг написаны одним автором, их может быть два и более. Если для хранения имени автора в таблице предназначен только один столбец, то возникает проблема. Можно, конечно, хранить имена обоих авторов в одном столбце, но при этом затруднится списка авторов по отдельности. Другое решение - изменить структуру таблицы и добавить еще один столбец для хранения имени второго автора. Но это поможет, только если авторов не более двух. Если же их три, придется добавлять третий столбец. На рис. 3-6 показаны эти два решения для книг с несколькими авторами. Таблица Books
РС9999 , PS2091 IBU1111 Net Etiquette Is Anger the Enemy?, Author 1 ChBrtene Locks ley Cooking with Computers: Surreptitious Balance Sheets Ann Ringer Michael OLeary AitthBf I NULL Albert Ringer j NULL null Stearns T NULL MacFeather Для каждого автора предназначен отдельный столбец, для одной книги можно указать до трех авторов Рнс, 3-6. Две возможн1е структур ицы Books Если необходимо хранить список значений в одном или создать несколько столбцов для хранения одной единицы информации (Authorl, Author2 и т.д.), следует предусмотреть размещение дублирующихся данных в другой таб.иице, связанной с главной. Для таблицы Books можно создать дополнительную главную ицу, где хранить сведения об авторах, а затем - третью таблицу, в которой будут сопоставлены книг с их авторами. Последняя таблица обеспечивает хранение повторяюип1хся значений (рис. 3-7). Такая структура позволяет описать книгу с любым числом авторов без изменения определения таблицы и не допускает наличия пустых мест при сохранении информации о книгах с одним автором. Таблица Books
Таблица Authors
Рис. 3-7. Сведения о книгах и их авторах хранятся в трех таблицах Связи между сущностями В реляционных базах данных связи позволяют избежать избыточности данных. Связь работает путем сопоставления данных ключевых столбцов - обычно это столбцы с одинаковыми именами из двух различных таблиц. В большинстве случаев связь сопоставляет первичный ключ одной таблицы (уникальный идентификатор) с элементом внешнего другой таблицы. Первичные ключи и внешние ключи подробно обсуждаются в главе 5. Существует три типа связей между таблицами: один к ко многим и ко многим . Тип связи зависит от как определены столбцы.
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |