Skip to content

Разница между суррогатным и естественным ключом, и их использование в SQL Server

Пересказ статьи Ben Snaidero. Surrogate Key vs Natural Key Differences and When to Use in SQL Server


Если опросить нескольких профессионалов в базах данных SQL Server, задав им вопрос: "Что лучше при определении первичного ключа - суррогатный ключ или столбец (столбцы) естественного ключа?", я предположу, что ответ будет близок к 50/50. Единственный определенный ответ, который вы получите по этому вопросу и с которым согласится большинство, будет тот, что при работе с хранилищами данных вы должны использовать суррогатные ключи для таблиц измерений и фактов. Это связано с тем, что реляционная база данных OLTP источника может измениться в любой момент из-за бизнес-требований, и ваше хранилище данных должно быть способно обработать эти изменения без необходимости обновления. Здесь мы рассмотрим некоторые соображения за и против каждого типа первичного ключа, чтобы вы могли принять лучшее решение для применения в ваших проектах. Continue reading "Разница между суррогатным и естественным ключом, и их использование в SQL Server"

Ограничения страницы данных

Пересказ статьи Klaus Aschenbrenner. Data Page Restrictions


Сегодня поговорим об ограничениях, которые связаны со страницами данных, и почему есть ограничения, которые вам понравятся, хотя другие вы будете ненавидеть. Как вы знаете, страница данных всегда имеет размер 8 Кб, и вы можете сохранить на ней 8060 байтов данных. И размер ваших записей определяет, как много вы их можете сохранить на одной странице. Когда вы имеете дело с типами данных фиксированной длины (например, CHAR, INT, DATETIME и др.), имеется ограничение, что длина записи не может превосходить 8060 байтов, включая внутренние накладные расходы, которые использует SQL Server.

Continue reading "Ограничения страницы данных"

Типы данных varchar в SQL Server, Oracle и PostgreSQL

Пересказ статьи Andrea Gnemmi. Varchar Data Types in SQL Server, Oracle and PostgreSQL


Здесь мы рассмотрим как сохранить максимальное число символов в столбце переменной длины и различия между тремя системами баз данных. В частности, будут рассмотрены различные процедуры, используемые для хранения больших строк в столбце с целью обработки большого текста или структурированных данных типа JSON (будет отдельная статья). Continue reading "Типы данных varchar в SQL Server, Oracle и PostgreSQL"

Когда использовать CHAR, VARCHAR или VARCHAR(MAX)

Пересказ статьи Greg Larsen. When to use CHAR, VARCHAR, or VARCHAR(MAX)


В каждой базе данных имеются различные виды данных, которые нужно хранить. Некоторые данные строго числовые, в то время как другие данные состоят только из букв или комбинации букв, чисел и даже специальных символов. Даже при простом хранении данных в памяти или на диске требуется, чтобы каждая часть данных имела тип. Выбор правильного типа зависит от характеристик сохраняемых данных. В этой статье объясняется разница между CHAR, VARCHAR и VARCHAR(MAX). Continue reading "Когда использовать CHAR, VARCHAR или VARCHAR(MAX)"

Как заменить столбец identity порядковым номером

Пересказ статьи Greg Larsen. How to replace an identity column with a sequence number


Microsoft ввел объекты порядковых номеров, начиная с SQL Server 2012. Объект последовательности генерирует порядковые номера на базе начального значения и приращения, подобно столбцу identity, но имеющему дополнительные возможности. Спустя какое-то время вы, возможно, обнаружите, что дополнительные преимущества порядковых номеров приведут вас к желанию заменить столбец identity на порядковый номер. В этой статье рассматривается два способа замены столбца identity порядковым номером (числом последовательности).
Continue reading "Как заменить столбец identity порядковым номером"

Пропуски в столбце SQL Identity и пересчет в SQL Server, Oracle и PostgreSQL

Пересказ статьи Andrea Gnemmi. SQL Identity Column Gaps and Conversion in SQL Server, Oracle and PostgreSQL


В первой части этой серии статей мы узнали, что представляет собой столбец identity, а также различные способы его установки и модификации в SQL Server, Oracle и PostgreSQL. Теперь мы глубже заглянем в столбцы identity и рассмотрим такие вопросы, как кэширование значений identity и как преобразовать существующий столбец (содержащий данные) в столбец identity. Continue reading "Пропуски в столбце SQL Identity и пересчет в SQL Server, Oracle и PostgreSQL"

JSON в SQL Server - часть 2

Пересказ статьи Josip Saban. SQL Server JSON – Part 2


В предыдущей статье были даны основы JSON и показано на ряде примеров, как использовать JSON в SQL Server. Во второй части мы рассмотрим более продвинутые случаи использования JSON, начиная со специфики обработки JSON в SQL Server 2017 и более поздних версиях, продолжая с валидации данных JSON, модификации данных JSON и заканчивая примерами лучшего использования. Continue reading "JSON в SQL Server - часть 2"