Skip to content

Давайте поговорим о схеме базы данных

Пересказ статьи Adron. Let’s Talk About Database Schema


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

Что такое схема?


В целом, в стороне от специфических реализаций в реляционных базах данных, "схема" - это концептуальная основа или проект, который определяет структуру, связи и ограничения данных или информации. Она предоставляет способ описания и организации данных в структурированном виде. Такое понятие схемы не уникально для баз данных; например, в GraphQL схема определяет типы, запросы, мутации и связи между ними, ограничивая набор возможных операций, которые могут выполняться с использованием API, и форму возвращаемых данных. Continue reading "Давайте поговорим о схеме базы данных"

Изучаем PostgreSQL вместе с Grant Fritchey: введение в VACUUM

Пересказ статьи Grant Fritchey. Learning PostgreSQL With Grant Introducing VACUUM


Хотя имеется много функций в PostgreSQL, которые действительно подобны имеющимся в SQL Server, есть и несколько уникальных. Одна из этих уникальных функций называется VACUUM. Для себя я сравниваю ее с tempdb в SQL Server. Не потому, что она действует подобным образом или служит подобным целям. Абсолютно нет. Просто потому, что обе они фундаментальны с точки зрения поведения соответствующих систем, обе достаточно сложны в своей работе, в том, что они делают, и в способах, которыми мы можем их испортить.
Continue reading "Изучаем PostgreSQL вместе с Grant Fritchey: введение в VACUUM"

Роль в PostgreSQL. Часть 1

Пересказ статьи Shivayan Mukherjee. The PostgreSQL Role: Part 1


В этой статье рассматривается объект роли в базе данных PostgreSQL, который группирует вместе одну или более привилегий и может быть присвоен пользователям. Роль представляет собой коллекцию разрешений или привилегий, которые могут быть предоставлены одному или более пользователям или другим ролям. Continue reading "Роль в PostgreSQL. Часть 1"

SQL - перечисляемые типы данных

Пересказ статьи Rubihali. SQL — Repeated Data Types


Перечисляемые типы данных более сложны для запроса, чем обычные типы данных, такие как текст, строка, целые числа или дата/время. Здесь мы рассмотрим эти сложные типы данных на нескольких примерах.
Continue reading "SQL - перечисляемые типы данных"

Когда настройка параметра в PostgreSQL не помогает

Пересказ статьи Henrietta Dombrovskaya. When PostgreSQL Parameter Tuning is not the Answer


Так много говорится о настройке параметров, и это всегда помогает?

Добро пожаловать в третью и последнюю статью серии "магия параметров". В двух предыдущих статьях мы обсудили, как настройка параметров PostgreSQL может помочь улучшить общую производительность системы. Однако самый первый параграф самой первой статьи этой темы утверждает, что:

Хотя некоторая настройка параметров действительно может улучшить производительность базы данных, мы обычно говорим о 10%, 20% и в более редких случаях о 50% улучшении производительности, если некоторые параметры установлены плохо. Эти цифры могут звучать впечатляюще, но индивидуальная рутинная оптимизация запроса делает его выполнение в несколько раз быстрее, а в некоторых случаях в десять и более раз быстрее, а реструктуризация приложений может улучшить общую производительность системы в сотни раз!
Continue reading "Когда настройка параметра в PostgreSQL не помогает"

Шесть вещей для мониторинга в PostgreSQL

Пересказ статьи Ryan Booz. Six Things to Monitor with PostgreSQL


В этой статье описываются шесть метрик производительности, которые должны быть на первом месте вашей стратегии мониторинга PostgreSQL. Используя инструмент, подобный SQL Monitor, для отслеживания этих метрик во времени и устанавливая для них базовые линии, вы сможете сразу выявлять нехватку ресурсов или проблемы с производительностью, быстро диагностируя причину и предотвращая возникновение проблем для пользователей.
Continue reading "Шесть вещей для мониторинга в PostgreSQL"

Запросы в PostgreSQL: изучаем PostgreSQL вместе с Grant Fritchey

Пересказ статьи Grant Fritchey. Querying PostgreSQL: Learning PostgreSQL with Grant


Написание запросов для получения данных из базы является, вероятно, единственной наболее общей задачей при работе с данными. Работа с данными в PostgreSQL не является исключением. Более того, PostgreSQL имеет несомненно богатый, широкий и разнообразный набор механизмов для извлечения данных. От стандартного SELECT… FROM… WHERE до оконных функций и рекурсивных запросов, PostgreSQL имеет все это. Честно говоря, я не могу обещать рассмотреть все это в единственной статье. Кроме того, поскольку большая часть функциональности фактически идентична той, с которой я чувствую себя более уверенно (SQL Server), я не превращаю это в PostgreSQL 101 для оператора SELECT. Continue reading "Запросы в PostgreSQL: изучаем PostgreSQL вместе с Grant Fritchey"

Манипуляция данными в PostgreSQL: учим PostgreSQL вместе с Grant Fritchey

Пересказ статьи Grant Fritchey. Manipulating Data In PostgreSQL Learning PostgreSQL with Grant


До сих пор в этой серии я показал, как создать базу данных, таблицы, ограничения, индексы и схемы. Пришло время привлечь эту информацию для работы и начать процесс манипуляции данными в базе данных. В конце концов, база данных полезна только тогда, когда в ней есть информация. PostgreSQL применяет стандарт SQL для операций типа INSERT, UPDATE и DELETE. Однако, насколько я смог познакомиться с PostgreSQL, имеется несколько довольно интересных нюансов, которые бросаются в мои глаза “SQL Server”.
Continue reading "Манипуляция данными в PostgreSQL: учим PostgreSQL вместе с Grant Fritchey"

Основы PostgreSQL: шаблон для управления привилегиями базы данных

Пересказ статьи Ryan Booz. PostgreSQL Basics A Template for Managing Database Privileges


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

Когда дело доходит до управления тем, какие роли могут получать доступ к существующему объекту или изменять его, право владения является высшей привилегией. Поскольку привилегии в PostgreSQL работают по принципу минимальных мыслимых привилегий, владельцу объекта (таблицы, триггера, функции, процедуры и т.п.) необходимо предоставлять (GRANT) привилегию другим ролям. Мы обсуждали то, как это может быть выполнено вручную с помощью команды GRANT всякий раз, когда создается объект, однако это требует времени и легко что-нибудь упустить. Continue reading "Основы PostgreSQL: шаблон для управления привилегиями базы данных"

Копирование в PostgreSQL

Пересказ статьи Shivayan Mukherjee. PostgreSQL Copy


Обзор статьи


В этой статье мы обсудим функциональность копирования базы данных PostgreSQL, которое является одним из наиболее важных и часто используемых на практике действий. Имеется два варианта оператора 'COPY', копирование базы данных и копирование таблицы. Мы обсудим оба эти варианта.

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

Continue reading "Копирование в PostgreSQL"

Роли, схемы, привилегии и владельцы в SQL Server, Oracle и PostgreSQL. Часть II

Пересказ статьи Andrea Gnemmi. SQL Server, Oracle and PostgreSQL Database Security Roles, Schemas, Grants, Privileges and Owners - Part II


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

Continue reading "Роли, схемы, привилегии и владельцы в SQL Server, Oracle и PostgreSQL. Часть II"

PostgreSQL (auto) vacuum - уже не тайна

Пересказ статьи Henrietta Dombrovskaya. Uncovering the mysteries of PostgreSQL (auto) vacuum


В этой статье мы поговорим о конфигурационных параметрах PostgreSQL, которые управляют теневыми процессами (auto)vacuum и (auto)analyze.

Зачем нужно вакуумировать


Прежде чем говорить о параметрах, относящихся к vacuum и analyze, необходимо коснуться понятия вакуумирования в PostgreSQL. Это понятие является спецификой PostgreSQL, и у администраторов, приходящих из Oracle и SQL Server, может вызывать недоумение - вы не можете непосредственно связать ее со своим предшествующим опытом. (Замечание: Как Oracle, так и SQL Server имеют много больше общего в конфигурации. Например, оптимизированные для памяти таблицы SQL Server имеют подобный процесс, который называется сборкой мусора.)
Continue reading "PostgreSQL (auto) vacuum - уже не тайна"

Основы PostgreSQL: начала работы с psql

Пересказ статьи Ryan Booz. PostgreSQL Basics Getting started with psql


PostgreSQL имеет отдельный инструмент командной строки, который существует уже десятки лет и включен во все инсталляции PostgreSQL. Многие пользователи, разработчики и администраторы PostgreSQL с большим стажем полагаются на psql для быстрого подключения к базам данных, изучения схемы выполнения запросов SQL.

Знание того, как установить и использовать основные команды psql, является важным навыком для каждого, кто будет подключаться к PostgreSQL.
Continue reading "Основы PostgreSQL: начала работы с psql"

Основы PostgreSQL: владение объектами и привилегии по умолчанию

Пересказ статьи Ryan Booz. PostgreSQL Basics Object Ownership and Default Privileges


В первой статье по безопасности я обсуждал как создавать и управлять ролями (пользователями и группами) в PostgreSQL. В зависимости от вашего представления о разрешениях, особенно в продуктах баз данных, некоторые нюансы в работе разрешений могут показаться необычными.

Понимание того, как работают роли и привилегии в PostgreSQL, является ключом к пониманию дальнейшей и зачастую более сбивающей с толку части безопасности - владения объектами. Хотя имеется множество привилегий, которые можно присваивать в PostgreSQL, владение объектами обладает особым уровнем привилегии, которая не может быть передана другим ролям. Понимание последствий этого существенно для управления схемой вашей базы данных и доступа к содержащимся в ней объектам. Continue reading "Основы PostgreSQL: владение объектами и привилегии по умолчанию "

Триггеры: от любви до ненависти

Пересказ статьи Ryan. Triggers: A LoveHate Relationship


Чтобы понять, почему триггеры могут вызывать такие различные реакции, я хочу привести краткую историю триггеров (с моей точки зрения) и то, как она повлияла на мой опыт работы с ними на раннем этапе.

Действие...реакция


Мы живем в мире действия/реакции - и не важно, как наши данные обрабатываются. По мере того, как системы реляционных баз данных развивались и совершенствовались на протяжении десятилетий, в декларативную систему добавлялись различные формы программных функций. Continue reading "Триггеры: от любви до ненависти"