Microsoft SQL-сервер
| Microsoft SQL-сервер | |||
|---|---|---|---|
| Часть системы управления реляционными базами данных | |||
|
| |||
| Главная Информация | |||
| тип программы | реляционная база данных системы управления | ||
| разработчик | майкрософт | ||
| Первый выпуск | 24 апреля 1989 г. | ||
| Лицензия | Лицензионное соглашение Майкрософт | ||
| Техническая информация | |||
| Запланировано в | С , С++ | ||
| читаемые файлы | |||
| |||
| редактируемые файлы | |||
| |||
| Ссылки | |||
Microsoft SQL Server — система управления реляционными базами данных , разработанная Microsoft .
Используемый язык разработки (из командной строки или через графический интерфейс Management Studio) — это Transact-SQL (TSQL), реализация стандарта ANSI языка SQL, используемого для управления и извлечения данных ( DML ), создания таблиц и определения отношения между ними ( DDL ).
Среди наиболее заметных конкурентов SQL Server: Oracle , MariaDB , MySQL , PostgreSQL . SQL Server традиционно был доступен только для операционных систем Microsoft Windows , но с 2016 года он доступен для GNU/Linux , [ 2 ] [ 3 ] , а с 2017 года также и для Docker . [ 4 ]
Его можно настроить на использование нескольких экземпляров на одном физическом сервере, при этом первая установка обычно носит имя сервера, а последующие - конкретные имена (с дефисом между именем сервера и именем установки).
Версии
| Версия | Год | название версии | имя ключа |
|---|---|---|---|
| 1.0 ( ОС/2 ) |
1989 г. | SQLServer 1-0 | SQL |
| 4.21 ( WinNT ) |
1993 г. | SQLServer 4.21 | ПРОДОЛЖЕНИЕ |
| 6,0 | 1995 | SQLServer 6.0 | SQL95 |
| 6,5 | тысяча девятьсот девяносто шесть | SQLServer 6.5 | гидра |
| 7,0 | 1998 г. | SQL Server 7.0 [ 6 ] | сфинкс |
| - | 1999 г. | Инструменты SQL Server 7.0 OLAP |
Блюдо |
| 8,0 | 2000 г. | SQL Server 2000 [ 7 ] | Шайло |
| 8,0 | 2003 г. | SQL Server 2000 , 64-разрядная версия |
Свобода |
| 9,0 | 2005 г. | SQL Server 2005 [ 8 ] | Юкон |
| 10,0 | 2008 г. | SQL Server 2008 [ 9 ] | Катмаи |
| 10.25 | 2010 | SQL-Azure БД | CloudDatabase |
| 10.50 | 2010 | SQL Server 2008 R2 [ 10 ] | Килиманджаро |
| 11,0 | 2012 | SQL Server 2012 [ 11 ] | Денали |
| 12,0 | 2015 | SQL Server 2014 [ 12 ] | SQL14 (ранее Гекатон) |
| 13,0 | 2016 | SQLServer 2016 | SQL16 |
| 14,0 | 2017 | SQLServer 2017 | vСледующий 2017 |
| 15,0 | 2019 | SQLServer 2019 | Дафна |
Исходный исходный код SQL Server , который использовался в версиях до версии 7.0, должен был быть приобретен у Sybase , но был обновлен в версиях 7.0 и 2000 и переписан в версии 2005. Как правило, каждые 2-3 года выпускается новая версия. а между этими выпусками предлагаются пакеты обновлений с улучшениями и исправлениями ошибок , а также исправления для неотложных проблем в системе безопасности или критических ошибок.
Доступность
Microsoft SQL Server продается как лицензия. Тем не менее, пользователям, которые хотят использовать SQL Server для работы с программой, такой как запрос и хранение информации, необходима клиентская лицензия.
Модели лицензий
Microsoft SQL Server использует разные модели лицензирования, это лицензии Server + CAL и лицензии Core.
Модель сервера + CAL
Эта модель лицензии является более дешевым вариантом, она приобретается вместе с лицензией, и для пользователей или устройств необходимо приобретать дополнительные клиентские лицензии.
Лицензии на ядро
Выбирая лицензирование по количеству ядер, вы лицензируете несколько ядер физического процессора сервера. Для Microsoft SQL Server 2019 всегда необходимо лицензировать как минимум 4 ядра. Эту модель лицензии часто выбирают крупные компании.
Для этого не требуются клиентские лицензии.
Клиентская лицензия (CAL)
Лицензия клиентского доступа предназначена для предоставления прав использования, позволяющих пользователям или устройствам получать доступ к серверному программному обеспечению. Это означает, что каждому компьютеру или пользователю, которому требуется доступ к серверному программному обеспечению, необходима клиентская лицензия.
Пользовательские клиентские лицензии
Пользовательская клиентская лицензия дает доступ к вышеупомянутой функции пользователю в сети. Это означает, что этот пользователь также может получить доступ к сети сервера через другие устройства.
Клиентские лицензии на устройство
Клиентская лицензия на устройство дает доступ к устройству. Это означает, что все пользователи этого устройства могут войти в систему для доступа к серверу. Это часто полезно только тогда, когда в организации больше пользователей, чем устройств, [ 13 ]
Характеристики
- Поддержка сделки .
- Поддерживает хранимые процедуры .
- Он также включает графическую среду администрирования, которая позволяет графически использовать команды DDL и DML .
- Это позволяет работать в клиент-серверном режиме , когда информация и данные размещаются на сервере, а сетевые терминалы или клиенты имеют доступ только к информации.
- Он также позволяет вам управлять информацией с других серверов данных .
Эта система включает сокращенную версию под названием MSDE с тем же ядром базы данных , но ориентированную на более мелкие проекты, которая в версиях 2005 и 2008 становится SQL Express Edition , которая распространяется бесплатно .
Общепринято разрабатывать полные проекты с использованием Microsoft SQL Server и Microsoft Access через так называемый ADP ( проект доступа к данным ). Таким образом, база данных ( Microsoft SQL Server ) дополнена средой разработки ( VBA Access) за счет реализации двухуровневых приложений с использованием форм Windows .
SQLCMD , osql или PowerShell используются для обработки SQL через командные строки .
Для разработки более сложных приложений (трех и более слоев) Microsoft SQL Server включает интерфейсы доступа для различных платформ разработки, включая .NET , но сервер доступен только для операционных систем .
Тип NUMERIC был улучшен для использования в качестве идентификатора столбца начиная с версии 2008 R2.
Программирование
T-SQL
T-SQL (Transact-SQL) — основное средство взаимодействия с Сервером, позволяющее выполнять ключевые операции в SQL Server, включая создание и изменение схем БД, вставку и изменение данных в БД, а также администрирование сервер как таковой. Это делается путем отправки инструкций и объявлений T-SQL, которые обрабатываются сервером, а результаты (или ошибки) возвращаются клиентскому приложению.
Собственный клиент SQL
SQL Native Client — это библиотека доступа к данным для клиентов Microsoft SQL Server версии 2005 и более поздних версий. Нативно реализует поддержку функций SQL Server, включая выполнение потока табличных данных, поддержку зеркальных баз данных SQL Server, полную поддержку всех поддерживаемых SQL Server типов данных, асинхронные наборы операций, уведомления о запросах, поддержку шифрования, а также получение множественных наборов результатов. в одном сеансе базы данных. SQL Native Client используется как расширение подключаемых модулей SQL Server для других технологий доступа к данным, включая ADO или OLE DB. SQL Native Client также можно использовать напрямую, минуя уровни доступа к данным.
Издания и услуги
Каждая редакция SQL Server имеет разные версии с разными ценами (для каждой версии), которые также зависят от физической конфигурации сервера. [ 14 ] Основные версии представлены ниже:
Предприятие
Она включает в себя все функции (отключенные в других версиях) Это тип версии с наибольшим количеством привилегий на рынке.
разработчик
Редакция с теми же характеристиками, что и Enterprise, для установки только в среде разработки, а не в рабочей среде. Если он разработан для стандартной версии, необходимо учитывать функции, отключенные для этой версии.
Стандарт
Ограниченная версия в зависимости от конфигурации сервера и его характеристик, предназначенная для младших серверов.
Например: в версии 2012 редакция Enterprise поддерживает неограниченное количество процессоров и горячее добавление памяти и процессоров без прерывания обслуживания или сервера; в то время как стандартная версия ограничена 16 процессорами и не поддерживает «горячее добавление».
экспресс
Бесплатная версия, которая позволяет создавать ограниченные базы данных с базовыми функциями для поддержки приложений, которым требуется простое решение для хранения ограниченного объема данных, или пользователей, ресурсы и потребности которых ограничены.
В версии 2012 года эта редакция может использовать максимум 1 ГБ памяти и хранить не более 10 ГБ, работает на серверах с максимальным количеством процессоров четыре. Эти ограничения сохраняются в версии 2014 года (4 ядра, 1 ГБ оперативной памяти и 10 ГБ на базу данных).
SQLAzure
Это версия SQL Server в облаке, которая позволяет ежемесячно платить за услугу без необходимости поддерживать физический сервер (On Premise). Компания платит только за сервис, а сервис управляется через фермы серверов в разных точках мира.
С SQL Azure нет необходимости устанавливать, обслуживать или обновлять физический сервер; несмотря на то, что эта услуга зависит от аспектов, связанных с проблемами безопасности, относительно ее присутствия за пределами компании и наличия подключения к Интернету.
На какое-то время услуга была расширена за счет возможности создания виртуального сервера по сети и установки SQL Server, а также одной из конкурирующих служб, а также управления виртуальным сервером, как если бы это был локальный физический сервер (хотя это физически не доступен). ); и вы можете различать исходный вариант, который называется PAAS ( платформа как услуга : платформа как услуга ), и новый вариант виртуальных серверов, называемый IAAS ( инфраструктура как услуга: инфраструктура как услуга ).
Эта услуга предоставляется Microsoft с 2009 года и объединяет аналогичные услуги сторонних компаний .
Пользовательский интерфейс
SQL Server предоставляет несколько интерфейсов, которые изменились за прошедшие годы, наиболее известными из которых являются графические интерфейсы, используемые разработчиками и администраторами в качестве стандартного инструмента разработки .
Графический интерфейс до 2005 г. включал в себя Enterprise Manager с древовидным представлением различных объектов и возможностью управления ими; и анализатор запросов в качестве текстового интерфейса для выполнения команд TSQL.
В версии 2005 года два инструмента были объединены в один — SQL Server Management Studio (SSMS), а с 2008 года возможность работы с Visual Studio — стандартный интерфейс разработки Microsoft (на разные языки , BI и т. д .). Другим необязательным интерфейсом является использование командной строки с такими инструментами, как SQLCmd, ISQL, OSQL, которые позволяют выполнять сценарии и выполнять пакетную обработку . С 2008 года его можно разрабатывать с помощью SQLCmd (команда SQL) через SSMS без подключения к текстовому интерфейсу Windows. Другим вариантом в области сценариев является использование языка сценариев Microsoft Powershell .
Помимо стандартных интерфейсов SQL Server, вы можете выполнять команды TSQL с помощью средств подключения, таких как ODBC и OLE-DB. [ 15 ]
Услуги
В отличие от систем баз данных, таких как Microsoft Access , которые являются «пассивными» и содержат файл, к которому вы должны подключиться, а выполнение команд осуществляется на клиенте (компьютере пользователя), в SQL Server есть ряд служб , программного обеспечения . которые выполняются в памяти сервера системой, и, следовательно, используют возможности сервера, который является более мощным, чем клиенты, предотвращают перегрузку сети и могут планировать выполнение задач, даже если клиент не подключен. .
Основные услуги:
- SQL Server — «движок» системы
- SQL Agent - Выполнение задач (Jobs, запланированные скрипты) и отправка предупреждений в случае большой и нерегулярной нагрузки на систему
- Средство запуска демона полнотекстового фильтра — использование специальных индексов «Полнотекстового поиска» для расширенного текстового поиска.
- Браузер SQL - «слушатель», предназначенный для отправленных команд и перенаправляющий их к месту назначения.
- Сервер SSIS — работа SSIS ( инструмент ETL )
- Сервер SSAS — работа SSAS ( инструмент OLAP )
- Сервер SSRS — работа SSRS (средство создания отчетов)
Основные возможности и инструменты
Базы данных
В каждой установке SQL Server есть 4 системные базы данных, и возможность создания пользователем новых баз данных, в которых данные хранятся в таблицах.
Эти базы данных, созданные пользователями, в основном включают файл данных (с суффиксом mdf) с таблицами и различными объектами на уровне базы данных; и файл журнала (с суффиксом ldf) с открытыми транзакциями и закрытыми транзакциями, в соответствии с выбранной моделью восстановления (все изменения базы данных с момента последнего резервного копирования могут быть собраны в файле журнала). Набор файлов данных может быть создан в дополнение к основному (с суффиксом ndf) для соображений эффективности, распределения рабочей нагрузки между жесткими дисками и т. д.
Базы данных системы:
- master — все процедуры, функции и системные таблицы, используемые всеми базами данных и устанавливаемые автоматически, а также созданные системными администраторами. Кроме того, в этой базе данных хранятся все определения, касающиеся безопасности на уровне сервера.
- msdb — хранилище задач агента, коды CLR , объединенные в систему, пакеты SSIS и многое другое.
- модель - шаблон базы данных. Каждая новая база данных создается как копия этой базы данных, если явно не указано иное.
- tempdb — временная база данных, которая создается заново при каждом перезапуске службы. Он используется для хранения временных таблиц, созданных пользователями или системой (например, в сложных сортировках).
Фиксированные и временные таблицы
С логической точки зрения данные хранятся в базах данных в таблицах, что через них реализует теорию реляционных баз данных. Таблица разделена на строки и столбцы (иногда называемые записями и полями). Таблицы могут быть фиксированными или временными, при этом во втором случае они физически существуют в базе данных tempdb и автоматически удаляются в случае разрыва сеанса или подключения к серверу, в зависимости от типа временной таблицы.
С физической точки зрения система делит файлы базы данных на экстенты по 64 КБ, каждый из которых состоит из восьми страниц по 8 КБ. Как правило, каждый экстент назначается таблице или индексу , за исключением небольших таблиц; и каждая страница всегда назначается определенной таблице. Система отвечает за увеличение файлов в соответствии с настройками пользователя и назначение экстентов и страниц таблицам.
Таблицы можно индексировать. Индексы хранятся рядом с таблицей (некластеризованный индекс) или являются самой таблицей (кластеризованный индекс). Индексы помогают находить данные в таблицах (например, файлы в библиотеках), сортировать их и определять первичные ключи .
Между таблицами может быть создана связь «один ко многим » .
Помимо пользовательских таблиц существуют таблицы, в которых хранятся метаданные: данные о самой системе, различных объектах, правах, статистика производительности системы (DMV) и т.д.
Типы данных
Для каждого столбца в таблице и каждой переменной или параметра определяется тип данных, которые должны храниться в нем, среди них:
- Числа : целые и нецелые числа разных размеров и с разным уровнем точности; и необязательный автоматический приращение.
- Тексты : строки разной длины и разные возможности для поддержки разных языков.
- Даты : Даты с разным уровнем точности, от целых дней до долей секунды, поддержка дат начала 20-го века или григорианского календаря, а также возможность различать разные способы использования времени.
- XML : текстовые данные (строки), представляющие стандартные наборы данных (стандарт SGML).
- Двоичные данные : данные, хранящиеся в виде двоичных данных (биты и байты), что позволяет хранить графические файлы и т. д.
- География : стандартное представление географической информации, такой как штаты, географические районы, населенные пункты; и расчеты как расстояния.
- Геометрия : стандартное представление точек, линий, поверхностей на плоскости; и отношения между ними.
- Hierarchyid : стандартное представление иерархической информации , такой как спецификация материалов, отношения отчетности между сотрудниками и т. д.
Просмотры
Представления обычно представляют собой команды извлечения данных, которые хранятся без данных (которые хранятся в таблицах). Эта опция позволяет нам создавать сложные или стандартные экстракты, сохранять их в виде представлений и использовать представления без необходимости повторного ввода команд или сохранения кода там, где они появляются. Кроме того, это очень важное средство предоставления прав выборочного чтения (в случае, если мы хотим, чтобы пользователь мог частично просматривать столбцы или строки таблицы).
Представление можно рассматривать как виртуальную таблицу или сохраненный запрос. Данные, доступные через представление, не хранятся ни в каком объекте, кроме базы данных. В базе данных хранится оператор SELECT. Результат оператора SELECT формирует виртуальную таблицу, которую возвращает представление. Пользователь может использовать такую виртуальную таблицу, ссылаясь на имя представления в операторах Transact-SQL так же, как ссылаются на таблицы. Представления используются для некоторых или всех следующих функций:
• Ограничение доступа пользователей к определенным строкам в таблице. Например, разрешить сотруднику видеть только те строки, которые сохраняют его работу в таблице отслеживания рабочей активности.
• Ограничить доступ пользователей к определенным столбцам. Например, разрешите сотрудникам, не работающим в отделе расчета заработной платы, видеть столбцы имени, офиса, телефона и отдела в таблице сотрудников, но не позволяйте им видеть столбцы с данными о зарплате или другой личной информацией.
• Объедините столбцы из нескольких таблиц, чтобы они отображались как одна таблица.
• Добавляйте информацию вместо представления деталей. Например, представляя сумму столбца или максимальное или минимальное значение столбца.
Представления создаются путем определения инструкции SELECT, которая извлекает данные, представленные представлением. Таблицы данных, на которые ссылается оператор SELECT, называются базовыми таблицами представления. Представления во всех версиях SQL Server могут обновляться (могут быть целью операторов UPDATE, DELETE или INSERT), если модификация влияет только на одну из базовых таблиц представления.
Хранимые процедуры
Процедуры представляют собой командные сценарии TSQL, которые могут выполняться с различными параметрами. Например, процедура, которая получает номер года в качестве параметра и обновляет сводную таблицу продаж данными о продажах агентов в указанном году на основе таблицы регистрации продаж.
Хранимые процедуры могут значительно упростить управление базой данных и просмотр информации о ней и ее пользователях. Хранимые процедуры представляют собой предварительно скомпилированный набор операторов SQL и необязательных операторов управления потоком, хранящихся под одним именем и обрабатываемых как единое целое. Хранимые процедуры хранятся в базе данных; их можно запускать из приложения и разрешать объявляемые пользователем переменные, условное выполнение и другие мощные функции программирования. Хранимые процедуры могут содержать программный поток, логику и запросы к базе данных. Они могут принимать параметры, предоставлять результаты параметров, возвращать один или несколько наборов результатов и возвращать значения.
Преимущества использования хранимых процедур в SQL Server вместо программ Transact-SQL, хранящихся локально на клиентских компьютерах, заключаются в том, что они:
• Допускают модульное программирование.
Вы можете создать процедуру один раз, сохранить ее в базе данных и вызывать из программы любое количество раз. Специалист по программированию баз данных может создавать хранимые процедуры, которые затем можно изменять независимо от исходного кода программы. Они облегчают обслуживание.
• Разрешить более быстрое выполнение.
В ситуациях, когда требуется большой объем кода Transact-SQL или если операции выполняются несколько раз, хранимые процедуры могут быть быстрее, чем пакеты кода Transact-SQL. Процедуры анализируются и оптимизируются во время их создания, и можно использовать версию процедуры, которая находится в памяти после ее первого выполнения. Операторы Transact-SQL, которые многократно отправляются клиентом каждый раз, когда они должны выполняться, должны быть скомпилированы и оптимизированы всякий раз, когда они выполняются SQL Server.
• Они могут уменьшить сетевой трафик.
Операция, требующая сотен строк кода Transact-SQL, может быть выполнена с помощью одного оператора, который выполняет код в процедуре, а не отправляет сотни строк кода по сети.
• Их можно использовать в качестве механизма безопасности.
Пользователям могут быть предоставлены разрешения на выполнение хранимой процедуры, даже если у них нет разрешения на прямое выполнение операторов процедуры.
Пользовательские функции
Функции — это объект, который сочетает в себе одни возможности представлений с другими возможностями процедур. Как и представления, они могут извлекать данные и выполнять вычисления, возвращая результат пользователю или программе, выполнившей их. Как и процедуры, они включают коды TSQL и могут выполняться с параметрами.
Функции возвращают значение или набор значений.
Пользовательские функции создаются с помощью инструкции CREATE FUNCTION, изменяются с помощью инструкции ALTER FUNCTIONи удаляются с помощью инструкции DROP FUNCTION. Все полные имена функций (имя_базы_данных.имя_владельца.имя_функции), определяемые пользователем, должны быть уникальными. Чтобы создавать, изменять или удалять пользовательские функции, у вас должен быть CREATE FUNCTION. Пользователи, кроме владельца, должны иметь разрешение EXECUTE для функции, и только после этого они могут использовать ее в инструкции Transact-SQL. Чтобы создавать или изменять таблицы со ссылками на определяемые пользователем функции в ограничении CHECK, предложении DEFAULTили определении вычисляемого столбца, у вас также должно быть разрешение REFERENCESна эти функции. Ошибки Transact-SQL, которые вызывают отмену оператора и переход к следующему оператору в модуле, например триггеры или хранимые процедуры, обрабатываются в функции по-разному. В функциях эти ошибки вызывают остановку выполнения функции. Это приводит к прекращению работы функции, вызвавшей оператор. Пользовательская функция имеет ноль или несколько входных параметров и возвращает скалярное значение или таблицу. Функция может иметь не более 1024 входных параметров. Когда параметр функции принимает значение по умолчанию, ключевое слово должно быть указано DEFAULTпри вызове функции, чтобы получить значение по умолчанию. Это поведение отличается от параметров значений по умолчанию в хранимых процедурах, для которых пропуск параметра подразумевает указание значения по умолчанию. Пользовательские функции не поддерживают выходные параметры.
Распределенные запросы
Распределенные запросы обращаются к данным из нескольких источников, которые могут храниться на одном компьютере или на разных компьютерах. Microsoft SQL Server 2000 поддерживает распределенные запросы через OLE DB Распределенные запросы предоставляют пользователям SQL Server доступ к:
• Распределенным данным, хранящимся в нескольких экземплярах SQL Server.
• Разнородные данные, хранящиеся в различных реляционных и нереляционных источниках данных, доступ к которым осуществляется через поставщика OLE DB.
Поставщики OLE DB предоставляют данные в табличных объектах, называемых наборами строк. SQL Server 2000 позволяет ссылаться на наборы строк от поставщиков OLE DB в операторах Transact-SQL, как если бы они были таблицей SQL Server. На таблицы и представления из внешних источников данных можно напрямую ссылаться в инструкциях Transact-SQL SELECT, INSERT, UPDATE и DELETE. Поскольку распределенные запросы используют OLE DB в качестве базового интерфейса, они получают доступ к традиционным системам реляционных СУБД с процессорами запросов SQL, а также к данным, управляемым источниками данных различной мощности и сложности. Пока проприетарное программное обеспечение предоставляет данные в табличном наборе строк через поставщика OLE DB, данные можно использовать в распределенных запросах. Примечание. Использование распределенных запросов в SQL Server похоже на функциональность связанных таблиц через ODBC, ранее поддерживаемую Microsoft Access. Эта функция теперь встроена в SQL Server с OLE DB в качестве интерфейса для внешних данных.
Сделки
Транзакция — это набор команд, который выполняется полностью или не выполняется вообще: все или ничего. Например, если сумма денег была переведена с одного банковского счета на другой, и оба счета необходимо обновлять при вводе и выводе средств; обязательно, чтобы обе учетные записи обновлялись вместе, или ни одна (в случае сбоя одного из обновлений); чтобы избежать противоречивых последствий депозита без вывода средств или наоборот. Следовательно, транзакция — это последовательность операций, выполняемых как единая логическая единица работы. Логическая единица работы должна демонстрировать четыре свойства, известные как свойства ACID (атомарность, согласованность, изоляция и устойчивость), чтобы квалифицироваться как транзакция:
- атомарность
Транзакция должна быть атомарной единицей работы, вне зависимости от того, вносятся ли все ее изменения в данные или не вносятся никакие.
- Согласованность
По завершении транзакция должна оставить все данные в согласованном состоянии. В реляционной базе данных все правила должны применяться к модификациям транзакций, чтобы поддерживать целостность всех данных. Все внутренние структуры данных, такие как индексы B-дерева или двусвязные списки, должны быть корректными в конце транзакции.
- Изоляция
Модификации, сделанные параллельными транзакциями, должны быть изолированы от модификаций, сделанных другими параллельными транзакциями. Транзакция видит данные в том состоянии, в котором они были до изменения другой параллельной транзакцией или после завершения второй транзакции, но не видит промежуточного состояния. Это известно как сериализация, потому что ее результатом является возможность перезагрузить исходные данные и воспроизвести серию транзакций, чтобы закончить данные в том же состоянии, в котором они были после выполнения исходных транзакций.
- Долговечность
Как только транзакция заключена, ее последствия сохраняются в системе. Изменения сохраняются даже в случае системной ошибки.
SQL Server имеет ограниченную возможность вложения транзакций.
Оптимизатор
Оптимизатор — это часть программного обеспечения, которая «принимает решение» о том, как будет выполняться каждая команда, чтобы выполнение было наиболее эффективным или, по крайней мере, достаточно эффективным (то есть достаточно эффективным, чтобы избежать продолжения поиска другой команды). решение, которое все-таки эффективнее, цена дополнительного поиска будет "обойдеться" дороже, чем экономия ресурсов).
SQL является декларативным языком , в котором разработчик заявляет, что он хочет извлечь или обновить без необходимости указывать как (в отличие от императивных языков , и поэтому ведущую роль играет оптимизатор, который по той статистике, которую система хранит о распределениях данных в таблицах, указателях и внутренних правилах; принимает соответствующее решение.
Привилегии и безопасность данных
Для подключения к SQL Server требуется Логин (пользователь уровня сервера). Когда политика безопасности определена как проверка подлинности Windows, а сервер объединен с определениями домена , имена входа определяются в Active Directory . Когда определением является проверка подлинности SQL Server, логины (пользователь и пароль) определяются в самом SQL Server. Следовательно, в первом случае вы должны идентифицировать себя с именем и паролем только при подключении к сети, а затем вы автоматически подключаетесь ко всем серверам, которые проходят проверку подлинности Windows (с глобальным входом в систему); а во втором случае вы должны идентифицировать себя при подключении к каждому серверу аутентификации SQL Server (каждый раз с локальным логином).
На уровне базы данных пользователь идентифицируется как Пользователь, который обычно связан с Логином (который находится на уровне сервера), а привилегии для Пользователя существуют только на уровне базы данных (в дополнение к привилегиям для Логина). Предоставить общие права можно с помощью списков ролей сервера (роли на уровне сервера) или ролей базы данных (роли на уровне конкретной базы данных), каждая из которых имеет определенные привилегии для определенной роли; и каждый пользователь, связанный с одной из этих ролей, получает связанные с ней привилегии. Кроме того, администратор может предоставлять определенные права и создавать другие роли базы данных (роли сервера создавать нельзя).
Привилегии уровня сервера включают возможность создавать базы данных, использовать задания, создавать резервные копии и восстанавливать базы данных, изменять определения серверов и т. д. Привилегии уровня базы данных позволяют извлекать и обновлять данные, создавать такие объекты, как процедуры и таблицы, использовать эти объекты и т. д. Как правило, вы можете предоставлять права (Grant), отзывать существующие привилегии (Revoke) и отказывать в привилегиях, которых еще не существует (Deny).
Другие сервисные инструменты
В дополнение к своим элементарным возможностям в качестве инструмента управления реляционной базой данных (создание таблиц, определение отношений между ними, управление транзакциями, создание индексов и т. д.), SQL Server поддерживает растущий список других сервисных инструментов; или завершить то, что есть.
Резервное копирование и восстановление
Помимо альтернативных решений на уровне операционной системы (резервное копирование файлов базы данных), в SQL Server имеется встроенный инструмент, позволяющий выполнять полное или дифференциальное резервное копирование базы данных в соответствии с предопределенной моделью восстановления; и полное или временное восстановление. Помимо резервного копирования базы данных, вы можете создать их резервную копию с помощью сценария (с данными или без них). С 2008 года вы можете сжимать файлы резервных копий.
Сжатие
С 2008 года добавлена опция сжатия, позволяющая сжимать физический размер таблиц и индексов, а также более эффективно использовать объем жестких дисков и сокращать операции ввода-вывода (что увеличивает нагрузку на ЦП). Как уже упоминалось, вы также можете сжать файлы резервных копий.
Репликация, высокая доступность и аварийное восстановление
Некоторые инструменты позволяют создавать частичные или полные реплики баз данных, улучшать доступность и восстанавливаться после сбоев; за исключением возможности резервного копирования и восстановления баз данных, которая должна быть очень медленной.
Копии, созданные этими инструментами, можно использовать в качестве немедленно доступной резервной копии на случай сбоя системы, а также в качестве реплики в подсистеме, независимой от исходной системы, для балансировки нагрузки; и что обновления выполняются в базе данных, а восстановление отчетов выполняется в реплике.
Среди этих инструментов мы можем упомянуть репликацию , которая позволяет создавать синхронизированную реплику базы данных, зеркалирование , которое выполняет на зеркальном сервере каждое обновление, выполняемое на исходном сервере, доставку журналов, которая позволяет хранить синхронизированную копию. через лог-файлы (Log) со всеми обновлениями на исходном сервере, а также инструменты высокой доступности и аварийного восстановления (HADR, с 2012 г.), решающие проблемы зеркалирования в отношении времени реакции на технические сбои и доступности копий в мирное время.
Агент и планирование задач
Агент — это служба, отвечающая за планирование задач и отвечающая за их независимое выполнение. Как правило, он выполняет задачи обслуживания, сложные задачи ETL , резервное копирование и т. д.
Техническое обслуживание
Для повышения производительности системы необходимо вести статистику, используемую оптимизатором, упорядочивать физические файлы и т.д.; и для этих целей используются специальные инструменты, которые периодически выполняются запланированными задачами и скоординировано с задачами ETL и резервного копирования.
Сервисный брокер
Технология, которая была добавлена в 2005 году и реализует сервисно-ориентированную архитектуру и позволяет выполнять асинхронные операции: прежде всего, для отправки сообщений между различными приложениями, работающими одновременно, а также для асинхронного выполнения процедур по принципу «запустил и забыл » — процедура который выполняется в сеансе, отличном от сеанса, который его запустил, и обе процедуры продолжают выполняться независимо друг от друга.
Отправка писем
SQL Server имеет возможность отправлять электронную почту через код. Эта функция обычно используется для отправки предупреждений о системных проблемах (например, если загрузка ЦП увеличилась до предварительно определенного порога или если процесс ETL завершился неудачно), а также при успешном завершении процесса.
Полнотекстовый поиск
Инструмент, который позволяет индексировать текстовые столбцы как тексты, а не только как строки; и выполнять сложные поиски в зависимости от смысла текста и языка. Например, мы ищем глагол и хотим получить все вхождения его спряжений.
Трек
Эти инструменты включают Трассировку, которая позволяет отслеживать действия для поддержания нагрузок и отказов, а также безопасность данных (восстановление данных не допускается), Профилировщик, который позволяет отслеживать выполняемые команды и события, происходящие на сервер и расширенные события, которые были добавлены в 2008 году и изменяют профилировщик благодаря своей низкой сигнатуре (потребление ресурсов и влияние на производительность сервера).
Помимо этого, для отслеживания изменений и действий можно использовать 2 типа триггеров: триггеры DML, предопределенные для таблиц и представлений и инициируемые инструкциями по обновлению данных (выбрать/обновить/удалить), и триггеры DDL, которые инициируются изменениями в сами объекты (а не данные) на уровне базы данных или сервера.
Слияние CLR
Начиная с 2005 года вы можете легко комбинировать процедуры, функции и агрегатные функции, разработанные в среде CLR , в SQL Server . Вы должны разработать код в одном из инструментов разработки .NET , создать DLL -файл и объединить его с системой. Преимуществом этой технологии являются ее возможности в задачах, которые не являются исключительно базами данных (манипулирование данными), и включают сложные вычисления или текстовые манипуляции со строками.
Инструменты бизнес-аналитики
Стандартная установка также включает инструменты Business Intelligence ( BI ) :
SSIS (службы интеграции SQL Server)
Инструмент ETL , который позволяет извлекать данные из разных источников (не только SQL Server), преобразовывать указанные данные и загружать (как правило, но не обязательно в хранилище данных ).
SSAS (службы анализа SQL Server)
Инструмент для создания многомерных (нереляционных) баз данных , которые можно исследовать, извлекая данные на разных уровнях группировки, детализируя сумму до ее деталей и используя MDX (SQL-подобный язык, адаптированный для многомерных баз данных).
SSRS (службы отчетов SQL Server)
Инструмент для создания и форматирования отчетов, предоставления им прав просмотра и их распространения. Их можно просматривать с помощью веб-браузера и экспортировать в Excel , PDF и т. д. данные обычно извлекаются из хранилища данных или OLAP.
Недостатки
- Начиная с версии SQL Server 2012, запросы, написанные на T-SQL, не имеют обратной совместимости с версией SQL Server 2008 или более ранней.
- В 32-разрядных версиях SQL Server использует расширение Address Windowing Extension (AWE) для адресации более 4 ГБ. Это предотвращает использование динамического управления памятью и позволяет размещать не более 64 ГБ общей памяти. Это ограничение относится исключительно к 32-разрядным операционным системам; в 64-разрядных операционных системах максимальный объем памяти, который можно адресовать в Standard Edition, составляет 64 Гб, а в Enterprise Edition — 4 Тб.
Смотрите также
Ссылки
- ↑ Гатри, Скотт (7 марта 2016 г.). «Анонс SQL Server в Linux» (html) . Майкрософт (на английском языке) . Архивировано из оригинала 7 марта 2016 года . Проверено 3 марта 2019 г. .
- ↑ a b Домингес, Андрес Самора (25 октября 2017 г.). «Microsoft SQL Server теперь можно запускать в Linux GNU». (html) . Пандора ФМС (на английском языке) . Архивировано из оригинала 24 ноября 2018 года . Проверено 24 ноября 2018 г. . «28 декабря 2016 года – в праздник Святых Невинных, в тот особый день, когда испаноговорящие шутят в течение дня – было объявлено о приобретении компанией Microsoft ® членства типа «Платиновый» в Linux Foundation и запуске Microsoft SQL Server®. »
- ↑ Лернер, Реув М. «SQL Server в Linux» (html) . Гид для компьютерщиков (на английском языке) . Архивировано из оригинала 3 августа 2017 года . Проверено 24 ноября 2018 г. . Но даже самый скептически настроенный поклонник открытого исходного кода должен признать, что за последние несколько лет Microsoft изменилась. Он выпустил множество инструментов и библиотек для разработчиков с открытым исходным кодом и начал включать Linux в качестве поддерживаемой платформы для некоторого своего программного обеспечения. »
- ^ «Подготовьтесь к SQL Server 2017» (html) . Майкрософт (на английском языке) . Архивировано из оригинала 1 мая 2017 года . Проверено 24 ноября 2018 г. . «Привнесите лучшую в отрасли производительность и безопасность SQL Server в контейнеры Windows, Linux и Docker. »
- ↑ История развития SQL Server.
- ↑ Что нового в Microsoft SQL Server 7
- ↑ Что нового в Microsoft SQL Server 2000
- ↑ Что нового в SQL Server 2005
- ↑ Что нового (SQL Server 2008)
- ↑ Что нового в Microsoft SQL Server 2008 R2
- ↑ Что нового в SQL Server 2012
- ↑ Что нового в SQL Server 2014
- ↑ «Все, что вам нужно знать о лицензиях SQL Server и клиентских лицензиях» (неопр .) . Мягкий трейдер (на английском языке) . 15 сентября 2021 г. . Проверено 27 сентября 2021 г. .
- ↑ Возможности, поддерживаемые выпусками SQL Server 2014.
- ↑ Строки подключения
Внешние ссылки
- Веб-страница Microsoft SQL Server
- Разработчики Microsoft SQL Server
- книги на выставке
- Microsoft SQLServer 2017
- Журнал базы данных Журнал базы данных
- Страница загрузки Microsoft SQL Server 2012