Учебно-методический материал по курсу "Правовые основы и менеджмент земельного рынка" - (реферат)
p>Начиная с 1989 года MGE (Modular GIS Environment) - модульная ГИС-среда и программные продукты, примыкающие к ней, начинают добиваться на рынке больших успехов. MGE сегодня является самой распространенной интегрированной ГИС и сквозной производственной картографической системой в мире, имеющей в области картографической издательской деятельности свыше 100 клиентов в 25 странах.
Контрольные вопросы: Современные технические средства базирования ГИС. Программное обеспечение в современных ГИС-технологиях. Глава V. Схема дигитализации карт растровыми методами. 5. 1. Ручная дигитализация.
Из всех методов дигитализации ручной возник самым первым, что является совершенно логичным следствием развития техники и технологии. Вместе с тем, он же является и наиболее употребимым в настоящее время. Правда, со времени своего возникновения эта технология претерпела некоторые изменения. В отличие от традиционного способа дигитализации при помощи физического устройства (дигитайзера) появился альтернативный способ, связываемый с некоей программой, позволяющей оцифровывать изображение, наблюдая его на экране. Благодаря чему эту программу часто называют "экранным дигитайзером", а всю схему обозначают термином "heads-up" (с поднятой головой).
По своей сути, не меняя весь смысл метода ручной дигитализации, этот способ добавил множество преимуществ. Перечислим основные из них. Первое - это то, что появилась возможность более точно наводиться на объект, так как появилась возможность увеличить масштаб изображения, т. е. как бы увеличить картинку, приблизить ее. Это кроме непосредственной выгоды дает и то, что теперь уменьшается нагрузка на зрительную систему оператора, т. к. с крупными объектами работать легче. А это уже в свою очередь уменьшает ошибки дигитализации, повышает производительность труда. Вторым преимуществом является возможность визуального контроля за выходной информацией, т. к. оператор может наблюдать след, оставляемый векторной линией, т. е. посмотреть, как точно получаемые вектора описывают исходное растровое изображение, выступающее в качестве подложки, путем одновременного совмещения их на одном экране или в окне. Другие преимущества нельзя было бы отнести непосредственно к экранной дигитализации, как к методу цифрования, но некоторый анализ показывает, что часто это становится стандартными элементами "экранной" технологии. Речь идет прежде всего о функциональных возможностях программных средств, применяемых при работе.
Технологическая схема фирмы INTERGRAPH предполагает использование для такого вида работ продукт MicroStation I/RAS B. В этом случае создание самого векторного изображения происходит посредством базового графического редактора среды MS, а возможность работы с растром представляет пакет I/RAS B. Он позволяет загружать до 64 индивидуальных растровых файлов в качестве подложки и визуализировать их любым цветом из палитры в 254 цвета, а также отключать вообще.
После того, как необходимые файл или группа файлов загружены, оператор может начинать дигитализацию, пользуясь устройством ввода типа "мышь". Как и при работе с дигитайзером ввод информации осуществляется указанием вершин графических примитивов при непосредственно визуальном распознавании объектов, которые они описывают. Но если в первом случае такими объектами зачастую являются линия (отрезок) и общий случай полилинии (ломаной), то в последнем существует большое число графических примитивов, ввод которых не возможен при использовании классического дигитайзера. Приведем несколько примеров. При вводе полилинии можно указать, что угол между ее сегментами является фиксированной величиной и равен 90 градусов, что очень часто требуется при оцифровке антропогенных объектов (контура зданий, кварталов в городах и т. д. ). При оцифровке объектов, имеющих смежную границу, вновь изображаемая векторная линия может точно повторить другую, которая уже относится к какому-либо объекту посредством привязки ее вершин к вершинам уже существующей. Количество примеров, конечно, не ограничивается только этими двумя, потому что базовый графический редактор среды MicroStation является одним из наиболее мощных векторных графических редакторов, применяемых в промышленности сегодня.
5. 2. Интерактивная дигитализация.
Дальнейшим развитием технологии дигитализации растровых изображений стало появление ПО, позволяющего работать в полуавтоматическом интерактивном режиме. Облегчая векторизацию линейных элементов карт, такие пакеты позволили увеличить скорость растрово-векторного преобразования и избавить человека-оператора от утомительной процедуры ручной дигитализации.
На сегодняшний день такие пакеты являются наиболее часто используемыми, благодаря своей универсальности. Большинство не предлагают аналогичные услуги, отличаясь интерфейсом, заложенными алгоритмами, точностью преобразования, способностью разбираться в сложных ситуациях и скоростью работы. Таким продуктом из серии приложений, предлагаемых известной фирмой, является пакет I/GEOVEC. Его работа базируется на MicroStation и I/RAS B или I/RAS 32. C его помощью можно, используя технику "heads-up digitizing", интерактивно вводить векторные данные поверх существующего растрового изображения. Для этого достаточно визуально идентифицировать растровый объект на экране и поставить первую точку рядом с ним. I/GEOVEC отслеживает растровую линию, пока она не закончится или он не достигнет точки, требующей дальнейших инструкций оператора.
Пользователь может установить параметры отслеживания для преодоления некоторых трудностей (разрывов в растре, пересечений с др. линиями, развилок, касаний контуров и наложений текста). Отслеженную линию можно подвергнуть фильтрации и сглаживанию для спрямления векторов с малым углом расхождения, удаления избыточных узлов и скругления резких перегибов. Эти операции также доступны, как постпроцесс, запускаемый в пакетном режиме. I/GEOVEC позволяет вводит криволинейные изображения объектов в 4 или 5 раз быстрее и более точно, чем при ручном методе.
Функция REVERS VIDEO позволит отслеживать не сам растр, а фон, считая его как бы изображением. Эта возможность не заменима при обработке дорог, которые изображаются двумя параллельными линиями.
Настроив параметр "величина разрыва в растре" и "угол обзора", можно заставить приложение отслеживать линии, состоящие из точек или штрих-пунктирные линии, что применимо при вводе контуров растительности и разнообразных границ. При встрече пересекающихся линий (развилок) есть возможность установить действие программы по умолчанию - останавливаться, поворачивать налево или направо, следовать прямо, присоединиться к пересекаемой векторной линии, присоединиться и разорвать пересекаемую векторную линию для создания узла. Довольно уникальной для такого рода ПО является способность I/GEOVEC распознавать текст и одиночные условные знаки. Этот пакет увеличивает эффективность работы, расширяя набор инструментальных средств другими менее часто используемыми, но полезными функциями, ускоряющими процесс преобразования и позволяющими его контролировать.
В настоящее время существует версия только для UNIX(CLIX). В скором времени ожидается выход версии для другой известной ОС - Microsoft Windows NT.
5. 3. Автоматическая дигитализация.
Как известно, до сих пор не создано программы, позволяющей полностью в автоматическом режиме осуществлять ввод обычных топографических карт. Это происходит по целому ряду причин, здесь нами нерассматриваемых. Поэтому, говоря об автоматической дигитализации, следует сразу же оговориться, что речь идет о линейных элементах карт.
Уже из того, что речь идет об автоматической дигитализации, следует то, что программа должна работать в пакетном режиме. Отсюда получаем, что, скорее всего исходными данными для такой программы будут изображения с простой топологической структурой. Например, рисунок горизонталей. Причем эти случаи имеют место только в 10% всех задач дигитализации.
Для решения таких задач по векторизации растровых изображений INTERGRAPH предлагает пакет I/VEC. Этот продукт конвертирует бинарные растровые данные в векторные данные (полилинии, точки и контуры многоугольников). Базовые функции векторной графики основываются на MicroStation 32, а функции растрового редактирования - на пакете I/RAS 32. Функционально I/VEC делится на три этапа: предобработку, обработку и постобработку, каждый со своими специфическими установками, управляемые пользователем. Все вместе это в себя включает: - преобразование линейных растровых объектов в векторный формат в пакетном режиме;
- манипуляции с введенным изображением или указанной пользователем области; - вывод полученных векторных данных по сети;
- функции постобработки: генерирование соединений векторных полилиний, сжатие данных, удаление висячих концов, заполнение разрывов, автоматическое обнаружение и коррекция ошибок, генерация очереди нерешенных проблем (предлагается пользователю);
- специальные параметры для обработки упакованных пакетов данных; - миграцию отсканированных данных в другое Intergraph'овское картографическое ГИС приложение (MGE);
- экспорт в другие, стандартные для индустрии платформы САПР.
5. 4. MicroStation MDL, как среда разработки пользовательских приложений.
MicroStation - это векторный графический редактор и одновременно программная среда для исполнения и создания приложений. Она включает полный набор средств разработки, состоящий из компилятора, полностью поддерживающего стандарт ANSL, редактора связей, символьного отладчика и утилиту make.
Она имеет встроенный язык разработки приложений - MDL. Это полная реализация языка С внутри MicroStation. Фактически все функции MicroStation могут быть вызваны из MDL. Предлагаемый API обеспечивает доступ к более, чем 1000 функций для создания и модификации векторных данных. MicroStation является событийно-ориентированной программной средой, что требует принципиально нового подхода к программированию. Но, предлагаемый API, набор средств для создания элементов интерфейса (диалоговых окон, выпадающих меню, палитр кнопок с пиктограммным обозначением и т. д. ), который выполнен в стандарте Motif, обеспечивает программистам создание приложений с укороченным циклом разработки.
Тесное соединение между MicroStation и приложениями, создаваемыми через MDL, означает, что программисты могут объединять свои команды прозрачно в среде MicroStation. Множественные MDL-приложения могут работать одновременно. Это позволяет разработчикам создавать интегрированные тесносвязанные решения прикладной специфики. MicroStation поддерживает наиболее совершенные сети и позволяет нескольким разработчикам работать над проектом одновременно. Пользователи DOS, Macintosh, UNIX, Windows NT и VAX операционных систем могут интерактивно разделять данные. Это возможно благодаря тому, что файлы данных MicroStation двоично совместимы между множественными платформами, допускающими передачу файлов без перекодировки.
Благодаря тому, что MDL - встроенный язык, а программа компилируется и собирается средствами, предлагаемыми разработчиками MicroStation, она практически получает аппаратную независимость. Т. е. может выполняться на всех типах вычислительных систем и в тех операционных системах, для которых доступна сама система MicroStation.
Контрольные вопросы: Методы векторизации карт.
Программные продукты для векторизации картографических документов. Пути расширения возможностей среды MicroStation/
Глава VI. Хранение и обработка кадастровой информации. 6. 1. Основные понятия.
Эффективное использование цифровых данных предполагает наличие программных средств, обеспечивающих функции их хранения, описания, обновления и т. д. В зависимости от типов и форматов их представления, от уровня программных средств ГИС и некоторых характеристик среды и условий их использования могут быть предложены различные варианты организации хранения и доступа к пространственным данным, причем способы организации различаются для позиционной (графической) и семантической их части.
В достаточно простых программных средствах ГИС, отсутствуют специфические средства организации хранения, доступа к данным и манипулирования или эти функции реализуется средствами операционной системы в рамках ее файловой организации.
Большинство же существующих программных средств ГИС используют для этих целей достаточно изощренные и эффективные подходы, основанные на организации данных в виде баз данных (БД), управляемых программными средствами, получившими названиесистем управления базами данных(СУБД). Под базой данных принято понимать “совокупность данных, организованных по определенным правилам, предусматривающим общие принципы описания, хранения и манипулирования данными, независимую от прикладных программ”, а под СУБД - “ комплекс программ и языковых средств, предназначенных для создания, ведения и использования баз данных”.
Современные коммерческие СУБД, в том числе те, что использованы в программном обеспечения ГИС, различаются по типам поддерживаемых моделей данных, среди которых выделяются иерархические, сетевые и реляционные и соответствующие им программные средства СУБД. Особое широкое применение при разработке программного обеспечения ГИС получили СУБД.
СУБД реляционного типа позволяют представить данные о пространственных объектах (точках, линиях и полигонах) и их характеристиках (атрибутах) в виде отношения или таблицы, строки которой - индексированные записи - соответствуют набору значений атрибутов объекта, а колонки (столбцы) обычно устанавливают тип атрибута, его размер и имя атрибута. В число атрибутов не входят геометрические атрибуты, описывающие их геометрию и топологию. Векторные записи координат объектов упорядочиваются и организуются с использованием особых средств. Связь между геометрическим описанием объектов и их семантикой в реляционной таблице устанавливается через уникальные номера - идентификаторы.
Удобство манипулирования данными в БД существенно зависит от языковых средств СУБД. Широкие возможности предоставляются пользователю СУБД, в которых реализован язык обработки запросов SQL, и его расширения, адаптированные к описанию пространственных запросов к БД ГИС и содержащие конструкции, включающие пространственные переменные и условия.
Одним из главных мотивов, определяющих необходимость использования технологии баз данных при создании ГИС в настоящее время, является поддержка современными СУБД сетевых возможностей хранения и использования технологий локальных сетей (LAN) и удаленных сетей в так называемых распределенных БД. Тем самым достигается оптимальное использование вычислительных ресурсов и возможность коллективного доступа пользователей к запрашиваемым БД.
6. 2. Анализ данных и моделирование.
Блок анализа данных, являясь одним из трех крупных модулей ГИС (ввода, обработки и вывода), составляет ядро геоинформационных технологий, все остальные операции которых с некоторой точки зрения могут представляться сервисными, обеспечивающими возможность выполнения системой ее основных аналитических и моделирующих функций. Содержание аналитического блока современных программных средств сформировалось в процессе реализации конкретных ГИС, выкристаллизовавшись в форме более или менее устоявшегося набора операций или групп операций, наличие, отсутствие или эффективность (неэффективность) которых в составе данного продукта может служить надежным индикатором его качества.
Существуют различные классификации позволяющие сгруппировать элементарные операции аналитического характера или их последовательности в группы. Обобщая некоторые из них, и опираясь на состав и структуру аналитических модулей, можно выделить следующие их группы:
1. Операции переструктуризации данных. 2. Трансформация проекций и изменение систем координат. 3. Операции вычислительной геометрии.
4. Оверлейные операции (наложение разноименных и разнотипных слоев данных). 5. Общие аналитические, графо-аналитические и моделирующие функции.
6. 3. Вывод и визуализация данных.
Результаты обработки данных, основные процедуры которой рассмотрены выше, покидая свою цифровую оболочку, должны трансформироваться в “человеко-читаемый” документ. Программные средства ГИС включают достаточно широкий набор средств генерации выходных данных.
Документы, генерируемые на выходе: - табличные; - графические; - картографические.
К техническим средствам, используемых для генерации документов, принадлежат средства машинной графики, конвертеры данных, позволяющие преобразовывать данные из одних форматов в другие без потерь их геометрических и семантических атрибутов, графопостроители, графические дисплеи с высоким разрешением.
6. 4. Классификация современных СУБД.
Классификация СУБД в соответствии с используемой моделью данных: Иерархическая.
Сетевая. Реляционная. Объектная. Гибридная (элементы объектной с реляционной).
В настоящее время самыми распространенными СУБД являются продукты использующие реляционную модель данных. Это связано с простотой понимания и лучшими характеристиками по сравнению с другими. В связи с этим остановимся на рассмотрение только реляционных СУБД (РСУБД).
Классификация РСУБД в зависимости от объема поддерживаемых БД и количества пользователей.
Высший уровень. Эти продукты поддерживают крупные БД ( сотни и тысячи Гбайт и более), тысячи пользователей. В крупных корпорациях. Представители: ORACLE7, ADABAS 5. 3. 2, SQL SERVER11.
Средний уровень. Эти продукты поддерживают БД до нескольких сот Гбайт, сотни пользователей. В небольших корпорациях и подразделениях крупных фирм. Представители: InterBase 3. 3, Informix-OnLine7. 0, Microsoft SQL Server6. 0. Нижний уровень. Эти продукты поддерживают БД до 1 Гбайт, менее 100 пользователей. В небольших подразделениях. Представители: NetWare SQL 3. 0, Gupta SQL-Base Server.
Настольные СУБД. Для одного пользователя, используется для ведения настольной БД или как клиент для подключения к серверу БД.
Оценка современных СУБД на соответствие требованиям, предъявляемым к автоматизированным информационным системам кадастра.
Рассмотрим стандартные современные реляционные СУБД по каждому классу продуктов, основные возможности, которые они предоставляют. Произведем оценку их, в соответствии с требованиями предъявляемым системам автоматизации кадастрового учета.
Высший уровень : Oracle7, corp. Oracle
Продукт этого класса обладает широким диапазоном функциональных возможностей, включая поддержку двухфазной фиксации, тиражирования данных, хранимых процедур, триггеров, оперативно резервного копирования. Он предназначен для организации оптимального использования системных ресурсов, что гарантирует максимальную расширяемость. Поддерживает БД, занимающие несколько физических дисков, хранение новых типов данных. Поддерживает почти все аппаратные и программные платформы существующие на сегодняшний день, а также протоколы передачи данных. Широко применяется во многих отраслях промышленности . Зарекомендовал себя с самой лучшей стороны. Хорошая поддержка со стороны производителя, corp. Oracle.
SQL Server 10, comp. Sybase
Мощный продукт, поддерживающий обработку в реальном времени и процессы решений. Одного уровня с Oracle7, но обладает некоторыми ограничениями в плане масштабируемости, поддерживает ограниченное число аппаратных и программных платформ.
Средний уровень : Informix-OnLine 7. 0, comp. Software
Данный продукт поддерживает такие современные технологии, как тиражирование данных, синхронизирующее распределенные БД, и большие двоичные объекты. Он может применятся для запуска OLTP-приложений (высокоскоростной обработки транзакций), но скорость обработки оказывается меньше, чем у продуктов верхней части рынка. Установка возможна на ограниченных количеств платформ. Имеет большие возможности для расширения.
Microsoft SQL Server 6. 0, corp. Microsoft
Очень хорошая СУБД. Корпорация Microsoft разработала хороший продукт, который вписывается в общую концепцию компании, выпуская только интегрированные продукты. Эта СУБД интегрирована с Windows NT, дополняя ее. Недостатки: недостаточная масштабируемость, малое количество поддерживаемых программных платформ.
Низкий уровень :
Так как каждая из них предоставляет похожий набор инструментов, то рассматривать каждое в отдельности не будем. В эту группу входят Cupta SQL-Base Server, Watcom SQL Network Server и другие. Они обладают ограниченными возможностями по сравнению с СУБД более высокого класса, но в небольших компаниях, где БД небольшие и количество пользователей ограничено несколько десятками людей, они прекрасно выполняют свои обязанности по управлению БД.
Настольные СУБД : FoxPro 2. 6, corp. Microsoft
Очень ограниченные возможности по обработке данных. Отсутствие возможности установки в сети. Предназначена личных дел. Не рекомендуется для использования в крупных системах. Отсутствует возможность защиты данных, управление доступом и многое другое.
Paradox 5. 0, comp. Borland
В своем классе одна из лучших, однако ей присущи все недостатки настольных СУБД. Ограниченные возможности по применению. Удобный интерфейс.
Оценка современных СУБД :
При использовании конкретной СУБД необходимо учитывать три ключевых фактора: в какой архитектуре клиент/сервер он будет работать, каким образом реализуются основные функции и каков уровень поддержки распределенных БД. В зависимости от этого надо делать свой выбор.
Среди представленных продуктов только Oracle7 наиболее полно поддерживает нужные требования. Ниже будут даны основные понятия о сервере Oracle7.
Контрольные вопросы : Понятие СУБД. Возможности СУБД. Классификация СУБД. Глава VII. СУБД ORACLE7 : общие положения. Структура базы данных ORACLE7.
СУБД ORACLE7, в дальнейшем просто ORACLE7, имеет собственную модель реляционной базы данных - это хорошо определенная теоретическая модель работы и управления набором данных(который и составляет базу данных). Такая модель должна определять структуру данных, целостность данных и операции с данными. Аналогично тому, как предприятие организует склад продукции, ORACLE7 структурирует базу данных логически и физически. Логическая структура базы данных ORACLE7 - это набор файлов операционной системы, в которых на диске хранятся биты и байты информации базы данных.
Таблицы: стандартные логические единицы хранения
ORACLE7 хранит и представляет все данные в таблицах. Таблица - это массив связанной информации, то есть записей данных, имеющих одинаковые атрибуты. Атрибутами таблицы являются ее столбцы, а записи данных образуют строки таблицы. Каждый столбец таблицы или атрибут содержит конкретный тип данных. Когда пользователь создает таблицу. он задает для каждого столбца метку и тип данных. ORACLE7 поддерживает множество различных типов данных например: char, number date, long и другие.
Табличные области и файлы данных: стандартные физические единицы хранения ORACLE7.
Когда пользователь создает новую таблицу он сообщает ORACLE7 где физически нужно хранить ее данные Пользователь делает это путем спецификации для новой таблицы табличной области Табличная область - это раздел илилогическая область памяти в базе данных непосредственно соответствующая одному или более физическим файлам данных после определения администратором табличной области в базе данных пользователи могут создавать в ней одну или более таблиц Табличная область - это логический раздел базы данных который отображается в один или несколько физических файлов Таким образом табличные данные в каждой табличной области отображаются в ее файлы данных.
Цепочка таблица - табличная_область - файл данных - это то что обеспечивает для ORACLE7 характеристики реляционной базы данных независимость от данных. После создания таблицы пользователем другие пользователи могут вставлять удалить или обновлять строки в таблице, указывая ее имя в операторе SQL . ORACLE7 берет на себя заботы по отображению запроса SQL в корректные физические данные диска.
Область SYSTEM: табличная область для всех таблиц
Каждая база данных ORACLE7 имеет по крайней мере одну табличную область область SYSTEM. При создании базы данных администратор задает для нее имена и размеры начальных файлов данных. Эти файлы образуют на диске физическую память для табличной области SYSTEM. ORACLE7 использует табличную область SYSTEM для хранения словаря данных. Словарь данных - набор внутренних системных таблиц, содержащих все виды информации о базе данных. Например: имеются таблицы словаря данных с информацией о таблицах табличных областях и файлах данных СУБД. Для чего используются несколько табличных областей ? После создания базы данных ORACLE7 администратору обычно требуется создать другие табличные области Они используются для физического распределения данных для планируемой базы данных Это позволит хранить данные каждого приложения отдельно от данных других приложений. Причины заключаются в следующих обстоятельствах : ORACLE7 позволяет администраторам управлять доступностью информации базы данных на основе табличных областей Таким образом они могут эффективно переводить приложения в автономное состояние, переводя в автономное состояние соответствующую табличную область (при этом ее таблицы становятся недоступными).
При разумном использовании табличных областей администраторы могут улучшить производительность приложений. Например, если администратор помещает файлы данных табличной области каждого приложения на разные диски сервера базы данных, то приложения не будут мешать друг другу при обращении к диску (не возникает конкуренции за доступ к диску и память на нем).
Рассмотрим некоторые компоненты системы базы данных ORACLE7.
Представления: способы просмотра данных
Когда пользователи работают с представлениями, они видят те же данные, что находятся в таблицах базы данных, но, возможно, в другой перспективе. Аналогично тому, как телескоп не содержит звезд, представление не содержит данных. Представление - это виртуальная таблица, данные для которой получаются из базовых таблиц (рис 3).
Рис. 3 Пример реализации представления.
Представление можно рассматривать как хранимый запрос (оно определяется с помощью запроса). Например:
CREATE VIEW reorder AS SELECT id, onhand, reorder FROM stock WHERE onhand
Представление REORDER определяет оператор CREATE VIEW. Этот запрос соответствует только тем строкам в таблице STOCK, у которых текущее наличное количество меньше той точки, когда нужно заказывать новую партию товара. Одно из основных правил реляционной модели заключается в том, что все данные нужно рассматривать как таблицы. Таким образом, представление обслуживает характеристики таблицы. Также как для таблицы, пользователи могут использовать для представления операторы SQL (но с некоторыми ограничениями). Конечно, представление получает свои данные из базовой таблицы. Когда пользователь запрашивает данные представления, вставляет их, удаляет или обновляет в представлении, ORACLE7 работает с данными таблицы. Но если вы точно не знаете, что это представление, его трудно отличить от таблицы.
Представление может использоваться для улучшения защиты, для вывода дополнительной информации, для сокрытия сложных запросов (конкретное использование рассматривается в специальной литературе).
Обеспечение целостности данных.
Очень важно, чтобы была обеспечена целостность информации базы данных, то есть чтобы данные были, согласно некоему набору правил, допустимыми. Реляционная модель описывает некоторые характерные правила, которые можно ввести для обеспечения в реляционной базе данных целостности данных. Это - ограничение домена, ограничение таблицы и ссылочное ограничение. Правила целостности поясняют следующие понятия.
Целостность домена: каждое значение поля должно быть элементом домена. Целостность домена гарантирует, что база данных не содержит бессмысленных значений. Она обеспечивает то, что значение в столбце является элементом домена столбца, то есть допустимого множества его значений. Строка не будет включена в таблицу, пока каждое из значений ее столбцов не будет находиться в домене соответствующего столбца.
Задание целостности домена осуществляется с помощью типов данных. Запись данных не может быть включена в таблицу, пока данные в каждом столбце не будут иметь корректный тип.
Все типы данных ORACLE7 позволяют разработчикам описывать тот или иной тип столбца. Можно ввести дальнейшие ограничения домена столбца. Например, тип данных NUMBER позволяет определить точность (общее число значащих цифр) и масштаб (общее число цифр справа или слева от десятичной точки), и тому подобное (более полное описание можно получить в справочном руководстве).
Целостность вcей таблицы: обеспечение уникальности каждой строки. Другим встроенным ограничением целостности данных является целостность всей таблицы, которая означает, что каждая строка в таблице должна быть уникальной. Если таблица имеет такое ограничение, то вы можете уникальной. Если таблица имеет такое ограничение, то вы можете уникально идентифицировать каждую ее строку .
Чтобы задать целостность всей таблицы, разработчик указывает в таблице столбец или группу столбцов, определяя их как первичный ключ. Уникальное значение первичного ключа должно содержаться в каждой строке таблицы. Неявно это означает, что каждая строка таблицы должна иметь первичный ключ, поскольку отсутствие значение, то есть NULL, не будет отличаться от других значений NULL.
Таблица может иметь только один первичный ключ. ВО многих случаях разработчикам требуется устранить дублирующие значения и из других столбцов. Для этого разработчик может выделить другой ключевой столбец - задать альтернативный или уникальный ключ. Как и в основном ключе, дублирующих значений в альтернативном ключе таблица содержать не может.
Ограничения целостности позволяют легко задать целостность таблицы, и всей базы данных в целом. Так как разработчики могут описывать стандартные правила целостности как часть определения таблицы, использовать такие ограничения целостности несложно. Приведем примеры операторов задающих ограничения целостности, на примере базы данных, состоящей из двух таблиц.
CREATE TABLE customer (id NUMBER(5, 0) PRIMARY KEY, lastname CHAR(50) NOT NULL, firstname CHAR(50) NOT NULL, phone CHAR(20), UNIQUE (lastname, firstname), CHECK (state IN
(customerid NUMBER(5, 0) NOT NULL, orderdate DATE NOT NULL, shipdate DATE status CHAR(1), CHECK (status IN (‘F’, ’B’)), --F—оплачено, В—долг FOREIGN KEY (customerid) REFERENCES customer)
В данном примере ограничения NOT NULL, CHECK позволяют задать в таблице ограничения домена. Для определения первичного ключа и задания ограничений целостности таблицы разработчик должен описать целостность таблицы с помощью PRIMARY KEY. Для таблицы customer описывается также ограничение UNIQUE, которое обеспечивает уникальность имен/фамилий покупателей.
Ссылочная целостность: обеспечение синхронизации связанных таблиц. Ссылочная целостность или целостность отношения - еще одно элементарное правило целостности реляционной модели. Ссылочная целостность определяет соотношения между различными столбцами и таблицами в реляционной базе данных. Такое название она получила, поскольку значения в одном столбце или наборе столбцов ссылаются на значения другого столбца или набора столбцов, либо должны совпадать с ними.
При описании ссылочной целостности встретятся новые термины. Столбец, от которого зависит другая таблица, называется внешним ключем. При этом другая таблица, называется родительским ключем (это должен быть первичный или уникальный ключ). Внешний ключ находится в дочерней или детальной таблице, а родительский ключ - в основной таблице.
Возможность связывать значения в различных таблицах и поддерживать отношения ссылочной целостности - это очень важная характеристика реляционных баз данных. Благодаря возможности связывания таблиц серверы реляционных СУБД могут очень эффективно хранить данные.
В приведенном выше примере с помощью ограничения целостности FOREIGN KEY задается ограничение ссылочной целостности , определяющего для таблицы внешний ключ. С помощью этого мы соединяем таблицу orders с родительской таблицей customer.
Деловые правила: специальные правила целостности данных.
До сих пор это были стандартные правила целостности данных, встроенные в реляционную модель данных. Однако в базе данных каждой организации определяется собственный уникальный набор деловых правил, не менее важных чем стандартный набор правил целостности данных. Например, администратор, отвечающий за вопросы защиты, может запретить изменение таблицы вне обычного рабочего времени либо получать значение столбца, когда пользователь вставляет или обновляет запись. Для задания специальных правил ORACLE7 предлагает использовать хранимые процедуры или триггеры. Для полного представления о задании специальных правил надо обратиться к справочным материалам.
7. 3. Управление доступом к данным в многопользовательской СУБД. Так как к базе данных должны обращаться много пользователей, то СУБД должна обеспечивать множественный доступ к базе данных. К сожалению, однопользовательские СУБД не подходят для коллективной работы. Рассмотрим проблему взаимного влияния на примере картотеки. Вы хотите использовать ту же информацию с которой в данный момент работает кто-то еще. Если вы хотите увидеть результаты работы другого пользователя, то придется подождать. Если же эти результаты на вашу работу не повлияют, вы можете скопировать данные. Возникает неудобство. Картотека иллюстрирует проблемы параллельного доступа, возникающие при попытке нескольких пользователей одновременно работать с базой данных.
В многопользовательских СУБД говорят о проблеме конкуренции —попытках многих пользователей одновременно выполнять операции с одними и теми же данными. Фактически, задача обеспечения параллельного доступа к данным—одна из наиболее важных и наиболее очевидных задач сервера базы данных. Сервер базы данных должен управлять информацией таким образом, чтобы при сохранении целостности данных пользователи ожидали выполнения работы другими пользователями минимальное время. Если сервер базы не может удовлетворить одну из этих целей, то пользователи сразу заметят последствия. Когда многие транзакции конкурируют за одни и те же данные, то пользователи столкнутся с плохой производительностью или получат неточные результаты. Это проблемы, но ORACLE7 решает эти проблемы. Рассмотрим как это он делает.
Предотвращение разрушающих взаимных влияний с помощью блокировок данных. Когда две конкурирующие за одни и те же данные операции вмешиваются в работу друг друга, это может привести к неточным результатам или потере целостности данных. Это называется “ разрушающее взаимное влияние”. Для предотвращения таких ситуаций при одновременном доступе пользователей к данным применяются блокировки. Аналогично тому как “вертушка” в проходной не позволяет проходить через нее одновременно двоим, блокировка данных предотвращает в многопользовательской СУБД разрушающее влияние. Существуют исключающие и разделяемые блокировки.
Заперев ячейку камеры хранения на вокзале, вы получаете на нее исключительное право. Никто не сможет в нее положить, пока вы ее не освободите. Если же вы хотите, чтобы этой ячейкой воспользовался ваш знакомый, то сообщаете шрифт. Аналогично блокирует данные и ORACLE7.
Когда пользователь пытается выполнять операции с данными, с которыми работает кто-то еще, ORACLE7 автоматически их блокирует и предотвращает возможность разрушающего влияния. Если это возможно (то есть не приведет к разрушающему влиянию), всегда использует разделяемую блокировку. Однако, если такая блокировка оставляет возможность разрушающего влияния, устанавливается исключающая блокировка запрашиваемых вашей транзакцией данных. Исключающая блокировка предотвращает возможность блокировать те же данные с помощью блокировки любого типа и за счет устранения параллельного доступа к одним и тем же данным обеспечивает их целостность.
Получение точных данных при высокой степени доступа: запросы, согласованное чтение и поддержка версий.
Предыдущие примеры показывают, как Огасlе7 для одного и того набора данных обрабатывает две различные транзакции обновления. А что происходит в случае запросов, содержащих только операции чтения? Как Огaсlе7 обрабатывает конкурирующие запросы и запросы с операциями обновления, возвращая точные результаты ?
В зтих ситуациях Оraсlе7 использует следующий подход. Во-первых, транзакция не требует блокировки строк для любого типа запросов. Это означает , что две транзакции могут давать одновременно в точности один и тот же запрос без какой-либо конкуренции за один набор строк. Отсутствие блокировок чтения означает также, что такой запрос не может блокировать обновления и наоборот. Как же Огасlе7 возвращает точные результаты, если он не устанавливает блокировки для запросов? Можно было бы полагать, что без блокировки строки для запросов конкурирующее с запросом обновление может дать для запроса неточный набор результатов.
Огасlе7 может обойтись без блокировок строк для запросов при сохранении точности результатов благодаря механизму выделения версий. Для каждого запроса ORACLE7 возвращает затребованную версию данных на текущий момент времени. На момент получения запросы Огасlе7 обеспечивает согласованность каждой строки в результате запроса.
Сегменты отката.
Используя хранимые в сегментах отката данные, Огасlе7 может создавать для запроса согласованные по чтению копии (наборы результатов) данных. Сегмент отката (или сегмент отмены транзакций)—это область памяти на диске, которую Оraclе7 использует для временного хранения старых значений данных, обновляемых транзакцией удаления или обновления строк. Если пользователь отменяет транзакцию, то Оraclе7 считывает присвоенный транзакции сегмент отката и возвращает измененные ею строки в исходное состояние. Кроме того, Оrасlе7 использует сегмент отката в механизме выделения версий. Если запросу требуются данные, которые в процессе его выполнения изменяются, то Оrасlе7 с помощью данных сегмента отката генерирует согласованный по чтению копию данных (заданный момент времени). Все это происходит автоматически.
При обеспечении параллельного доступа множества пользователей и приложений к одной базе данных при адекватной производительности системы и полной точности разработчики могут не беспокоиться о сложных механизмах блокировки и ведения версий. Однако, если они хотят выжать из производительности приложения все возможное, то Оrасlе7 предусматривает средства управления, переопределяющие применяемые по умолчанию механизмы блокировки.
Обеспечение защиты данных.
Неужели кто угодно может войти в базу данных Оrасlе7 и начать использовать данные, читать табличную информацию и модифицировать ее? Конечно, нет! Если бы это было так, то пользователи могли бы видеть данные, которые для них не предназначаются (такие как заработная плата их начальника), а злоумышленники могли бы легко стереть или изменить данные по своему усмотрению (например, повысить зарплату самим себе). Одной из обязанностей сервера базы данных является обеспечение защиты всей информации СУБД. Независимо от того, хотите или нет защитить свои данные от глаз неуполномоченных пользователей или злоумышленников, защита является важной функцией базы данных. Для обеспечения защиты Оrасlе7 использует систему выборочного управления доступом зто означает, что администратор присваивает пропуска для всех зарегистрированных в базе данных пользователей и дает им полномочия на выполнение в базе данных конкретных операций с конкретными данными. Различные методы управления защитой Оraclе7 описываются в следующих разделах.
Предоставление пользователям доступа к базе данных.
Доступ к базе данных Огасlе7 очень напоминает доступ к телефонной банковской системе. Во-первых, вам нужно получить общий доступ к базе данных. Чтобы предоставить кому-либо доступ к базе данных Оraclе7, администратор должен зарегистрировать его и создать в базе данных нового пользователя (определив его имя). Для обеспечения защиты доступа пароль должен соответствовать имени этого нового пользователя. Для подключения к базе данных пользователь должен ввести и имя, и пароль. Нового пользователя создает, например, следующий оператор SQL:
CREATE USER safеdorow IDENTIFID BY p1e
Как показывает этот пример, администраторам следует выбирать осмысленные имена пользователей (например, объединив имя и фамилию). Однако пользователи должны выбирать сложные и не несущие никакого смысла пароли. Это затруднит их определение злоумышленниками.
После получения пользователем доступа к базе данных Оraclе7 операции его в этой СУБД ограничивают другие средства контроля доступа.
Расширение и ограничение полномочий.
Как и в случае круглосуточной телефонной банковской системы, вы можете выполнять лишь ограниченные операции. Например, вы можете проверить свой чековый и накопительный счет, но не можете сделать это для счетов других пользователей. То есть вы имеете полномочия только на просмотр информации, относящейся к вашим счетам.
Система защиты Оraclе7 очень напоминает защиту телефонной банковской системы. Администратор может управлять всеми операциями с базой данных и доступом к данным, в том числе тем, какие пользователи могут создавать таблицы и представления, какие—создавать и модифицировать табличные области, а какие —считывать и модифицировать различные таблицы и представления базы данных. Это делается путем предоставления и отмены различных полномочий или прав доступа. Приведем примеры применяемых для этого команд SQL GRANT и REVOKE:
GRANT CREATE SESSION, CREATE TABLE TO safd REVOKE CREATE TABLE FROM allin
Оператор GRANT дает пользователю SAFD полномочия на подключение к базе данных (то есть на инициализацию сеанса с базой данных) и создание таблиц. Оператор REVOKE отменяет полномочия пользователя ALLIN на создание таблиц. Огас1е7 имеет два широких класса полномочий, о которых рассказывается в следующих двух разделах: полномочия на объекты и системные полномочия.
Системные полномочия: управление расширенными системными операциями. Системные полномочия —это расширенные и мощные полномочия, которые дают пользователю право на выполнение операции в масштабе базы данных... Приведем пример: Пользователь с системными полномочиями ALTER DATABASE может изменять физическую структуру базы данных, добавляя к ней новые файлы.
Пользователь с системными полномочиями DROP TABLESPACE может удалять любую табличную область (за исключением табличной области SYSTEM). Пользователь с системными полномочиями SELECT ANY TABLE может опрашивать любую таблицу базы данных.