Элементы геоинформационных систем и технология создания цифровых мар
..pdf4. РАБОТА С БАЗАМИ ДАННЫХ
4.1. Что такое база данных?
База данных - это набор информации, организованной таким образом, чтобы ее можно было хранить в компьютере. В MAPINFO базы данных обыч но называются таблицами.
Чтобы понять работу MAPINFO, Вам надо иметь представление об орга низации баз данных, в частности о трех фундаментальных понятиях: запись, поле и индекс.
Рассмотрим перечень типичный адресной информации (табл. 11). Таблица 11
|
Список таблицы «Камеры» |
|
|
Гори- 1 |
Номер |
Ширина, м |
Длина, м |
зонт, м |
камеры |
|
|
-220 |
25 |
16 |
176,5 |
-220 |
9 |
9 |
182 |
-220 |
1 |
16 |
182 |
-220 |
12 |
16 |
180 |
-220 |
6 |
16 |
186 |
Каждая строка этого перечня содержит сведения об одной камере. В терминах баз данных каждая такая строка называется записью. Каждая запись содержит несколько типов сведений о камере. Разные виды сведений называют полями. Поля соответствуют колонкам, так что приведенная выше табл. 11 со держит четыре различных поля (горизонт,номер камеры,ширина,длина).
Поля базы данных упорядочены (первое, второе, третье и т.д.), и обычно первое поле показывается в виде первой колонки базы данных. Второе поле
показывается справа от первой колонки и так далее, последнее поле показыва ется в самой правой колонке.
Для быстрой обработки запросов (поиска по базе) базы данных исполь зуют механизм индексации.
Индекс в базе данных подобен указателю в книге. Индекс представляет собой набор ссылок (как и в книге, где каждому названию соответствуют но мера страниц). В книгах указатели, как правило, используют алфавитный по рядок, чтобы легче было найти интересующую Вас тему. Найдя название те мы, мы ищем страницы с заданными номерами. Номера страниц есть ссылки. Они означают: «Открой страницу, на которую я указываю».
Подобным образом работают индексы баз данных, только обычно они остаются скрытыми от пользователя. Хотя Вы видите их, программа строит их и активно использует при работе.
Использование индексов ускоряет процесс поиска информации в базе данных. Так, MAPINFO требует, чтобы были проиндексированы те поля, к ко торым Вы применяете команду ЗАПРОС > НАЙТИ. Индексы также использу ются для оптимизации процедур объединения таблиц и SGL-запросов.
Поля в MAPINFO индексируются при создании структуры таблицы пу тем установки флажка (галочки) в колонке «Индекс». Индексироваться может любое количество полей таблицы. Индексирование не влияет на порядок сле дования записей.
Таблицы MAPINFO
В MAPINFO имеются два типа таблиц. Обычные таблицы (таблицы данных) подобны рассмотренной нами таблице адресной информации. Боль шинство таблиц MAPINFO относится к этому типу. Этот тип подразделяется, в свою очередь, на таблицы с графическими объектами и без таковых (элек тронные таблицы и внешние базы данных).
Второй тип таблиц - это растровые таблицы, то есть изображения, кото рые можно показывать в окнах карт. Эти компьютерные изображения не име
ют записей, полей и индексов, поэтому мы не будем говорить о них в этой гла ве. Подробнее растровые изображения рассмотрены Вами ранее.
Вся информация ниже относится к обычным таблицам.
4.2.Создание новых таблиц
ВMAPINFO можно использовать внешние данные: из dBASE, Excel, Lotus 1-2-3 ё ASCII-файлов с разделителями.
Также можно создавать свои базы данных непосредственно в MAPINFO. Такие базы данных можно открывать и просматривать в виде карт (поскольку они содержат графические объекты), списков или графиков.
Чтобы создать новую таблицу в MAPINFO:
1.Выполните команду ФАЙЛ > НОВАЯ ТАБЛИЦА. Появится диалог «Новая таблица».
2.Установите флажок «Показать списком», чтобы создаваемая таблица была показана в окне списка в традиционной табличной форме.
3.Нажмите «ОК». Появится диалог «Показать структуру таблицы».
4.Нажмите кнопку «Добавить поле», чтобы начать создание структуры базы данных. Задайте имя поля, его тип и размер, а также укажите, нужно ли индексировать это поле.
5.Описав все поля, нажмите «ОК». MAPINFO создаст новую таблицу.
6.Задайте имя таблицы и нажмите кнопку «Создать».
Наличие индекса убыстряет процесс поиска и объединения. Чтобы вы полнить команду НАЙТИ для некоторого поля, это поле следует сначала про индексировать. Индексировать можно несколько полей сразу.
Изменить порядок полей можно с помощью кнопок «Вверх» и «Вниз». Помните, что в том порядке, в каком поля расположены в данном диалоге (сверху вниз), в таком же (слева направо) они будут показываться в окне спи ска.
4.3. Сохранение таблицы и ее копии
Чтобы сохранить изменения, внесенные в данные или графические объ екты некоторой таблицы, Вы должны сохранить эту таблицу.( Для этого вы полните команду ФАЙЛ > СОХРАНИТЬ ТАБЛИЦУ. Появится диалог, в ко тором следует указать, какую таблицу сохранить.
Можно сохранить копию таблицы под другим именем с помощью коман ды СОЗДАТЬ КОПИЮ. По сути дела, при этом создается новая таблица. Эту команду удобно использовать,когда:
Вы хотите сохранить внесенные изменения, не удаляя при этом исход ный вариант таблицы;
надо сохранить результат запроса. (Таблицы запросов являютсл времен ными и при необходимости дальнейшего использования их следует сохранять на диск);
надо сохранить таблицу, содержащую временную колонку (после обнов ления колонки);
Вы создаете новую таблицу перед внесением в исходную таблицу; необходимо из MAPINFO внести изменения во внешнюю базу данных; надо сохранить таблицу в другой проекции;
Вы хотите сохранить таблицу в другом формате, совместимом с MAPINFO версии 2.
Чтобы сохранить копию таблицы:
1. Выполните команду ФАЙЛ > СОЗДАТЬ КОПИЮ. Появится диалог «Сохранить копию таблицы».
2.Выберите файл, который следует сохранить, и нажмите ОК.
3.Задайте новое имя файла.
Исходная таблица останется открытой, без каких-либо изменений. Новая таблица не будет открыта автоматически, но ее можно открыть с помощью ко манды ОТКРЫТЬ.
Все режимы и настройки диалога «Перестройка струкгуры таблицы» в точности соответствуют режимам и настройкам в диалоге «Создать структуру таблицы», которые описаны в главе, посвященной команде НОВАЯ ТАБЛИ ЦА.
Таблицы, которые нельзя обновить: ASNII-файлы,
файлы формата Excel и Lotus, таблицы Streetlnfo,
таблицы, созданные с использованием команды SQL-ЗАПРОС, если бы ла применена группировка (заполнено окошко «Сгруппировать по»),
таблицы, открытые в режиме «только чтение».
Хотя Вы не можете обновлять эти таблицы, но Вы можете использовать команду ОБНОВИТЬ КОЛОНКИ для добавления временных колонок.
4.5. Копирование и переименование таблиц
Поскольку таблицы MAPINFO состоят из нескольких файлов (STATES.TAB, STATES.DAT, STATES.MAP и т.д.), все файлы-компоненты определенной таблицы должны быть расположены в одном каталоге. Чтобы перенести таблицу в другой каталог, следует перенести все файлы, относящие ся к данной таблице. Аналогично, все файлы следует переносить при сохране нии таблиц на дискете.
Поскольку любая таблица состоит не менее чем из двух файлов, нельзя переименовать только один из них. Иначе MAPINFO не будет знать, где сле дует искать остальные файлы-компоненты. Поэтому лучше не пользоваться командами DOS для переименования файлов.
Для переименования таблицы:
1. Выполните команду ТАБЛИЦА > ИЗМЕНИТЬ > ПЕРЕИМЕНОВАТЬ.
Появится диалог «Переименовать таблицу».
2.Выберите таблицу, которую следует переименовать, и нажмите «ОК».
3.Задайте новое имя и нажмите «ОК».
При подобном переименовании таблицы MAPINFO изменяет имена всех файлов-компонент.
Помните, что переименование таблицы повлияет на все рабочие наборы, в которых она упоминается. После переименования таблицы следует отредак тировать файлы рабочих наборов (.WOR) в текстовом редакторе, проставив новое имя таблицы. Можно также переименовать таблицу перед сохранением рабочего набора.
4.6.Окно списка
Вокнах списка Вы можете просматривать и обрабатывать данные в тра диционной форме строк и колонок, которая обычно используется в системах баз данных и электронных таблицах.
Вокне списка можно изменять, копировать, удалять и добавлять записи. Вы можете открыть окно списка непосредственно в диалоге «Открыть табли цу», или выполнив команду НОВЫЙ СПИСОК в меню ОКНО.
Команда НОВЫЙ СПИСОК доступна, когда открыта хотя бы одна таб
лица.
Просмотр данных в табличной форме Для того чтобы показать открытую таблицу в окне списка:
1.Выполните команду ОКНО > НОВЫЙ СПИСОК.
2.Если открыта только одна таблица, то она немедленно появится в окне
списка.