Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

КонспектЛекций

.pdf
Скачиваний:
15
Добавлен:
14.05.2015
Размер:
1.73 Mб
Скачать

Для более эффективного управления страницами SQL Server использует объединения страниц – экстенты (extent – непрерывная область). Каждый экстент содержит 8 страниц и занимает 64 Кбайт. Для управления экстентами используются страницы специального типа GAM – Global Allocation Map, каждая из которых может хранить информацию о заполнении 64 000 экстентов. Специальные страницы типа PFS (Page Free Space) – используются для сбора информации о свободном месте не страницах. Это намного убыстряет процесс записи в базу, так как серверу для поиска оптимального варианта записи достаточно перебрать только страницы PFS. Для сбора информации о том, какому объекту принадлежит страница, используются страницы специального типа IAM – Index Allocation Map. Для объекта-владельца создаётся собственная страница IAM, в которой указываются принадлежащие ему экстенты. Если одной IAM не хватает, создаётся цепочка страниц этого типа.

5. Система безопасности и администрирование SQL Server.

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

Управление базами данных

Для создания базы данных средствами TSQL используется команда CREATE DATABASE, однако обычно для этой цели используются возможности Enterprise Manager. В SQL сервер определено достаточно много операций с базами данных: увеличение (уменьшение) размеров файлов, изменение конфигурации (команда ALTER), присоединение и отсоединение, передача прав владения, изменение имени, просмотр свойств и, наконец, удаление (DROP DATABASE).

Как и в большинстве серверов баз данных, в SQL Server существует пользователь, наделенный всеми административными полномочиями - это System Administrator или ‘sa’. После начальной установки сервера пароль sa пуст. Пользователь, создающий новую базу данных, автоматически становится её владельцем (‘dbo’ – Data Base Owner). В момент создания базы определяется и пользователь ’guest’. Если учётная запись пользователя явно не отображается в пользователя конкретной базы данных, пользователю предоставляется неявный доступ с использованием гостевого имени guest. Обычно guest запрещают.

Пользователь, создавший объект в базе данных, автоматически становится его владельцем, и никто, включая dbo и sa, не могут использовать этот объект, пока владелец не назначит им права на него. Но чтобы пользователь мог создать объект, владелец базы данных должен сначала ему предоставить соответствующие права.

Роль позволяет объединить пользователей, выполняющих одинаковые функции, для упрощения администрирования. Роли бывают встроенные и пользовательские. Встроенные роли реализуются на уровне сервера и на уровне баз данных. Ниже приведена таблица встроенных ролей для базы данных:

Db_owner

Имеет все права в базе данных

Db_accessadmin

Может добавлять или удалять пользователей

Db_securityadmin

Управляет всеми разрешениями, объектами, ролями и пользователями

Db_ddladmin

Может выполнять все команды DDL, кроме GRANT, DENY, REVOKE

Db_backupoperator

Может выполнять команды архивирования данных

Db_datareader

Может просматривать любые данные в любой таблице

Db_datawriter

Может модифицировать любые данные в любой таблице

Db_denydatareader

Запрещается просматривать любые данные в любой таблице

 

41

Db_denydatawriter

Запрещается модифицировать любые данные в любой таблице

Клиент

Authentication

SQL Server

 

 

 

 

 

База данных

 

Аутентификация

Account ID

 

 

Роли базы данных:

на уровне сервера

 

 

Db_owner

 

 

 

 

 

 

 

Db_accessadmin

 

Server

Database

 

Db_securityadmin

 

 

Db_ddladmin

 

User

User

 

1. Учётная запись

 

Db_backupoperator

 

 

 

Db_datareader

домена Windows

 

 

 

 

Guest

 

Db_datawriter

2. Учётная запись

 

 

 

 

 

Db_denydatareader

группы Windows

 

 

 

 

 

 

Dd_denydatawriter

3. Собственная

 

 

 

Роли сервера:

 

 

 

аутентификация SQL

 

 

 

Sysadmin

Набор объектов

 

 

Server

 

 

Serveradmin

«пользователи»

 

 

 

GRANT, DENY, REVOKE

 

Setupadmin

для конкретной

 

 

 

 

Securityadmin

базы данных

Объект базы

 

 

 

Processadmin

 

Набор объектов

 

данных

 

Dbcreator

 

 

 

 

 

 

«пользователи»

Diskadmin

 

 

Таблицы в целом или

для SQL Server

 

 

отдельные столбцы,

Bulkadmin

 

 

 

 

 

представления,

 

 

 

 

 

 

 

 

хранимые процедуры

Назначение прав пользователям

Основой системы безопасности SQL Server являются (1) учётные записи (accounts); (2) пользователи (users); (3) роли (roles); (4) группы (groups).

Когда пользователь подключается к SQL Server, действия, которые он может выполнять, определяются правами, выданными ему как пользователю и члену роли. Права выдаются администратором СУБД, владельцем базы данных или владельцем конкретного объекта базы данных. Права в базе данных можно разделить на три категории: (1) права на доступ к объектам баз данных; (2) права на выполнение команд TSQL; (3) неявные права. Сервер позволяет передавать права владения от одного пользователя другому.

Для управления разрешениями пользователя на доступ к объектам базы данных используются следующие команды:

GRANT { ALL [PRIVILEGES] | <вид действия>,…}

{

ON {<имя таблицы или представления>} [(<имя столбца>,…)] | ON {<имя хранимой процедуры>}

| ON {<имя пользовательской функции>}

}

TO {PUBLIC | <имя объекта системы безопасности>,…} [WITH GRANT OPTION]

[AS <имя группы> | <имя роли>]

назначение прав пользователям, где

ALL – пользователю предоставляются все возможные разрешения, иначе указать <вид действия> – права на доступные для пользователя действия, а именно:

SELECT – на просмотр, для столбца таблицы и для таблицы (представления) INSERT – на добавление, для таблицы (представления) в целом

UPDATE – на изменение, для столбца таблицы и для таблицы (представления) DELETE – на удаление, для таблицы (представления) в целом

42

EXECUTE – на выполнение хранимых процедур

REFERENCES – возможность ссылаться на указанный объект (вводить в состав внешнего ключа).

<имя объекта системы безопасности> – учётные записи SQL Server, пользователи домена Windows; PUBLIC – для всех пользователей.

WITH GRANT OPTION – позволяет пользователю, которому сейчас предоставляются права, самому назначать права на доступ к объекту другим пользователям.

AS <имя группы> | <имя роли> – участие пользователя в роли, которой предоставлена возможность предоставлять права другим пользователям.

Примеры:

GRANT SELECT ON authors TO public

GRANT INSERT, UPDATE, DELETE ON authors TO Mary, John, Tom GO

GRANT SELECT ON Plan_Data TO Accounting WITH GRANT OPTION GRANT SELECT ON Plan_Data TO Jack AS Accounting

-- Джек не входит в роль Accounting, но кто-нибудь из этой роли может предоставить право

DENY { ALL [PRIVILEGES] | <вид действия>,…}

{

ON {<имя таблицы или представления>} [(<имя столбца>,…)] | ON {<имя хранимой процедуры>}

| ON {<имя пользовательской функции>}

}

TO {PUBLIC | <имя объекта системы безопасности>,…} [CASCADE]

[AS <имя группы> | <имя роли>]

запрещение доступа пользователям к объектам базы данных. CASCADE отзывает права не только у данного пользователя, но также и у всех, кому он права предоставлял.

Пример (на запрещение выполнения команды TSQL):

DENY CREATE TABLE TO Jack CASCADE

Команда REVOKE используется для неявного отклонения доступ к объектам базы данных. Синтаксис аналогичен команде DENY. Неявное отклонение подобно запрещению доступа с тем отличием, что оно действует только на том уровне, на котором определено. Пример: пользователю Jack, который является участником роли GoodUsers, предоставлены права на доступ к таблице XFiles. Если при помощи REVOKE для роли GoodUsers отклоняются права на доступ к этой таблице, пользователь Jack всё равно может обращаться к этой таблице, поскольку права для него определены явно. Если же применить REVOKE персонально для него, он потеряет право на доступ к XFiles.

Разрешения, предоставленные роли, наследуются их членами. Если пользователю предоставлен доступ к объекту через членство в одной роли, но запрещён в другой, то конфликт доступа всегда решается в пользу запрещения.

Технологии защиты данных в MS SQL Server

1.Механизм checkpoints – контрольных точек, которые генерируются через ~60 с для записи обновлённых страниц на диск (контрольная точка может быть поставлена принудительно командой CHECKPOINT).

2.Встроенные и внешние механизмы проверки целостности базы данных (запускаются автоматически или, как утилита DBCC – Database Consistency Checker – вручную).

43

3.Физическое дублирование (если оно разрешено) файлов баз данных средствами операционной системы (включая механизм зеркальных жёстких дисков).

4.Резервирование баз данных и журналов транзакций – путём записи дампа базы данных на устройство резервирования (магнитную ленту или жёсткий диск).

5.Репликация – возможность дублирования информации путём её периодической (в некоторых случаях – синхронной) передачи с одного SQL сервера на другой.

6.Шифрование трафика между клиентом и сервером, а также шифрование кодов, использованных для работы с объектами базы данных (хранимых процедур, триггеров и др.)

6. Перспективы MS SQL Server.

Некоторые усовершенствованные возможности SQL 2000 Server:

 

Реляционная часть SQL Server 2000 поддерживает две способа работы с

 

XML: возврат результата запроса в виде XML и разбор XML-документов

 

внутри СУБД. Разобранный документ может использоваться оператором

Поддержка XML

SELECT как любая другая таблица. Чтобы вернуть результат запроса в

виде XML, используется конструкция SELECT ... FOR XML. SQL Server

 

 

2000 содержит ISAPI* библиотеку SQLISAPI для Microsoft IIS. Эта

 

библиотека использует провайдер SQLOLEDB и библиотеку SQLXML

 

для возврата Web-браузеру XML или HTML.

 

 

 

 

 

SQL Server 7.0 имел возможность генерации HTML страницы из данных

 

SQL Server, отправлял данные SQL Server посредством HTTP и FTP,

 

посылал и получал сообщения электронной почты. SQL Server 2000 идет

 

дальше и усовершенствует доступ к хранимым данным в базах и OLAP

Интеграция с

кубах через Web. Эти нововведения

гарантируют,

что данные

будут

доступны через интуитивно понятные

интерфейсы

пользователя.

SQL

Интернет*

Server 2000 допускает использование основанного на URL доступа

 

 

посредством нескольких специализированных механизмов, которые

 

используют ISAPI DLL, позволяющий определять виртуальные корни в

 

Microsoft Internet Information Services (IIS), привязанные к экземплярам

 

SQL Server 2000.

 

 

 

 

 

 

Полнотекстовый

Допускает полнотекстовый поиск через Web или интрасеть для

 

поиск

форматированных документов (Word, Excel, HTML)

 

 

 

 

Поддержка

Устанавливает отказоустойчивые базы данных непосредственно из Setup.

Использует активную и пассивную модель отказоустойчивости с

 

резервных серверов

 

резервным оборудованием

 

 

 

 

 

 

 

 

 

Сервисы Анализа и

Закрывает данные, используя системы безопасности для массивов и ячеек.

безопасности

Ограничивает доступ к специальным наборам ячеек

 

 

 

 

Сервисы

Импортирует и экспортирует данные и ключи между поддерживаемыми

преобразования

базами данных Программирует многофазную подкачку данных и

 

данных

сохраняет пакеты DTS как код Visual Basic.

 

 

 

 

 

 

Защищает данные с высоким уровнем защиты по умолчанию

 

Безопасность

устанавливаемом при установке. .Включает поддержку SSL соединений.

 

Имеет сертификат безопасности С2

 

 

 

 

 

Соединение OLAP

Поддержка функций принятия решений (decision support) и поиска

кубов

закономерностей (data mining), которые являются продолжением работ в

 

 

 

 

 

44

 

области искусственного интеллекта, позволяет анализировать и

 

фильтровать огромные объемы информации в поисках скрытых

 

закономерностей и тенденций. В SQL Server 2000 специалисты

 

корпорации Microsoft реализовали два самых популярных метода

 

исследования данных: алгоритмы кластеризации и деревья принятия

 

решений. SQL Server 2000 соединяет OLAP кубы на различных серверах

 

для анализа производительности. Безопасно осуществляет доступ к

 

данным куба через Интернет.

 

 

 

Быстро и эффективно проверяет данные в базах данных с поддержкой

 

многопроцессорной работы. В SQL 2000 в полном объеме используются

 

преимущества многозадачности и параллельной обработки данных, такие

Параллельное

как надежная работа с разделяемыми на уровне пользователей или

DBCC

приложений базами данных, разделение потока данных между серверами,

 

параллельное создание индексов, ускорение сканирования баз данных в

 

многопроцессорных системах, а также синхронизирует данные на всех

 

серверах в кластере независимо от их местонахождения.

 

 

Multiinstancing

Возможность установки и одновременной работы нескольких

экземпляров (instances) SQL Server 2000 на одной машине.

 

 

 

*) URL может быть определен, как:

a)Непосредственное исполнение sql запроса: URL запросы имеют форму: http://server/vroot?sql="…" Для

URL запроса, прикладные программы Internet могут составлять URL строку, которая вызывает виртуальный корень SQL Server 2000, и которая содержит инструкцию Transact-sql. Инструкция Transact-sql, посланная экземпляру SQL Server 2000, связывается с виртуальным корнем, и результат возвращается также, как стандартный rowset. Если определено предложение FOR Xml, вместо этого будет возвращён Xml документ. Поддерживаются запросы одиночной строки и одиночного столбца.

b)Непосредственный доступ к объектам базы данных, таким, как таблицы: Прямые запросы имеют форму: http://server/vroot/dbobject/xpath. Для прямых запросов посредством HTTP, данные не будут возвращаться в виде Xml, допуская прямой поиск объектов подобных изображениям в базе данных. Синтаксис Xpath требуемый в этом случае обработки таблиц (и представлений) как элементов, а столбцов как атрибут.

c)Исполнение файлов шаблонов: запросы шаблонов имеют форму: http://server/vroot/vname?params и

непосредственно ссылаются на файл шаблона, который является допустимым Xml документом, состоящим из одной или более sql инструкций. Когда в URL определен файл шаблона, содержащиеся в файле шаблона sql команды будут выполнены. Взамен запроса будут возвращены результаты, и полный Xml документ будет возвращен его инициатору.

d)Исполнение Xpath запросов через представления Xml: Xpath запросы Xml представлений имеют форму: http://server/vroot/vname/xpath?params Xpath делает запрос на доступ к определённым данным из реляционных таблиц и из Xml представлений (аннотируемая схема), который отображает Xml на реляционные таблицы базы данных.

45

Коллекция СУБД.

1. СУБД dBase. Хранение данных в формате DBF.

В восьмидесятые годы было разработано большое число однопользовательских СУБД. В нашей стране наибольшее распространение получили FoxBASE, dBASE (III, IV), Paradox, а в конце восьмидесятых годов приобрел популярность пакет Clipper. FoxBASE, dBASE и Clipper использовали одни и те же принципы организации информации и были совместимы на уровне файлов баз данных, поэтому иногда все эти системы рассматривали как модификации dBASE.

Система программирования dBASE была разработана фирмой Ashton-Tate. В dBASE III plus основное внимание было уделено совершенствованию пользовательского интерфейса (режим ASSIST), что существенно упростило процедуру создания и модификации баз данных, сортировку и индексацию записей. Создание и использование довольно сложных структур баз данных было возможно непосредственно из режима ASSIST без составления прикладных программ на языке dBASE, что делало эту СУБД доступной для широкого круга пользователей. Это обеспечило огромную популярность dBASE III plus, и в конце восьмидесятых годов эта СУБД являлась фактическим стандартом для реляционных баз данных.

Одним из недостатков СУБД dBASE, Paradox являлась невозможность создания с их помощью файлов .EXE, автономно работающих под управлением DOS. Именно поэтому широкое распространение (в нашей стране) приобрел пакет Clipper фирмы Nantucket, который с самого начала предназначался для компиляции прикладных программ. Clipper работал с файлами

.DBF, обеспечивая достаточно высокое быстродействие. В тоже время это была открытая система, позволявшая расширять возможности языка за счет приложений, написанных на других языках программирования - Assembler'е и С.

Файл формата DBF состоит из записи заголовка и записей с данными. В записи заголовка определяется структура набора данных. Количество полей определяет число подзаписей полей. Для описания каждого поля существует одна подзапись поля. Данные начинаются с позиции, указываемой в записи заголовка в байтах 08-09. Записи с данными начинаются с байта, содержащего признак удаления. Если в этот байт занесен пробел в коде ASCII (0х20), то запись не удалялась; если же в первом байте – звездочка (0х2A), то запись удалена. Записи с данными следуют за заголовком (байты располагаются последовательно), и включают в себя фактическое содержимое полей без каких-либо дополнительных символов. Длина записи (в байтах) определяется суммированием указанных длин всех полей. Индексный файл строится самой СУБД. В признаке завершения заголовка файла Microsoft FoxPro и Access ставят символ с кодом 0x0D.

Ниже приведены два варианта формата DBF – для dBASE версии III и версии IV:

Структура заголовка файла данных для таблицы dBASE III PLUS:

 

 

Заголовок табличного файла

 

 

 

 

 

Байт

Содержание

Описание

0

1-й байт

Определение наличия MEMO-файла в таблице dBASE III PLUS (03h

без MEMO-файла (.DBT-файл;) 83h с MEMO-файлом).

 

 

1-3

3 байта

Дата последнего обновления в формате YYMMDD

 

 

46

4-7

32-битное число

8-9

16-битное число

10-11

16-битное число

12-31

20

байтов

32-n

32

байта

n+1

1 байт

Количество записей в таблице

Количество байтов, занимаемых заголовком

Количество байтов, занимаемых записью Зарезервированная область

Массив с описаниями полей (структура каждого такого описания показана ниже)

Хранится значение 0Dh, выполняющее роль терминатора описаний полей

n - последний байт массива с описаниями полей. Размер массива зависит от количества полей в табличном файле.

Структура заголовка файла данных для таблицы dBASE III PLUS.

Байт

 

Содержание

Описание

0-10

11 байт

Имя поля в ASCII (заполнено нулями).

11

1

байт

Тип поля в ASCII (C, D, L, M или N)

12-15

4

байта

Адрес данных поля (ссылка на память, а не на диск)

16

1

байт

Размер поля в бинарном формате

17

1

байт

Порядковый номер поля в бинарном формате

18-19

2

байта

Зарезервировано для сетевой версии dBASE III PLUS

20

1

байт

ID рабочей области

21-22

2

байта

Зарезервировано для сетевой версии dBASE III PLUS

23

1

байт

Флаг установки поля

24-31

1

байт

Зарезервированная область

 

 

 

 

Записи таблицы:

Записи в табличном файле располагаются непосредственно за заголовком таблицы. Данным записи предшествует байт, указывающий на удаленность записи: значение 0x20 (пробел) указывает, что запись не удалена, значение 0x2A (звездочка) – запись была удалена. Поля упаковываются записями без разделителей полей или терминаторов записи. Конец файла помечается единственным байтом (с EOF-маркером), OEM-код которого соответствует значению 26 (0x1A). Вы можете ввести данные в кодовой странице OEM, как показано ниже.

Допустимый тип данных dBASE III

Тип данных

C (Символы)

D (Дата)

N (Числовой)

L (Логический)

M (Мемо)

Возможные значения

Все символы кодовой страницы OEM

Числа и символ-разделитель для месяца, дня и года (внутренний формат записи - 8 цифр в формате YYYYMMDD)

- . 0 1 2 3 4 5 6 7 8 9

? Y y N n T t F f (? - не инициализировано)

Все символы кодовой страницы OEM (внутренний формат записи - 10 цифр, содержащих номер .DBT-блока)

Бинарные-, MEMO-, OLE-поля и .DBT-файлы:

MEMO-поля хранят данные в .DBT-файлах, состоящих из перечисляемых последовательных блоков (0, 1, 2 и т.д.). Размер блока равен 512 байт. Первый блок в .DBT-файле (нулевой блок) - заголовок .DBT-файла. MEMO-поле каждой записи .DBF-файла содержит номер (значение

47

указывается в кодовой странице OEM), указывающий на блок с хранимыми данными. Если поле не содержит никаких данных, .DBF-файл будет заполнен пробелами (0x20) (а не числами). В случае изменения данных какого-либо поля, блоки могут изменить свои порядковые номера для отображения новой позиции данных в .DBT-файле.

Структура заголовка файла данных для таблицы dBASE IV 2.0:

 

 

 

Структура файла

 

Байт

 

Содержание

Описание

 

 

 

 

Контроль файла dBASE IV: биты 0-2 указывают номер версии, бит 3 -

 

0

1-й байт

наличие MEMO-файла dBASE IV, биты 4-6 - наличие SQL-таблицы, бит

 

 

 

 

7 - наличие любого MEMO-файла (или dBASE III Plus, или dBASE IV)

 

 

 

 

 

 

1-3

3

байта

Дата последнего обновления в формате YYMMDD

 

4-7

32-битное число

Количество записей в таблице

 

 

 

 

8-9

16-битное число

Количество байтов, занимаемых заголовком

 

10-11

16-битное число

Количество байтов, занимаемых записью

 

 

 

 

 

12-13

2

байта

Зарезервированная область, заполнена нулями

 

14

1

байт

Флаг, указывающий на наличие незавершенной транзакции

 

 

 

 

 

15

1

байт

Флаг кодировки

 

16-27

12 байт

Зарезервированная область для многопользовательского

 

использования dBASE IV

 

 

 

 

 

 

 

 

 

 

28

1

байт

Флаг наличия MDX-файла: 01H - файл присутствует, 00H - файл

 

отсутствует

 

 

 

 

 

29

1

байт

ID драйвера языка

 

 

 

 

 

30-31

2

байта

Зарезервированная область, заполнена нулями

 

32-n*

по 32 байта

Массив с описаниями полей (структура каждого такого описания

 

показана ниже)

 

 

 

 

 

 

 

 

 

 

n+1

1

байт

0DH в качестве терминатора

 

 

 

 

 

 

n - последний байт массива с описаниями полей. Размер массива зависит от количества полей в табличном файле.

 

 

 

 

Описание поля таблицы

 

Байт

 

Содержание

 

Описание

 

0-10

11 байт

 

Имя поля в ASCII (заполнено нулями)

 

 

 

 

 

 

 

11

1

байт

 

Тип поля в ASCII (C, D, F, L, M или N)

 

12-15

4

байта

 

Зарезервированная область

 

 

 

 

 

 

16

1

байт

 

Размер поля в бинарном формате

 

17

1

байт

 

Порядковый номер поля в бинарном формате

 

 

 

 

 

 

18-19

2

байта

 

Зарезервированная область

 

20

1

байт

 

ID рабочей области

 

 

 

 

 

21-30

10 байт

 

Зарезервированная область

 

31

1

байт

 

Флаг MDX-поля: 01H если поле имеет метку индекса в MDX-файле,

 

 

 

00H - нет.

 

 

 

 

 

 

 

 

 

 

 

 

Записи таблицы DBASE IV:

Записи в табличном файле располагаются непосредственно за заголовком таблицы. Данным записи предшествует байт, указывающий на удаленность записи: значение 0x20 (пробел) указывает, что запись не удалена, значение 0x2A (звездочка) – запись была удалена. Поля

48

упаковываются записями без разделителей полей или терминаторов записи. Конец файла помечается единственным байтом (с EOF-маркером), OEM-код которого соответствует значению 26 (0x1A).

Допустимый тип данных dBASE IV

Обозначение

Тип

Диапазон значений

 

 

типа

 

 

 

 

C

Символы

Все символы кодовой страницы OEM

 

 

 

Числа и символ-разделитель для месяца, дня и года

 

D

Дата

(внутренний формат записи - 8 цифр в формате

 

 

 

YYYYMMDD)

 

F

Бинарные числа с

- . 0 1 2 3 4 5 6 7 8 9

 

 

плавающей точкой

 

 

 

 

 

Десятичное

 

 

N

преобразование

- . 0 1 2 3 4 5 6 7 8 9

 

 

бинарных чисел

 

 

L

Логический

? Y y N n T t F f (? - не инициализировано)

 

 

 

Все символы кодовой страницы OEM (внутренний

 

M

Мемо

формат записи - 10 цифр, содержащих номер .DBT-

 

 

 

блока)

 

 

 

 

 

Memo-поля и .DBT-файлы для DBASE IV:

MEMO-поля хранят данные в .DBT-файлах, состоящих из перечисляемых последовательных блоков (0, 1, 2 и т.д.). Переменная BLOCKSIZE определяет размер каждого блока. Первый блок в .DBT-файле (нулевой блок) - заголовок .DBT-файла.

MEMO-поле каждой записи .DBF-файла содержит номер (значение указывается в кодовой странице OEM), указывающий на блок с хранимыми данными. Если поле не содержит никаких данных, .DBF-файл будет заполнен пробелами (20h) (а не числами).

В случае изменения данных какого-либо поля, блоки могут изменить свои порядковые номера для отображения новой позиции данных в .DBT-файле.

2. Microsoft Visual FoxPro. Обзор.

История Visual FoxPro и основные особенности шестой версии.

FoxPro – реляционная однопользовательская СУБД (с возможностью сетевого доступа), ориентированная на широкий класс пользователей. Производитель: Fox Software. Первая разработка датируется 1984 годом. FoxBase был задуман как улучшенный вариант dBASE, т.е. если dBASE умел что-то делать, то FoxBase должен был делать это лучше и быстрее.

С появлением на рынке FoxPro 2.0 был совершен переворот в области разработки баз данных на персональных компьютерах. Ускорение работы оказалось просто поразительным. В персональной системе базы данных стала возможной работа с таблицами, содержащими миллионы записей. Впервые разработчики Fox использовали в этой версии SQL-инструкции. FoxPro 2.0 представил разработку экранов и отчетов с помощью «мастеров». При этом мастер генерировал программный код, позволяя использовать и модифицировать его в основной программе. В версию FoxPro 2.5 была добавлена поддержка Windows, хотя по сути это было DOS-приложение, лишь внешне приняв облик Windows-продукта.

49

50

Компания Microsoft выкупила фирму Fox Software в период разработки FoxPro для Windows, и «совместная» версия 3.0 обогатилась множеством дополнительных возможностей: появилась поддержка хранимых процедур, правил привязки данных к таблицам, а также новых функций. Visual FoxPro стал первой персональной СУБД с возможностью доступа к удаленным данным. Версия 5.0 обрела возможность использовать и создавать серверы COM, но радикально не отличалась от версии 3.0.

На рубеже веков в основном использовалась шестая версия (Visual FoxPro 6 вошёл в состав пакета разработчика Microsoft Visual Studio 6, 1999 год), хотя все позиции и притязания FoxPro уже можно было трактовать как весьма умеренные.

Основа: интегрированная среда разработчика, позволяющая как конструировать программы из набора модулей (экраны, меню, отчёты), так и осуществлять запросы к БД из самой среды. Основной режим выполнения программ – интерпретация с возможностью создания исполняемых EXE-файлов (для работы которых требуется отнюдь не маленькая по размеру файла библиотека FoxPro). По быстродействию FoxPro всегда занимает лидирующее место среди однопользовательских СУБД. Язык программирования базируется на языке dBASE, плюс собственный набор команд и функций (FoxBASE) плюс поддержка некоторых SQLинструкций и плюс набор ООП-классов в основном для конструирования пользовательских интерфейсов. Улучшенная поддержка COM является, по-видимому, наиболее значительным усовершенствованием, упростившим создание и реализацию OLE-серверов.

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

Объект

Расширения

Проект

PRG, FPC, CAT, PGX, PJT

База данных (для организации таблиц и индексов)

DBC

Таблица (число записей в файле – до 1 млрд., максимальный размер

DBF

записи – 4000 байт, число полей в записи – до 255)

 

Индексный файл (бывают простые и составные)

CDX, IDX

Поля типа Memo и Genegal

FPT

Форма

SCX

Запрос

QPR

Отчёт

FRX, FRM

Почтовая наклейка

LBX, LBL

Меню

MNX

Библиотека класса

VCX

Программа

PRG, SPR, MPR, QPR

Рисунок

BMP

Звук

WAV

Откомпилированный проект (наиболее быстрое выполнение команд)

APP

Автономный файл проекта

EXE

Типы данных (полей в таблицах), которые поддерживаются FoxPro:

Character – текстовый (254 символа максимум)

Integer, Numeric, Float, Double – числовые

Currency – денежный

Date – дата

DateTime – дата и время

Logical – логический

Memo – текстовое поле произвольной длины