|
Программирование >> Реализация целостности данных
ЧАСТЬ тщ.тят баз дашш заказываете что-то в торговой компании? Извините, сэр, но имеются ли у вас родственники с такими же именами, вместе с вами? Эта информация требуется только для учета в нашей компьютерной системе... Не очень-то приятно, не правда ли? К счастью, есть простой способ - ввести атрибут Customer Number (Индивидуальный номер покупателя). И если в организации до сих пор не существовало правил присвоения такого номе- ра, то это можно сделать средствами Microsoft Jet или Microsoft SQL Server, которые обеспечиваютмеханизмы автоматической генерации таких номеров (типы \:лииъ\х AuroNumhern Idcntiiv соответственно). Если вы используете произвольный идентификатор, будьте готовы предусмотреть альтернативную форму идентификации. Вы же не хотите поставить в неудобное положение клиента, забывшего свой номер? Спросить Мистер Джон Смит, вы проживаете в Окридже или вы в - это гораздо лучше, чем просить Джона Смита найти старую квитанцию с номером, а потом перезвонить. Сущность Customer патсль )- еще один пример ноказываю- щий, как надо использовать уникальный системный идентификатор. Даже если предположить, что комбинация адреса и имени даст подходящий уникальный идентификатор, для такого идентификатора потребуется слишком большое число полей. Помните, что каждый нервичный ключ имеет двойника - внешний ключ сущности, которая на него ссылается. Намного эффективнее связать по одному атрибуту в каждой сущности, чем по пять или по шесть. Анализ доменов Список атрибутов на рис. 9-6 использует формат представления Имя.Домек . Большинство аналитиков игнорируют существование доменов и описывают fivTi.i напрямую, с помощью типов данных и ограничений. Это не очень правильно, но вряд ли повлияет на успех всей вашей работы. Доводы в пользу анализа доменов - экономия усилий и возможность собрать дополнительную информацию. Все, что может облегчить работу и сделать ее более эффективной, следует использовать в модели. Анализ доменов позволяет провести моделирование более технологично. Давайте рассмотрим только один пример: атрибуты (Наименование компании) и Individual Name (Имяфизического лица) ic. 9-6 определены в домене Name (Имя). Мы можем описать домен следующим образом: домен - строка из слов, на- бранных в регистре, которая имеет максимальную длину 75 символов. Строка может содержать только символы алфавита, символы точка (.) и Домен нужно определить только один раз, а использовать его в системе можно сколько угодно. Конечно, вы вправе определить такое ограничение для каждого атрибута, но зачем? Более того, так как эти атрибуты определены в одном домене, мы можем логически сравнивать их значения. При определении каждого атрибута в отдельности эта возможность не столь очевидна. Поиск заказчиков с одинаковыми атрибутами или IndividualName - также один из возможных способов облегчить жизнь пользователя. А вот поиск компании по ее номеру весьма неудобен. Формальное определение домена - набор значений, который может содержать атрибут. Концептуально это просто, но как определить домен на практике? Вам следует задать три параметра, а именно: тип данных; все ограничения, налагаемые на диапазон хранимых данных; формат хранения и представления данных в домене (это необязательно). 1Выбор типа данных Первый шаг - определить тип данных, который ся для представления домена в схеме базы данных. Это разрушает представление о разделении модели данных на концептуальную схему и ее физическую реализацию. Тип данных определяет диапазон хранимых в домене значений. Просто целое не является доменом в математике, а тип данных домена Quantity - целое . Тем не менее, я бы не рекомендовала увлекаться на этом этапе глубоким изучением конкретных реализаций типов данных в серверах баз данных. Вопрос о выборе сервера впереди. Тип данных домена также может быть другим доменом. Например, у вас уже есть домен типа который что система не допускает дат более ранних, чем 1 января 1900 г., а формат предусматривает четырехзначное представление года. Вполне приемлемым будет определить домен Event Date (Дата события) как Даты, насупившие после 23 октября 1982 г. (именно тогда компания начала свою Ограничения на диапазон данных Теперь определите диапазон которые может содержать до- мен. Порой самый простой путь - задать правило, например: ity (Количество) - это целое положительное число . ЧАСТЬ еящйонйыхсиотем базданных Иногда можно просто перечислить хранящиеся в домене величиНЫ. Район может быть одним из следующих: Северо-Западный. Северо-Восточный, Центральный, Южный . В этом случае вам определенно придется домен в модель в виде сущности. Это значительно легче, чем каждый раз вводить данные вручную, а кроме того, позволяет легко изменять содержимое домена. Единственное исключение - это когда данных в домене очень мало и они не изменяются. вы моделируете список вопро- сов экзамена, и у вас есть домен Answer (Ответ), который содержит значения True или False. Нет смысла создавать для такого домена отдельную сущность. Так как других возможных величин не ет, то создание отдельной таблицы для хранения двух величин усложнит модель, и только. Домеп, определяемый несколькими атрибутами, также можно представить с помощью сущности, например домен Если вам нужно учитывать в системе множество стран, то придется оперировать множеством параметров. Если .;1казчик живет Австралии, то New South Wales (Новый Южный Уэльс) является верным значением для штата, а Alabama (Алабама) - нет. В этом случае, домен будет включать в себя атрибуты Country (Страна) и State (Штат). Этот пример не является точным определением домена и моделируется с помощью связи в диаграмме - связи . Тем не менее, такой домен можно рассматривать как составной. В конце концов, наша цель - облегчить реализацию ограничений базшыx, а определение часто встречающихся доменов уменьшает время разработки и вероятность ошибок. Спецификация домена должна включать также описание, может ли домен содержать неопределенные значения, строки нулевой длины или оба этих вида величин. Стоит прямо указать на такую особен-НОСТЪ в определении домена, даже если способность содержать неопределенные значения может быть определена с помощью связи между сущностями. Анализ доменов и определение списка атрибутов для любой сущности тесно связанные между собой итеративные процессы. На практике удобней определять домены одновременно с атрибутами. Если подходящий для атрибута домен уже существует, вы можете нро-сто связать этот атрибут с доменом. Если нет - определите домен на этапе составления списка атрибутов. Некоторые атрибуты имеют дополнительные ограничения, помимо определенных в доменах. Это совершенно нормально. Вы можете
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |