База данных libreoffice base

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

При запуске LibreOffice Base автоматически открывается Мастер баз данных, предлагающий создать новую БД, либо открыть существующую. Выберем пункт Создать новую базу данных и нажмем на кнопку Далее :

На втором этапе Мастер предлагает два варианта: открыть базу данных для редактирования или сразу приступить к созданию таблиц. Оставим настройки по умолчанию и нажмём кнопку Готово :

Теперь СУБД предложит нам сохранить нашу базу данных. Выбираем нужную папку, в которой будет хранится база, и даём ей название.

Названия для документов лучше выбирать осмысленные и отражающее содержание хранящейся в ней информации — такие документы сложнее потерять в общей массе и не придётся каждый раз мучительно вспоминать, в каком из них какая информация хранится.

В качестве примера мы создадим базу данных клиентов какого-то абстрактного магазина. Поэтому назовём её «База данных клиентов»:

Базы данных в LibreOffice Base сохраняются в формате .odb

После того как создан новый файл базы данных, редактор откроет основное рабочее окно СУБД. Здесь можно работать с таблицами, запросами, формами и отчётами. Создавать, редактировать и управлять ими. Каждую из этих форм можно создавать в двух режимах — с помощью мастера (для начинающих) или в режиме дизайна (для опытных пользователей).
Для начала создадим таблицы. Чтобы воспользоваться помощью мастера таблиц, щёлкнем на кнопке Таблицы в окне База данных , а в окне Задачи выберем Использовать мастер для создания таблицы… :

Мастер создания таблиц предлагает множество готовых шаблонов таблиц и полей в них. Остается только выбрать подходящие из нужной сферы или создать требуемую таблицу самим.
Создание таблицы с помощью шаблонов начинается с определения ее категории с помощью переключателей Деловые/Персональные . В данном контексте нам нужна категория Деловые. В списке Примеры таблиц выбираем название наиболее подходящего образца — в нашем случае это таблица Клиенты.
После щелчка по названию выбранного образца формируется содержимое списка Доступные поля . Нам нужно просмотреть этот список и отобрать те, которые необходимы в таблице. Чтобы поле попало в структуру формируемой таблицы, его нужно выделить, а затем щелкнуть по кнопке > . Для нашей таблицы выберем следующие поля:

При желании любое поле, включенное в список выбранных полей, можно переименовать. Это можно сделать в окне следующего шага. Мы переименуем поле КодКлиента в более понятное НомерДисконтнойКарты, а также изменим следующие параметры: поля НомерДисконтнойКарты, Имя, Фамилия и НомерМобильногоТелефона сделаем обязательными для заполнения:

На третьем шаге происходит задание первичного ключа. Если объяснять просто, то первичный ключ — это то поле, по которому мы можем однозначно идентифицировать каждую запись в таблице. А значит, значения первичных ключей в таблице никогда не повторяются. В нашем случае первичным ключом целесообразно сделать поле НомерДисконтнойКарты, так как эти номера, как правило, уникальны в рамках одного магазина/сети:

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

В последнем окне Мастер предлагает подправить название таблицы (если нужно) и три варианта дальнейших действий с ней: Немедленно вставить данные, Модифицировать дизайн таблицы, Создать форму на основе данной таблицы. Выберем Немедленно вставить данные и щёлкнем по кнопке Готово :

В качестве примера введём несколько строчек в нашу новоиспеченную таблицу:

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

Далее рассмотрим создание новой таблицы в режиме дизайна. Чтобы создать новую таблицу в режиме дизайна, выберем в окне Задачи пункт Создание таблицы в режиме дизайна .
В открывшейся таблице можно задать поля будущей таблицы. Создадим таблицу Дисконтные карты. В ней будут следующие поля: номер карты, размер предоставляемой скидки и количество баллов на счёте. Введем новые поля в строки сверху вниз: щелкаем ячейку Имя поля и вводим имя для каждого поля данных.
В следующей ячейке справа определяем Тип поля : щелкнув в этой ячейке, выбираем тип поля из списка.
Для каждого поля можно также ввести Описание . Текст описания будет возникать в виде всплывающей подсказки при наведении курсора на заголовок в представлении таблицы. Для примера сделаем пояснение, что скидка должна вводиться не в %, а в долях от 1:

Ниже таблицы полей вводятся Свойства поля для каждого выбранного поля данных.
Поле Автозначение позволяет автоматически нумеровать записи по возрастанию. В данном случае удобно автоматически получать номер дисконтной карты — для этого поля этот параметр установим в положение Да.
Поля Длина и Знаков после запятой изменяем в зависимости от того, какими будут вводимые данные: скидка у нас может быть до десятых долей процента, поэтому число знаков после запятой — 3.
В поле Значение по умолчанию вводим значения, которые будут подставляться в запись автоматически. Само собой, что в дальнейшем содержимое этого поля можно будет при необходимости изменить. Для нашей таблицы по умолчанию можно заполнять поля РазмерСкидки — скажем, вначале он для всех составляет 5%, а КоличествоБаллов при получении дисконтной карты как правило равно 0.
В поле Обязательное укажем, может ли поле оставаться пустым. В нашем случае специфика таблицы такова, что все поля должны быть заполнены, поэтому для всех установим Да.
Чтобы выбрать поле, которое станет первичным ключом таблицы, нужно правой кнопкой мыши нажать на серый квадрат слева от строки с нужным полем и установить галочку Первичный ключ .

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

Остаётся только сохранить таблицу — при этом нужно будет ввести её название. Назовём таблицу Дисконтные карты и сохранимся.

Также заполним таблицу Дисконтные карты данными:

В рамках данного занятия также рассмотрим создание связей между таблицами. Они будут необходимы нам для дальнейшей работы с БД — например, для создания запросов, использующих данные двух или более таблиц. Чтобы создать связь, в основном окне программы выберем пункт меню Сервис->Связи .

Создавать или изменять связи между открытыми таблицами нельзя! Поэтому вначале необходимо закрыть все ранее открытые таблицы базы данных и открыть окно базы данных.

В открывшемся окне нужно сначала добавить таблицы (кнопка Добавить таблицы на панели инструментов, либо аналогичный пункт в меню Вставить ) — в окне со списком таблиц выбираем нужную и нажимаем кнопку Добавить .
Затем между таблицами создаётся связь (также кнопка или пункт меню Создать связь ):

В окне Связи выбираем таблицы, между которыми она создаётся (их может быть не больше 2, слева указывается таблица, которая будет главной), поля, с помощью которых она будет осуществляться — в нашем случае это поле НомерДисконтнойКарты, и отношения между таблицами в разных ситуациях. Так при обновлении номера карты в таблице дисконтных карт целесообразно обновлять этот номер и для клиента, держащего карту, а при удалении — обнулять её значение, чтобы не потерять данные клиента и видеть, что карты у него нет:
После нажатия кнопки ОК между таблицами будет создана связь:

Читайте также:  Игра логика прохождение 10 уровней

Обозначение «1-1» указывает, что данная связь имеет тип «один-к-одному» и означает, что у одного клиента может и должна быть только одна дисконтная карта.

В данной статье мы постарались рассмотреть основные приёмы, необходимые для создания простой базы данных в LibreOffice Base. Однако, если у вас остались вопросы по данной теме, вы можете задать их в комментариях или на нашем форуме. Мы постараемся оперативно на них ответить 🙂

LibreOffice Base — офисное приложение для создания и управления базами данных различных целей (система управления базами данных — СУБД).

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

Создание новой базы данных осуществляется через Мастер баз данных и Мастер таблиц. Это графические менеджеры, в которых вы шаг за шагом настраиваете новую базу данных.

Работа с созданными базами данных также выполняется через удобные графические инструменты.

В LibreOffice Base доступен Мастер создания форм, в котором можно создавать удобные формы для ввода данных в таблицы.

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

Помимо мастера можно выполнять запросы, используя SQL.

Мастер отчетов предназначен для построения отчетов. Существуют статические и динамические отчеты. Последние обновляются по мере изменения данных в базе.

Программа входит в состав офисного пакета LibreOffice и имеет интеграцию с некоторыми функциями приложений Writer и Calc.

Помимо собственных баз данных есть возможность использовать другие источники. Например, подключить базы данных Oracle, MySQL, PostgreSQL и другие.

LibreOffice Base является форком программы OpenOffice Base.

Программа полностью переведена на русский язык и доступна для Linux, Windows и macOS.

В части 2 будет рассмотрена связь между таблицами базы данных и формами. В частности как задавать связь между двумя таблицами и использовать таблицы-«справочники» в качестве источника данных для выпадающих списков.

Версии OpenOffice и LibreOffice, для которых актуально данное сообщения от 3.0 до 6.2 (текущая версия LibreOffice). Начиная именно с версии 3.0 в OpenOffice Base появилась возможность сохранять скрипты в файле базы данных (с расширением .odb), что позволяет удобно распространять код макросов OO Basic

С формами в OpenOffice Base произошла некоторая путаница. Дело в том, что в процессе эволюции программного обеспечения от офисного пакета к среде для работы с базами данных, оказалось, что Формы, Форма, Forms и Form — это немного не одно и то же. И Form — это не только Form. Поясню подробнее.

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

  • Таблицы
  • Запросы
  • Формы
  • Отчеты

В этом смысле Форма является некоторым самостоятельным приложением, которое запускается в отдельном окне. Замечу еще, что на самом деле это окно в котором запускается экземпляр OpenOffice Writer.

Примечание. Поскольку форма это фактически экземпляр OpenOffice Writer — приложение можно создавать без загрузки компонента OpenOffice Base — прямо в OpenOffice Writer.

Читайте также:  Как включить радио на телефоне без наушников

Каждая Форма имеет коллекцию Forms объектов Form. Вначале эта коллекция пустая. Несмотря на это, Вы можете открывать и закрывать Форму. И даже выводить в ней текстовую информацию. И только при добавлении нового элемента управления (например Button) система создаст объект Form с именем по умолчанию Form, если Вы до этого времени не создали такой объект сами.

Создавать новые Form удобнее всего из Навигатора форм (на палитре изображается в виде компаса), который также можно вызвать из меню View|Toolbar|Form Navigation. Объекты Form создаются или на верхнем уровне в коллекции Forms, или подчиненные другому объекту Form. Это никак не отражается на внешнем виде Формы, но может быть полезными при задании связей между таблицами.

Тут надо отметить одну аномалию объекта Form. Этот объект является в первую очередь объектом, связанным с таблицей базы данных или с запросом SQL. Можно думать о Form как об объекте ResultSet (так оно и есть на самом деле). С другой стороны, Form является контейнером для элементов управления, подобно FORM в документе HTML (и это тоже правда).

Откройте только что созданную Форму в режиме редактирования (правая кнопка мыши|Edit). Создайте в ней новый объект Form с именем Form, или другим Вам понравившимся именем. В этом элементе Form создайте дочерний элемент Form.

C каждой Form нужно связать существующую таблицу базы данных, запрос или SQL-запрос. В подчиненной Form можно задать правила, чтобы отражались данные отфильтрованные по значению связанных полей в основной Form по типу Master/Slave. Для этого в редакторе свойств подчиненной Form нужно заполнить свойства link master fields и link slave fields.

Теперь в каждую из Form добавим по элементу Table Control, выбрав соответствующую Form в Навигаторе форм>. Элемент Table Control отсутствует в панели доступных элементов. Для отображения расширенного списка элементов нужно в палитре элементов активировать кнопку More Controls. После добавления элемента Table Control необходимо войти в режим редактирования этого элемента и добавить необходимые для отображения колонки таблицы (правая кнопка мыши -> Insert/Replace/Delete Column)

Второй тип часто встречающийся на практике тип связи между таблицами (после Master/Slave), и который мы рассмотрим — связь типа Справочник. Мы храним в таблице данных ключ объекта GUID, autoincrement, а в отображаемой таблице выводим его полное наименование, взятое из связанной таблицы-«справочника». Для этого есть удобный механизм. В визуальном Конструкторе таблицы добавляем колонку типа List Box. Если была уже создана колонка типа Numeric/Text, в которой отображается ключ (а не наименование), есть возможность изменить его тип на List Box (правая кнопка мыши|Replace With|List Box). Далее редактируем список свойств колонки. На закладке data свойству Тype of List Content присваиваем значение SQL. Запрос в свойствеList Content должен в первой колонке содержать отображаемое значение, а свойство Bound Field индекс колонки с ключевым полем (если считать, что первая колонка имеет индекс 0). То есть в подавляющем большинстве запросов это будет 1 для запросов типа

Пока что была описана работа в режиме конфигуратора без программирования. Добавим функциональности при помощи макросов OO Basic.

Создадим фильтр для таблицы базы данных по значению, введенному в текстовое поле. Для этого напишем на языке OO Basic процедуру, обрабатывающую событие от клавиатуры.

Ссылка на основную публикацию
Adblock detector