Тест по теме: «Базы данных»-2016 | Тест по теме:
Тест по теме: «Базы данных»
1 вариант
- Базы данных (БД) – это:
- — совокупность электронных таблиц и всего комплекса аппаратно – программных средств для их хранения; изменения и поиска информации; для взаимодействия с пользователем;
- – организованная совокупность данных, предназначенная для длительного хранения во внешней памяти компьютера и постоянного применения;
- – программное обеспечение, управляющее хранением и обработкой данных;
- – настраиваемые диалоговые окна, сохраняемые в компьютере в виде объектов специального типа.
- По характеру хранимой информации БД бывают:
- Фактографические
- Централизованные
- Иерархические
- Укажите системы управления БД:
- Microsoft Access
- Open Office.org Calc
- Microsoft Power Point
- Поле БД – это
- Строка таблицы, содержащая набор значений свойств, в столбцах БД
- Заголовок таблицы БД
- Столбец таблицы, содержащий значения определённого свойства
- Перечислите недостатки табличных БД:
- Возможность видеть одновременно несколько записей
- Содержит большое количество полей
- Легко просматривать и редактировать данные
- Кто определяет количество полей в БД?
- Пользователь
- Разработчик
- И разработчик, и пользователь
- Какие данные не могут быть ключом БД?
- Номер паспорта
- Дата рождения
- Логин эл. почты + пароль
- Чем запрос отличается от фильтра?
- Ничем
- Запрос является самостоятельным объектом БД
- Запрос может быть простым и сложным
- Закончите предложение: «Реляционная БД состоит из … »
- Установите соответствие:
Тип ИС | Отличительные особенности типов ИС |
|
|
|
|
|
|
|
Тест по теме: «Базы данных»
2 вариант
- Информационные системы (ИС) – это:
- — совокупность баз данных и всего комплекса аппаратно – программных средств для их хранения; изменения и поиска информации; для взаимодействия с пользователем;
- – упорядоченные наборы данных;
- – программное обеспечение, предназначенное для работы с базами данных;
- – важнейший инструмент для отбора данных на основании заданных условий.
- По способу хранения данных БД бывают:
- Фактографические
- Распределённые
- Табличные
- Укажите системы управления БД:
- Microsoft Excel
- Open Office.org Base
- Open Office.org Writer
- Запись БД – это
- Столбец таблицы, содержащий значения определённого свойства
- Строка таблицы, содержащая набор значений свойств в полях БД
- Заголовок таблицы БД
- Перечислите достоинства БД — форма:
- Возможность видеть одновременно несколько записей
- Содержит большое количество полей
- Легко просматривать и редактировать данные
- Поля каких типов не может содержать БД?
- картинка
- счётчик
- ярлык
- Какие данные могут быть ключом БД?
- Номер паспорта
- Номер дома
- Цвет волос
- Чем фильтр отличается от запроса?
- Ничем
- Фильтр может быть простым и сложным
- Фильтр привязан к конкретной таблице
- Закончите предложение: « Локальная ИС состоит из … , находящихся на одном компьютере»
- Установите соответствие:
Отличительные особенности типов БД | Тип БД |
|
|
|
|
|
|
|
Тест по теме: «Базы данных»
3 вариант
- Системы управления базами данных – это:
- – инструмент для печати данных, содержащихся в таблицах и запросах, в красиво оформленном виде;
- – настраиваемые диалоговые окна, сохраняемые в компьютере в виде объектов специального типа;
- — совокупность баз данных и всего комплекса аппаратно – программных средств для их хранения; изменения и поиска информации; для взаимодействия с пользователем;
- – программа, позволяющая создавать базы данных, а также обеспечивающая обработку (сортировку) и поиск данных
- По структуре организации данных БД бывают:
- Централизованные
- Документальные
- Сетевые
- Укажите системы управления БД:
- Open Office.org Calc
- Microsoft Word
- Microsoft Access
- В табличных БД полем называются
- Однородные данные обо всех объектах
- Наборы данных об одном объекте
- Заголовки таблицы БД
- Перечислите недостатки БД — форма:
- Возможность видеть только одну запись
- Содержит большое количество полей
- Легко просматривать и редактировать данные
- Какое свойство не является свойством поля БД?
- Размер поля
- Цвет поля
- Обязательное поле
- Какие данные не могут быть ключом БД?
- Цвет глаз
- ИНН+СНИЛС
- Логин эл. почты + пароль
- Что называют сортировкой данных в БД?
- Отбор записей, удовлетворяющих условиям поиска
- Вывод на печать упорядоченных записей
- Упорядочение записей по значениям одного из полей
- Закончите предложение: «Иерархическая БД имеет … структуру»
- Установите соответствие:
Тип ИС | Отличительные особенности типов ИС |
|
|
|
|
|
|
|
Тест по теме: «Базы данных»
4 вариант
- Системы управления базами данных – это:
- – важнейший инструмент для отбора данных на основании заданных условий;
- – программа, позволяющая создавать базы данных, а также обеспечивающая обработку (сортировку) и поиск данных
- – настраиваемые диалоговые окна, сохраняемые в компьютере в виде объектов специального типа;
- — совокупность баз данных и всего комплекса аппаратно – программных средств для их хранения; изменения и поиска информации; для взаимодействия с пользователем;
- По характеру хранимой информации БД бывают:
- Документальные
- Распределённые
- Иерархические
- Укажите системы управления БД:
- Microsoft Excel
- Open Office.org Impress
- Open Office.org Base
- В табличных БД запись содержит
- Набор данных об одном объекте
- Название базы данных
- Однородные данные обо всех объектах
- Перечислите достоинства табличных БД:
- Возможность видеть одновременно несколько записей
- Содержит большое количество полей
- Сложно просматривать и редактировать данные
- Какое свойство не является свойством поля БД?
- Формат поля
- Цвет поля
- Обязательное поле
- Какие данные могут быть ключом БД?
- ИНН+СНИЛС
- Город проживания
- Имя
- Для чего предназначены отчёты в БД?
- Для упорядочения записей в определённой последовательности
- Для отбора записей, удовлетворяющим определённым условиям
- Для печати данных, содержащихся в таблицах и запросах, в красиво оформленном виде
- Закончите предложение: «Реляционная БД состоит из … »
- Установите соответствие:
Отличительные особенности типов БД | Тип БД |
|
|
|
|
|
|
|
Типы данных в MS Access
Имена полей и тип данных в MS Access
Для определения поля таблицы обязательно задаются Имя поля (Field Name) и Тип данных (Data Type).
Имя поля (Field Name). Каждое поле в таблице должно иметь уникальное имя, удовлетворяющее соглашениям об именах объектов в Access. Оно является комбинацией из букв, цифр, пробелов и специальных символов, за исключением точки (.), восклицательного знака (!), надстрочного знака (`) и квадратных скобок ([ ]). Имя не может начинаться с пробела и содержать управляющие символы с кодами ASCII от 0 до 31. Максимальная длина имени 64 символа.
Тип данных в MS Access (Data Type). Тип данных определяется значениями, которые предполагается хранить в поле, и операциями, которые будут выполняться с этими значениями. В Access допускается использование двенадцати типов данных.
Рассмотрим вкратце типы данных в MS Access, виды, назначение и допустимый размер данных, которые могут назначаться полям таблицы в Access.
- Текстовый (Text) — используется для хранения текста или комбинаций алфавитно-цифровых знаков, не применяемых в расчетах (например, код товара). Максимальная длина поля 255 знаков.
- Поле МЕМО (Memo) — используется для хранения обычного текста или комбинаций алфавитно-цифровых знаков длиной более 255 знаков. Поля с этим типом данных в базах данных формата Access 2007 поддерживают также форматирование текста. Это единственный в Access тип данных, обеспечивающий встроенную поддержку отображения и хранения форматированного текста. Максимальный размер поля 1 Гбайт знаков или 2 Гбайт памяти (2 байта на знак) при программном заполнении полей, и 65 535 знаков при вводе данных вручную в поле и в любой элемент управления, связанный с этим полем.
- Числовой (Number) — служит для хранения числовых значений (целых или дробных), предназначенных для вычислений, исключением являются денежные значения, для которых используется тип данных Денежный (Currency). Размер поля 1, 2, 4 и 8 байтов, или 16 байтов (если используется для кода репликации) зависит от типа чисел, вводимых в поле.
- Дата/время (Date/Time) — используется для хранения значений даты и времени в виде 8-байтовых чисел двойной точности с плавающей запятой. Целая часть значения, расположенная слева от десятичной запятой, представляет собой дату. Дробная часть, расположенная справа от десятичной запятой, — это время. Хранение значений даты и времени в числовом формате позволяет выполнять различные вычисления с этими данными.
- Денежный (Currency) — используется для хранения денежных значений в виде 8-байтовых чисел с точностью до четырех знаков после запятой. Этот тип данных применяется для хранения финансовых данных и в тех случаях, когда значения не должны округляться.
- Счетчик (AutoNumber) — используется для уникальных числовых 4-байтовых значений, которые автоматически вводит Access при добавлении записи. Вводимые числа могут последовательно увеличиваться на указанное приращение или выбираться случайно. Обычно используются в первичных ключах.
- Логический (Yes/No) — применяется для хранения логических значений, которые могут содержать одно из двух значений: Да/Нет, Истина/Ложь или Вкл/Выкл. (8 битов = 1 байт). Используется 1 для значений Да и 0 для значений Нет. Размер равен 1 биту.
- Поле объекта OLE (OLE Object) — используется для хранения изображений, документов, диаграмм и других объектов из приложений MS Office и других программ Windows в виде растровых изображений, которые затем отображаются в элементах управления форм или отчетов, связанных с этим полем таблицы.
Чтобы в Access просматривать эти изображения, необходимо, чтобы на компьютере, использующем базу данных, был зарегистрирован OLE-сервер (про-грамма, поддерживающая этот тип файлов). Если для данного типа файлов OLE-сервер не зарегистрирован, отображается значок поврежденного изображения. - Гиперссылка (Hyperlink) — применяется для хранения ссылок на Web-узлы (URL-адреса), на узлы или файлы интрасети или локальной сети (UNC-адреса — стандартного формата записи пути), а также на узлы или файлы локального компьютера. Кроме того, можно использовать ссылку на объекты Access, хранящиеся в базе данных. Может хранить до 1 Гбайт данных.
- Вложение (Attachment) — используется для вложения в поле записи файлов изображений, электронных таблиц, документов, диаграмм и других файлов поддерживаемых типов точно так же, как в сообщения электронной почты. Вложенные файлы можно просматривать и редактировать в соответствии с заданными для поля параметрами. Эти поля не имеют ограничений, связанных с отсутствием зарегистрированных OLE-серверов. Более рационально используют место для хранения, чем поля с типом данных Поле объекта OLE (OLE Object), поскольку не создают растровые изображения исходного файла. Максимальная длина поля для сжатых вложений — 2 Гбайт, для несжатых — примерно 700 Кбайт в зависимости от степени возможного сжатия вложения.
- Вычисляемый (Calculated) — предназначен для создания вычисляемых полей: числовых, текстовых, денежных, дата/время, логических. Значение вычисляемого поля определяется выражением, записанным в поле и использующим другие поля текущей записи, некоторые встроенные функции и константы, связанные арифметическими, логическими или строковыми операторами.
- Мастер подстановок (Lookup Wizard) или Подстановка и отношения (Lookup & Relationship) — вызывает мастера подстановок, с помощью которого можно создать поле, позволяющее выбрать значения из списка, построенного на основе значений поля другой таблицы, запроса или фиксированного набора значений. Такое поле отображается как поле со списком. Если список построен на основе поля таблицы или запроса, тип данных и размер создаваемого поля определяется типом данных и размером привязанного столбца; если на основе набора значений — размером текстового поля, содержащего значение. Кроме того, мастер подстановок позволяет определить связь таблиц и включить проверку связной целостности данных.
Закрепим полученные знания просмотром видео:
Про основные свойства полей MS Access читаем тут.
Контрольная работа база данных
скачать ► Контрольная работа база данных в помощь учителю можно бесплатно с нашего сайта. просмотреть содержимое контрольной работы ниже. В контрольной работе 2 варианта.
Самостоятельная работа: «Базы данных»
1 вариант
- Базы данных (БД) – это:
- — совокупность электронных таблиц и всего комплекса аппаратно – программных средств для их хранения; изменения и поиска информации; для взаимодействия с пользователем;
- – организованная совокупность данных, предназначенная для длительного хранения во внешней памяти компьютера и постоянного применения;
- – программное обеспечение, управляющее хранением и обработкой данных;
- – настраиваемые диалоговые окна, сохраняемые в компьютере в виде объектов специального типа.
- По характеру хранимой информации БД бывают:
- Фактографические
- Централизованные
- Иерархические
- Укажите системы управления БД:
- Поле БД – это
- Строка таблицы, содержащая набор значений свойств, в столбцах БД
- Заголовок таблицы БД
- Столбец таблицы, содержащий значения определённого свойства
- Перечислите недостатки табличных БД:
- Возможность видеть одновременно несколько записей
- Содержит большое количество полей
- Легко просматривать и редактировать данные
- Кто определяет количество полей в БД?
- И разработчик, и пользователь
- Какие данные не могут быть ключом БД?
- Номер паспорта
- Дата рождения
- Логин эл. почты + пароль
- Чем запрос отличается от фильтрации данных?
- Запрос является самостоятельным объектом БД
- Запрос может быть простым и сложным
- Закончите предложение: «Реляционная БД состоит из … »
- Придумайте и запишите имена, типы полей и примеры введённой информации в БД «Видеотека»
Имя поля | Тип поля | Введённая информация |
Самостоятельная работа «Базы данных»
2 вариант
- Системы управления базами данных – это:
- – инструмент для печати данных, содержащихся в таблицах и запросах, в красиво оформленном виде;
- – настраиваемые диалоговые окна, сохраняемые в компьютере в виде объектов специального типа;
- — совокупность баз данных и всего комплекса аппаратно – программных средств для их хранения; изменения и поиска информации; для взаимодействия с пользователем;
- – программа, позволяющая создавать базы данных, а также обеспечивающая обработку (сортировку) и поиск данных
- По способу хранения данных БД бывают:
- Фактографические
- Распределённые
- Табличные
- Укажите системы управления БД:
- Запись БД – это
- Столбец таблицы, содержащий значения определённого свойства
- Строка таблицы, содержащая набор значений свойств в полях БД
- Заголовок таблицы БД
- Перечислите достоинства табличных БД:
- Возможность видеть одновременно несколько записей
- Содержит большое количество полей
- Сложно просматривать и редактировать данные
- Поля каких типов не может содержать БД?
- Какие данные могут быть ключом БД?
- Номер паспорта
- Чем фильтр отличается от запроса?
- Фильтр может быть простым и сложным
- Фильтр привязан к конкретной таблице
- Закончите предложение: «Иерархическая БД имеет … структуру»
- Придумайте и запишите имена, типы полей и примеры введённой информации в БД «Регионы РФ»:
Имя поля | Тип поля | Введённая информация |
Работа с базой данных
Модель работы с базой данных
Модель базы данных «1С:Предприятия 8» имеет ряд особенностей, отличающих ее от классических моделей систем управления базами данных (например, основанных на реляционных таблицах), с которыми имеют дело разработчики в универсальных системах.
Основное отличие заключается в том, что разработчик «1С:Предприятия 8» не обращается к базе данных напрямую. Непосредственно он работает с платформой «1С:Предприятия 8». При этом он может:
- описывать структуры данных в конфигураторе,
- манипулировать данными с помощью объектов встроенного языка,
- составлять запросы к данным, используя язык запросов.
Платформа «1С:Предприятия 8» обеспечивает операции исполнения запросов, описания структур данных и манипулирования данными, транслируя их в соответствующие команды. Это могут быть команды системы управления базами данных, в случае клиент-серверного варианта работы, или команды собственного движка базы данных для файлового варианта.
Общая система типов
Важной особенностью работы с базой данных является то, что в «1С:Предприятии 8» реализована общая система типов языка и полей баз данных. Иными словами, разработчик одинаковым образом определяет поля базы данных и переменные встроенного языка и одинаковым образом работает с ними.
Этим система «1С:Предприятие 8» выгодно отличается от универсальных инструментальных средств. Обычно, при создании бизнес-приложений с использованием универсальных сред разработки, используются отдельно поставляемые системы управления базами данных. А это значит, что разработчику приходится постоянно заботиться о преобразованиях между типами данных, поддерживаемыми той или иной системы управления базами данных, и типами, поддерживаемыми языком программирования.
Хранение ссылок на объекты
При манипулировании данными, хранящимися в базе данных «1С:Предприятия 8», зачастую используется объектный подход. Это значит, что обращение (чтение и запись) к некоторой совокупности данных, хранящихся в базе, происходит как к единому целому. Например, используя объектную технику, можно манипулировать данными справочников, документов, планов видов характеристик, планов счетов и т.д.
Характерной особенностью объектного манипулирования данными является то, что на каждый объект, как совокупность данных, существует уникальная ссылка, позволяющая однозначно идентифицировать этот объект в базе данных.
Эта ссылка также хранится в поле базы данных, вместе с остальными данными объекта. Кроме того, ссылка может быть использована как значение какого-либо поля другого объекта. Например, ссылка на объект справочника Контрагенты может быть использована как значение соответствующего реквизита документа Приходная накладная.
Составные типы
Существенной возможностью модели данных, которая поддерживается «1С:Предприятием 8», является то, что для поля базы данных можно определить сразу несколько типов данных, значения которых могут храниться в этом поле. При этом значение в каждый момент времени будет храниться одно, но оно может быть разных типов — как ссылочных, так и примитивных — число, строка, дата и т.п.:
Такая возможность очень важна для экономических задач — например, в расходной накладной в качестве покупателя может быть указано либо юридическое лицо из справочника организаций, либо физическое лицо из справочника частных лиц. Соответственно, при проектировании базы данных разработчик может определить поле, которое будет хранить значение любого из этих типов.
Хранение любых данных как Хранилище значения
Идеология создания прикладных решений в «1С:Предприятии 8» предполагает, что все файлы, имеющие отношение к данному прикладному решению, нужно хранить в самой базе данных.
Для этого введен специальный тип данных — ХранилищеЗначения. Поля базы данных могут хранить значения такого типа, а встроенный язык содержит специальный одноименный объект, позволяющий преобразовывать значения других типов к специальному формату Хранилища значений.
Благодаря этому разработчик имеет возможность сохранять в базе данных значения, тип которых не может быть выбран в качестве типа поля базы данных, например, графические изображения.
Создание и обновление структур данных на основе метаданных
В процессе создания или модификации прикладного решения разработчик избавлен от необходимости каких-либо действий по непосредственному изменению структуры полей базы данных прикладного решения.
Разработчику достаточно путем визуального конструирования описать структуру используемых объектов прикладного решения, состав их реквизитов, табличных частей, форм и пр.
Все действия по созданию или изменению структуры таблиц базы данных платформа выполнит самостоятельно, на основании состава объектов прикладного решения и их характеристик.
Например, для того, чтобы в справочнике сотрудников появилась возможность хранить сведения о составе семьи сотрудника, разработчику «1С:Предприятия 8» не нужно создавать в базе данных специальную новую таблицу, задавать правила, по которым данные, хранящиеся в этой таблице, будут связаны с данными из основной таблицы, программировать алгоритмы совместного доступа к данным этих таблиц, создавать алгоритмы проверки прав доступа к данным, находящимся в подчиненной таблице и пр.
Все, что требуется сделать разработчику — щелчком мыши добавить к справочнику табличную часть и задать два ее строковых реквизита: Имя и Родство. При сохранении или обновлении конфигурации платформа самостоятельно выполнит реорганизацию структуры базы данных, создаст необходимые таблицы и т.д.
Объектный / табличный доступ к данным
Штатной возможностью «1С:Предприятия 8» является поддержка двух способов доступа к данным — объектного (для чтения и записи) и табличного (для чтения).
В объектной модели разработчик оперирует объектами встроенного языка. В этой модели обращения к объекту, например документу, происходят как к единому целому — он полностью загружается в память, вместе с вложенными таблицами, к которым можно обращаться средствами встроенного языка как к коллекциям записей и т.д.
При манипулировании данными в объектной модели обеспечивается сохранение целостности объектов, кэширование объектов, вызов соответствующих обработчиков событий и т.д.
В табличной модели все множество объектов того или иного класса представляется как совокупность связанных между собой таблиц, к которым можно обращаться при помощи запросов — как к отдельной таблице, так и к нескольким таблицам во взаимосвязи:
В этом случае разработчик получает доступ к данным сразу нескольких объектов, что очень удобно для анализа больших объемов данных, например, при создании отчетов. Однако в силу того, что данные, выбираемые таким способом, содержат не все, а лишь некоторые реквизиты анализируемых объектов, табличный способ доступа не позволяет изменять эти данные.
база данных | Community Creatio
Приветствую, уважаемые коллеги!
В данной статье я хочу привлечь внимание не только разработчиков, но и партнёров Террасофт и их представителей.
Сегодня я расскажу Вам о преимуществах и выгодах использования приложения для оперативной проверки структуры базы данных (далее — БД) на корректность (https://marketplace.terrasoft.ru/app/database-structure-check).
Проблематика.
После накатывания нового функционала на тестовую среду могут появиться ошибки структуры БД. Их особенности:
- не всегда очевидны.
- разработчиков может сбивать с толку тот факт, что на рабочей среде всё работает, а на тестовой – нет.
- поиск и устранение может занять длительное время.
Всё это снижает эффективность разработки/обслуживания, приводит к дополнительным расходам ресурсов.
После накатывания на промышленную среду могут также появиться ошибки. Они имеют ту же природу, но масштаб их разрушительного действия уже выше, т.к. это промышленная среда, соответственно, плюс к проблемам выше:
- падает надёжность системы.
- повышается вероятность аварии.
Особенно это актуально, когда «окно» для обновления промышленной среды очень небольшое. Чем больше проект в плане доработок, тем больше ошибок структуры БД может возникать.
При использовании приложения все эти проблемы можно успешно решить!
Целевая аудитория.
Обращаю внимание партнёров Terrasoft: приложение предназначено для среднего и крупного бизнеса. То есть, основные преимущества от его использования получает именно клиент. Приложение универсально и подойдёт практически всем клиентам, у которых есть потребность в доработке базовых продуктов.
Степень необходимости приложения может варьироваться. Если в ходе выяснения потребностей выясняется, что:
- будет большой проект (или уже есть) со сложными связями между сущностями системы.
- есть потребность в максимальной надёжности.
- у клиента только небольшие «окна» для обновления промышленной среды.
- есть потребность в повышении эффективности разработки и обслуживания (клиент хочет как можно скорее получить готовую систему в пользование).
- есть потребность в повышении устойчивости к авариям системы.
— это всё покажет рост степени необходимости приложения. Я настоятельно рекомендую устанавливать приложение всем клиентам в случае, если имеет место хотя бы один пункт выше.
Выгоды.
Какие выгоды получит клиент от использования приложения? Как правило, это выгоды в долгосрочной перспективе. Клиент:
- получит дополнительную меру повышения надёжности системы.
- сэкономит ресурсы на обнаружение ошибок структуры БД.
- обеспечит повышение эффективности разработки и обслуживания системы.
- обеспечит повышение устойчивости системы к авариям из-за ошибок структуры БД.
Есть также выгоды для разработчиков, облегчающие некоторые аспекты разработки/сопровождения. Разработчики:
- смогут пользоваться самым рациональным решением для проверок структуры БД, которое не имеет аналогов.
- смогут пользоваться всем функционалом приложения в один клик.
- смогут проверять структуру БД на корректность в течение нескольких секунд.
- смогут оперативно выявлять отсутствующие таблицы и/или их колонки, обнаруживать несоответствия типов полей.
- после проверки структуры БД смогут понять, для каких объектов необходимо произвести повторное обновление структуры БД.
- после успешного анализа, будут точно знать, что БД целевой среды содержит все требуемые системой таблицы/поля, и что типы всех полей всех таблиц правильные.
Преимущества.
- Поиск ошибок структуры БД. Приложение выявляет отсутствующие таблицы и/или их колонки, а также обнаруживает несоответствия типов полей.
- Повышение надёжности. Использование приложения повышает надёжность системы за счёт минимизации времени, в течение которого в структуре БД есть ошибки.
- Экономия ресурсов. Использование дополнения сокращает расходы на обнаружение ошибок структуры БД. В ряде случаев очень серьёзно сокращает расходы.
- Подтверждение целостности. После успешного анализа, специалист будет точно знать, что база данных целевой среды содержит все требуемые системой таблицы/поля, и что типы всех полей всех таблиц соответствуют требуемым типам.
- Повышение эффективности разработки и обслуживания. Это происходит за счёт экономии ресурсов при использовании приложения, а также за счёт ускорения обнаружения ошибок структуры БД.
- Простота использования. Запуск функционала в один клик.
- Быстрая скорость работы. Проверка структуры БД в течении нескольких секунд.
- Простая и удобная форма отчёта приложения. После проверки, в случае наличия ошибок, специалисту будет предоставлено подробное информационное сообщение. Разработчик сразу поймёт, для каких объектов необходимо произвести повторное обновление структуры БД.
- Локализация на английский язык. Поддержка не только русского языка, но и английского.
- Самое рациональное решение для проверок структуры БД. На самом деле, можно проверить вручную, но это дольше (просмотреть все разделы, вкладки, детали, а также проверить работоспособность всего разработанного функционала) и не всегда возможно проверить вообще всё. Зачастую такого количества времени просто нет.
- Уникальность. Инструмент для проверки структуры БД не имеет аналогов на маркетплейс.
- Смешная цена. За год использования, то есть возможно продление на следующий год. Продлевать нет смысла только если разработка/обслуживание полностью завершены. Экспертные продажи.
- Повышение устойчивости системы к авариям, вызванным ошибками структуры БД. Использование приложения позволяет обнаружить ошибки БД сразу же после обновления целевой среды, после чего сразу предпринять действия для исправления найденных ошибок.
Совместимость.
Приложение совместимо со всеми продуктами на платформе bpm’online (с версии 7.11, на остальных нужно тестировать, но скорее всего работать будет).
В данный момент не поддерживается работа на системах, для которых используется СУБД Oracle.
Большое спасибо всем, кто дочитал до конца!
Буду рад любым предложениям по совершенствованию продукта!
С уважением, Сергей Кузнецов.
Тест по теме бд с ответом
Тест по теме: «Базы данных»
1 вариант
Базы данных (БД) – это:
— совокупность электронных таблиц и всего комплекса аппаратно – программных средств для их хранения; изменения и поиска информации; для взаимодействия с пользователем;
– организованная совокупность данных, предназначенная для длительного хранения во внешней памяти компьютера и постоянного применения;
– программное обеспечение, управляющее хранением и обработкой данных;
– настраиваемые диалоговые окна, сохраняемые в компьютере в виде объектов специального типа.
По характеру хранимой информации БД бывают:
Фактографические
Централизованные
Иерархические
Укажите системы управления БД:
Microsoft Access
Open Office.org Calc
Microsoft Power Point
Поле БД – это
Строка таблицы, содержащая набор значений свойств, в столбцах БД
Заголовок таблицы БД
Столбец таблицы, содержащий значения определённого свойства
Перечислите недостатки табличных БД:
Возможность видеть одновременно несколько записей
Содержит большое количество полей
Легко просматривать и редактировать данные
Кто определяет количество полей в БД?
Пользователь
Разработчик
И разработчик, и пользователь
Какие данные не могут быть ключом БД?
Номер паспорта
Дата рождения
Логин эл. почты + пароль
Чем запрос отличается от фильтра?
Ничем
Запрос является самостоятельным объектом БД
Запрос может быть простым и сложным
Закончите предложение: «Реляционная БД состоит из … »
Установите соответствие:
Тип ИС Отличительные особенности типов ИС
Локальные БД и СУБД находятся на одном компьютере
Файл-серверные БД и основная СУБД находятся на сервере, СУБД на рабочей станции посылает запрос и выводит на экран результат
Клиент-серверные БД находится на сервере сети, а СУБД – на компьютере пользователя
СУБД находится на сервере, а БД – на компьютере пользователя
Тест по теме: «Базы данных»
2 вариант
Информационные системы (ИС) – это:
— совокупность баз данных и всего комплекса аппаратно – программных средств для их хранения; изменения и поиска информации; для взаимодействия с пользователем;
– упорядоченные наборы данных;
– программное обеспечение, предназначенное для работы с базами данных;
– важнейший инструмент для отбора данных на основании заданных условий.
По способу хранения данных БД бывают:
Фактографические
Распределённые
Табличные
Укажите системы управления БД:
Microsoft Excel
Open Office.org Base
Open Office.org Writer
Запись БД – это
Столбец таблицы, содержащий значения определённого свойства
Строка таблицы, содержащая набор значений свойств в полях БД
Заголовок таблицы БД
Перечислите достоинства БД — форма:
Возможность видеть одновременно несколько записей
Содержит большое количество полей
Легко просматривать и редактировать данные
Поля каких типов не может содержать БД?
картинка
счётчик
ярлык
Какие данные могут быть ключом БД?
Номер паспорта
Номер дома
Цвет волос
Чем фильтр отличается от запроса?
Ничем
Фильтр может быть простым и сложным
Фильтр привязан к конкретной таблице
Закончите предложение: « Локальная ИС состоит из … , находящихся на одном компьютере»
Установите соответствие:
Отличительные особенности типов БД Тип БД
Набор узлов, в котором каждый может быть связан с каждым Табличные
Данные в виде одной таблицы Сетевые
Набор взаимосвязанных таблиц Иерархические
Реляционные
Тест по теме: «Базы данных»
3 вариант
Системы управления базами данных – это:
– инструмент для печати данных, содержащихся в таблицах и запросах, в красиво оформленном виде;
– настраиваемые диалоговые окна, сохраняемые в компьютере в виде объектов специального типа;
— совокупность баз данных и всего комплекса аппаратно – программных средств для их хранения; изменения и поиска информации; для взаимодействия с пользователем;
– программа, позволяющая создавать базы данных, а также обеспечивающая обработку (сортировку) и поиск данных
По структуре организации данных БД бывают:
Централизованные
Документальные
Сетевые
Укажите системы управления БД:
Open Office.org Calc
Microsoft Word
Microsoft Access
В табличных БД полем называются
Однородные данные обо всех объектах
Наборы данных об одном объекте
Заголовки таблицы БД
Перечислите недостатки БД — форма:
Возможность видеть только одну запись
Содержит большое количество полей
Легко просматривать и редактировать данные
Какое свойство не является свойством поля БД?
Размер поля
Цвет поля
Обязательное поле
Какие данные не могут быть ключом БД?
Цвет глаз
ИНН+СНИЛС
Логин эл. почты + пароль
Что называют сортировкой данных в БД?
Отбор записей, удовлетворяющих условиям поиска
Вывод на печать упорядоченных записей
Упорядочение записей по значениям одного из полей
Закончите предложение: «Иерархическая БД имеет … структуру»
Установите соответствие:
Тип ИС Отличительные особенности типов ИС
Локальные СУБД находится на сервере, а БД – на компьютере пользователя
Файл-серверные БД и основная СУБД находятся на сервере, СУБД на рабочей станции посылает запрос и выводит на экран результат
Клиент-серверные БД находится на сервере сети, а СУБД – на компьютере пользователя
БД и СУБД находятся на одном компьютере
Тест по теме: «Базы данных»
4 вариант
Системы управления базами данных – это:
– важнейший инструмент для отбора данных на основании заданных условий;
– программа, позволяющая создавать базы данных, а также обеспечивающая обработку (сортировку) и поиск данных
– настраиваемые диалоговые окна, сохраняемые в компьютере в виде объектов специального типа;
— совокупность баз данных и всего комплекса аппаратно – программных средств для их хранения; изменения и поиска информации; для взаимодействия с пользователем;
По характеру хранимой информации БД бывают:
Документальные
Распределённые
Иерархические
Укажите системы управления БД:
Microsoft Excel
Open Office.org Impress
Open Office.org Base
В табличных БД запись содержит
Набор данных об одном объекте
Название базы данных
Однородные данные обо всех объектах
Перечислите достоинства табличных БД:
Возможность видеть одновременно несколько записей
Содержит большое количество полей
Сложно просматривать и редактировать данные
Какое свойство не является свойством поля БД?
Формат поля
Цвет поля
Обязательное поле
Какие данные могут быть ключом БД?
ИНН+СНИЛС
Город проживания
Имя
Для чего предназначены отчёты в БД?
Для упорядочения записей в определённой последовательности
Для отбора записей, удовлетворяющим определённым условиям
Для печати данных, содержащихся в таблицах и запросах, в красиво оформленном виде
Закончите предложение: «Реляционная БД состоит из … »
Установите соответствие:
Отличительные особенности типов БД Тип БД
В виде многоуровневой структуры Табличные
Набор взаимосвязанных таблиц Сетевые
Набор узлов, в котором каждый может быть связан с каждым Иерархические
Реляционные
Эталон ответов БД
1в 2в 3в 4в
B
A
A
C
B
B
B
B
Из одной или нескольких взаимосвязанных таблиц
1-A, 2-C, 3-B A
B
B
B
C
C
A
C
БД и СУБД
A-2, B-1, C-4 D
C
C
A
A
B
A
C
Многоуровневую
1-D, 2-C, 3-B B
A
C
A
A
B
A
C
.
A-3, B-4, C-2
Логические поля в базах данных, есть ли противоядие / Хабр
Часто в таблицах содержится большое количество логических полей, проиндексировать все из них нет возможности, да и эффективность такой индексации низка. Тем не менее, для работы с произвольными логическими выражениями в SQL пригоден механизм многомерной индексации о чем и пойдёт речь под катом.
В SQL логические поля используются в основном в двух случаях. Во-первых, когда действительно нужен бинарный атрибут, например, ‘купля/продажа’ в таблице сделок. Такие атрибуты редко меняются со временем.
Во-вторых, для записи состояния конечного автомата, которым описывается запись. Имеется в виду, что логический объект, соответствующий записи таблицы, проходит ряд состояний, число которых и переходы между которыми определяются прикладной логикой. Простой пример — техника “soft-delete”, когда запись физически не уничтожается, а только помечается как удалённая.
Если автомат сложный, таких полей может быть изрядное количество, в одной из наших таблиц 58 (+14 устаревших) таких полей (включая наборы флагов) и это не что-то из ряда вон выходящее. Так не было задумано изначально, но по мере развития продукта и изменения внешних требований развиваются и соответствующие автоматы, приходят и уходят разработчики, меняются аналитики… в какой-то момент может оказаться безопаснее завести новый флаг, нежели разбираться во всех хитросплетениях. Тем более что накопились исторические данные и их состояния обязаны оставаться адекватными.
оффтопЧем-то это похоже на эволюционный процесс, когда в геноме хранится масса информации/механизмов, которые на первый взгляд и не нужны вовсе, но избавиться от них невозможно. С другой стороны, стоит относиться с уважением к этим механизмам, ведь именно они позволили эволюционным предшественникам выжить (в том числе во время
великих вымираний) и победить в эволюционной гонке. Опять же, кто знает, куда заведет нас эволюция и что окажется полезным в дальнейшем.
Завести флаг означает не только добавить поле соответствующего типа, но и учесть его в работе автомата, какие состояния оно затрагивает, в каких переходах участвует. На практике это выглядит так:
- процесс или ряд процессов, назовём их “писателями”, создают новые записи в начальном состоянии (возможно, в одном из начальных состояний)
- ряд процессов, назовём их “читателями”, время от времени читают объекты, находящиеся в нужных им состояниях
- ряд процессов, назовём их “обработчиками”, следят за конкретными состояниями и исходя из прикладной логики меняют эти состояния. Т.е. осуществляют деятельность конечного автомата.
Для того чтобы выбрать записи, находящиеся в конкретном состоянии, редко когда достаточно фильтрации по одному из булевых полей. Обычно это целое выражение, иногда нетривиальное. Казалось бы, надо проиндексировать эти поля и SQL-процессор сам разберётся. Но не всё так просто.
Во первых, булевых полей может быть много, индексировать их все было бы слишком расточительно.
Во вторых, это может оказаться бесполезным т.к. селективность по каждому из полей будет низкой, а совместная вероятность статистикой SQL-процессора не покрывается.
Пусть, в таблице T1 есть два булевых поля: F1 & F2, а запрос
select F1, F2, count(1) from T1 group by F1, F2
выдаёт
Т.е. хотя, по F1 & F2 выпадение true и false равновероятно, сочетание (true,false) выпадает только один раз из тысячи. В результате, если раздельно проиндексировать F1 & F2
и принудить использовать эти индексы в запросе, SQL-процессору пришлось бы прочитать по половине обоих индексов и пересечь результаты. Возможно, дешевле прочитать всю таблицу и вычислить выражение для каждой строчки.
И даже если собирать статистику по исполненным запросам, толку от нее будет мало т.к. статистика конкретно по полям, отвечающим за состояние автомата очень сильно плавает. Ведь в любой момент может прийти “обработчик” и половину строк из состояния S1 перевести в S2.
Для работы с такими выражениями напрашивается многомерный индекс, алгоритм которого был представлен ранее и неплохо себя зарекомендовал.
Но прежде требуется разобраться каким образом произвольное логическое выражение превратится в запрос(ы) к индексу.
Дизъюнктивная нормальная форма
Единичный запрос к многомерному индексу представляет собой многомерный прямоугольник, ограничивающий пространство запроса. Если поле участвует в запросе, для него задаётся ограничение. Если нет, прямоугольник по этой координате ограничен только разрядностью данной координаты. Логические координаты имеют разрядность 1.
Поисковый запрос в таком индексе является цепочкой из & (конъюнкцией), например, выражение: v1 & v2 & v3 & (!v4), эквивалентно v1:[1,1], v2:[1,1], v3:[1,1], v4:[0,0]. А все остальные поля имеют диапазон: [0,1].
Учитывая это, наш взор сразу обращается в сторону ДНФ — одной из канонических форм логических выражений. Утверждается, что любое выражение может быть представлено к виду дизъюнкции конъюнкций литералов. Под литералом здесь понимается логическое поле или его отрицание.
Иными словами, путём нехитрых манипуляций, любое логическое выражение может быть представлено в виде дизъюнкции нескольких запросов к многомерному логическому индексу.
Есть и одно НО. Такое преобразование в некоторых случаях может привести к экспоненциальному росту размера выражения. Например, преобразование из
приводит к выражению размером в 2**n термов. В таких случаях прикладному разработчику стоит задуматься о физическом смысле того, что он делает, а со стороны SQL процессора всегда можно отказаться от использования логического индекса, если число конъюнкций превышает пределы разумного.
Алгоритм многомерной индексации
Для многомерной индексации используются свойства самоподобной нумерующей кривой на основе гипер-кубических симплексов со стороной 2. Как
оказалось, практическое значение имеют два варианта таких кривых — Z-кривая и кривая Гильберта.
Фиг.1 двумерная Z-кривая, 3 и 6 итерации
Фиг.2 двумерная кривая Гильберта, 3 и 6 итерации
- N-мерный симплекс со стороной 2 имеет 2**n вершин и (2**n-1) переходов между ними.
- Элементарная итерация симплекса превращает каждую вершину симплекса в симплекс нижнего уровня.
- Проделав нужное число итераций, можно построить гипер-кубическую решетку любого размера.
- При этом каждый узел этой решетки будет иметь свой уникальный номер — путь, проделанный по нумерующей кривой от ее начала. При этом каждый узел этой решетки имеет значение по каждой из координат. Фактически, нумерующая кривая переводит многомерную точку в одномерное значение, пригодное для индексации обычным B-деревом.
- Все узлы, находящиеся внутри симплекса любого уровня, находятся в пределах одного интервала и этот интервал не пересекается ни с одним симплексом того же уровня.
- Следовательно, любой поисковый прямоугольник (параллелепипед) может быть разбит на небольшое число гипер-кубических подзапросов, в пределах каждого из которых индекс может быть прочитан одним поиском/траверзом.
- К этому добавим магию низкоуровневой работы с B-деревом для того, чтобы не делать бесполезные запросы и … алгоритм готов.
Вот как это работает на практике:
Фиг.3 Пример поиска в двумерном индексе (Z-кривая)
На фиг.3 показано разбиение исходного поискового экстента на подзапросы и найденные при этом точки. Использовался двумерный индекс, построенный на случайном равномерно распределенном наборе 100 000 000 точек в экстенте [1 000 000, 1 000 000].
Логический многомерный индекс
Раз уж речь зашла о многомерном индексировании, самое время задуматься, а насколько многомерным он может быть? Есть ли какие-то объективные ограничения?
Конечно, ведь B-дерево имеет страничную организацию и для того, чтобы быть деревом, на странице должно гарантированно помещаться не менее двух элементов. Если принять страницу за 8К, значит на хранение одного элемента не может уходить больше 4К. В 4К без сжатия влезает около 1000 32-разрядных значений. Это довольно много, выше пределов любого разумного применения, можно сказать, что физические пределы практически не доступны.
Есть и другая сторона, каждое дополнительное измерение отнюдь не бесплатно, на него уходит дисковое пространство и замедляется работа. С точки зрения “физического смысла”, в один индекс должны попадать поля, которые меняются одновременно и поиск по ним тоже идёт совместно. Никакого смысла индексировать всё подряд нет.
С логическими полями всё по другому. Как мы видели, в одних и тех же механизмах могут быть задействованы десятки логических полей. А затраты на хранение/чтение довольно малы. Есть соблазн собрать всё без исключения логические поля в одном индексе и посмотреть что получится.
Правда, есть нюансы:
- До сих пор в индексируемом значении разряды разных координат перемешивались, в младших разрядах ключа оказывались младшие разряды координат … Поэтому порядок следования полей при индексации не имел значения.
- Теперь же на хранение значения одного логического поля тратится один разряд. Т.е. какие-то логические поля попадут в конец ключа, а какие-то в начало. А это означает, что фильтрация по части полей будет проходить очень эффективно, а по некоторым очень неэффективно. В самом деле, если мы делаем поиск по самому младшему разряду, придётся прочитать весь индекс чтобы получить ответ. Но это (скорее всего) лучше, чем прочитать всю таблицу, чтобы ответить на тот же вопрос.
- Возникает проблема выбора — все логические поля равны, но некоторые окажутся равнее прочих. Из общих соображений, необходимо смотреть на перекосы статистики, чем сильнее соотношение true/false для конкретного поля отстоит от равновесного, тем старше должен быть разряд, в котором окажется его значение.
- Исчезает разбиение по типу нумерующей кривой, если раньше приходилось выбирать между Z-кривой и кривой Гильберта, на одноразрядных данных практической разницы нет.
- NULL-ы. Если исходить из того, что NULL — это не неизвестное значение, а отсутствие какого бы то ни было значения, то такие записи не должны попадать в индекс. В одномерных индексах так и происходит. Но в нашем случае может оказаться, что часть логических полей содержит значения, а часть нет. В результате мы не можем положить это в индекс т.к. алгоритм поиска не умеет работать с троичной логикой. А следовательно, такие записи должно быть невозможно вставить в таблицу (при наличии многомерного индекса, необязательно логического, кстати)
Ожидается, что логический многомерный индекс может в некоторых случаях работать не слишком эффективно. Строго говоря, любой индекс может работать неэффективно, если слишком большое количество данных попадает в область поиска. Но для логического многомерного индекса это усугубляется описанной выше зависимостью от порядка полей, когда ради небольшого результата придётся прочитать весь индекс. Насколько это является проблемой на практике, может показать только эксперимент.
Численный эксперимент
Построение индекса:
- индекс будет 128-разрядным, т.е. построен по 128 логическим полям
- и будет содержать 2**30 элементов
- значением элемента индекса будет число от 0 до 2**30
- ключом элемента индекса будет то же число, сдвинутое на 48 разрядов влево, т.е. логические поля с 48 по 78 будут заполнены разрядами числа в том же порядке
- в результате получим 30 значимых логических полей в середине ключа, остальные разряды будут заполнены 0
- Каждое из логических полей имеет равную статистику true/false
- Все они статистически независимы
Поиск:
- Каждому эксперименту соответствует выбор нескольких подряд идущих логических полей и задание для них поисковых значений. Не потому, что алгоритм умеет искать только полосами, а из-за того, что так можно нагляднее представить результаты эксперимента, имеем всего две размерности — ширина полосы и её положение
- Всего 24 серии экспериментов. В каждой серии будем искать такие значения, где полоса логических полей соответствующей ширины N (от 1 до 24 разрядов) принимает значение true.
- В каждой серии будет подсерия экспериментов, в которой полоса логических полей выбранной ширины располагается с различными сдвигами S от начала полосы в 30 значимых логических полей. Всего (30-N) экспериментов в подсерии.
- В каждом эксперименте делается поиск всех элементов индекса, удовлетворяющих условию, т.е. поля с номерами в интервале [48 + S, 48 + S + N -1] будем искать в интервале [1,1], остальные — в интервале [0,1]
- Поиск делается с холодного старта
- Результатом является число прочитанных дисковых страниц, с учетом кэширования (кэш на 4096 страниц)
- Контроль правильности работы делается двумя путями — число найденных элементов должно быть равно 2**(30-N) и в найденных значениях можно проверить соответствующие разряды
Итак,
Фиг.4 Результаты, число прочитанных страниц в разных сериях
По Y — отложены количества прочитанных страниц.
По X — сдвиг полос от самого младшего (48) разряда к старшему. Полосы разной ширины подписаны и отмечены разными цветами.
Фиг.5 Те же данные что и Фиг.4, другое представление
По X — сдвиг полосы
По Y — ширина полосы
Что следует отметить:
- хотя на картинках это прямо не видно, индекс работает правильно, это видно и по числу найденных элементов и по содержанию самих элементов
- все полосы шириной не больше 10 со сдвигом 0 требуют сплошного чтения индекса
- полосы шириной от 1 до 18 с ростом сдвига выходят на асимптоту 2**(-N) от размера всего индекса, что логично
- для более широких полос асимптота — высота дерева, меньше неё чтений быть не может
- на листовой странице индекса помещается чуть больше 1000 элементов, это видно по полосе шириной 10, которая при сдвиге 0 уже не требует чтения всего индекса, некоторые страницы удаётся пропускать
- низкоуровневая фильтрация работает на удивление хорошо. Рассмотрим полосу шириной 10. Идеальный для поиска вариант — со сдвигом 20 (всего 30 значимых полей), когда в префиксе вообще нет неопределенных полей, данные можно найти единственным траверзом. В этой ситуации при поиске читается примерно 1/1000 индекса — 779 страниц.
Промежуточный случай — сдвиг 10, у нас префикс и суффикс в 10 неизвестных полей. Число страниц — 2484, всего втрое хуже, чем в идеальном случае.
И даже в худшем случае со сдвигом в 0 (префикс в 20 неизвестных полей) удаётся пропускать какие-то страницы.
В целом можно признать алгоритм многомерной индексации работоспособным даже в таком доведенном до абсурда случае.
А ведь рассматривается самый неудачный с точки зрения логического индекса вариант — равновероятные состояния по всем независимым логическим полям.Эксперимент на реальных данных
Таблица
Trades, всего 278 479 918 строк, данные одного из тестовых контуров.
Результаты выполнения некоторых запросов в таблице ниже:
На чтение/обработку одной страницы в среднем уходит 0.8 мсек.
Нет необходимости описывать смысл конкретных запросов, они здесь просто для демонстрации работоспособности. Которая, кстати, подтверждена.
Но прежде чем данная техника сможет принести практическую пользу, предстоит еще очень много сделать. Так что, продолжение следует.
Введение в типы данных и свойства полей
Определяет способ отображения поля при его отображении или печати в таблицах данных, а также в формах или отчетах, привязанных к полю. Вы можете использовать предопределенный формат или создать свой собственный формат.
Список предустановленных форматов
Общая дата По умолчанию, если значение представляет собой только дату, время не отображается; если значение — только время, дата не отображается.Этот параметр представляет собой комбинацию параметров короткой даты и длительного времени.
Примеры
03.04.07
17:34:00
03.04.07 17:34:00
Long Date То же, что и настройка Long Date в региональных настройках Windows.Пример: суббота, 3 апреля 2007 г.
Средняя дата Дата отображается в формате дд-ммм-гггг. Пример: 3 апреля 2007 г.
Short Date То же, что и настройка Short Date в региональных настройках Windows. Пример: 03.04.07.
Предупреждение: Параметр «Краткая дата» предполагает, что даты между 01.01.00 и 31.12.29 являются датами двадцать первого века (то есть предполагается, что годы будут с 2000 по 2029 годы).Даты между 30 января и 31 декабря 1999 года считаются датами двадцатого века (т. Е. Предполагается, что это года с 1930 по 1999 годы).
Long Time То же, что и настройка на вкладке Time в региональных настройках Windows. Пример: 17:34:23.
Среднее время Отображает время в часах и минутах, разделенных символом-разделителем времени, за которым следует индикатор AM / PM.Пример: 17:34.
Краткое время Отображает время в виде часов и минут, разделенных разделителем времени, в 24-часовом формате. Пример: 17:34.
Списки компонентов, которые можно использовать в пользовательских форматах
Введите любую комбинацию следующих компонентов, чтобы создать собственный формат.Например, чтобы отобразить неделю года и день недели, введите ww / w .
Важно: Пользовательские форматы, несовместимые с настройками даты и времени, указанными в региональных настройках Windows, игнорируются. Дополнительные сведения о региональных настройках Windows см. В справке Windows.
Детали сепаратора
Примечание. Разделители устанавливаются в региональных настройках Windows.
: Разделитель времени. Например, чч: мм
/ Разделитель даты. Например, ммм / гггг
Любая короткая строка символов, заключенная в кавычки ( «» ) Пользовательский разделитель. Кавычки не отображаются. Например, «,» отображает запятую.
Компоненты формата даты
d День месяца в виде одной или двух цифр, по мере необходимости (от 1 до 31).
dd День месяца в виде двух цифр (от 01 до 31).
ddd Первые три буквы дня недели (с воскресенья по субботу).
dddd Полное название дня недели (с воскресенья по субботу).
w День недели (с 1 по 7).
ww Неделя года (с 1 по 53).
m Месяц года в виде одной или двух цифр, по мере необходимости (от 1 до 12).
мм Месяц года в виде двух цифр (от 01 до 12).
ммм Первые три буквы месяца (с января по декабрь).
мммм Полное название месяца (с января по декабрь).
q Квартал года (с 1 по 4).
y Число дня в году (от 1 до 366).
yy Последние две цифры года (от 01 до 99).
гггг Отображает все цифры в году от 0001 до 9999 в зависимости от поддерживаемого диапазона даты и времени.
Компоненты формата времени
ч Час, состоящий из одной или двух цифр, по мере необходимости (от 0 до 23).
чч Час в двух цифрах (от 00 до 23).
n Минуты, состоящие из одной или двух цифр, в зависимости от необходимости (от 0 до 59).
nn Минуты, состоящие из двух цифр (от 00 до 59).
с Секунда, состоящая из одной или двух цифр, по мере необходимости (от 0 до 59).
ss Секунда, состоящая из двух цифр (от 00 до 59).
Компоненты формата часов
AM / PM Двенадцатичасовые часы с прописными буквами «AM» или «PM», в зависимости от ситуации. Например, , 21:34, .
am / pm Двенадцатичасовые часы со строчными буквами «am» или «pm», в зависимости от ситуации.Например, 21:34 .
A / P Двенадцатичасовые часы с прописной буквой «A» или «P», в зависимости от ситуации. Например, 9: 34P .
a / p Двенадцатичасовые часы со строчной буквой «a» или «p», в зависимости от случая. Например, 9: 34p .
AMPM Двенадцатичасовые часы с соответствующим обозначением утра / дня, как определено в региональных настройках Windows.
Стандартные форматы
c То же, что и предварительно определенный формат «Общая дата».
ddddd То же, что и предопределенный формат короткой даты.
dddddd То же, что и предопределенный формат длинной даты.
ttttt То же, что и предопределенный формат Long Time.
Определение полей в таблицах — ArcMap | Документация
Поля — это компоненты, которые обеспечивают структуру таблицы. У вас не может быть таблицы без полей. Например, вы можете создать пустую таблицу, в которой определены поля, но нет строк (записей).
В базах данных поля используются для поддержания отношений между таблицами. Это делается путем создания совпадающих полей в двух или более таблицах. Например, если вы сохранили таблицу с именем toy_store в базе данных, а также сохранили таблицу персонала для отслеживания сотрудников в каждом магазине, вы должны создать общее поле между двумя таблицами, которое будет заполнено, например, идентификатором магазина. .Значение идентификатора магазина для конкретного магазина игрушек будет одинаковым в обеих таблицах.
Ниже в таблицу toy_store добавлено поле STORE_ID:
Показана таблица магазина игрушек с полем STORE_ID.Таблица toy_store связана с таблицей сотрудников по идентификатору магазина. В таблице ниже показаны три сотрудника Play House:
Таблица сотрудников связана с таблицей магазина игрушек с помощью поля STORE_ID.Некоторые поля также используются для поддержания отношений между таблицами и их индексами атрибутов.
Поля в таблице хранят данные одной и той же категории с одним и тем же типом данных. Например, если у вас есть поле имени в таблице клиентов, все записи для этого поля представляют собой имена клиентов и хранятся в виде текста. Вы не будете смешивать записи, то есть вы не будете помещать имя клиента в это поле для одной записи и название продукта в то же поле для другой записи.
Когда вы создаете таблицу или добавляете поля в существующую таблицу, вы определяете тип данных, используемый для хранения данных в каждом поле.В некоторых случаях вы также указываете длину поля.
Имена полей
Имена полей — это имена, которые вы даете столбцам в таблице. Имена должны указывать, какие данные содержатся в каждом столбце. Например, когда вы создаете класс пространственных объектов в ArcCatalog, таблица предварительно заполняется полем идентификатора объекта и полем формы. Поле идентификатора объекта содержит уникальный номер идентификатора для каждого объекта в классе пространственных объектов. Поле формы определяет тип формы, хранящейся в классе пространственных объектов: точка, линия, многоугольник, мультиточка или мультипатч.
Вы также можете использовать заданные фразы для обозначения типа столбца. Например, если вы создаете отдельный уникальный идентификатор для таблицы, которую будете использовать для целей индексации, вы можете назвать поле ID_UK, указав UK, что это уникальный ключ.
Имена полей в одной таблице должны быть уникальными; например, у вас не может быть двух столбцов с именем ObjectID. Имена полей также должны начинаться с буквы и не могут содержать пробелов или зарезервированных слов. См. Раздел Ограничения размера и имени файловой базы геоданных или Данные базы данных и ArcGIS для получения дополнительной информации об ограничениях, связанных с базой данных.
Некоторые имена полей отображаются в ArcGIS вместе с их полными именами для таблиц, хранящихся в многопользовательской базе геоданных. Например, если вы создаете или импортируете класс полигональных объектов, который содержит поле с именем Area, к нему добавляются база данных, схема и имя таблицы. Это имя, которое вы видите в таблице атрибутов класса пространственных объектов. Это означает, что для класса полигональных объектов с именем archsites, хранящегося в схеме prof базы данных музея, поле Area будет MUSEUM.PROF.ARCHSITES.ПЛОЩАДЬ.
В следующем списке содержатся все имена полей, которые полностью определены в многопользовательской базе геоданных:
- FID
- AREA
- LEN
- POINTS
- NUMOFPTS
- ENTITY
- EMINX 9000MA EINY
- EMINZ
- EMAXZ
- MIN_MEASURE
- MAX_MEASURE
Для таких случаев вы можете рассмотреть возможность использования другого имени поля или псевдонима поля.
Переименование полей
Вы можете переименовать поля в таблице или классе пространственных объектов на вкладке Поля диалогового окна Свойства. Поля в базе геоданных из выпуска ArcGIS 10 и более поздних версий поддерживают переименование, а поля в таблицах базы данных можно переименовывать.
Чтобы переименовать поле, щелкните правой кнопкой мыши класс пространственных объектов или таблицу в дереве Каталога и выберите Свойства. Щелкните вкладку Поля, чтобы увидеть список полей в этой таблице или классе объектов. Щелкните текст поля, которое вы хотите переименовать, и введите новое имя.Нажмите ОК, чтобы применить изменения и закрыть диалоговое окно «Свойства».
Следующие поля не могут быть переименованы:
- Поля ObjectID и globalID
- Любые поле, связанное с формой; Форма, длина формы, площадь формы
- включенные, вспомогательные роли или поля веса сети в сети класс пространственных объектов
- Поля представления
- Поля в классе пространственных объектов, участвующих в наборе сетевых данных, ландшафте, или набор данных участков
- Поля, используемые для отслеживания редактора
- Поля первичного и внешнего ключа класса отношений
- поле подтипа
- Растровые поля
Правила и ограничения имени поля
В следующей таблице перечислены поддерживаемые правила символов имени поля:
Дополнительные правила и ограничения имени поля следующие:
- Имена полей не могут содержать зарезервированные слова, например все или результат.
Дополнительные зарезервированные слова см. В документации по вашей системе управления базами данных (СУБД).
- Длина имен полей (столбцов) зависит от базовой базы данных.
См. Раздел Ограничения размера и имен файловой базы геоданных или Данные базы данных и ArcGIS для получения дополнительной информации об ограничениях, связанных с базой данных.
Псевдонимы полей
Псевдонимы полей позволяют назначать альтернативное имя для поля. Обычно вы используете как можно более короткие имена полей, чтобы передать, какие данные хранятся в этом поле.Вы также не можете использовать пробелы или специальные символы в имени поля, и, как показано выше, некоторые поля отображаются в таблице с их полностью определенными именами. В этих случаях вы можете использовать псевдоним поля, чтобы дать полю более информативное имя. Например, если у вас есть поле с именем ST_SUFX, в котором хранится тип улицы, который обозначается суффиксом, используемым в названии улицы, вы можете дать этому полю псевдоним суффикса названия улицы.
Узнайте, как установить псевдоним поля.
Совет:
Методы геообработки позволяют проверять имена таблиц и полей.
Использование доменов для управления значениями полей
Домены атрибутов — это правила, указывающие допустимые значения для поля в таблице в базе геоданных. Они обеспечивают целостность данных, ограничивая значения данных, которые пользователь может добавить в определенное поле.
Вы можете применять домены атрибутов к полям, только если для этого поля существует определяемый набор или диапазон конкретных значений. Например, поле, в котором хранится ответ на вопрос анкеты. Какая ваша любимая еда? сложно применить домен, так как можно дать большое количество ответов.Однако полю, хранящему данные о цвете глаз, может быть назначен атрибутный домен, потому что существует только несколько возможных допустимых значений.
- Черный
- Коричневый
- Синий
- Зеленый
- Хейзел
- Серый
- Фиолетовый
Использование атрибутивного домена для поля, в котором хранятся данные о цвете глаз, обеспечит согласованность значений. Если бы сборщикам данных было разрешено вводить любой цвет в текстовое поле для определения цвета глаз, вы могли бы получить любой из следующих значений для голубых глаз:
- Azure
- Navy
- Sky blue
- Cobalt
- Aquamarine
Домены атрибутов также предотвращают орфографические ошибки или опечатки.Даже если бы сборщики данных знали, что термин «синий» используется только для обозначения голубых глаз, они могли бы неправильно написать слово (bleu) или по ошибке нажать не ту клавишу при вводе слова (vlue) в текстовое поле.
Типы доменов атрибутов
Существует два типа доменов атрибутов, которые можно использовать для ограничения значений полей: домен кодированных значений и домен диапазона.
Область кодированных значений использует коды для определения набора допустимых значений для поля, в котором хранятся дискретные данные.
Вы можете использовать домен кодированных значений для любого типа данных.Для поля цвета глаз вы можете создать кодированный домен, используя один из следующих наборов кодов:
- Пример 1
- Blk = Черный
- Brn = Коричневый
- Синий = Синий
- Grn = Зеленый
- Hzl = Орешник
- Gra = серый
- Vlt = фиолетовый
- Пример 2
- 1 = черный
- 2 = коричневый
- 3 = синий
- 4 = зеленый
- 5 = ореховый
- 6 = серый
- 7 = фиолетовый
Домен диапазона определяет диапазон допустимых числовых значений для поля.
Поле должно иметь числовой тип данных или тип данных даты, чтобы использовать домен диапазона. Например, вы можете применить домен диапазона к полю, в котором хранятся данные о весе при рождении для одиноких живорождений западных низинных горилл в зоопарках. Диапазон может варьироваться от наименьшего веса (1 кг) до наибольшего (2,5 кг).
Для получения дополнительной информации об атрибутивных доменах см. Краткий обзор атрибутных доменов.
Чтобы узнать, как создать домен атрибутов, см. Создание нового домена диапазона атрибутов и Создание нового домена кодированных значений.
Использование подтипов
Подтипы — это классификации в классе пространственных объектов или таблице в базе геоданных. Они позволяют логически группировать функции на основе уникальных характеристик или поведения данных. Эта характеристика или поведение представлены значениями одного поля в таблице. Например, для таблицы гидрологии у вас могут быть подтипы для типов водных путей, таких как ручьи, ручьи, каналы, каналы и реки. Для каждого из этих подтипов можно применять различные правила топологии, правила подключения, значения по умолчанию и правила отношений.
Использование подтипов для хранения групп связанных функций может повысить производительность запросов. Если вы сохранили различные типы данных в отдельных классах пространственных объектов вместо использования подтипов, у вас будет большее количество классов пространственных объектов в базе данных, и поиск может занять больше времени.
При использовании подтипов применяются следующие правила:
- Только одно поле в таблице или классе пространственных объектов может иметь подтипы.
- Поле, на котором вы основываете подтип, должно быть длинным или коротким целочисленным полем.
- К разным подтипам можно применять разные правила топологии и отношений.
- К другим полям таблицы можно применять различные атрибуты или закодированные домены в зависимости от подтипов.
Чтобы применить подтипы, выполните следующие действия:
- Убедитесь, что поле, к которому будет применяться подтип, является коротким или длинным целочисленным полем. Если это не так, добавьте короткое или длинное целочисленное поле в таблицу или класс пространственных объектов. В большинстве случаев достаточно короткого целого числа.Однако, если есть вероятность, что значения вашего подтипа превысят 32 767, используйте поле длинного целого числа.
Например, для класса пространственных объектов рек вы можете добавить короткое целочисленное поле с именем Водораздел для создания подтипов на основе водосбора, в который река вносит свой вклад.
- На вкладке «Подтипы» диалогового окна «Свойства» для таблицы или класса пространственных объектов укажите поле подтипа, выбрав его в первом раскрывающемся списке.
В примере с реками выберите поле Watershed из списка Subtype Field.
Новый подтип автоматически добавляется в таблицу подтипов. Этот подтип по умолчанию имеет код 0 и описание нового подтипа.
- Дважды щелкните каждое из этих полей и введите код подтипа и описание.
Например, измените первый код на 1 и описание на название первого водораздела.
- При желании можно продолжить добавление кодов и описаний подтипов в таблицу подтипов.
В поле под кодом 1 вы можете добавить код 2 с соответствующим именем водораздела в поле Описание, а под ним добавить код 3 с соответствующим именем водораздела и так далее, пока вы не создадите коды и описания для все водоразделы, представленные в вашем классе пространственных объектов рек.
- Чтобы указать разные значения по умолчанию или домены для каждого подтипа, щелкните подтип в списке Подтипы. В списке «Значения по умолчанию и домены» при желании введите значение по умолчанию для любого поля в списке. Чтобы применить кодированный или атрибутный домен к полям в списке, щелкните поле «Домен» и выберите домен из раскрывающегося списка. Если доменов не существует, создайте его, нажав кнопку «Домены» в нижней части диалогового окна «Свойства», которая приведет вас к диалоговому окну «Домены рабочей области».
Указанные вами значения по умолчанию и домены применяются только к подтипу, который вы выбрали из списка «Подтипы». Если вы щелкните другой подтип в списке Подтипы, значения и домены по умолчанию будут либо пустыми (если вы не указали значения по умолчанию и домены для этого подтипа), либо содержат другие значения.
Дополнительные сведения о подтипах
Связанные темы
00294: Редактируемые сервисы объектов не могут содержать представления базы данных. это представление базы данных — ArcGIS Pro
Редактируемый векторный слой вы пытались опубликовать, включает представление базы данных.Представления часто используются для объединения двух или более таблиц вместе и не могут редактироваться в программном обеспечении ArcGIS; следовательно, вы не можете разрешить редактирование на векторном слое, который содержит вид, если векторный слой ссылается на зарегистрированную базу данных.
Совет:
Представления базы данных включают представления, зарегистрированные в базе геоданных, а также те, которые не зарегистрированы.
Решение
Как вы будете действовать, зависит от того, что вам нужно сделать. Используйте одно из следующих предложений для публикации необходимых данных в веб-слое или слоях:
- Если вам нужно отредактировать другие данные на карте и вам нужны только данные из представления в качестве справки, вы можете сделать следующее:
- Удалите вид с карты и опубликуйте другие данные на редактируемом векторном слое.
- Создайте отдельную карту, содержащую вид, и опубликуйте слой изображения карты или слой объектов только для чтения.
- Если ваше зарегистрированное хранилище данных является многопользовательской базой геоданных и вы используете представление для представления объединенных таблиц, которые необходимо отредактировать, вы можете сделать следующее:
- Удалить представление с карты.
- Создайте класс отношений между таблицами, которые вы объединяли вместе с помощью представления.
- Добавьте на карту таблицы, которые участвуют в классе отношений.
- Опубликуйте редактируемый векторный слой.
- Если вам не нужно редактировать какие-либо данные на карте (например, вы не изменили свойства векторного слоя по умолчанию перед попыткой публикации, даже если вам не нужно редактировать), снимите флажок Разрешить редактирование и разрешить редакторам устанавливать флажок, чтобы отключить редактирование и опубликовать векторный слой, доступный только для чтения.
Дополнительная информация
Дополнительные сведения см. В разделах Настройка векторного веб-слоя и Анализ вашего ГИС-ресурса.
Отзыв по этой теме?
Свяжите свои данные — Таблица
Отношения — это динамический и гибкий способ объединения данных из нескольких таблиц для анализа. Отношение описывает, как две таблицы связаны друг с другом, на основе общих полей, но не объединяет таблицы вместе. Когда между таблицами создается связь, таблицы остаются отдельными, сохраняя свой индивидуальный уровень детализации и доменов.
Думайте о взаимоотношениях как о контракте между двумя таблицами. Когда вы создаете визуализацию с полями из этих таблиц, Tableau вводит данные из этих таблиц, используя этот контракт для построения запроса с соответствующими соединениями.
Узнать больше : Возможность связать ваши данные — важная особенность новых возможностей моделирования данных Tableau. Для получения дополнительной информации см. Что изменилось с источниками данных и анализом.Узнайте больше о том, как работают отношения, в этих сообщениях блога Tableau:
Посмотреть видео : Обзор улучшений источника данных и введение в использование отношений в Tableau см. В этом 5-минутном видео.
Что такое отношения?
Отношения — это гибкие соединительные линии, создаваемые между логическими таблицами в источнике данных.Некоторые люди нежно называют отношения «лапшой», но мы обычно называем их «отношениями» в нашей справочной документации.
Мы рекомендуем использовать отношения в качестве первого подхода к объединению данных, поскольку они упрощают подготовку и анализ данных и делают их более интуитивно понятными. Используйте объединения только в случае крайней необходимости (ссылка открывается в новом окне).
Отношения обеспечивают несколько преимуществ по сравнению с использованием объединений для данных из нескольких таблиц:
- Типы соединения между таблицами настраивать не нужно.Вам нужно только выбрать поля, чтобы определить отношения.
- Связанные таблицы остаются отдельными и отличными друг от друга; они не объединяются в одну таблицу.
- Отношения используют объединения, но они автоматические. Tableau автоматически выбирает типы соединений на основе полей, используемых в визуализации. Во время анализа Tableau интеллектуально настраивает типы соединений и сохраняет исходный уровень детализации ваших данных.
- Tableau использует отношения для создания правильных агрегатов и соответствующих объединений во время анализа на основе текущего контекста полей, используемых на листе.
- В одном источнике данных поддерживается несколько таблиц с разными уровнями детализации. Вы можете создавать модели данных, содержащие больше таблиц, и уменьшать количество источников данных, необходимых для построения визуализации.
- Несовпадающие значения меры не удаляются (без случайной потери данных).
- Избегает дублирования данных и проблем с фильтрацией, которые иногда могут возникать в результате объединений.
- Tableau будет генерировать запросы только для данных, относящихся к текущему представлению.
Дополнительную информацию см .:
Требования к отношениям
- При связывании таблиц поля, определяющие отношения, должны иметь один и тот же тип данных.
- Вы не можете определять отношения на основе географических полей.
- Круговые отношения не поддерживаются в модели данных.
- Вы не можете редактировать отношения в опубликованном источнике данных.
- Вы не можете определить отношения между опубликованными источниками данных.
- Ваша книга должна использовать встроенный источник данных, чтобы вы могли редактировать отношения и параметры производительности на странице «Источник данных» в Tableau Online или Tableau Server.
Факторы, ограничивающие преимущества использования связанных таблиц:
- Грязные данные в таблицах (т.е. таблицы, которые не были созданы с учетом хорошо структурированной модели и содержат сочетание мер и измерений в нескольких таблицах), могут усложнить многотабличный анализ.
- Использование фильтров источника данных ограничит возможность Tableau выполнять отсечение соединений в данных. Отбор объединений — это термин для обозначения того, как Tableau упрощает запросы, удаляя ненужные объединения.
- Таблицы с множеством несогласованных значений в отношениях.
- Взаимосвязь нескольких таблиц фактов с несколькими таблицами измерений (попытка моделирования общих или согласованных измерений).
Данные, которые нельзя связать
Большинство типов реляционных соединений полностью поддерживаются. Кубы, SAP HANA (с атрибутом OLAP), JSON и Google Analytics ограничены одной логической таблицей в Tableau 2020.2. Хранимые процедуры можно использовать только в одной логической таблице.
Опубликованные источники данных не могут быть связаны друг с другом. Вы также не можете редактировать опубликованные источники данных.
не поддерживается
- Базы данных куба не поддерживают новый логический уровень.Подключение к кубу предлагает те же возможности, что и до 2020 г. 2.
- Хранимые процедуры: не поддерживают федерацию, отношения или объединения. Они представлены в единой логической таблице и не позволяют открывать холст Join / Union (физический уровень).
- Splunk: не поддерживает левые соединения (и, следовательно, связанные логические таблицы).
- JSON: не поддерживает федерацию, настраиваемый SQL, объединения или отношения (только объединения).
- Источники данных, которые не поддерживают вычисления LOD. Дополнительные сведения см. В разделе Ограничения источника данных для выражений с уровнем детализации.
Ограниченная поддержка
- Стандартные соединения Salesforce и WDC: они представлены в виде объединенных таблиц в логической таблице. Добавление этих подключений в настоящее время поддерживается только для источников данных с одной логической таблицей. Стандартные соединения не могут присоединиться к существующей таблице.
- SAP HANA: в настоящее время не поддерживает связывание логических таблиц, если для соединения установлен атрибут OLAP.
Создание и определение отношений
После перетаскивания первой таблицы на основу верхнего уровня источника данных каждая новая таблица, которую вы перетаскиваете на основу, должна быть связана с существующей таблицей. Когда вы создаете связи между таблицами на логическом уровне, вы строите модель данных для своего источника данных.
Примечание : Вы не можете редактировать модель данных опубликованного источника данных.
Создать отношения
Вы создаете отношения на логическом уровне источника данных. Это представление по умолчанию для холста, который вы видите на странице источника данных.
Перетащите таблицу на холст.
Перетащите другую таблицу на холст. Когда вы увидите «лапшу» между двумя столами, опустите этот стол.
Откроется диалоговое окно «Изменить взаимосвязь». Tableau автоматически пытается создать взаимосвязь на основе существующих ключевых ограничений и совпадающих полей для определения взаимосвязи. Если он не может определить совпадающие поля, вам нужно будет выбрать их.
Чтобы изменить поля : Выберите пару полей, а затем щелкните в списке полей ниже, чтобы выбрать новую пару совпадающих полей.
Чтобы добавить несколько пар полей : После выбора первой пары щелкните Закрыть , а затем щелкните Добавить дополнительные поля .
Примечание : В Таблице 2020.3 и более поздних версий, вы можете создавать отношения на основе вычисляемых полей и сравнивать поля, используемые для отношений, используя операторы в определении отношения. Обратите внимание, что следующие соединители не поддерживают операторы неравенства: Google BigQuery, MapR, Salesforce.
Если ограничения не обнаружены, создается отношение «многие ко многим» , а ссылочная целостность устанавливается на . Некоторые записи соответствуют . Эти настройки по умолчанию являются безопасным выбором и обеспечивают максимальную гибкость для вашего источника данных.Настройки по умолчанию поддерживают полные внешние объединения и оптимизируют запросы путем агрегирования табличных данных перед формированием объединений во время анализа. Все данные столбцов и строк из каждой таблицы становятся доступными для анализа.
Во многих аналитических сценариях использование настроек по умолчанию для отношения предоставит вам все данные, необходимые для анализа. Использование отношения «многие ко многим» будет работать, даже если ваши данные на самом деле относятся к числу «многие к одному» или «один к одному». Если вы знаете конкретную мощность и ссылочную целостность ваших данных, вы можете настроить параметры производительности (ссылка открывается в новом окне), чтобы более точно описать ваши данные и оптимизировать то, как Tableau запрашивает базу данных.
При необходимости добавьте дополнительные таблицы, выполнив те же действия.
После того, как вы создали свой многотабличный связанный источник данных, вы можете погрузиться в изучение этих данных. Дополнительные сведения см. В разделах «Как работает анализ для источников данных с несколькими таблицами, которые используют отношения» и «Устранение неполадок с анализом нескольких таблиц».
Переместите таблицу, чтобы создать другую связь
Чтобы переместить таблицу, перетащите ее рядом с другой таблицей. Или наведите указатель мыши на таблицу, щелкните стрелку и выберите Переместить .
Совет : перетащите таблицу поверх другой таблицы, чтобы заменить ее.
Удалить таблицу из отношения
Чтобы переместить таблицу, наведите на нее курсор, щелкните стрелку и выберите Удалить .
Посмотреть отношения
- Наведите указатель мыши на линию связи (лапшу), чтобы увидеть соответствующие поля, которые ее определяют. Вы также можете навести указатель мыши на любую логическую таблицу, чтобы увидеть, что она содержит.
Изменить отношение
- Щелкните линию взаимосвязи, чтобы открыть диалоговое окно «Изменить взаимосвязь». Вы можете добавлять, изменять или удалять поля, используемые для определения отношения.Добавьте дополнительные пары полей, чтобы создать сложную связь.
Чтобы добавить несколько пар полей: После выбора первой пары щелкните Закрыть , а затем щелкните Добавить дополнительные поля .
Советы по созданию отношений
- Первая таблица, которую вы перетаскиваете на холст, становится корневой таблицей для модели данных в вашем источнике данных. После того, как вы вытащите корневую таблицу, вы можете растягивать дополнительные таблицы в любом порядке.Вам нужно будет подумать, какие таблицы должны быть связаны друг с другом, и какие пары полей вы определяете для каждого отношения.
- Перед тем, как вы начнете создавать отношения, просмотр данных из источника данных до или во время анализа может быть полезным, чтобы дать вам представление об объеме каждой таблицы. Для получения дополнительной информации см. Просмотр базовых данных. Вы также можете использовать View Data, чтобы увидеть базовые данные таблицы, когда связь недействительна.
- Если вы создаете звездообразную схему, может быть полезно сначала перетащить таблицу фактов, а затем связать таблицы измерений с этой таблицей.
- Каждое отношение должно состоять как минимум из одной совпадающей пары полей. Добавьте несколько пар полей, чтобы создать сложную связь. Соответствующие пары должны иметь один и тот же тип данных. Изменение типа данных на странице «Источник данных» не меняет этого требования. Tableau по-прежнему будет использовать тип данных в базовой базе данных для запросов.
- Отношения могут быть основаны на вычисляемых полях. Вы также можете указать, как поля должны сравниваться, используя операторы при определении отношения.
- При удалении таблицы на холсте автоматически удаляются и связанные с ней потомки. Если вы удалите корневую таблицу, все остальные таблицы в модели также будут удалены.
Проверить отношения в источнике данных
У вас есть несколько вариантов проверки вашей модели данных для анализа. При создании модели для источника данных мы рекомендуем перейти к листу, выбрать этот источник данных, а затем создать визуализацию для исследования количества записей, несогласованных значений, нулевых значений или повторяющихся значений мер.Попробуйте работать с полями в разных таблицах, чтобы убедиться, что все выглядит так, как вы ожидаете.
На что обращать внимание:
- Используют ли ваши отношения в модели данных правильные совпадающие поля для своих таблиц?
- Каковы результаты перетаскивания в представление различных измерений и мер?
- Вы видите ожидаемое количество строк?
- Могут ли сложные отношения сделать отношения более точными?
- Если вы изменили какие-либо настройки параметров производительности по сравнению с настройками по умолчанию, соответствуют ли значения, которые вы видите в визуализации, ожидаемым? Если это не так, вы можете проверить настройки или сбросить настройки до значений по умолчанию.
Опции для проверки взаимосвязей и модели данных:
- Каждая таблица включает счетчик своих записей в виде поля с именем TableName (Count) на уровне детализации этой таблицы. Чтобы увидеть счетчик для таблицы, перетащите его поле «Счетчик» в представление. Чтобы увидеть счетчик для всех таблиц, выберите поле «Счетчик» для каждой таблицы на панели «Данные», а затем щелкните текстовую таблицу в «Показать меня».
- Щелкните Просмотр данных на панели данных, чтобы увидеть количество строк и данных в таблице.Кроме того, перед тем, как вы начнете создавать отношения, просмотр данных из источника данных до или во время анализа может быть полезным, чтобы дать вам представление об объеме каждой таблицы. Для получения дополнительной информации см. Просмотр базовых данных.
- Перетащите размеры на строки, чтобы увидеть количество строк в строке состояния. Чтобы увидеть несопоставленные значения, щелкните меню Analysis , а затем выберите «Макет таблицы»> «Показать пустые строки» или «Показать пустые столбцы». Вы также можете перетаскивать в представление различные меры, например
(Count) , из одной из таблиц, представленных в вашем viz.Это гарантирует, что вы увидите все значения измерений из этой таблицы.
Совет : Если вы хотите увидеть запросы, которые создаются для отношений, вы можете использовать средство записи производительности в Tableau Desktop.
- Щелкните меню «Справка» и выберите «Параметры и производительность »> « Начать запись производительности ».
- Перетащите поля в представление, чтобы построить визуализацию.
- Щелкните меню «Справка» и выберите «Настройки и производительность »> « Остановить запись производительности ».
- На панели мониторинга «Сводка производительности» в разделе «События, отсортированные по времени» щелкните панель «Выполнение запроса» и просмотрите запрос ниже.
Еще один более продвинутый вариант — использовать Tableau Log Viewer (ссылка открывается в новом окне) на GitHub.Вы можете выполнить фильтрацию по определенному ключевому слову, используя end-protocol.query
. Для получения дополнительной информации начните с вики-страницы Tableau Log Viewer (ссылка открывается в новом окне) в GitHub.
Визуализации только для измерений
При использовании источника данных из нескольких таблиц со связанными таблицами: если вы строите визуализацию только для измерений, Tableau использует внутренние соединения, и вы не увидите полный несопоставленный домен.
Чтобы увидеть частичные комбинации значений измерений, вы можете:
- Используйте Показать пустые строки / столбцы, чтобы увидеть все возможные строки.Щелкните меню Analysis , а затем выберите «Макет таблицы»> «Показать пустые строки» или «Показать пустые столбцы».
- Добавьте меру в представление, например
(Count) из одной из таблиц, представленных в вашем viz. Это гарантирует, что вы увидите все значения измерений из этой таблицы.
Дополнительные сведения см. В разделах «Как работает анализ для источников данных с несколькими таблицами, которые используют взаимосвязи» и «Устранение неполадок с анализом нескольких таблиц».
Отношения (логические таблицы) по сравнению с объединениями (физические таблицы)
Несмотря на то, что они похожи, объединения и отношения в Tableau ведут себя по-разному и определяются на разных уровнях модели данных. Вы создаете отношения между логическими таблицами на верхнем логическом уровне вашего источника данных. Вы создаете соединения между физическими таблицами на физическом уровне вашего источника данных.
Объединяет данные из двух таблиц в единую таблицу перед началом анализа.Объединение таблиц вместе может привести к дублированию или фильтрации данных из одной или обеих таблиц; это также может привести к добавлению к вашим данным строк NULL, если вы используете левое, правое или полное внешнее соединение. При анализе объединенных данных необходимо убедиться, что вы правильно обрабатываете влияние объединения на ваши данные.
Примечание : Если может потребоваться дублирование или фильтрующие эффекты объединения, используйте объединения для объединения таблиц вместо отношений.Дважды щелкните логическую таблицу, чтобы открыть физический уровень и добавить соединенные таблицы.
Отношение описывает, как две независимые таблицы связаны друг с другом, но не объединяют таблицы вместе. Это позволяет избежать дублирования данных и проблем с фильтрацией, которые могут возникнуть при объединении, и может упростить работу с вашими данными.
отношения | присоединяется к |
---|---|
Определено между логическими таблицами на холсте отношений (логический уровень) | Определяется между физическими таблицами на холсте соединения / объединения (физический уровень) |
Не требует определения типа соединения | Требуется планирование соединения и тип соединения |
Действуют как контейнеры для таблиц, которые соединены или объединены | объединены в свою логическую таблицу |
Запрашиваются только данные, относящиеся к визуализации.Параметры количества элементов и ссылочной целостности можно настроить для оптимизации запросов. | Запускать как часть каждого запроса |
Уровень детализации на агрегированном уровне, а именно | Уровень детализации находится на уровне строки для отдельной таблицы |
Типы соединений автоматически формируются Tableau на основе контекста анализа.Tableau определяет необходимые соединения на основе мер и измерений в viz. | Типы соединений статичны и фиксируются в источнике данных независимо от аналитического контекста. Объединения и союзы создаются до анализа и не меняются. |
Строки не дублируются | Объединенные данные таблицы могут привести к дублированию |
Несопоставленные записи включаются в агрегаты, если явно не исключено | Несовпадающие записи исключаются из объединенных данных |
Создание независимых доменов с несколькими уровнями детализации | Поддержка сценариев, требующих единой таблицы данных, например фильтров извлечения и агрегирования |
Отношения против смесей
Хотя и отношения, и смеси поддерживают анализ на разных уровнях детализации, между ними есть явные различия.Одна из причин, по которой вы можете использовать смешение вместо отношений, — это объединение опубликованных источников данных для анализа.
отношения | смешивания |
---|---|
Определено в источнике данных | Определяется на листе между первичным и вторичным источником данных |
Может быть опубликовано | Нельзя опубликовать |
Все таблицы семантически равны | Зависит от выбора первичных и вторичных источников данных и от того, как эти источники данных структурированы. |
Опора полных внешних стыков | Только поддержка слева присоединяется к |
Вычислено локально | Вычисляется как часть запроса SQL |
Связанные поля фиксированы | Связанные поля различаются в зависимости от листа (можно настраивать для каждого листа) |
Особенности различных вариантов объединения данных: отношения, объединения и смешения
Есть много способов объединить таблицы данных, каждая со своими предпочтительными сценариями и нюансами.
Связь | Используется при объединении данных с разными уровнями детализации.
|
Присоединяйтесь к | Используйте, если вы хотите добавить больше столбцов данных в одну и ту же структуру строк.
|
Союз | Используйте, если вы хотите добавить больше строк данных с той же структурой столбцов.
|
Смесь | Используется при объединении данных с разными уровнями детализации.
|
Размеры, фильтры и типы параметров
Размеры, фильтры и типы параметров
Эта страница относится к параметру
типа
, который является частью измерения или фильтра.
тип
также может использоваться как часть меры, описанной на странице документации по типам мер.
тип
также может использоваться как часть группы измерений, описанной на странице параметраDimension_group
.
view: view_name {
Dimension: field_name {
type: field_type
}
}
На этой странице содержатся дополнительные сведения о различных типах, которые могут быть назначены параметру размерности ,
, фильтру или параметру
. Измерение, фильтр или параметр могут иметь только один тип, по умолчанию строка
, если тип не указан.
Некоторые типы имеют вспомогательные параметры, которые описаны в соответствующем разделе.
d = Размер
dg = Группа измерений
f = Фильтр
p = параметр
Тип | Описание | Допустимые типы полей |
---|---|---|
дата | Для полей, содержащих даты | d f p |
date_time | Для полей, содержащих дату и время | d f p |
расстояние | Для полей, которые вычисляют расстояние наиболее прямого пути («по прямой») между двумя типами : местоположение измерения | д |
продолжительность | ДОБАВЛЕНО 6.0 Используется с Dimension_group для создания нескольких основанных на продолжительности измерений из одного столбца таблицы. Для получения информации о группах измерений см. Страницу параметра Dimension_group . | dg |
местонахождение | Для полей, основанных на широте и долготе и используемых в визуализациях | д |
номер | Для полей, содержащих числа | d f p |
строка | Для полей, содержащих буквы или специальные символы | d f p |
уровень | Для полей, которые группируют числовые значения в несколько диапазонов | д |
время | Используется с Dimension_group для создания нескольких временных измерений из одного столбца таблицы.Для получения информации о группах измерений см. Страницу параметра Dimension_group . | dg |
без цитаты | Для полей параметра , значения которых будут вставлены непосредственно в SQL и поэтому не должны заключаться в кавычки (как они были бы с типом : строка ) | п. |
да нет | Для полей, которые показывают, истинно или ложно что-то | d f p |
почтовый индекс | Для полей, содержащих почтовый индекс и которые будут использоваться в визуализациях | д |
Отдельные типы времени и даты | Редко используемая альтернатива типу : время для создания единичных временных измерений | d f |
Индивидуальные типы продолжительности | ДОБАВЛЕНО 6.0 Редко используемая альтернатива типу : duration для создания единичных временных измерений, которые вычисляют разницу во времени | д |
внутренний | УДАЛЕНО 5.4 Заменено на тип: номер | д |
тип: расстояние
используется для вычисления расстояния наиболее прямого пути («по прямой») между двумя измерениями типа : местоположение
.
Параметр sql
для типа : расстояние
измерений исключается.Вместо этого вы указываете ссылку на измерение типа : положение
в параметрах start_location_field
и end_location_field
.
Использование:
view: view_name {
Dimension: field_name {
type: distance
start_location_field: field_name_1
end_location_field: field_name_2
units: km
}
}
Единица расстояния определяется параметром единиц
, который может принимать следующие значения:
-
футов
-
км
-
метра
-
миль
-
морских_миль
-
ярдов
Например, вы можете рассчитать расстояние, пройденное клиентом, чтобы получить прокат, например:
Dimension: distance_to_pickup { тип: расстояние start_location_field: customer.home_location end_location_field: rental.pickup_location единицы: мили }
Отметим, что рассчитанное расстояние будет представлять собой наиболее прямой путь («по прямой») между двумя точками, а не обязательно расстояние, пройденное по дороге.
Обратите внимание, что вам не следует использовать синтаксис $ {view_name.field_name}
в параметрах start_location_field
и end_location_field
. Вместо этого используйте сами по себе имя представления и имя поля, например имя_представления.имя_поля
.
тип: продолжительность
используется в сочетании с группой измерений
для создания набора вычисленных разниц во времени между измерениями и / или выражениями SQL.
type: duration
работает только с размером_группы
, а , а не , будет работать с обычным размером
. Однако вы можете указать отдельные измерения на основе продолжительности, как описано в этом разделе ниже.
Для получения информации о группах измерений с типом : продолжительность
см. Страницу параметра Dimension_group
.
type: location
используется в сочетании с параметрами sql_latitude
и sql_longitude
для создания координат, которые вы хотите нанести на карту или визуализацию статической карты (точки) (используйте поле штата или страны для статической карты (регионы) )), или то, что вы хотите использовать в расчете типа : расстояние
.
Схема использования:
view: view_name {
Dimension: field_name {
type: location
sql_latitude: $ {field_name_1} ;;
sql_longitude: $ {field_name_2} ;;
}
}
Параметр sql
для измерений типа : расположение
исключается.Вместо этого вы предоставляете любое допустимое выражение SQL, которое приводит к десятичной широте или долготе, в параметры sql_latitude
и sql_longitude
. Обычно это ссылки на поля LookML, которые содержат информацию о широте или долготе, но они могут быть статическими значениями, если вы хотите узнать местоположение своей штаб-квартиры или что-то в этом роде.
Например, вы можете создать измерение store_location
следующим образом:
Dimension: store_location { тип: расположение sql_latitude: $ {store_latitude} ;; sql_longitude: $ {store_longitude} ;; }
Если вы не хотите наносить на карту местоположения или рассчитывать расстояния, вы можете использовать более простой тип, например тип : число
.Когда вы просматриваете местоположение в таблице, оно покажет значение из вашей базы данных, а также автоматически создаст ссылку на это местоположение в Google Maps:
Поддерживаемые диалекты базы данных для местоположения
Для того, чтобы Looker поддерживал тип : расположение
в вашем проекте Looker, ваш диалект базы данных также должен его поддерживать. В следующей таблице показано, какие диалекты поддерживают тип : расположение
в Looker 21.12:
тип: число
используется с числами или целыми числами.
Параметр sql
для измерений тип: число
может принимать любое допустимое выражение SQL, которое приводит к числу или целому числу.
тип: число
поля могут быть отформатированы с помощью параметров value_format
или value_format_name
.
Например, следующий LookML создает поле с именем прибыль
на основе полей выручка
и стоимость
, а затем отображает его в денежном формате (1234 доллара.56):
Dimension: profit { тип: число sql: $ {доход} — $ {стоимость} ;; value_format_name: usd }
Измерение может выполнять арифметические действия только с другими измерениями, но не с мерами. Кроме того, параметры
type: number
не будут предлагать пользователям предложения, даже если вы используете их для отображения идентификационных номеров.
тип: строка
обычно используется с полями, содержащими буквы или специальные символы. Его также можно использовать с числовыми полями, хотя Looker имеет лучшие функции для обработки чисел, если вместо этого вы используете тип : число
.
Параметр sql
для измерений тип: строка
может принимать любое допустимое выражение SQL.
Например, следующий LookML создает поле full_name
путем объединения поля с именем first_name
и last_name
:
Dimension: full_name { тип: строка sql: CONCAT ($ {first_name}, », $ {last_name}) ;; }
В этом примере тип: строка
можно опустить, потому что строка
является значением по умолчанию для типа
.
Тип : уровень
используется вместе с параметром уровней
для разделения числового измерения на набор диапазонов чисел. Например, вы можете разбить возрастной параметр на разные возрастные диапазоны. Вы можете изменить способ отображения уровней в пользовательском интерфейсе Looker с помощью параметра style .
Схема использования:
view: view_name {
Dimension: field_name {
type: tier
tiers: [numeric_value, numeric_value,…]
style: interval
sql: $ {my_field_name} ;;
}
}
Параметр sql
для измерений тип: уровень
может принимать любое допустимое выражение SQL, которое приводит к числу или целому числу.
Пример возраста выше может выглядеть так:
Dimension: age_tier { тип: ярус уровни: [0, 10, 20, 30, 40, 50, 60, 70, 80] style: classic # значение по умолчанию, можно исключить sql: $ {age} ;; }
Способ, которым это будет отображаться в пользовательском интерфейсе Looker, описан в разделе стиля ниже.
тип: измерения уровня
нельзя использовать в настраиваемых фильтрах.
стиль
Параметр стиля
позволяет изменить способ отображения уровней в пользовательском интерфейсе средства просмотра.Хотя это не показано в приведенных ниже примерах, если бы в данных были отрицательные числа, был бы начальный уровень, который включал бы все числа от отрицательной бесконечности до нуля, но не включая 0. Существует четыре возможных значения:
классический
стиль: классический
по умолчанию и выглядит так:
- Это обозначение уровня можно интерпретировать следующим образом:
- T02 [10,20) — это диапазон, включающий 10, но не включая 20
- T09 [80, inf) — это диапазон от 80 до бесконечности
интервал
стиль: интервал
похож на стиль : классический
, но не имеет ведущих меток TXX .Это похоже:
целое
Стиль : целое число
должно использоваться с дискретными целочисленными значениями (например, возрастом). Если вы попытаетесь использовать нецелые числа для определения уровней, вы получите сообщение об ошибке. Этот стиль выглядит так:
реляционный
стиль: реляционный
лучше всего использовать с непрерывными числами (такими как доллары) и выглядит так:
Вы также можете стилизовать уровни с помощью value_format
.Например:
Dimension: amount_tier { тип: ярус уровни: [0, 10, 20, 30, 40, 50, 60, 70, 80] стиль: целое число sql: $ {amount} ;; value_format: «$ #, ## 0» }
Этот пример приведет к появлению таких ярлыков уровня, как от 10 до 19 долларов
, от 20 до 29 долларов
и т. Д.
Что нужно учитывать
Использование уровня
в сочетании с заполнением измерения может привести к неожиданным сегментам уровней.
Например, измерение типа : уровень
, Возраст, уровень , будет отображать сегменты уровня для Ниже 0 и от 0 до 9 , когда включено заполнение измерения, хотя данные не включают значения возраста для этих сегментов :
Когда заполнение измерения отключено для Возрастной уровень , сегменты более точно отражают возрастные значения, доступные в данных:
Вы можете включить или отключить заполнение измерения, наведя указатель мыши на имя измерения в обзоре, щелкнув значок шестеренки на уровне поля и выбрав либо Удалить заполненные значения уровня , чтобы отключить, либо Заполнить отсутствующие значения уровня , чтобы включить.
тип: время
используется вместе с параметром группа_размеров
и параметром timeframes
для создания набора измерений, основанных на времени. Например, вы можете легко создать измерение даты, недели и месяца на основе одного столбца с меткой времени.
type: time
работает только с размером_группы
, а , а не , будет работать с обычным размером
. Однако вы можете указать отдельные временные измерения, как описано в этом разделе ниже.
Для получения информации о группах измерений см. Страницу параметров Dimension_group
, которая также включает информацию о параметрах timeframe , convert_tz
и типа данных
, а также общие проблемы и предостережения при использовании временных данных.
Тип :
без кавычек используется только с полями параметра
. Тип без кавычек
аналогичен типу : строка
, за исключением того, что когда значение параметра
вставлено в жидкую переменную {% parameter%}
, оно не будет заключено в кавычки.Это полезно при вставке значений в SQL, таких как имена столбцов или таблиц, которые нельзя заключить в кавычки для правильной работы.
Вставка значений без кавычек непосредственно в SQL может создать возможность нежелательных действий SQL. Для решения этой проблемы значения параметров типа :
без кавычек ограничены символами от A до Z и от 0 до 9 (без пробелов или других специальных символов).
В качестве примера следующий LookML создает параметр
с именем имя_таблицы
, который выдаст значение без кавычек:
параметр: table_name { тип: без кавычек }
тип: yesno
создает поле, которое указывает, является ли что-то истинным или ложным.Значения отображаются как Да и Нет в пользовательском интерфейсе исследования.
Параметр sql
для типа : да нет измерение
принимает допустимое выражение SQL, которое оценивается как ИСТИНА
или ЛОЖЬ
. Если условие оценивается как ИСТИНА
, Да, отображается пользователю; в противном случае отображается № .
Выражение SQL для типа : да, нет, измерения
не могут включать какие-либо агрегаты.Это означает, что он не может содержать агрегаты SQL или какие-либо ссылки на меры LookML. Если вы хотите создать поле yesno
, которое включает агрегацию SQL или ссылается на меру LookML, используйте меру с типом : yesno
, а не измерение.
Например, следующий LookML создает поле, которое указывает, был ли оплачен заказ, на основе поля статуса
:
Dimension: is_order_paid { тип: да нет sql: $ {status} = ‘оплачено’ ;; }
Если вы хотите сослаться на поле type: yesno
в другом поле, вы должны рассматривать поле type: yesno
как логическое (другими словами, как если бы оно уже содержало истинное или ложное значение).Например:
Dimension: is_big_order { тип: да нет sql: $ {order_size} = ‘большой’ ;; } # Это правильно measure: total_boxes_needed { тип: число sql: SUM (CASE WHEN $ {is_big_order} THEN 2 ELSE 1 END) ;; } # Это НЕ правильно measure: total_boxes_needed { тип: число sql: SUM (CASE WHEN $ {is_big_order} = ‘Yes’ THEN 2 ELSE 1 END) ;; }
Если вы используете тип : yesno
с данными на основе времени, измерение возвращает yes , если datetime имеет значение, и возвращает no , если нет.
тип: zipcode
используется с размерами почтового индекса, которые вы хотите нанести на визуализацию статической карты (точки) (используйте поле штата или страны для статической карты (регионы)). Любому измерению типа : zipcode
автоматически присваивается map_layer_name
из us_zipcode_tabulation_areas
. Если вы не хотите наносить почтовые индексы, вы можете использовать более простой тип, например тип : номер
.
Параметр sql
для измерений типа : почтовый индекс
может принимать любое допустимое выражение SQL, которое приводит к пятизначному почтовому индексу США.
Для целей фильтрации по измерению почтового индекса некоторые диалекты базы данных требуют, чтобы поле базы данных, на которое ссылается измерение почтового индекса, было полем типа varchar или строки, а не полем целочисленного типа.
Например:
Dimension: zip { тип: почтовый индекс sql: $ {TABLE} .zipcode ;; }
Обычно даты обрабатываются как группа измерений
, в которой используется тип : время
.
Однако можно создать одно поле измерения ,
или , фильтр
для каждого отдельного временного интервала, который вы хотите включить, вместо того, чтобы создавать все из них в одной группе измерений
.Как правило, этого избегают, если вы уже не рассчитали предварительно рассчитанные столбцы времени в своей базе данных или не хотите изменить соглашение об именах временных рамок Looker (например, если поле с именем created_date_of_purchase
вместо created_date
).
В такой ситуации существует много отдельных типов, основанных на времени и дате, которые перечислены ниже.
В качестве примера для этого определения размерная_группа
:
Dimension_group: created { тип: время временные рамки: [неделя, месяц, год] sql: $ {ТАБЛИЦА}.создано в ;; }
Вы можете использовать это как логический эквивалент:
Dimension: created_week { тип: date_week sql: $ {TABLE} .created_at ;; } Dimension: created_month { тип: date_month sql: $ {TABLE} .created_at ;; } Dimension: created_year { тип: date_year sql: $ {TABLE} .created_at ;; }
Доступные типы, зависящие от времени
Следующие типы используются в параметре типа
отдельного измерения для создания полей на основе времени или даты.Не используйте ли , а не , эти типы с параметром timeframe
, который задокументирован на странице документации Dimension_group.
Все отдельные типы времени и даты требуют ввода метки времени из вашей базы данных.
Специальные типы
Тип | Описание | Пример вывода |
---|---|---|
date_raw | Необработанное значение из вашей базы данных, без преобразования или преобразования часового пояса, не будет отображаться на странице исследования (обычно не требуется, за исключением соединений или сравнений времени) | 2014-09-03 17:15:00 +0000 |
Виды времени
Тип | Описание | Пример вывода |
---|---|---|
date_time | Дата и время базового поля (некоторые диалекты SQL показывают такую же точность, как и ваша база данных, в то время как другие показывают только секунды) | 2014-09-03 17:15:00 |
date_time_of_day | Время суток | 17:15 |
date_hour | Дата и время с округлением до ближайшего часа | 03.09.2014 17 |
date_hour_of_day | Целое число часов в базовом поле | 17 |
date_hourX | Каждый день разбивается на интервалы с указанным количеством часов.Требуется пояснение, см. Ниже. | См. Ниже |
дата_минут | Дата и время с точностью до минуты | 2014-09-03 17:15 |
дата_минутX | Разбивает каждый час на интервалы с указанным количеством минут. Требуется пояснение, см. Ниже. | См. Ниже |
дата_секунда | Дата и время с округлением до ближайшей секунды | 2014-09-03 17:15:00 |
дата_миллисекунда | Datetime с округлением до ближайшей миллисекунды (информацию о поддержке диалектов см. В разделе «Поддержка диалекта для миллисекунд и микросекунд»). | 03.09.2014 17:15:00.000 |
дата_миллисекундаX | Разбивает каждую секунду на интервалы с указанным числом миллисекунд (информацию о поддержке диалектов см. В разделе «Поддержка диалекта для миллисекунд и микросекунд»). | 2014-09-01 01: 00: 00.250 |
дата_микросекунда | Datetime с округлением до ближайшей микросекунды (информацию о поддержке диалектов см. В разделе «Поддержка диалекта для миллисекунд и микросекунд»). | 03.09.2014 17:15:00.000000 |
Типы дат
Тип | Описание | Пример вывода |
---|---|---|
дата | Дата базового поля | 2017-09-03 |
дата_дата | УДАЛЕНО 4.6 Заменено на дата |
Типы недель
Тип | Описание | Пример вывода |
---|---|---|
date_week | Дата недели, начинающейся с понедельника базового datetime | 2017-09-01 |
date_day_of_week | Только день недели | Среда |
date_day_of_week_index | Индекс дня недели (0 = понедельник, 6 = воскресенье) | 2 |
Обратите внимание, что типы date_week
, date_day_of_week
и date_day_of_week_index
зависят от значения week_start_day
, которое по умолчанию равно понедельнику.
Типы месяцев
Тип | Описание | Пример вывода |
---|---|---|
дата_мес | Год и месяц базовой даты и времени | 2017-09 |
date_month_num | Целое число месяца базовой даты и времени | 9 |
date_month_name | Название месяца | сентябрь |
date_day_of_month | День месяца | 3 |
date_fiscal_month_num | Целое число месяца базовой даты и времени | 9 |
Чтобы использовать тип date_fiscal_month_num
, в модели должен быть установлен параметр fiscal_month_offset
.
Типы кварталов
Тип | Описание | Пример вывода |
---|---|---|
дата_квартал | Год и квартал базового datetime | 2017-Q3 |
дата_квартал_года | Квартал года, перед которым стоит «Q» | 3 квартал |
date_fiscal_quarter | Финансовый год и квартал базовой даты и времени | 2017-Q3 |
дата_фискальный_квартальный_год | Финансовый квартал года, которому предшествует «Q» | 3 квартал |
Чтобы использовать типы date_fiscal_quarter
и date_fiscal_quarter_of_year
, в модели должен быть установлен параметр fiscal_month_offset
.
Типы года
Тип | Описание | Пример вывода |
---|---|---|
дата_год | Целочисленный год базовой даты и времени | 2017 |
date_day_of_year | День года | 143 |
date_week_of_year | Неделя года в виде числа | 17 |
date_fiscal_year | Целочисленный финансовый год базового datetime | 2017 |
Чтобы использовать тип date_fiscal_year
, в модели должен быть установлен параметр fiscal_month_offset
.
Используется
date_hourX
В date_hourX
X
заменяется на 2, 3, 4, 6, 8 или 12.
Каждый день будет разбит на интервалы с указанным количеством часов. Например, date_hour6
разделит каждый день на 6-часовые сегменты, которые будут выглядеть так:
-
2014-09-01 00:00:00
-
2014-09-01 06:00:00
-
2014-09-01 12:00:00
-
2014-09-01 18:00:00
В качестве примера, строка с time
из 2014-09-01 08:03:17
будет иметь date_hour6
из 2014-09-01 06:00:00
.
Использование
date_minuteX
В date_minuteX
X
заменяется на 2, 3, 5, 10, 15 или 30.
Каждый час разбивается на интервалы с указанным количеством минут. Например, date_minute15
разделит каждый час на 15-минутные сегменты, которые будут выглядеть так:
-
2014-09-01 01:00:00
-
2014-09-01 01:15:00
-
2014-09-01 01:30:00
-
2014-09-01 01:45:00
В качестве примера, строка с временем
из 01.09.2014 01:17:35
будет иметь date_minute15
из 01.09.2014 01:15:00
.
Часовые пояса и
convert_tz
В общем, вычисления времени (различия, продолжительности и т. Д.) Работают правильно только тогда, когда вы работаете со значениями времени, которые все преобразованы в один и тот же часовой пояс, поэтому при написании LookML важно помнить о часовых поясах.
Looker имеет различные настройки часового пояса, которые преобразуют временные данные между разными часовыми поясами. Looker по умолчанию преобразует часовые пояса. Если вы не хотите, чтобы Looker выполнял преобразование часового пояса для определенного измерения или группы измерений, вы можете использовать параметр convert_tz
, описанный на странице параметра convert_tz
.
Поддержка диалекта миллисекунд и микросекунд
Looker поддерживает точность до микросекунд; однако некоторые базы данных поддерживают точность только до секунд. Если база данных обнаруживает более точный тип времени, чем он может поддерживать, он округляется до секунд.
В Looker 21.12 миллисекунды поддерживаются следующими диалектами:
В Looker 21.12 микросекунды поддерживаются следующими диалектами:
Обычно длительности обрабатываются как группа_измерений
, которая использует тип : продолжительность
.
Однако можно создать одно измерение
для каждой отдельной продолжительности, которую вы хотите включить, вместо того, чтобы создавать все из них в одной группе измерений
. Обычно этого избегают, если только вы не хотите изменить соглашение об именах временных рамок Looker (например, иметь поле с именем Количество дней до доставки вместо Продолжительность доставки ).
В такой ситуации существует несколько индивидуальных типов продолжительности, перечисленных ниже.
При использовании типа продолжительности для измерения необходимо также включить параметры sql_start
и sql_end
, чтобы указать время начала и окончания для вычисления разницы во времени.
Параметры sql_start
и sql_end
могут принимать любое допустимое выражение SQL, которое содержит данные в формате timestamp, datetime, date, epoch или yyyymmdd. Поля sql_start
и sql_end
могут быть любыми из следующих:
- Ссылка на необработанный таймфрейм
: время
. - Ссылка на измерение
типа: date_raw
. - Выражение SQL, которое является меткой времени, например, ссылка на столбец SQL, который является меткой времени.
- Выражение SQL, которое извлекает время из вашей базы данных, используя соответствующее выражение для вашего диалекта.
В качестве примера для этого определения размерная_группа
:
Dimension_group: to_delivery { тип: продолжительность интервалы: [день, час] sql_start: $ {created_raw} ;; sql_end: $ {delivery_raw} ;; }
Вы можете использовать эти параметры измерения
как логический эквивалент:
Dimension: number_of_days_to_delivery { тип: duration_day sql_start: $ {created_raw} ;; sql_end: $ {delivery_raw} ;; } Dimension: number_of_hours_to_delivery { тип: duration_hour sql_start: $ {created_raw} ;; sql_end: $ {delivery_raw} ;; }
В пользовательском интерфейсе исследования это создаст измерения под названием Количество дней до доставки и Количество часов до доставки .
Доступные типы продолжительности
Следующие типы используются в параметре типа
отдельного измерения для создания полей на основе продолжительности. Не используйте ли , а не , эти типы с параметром интервалов , который задокументирован на странице документации Dimension_group.
Все индивидуальные типы продолжительности требуют ввода метки времени из вашей базы данных.
Тип | Описание | Пример вывода |
---|---|---|
продолжительность_день | Вычисляет разницу во времени в днях | 9 дней |
duration_hour | Вычисляет разницу во времени в часах | 171 часы |
продолжительность_минут | Вычисляет разницу во времени в минутах | 10 305 минут |
продолжительность_месяц | Вычисляет разницу во времени в месяцах | 3 месяца |
продолжительность_квартал | Вычисляет разницу во времени в кварталах года | 2 кв. |
длительность_секунда | Вычисляет разницу во времени в секундах | 606770 секунд |
продолжительность_недели | Вычисляет разницу во времени в неделях | 6 недель |
продолжительность_год | Вычисляет разницу во времени в годах | 2 года |
индексов в таблицах базы данных - документация по ключевым словам ABAP
SAP NetWeaver AS ABAP, версия 752, © SAP AG, 2017 г.Все права защищены.
ABAP - Документация по ключевым словам → ABAP - Словарь → Классические объекты в ABAP-словаре → Таблицы базы данных → Семантические атрибуты таблиц базы данных → Табличные семантические атрибуты таблиц базы данных →Индексы в таблицах базы данных
Индекс в таблице базы данных помогает ускорить выбор строк. Индекс - это отсортированная копия выбранного поля таблицы базы данных. Дополнительное поле содержит указатель на фактические строки таблицы.Сортировка обеспечивает более быстрый доступ к строкам в таблице, например, при двоичном поиске. В таблице базы данных есть хотя бы один первичный индекс, определяемый его ключевыми полями. Он также может иметь один или несколько необязательных вторичные индексы.
Первичный индекс
Первичный индекс - это уникальный индекс, построенный на основе ключевые поля первичного ключа. Это всегда создается автоматически в AS ABAP. В таблице существует максимум одна запись для каждой комбинации индексные поля.Если первичный индекс не может использоваться для идентификации набора результатов, например, потому что нет было выбрано поле первичного индекса, таблица сканируется полностью или делается попытка использовать подходящий вторичный индекс (если он существует).
Вторичные индексы
Наряду с первичным индексом, определенным с использованием первичного ключа, как уникальные, так и неуникальные вторичные индексы может быть создан для таблицы базы данных. Создание вторичных индексов обычно повышает производительность операций чтения из базы данных, которые оценивают индексы базы данных.
Вторичные индексы таблицы базы данных состоят из серии полей таблицы и идентифицируются идентификатор буквенно-цифрового индекса, состоящий максимум из трех символов (букв или цифр). ID 0 зарезервирован для первичного индекса. Поля таблицы со встроенными типами данных STRING и RAWSTRING не может быть индексным полем. Рекомендуется, чтобы поля таблицы с типом данных FLTP не являются индексными полями.
Вторичные индексы, определенные для таблицы базы данных, создаются, когда сама таблица создается в система базы данных.Более того, новые вторичные индексы могут быть добавлены позже в той же системе. Когда дальше вторичные индексы добавляются в другие системы без внесения изменений, они создаются как индексы расширения. Следующие элементы рекомендуются в качестве пространств имен для индексов, добавленных позже:
- Идентификаторы индексов, добавленных клиентами к доставленным таблицам, начинаются с «Y» или «Z».
- Идентификаторы индексов, добавленных партнерами к доставленным таблицам, начинаются с буквы «J». Могут быть конфликты между именами индексов разных партнеров в последующих системах.
- Идентификаторы индексов, добавленных в другие таблицы, могут иметь любые имена, но не могут начинаться с «Y», «Z» или «J».
Имя индекса в базе данных обычно имеет вид DBTAB ~ ID, где DBTAB - это имя таблицы базы данных, а ID - трехсимвольный идентификатор. Однако могут встречаться и другие имена, а пробелы можно дополнять символами подчеркивания.
В отличие от первичного индекса вторичный индекс не обязательно должен быть уникальным. В случае уникальных индексов таблица базы данных не может содержать несколько строк с одинаковыми значениями в полях индекса.Любые попытки чтобы вставить такую строку, отмените обработку в базе данных и вызовите соответствующее исключение в ABAP. Уникальный индекс клиентской таблицы всегда должен содержать клиентское поле.
При доступе к базе данных оптимизатор системы базы данных проверяет, подходит ли подходящий индекс существует и использует его при необходимости. Выбранный индекс зависит от платформы, что означает, что в ABAP Dictionary можно определить, к каким системам баз данных применяется неуникальный вторичный индекс или нет:
- Индекс во всех системах баз данных
- Индекс создается для каждой базы данных.
- В выбранных системах баз данных
- Системы баз данных можно определить с помощью списка выбора или списка исключений, каждая из которых содержит до четырех записей.
- Индекс не создается ни в одной базе данных. Этот параметр позволяет удалить существующие вторичные индексы из базы данных.
Всегда создаются уникальные вторичные индексы, которые больше не могут быть удалены из базы данных.В Функция трассировки SQL в Трассировка производительности инструмент (транзакция ST05) может использоваться для определения того, какой индекс используется системой базы данных для доступа к данным.
Значение индекса для выбора данных из таблицы зависит от того, насколько хорошо набор данных выбирается с помощью индекс представляет окончательный выбранный набор. В индексе полезны только те поля, которые имеют важное значение. ограничение на набор результатов выборки. Если индекс составлен из нескольких полей, он может также может использоваться, если в условии выбора указано только несколько из этих полей.Здесь порядок поля в индексе - важный фактор, определяющий, насколько быстро к ним можно будет получить доступ. Первые поля должны быть заполнены постоянными значениями в большом количестве выборок. В выборках индекс полезно только до тех пор, пока первое поле не указано в условии выбора. В качестве альтернативы индекс field обычно используется только тогда, когда все индексные поля, расположенные перед ним, указаны в условии выбора. Скорость доступа к полю не зависит от того, определен ли индекс как уникальный.
Создание вторичных индексов полезно в следующих случаях:
- Если записи таблицы должны быть выбраны на основе полей, не содержащихся в индексе, а время ответа очень велико, следует создать подходящий вторичный индекс.
- Поле или поля вторичного индекса настолько избирательны, что каждая запись индекса соответствует максимум 5% от общего числа записей таблицы.
- Доступ к таблице базы данных осуществляется в основном для чтения записей.При доступе к таблице для изменения записей каждый дополнительный индекс также должен быть обновлен.
- Если считываются только те поля, которые также существуют в индексе, доступ к данным не требуется второй раз после доступа к индексу. Если выбрано только очень небольшое количество полей, можно добиться значительного повышения эффективности, если эти поля будут включены в индекс целиком.
Вторичные индексы также могут создавать нагрузку на систему, поскольку их необходимо корректировать каждый раз, когда содержимое таблицы изменено.Каждый дополнительный индекс замедляет вставку строк в таблицу. Таблицы там, где часто создаются новые строки, должно быть только небольшое количество индексов. Слишком много индексов также могут заставят оптимизатор системы баз данных выбрать неправильный индекс. Чтобы предотвратить это, индексы в таблице должны быть как можно более непересекающимися (что означает, что они разделяют как можно меньше полей).
Индекс должен состоять только из нескольких полей; как правило, не более четырех. Это связано с тем, что индекс необходимо обновлять каждый раз, когда его поля обновляются в операции с базой данных.Для индексов подходят следующие поля:
- Поля, которые выбираются часто и имеют высокий уровень селективности. Наиболее избирательные поля следует размещать в начале индекса.
- Поле не должно включаться в индекс, если его значение является начальным для большинства записей таблицы.
- Если для таблицы базы данных используется более одного индекса, они не должны перекрываться.
Для каждой таблицы следует создавать не более пяти индексов, потому что
- Каждый индекс требует дополнительных затрат на обновление.
- Объем данных увеличивается.
- Оптимизатору системы баз данных предоставлено слишком много вариантов выбора, и он становится более подверженным ошибкам.
Индекс может поддерживать только те условия выбора, которые положительно описывают значение поиска, например как = или НРАВИТСЯ. Время реакции условий включая <>, например, не улучшаются индексом. Оптимизатор обычно останавливается, если условие выбора содержит ИЛИ.Другими словами, он не оценивает поля, проверенные оператором ИЛИ при выборе и применении индекс. Исключением являются отношения ИЛИ, стоящие сами по себе. Следовательно, при необходимости следует переформулировать условия, содержащие соединение ИЛИ для одного из индексированных полей.
Примечания
- Нулевое значение в некоторых системах баз данных игнорируется индексами, что означает, что никакой индекс не может использоваться при выборе по нулевым значениям.
- При необходимости база данных подсказки могут быть указаны в Open SQL с помощью добавления% _HINTS для настройки оптимизатора системы баз данных при выборе вторичного индекса.
Пример
Оптимизатор перестает работать, когда встречает OR в следующем операторе SELECT:
- ВЫБЕРИТЕ * ИЗ spfli
, ГДЕ carrid = 'LH' И
(CITYFROM = 'FRANKFURT' ИЛИ cityfrom = 'NEW YORK').
При замене эквивалентным оператором (ниже) все условие может быть оптимизировано относительно существующих индексов:
- ВЫБЕРИТЕ *
FROM spfli
WHERE (carrid = 'LH' AND cityfrom = 'FRANKFURT') ИЛИ
(carrid = 'LH' И cityfrom = 'NEW YORK').
Полнотекстовый указатель
База данных SAP HANA поддерживает полнотекстовый индекс в качестве вторичного индекса таблицы. Полнотекстовый указатель создается как дополнительный невидимый столбец в базе данных. Содержимое столбца, созданного для полнотекстового индекса, сохраняется в этом дополнительном столбце с соответствующим форматированием и оценивается при доступе к соответствующим данным.
Применяются следующие условия:
- Полнотекстовый индекс можно создать только для базы данных SAP HANA и для таблиц с хранилищем столбцов типа хранилища.
- Полнотекстовый индекс можно создать только для одного столбца в таблице базы данных, встроенный тип данных которой - CHAR, SHORTSTRING, STRING или RAWSTRING.
Полнотекстовый индекс всегда не уникален. Доступы, использующие полнотекстовый индекс, основаны на элементе языка SQL WHERE CONTAINS .... Это еще не поддерживается Откройте SQL. Вместо этого следует использовать собственный SQL или AMDP.
Примечание
Дополнительные сведения о полнотекстовом индексе см. В Руководстве разработчика SAP HANA.
реляционных баз данных: ключи таблиц - база знаний MariaDB
Ключ или индекс , как указывает сам термин, разблокирует доступ к таблицам. Если вы знаете ключ, вы знаете, как идентифицировать определенные записи и отношения между таблицами.
Каждый ключ состоит из одного или нескольких полей или префикса поля. Порядок столбцов в индексе имеет значение. У каждой клавиши есть имя.
Ключ-кандидат - это поле или комбинация полей, которые однозначно идентифицируют запись.Он не может содержать нулевое значение, и его значение должно быть уникальным. (С дубликатами вы больше не будете идентифицировать уникальную запись).
Первичный ключ (PK) - это ключ-кандидат, который был назначен для идентификации уникальных записей в таблице по всей структуре базы данных.
Суррогатный ключ - это первичный ключ, который содержит уникальные значения, автоматически генерируемые системой базы данных - обычно целые числа. Суррогатный ключ не имеет значения, кроме однозначной идентификации записи.Это наиболее распространенный тип первичного ключа.
Например, см. Следующую таблицу:
На первый взгляд, для этой таблицы есть два возможных ключа-кандидата. Достаточно либо customer_code , либо комбинации first_name , surname и phone_number . Всегда лучше выбирать ключ-кандидат с наименьшим количеством полей для первичного ключа, поэтому в этом примере вы должны выбрать customer_code (обратите внимание, что это суррогатный ключ).Поразмыслив, можно заметить, что вторая комбинация не является уникальной. Комбинация имя , фамилия и номер телефона теоретически может быть продублирована, например, если у отца есть сын с таким же именем, с которым можно связаться по тому же номеру телефона. Эта система должна была бы прямо исключить такую возможность, чтобы эти три поля рассматривались как статус первичного ключа.
Может быть много Ариан Эдисон, но вы избежите путаницы, присвоив каждой уникальный номер.После создания первичного ключа оставшиеся кандидаты помечаются как альтернативных ключей .
.