Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
_46-54_БД_TERMINATOR_HD_NC_UD_LcMS.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
319.49 Кб
Скачать

Архитектура Microsoft sql Server

В архитектуре 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) – алгоритмическое преобразование значений некоторого поля записей (первичного ключа или любого другого поля) в адреса их размещения на внешнем носителе.

При вводе данных СУБД вычисляет адрес страницы, на которой будет храниться запись, и заносит запись на эту страницу. При выполнении запросов реализуются аналогичные расчеты адреса страницы с последующим чтением записей с этой страницы. Достоинством такого метода является быстрый прямой доступ к данным. При этом время доступа практически не зависит от количества хранимых записей.

Сведения о поставках товаров в магазин

Номер накладной

Название товара

Артикул

Количество

Дата

поставки

37

Костюм

500

50

10.12.05

54

Сапоги

200

75

10.12.05

18

Туфли

100

120

11.12.05

60

Костюм

500

35

11.12.05

28

Костюм

300

20

12.12.05

74

Костюм

400

50

12.12.05

80

Туфли

100

100

12.12.05

Рассмотрим технологию хеширования на примере данных, приводимых в табл. 3.1. Используем для вычисления адресов страниц значения данных в поле первичного ключа таблицы Номер накладной: 18, 28, 37, 54, 60, 74, 80. Предположим, что на каждой странице внешней памяти можно разместить только одну запись.

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

По указанной причине адреса страниц вычисляются с помощью специальной хеш-функции. Используем в качестве адресов страниц остаток от деления каждого значения номера накладной на простое натуральное число (например, 11), называемое сверткой ключа (обычно хеш-функции имеют более сложный вид) (табл. 3.6):

Таблица 3.6

Сведения о поставках товаров в магазин

Номер накладной

Название товара

Артикул

Количество

Дата

поставки

Адрес (номер страницы)

37

Костюм

500

50

10.12.05

4

54

Сапоги

200

75

10.12.05

10

18

Туфли

100

120

11.12.05

7

60

Костюм

500

35

11.12.05

5

28

Костюм

300

20

12.12.05

6

74

Костюм

400

50

12.12.05

8

80

Туфли

100

100

12.12.05

3

С помощью выполненного хеширования записи размещаются на семи страницах внешней памяти с адресами от 00 до 10.

Рассмотренный пример иллюстрирует и недостатки хеширования:

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

  2. Возможно совпадение рассчитанных адресов страниц для двух или нескольких записей (например адреса, вычисленные для номеров накладных 18, 29, 40, будут равны одному числу – семи).

Совпадение вычисленных адресов называется коллизией, значения данных, для которых получены одинаковые адреса – синонимами.

Существует много стратегий разрешения коллизий, но основные из них две:

а) с областью переполнения;

б) свободного замещения.

При помощи индексов ускоряется сортировка и поиск записей. Индексы таблиц Microsoft Access используются так же, как и предметные указатели в книгах: при поиске данных выполняется их поиск в индексе. Индексы можно создавать по одному или нескольким полям. Составные индексы позволяют пользователю различать записи, в которых первые поля могут иметь одинаковые значения .Выбор полей для индексирования

Поля первичного ключа таблиц индексируются автоматически, а поля с типом данных «Поле объекта OLE» индексировать нельзя. Для остальных полей индексирование используется, если выполняются следующие условия.

* Поле имеет тип данных «Текстовый», «Числовой», «Денежный» или «Дата/время».

* Предполагается выполнение поиска значений в поле.

* Предполагается выполнение сортировки значений в поле.

* Предполагается выполнение сортировки большого числа различных значений в поле. Если поле содержит много одинаковых значений, то применение индекса незначительно ускорит выполнение запросов.