Программирование баз данных MS SQL Server (1084479), страница 81
Текст из файла (страница 81)
Не используйте типы данных попас и пчагспаг, если вам никогда не потребуется обрабатывать данные, содержащие символы Бшсог(е; для представления этих типов данных требуется в два раза больше байтов по сравнению с их аналогами, с1таг и чагспаг, не предназначенными для поддержки кодировки Бшсос(е. многие считают,:что йримеиение типов дзийых со ФливгкОм большим фо(влетом предсгаз. Ленни ПрИЗОднт ЛИШЬ К ИэбмтОЧНОМу раокрдОВаИИЮ' ПрсостраНСтва;,;ОбСух(даиетОт ВОПРОС, С кзэУгими спейиалистами,.автор,иногда слышит.'такое вбзраяйние: )'Нужно 'ли:об этом',бес:.ПСКОИтЬСя: ВЕДЬ В Наай двИ,дИСХОгЗОЕ ПрОСтраНСтзс СтаЛО 'таКИМ;НвдерОГИМ(".ОдНаКО;:НЕ-'- :, 'СЧИтая уОГОКЧтО З(есотхйЕ дйСКИ ВО31:КаЧЕОтаЕИНЫХ Мбдвпзй,зоа Ещз "Стелт гав дОрвер;,ЧтО НЕЛЕГКО РЕШИТЬСЯ' Иа ИК:ПОКУПКУ; СУЩЕСтВУЕт'тЗКЗЕ;ПРО6ЛЕснта ПРОПУСКНОЙ ОПОООбНОСтИ.СЕТИ, ЕСЛИ,ПРИПЕРЗДаЧЕ йи$ОРКШЦИИКЗПДОйотРЕКИ ПРИХОДИГтРВГПЕРЕДгааатк Л)4ШЗНИЕ; 460 байтОВ; '-"тс(обрабОтКа 100 Стрел ПрИВОднт К'тОМу, Что'карее СЕТЬ 'ПрйХрдИтояс йрОПуСКатЬЧПрйМЕОЭНО- ' 10' лйшнвх кИЛОбайтса', Еоли Эти,Цифды .НвйсдтатОчис убздитель (й,' отметин;.
Что, а, едуч ее',',, ;:- ЕСЛИ-'1ООПОЛЬЗОЗатЕЛЕйПрОасдят ПО б0:траНЗЕКцснгй а Чае;:тО"За ЗтО, ЗрЕМИ:Прн;уКаэаинмх-' услозиях:бесполезносрдоходуется(пропускная Слособнбсть Сети иа бО:Мбайт , НЕОбХОДИМО.таКЯЕ ПОМНИтз,: Чтп ПОДЗЗЛЯКЭЩЕВ бОЛЬШИИСтВО: ОПЕРГаЦИй'-ОтбРагбОтКИДаННЫХ'„ВМПдЛНИЕтСИ',З баЗЕ, даНИЬ1Х, МНО(схратНО; ПОЭтОМу дШКЕ;НЕбОЛЬгаИЕ унущвння ИаКазпнааат:, СВ Ках(СИЕжййй КОМ И', МОГут" ВмэевтЬ даотатОЧНО ЗаМЕтиэмеГ НаруШЕййя-В рабОЮ.
Сохранение максимально возможного объема накопленных данных При проектировании базы вопрос о том, как долго должны храниться полученные ранее данные, не менее важен, чем все другие вопросы организации хранения данных. Если база данных предназначена для накопления данных, то рано нли поздно придется поинтересоваться тем, потребуется ли когда-либо еще та или иная информация. По мнению автора, в этом случае любые сомнения должны рассматриваться как свидетельство в пользу того, что не нужно спешить удалять данные. Дело в том, что данные, изъятые из базы данных и уничтоженные, чаще всего не могут быть восстановлены. Можно гарантировать, что по крайней мере однажды (а также, возможно, еще много и много раз, но по другому поводу) в информационный отдел обратится заказчик (напомним, что заказчиками являются все, кому требуются услуги, поэтому заказчиком следует считать не только тех, кто обращается в компанию за платными услугами, но н представителей своей компании, которые просят предоставить им помощь) и выскажет примерно такое пожелание; "Можете ли вы составить отчет с 320 Глава 8 информацией о том, какие суммы денег были выплачены каждой сторонней акционерной компании в прошлом году?" Но в связи с этим возникает вопрос о том, хранятся ли в базе данных такие сведения о каждом поставщике, по которым можно определить, что поставщик — акционерная компания.
В таком случае лучше всех обстоят дела у тех компаний, которые работают в рамках налогового законодательства США (предоставляют форму отчетности 1099). Итак, у вас такие данные имеются, и вы даете положительный ответ на вопрос заказчика. Однако за этим следует очередная просьба: Можете ли вы распечатать эти данные с указанием адреса поставщика, по которому он был зарегистрирован на конец прошлого года?" Увы, можно не сомневаться в том, что в базе данных не хранятся адреса, которые использовались в прошлом, или, по крайней мере, не хранится дата внесения изменений в адрес. Короче говоря, невозможно предугадать заранее, какая информация, относящаяся ко всему периоду эксплуатации базгя данных, когда-либо потребчется пользователю системы, и в этом несложно убедиться на практике.
Из этого следует, что рекомендации по выбору минимально необходимых типов данных (приведенные выше) позволяют также затрачивать меньше ресурсов на обслуживание данных, изымаемых из повседневной эксплуатации. А если часть данных предназначена только для архивного хранения, то необходимо убедиться в том, что к ним невозможно получить бесконтрольный доступ с помощью любого из операторов БЕЗВЕСТ постоянно эксплуатируемого приложения, если в этом нет необходимости (фактически аналогичный подход должен распространяться на все данные, независимо от того, для чего они предназначены). , "ЕСЛИ ЕСТЬ 6СНСВаиин ЛСЛВГВтн ЧНО ВСНВЗИСВЫсбррдМ ЛНТЬСГО Сйоаеба двйптеий (то., Е Сея:-.:, ; зн с тем,"будет.лн',нешено хранить)занные зн прошлый'период нлн''нзбввнтьсн ст'-ннк),'мс':. - ','Гуу йвступить;лднвнйын последствий:; то нсскснсультнруйтесь 46-своим адвокатом:;,ийогдв г ,.
ЛП ЗтвКСНу::требуЕтея»рВНИт)З даННЫЕ В ТЕЧЕНИЕ алрегдЕЛВННСГО, арнМВНн„а В друтик,оботО-',' ::.нтельстенх лучше сразу же удвлнтьнннуэные данные, ннктсльволодсйдетсйок рвздвша с ющнй,это сделать,нвксн)йым путем. Пример осуществления процедуры нормализации Кратко рассмотрим пример осуществления процесса проектирования базы данных, применяемой для выставления счетов, описание которого уже фактически было начато в разделе, посвященном нормализации.
При описании этой темы инструментальные средства построения диаграмм в основном будут применяться для изучения готового проекта, но в ходе этого затрагиваются также некоторые новые проблемы в целях демонстрации того, как их решение отражается на создаваемом проекте. Создание базы данных В отличие от многих инструментальных средств построения диаграмм, предлагаемых независимыми разработчиками, подобнгяе инструментальные средства, входящие в состав программного обеспечения з(1). Бегтег, не позволяют создавать базы Нормализация и другие важные проблемы проектирования 321 данных, поэтому, чтобы иметь возможность воспользоваться диаграммами для работы с базой данных, необходимо вначале самому создать требуемую базу данных.
В рассматриваемом примере проблемы обработки данных не затрагиваются, поэтому достаточно создать небольшую базу данных. Назовем эту базу данных 1пчотсе. Для этого воспользуемся соответствующим диалоговым окном программы Мапаоеп1еп1 51псйо. Щелкните правой кнопкой мыши на узле Оа1аЬавев под обозначением используемого сервера, выберите команду )чеьк Оа1аЬаве и введите информацию о базе данных 1пчотсе, которая приобретает размер 3 Мбайч. В настоящей книге процесс создания базы данных уже рассматривался достаточно подробно, поэтому в целях сокращения объема изложения отметим, что в данном случае достаточно просто принять предусмотренные по умолчанию значения других параметров (рис. 8.23).
кис. 8.23. Диалоговое окно Иеи РаФаЬаяе Развертывание диаграммы и создание исходных таблиц Как и при создании диаграммы для базы данных ИогСЬиепб, разверните узел, относящийся к используемой базе данных (он должен появиться под узлом Оа(аЬавев), и выберите утвердительный ответ в диалоговом окне с запросом о том, нужно ли вводить в действие все объектьп необходимые для поддержки работы с диаграммами. Затем щелкните правой кнопкой мыши на узле О)апгапзв и выберите команду Неи Оа1аЬаве О)ацгав.
Появится всплывающее диалоговое окно Ас)с) ТаЫе, но в базе данных 1пчоьсе нет пользовательских таблиц, поэтому остается только щелкнуть на кнопке Сапсей чтобы открылось пустое окно. 322 Глава 8 Теперь мы можем приступить к добавлению новых таблиц. Для этого можно либо щелкнуть на пиктограмме г)вчч (аЫе панели инструментов, либо щелкнуть правой кнопкой мыши в любом месте в окне диаграммы и выбрать команду йечч ТаЫе. Начнем с добавления таблицы Огйегз, как показано на рис.
8.24. Рис. 8.24. Оиределеиие иичблицм Окс(вки Слвдувтотмвтйть:, чтопу(зи,-'пвдютогвквдвнногоспрьимсерв вмвсвто',врвдбтдвдвнвя првдувмвт()внноко:цьв ,'умолчввйв;- кэвнер(зй: ив' допувквет; воэыйжнэооть; эвдзввть:примвнявм(гв пвс УМОДЧаНИЮ:ЗКВЧВНИВ-'(ОтювбВЦ:йэгаруК:,т(алият) И ВэбДИУЬ' В(((ВЙЕГВ)ЗВ ОУОябяйс'ИДВ))тИФвии лациса.:(уйвикхъу), 6)квх выполняя пврачщ:;квпецввлизировзиийому предотвввгвкию. Авпй)ру( лэ)оку п(зишдроь первйти кгдивяог)овому овну,6Лодйу-:Сцз(очаг(Мвдвфицигрпвать:ойвциив)- ЗИ)К)яяЗМНОВ' црвдетВШ(Е(В(В)и ЙэбрзуЬ'-Взрмзвтп,'д!4аВЛСВНИВМСтбяс цв)В Звука';)Гй1ВВ-,''И .
1бвп1Уку:квп6дквлизврбввййвм)у:в()вдвуввпвийю. Мы должны уделить достаточно внимания анализу принятых решений. Безусловно, проблема нормализации была решена, но какие-либо другие важные вопросы еще не выяснены. Прежде всего необходимо решить вопрос об использовании типов данных. В рассматриваемом случае столбец Огоег1О применяется в качестве первичного ключа таблицы, поэтому необходимо обеспечить, чтобы во внутреннем представлении значений этого столбца было предусмотрено достаточно места для поддержки уникальности значений по мере вставки все большего и большего количества данных. Если бы таблица Огйегэ не была предназначена для вставки весьма значительного количества строк, то можно было бы выбрать тип данных с меньшим форматом представления, но эта таблица предназначена для вставки строк с данными о заказах (и можно рассчитывать на то, что количество заказов будет велико), поэтому целесообразно выбрать несколько больший формат представления.