Программирование >>  Исключение дубликатов строк 

1 ... 5 6 7 [ 8 ] 9 10 11 ... 152



Не используется ли имя, которое явно или неявно обозначает более одной характеристики? Этот тип имен легко узнать, поскольку они обычно включают слова и или или . Имена полей, которые содержат обратную наклонную черту (\), дефис (-), или амперсанд (&), могут легко обмануть. Если у вас имеются поля с такими именами, как

акс (Phone\Fax), область (Area) или местонахождение (Location то пересмотрите данные, которые они содержат, и определите, требуется ли разделить их на более мелкие, отдельные поля.

Внимание! Стандарт SQL определяет обычный (регулярный) идентификатор как имя, которое должно начинаться с буквы и может содержать только буквы, цифры и символ подчеркивания; пробелы не допускаются. Он также определяет идентификатор с разделителями как имя, заключенное в двойные кавычки, которое должно начинаться с буквы и может содержать буквы, цифры, символы подчеркивания, пробелы и совершенно специфический набор специальных символов. Поскольку многие версии SQL поддерживают только регулярные идентификаторы, рекомендуется использовать для имен своих полей именно это правило.

После использования этой контрольной таблицы для изменения имен своих полей остается еиде одна задача: Убедитесь, что имена полей используются в единственном числе. Поле с именем во множественном числе, например Categories (Категории), подразумевает, что в нем может содержаться два или больше значений. Имя поля используется в единственном числе, потому что оно представляет собой отдельную характеристику предмета, описываемого таблицей, к которой оно принадлежит. С другой стороны, имя таблицы имеет множественное число, поскольку она представляет собой набор подобных объектов или событий. Можно достаточно легко отличить имя таблицы от имени поля, если использовать это соглашение об именах.

Сгложипоние грубых кроен

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

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




Staff

98023

Aiaina

Halimark

Roule 2. Box 203 В

98014 1 James

Leveriing

722 Moss Bay Blvd.

Kirkland WA

98019

Laura

Callahan

901 Pine Avenue

Poftfand 1 OR

98020

Albed

Buchanan

13920 S.E. 40lh Street ! Bellevue WA

f 1

98021

Smith

30301-166th Ave. N.E.

-- ----- b. a . L-m. --- - , . ЛЛЯ-Л

Seattle WA

98022

Janet

Leverling

722 4oss Bay Blvd.

KirWand 1 WA

Woodinville \ WA

t

<

*

Classes


I Leverling

i Leverling

1 Smith

Callahan

Hallmark

Buchanan Leverling

Рис. 2.1. Таблица с ненужными полями

James

I James

I Tim

Laura

I Afaina

>W4.............J *

(Albert

Janet


Например, в таблице Classes на рис. 2.1 поля StaffLastName и StaffFirstName являются лишними вследствие наличия поля StafflD. StaffID используется для установления связи между таблицей Classes и таблицей Staff (Преподаватели), и можно видеть данные из обеих таблиц одновременно, воспользовавшись производной таблицей или запросом Select в SQL. Если в таблицах имеются такие поля, то можно либо совсем их удалить, либо использовать как основу для новой таблицы, если они не появляются больше нигде во всей структуре базы данных.

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





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

Убедитесь в том, что поля появляются только один раз во всей базе данных. Если вы сделаете обычную ошибку, введя одинаковое поле (например, CompanyName) в несколько таблиц в пределах базы данных, вы можете впоследствии столкнуться с проблемой противоречивости данных. Это случается, когда изменяют значение в одной таблице и забывают сделать такое же изменение в других местах появления поля. Чтобы такого не произошло, каждое поле должно появляться во всей структуре базы данных только один раз (единственное исключение из этого правила возникает, когда поле используется для установления связи между двумя таблицами).

Розбиение состовных полей

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

Customers

1001 i Suzanne Vfescas


i. Iw I I ouzdiine vieauds 115127 HE 24lh, #383. Redmond, Ш йШ2. i 4it5 5S5-26 I

\ Ш IWfflThompson ia2§ mgRjverDrive,DuvaH,/a Ш19 t-..- r 1003 ГОагуHallmark (Routa2.B( {203B. Auburn,ША

t0O4 ; Шш1 OaVoliO 6721ШЮП1 Av0, Houston, TX 771 1713555491

i 1005 ]К8гштPeacock 4ltOWRe<femmdRd ,RadmorKr/W 9Ш2 (425555505 t - f

1 1006 .аоьпУйШ1$ \ шш,ш,ттхйк шт 14255511 ... j

1007 j laura Callahan 901 Ршгше. Poland., OR 97208 15555526

1008 jiFtfeison ТтштщШ1Мпимшт


V-- ---

Составные поля

Рис. 2.2. Таблига с составными полями



1 ... 5 6 7 [ 8 ] 9 10 11 ... 152

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