ВСЁ о MS SQL


Эта статья больше всеого пригодиться тем, кто желает найти SQL базу своего прова для того что-бы коим-то образом поправлять ее:)) Могу сказать сразу, что ниже приведенный текст написан не мною и я совершенно не помню откуда его взял (по моему качнул где-то по ftp)... Но на основе него мной был поставлен ряд опытов, ну если крнечно это можно так назвать:))) Стоит сказать сразу, ребята, если вы хотите поломать прова поправляя его SQL то наломайтесь!! прочитайте эту статью внимательнейшим образом (хоть это и нудно) и задумайтесь!!! Потому что здесь описана простенькая система, которая явилась основой для современных SQL-ек, которые куда более наворочены и провам можно их даже не прятать, т. к. вся информация не только дублируется практически каждую минуту,а еще и ведутся подробнейшие логи откуда все это пришло... в общем мне эти опыты обошлись в пару штук наших российских... ну и прикинте сколько можно было пользоваться инетом... В общем читайте, если у кого появятся идеи пишите, а сейчас читайте и думайте!!!!!

-=Deltammx=-

СОДЕРЖАНИЕ:
Введение
Архитектура MS SQL Server 6.5
Производительность
Распределенная среда управления
SQL-DMO (Distributed Management Objects)
Интеграция с электронной почтой
Характеристики языка Transact-SQL
MS Distributed Transaction Coordinator (DTC) и распределенные транзакции
Блокировки
Надежность хранения информации
Тиражирование
Вопросы безопасности доступа
Некоторые вопросы использования MS SQL Server в Internet/intranet-приложениях
Заключение
Список литературы:


Введение
Коль скоро этот обзор посвящен серверу баз данных, невозможно не упомянуть о том, что создание машин для хранения и управления данными является, пожалуй, одним из самых значимых достижений человечества со времени изобретения письменности. Как известно, в начале было слово. Слово, ознаменовавшее переход от рефлексии в восприятии окружающего мира к абстрактному мышлению. Возможно, именно этот переворот в сознании нарушил первозданную гармонию и противопоставил человека природе. Как бы то ни было, при всей ограниченности и имманентной неполноте вербального общения именно слово служит основным способом передачи информации по сравнению, например, с музыкой, танцем, живописью, архитектурой и т. д. В рамках той парадигмы, в которой сегодня работает наш мозг, представляется иррациональной возможность просветления, озарения, т. е. мгновенного получения необходимых знаний. Остается процесс постепенного познания действительности, и для этого человек вынужден был научиться сохранять информацию, полученную на предыдущих этапах. Ключевым моментом стало возникновение знакового письма, которое, несмотря на большие или меньшие потери, смогло обеспечить должное хранение формализованных знаний. Как утверждают антропологи, за последние несколько десятков тысяч лет физиологические параметры homo sapiens практически не изменились - образно говоря, мы не стали лучше думать или глубже чувствовать. Единственное, что отличает современного человека от его предшественников - это объем накопленной информации и усовершенствованные способы ее обработки. Именно владение информацией обеспечило прогресс человеческого общества, позволив каждому последующему поколению опереться на объем знаний и опыта, собранный предшественниками, и в общем случае не изобретать заново велосипед.
Нелинейный рост во времени совокупной базы знаний цивилизации вызвал к жизни прогрессирующую эволюцию средств хранения, обработки и представления информации как инструментов умножения ее интеллектуальной мощи. В этом ряду применение последних достижений в области компьютерных технологий сравнимо по степени важности с изобретением печатного станка или даже его превосходит. Наблюдается и обратная зависимость: чем более изощренные средства используются для обработки информации, чем быстрее растут ее объемы, тем большее значение она приобретает практически во всех аспектах человеческой деятельности, в частности в экономике. Роль информации, как товара или предмета труда, носит совершенно особый характер. Информация сравнительно легко копируется без ущерба для своих потребительских свойств. В отличие, например, от тонны нефти, одна и та же информация может быть потреблена неоднократно, в том числе одновременно различными участниками товарных отношений. Все мы еще с уроков обществоведения усвоили, что труд является основным источником создания материальных благ. Однако даже у авторов учения о прибавочной стоимости можно встретить мысль о том, что по мере развития науки главная доля прироста общественного благосостояния будет обуславливаться ускоренными темпами обновления основного капитала в силу роста технического прогресса. Многие современные западные экономисты склонны считать, что человечество вступило в постиндустриальный период своего развития, основным средством производства в котором будет выступать информация и по отношениям собственности на которую в обществе уже начал определяться новый правящий класс - когнитариат. Можно принимать или оспаривать эти выводы, очевидно одно - в деятельности современного предприятия информация становится одним из важнейших производственных ресурсов, выделяясь в самостоятельный фактор успешного бизнеса из традиционных составляющих, таких как кадры, клиенты, каналы сбыта, технологии. Наконец, информация не может потребляться непосредственно: например, чтобы усвоить текст, нужно, как минимум, уметь читать. Отсюда с ростом значения информации возрастает роль средств ее обработки. Если зачастую стоимость информационной базы корпорации оказывается выше производимой ею продукции и услуг, если информация - это всегда деньги (и в общем-то немалые), то неудивительно, что рынок СУБД на сегодня оценивается в десятки миллиардов долларов.
Хотя предки нынешних СУБД существовали на мэйнфреймах еще до появления в 1969 г. знаменитой статьи Э. Кодда, положившей начало теории реляционных баз данных, их поистине массовое распространение и беспрецедентный рост популярности обеспечили "настольные" варианты одновременно с мировой экспансией персональных компьютеров. Однако требования корпоративного доступа к ресурсам и появление локальных вычислительных сетей на базе ПК привели к созданию наиболее многочисленных на сегодня решений на базе технологии "клиент-сервер". В последнее время необходимость поддержки мультимедийных проектов (изображений, видео, звука) и работы с другими видами неструктурированной бизнес-информации (временные ряды, географические карты) вызвала к жизни внедрение объектной идеологии в старые добрые реляционные базы независимо от того, достигалось ли это полным переписыванием ядра или интеграцией готовых реляционных и объектных баз данных. Классическую же в терминах реляционной теории СУБД, как известно, в первом приближении можно описать как комплекс из инструментария для поддержки таблиц и отношений между связанными таблицами, пользовательского интерфейса для ввода, поиска данных и их представления и высокоуровневых средств разработки приложений. Выделение в этой среде своеобразного исполнительного информационного центра, принимающего короткие запросы от клиентов, отыскивающего оптимальный путь их выполнения и передающего в ответ результирующие множества, приводит к разделению функций СУБД, часть из которых закрепляется за сервером, а часть - за клиентом. Традиционно на сервер возлагаются обязанности по оперативному исполнению транзакций, поддержке целостности данных, обеспечению безопасности хранения и доступа, обеспечению пользовательских соединений и соблюдению части логики приложения, большей или меньшей в зависимости от самого конкретного приложения. Естественно, самая минимальная часть серверной логики должна обеспечивать проектирование структурной схемы базы вместе с соответствующими ограничениями. На стороне клиента у нас, таким образом, остаются другая (как правило, все-таки меньшая) часть бизнес-логики приложения и пользовательский интерфейс. Исходя из всего сказанного выше о значении и цене информации в современном мире не будет большим преувеличением сказать, что в серверах баз данных (во всяком случае, для "большой шестерки") воплотились лучшие достижения в области информационных технологий. Microsoft SQL Server 6.5 является одним из наиболее стремительно развивающихся серверов баз данных на рынке корпоративных СУБД. Разумеется, в рамках данной статьи невозможно подробно остановиться на характеристиках этого продукта в той мере, в какой это хотелось бы сделать и какой он, безусловно, заслуживает. Поэтому мы ограничим нашу задачу рассмотрением хотя бы некоторых базовых возможностей Microsoft SQL Server 6.5 применительно к перечисленным выше функциям сервера баз данных.

Архитектура MS SQL Server 6.5
Симметричная мультипроцессорная архитектура MS SQL Server предусматривает использование "родных" сервисов операционной системы Windows NT для управления потоками (threads), памятью, операциями дискового чтения/записи, сетевыми службами, функциями безопасности, а также для поддержки параллельного выполнения потоков на нескольких CPU. Использование потоков Windows NT позволяет MS SQL Server автоматически масштабироваться при работе на многопроцессорных платформах, что исключает необходимость дополнительной конфигурации или программной настройки. Например, на Comdex была продемонстрирована работа MS SQL Server на платформе AlphaServer 8400 производства Digital, оснащенным 12 процессорами, 28 Гбайт памяти и 39-ти терабайтным хранилищем. В отличие от большинства распространенных СУБД, вынужденных иметь в своем составе механизмы дублирования ядра операционной системы для обеспечения кросс-платформенной переносимости, MS SQL Server обладает достаточно легковесной прозрачной архитектурой, не перетяжеленной несвойственными ей функциями. В результате, например, при смене типа процессора не требуется заново приобретать MS SQL Server для новой аппаратной платформы. Он ставится, по определению, на все, на чем работает Windows NT (на сегодня это Intel, Alpha, MIPS и PowerPC). По мере того как Windows NT завоевывает все большее признание и все ведущие производители СУБД уже выпустили версии своих продуктов под этой операционной системой или уже заявили о своей готовности это сделать в ближайшее время, изначальная ориентированность MS SQL Server 6.5 на тесную интеграцию с Windows NT выступает в качестве одного из серьезных преимуществ.
На каждое пользовательское соединение в MS SQL Server назначается отдельный рабочий поток (порядка 55К) в рамках единого серверного процесса. Так как каждый из этих потоков в действительности является потоком Win32, на них распространяются соответствующие функции контроля операционной системы, включая защиту памяти, правила доступа к оборудованию и планирование выполнения потоков во времени (thread scheduling). Это предоставляет улучшенные способности к масштабированию при росте числа одновременно работающих пользователей, динамическую балансировку при загрузке процессоров и повышенную надежность, так как пользовательские запросы, исполняющиеся на разных потоках, защищены друг от друга. Несмотря на то что пул соединений ограничен 1024 потоками, динамическое управление пользовательскими соединениями и свободными потоками позволяет увеличить эту величину до 32 767. Кроме этого, другие пулы потоков могут использоваться для параллельного выполнения операций сканирования данных, удаления и обновления, резервного копирования, проверки целостности базы, индексирования, асинхронного опережающего чтения данных в кэш на основе алгоритмов предсказания, создания и управления курсорами и т. д.
Сетевые службы Windows NT обеспечивают MS SQL Server поддержку протоколов TCP/IP, NWLink IPX/SPX, Named Pipes (NetBEUI), Banyan Vines, AppleTalk (ADSP) и DECNet. В версии 6.5 к ним добавилась дополнительная сетевая библиотека - multiprotocol network library, которая "умеет слушать" порты TCP/IP, сокеты SPX или поименованные каналы (named pipes), которые обычно выбираются динамически. Несомненным достоинством multiprotocol является наличие сетевого сервиса, обеспечивающего взаимодействие между процессами при помощи вызовов удаленных процедур, что позволяет, например, использовать шифрование при передаче данных.

Производительность
Многопоточное ядро и интеграция со службами планирования потоков Windows NT обеспечивает высокую производительность MS SQL Server при обработке OLTP- и DSS-запросов, что особенно заметно при одновременной работе нескольких сотен пользователей. В опубликованных результатах по тестированию MS SQL Server 6.5 на максимальное число одновременно работающих пользователей приводится цифра 3500, хотя известны реально работающие приложения, где нагрузка доходила до 5000 одновременных пользовательских соединений. За период с октября 1995 г. по декабрь 1996 г. производительность MS SQL Server, измеренная по тестам TPC-C (см. http://www.tpc.org), выросла с 2454 до 7521 транзакции в минуту, т. е. более чем в 3 раза. Для сравнения заметим, что ежедневный объем транзакций в расчетной системе VISA составляет от 10 до 40 млн. Темп 7,5 тыс. транзакций в минуту означает, что один MS SQL Server способен при режиме работы 24х7 обслужить немногим менее 11 млн. транзакций в сутки. Существует еще один параметр, тесно связанный с производительностью, который, не являясь в строгом смысле слова техническим, очень популярен на Западе при оценке возможностей того или иного сервера баз данных, так как от него существенно зависит стоимость владения продуктом (cost of ownership). Речь идет об удельной цене за транзакцию в минуту, иными словами, сколько придется заплатить за достижение такой скорости обработки запроса. За тот же самый период, в течение которого мы рассматривали рост производительности, показатель "цена/производительность" снизился с 242 до 65 долл. за транзакцию в минуту, что говорит о разумной стоимости систем на базе MS SQL Server при высоких требованиях к скорости обработки.

Распределенная среда управления
В состав MS SQL Server 6.5 входит свыше 20 графических средств управления и утилит командной строки, которые кратко охарактеризованы в табл.1.

Название Краткое описание Интерфейс Исполняемый файл
SQL Enerprise Manager Мощный централизованный инструмент полного управления серверами в масштабах предприятия, включая базы данных, их объекты, предупреждения (alerts), спланированные во времени задачи, тиражирование и запросы. Графический sqlew.exe
SQL Executive Локальный административный агент для планирования задач, управления предупреждениями и мониторинга активности MS SQL Server. Может быть вызван из SQL Enterprise Manager. Командная строка sqlexec.exe
Sqlmaint Определяет план необходимых рутинных действий по поддержке базы данных: регулярная проверка целостности, резервное копирование, перестройка индексов и т. Д., который впоследствии будет выполняться автоматически. Аналогичный мастер включен в SQL Enterprise Manager. Командная строка sqlmaint.exe
SQL Service Manager Sqlservr Используется для запуска, останова, приостановки и возобновления деятельности сервера и агента SQL Executive. Сам MS SQL Server может быть запущен из командной строки, аргументы которой определяют его текущую настройку. Графический, Командная строка sqlmgr.exe sqlservr.exe
ISQL/w Средство построения запросов, анализа плана выполнения, просмотра статистической информации и одновременного управления многими запросами в различных окнах. Графический isqlw.exe
Isql Средство интерактивного ввода операторов Transact-SQL, вызова системных процедур, запуска скриптов. Командная строка isql.exe
SQL Security Manager Управление интегрированным режимом безопасности. Графический sqsecmgr.exe
SQL Trace Средство мониторинга пользовательской активности. Позволяет отлавливать операторы Transact-SQL, вызовы процедур, инициируемые каждым клиентом, в реальном времени или записывать в журнал. Обладает возм-стями фильтрации. Графический sqltrace.exe
SQL Performance Monitor Использует для мониторинга событий и сбора статистики по MS SQL Server стандартный perfmon.ехе Windows NT на основе предоставляемого им списка объектов и счетчиков. Графический sqlalrtr.exe
SQL Alerter Интеграция механизма предупреждений с соответствующими службами Windows NT Performance Monitor. Командная строка  
SQL Transfer Manager Управление переносом данных и объектов с различных платформ SQL Server. Графический sqlxfr.exe
BCP (bulk copy) Перенос данных между MS SQL Server и файлами операционной системы (например, текстовыми). Командная строка bcp.exe
SQL Setup Применяется для начальной установки, удаления, upgrade, инсталляции дополнительных компонентов и изменения настроек в конфигурации: поддержки сетевых протоколов, изменения языка, выбора кодовой страницы и порядка сортировки, модели безопасности, а также для перестройки базы данных master. Графический setup.exe
Language installation Установка поддержки дополнительной языковой информации (например, локализованных сообщений). Используется в setup.exe. Командная строка langinst.exe
Sort order installation Установка кодовой страницы символов, чувствительности к регистру и отношения порядка над символами. Используется в setup.exe. Командная строка charset.exe
Check upgrade Используется MS SQL Server во время upgrade для проверки совместимости существующих пользовательских баз. Командная строка сhkupg65.exe
SQL Client Configuration Utility Настройка клиента DB-Library, различных сетевых библиотек и/или пользовательских поименованных каналов. Графический windbver.exe
Makepipe, readpipe Пытаются открыть и использовать поименованный канал между сервером и клиентом. Командная строка makepipe.exereadpipe.exe
Odbcping Проверка правильности установки ODBC-соединения с MS SQL Server. Командная строка odbcping.exe
Console Используется вместе с оператором DUMP для резервного копирования, если устройством является дискета. Командная строка console.exe
Printdmp Форматированный дамп стека для нужд отладки. Командная строка printdmp.exe

Таблица 1.
Кроме этого, MS SQL Server 6.5 включает Web-assistant - программу-мастер для подготовки публикации на Web-cтраницах данных из базы, SQL Mail - утилиту, обеспечивающую интеграцию с электронной почтой MS Mail или MS Exchange, MS Distributed Transaction Coor-dinator (MS DTC) для проведения распределенных транзакций и некоторые другие средства. SQL Server, MS DTC и SQL Executive функционируют как сервисы операционной системы. Согласованная работа этих компонентов достигается благодаря трехуровневой архитектуре SQL-DMF (Dist-ributed Management Frame-work).
Легко масштабируемая распределенная среда управления позволяет значительно упростить процессы централизованного контроля над многими серверами, которые могут объединяться в группы по соображениям безопасности или с административными целями, и их объектами, к которым относятся:

устройства (devices), на которых физически располагаются базы данных;
резервные устройства, содержащие страховочные копии баз данных и объектов внутри нее;
базы данных:

  1. пользователи и группы пользователей;
  2. таблицы;
  3. представления;
  4. хранимые процедуры;
  5. правила (rules);
  6. ограничения типа default;