Читайте также: |
|
В архитектуре Microsoft SQL Server в первую очередь следует отметить следующие компоненты:
Первые два компонента обеспечивают функционирование SQL Server как серверной СУБД, принимая и обрабатывая запросы клиентских приложений. Система обеспечения без-опасности осуществляет авторизацию доступа и контроль прав клиентов.
В состав Microsoft SQL Server также входят компоненты, обеспечивающие:
Самый простой способ создания клиентов для просмотра или занесения данных в таблицы баз данных на SQL Server - воспользоваться возможностями MS Access.
Преимущества:
1) самый простой способ
2) очень легко вносить изменения в созданное клиентское приложение
3) можно использовать все возможности встроенного в MS Office языка VBA
Недостатки:
1) необходимо покупать и устанавливать на каждый клиентский компьютер MS Access
2) невысокие возможности с точки зрения производительности, особенно при необходимости реализовать в клиенте ресурсоемкие операции по обработке данных
3) при работе в MS Access может не хватить функциональных возможностей, которые есть в C++ и Visual Basic (не все типы данных поддерживаются, могут быть проблемы при обращении к внешним COM-серверам, не поддерживающих стандарт Automation и т.п.)
4) в MS Access версий до XP можно было стандартными способами подключиться только по ODBC - производительность не оптимальная.
Как создать клиента для работы в SQL Server из MS Access стандартным способом (можно использовать в любых версиях Access):
1) создать источник данных ODBC (Data Source Name - DSN), предпочтительнее System, поскольку он может использоваться любыми пользователями;
2) открыть в MS Access новую или существующую базу данных;
3) в меню File выбрать Get External Data -> Link Tables;
4) в окне Link в нижнем списке выбрать ODBC Databases() и в списке источников данных выбрать созданный вами DSN
5) далее выбрать те таблицы, с которыми вы будете работать, и нажать OK.
В MS Access, начиная с версии XP, появилась специализированная возможность настроить подключение к MS SQL Server по OLE DB - Access Project. Как ей воспользоваться:
1) закрыть текущую базу данных (если она открыта) и в меню File выбрать New. Затем в списке New File (справа) выбрать Project (Existing Data) и выбрать место для сохранения файла Access Data Project с расширением ADB.
2) в стандартном окне настроить параметры подключения по OLE DB. Все таблицы в базе данных SQL Server будут помещены в контейнер Tables, все представления и хранимые процедуры - в контейнер Queries.
При работе через проект возможностей гораздо больше - можно создавать таблицы, представления, хранимые процедуры, функции на сервере, изменять их и т.п.
В принципе, после создания Linked Table (первый вариант) или настройки параметров проекта Access XP можно открыть таблицу и работать с ней напрямую, но правильнее будет воспользоваться средствами MS Access - формами и отчетами, чтобы настроить более удобное представление информации.
Если вам необходимо использовать MS Access версии до XP, или же у вас есть другой клиент, который работает по ODBC, можно улучшить производительность при подключении к базе данных SQL Server путем замены драйвера ODBC на драйвер OLE DB. Процедуру замены можно произвести следующим образом (пример приводится для System DSN):
1) создать файл User Data Link (UDL) с параметрами подключения по OLE DB.
2) в редакторе реестра открыть раздел HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI и в нем раскрыть контейнер, имя которого соответствует созданному вами источнику данных ODBC.
3) в ключе Driver заменить существующее значение на имя созданного вами файла UDL с указанием полного пути.
Заблокировать проект, запретив пользователю просматривать его структуру и изменять его, можно через меню Tools -> Startup. Выбираем форму, которая будет открываться при открытии файла проекта, и запрещаем все остальное. Однако если при открытии удерживать кнопку Shift, то все процедуры автозапуска будут пропущены, и пользователю откроется окно базы данных.
Откомпилировать код всех программных модулей файла ADP можно путем преобразования его в файл ADE. При этом исходный код всех программных модулей будет убран - за счет этого будет запрещено их редактирование и сократится размер файла проекта (ту же самую операцию можно сделать с MDB, преобразовав его в файл MDE). Вначале нужно преобразовать файл в формат MS Access 2000-2003 (Tools -> Database Utilities -> Convert), а затем в том же меню Tools -> Database Utilities выбрать команду Make ADE File.
Подходы к повышению производительности баз данных. Понятия об индексации и хешировании.
Хеширование (Hashing) – алгоритмическое преобразование значений некоторого поля записей (первичного ключа или любого другого поля) в адреса их размещения на внешнем носителе.
При вводе данных СУБД вычисляет адрес страницы, на которой будет храниться запись, и заносит запись на эту страницу. При выполнении запросов реализуются аналогичные расчеты адреса страницы с последующим чтением записей с этой страницы. Достоинством такого метода является быстрый прямой доступ к данным. При этом время доступа практически не зависит от количества хранимых записей.
Сведения о поставках товаров в магазин
Номер накладной | Название товара | Артикул | Количество | Дата поставки |
Костюм | 10.12.05 | |||
Сапоги | 10.12.05 | |||
Туфли | 11.12.05 | |||
Костюм | 11.12.05 | |||
Костюм | 12.12.05 | |||
Костюм | 12.12.05 | |||
Туфли | 12.12.05 |
Рассмотрим технологию хеширования на примере данных, приводимых в табл. 3.1. Используем для вычисления адресов страниц значения данных в поле первичного ключа таблицы Номер накладной: 18, 28, 37, 54, 60, 74, 80. Предположим, что на каждой странице внешней памяти можно разместить только одну запись.
Номера накладных представляют собой целые двузначные числа. Поэтому если использовать номера накладных в качестве адресов страниц, для организации хранения информации потребуется 99 страниц с адресами от 01 до 99. Очевидно, что это нерационально, так как записей в исходной таблице всего семь и абсолютное большинство страниц останутся пустыми (приводимые рассуждения будут более убедительными, если значения данных, используемые для хеширования, пятизначные или шестизначные числа).
По указанной причине адреса страниц вычисляются с помощью специальной хеш-функции. Используем в качестве адресов страниц остаток от деления каждого значения номера накладной на простое натуральное число (например, 11), называемое сверткой ключа (обычно хеш-функции имеют более сложный вид)(табл. 3.6):
Таблица 3.6
Сведения о поставках товаров в магазин
Номер накладной | Название товара | Артикул | Количество | Дата поставки | Адрес (номер страницы) |
Костюм | 10.12.05 | ||||
Сапоги | 10.12.05 | ||||
Туфли | 11.12.05 | ||||
Костюм | 11.12.05 | ||||
Костюм | 12.12.05 | ||||
Костюм | 12.12.05 | ||||
Туфли | 12.12.05 |
С помощью выполненного хеширования записи размещаются на семи страницах внешней памяти с адресами от 00 до 10.
Рассмотренный пример иллюстрирует и недостатки хеширования:
1. Страницы с записями во внешней памяти могут располагаться неравномерно, с различным количеством пустых страниц между ними.
2. Возможно совпадение рассчитанных адресов страниц для двух или нескольких записей (например адреса, вычисленные для номеров накладных 18, 29, 40, будут равны одному числу – семи).
Совпадение вычисленных адресов называется коллизией, значения данных, для которых получены одинаковые адреса – синонимами.
Существует много стратегий разрешения коллизий, но основные из них две:
а) с областью переполнения;
б) свободного замещения.
При помощи индексов ускоряется сортировка и поиск записей. Индексы таблиц Microsoft Access используются так же, как и предметные указатели в книгах: при поиске данных выполняется их поиск в индексе. Индексы можно создавать по одному или нескольким полям. Составные индексы позволяют пользователю различать записи, в которых первые поля могут иметь одинаковые значения.Выбор полей для индексирования
Поля первичного ключа таблиц индексируются автоматически, а поля с типом данных «Поле объекта OLE» индексировать нельзя. Для остальных полей индексирование используется, если выполняются следующие условия.
* Поле имеет тип данных «Текстовый», «Числовой», «Денежный» или «Дата/время».
* Предполагается выполнение поиска значений в поле.
* Предполагается выполнение сортировки значений в поле.
* Предполагается выполнение сортировки большого числа различных значений в поле. Если поле содержит много одинаковых значений, то применение индекса незначительно ускорит выполнение запросов.
Дата добавления: 2015-11-14; просмотров: 127 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Типы данных SQL. | | | Образов-е месторождений нефти и газа |