Компьютерная база данных где информация хранится в виде карт различного содержания
База геоданных – это "контейнер", использующийся для хранения совокупности наборов данных. Существует три типа баз геоданных:
- Файловые базы геоданных – хранятся как папки в файловой системе. Каждый набор данных хранится в виде файла, который может увеличиваться вплоть до 1 ТБ по размеру. Этот тип БГД рекомендуется использовать вместо персональных баз геоданных.
- Персональные базы геоданных – все наборы данных хранятся в виде файла базы данных Microsoft Access, который имеет ограничение по размеру в 2 ГБ.
- Многопользовательские базы геоданных – также известные как корпоративные, не имеют ограничений по размеру и количеству пользователей. Хранятся в реляционной базе данных с использованием Oracle, Microsoft SQL Server, IBM DB2, IBM Informix или PostgreSQL.
Сравнение трех типов баз геоданных
Совокупность различных типов наборов данных ГИС хранится в виде таблиц в реляционной базе данных. Это рекомендуемый собственный формат данных хранения и управления в реляционной базе данных в ArcGIS.
Совокупность различных типов наборов данных ГИС, хранится в виде системной папки с файлами. Это рекомендуемый собственный формат данных хранения и управления в системных папках файлов в ArcGIS.
Исходный формат данных хранения и управления в файлах базы данных в Microsoft Access в ArcGIS (он ограничен по размеру и привязан к операционной системе Windows).
Многопользовательский: Множество пользователей на чтение и запись
Один пользователь или небольшая рабочая группа: Один набор классов объектов, отдельный класс пространственных объектов или таблицу одновременно может читать сколько угодно, а редактировать – только один пользователь. Одновременное совместное использование любого специфического файла, в конечном счете, приводит к нестабильной работе при большом количестве пользователей в режиме чтения данных.
Один пользователь и небольшие рабочие группы с небольшими наборами данных: несколько читателей и один редактор. Одновременное совместное использование данных, в конечном счете, приводит к нестабильной работе при большом количестве пользователей в режиме чтения данных.
Формат хранения (Storage format)
- Oracle
- Microsoft SQL Server
- IBM DB2
- IBM Informix
- PostgreSQL
Каждый набор данных – отдельный файл на диске. Файловая база геоданных – папка файлов, содержащая файлы набора данных.
Все содержимое каждой персональной базы геоданных хранится в единственном файле Microsoft Access (.mdb).
Ограничение по размеру
Равно ограничению СУБД
Одна таблица на каждый набор данных. В каждой файловой базе геоданных может храниться много наборов данных. Ограничение 1 TB можно увеличить до 256 TB для очень больших наборов данных изображений. Каждый класс пространственных данных может постепенно увеличиваться вплоть до сотен миллионов векторных объектов на набор данных.
Два Гб на базу данных Access. Граница лимита, после которого эффективность использования падает, обычно между 250 и 500 МБ на файл базы данных Access.
Полностью поддерживается во всех РСУБД; включает репликацию между базами данных, обновления.
Поддерживается только как база геоданных для клиентов, которые отправляют обновления с помощью откреплений и прикреплений и для клиентов, для которых обновления могут отправляться как односторонние реплики.
Поддерживается только как база геоданных для клиентов, которые отправляют обновления с помощью откреплений и прикреплений и для клиентов, для которых обновления могут отправляться как односторонние реплики.
Windows, Unix, Linux и прямые подключения к СУБД, которые потенциально выполнимы на любой платформе в локальной сети пользователя
Безопасность и права доступа
Безопасностью файловой системы.
Безопасностью файловой системы Windows.
Инструменты администрирования базы данных
Полный функционал СУБД – резервирование, восстановление, репликации данных, поддержка SQL, безопасность и т.д.
Управление файловой системой.
Управление файловой системой Windows.
- ArcGIS for Desktop Standard и Дополнительно
- ArcGIS Engine
- ArcGIS for Server Workgroup
Позволяет вам при желании хранить данные в сжатом формате, доступном только для чтения для сокращения потребностей в объеме хранения.
Часто используется в качестве менеджера таблицы атрибутов (через Microsoft Access). Пользователям нравится строковое управление для текстовых атрибутов.
Виды баз данных
- Фактографическая – содержит краткую информацию об объектах некоторой системы в строго фиксированном формате;
- Документальная – содержит документы самого разного типа: текстовые, графические, звуковые, мультимедийные;
- Распределённая – база данных, разные части которой хранятся на различных компьютерах, объединённых в сеть;
- Централизованная – база данных, хранящихся на одном компьютере;
- Реляционная – база данных с табличной организацией данных;
- Неструктурированная (NoSQL) - база данных, в которой делается попытка решить проблемы масштабируемости и доступности за счёт атомарности (англ. atomicity) и согласованности данных, но не имеющих четкой (реляционной) структуры.
Одно из основных свойств БД – независимость данных от программы, использующих эти данные. Работа с базой данных требует решения различных задач, основные из них следующие:
- создание базы;
- запись данных в базу;
- корректировка данных;
- выборка данных из базы по запросам пользователя.
Задачи этого списка называются стандартными .
Следующее понятие, связанное с базой данных: программа для работы с базой данных – это программа, которая обеспечивает решение требуемого комплекса задач. Любая подобная программа должна уметь решать все задачи стандартного набора.
База данных в разных системах имеет различную структуру.
В ПВЭМ обычно используются реляционные БД – в таких базах файл является по структуре таблицей. В ней столбцы называются полями, строки – записями.
В БД содержатся банные некоторого множества объктов. Каждая запись содержит данные одного объекта. Каждая такая БД определяется именем файла, списком полей, шириной полей. Например, БД Школа (Ученик, Класс, Адрес).
Примером БД может служить расписание движения поездов или автобусов. Здесь каждая строчка – запись отражает данные строго одного объекта. База включает поля: номер рейса, маршрута следования, время отправления и т.д.
Классическим примером БД является и телефонный справочник. Запрос к базе данных – это предписание, указывающее, какие данные пользователь желает получить из базы.
Некоторые запросы могут представлять собой серьёзную задачу, для решения которой потребляется составлять сложную программу. Например, запрос к базе – автобусному расписанию: определить разницу в среднем интервале отправления автобусов из Ростова в Таганрог и из Ростова в Шахты.
Объекты для работы с базами данных
Для создания приложения, позволяющего просматривать и редактировать базы данных, нам потребуется три звена:
- набор данных
- источник данных
- визуальные элементы управления
В нашем случае эта триада реализуется в виде:
Table подключается непосредственно к таблице в базе данных. Для этого нужно установить псевдоним базы в свойстве DataBaseName и имя таблицы в свойстве TableName, а затем активизировать связь: свойство Active = true .
Однако, поскольку Table является невизуальным компонентом, хотя связь с базой и установлена, пользователь не в состоянии увидеть какие – либо данные. Поэтому необходимо добавить визуальные компоненты, отображающие эти данные. В нашем случае это сетка DBGrid. Сетка сама по себе «не знает», какие данные ей нужно отображать, её нужно подключить к Table, что и делается через компонент – посредник DataSource .
А зачем нужен компонент – посредник? Почему бы сразу не подключаться к Table?
Допустим, несколько визуальных компонентов – таблица, поля ввода и т.п. подключены к таблице. А нам нужно быстро переключить их все на другую подобную таблицу. С DataSource это сделать несложно - достаточно просто поменять свойство DataSe t, а вот без DataSource пришлось бы менять указатели у каждого компонента.
Приложения баз данных – нить, связывающая БД и пользователя:
БД => набор данных –=> источник данных => визуальные компоненты => пользователь
- Table(таблица, навигационный доступ)
- Query(запрос, реляционный доступ)
- Сетки DBGrid, DBCtrlGrid
- Навигатор DBNavigator
- Всяческие аналоги Lable, Editи т.д.
- Компоненты подстановки
Файловые и персональные базы геоданных
Файловые и персональные базы геоданных, которые свободно доступны всем пользователям ArcGIS for Desktop Basic , Стандартный и Дополнительно , проектируются для поддержки полной информационной модели базы геоданных, включающей топологии, каталоги растров, сетевые наборы данных, наборы данных terrain, локаторы адресов и т.д. Файловые и персональные базы геоданных разрабатываются для редактирования одним пользователем и не поддерживают версионность. В файловой базе геоданных возможна работа нескольких редактирующих пользователей в одно и то же время, с учетом того ограничения, что они осуществляют редактирование в различных наборах классов пространственных объектов, отдельных классах пространственных объектов или таблицах.
Файловая база геоданных – это новая разновидность баз геоданных, появившаяся лишь в версии 9.2. Ее назначение:
- Обеспечение широко доступного, простого, и масштабируемого решения для всех пользователей.
- Обеспечение переносимости базы геоданных, которая работает во всех операционных системах.
- Постепенное наращивание для управления очень большими наборами данных.
- Обеспечение отличной скорости обработки работы и масштабируемости, например, для поддержки индивидуальных наборов данных, содержащих свыше 300 миллионов объектов и наборов данных, которые могут превышать размер в 500 ГБ за файл с очень высоким качеством функционирования.
- Использование эффективной структуры данных, оптимизированной для работы и хранения. Файловые базы геоданных используют около одной трети хранимой геометрии объекта, по сравнению с шейп-файлами и персональными базами геоданных. Файловые базы геоданных также позволяют пользователям сжимать векторные данные в доступный только для чтения формат для сокращения дальнейших потребностей в памяти.
- Превосходят шейп-файлы из-за операций с привлечением атрибутов и по ограничению размера данных.
Персональные базы геоданных использовались в ArcGIS начиная с версии 8.0 и использовали файловую структуру данных Microsoft Access (файл.mdb). Они поддерживают базы геоданных, которые имеют ограничение по размеру 2 Гб. Однако, “эффективный” размер базы данных меньше, где-то между 250 и 500 МБ, при превышении которого снижается скорость работы базы данных. Персональные базы геоданных поддерживаются только операционной системой Microsoft Windows. Пользователям нравятся производить операции над таблицами с применением Microsoft Access к персональным базам геоданных. Многим пользователям действительно удобно пользоваться возможностями управления текстом в Microsoft Access для работы с атрибутивными значениями.
ArcGIS сохранит поддержку персональных баз геоданных для многочисленных целей. Однако в большинстве случаев Esri рекомендует использовать файловые базы геоданных по причине их поддержки больших объемов данных, более быстрой работы и кросс-платформенного использования. Они идеальны для работы наборами данных на базе файлов для ГИС проектов, для персонального использования, и для использования в маленьких рабочих группах. У них быстрая скорость работы и хорошая масштабируемость для содержания больших объемов данных без требования использовать СУБД. К тому, же они переносятся между разными операционными системами.
Стандартно, пользователи будут использовать разнородные файловые и персональные базы геоданных для своих совокупностей данных и получать одновременный доступ к ним для работы их ГИС.
Основные понятия баз данных
Что такое данные?
Данные могут представлять собой любую информацию, которая сохраняется с целью обращения к ней в будущем. Эта информация может включать числа, текст, аудио- и видеоматериалы, местонахождение, даты и т. д. Она может быть записана на бумаге либо сохранена на жестком диске компьютера или даже в облаке.
Что такое база данных?
Множество записей данных, собранных вместе, образуют базу данных. Базы данных обычно создаются для того, чтобы пользователи могли обращаться к большому количеству данных и массово выполнять с ними определенные операции.База данных может хранить что угодно: представьте себе, например, блокнот вашей бабушки со всеми ее вкусными рецептами, учетную книгу ваших родителей, куда они записывают все доходы и расходы, или свою страницу в Facebook со списком всех ваших друзей. Из этих примеров видно, что все данные в базе данных относятся более-менее к одному типу.
Зачем нужна база данных?
Создание базы данных упрощает разным пользователям доступ к наборам информации. Приведенные выше примеры показывают, что в базе данных мы можем хранить записи с информацией похожего типа, но это правда лишь отчасти, поскольку с появлением баз данных NoSQL это определение меняется (подробнее читайте далее в статье).Так как размер веб-сайтов становится все больше и степень их интерактивности все выше, данные о пользователях, клиентах, заказах и т. д. становятся важными активами компаний, которые испытывают потребность в надежной и масштабируемой базе данных и инженерах, способных в ней разобраться.
Система управления базами данных (СУБД)
Итак, мы уже знаем, что данные и базы данных важны, но как осуществляется работа с базами данных в компьютерных системах? Вот тут на сцену и выходит СУБД. СУБД — это программное обеспечение, предоставляющее нам способ взаимодействия с базами данных на компьютере для выполнения различных операций, таких как создание, редактирование, вставка данных и т. д. Для этого СУБД предоставляет нам соответствующие API. Редко какие программы не используют СУБД для работы с данными, хранящимися на диске.Помимо операций с данными СУБД также берет на себя резервное копирование, проверку допуска, проверку состояния базы данных и т. д. Поэтому рекомендуется всегда использовать СУБД при работе с базами данных.
Пространственные данные и база данных
Особое внимание мы уделим обработке пространственных данных, поэтому я хотел бы обсудить здесь этот тип данных. Пространственные данные несколько отличаются от остальных. Координаты необходимо сохранять в особом формате, который обычно указан в документации на веб-сайте о базе данных. Этот формат позволяет базе считывать и правильно воспринимать координаты. Если обычно для поиска данных мы используем запросы типа Получить все результаты, где возраст > 15, то пространственный запрос выглядит как-то так: Получить все результаты в радиусе 10 км от определенной точки. Поэтому пространственные данные необходимо хранить в надлежащем формате.
Основные понятия о базах данных и СУБД
Информационная система (ИС) – это система, построенная на базе компьютерной техники, предназначенная для хранения, поиска, обработки и передачи значительных объемов информации, имеющая определенную практическую сферу применения.
База данных – это ИС, которая хранится в электронном виде.
База данных (БД) – организованная совокупность данных, предназначенная для длительного хранения во внешней памяти ЭВМ, постоянного обновления и использования.
БД служат для хранения и поиска большого объёма информации. Примеры баз данных: записная книжка, словари, справочники, энциклопедии и т.д.
Классификация баз данных:
1. По характеру хранимой информации :
- Фактографические – содержат краткие сведения об описываемых объектах, представленных в строго определённом формате (картотеки, н-р: БД книжного фонда библиотеки, БД кадрового состава учреждения),
- Документальные – содержат документы (информацию) самого разного типа: текстового, графического, звукового, мультимедийного (архивы, н-р: справочники, словари, БД законодательных актов в области уголовного права и др.)
2. По способу хранения данных :
- Централизованные (хранятся на одном компьютере),
- Распределенные (используются в локальных и глобальных компьютерных сетях).
3. По структуре организации данных :
Термин «реляционный» (от лат. relatio – отношение) указывает на то, что такая модель хранения данных построена на взаимоотношении составляющих её частей. Реляционная база данных, по сути, представляет собой двумерную таблицу. Каждая строка такой таблицы называется записью. Столбцы таблицы называются полями: каждое поле характеризуется своим именем и типом данных. Поле БД – это столбец таблицы, содержащий значения определенного свойства.
Свойства реляционной модели данных:
- каждый элемент таблицы – один элемент данных;
- все поля таблицы являются однородными, т.е. имеют один тип;
- одинаковые записи в таблице отсутствуют;
- порядок записей в таблице может быть произвольным и может характеризоваться количеством полей, типом данных.
Иерархической называется БД, в которой информация упорядочена следующим образом: один элемент считается главным, остальные – подчинёнными. В иерархической базе данных записи упорядочиваются в определенную последовательность, как ступеньки лестницы, и поиск данных может осуществляться последовательным «спуском» со ступени на ступень. Данная модель характеризуется такими параметрами, как уровни, узлы, связи. Принцип работы модели таков, что несколько узлов более низкого уровня соединяются при помощи связи с одним узлом более высокого уровня.
Узел – информационная модель элемента, находящегося на данном уровне иерархии.
Свойства иерархической модели данных:
- несколько узлов низшего уровня связано только с одним узлом высшего уровня;
- иерархическое дерево имеет только одну вершину (корень), не подчинено никакой другой вершине;
- каждый узел имеет своё имя (идентификатор);
- существует только один путь от корневой записи к более частной записи данных.
Иерархической базой данных является Каталог папок Windows, с которым можно работать, запустив Проводник. Верхний уровень занимает папка Рабочий стол. На втором уровне находятся папки Мой компьютер, Мои документы, Сетевое окружение и Корзина, которые представляют собой потомков папки Рабочий стол, будучи между собой близнецами. В свою очередь, папка Мой компьютер – предок по отношению к папкам третьего уровня, папкам дисков (Диск 3,5(А:), С:, D:, E:, F:) и системным папкам (Принтеры, Панель управления и др.).
Сетевой называется БД, в которой к вертикальным иерархическим связям добавляются горизонтальные связи. Любой объект может быть главным и подчинённым.
Сетевой базой данных фактически является Всемирная паутина глобальной компьютерной сети Интернет. Гиперссылки связывают между собой сотни миллионов документов в единую распределенную сетевую базу данных.
Программное обеспечение, предназначенное для работы с базами данных, называется система управления базами данных (СУБД). СУБД используются для упорядоченного хранения и обработки больших объемов информации.
Основные действия, которые пользователь может выполнять с помощью СУБД:
- создание структуры БД;
- заполнение БД информацией;
- изменение (редактирование) структуры и содержания БД;
- поиск информации в БД;
- проверка целостности БД.
Современные СУБД дают возможность включать в них не только текстовую и графическую информацию, но и звуковые фрагменты и даже видеоклипы.
Простота использования СУБД позволяет создавать новые базы данных, не прибегая к программированию, а пользуясь только встроенными функциями. СУБД обеспечивают правильность, полноту и непротиворечивость данных, а также удобный доступ к ним.
Популярные СУБД - FoxPro, Access for Windows, Paradox.
Таким образом, необходимо различать собственно базы данных (БД) – упорядоченные наборы данных, и системы управления базами данных (СУБД) – программы, управляющие хранением и обработкой данных. Например, приложение Access, входящее в офисный пакет программ Microsoft Office, является СУБД, позволяющей пользователю создавать и обрабатывать табличные базы данных.
Принципы построения систем управления баз данных следуют из требований, которым должна удовлетворять организация баз данных:
- Производительность и готовность. Запросы от пользователя базой данных удовлетворяются с такой скоростью, которая требуется для использования данных. Пользователь быстро получает данные всякий раз, когда они ему необходимы.
- Минимальные затраты. Низкая стоимость хранения и использования данных, минимизация затрат на внесение изменений.
- Простота и легкость использования. Пользователи могут легко узнать и понять, какие данные имеются в их распоряжении. Доступ к данным должен быть простым, исключающим возможные ошибки со стороны пользователя.
- Простота внесения изменений. База данных может увеличиваться и изменяться без нарушения имеющихся способов использования данных.
- Возможность поиска. Пользователь базы данных может обращаться с самыми различными запросами по поводу хранимых в ней данных. Для реализации этого служит так называемый язык запросов.
- Целостность. Современные базы данных могут содержать данные, используемые многими пользователями. Очень важно, чтобы в процессе работы элементы данных и связи между ними не нарушались. Кроме того, аппаратные ошибки и различного рода случайные сбои не должны приводить к необратимым потерям данных. Значит, система управления данными должна содержать механизм восстановления данных.
- Безопасность и секретность. Под безопасностью данных понимают защиту данных от случайного или преднамеренного доступа к ним лиц, не имеющих на это права, от неавторизированной модификации (изменения) данных или их разрушения. Секретность определяется как право отдельных лиц или организаций решать, когда, как какое количество информации может быть передано другим лицам или организациям.
Далее на примере одной из самых распространенных систем управления базами данных – Microsoft Access входит в состав популярного пакета Microsoft Office – мы познакомимся с основными типами данных, способами создания баз данных и с приемами работы с базами данных.
Многопользовательские базы геоданных
Если вам необходима большая многопользовательская база геоданных с возможностью редактирования и использования одновременно многими пользователями, многопользовательская база – это хорошее решение. Она добавляет возможность управлять распределенной, многопользовательской базой геоданных, а также рядом важных, основанных на версиях, рабочих процессов ГИС. Способность усилить корпоративные реляционные базы данных вашей организации – ключевое преимущество многопользовательской базы геоданных.
Многопользовательские базы геоданных работают с разнообразными моделями хранения СУБД (IBM DB2, Informix, Oracle, SQL Server и PostgreSQL). Многопользовательские базы геоданных используются, прежде всего, в рабочих группах, отделах, предприятиях, а также находят индивидуальное применение. Они пользуются всеми преимуществами поддерживаемых архитектур их СУБД:
- Очень большие, непрерывные базы данных ГИС
- Много пользователей одновременно
- Длинные транзакции и версионные рабочие процессы
- Реляционные базы данных поддерживают управление данными ГИС (обеспечение выгоды от использования реляционной базы данных в контексте масштабируемости, надежности, безопасности, резервирования, целостности, и т.п.)
- Типы пространственного SQL, в случае если СУБД поддерживает эту возможность (т.е. Oracle, SQL Server, PostgreSQL, Informix и DB2).
- Высокая скорость обработки может распространяться на очень большое количество пользователей.
Посредством реализации множества больших баз геоданных, было обнаружено, что СУБД эффективны в перемещении по таблицам типа больших двоичных объектов, требуемых данными ГИС. Кроме того, размеры базы данных ГИС и число поддерживаемых пользователей могут быть намного больше, чем у файловых баз ГИС.
Для информации об архитектуре многопользовательских баз геоданных и способах усиления многопользовательскими базами геоданных технологии реляционных баз данных, см. раздел Архитектура базы геоданных.
Работа с РСУБД
Основное внимание мы уделим РСУБД, так как именно эти системы в большинстве случаев мы будем использовать для хранения пространственных данных и работы с ними. В качестве примера мы будем использовать PostgreSQL, поскольку это самая перспективная реляционная база данных с открытым исходным кодом, а ее расширение PostGIS позволяет работать и с пространственными данными. Вы можете установить PostgreSQL, следуя инструкциям из документации. Помимо PostgreSQL рекомендуется также загрузить и установить pgAdmin. Платформа pgAdmin предоставляет веб-интерфейс для взаимодействия с базой данных. Также для этого можно загрузить и установить какое-либо другое совместимое ПО или использовать командную строку.
pgAdmin 4 на Mac
Пользователи могут изменять множество настроек для баз данных, включая порт, имя пользователя, пароль, доступность извне, выделение памяти и т. д., но это уже другая тема. В этой статье мы сосредоточимся на работе с данными, находящимися в базе.
Создание базы данных. Нам нужно создать базу данных (в идеале должно быть по одной базе данных для каждого проекта).
Создание новой базы данных для проекта
В инструменте запросов (Query Tool) база данных создается следующим образом:
Создание таблиц. Создание таблицы требует некоторых дополнительных соображений, поскольку именно здесь нам нужно определить все столбцы и типы данных в них. Все типы данных, которые можно использовать в PostgreSQL, вы найдете здесь.
pgAdmin позволяет нам выбрать в таблице различные ключи и ограничения, например Not Null (запрет на отсутствующие значения), Primary Key (первичный ключ) и т. д. Обсудим это подробнее чуть позже.
Создание таблицы пользователей
Заметьте, что мы не добавляли столбец первичного идентификатора в список столбцов, поскольку PostgreSQL делает это автоматически. Мы можем создать сколько угодно таблиц в одной базе данных. После того как таблицы созданы, мы можем установить связи между разными таблицами, используя определенные столбцы (обычно столбцы с идентификаторами).В инструменте запросов таблица создается следующим образом:
CRUD-операции с данными в таблицах
CRUD-операции (создание, чтение, обновление и удаление — Create, Retrieve, Update, Delete) — это своего рода hello world в мире СУБД. Поскольку эти операции используются наиболее часто, команды для их выполнения одинаковы во всех РСУБД. Мы будем писать и выполнять запросы в инструменте запросов в pgAdmin, который вызывается следующим образом:
Инструмент запросов (Query Tool) в pgAdmin
1. Создание новой записи
Для добавления новой записи в таблицу используйте следующую команду:
INSERT, INTO, VALUE являются ключевыми словами в SQL, поэтому их нельзя использовать в качестве переменных, значений и т. д. Чтобы добавить новую запись в нашу таблицу пользователей, мы напишем в инструменте запросов следующий запрос:
Обратите внимание: строки всегда следует заключать в ' ' (одинарные кавычки), а не в " " (двойные кавычки).
2. Получение записей (всех или нескольких)
Данные, хранящиеся в базе данных, можно извлечь и отобразить на экране. При этом мы можем получить все данные или ограниченное количество записей. Код для получения данных:
Этот код извлекает весь набор данных. Если вы хотите получить только 20 записей, напишите:
Если вы хотите получить данные из всех столбцов, то вместо перечисления названий всех столбцов можно написать:
Если вы хотите получить результат с определенным условием, используйте ключевое слово WHERE, как показано ниже:
Вы можете создавать даже сложные запросы, о которых мы поговорим позже.В нашем примере мы можем получить нужные нам данные:
3. Обновление записей (всех или нескольких)РСУБД позволяет нам обновить все или только некоторые записи данных, указав новые значения для столбцов.
В нашем случае мы обновим таблицы с помощью следующих запросов:
4. Удаление записей (всех или нескольких)Удалять записи в SQL легко. Пользователь может удалить либо все строки, либо только определенные строки, добавив условие WHERE.
Удаление записей из таблицы
CRUD-операции используются очень часто, поскольку выполняют основные функции в базе данных.
Типы баз данных
Базы данных обычно делятся на два типа: реляционные и нереляционные. Оба типа имеют свои плюсы и минусы. Было бы глупо утверждать, что один лучше другого, поскольку это будет зависеть от варианта использования. Конкретно для пространственных данных я в 99 % случаев использую реляционные базы данных, и вы скоро поймете почему.
Реляционные базы данных и РСУБД
Допустим, ваш начальник просит вас создать электронную таблицу с важной информацией, включающей имена, местонахождения, адреса электронной почты, номера телефонов и должности всех сотрудников. Вы сразу же откроете таблицу Excel или Google Spreadsheets, напишете все эти названия столбцов и начнете собирать информацию.
Образец таблицы с информацией
Закономерность здесь заключается в том, что каждая запись содержит ограниченный и фиксированный набор полей, которые нам нужно заполнить. Таким образом мы создали таблицу со всей информацией, где у каждой записи имеется уникальный первичный ключ, который определяет ее однозначным образом и делает ее доступной для всех операций. В реляционных базах данных любая таблица содержит фиксированное количество столбцов, и можно устанавливать связи между разными столбцами.
Связь между двумя столбцами
Взаимосвязи в реляционных базах данных мы подробно рассмотрим позже.
По сравнению с базами данных NoSQL, недостатком реляционных баз данных является относительно медленное получение результатов, когда количество данных стремительно увеличивается (по мнению автора статьи — прим. пер.). Еще один недостаток заключается в том, что при добавлении каждой записи нужно следовать определенным правилам (типы столбцов, количество столбцов и т. д.), — мы не можем просто добавить отдельный столбец только для одной записи.В реляционных базах данных используется SQL (Structured Query Language — язык структурированных запросов), с помощью которого пользователи могут взаимодействовать с данными, хранящимися в таблицах. SQL стал одним из наиболее широко используемых языков для этой цели. Мы подробнее поговорим об SQL чуть позже.Вот примеры некоторых известных и часто используемых реляционных баз данных: PostgreSQL, MySQL, MS SQL и т. д. У каждой крупной компании, занимающейся реляционными базами данных, есть собственная версия SQL. В большинстве аспектов они выглядят одинаково, но иногда требуется немного изменить какой-нибудь запрос, чтобы получить те же результаты в другой базе данных (например, при переходе из PostgreSQL в MySQL).
Нереляционные базы данных (NoSQL)
Все базы данных, не являющиеся реляционными, относятся к категории нереляционных баз данных. Обычно данные хранятся в нетабличном формате, например:
Формат JSON, XML
Основное преимущество баз данных NoSQL состоит в том, что все строки независимы и могут иметь разные столбцы. Как показано на изображении ниже, оба пользователя относятся к одной и той же таблице Core_user, но их записи содержат разную информацию.
База данных NoSQL реального времени в Google Firebase
База данных NoSQL реального времени в Google Firebase
При использовании баз данных NoSQL пользователям иногда приходится прописывать собственную логику, чтобы добавить уникальный ключ к каждой записи и тем самым обеспечить доступ к записям. В большинстве стандартных баз данных NoSQL, таких как Firebase и MongoDB, для хранения данных используется формат JSON. Благодаря этому очень легко и удобно выполнять операции с данными из веб-приложений, используя JavaScript, Python, Ruby и т. д.
Рекомендации по выбору типа базы для хранения пространственных данных
Очевидно, что нам хотелось бы сохранить точку, линию, многоугольник, растры и т. д. так, чтобы это имело смысл, вместо того чтобы сохранять просто координаты. Нам нужна СУБД, которая позволяет не только сохранять данные, но и запрашивать их пространственными методами (буфер, пересечение, вычисление расстояния и т. д.). На сегодняшний день для этого лучше всего подходят реляционные базы данных, поскольку в SQL есть функции, помогающие выполнять подобные операции. Использование таких дополнительных средств, как PostGIS для PostgreSQL, открывает разработчикам возможности для написания сложных пространственных запросов. С другой стороны, NoSQL тоже работает в области геопространственных технологий: например, MongoDB предоставляет кое-какие функции для выполнения геопространственных операций. Однако реляционные базы данных все же лидируют на рынке с большим отрывом.
Основные понятия и элементы баз данных
Базы данных понадобились тогда, когда возникла потребность хранить большие объёмы однотипной информации, уметь её оперативно использовать. Базами данных (в широком понимании этого слова) пользовались на протяжении всей истории жрецы, чиновники, купцы, ростовщики, алхимики.
Основное требование к базам данных – удобство доступа к данным, возможность оперативно получить исчерпывающую информацию по любому интересующему вопросу (важно не только то, что информация содержится в базе, важно то, насколько она хорошо структирована и целостна).
Лишь только появились и распространились компьютеры, почти сразу на них возложили тяжёлый и кропотливый труд по обработке и структурированию данных, появились базы данных (БД) в их нынешнем понимании.
Согласно современным требованиям к базам данных, информация, содержащаяся в них, должна быть:
- непротиворечивой (не должно быть данных, противоречащих друг другу);
- неизбыточной (следует избегать ненужного дублирования информации в базе, избыточность может привести к противоречивости – например, если какие – то данные изменяют, а их копию в другой части базы забыли изменить);
- целостной (все данные должны быть связаны, не должно быть ссылок на несуществующие в базе данные)
Реляционная модель баз данных была предложена Эдгаром Коддом в конце 70-х годов. В рамках этой модели база данных представляет собой набор таблиц, связанных друг с другом отношениями. При достаточной простоте (а значит, и удобстве реализации на компьютере) данная модель обладает гибкостью, позволяющей описывать сложно структурированные данные. Кроме того, для этой модели достаточно глубоко проработано теоретическое обоснование, что также даёт возможность эффективнее использовать компьютер при создании базы данных и работе с ней. В плане правил связи в реляционной модели реализуется отношение «один–ко–многим» связи между таблицами. Это значит, что одной записи в главной таблице соответствует несколько записей в подчинённой таблице (в том числе может не соответствовать ни одной записи). Другие типы связей: «один-к-одному», «много-к-одному» и «много-ко-многим» - можно свести к данному типу «один-ко-многим». Реляционные базы данных состоят из связанных таблиц.
Таблица представляет собой двумерный массив, в котором хранятся данные. Столбцы таблицы (в рамках принятых обозначений БД) называются полями, строки – записями. Количество полей таблицы фиксировано, количество записей – нет. Фактически таблица – нефиксированный массив записей с одинаковой структурой полей в каждой записи. Добавить в таблицу новую запись не составляет труда, а то время как добавление нового поля влечёт за собой рестрктуризацию всей таблицы и может вызвать определённые трудности. В качестве значений полей в записях могут храниться числа, строки, картинки и т.д. Таблицы баз данных хранятся на жёстком диске (на локальном компьютере или на сервере баз данных – в зависимости от типа БД). Одной таблице соответствуют обычно несколько файлов – один основной и несколько вспомогательных. Тонкости организации таблиц зависят от используемого формата (dBase, Paradox, InterBase, Microsoft Access и т.д.)
Ключ – поле или комбинация полей таблицы, значения в которых однозначно определяют запись. Ключ потому так и называется, что, имея значения ключевых полей, можно однозначно получить доступ к нужной записи. Таким образом, ключи чрезвычайно полезны для связи таблиц. Записывая значения ключа в отведённые поля подчинённой таблицы и тем самым, задавая ссылку, обеспечиваем связь двух записей – записи в главной таблице и записи в подчинённой таблице. В одной записи подчинённой таблицы может находиться и несколько ссылок на записи главной таблицы. Например, в школьном журнале может быть таблица – список дежурств, где в каждой записи содержатся фамилии и имена (ключ их двух полей) нескольких дежурных. Так осуществляется связь различных записей главной таблицы и реализуется достаточно сложная структура данных. В школьной практике в качестве ключевых полей используются имена и фамилии, но в БД лучше отводить специальные ключевые поля – индивидуальные номера (коды) записей. Это гарантированно уберегает от возможных проблем с однофамильцами. В школе же, где не требуется такая компьютерная чёткость, появление в одном классе двух учеников с одинаковыми именами и фамилиями – очень редкое событие, поэтому можно простить подобное техническое упущение. Кроме связывания, ключи могут использоваться для прямого доступа к записям, ускорения работы с таблицей.
Индекс – поле, так же, как и ключ, специально выделенное в таблице, данные в котором, однако, могут повторяться. Они также служат для ускорения доступа и, кроме того, для сортировки и выборок.
Нормальные формы были придуманы, скорее, для автоматизации процесса создания баз данных, нежели как руководство тем, кто создаёт их вручную (автоматическое проектирование больших баз данных может производиться с помощью специальных систем программ – средств (CASE). Реально при ручной разработке проектировщик сразу же задумывает необходимую структуру, планирует нужные таблицы, а не идёт от одной большой таблицы. Нормальные формы фактически формализуют интуитивно понятые требования к организации данных, помогая, прежде всего, избежать избыточного дублирования данных.
Первая нормальная форма:
- информация в полях неделимая (к примеру, имя и фамилия должны быть разными полями, а не одним);
- в таблице нет повторяющихся групп полей
Вторая нормальная форма:
- выполнена первая форма;
- любое неключевое поле однозначно идентифицируется ключевыми полями (фактически, требование наличия ключа)
Третья нормальная форма:
- выполнена вторая форма
- неключевые поля должны однозначно идентифицироваться только ключевыми полями (это значит, что данные, не зависящие от ключа, должны быть вынесены в отдельную таблицу)
Требование третьей нормальной формы имеет тот смысл, что таблицу с полями (Имя, Фамилия, Класс, Классный руководитель) необходимо разбить на две таблицы (Имя, Фамилия, Класс) и (Класс, Классный руководитель), поскольку поле Класс однозначно определяет поле Классный руководитель (а согласно третьей форме, однозначно определять должны только ключи).
Для более глубокого понимания тонкостей проведения операций с записями в таблицах необходимо иметь понятия о способах доступа, транзакциях и бизнес-правилах.
Способы доступа определяют, как технически производятся операции с записями. Способы доступа выбираются программистом во время разработки приложения. Навигационный способ основан на последовательной обработке нужных записей поодиночке. Он обычно используется для небольших локальных таблиц. Реляционный способ основан на обработке сразу набора записей с помощью SQL-запросов. Он используется для больших удалённых БД.
Транзакции определяют надёжность выполнения операций по отношению к сбоям. В транзакцию объединяется последовательность операций, которая либо должна быть выполнена полностью, либо не выполнена совсем. Если во время выполнения транзакции произошёл сбой, то все результаты всех операций, входящих в неё отменяются. Это гарантирует то, что не нарушается корректность базы данных даже в случае технических (а не программных) сбоев.
Бизнес-правила определяют правила проведения операций и представляют механизмы управления БД. Задавая возможные ограничения на значения полей, они также вносят свой вклад в поддержание корректности базы. Несмотря на возможные ассоциации с бизнесом как коммерцией, бизнес-правила не имеют к нему прямого отношения и просто являются правилами управления базами данных.
Данные — это один из наиболее важных компонентов геопространственных технологий и, пожалуй, любой другой отрасли. К управлению данными сейчас относятся серьезно во всех отраслях, поэтому знания по этой дисциплине имеют важное значение для карьеры ИТ-специалистов. Этот цикл статей задуман как универсальное руководство, в котором мы рассмотрим тему от и до, начиная с вопроса «Что такое данные?» и заканчивая изучением и применением геопространственных запросов.
Технология ArcSDE обеспечивает управление длинными и короткими транзакциями на механизме транзакций СУБД
Одна из основных ролей технологии ArcSDE в многопользовательской базе геоданных – это поддержка рабочей среды версионного редактирования баз геоданных на любой РСУБД.
Довольно часто одна-единственная транзакция редактирования в ГИС может повлечь за собой изменение многих рядов в нескольких таблицах. Например, обновление земельного участка может потребовать изменить представление полигона, а также изменение соответствующих линий соседних улиц и углов соседних земельных участков. Кроме того, атрибутивные записи для каждого из этих пространственных объектов тоже приходится обновлять. Такое редактирование приводит к изменениям нескольких записей в разных таблицах. В подобных случаях пользователям удобнее воспринимать все эти изменения как одну транзакцию. Когда изменения принимаются или откатываются назад, все это обрабатывается вместе как единая операция.
В то же время, пользователи могут отменять или повторять отдельные операции в сеансе редактирования. Чтобы дополнить эту ситуацию, правку можно выполнять в отсоединенной от центральной общей базы геоданных системе.
Более того, во время этих специализированных процессов поддержания ГИС-данных, сама база данных ГИС непрерывно остается доступной для ежедневных операций, где каждый пользователь может иметь личный внешний вид общей базы данных ГИС.
Многопользовательская база геоданных поддерживает управление и обновления для этих и многих других сценариев управления данными в многопользовательской среде с помощью поддержки версий. Поддержка версий – это механизм, при котором все изменения базы данных записываются как строки таблицы. Например, каждый раз, когда вы обновляете значение строки, старая запись "уходит в отставку", а новая запись добавляется.
Таким образом, технология ArcSDE управляет такими сложными транзакциями ГИС высокого уровня в простой рабочей среде СУБД, сохраняя изменения информации как дельта-записи в базе данных.
Примечание:
Этот механизм сохранения записей о всех изменениях вместе с метаданными дал начало термину версионное редактирование.
ArcSDE использует метаданные о версиях, чтобы изолировать несколько сеансов редактирования, поддержать сложные транзакции, использовать общие реплики и синхронизировать содержимое нескольких баз данных, выполнять автоматическую архивацию и поддерживать исторические запросы.
Понятие базы данных
База данных (БД) – это совокупность массивов и файлов данных, организованная по определённым правилам, предусматривающим стандартные принципы описания, хранения и обработки данных независимо от их вида.
База данных (БД) – совокупность организованной информации, относящейся к определённой предметной области, предназначенная для длительного хранения во внешней памяти компьютера и постоянного применения.
Как технология ArcSDE включена в ArcGIS?
В прошлом ArcSDE продавалась как отдельный продукт Esri. Начиная с ArcGIS 9.2, технология ArcSDE включена в пакет ArcGIS и не предлагается отдельно. Технология ArcSDE интегрирована в ArcGIS for Desktop , ArcGIS Engine и ArcGIS for Server таким образом, чтобы пользователи могли масштабировать свои основанные на СУБД базы геоданных в пределах своих организаций.
Начиная с ArcGIS 9.2, в ArcGIS for Desktop Standard и Дополнительно предусмотрена возможность установки Microsoft SQL Server Express. Эти программные продукты также содержат возможности ArcSDE по поддержанию многопользовательских баз геоданных в SQL Server Express вплоть до трех одновременных пользователей настольных программных продуктов.
Начиная с ArcGIS 9.3, комплектация ArcGIS Engine включает файлы установки SQL Server Express. Опциональный дополнительный модуль Geodatabase Update для ArcGIS Engine используется в приложениях ArcGIS Engine, редактирующих базы геоданных.
Microsoft ограничивает использование SQL Server Express до 1 ЦПУ и до 1 Гб оперативной памяти. Максимальный размер базы данных для SQL Server 2005 или 2008 Express ограничен 4 Гб. Максимальный размер базы данных для SQL Server 2008 Express R2 ограничен 10 Гб. (Точную информацию об ограничениях размера экземпляра см. в своем лицензионном соглашении Esri.)
В ArcGIS for Desktop Standard и Дополнительно приложение ArcCatalog предоставляет возможность полностью администрировать и управлять многопользовательскими базами геоданных с помощью SQL Server Express. Это предоставляет все возможности многопользовательских баз геоданных для нескольких пользователей одновременно. Вы устанавливаете и управляете этими многопользовательскими базами геоданных в ArcCatalog. Не требуется никакого дополнительного программного обеспечения или специального администрирования базы данных.
ArcGIS for Server Workgroup также содержит поддержку ArcSDE for SQL Server Express. На этом уровне ArcSDE приложение SQL Server Express может поддерживает вплоть до 10 одновременных пользователей и редакторов на настольных приложениях Windows (например, для пользователей ArcGIS for Desktop Basic , Стандартный , Дополнительно , пользовательских приложений ArcGIS Engine, AutoCAD, MicroStation и т.д.) плюс любое количество серверных подключений через веб-приложения. (Точную информацию о количестве возможных подключений см. в своем лицензионном соглашении.)
С помощью ArcGIS for Server Workgroup можно использовать ArcGIS for Desktop Standard или Дополнительно для создания, администрирования и управления многопользовательскими базами геоданных для SQL Server Express средствами ArcCatalog. Никакого дополнительного администрирования корпоративных баз данных не требуется.
ArcGIS for Server включает всю многопользовательскую технологию ArcSDE без всяких ограничений. Вы можете продолжать использовать традиционную технологию ArcSDE for Oracle, SQL Server, PostgreSQL, IBM DB2 и IBM Informix. Поддержка ArcSDE на уровне Enterprise Server предоставляет многопользовательский доступ к базам данных любого размера и работает на любых компьютерах. ArcGIS for Server , вы предоставляете свою лицензию СУБД для этого уровня использования ArcSDE. Можно выбрать следующее:
- Oracle
- Microsoft SQL Server
- IBM Informix
- IBM DB2
- PostgreSQL
СУБД обычно администрируется и управляется администратором базы данных (АБД).
Итоговая информация
Вам не нужно контролировать и управлять ресурсами вашей памяти и ЦПУ компьютера для SQL Server Express. Сервер SQL Server Express будет автоматически ограничивать использование компьютером до 1 Гб оперативной памяти на одном процессоре и размер базы данных до 4 Гб или 10 Гб в зависимости от используемой версии SQL Server Express.
В отличие от баз данных Microsoft Access, скорость работы SQL Server Express не снижается при достижении максимального размера базы данных.
ArcSDE for SQL Server Express входит в состав ArcGIS for Desktop Standard и Дополнительно . Если вы выберете для установки SQL Server Express, вы сможете администрировать базы данных SQL Server Express, используя ArcCatalog.
После установки ArcGIS for Server Workgroup можно также установить и использовать SQL Server Express. После инсталляции SQL Server Express, вы можете использовать приложение ArcCatalog на своем рабочем месте с ArcGIS for Desktop Standard или Дополнительно для администрирования баз данных SQL Server Express на вашем Workgroup Server.
Эти различные уровни позволяют использовать все возможности многопользовательских баз геоданных для любого числа пользователей, большого или малого. Это позволяет в организациях с масштабируемой архитектурой данных работать на отдельных однопользовательских системах со своими большими корпоративными системами.
Если всеми нами известный табличный процессор Excel специально создан для решения задач обработки табличных данных, то существуют системы (приложения) для решения иных классов задач. В частности, очень большую роль играют сейчас программы (приложения, системы), цепь которых – хранение данных и выдача данных по запросу пользователя. Использование компьютеров именно для решения этого класса задач становится всё более массовым явлением.
Смело можно сказать, что такие задачи и необходимость их решения существуют в любой фирме, на любом предприятии. Основное понятие для подобного круга задач – база данных. Базой данных называется файл или группа файлов стандартной структуры, служащая для хранения данных.
Для разработки программ, систем программ, работающих с базами данных, используются специальные средства – системы управления базами данных (СУБД).
СУБД включает, как правило, специальный язык программирования и все прочие средства, необходимые для разработки указанных программ.
В настоящее время наиболее известными СУБД являются: Oracle Database, MS SQL Server, MySQL (MariaDB) и ACCESS. Последняя входит в состав профессионального офисного пакета Microsoft Office.
Это современные системы с большими возможностями, предназначенные для разработки сложных программных комплексов, и знакомство с ними для пользователя ЭВМ исключительно полезно, но в рамках настоящего пособия осуществить его затруднительно.
Типы данных в таблицах Access
Не надо забывать про индексы. Связывать таблицы. Связь с обеспечением целостности контролирует каскадное удаление и модификацию данных.
Монопольный доступ к БД нужен для того, чтобы производить в ней фундаментальные изменения.
Типы данных в базах
В Access можно определить следующие типы полей:
- Текстовый – текстовая строка; максимальная длина задаётся параметром «размер», но не может быть больше 255
- Поле МЕМО – текст длиной до 65535 символов
- Числовой – в параметре «Размер поля» можно задать поле: байт, целое, дейсвительное и т.п.
- Дата/время – поле, хранящее данные о времени.
- Денежный – специальный формат для финансовых нужд, по сути являющийся числовым
- Счётчик – автоинкрементное поле. При добавлении новой записи внутренний счётчик таблицы увеличивается на единицу и записывается в данное поле новой записи. Таким образом, значения этого поля гарантированно различны для разных записей. Тип предназначен для ключевого поля
- Логический – да или нет, правда или ложь, включен или выключен
- Объект OLE– в этом поле могут храниться документы, картинки, звуки и т.п. Поле является частным случаем BLOB– полей (BinaryLargeObject), встречающихся в различных базах данных
- Гиперссылка – используется для хранения ссылок на ресурсы Интернета. Встречается не во всех форматах баз данных. К примеру, такого типа нет в dBaseи Paradox
- Подстановка
Представление об организации баз данных и системах управления базами данных.
План:
1. Основные понятия о базах данных.
2. СУБД Microsoft Access.
Читайте также: