лабы / gorev_akhajan_makakshiripov_ehffektivnaja_rabota_s_subd
.pdf
Рис. 2.21.
•Щелчок левой кнопки мыши по списку полей таблицы активизирует список полей данной таблицы.
•Двойной щелчок левой кнопки мыши по списку полей таблицы вызывает Конструктор таблицы на вкладке поля (рис. 2.22).
Рис. 2.22.
•Щелчок левой кнопки мыши по имени индекса под списком полей таблицы активизирует индекс данной таблицы.
•Двойной щелчок левой кнопки мыши по имени индекса под списком полей таблицы вызывает Конструктор таблицы на вкладке индексов (рис. 2.23).
•Щелчок левой кнопки мыши по связи между таблицами позволяет выделить данную связь.
Мы думаем, что после просмотра данного примера у вас появится желание создать собственный словарь данных и включить туда целый ряд дополнительных возможностей, например, для каждого поля таблицы включить определение класса, обеспечивающего работу с данными.
2.4. Администрирование базы данных
С базой данных, как правило, взаимодействуют несколько пользователей. Эти пользователи в организации могут выполнять совершенно различные функции, иметь различные представления об используемых данных, но пользоваться ими одновременно. Поэтому при эксплуатации БД крайне необходим учет различных требований и наличие алгоритма разрешения конфликтов.
Ⱦɚɧɧɚɹ ɜɟɪɫɢɹ ɤɧɢɝɢ ɜɵɩɭɳɟɧɚ ɷɥɟɤɬɪɨɧɧɵɦ ɢɡɞɚɬɟɥɶɫɬɜɨɦ %RRNV VKRS Ɋɚɫɩɪɨɫɬɪɚɧɟɧɢɟ ɩɪɨɞɚɠɚ ɩɟɪɟɡɚɩɢɫɶ ɞɚɧɧɨɣ ɤɧɢɝɢ ɢɥɢ ɟɟ ɱɚɫɬɟɣ ɁȺɉɊȿɓȿɇɕ Ɉ ɜɫɟɯ ɧɚɪɭɲɟɧɢɹɯ ɩɪɨɫɶɛɚ ɫɨɨɛɳɚɬɶ ɩɨ ɚɞɪɟɫɭ piracy@books-shop.com
Иными словами, нужно ввести долгосрочную функцию администрирования, направленную на координацию и выполнение всех этапов проектирования, реализации и ведения интегрированной базы данных. В соответствии с этой функцией на определенных лиц возлагается ответственность за сохранность такого важного ресурса, как данные.
В этом параграфе мы познакомимся с задачами и функциями администрирования БД, которое необходимо обеспечить на самых ранних стадиях разработки.
Характерное для многопользовательской среды использование хранящихся в компьютере данных заключается в "захватывании" файла данных. Каждый пользователь блокирует свои данные, не допуская остальных к их использованию. Это вынуждает других пользователей накапливать те же самые данные. С появлением баз данных необходимость в индивидуальном хранении и использовании информации отпала. Но появилась потребность в управлении коллективным использованием данных.
Администратором базы данных (АБД) называется лицо, ответственное за выполнение функции администрирования базы данных.
АБД - не "обладатель" базы данных, а ее "хранитель". С усложнением предметной области неизбежно усложняется процесс формирования информации и принятия решений. В результате расширяется спектр функций администрирования. Так как в случае использования базы данных прикладной программист "устраняется" от непосредственного управления данными, он утрачивает с ними контакт, а следовательно, и чувство ответственности за них. Это требует разработки процедур обеспечения непротиворечивости данных, которые должны быть скоординированы с функцией администрирования базы данных.
Администрирование базы данных предполагает обслуживание пользователей базы данных. Можно провести аналогию между АБД и ревизором предприятия. Ревизор защищает ресурсы предприятия, которые называются деньгами, а АБД - ресурсы, которые называются данными. Во многих организациях по странной традиции АБД рассматривают только как квалифицированного технического специалиста, часто совмещающего функции программиста. Это не соответствует целям администрирования. Уровень АБД в иерархии организации должен быть достаточно высоким, чтобы он мог определять структуру данных и право доступа к ним и нести за это ответственность. АБД обязан хорошо представлять себе, как работает предприятие и как оно использует данные. Хотя от АБД и требуется техническая компетентность, не менее важным является понимание им предметной области, а также умение общаться с людьми и подчинять альтернативы стандартным процедурам. В противном случае АБД не сможет эффективно выполнять свои функции.
Весьма заманчиво наделить АБД широкими полномочиями, однако его положение на предприятии может быть различным. Оно зависит прежде всего от степени значимости базы данных для жизнедеятельности данного предприятия. Вторым фактором является уровень сложности обработки данных и организации коммерческой деятельности. Как мы уже отмечали, АБД чаще всего назначается из числа прикладных программистов отдела обработки данных, что не всегда оправдано.
АБД должен координировать действия по сбору сведений, проектированию и эксплуатации базы данных, а также по обеспечению защиты данных. АБД обязан учитывать как перспективные, так и текущие информационные требования предметной области. Это одна из его главных задач. Следовательно, при проектировании базы данных необходимо добиваться ее максимальной гибкости или максимальной независимости данных.
Переход при обработке информации на технологию баз данных и расширение существующей базы данных связаны со значительными финансовыми затратами, что предопределяет необходимость тщательного планирования и управления этим процессом. Кроме того, количество данных, помещаемых в базу, растет день ото дня, и параллельно с этим усложняются обрабатывающие эти данные прикладные программы. Все это требует наличия централизованного управления на каждом этапе жизненного цикла системы с базой данных.
Правильная реализация функций администрирования БД существенно улучшает контроль и управление ресурсами данных предметной области. С этой точки зрения функции АБД являются скорее управляющими, чем техническими. Принципы работы АБД и его функции определяются подходом к данным как к ресурсам организации. Поэтому решение проблем, связанных с администрированием БД, часто начинается с установления общих принципов эксплуатации СУБД, хотя между СУБД и администрированием БД имеется различие. В большинстве случаев СУБД покупается в виде программного пакета, а администрирование БД является прерогативой предприятия. АБД обеспечивает обобщенное представление о предметной области в виде концептуальной модели, которая представляет модель данных предприятия. Одной из целей создания базы данных является обеспечение информацией пользователей, работающих в различных функциональных областях предприятия. Однако это часто означает, что ни один из этих пользователей не испытывает чувства ответственности и об общих интересах заботится в
www.books-shop.com
последнюю очередь. Неизбежным результатом такого отношения является превращение АБД в координатора. Во многих случаях, организуя базу данных, АБД идет по пути решения технических проблем, то есть прежде всего вопросов, связанных с использованием СУБД.
Первая важная задача АБД состоит в устранении противоречий между различными направлениями деятельности организации при создании концептуальной, а затем и логической модели базы данных предметной области. Выступая в роли посредника между отделами, он должен добиваться не только того, чтобы различные специалисты пришли к соглашению относительно объектов предметной области, но и того, чтобы это соглашение было "правильным". Кроме определения данных и прав доступа к ним от АБД может потребоваться разработка процедур и руководств по ведению данных. Для выполнения функций АБД необходимо хорошо представлять себе состояние дел предприятия и перспективы его развития, а также знать позицию руководства. На начальной стадии разработки базы данных АБД следует сконцентрировать внимание на следующих проблемах:
•определение элементов данных и объектов предметной области;
•присвоение различных имен, которые будут использоваться для обращения к элементам одного и того же типа;
•установление взаимосвязей между элементами данных; выпуск текстового описания элементов данных;
•выделение отделов или пользователей, ответственных за обеспечение точности данных (например, контролирующих обновление данных, их непротиворечивость);
•определение путей применения элементов данных в целях управления и планирования, то есть распределении функций между персоналом.
Сбор всей этой информации из различных источников и необходимость ликвидации возникающих между отделами трений требуют, чтобы АБД обладал еще и дипломатическими способностями.
Как уже отмечалось, понятие "единоличного владения" данными неприменимо к базе данных. Однако оно существует, и это иногда существенно усложняет работу АБД. АБД приходится убеждать некоторые отделы, чтобы они "передали" свою собственность в общее пользование, либо контролировать доступ к легко искажаемой информации.
Идея "разделения" может не только вызвать противодействие со стороны некоторых отделов, но и настроить их враждебно против всего проекта разработки базы данных в целом. АБД должен одних убедить, других уговорить, третьих ободрить, а кого-то, если необходимо, и принудить. Это означает, что АБД должен уметь пользоваться своей властью и влиянием, обладать определенным стажем работы и хорошо разбираться в обстановке на данном предприятии. Очевидно, функции АБД не может исполнять человек, восстановивший за время работы против себя многих сотрудников.
Таким образом, к вопросу выбора АБД администрация предприятия должна подходить чрезвычайно серьезно. При выдвижении кандидатуры на пост АБД следует руководствоваться теми же критериями, что и при назначении на посты других управляющих, поскольку рассмотрению долговременных потребностей предприятия АБД обязан уделять не меньшее (если не большее) внимание, чем текущим проблемам. Выполнение этой обязанности осложняется еще
итем, что база данных предусматривает объединение данных без учета функциональных границ. Реализация руководящих материалов может быть успешной только в том случае, когда все
сотрудники, имеющие отношение к базе данных, ознакомлены с ними и несут ответственность за выполнение стандартов, устанавливаемых АБД. Прикладные программисты, сотрудники служб эксплуатации и сопровождения системы должны понимать процедуры, требуемые для решения стоящих перед ними задач. Это означает, что АБД необходимо установить эффективную взаимосвязь со всеми группами сотрудников, которым приходится обращаться к базе данных.
Возвращаясь к рассмотренной в конце предыдущего параграфа программе Auto_Store, заметим, что она позволяет: добавлять, удалять пользователей, назначать существующим пользователям имена, пароли, уровни доступа, назначать привилегии доступа относительно каждого уровня доступа. На рис. 2.24 и 2.25 изображены формы, соответствующие описанным функциям.
www.books-shop.com
Рис. 2.24.
Рис. 2.25.
Кроме того, с помощью этой программы можно регистрировать пользователей для обращения к серверу, как это показано на рис. 2.26.
www.books-shop.com
Рис. 2.26. Форма для соединения с SQL Server
Глава 3
Обзор возможностей и особенностей различных СУБД
3.1.Средства быстрой разработки приложений
3.2.Visual FoxPro
Project Manager Database Designer Form Designer Visual Class Designer
Query / View Designer
Connection Designer
Report/Label Designer Menu Designer
Вспомогательные средства разработчика
3.3.Access
Запросы
Формы
Отчеты
Макросы Система защиты
3.4.Visual Basic
www.books-shop.com
3.5.MS SQL Server
3.6.Руководство для покупателя
После того как в предыдущих двух главах мы обсудили важнейшие вопросы теории построения баз данных, пора посмотреть на те средства, с помощью которых программист воплощает свои идеи в жизнь. В этой главе мы обсудим сильные и слабые стороны рассматриваемых в книге средств разработки. Для начинающих программистов мы предусмотрели небольшой обзор каждого продукта, что, как мы надеемся, существенно сократит сроки его освоения. Кроме того, как показал наш опыт общения с большим числом программистов, даже самые опытные из них часто слабо представляют себе комплектацию коммерческих средств разработки и возможности предлагаемого вспомогательного инструментария. Поэтому мы решили включить в эту главу материалы и на эту тему.
3.1. Средства быстрой разработки приложений
Фраза, вынесенная в заголовок этого параграфа, в англоязычной компьютерной литературе имеет очень лаконичную аббревиатуру - RAD (Rapid Application Development) и все чаще встречается на страницах специализированных изданий. Что это такое? Это очередной этап, причем этап революционный, развития информационных технологий. Естественная реакция компьютерной индустрии на информационные потребности быстроразвивающегося общества.
Вэтом параграфе мы изучим основные черты рассматриваемых в книге средств создания приложений для обработки данных и попытаемся их сравнить.
Вмире уже используются десятки миллионов персональных компьютеров и их число постоянно растет. Компьютеры применяются в тех областях, где о них не помышляли еще год назад. Компьютеры начинают вытеснять даже такие, казалось бы, незыблемые атрибуты цивилизации, как телевизор и другую привычную нам бытовую технику. А увеличение числа и расширение сферы применения компьютеров ведет к увеличению потребности в программном обеспечении. Единственный путь, уводящий от необходимости превратить все трудоспособное человечество в программистов, - резкое повышение эффективности средств разработки программ. Эта идея и воплощается в современных версиях пакетов программ для создания систем автоматизации обработки данных, которые отвечают требованиям RAD. Можно выделить следующие отличительные черты таких средств разработки:
•Наличие объектно-ориентированного языка программирования, позволяющее очень эффективно использовать модульный принцип составления программ.
•Визуальные средства разработки, предоставляющие возможность заменить написание программного кода рисованием пользовательского интерфейса и заданием необходимой функциональности диалоговыми средствами.
•Поддержка стандартных протоколов обмена данными между приложениями, позволяющая разрабатывать многоуровневые приложения, не зависящие от источника данных. Здесь же заложена возможность применения компонентной технологии создания приложений.
•Возможность создания приложений клиент-сервер, позволяющая разрабатывать приложения неограниченной сложности и обеспечивать потребности целого предприятия в обработке данных.
Ни один строитель не построит дом быстрее малыша, складывающего его из кубиков. Задача современного средства разработки - дать нам много разных кубиков. Задача программиста - взять нужный кубик и поставить его в нужное место. Это основная идея RAD!
Перечень современных средств разработки систем автоматизации обработки данных, в которых заложены идеи RAD, весьма обширен. Почти каждый месяц появляются новые версии этих продуктов той или иной фирмы - производителя программного обеспечения. Они включают все новые и новые возможности, облегчающие труд программиста. В этой книге мы расскажем, как создать систему автоматизации обработки данных с помощью средств разработки Корпорации Microsoft. "Почему Microsoft?" - спросит пытливый читатель. Авторы все вместе и каждый по отдельности дали на это несколько ответов:
•Microsoft - самая крупная и на данный момент наиболее удачливая фирма-производитель программного обеспечения.
•Программами Microsoft пользуются десятки миллионов человек во всем мире.
•Лично я знаю и умею использовать только средства разработки Microsoft.
•Средства разработки Microsoft отлично интегрированы между собой, поддерживают все современные протоколы обмена данными, и поэтому всегда можно использовать наиболее эффективный в конкретной ситуации пакет программ.
www.books-shop.com
В последующих главах на конкретных примерах мы покажем наиболее эффективные решения, которые можно реализовать с помощью рассматриваемых программ. А сейчас попробуем очертить сферу применения средств разработки Microsoft. Эта компания в настоящий момент предлагает пять пакетов программ, которые могут быть использованы для создания пользовательского приложения по обработке данных: Access, SQL Server, Visual Basic, Visual C++ и Visual FoxPro. Эти средства могут быть использованы как по отдельности - для решения конкретной поставленной задачи, так и в качестве интегрированного набора, каждый компонент которого может быть использован при разработке больших проектов масштаба предприятия. С этой точки зрения характеристика всех пяти продуктов приведена в табл. 3.1.
Таблица 3.1. Сравнение средств разработки Microsoft
Название |
Основные |
Основное |
продукта |
преимущества |
назначение |
Access |
Простота освоения. |
Создание отчетов |
|
Возможность |
произвольной |
|
использования |
формы на |
|
непрофессиональным |
основании |
|
программистом. Имеет |
различных данных. |
|
мощные средства |
Разработка не |
|
подготовки отчетов из |
коммерческих |
|
БД различных |
приложений. |
|
форматов |
|
SQL- |
Высокая степень |
Хранение больших |
Server |
защиты данных. |
массивов данных. |
|
Мощные средства |
Хранение данных, |
|
работы с данными. |
требующих |
|
Высокая |
соблюдения |
|
производительность |
режима |
|
|
секретности или |
|
|
при не |
|
|
допустимости их |
|
|
потери. |
Visual |
Универсальность. |
Создание |
Basic |
Возможность создания |
приложений |
|
компонентов OLE. |
средней мощности, |
|
Невысокие требования |
не связанных с |
|
к мощности ПЭВМ |
большой |
|
|
интенсивностью |
|
|
обработки данных. |
|
|
Разработка |
|
|
компонентов OLE. |
|
|
Создание |
|
|
приложений для |
|
|
интеграции |
|
|
компонентов |
|
|
Microsoft Office. |
Visual |
Универсальность. |
Создание |
C++ |
Наибольшая скорость |
компонентов |
|
работы приложения. |
приложения для |
|
Неограниченная |
выполнения |
|
функциональность |
критичных по |
|
|
скорости |
|
|
процессов или |
|
|
обеспечения |
|
|
функциональности, |
|
|
не достижимой в |
|
|
других средствах |
|
|
разработки. |
Visual |
Высокий уровень |
Создание |
FoxPro |
объектной модели. |
приложений |
|
Высокая скорость |
масштаба |
|
обработки данных. |
предприятия. |
|
Интеграция объектно- |
Создание |
|
ориентированного |
приложений для |
www.books-shop.com
языка |
работы на |
программирования с |
различных |
Xbase и SQL. |
платформах |
Многоплатформенность (Windows 3.x,, Windows 95,, Macintosh и т. д.).
Рассмотрим теперь более подробно перечисленные в табл. 3.1 средства разработки за исключением пакета Visual C++, который, являясь инструментом профессионала, даже для краткого рассказа потребует книги более объемной, чем лежащая перед вами.
Какие общие черты имеют рассматриваемые средства разработки, подтверждающие наше утверждение о возможности их совместного использования для разработки пользовательских приложений различного уровня сложности? Во-первых такие новые технологии, как OLE, ODBC, DAO, RDAO, ActiveX и пр., которые они поддерживают. В этой книге мы постарались обратить на них самое пристальное ваше внимание. Эти технологии закладывают возможность использования в одном приложении данных, хранящихся в различных форматах. Мы можем легко разрабатывать приложения, независимые от данных. Помимо этого, за счет OLE Automation, мы можем использовать функциональные возможности различных пакетов программ для выполнения с данными специфических операций. Классическим примером такой возможности является подготовка в приложении, написанном на Visual FoxPro, данных, хранящихся в формате Access, для вывода в виде сложного графика с использованием Мастера подготовки графиков Excel.
Конечно, при совместном использовании различных средств разработки приложений нас больше всего будут интересовать данные. В табл. 3.2 приведен перечень типов данных, доступных в рассматриваемых средствах разработки. Прочерки в двух предпоследних колонках таблицы обозначают, что для этого типа данных задание конкретных величин не требуется.
|
|
Таблица 3.2. Типы данных |
|
|
|||
Тип |
Visual |
Access и |
MS SQL |
Длина Число |
Занимаемый |
||
данных |
FoxPro Visual Basic |
Server |
|
десятичных объем |
|||
|
|
|
|
|
разрядов |
|
|
Binary |
Нет |
dbLongBinary bynary(n) |
n |
- |
до 1,2 Гбайт |
||
Image |
|
|
|
байт |
|
|
|
Byte |
Нет |
dbByte |
tinyint |
1 |
- |
1 |
байт |
Character C |
dbText |
char(n), |
n |
- |
4 |
байта |
|
Text |
|
|
varchar(n) |
|
|
|
|
Count |
Нет |
dbLong |
Нет |
- |
- |
4 |
байта |
Currency |
Y |
dbCurrency |
money |
- |
- |
8 |
байт |
Date |
D |
Нет |
Нет |
- |
- |
8 |
байт |
DateTime T |
dbDate |
datetime |
- |
- |
8 |
байт |
|
Logical |
L |
dbBoolean |
bit |
- |
- |
1 |
байт |
(Yes/No) |
|
|
|
|
|
|
|
Numeric |
N |
Нет |
float |
n |
d |
от 1 до 20 |
|
|
|
|
|
|
|
байтов |
|
Integer |
Нет |
dbInteger |
smallint |
|
- |
2 |
байта |
Integer |
I |
dbLong |
int |
n |
- |
4 |
байта |
Double |
B |
dbDouble |
float |
- |
d |
8 |
байт |
Float |
F |
|
float |
n |
- |
от 1 до 20 |
|
|
|
|
|
|
|
байтов |
|
General |
G |
dbLong- |
image |
|
- |
4 |
байта |
(OLE |
|
Binary |
|
|
|
|
|
Object) |
|
|
|
|
|
|
|
Memo |
M |
dbMemo |
text |
- |
- |
4 |
байта |
Single |
Нет |
dbSingle |
real |
|
|
4 |
байта |
Character C |
Нет |
Нет |
n |
- |
1 |
байт на |
|
(binary) |
|
|
|
|
|
символ |
|
Memo |
M |
Нет |
Нет |
- |
- |
4 |
байта |
(binary) |
|
|
|
|
|
|
|
www.books-shop.com
•Binary Image. Любые данные в двоичном виде. Используется для хранения изображений, файлов и т. д.
•Byte. Целое положительное число от 0 до 255.
•Character. Символьное выражение может содержать любые символы (до 254 для одного поля).
•Count. Счетчик, который автоматически наращивает свое значение при добавлении записи. Начальное значение 1.
•Currency. Денежное выражение для числовой величины. Выводит число с четырьмя десятичными разрядами и установленным обозначением используемой денежной единицы.
•Date. Выражение для даты может содержать день, месяц и год.
•DateTime. Выражение дата и время может содержать время, день, месяц и год.
•Logical. Булево выражение для .T. или .F..
•Numeric. Числовое выражение может содержать целые или дробные числа со знаком.
•Integer (dbInteger). Целое число в диапазоне от -32,768 до +32,767.
•Integer (dbLong). Целое число. Можно хранить числа от -2147483647 до 2147483646.
•Double. Числа с плавающей точкой двойной точности. Можно хранить значения от
4.94065645841247E-324 до 1.79769313486232E308.
•Float. То же, что числовое выражение. Оставлено для совместимости.
•General. Поле для ссылки на объект OLE.
•Memo. Поле примечаний для ссылки на блок данных.
•Single. Число с плавающей точкой одинарной точности. Можно хранить отрицательные числа от -3.402823E38 до 1.401298E-45 и положительные числа от 1.401298E-45 до 3.402823E38.
•Character (binary). Символьное выражение, не подвергаемое трансляции в другую кодовую страницу.
•Memo (binary). Поле примечаний для ссылки на блок данных, не подвергаемых трансляции в другую кодовую страницу.
Все СУБД, как правило, имеют сходный функциональный состав, в который входят диалоговые средства для работы с данными - назовем их пользовательскими средствами, средства разработчика, обеспечивающие возможность создания пользовательского приложения, и дополнительные средства, от состава которых, как правило, зависят функциональные возможности и мощность разрабатываемых программ. Отражающая такой подход функциональная схема интерфейса СУБД представлена на рис. 3.1. В зависимости от назначения средства разработки, о чем мы уже говорили ранее, состав различных средств в конкретной СУБД может значительно отличаться. Например, в Access пользовательские средства развиты значительно сильнее, чем в Visual Basic, где они рассматриваются как вспомогательные функции.
www.books-shop.com
Рис. 3.1. Функциональная схема интерфейса СУБД
3.2. Visual FoxPro
Visual FoxPro - не просто следующая версия одной из наиболее быстрых СУБД для персональных компьютеров. Это совершенно новая программа, которая позволяет легко сделать то, что в предыдущих версиях давалось с величайшим трудом или было просто недоступно. Главное окно Visual FoxPro приведено на рис. 3.3.
www.books-shop.com
