Разработка и сопровождение баз данных в MS SQL Server 2000

Автор работы: Пользователь скрыл имя, 20 Октября 2009 в 15:27, Не определен

Описание работы

Курсовая работа

Файлы: 1 файл

Разработка и сопровождение баз данных в MS SQL Server 2000.doc

— 360.00 Кб (Скачать файл)

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

      В соответствии с идеологией SQL Server 2000 каждый объект создается определенным пользователем и принадлежит той или иной базе данных. В свою очередь база данных расположена на конкретном сервере. Из имен объекта, пользователя, базы данных и сервера создается полное имя (complete name) или полностью определенное имя (full qualified name), записываемое в следующем виде:

    [[[server.].[database].[owner_name].] object_name.

      Варианты  обращения к объектам базы данных: A.B.C.D; A.B..D; A..C.D; A..D; B.C.D; B..D; C.D; D. Чтобы сослаться на конкретный столбец таблицы или представления, необходимо в полном имени указать пятый элемент: А.В.С.D.E.

      В Transact–SQL существует несколько способов передачи данных между командами. Одним из таких способов является передача данных через локальные переменные, объявляемые следующим образом:

      DECLARE {@ имя локальной переменной тип  данных}[,…n]

      Таким образом, знак @ является признаком  имени локальной переменной. Этот же знак используется для определения имен параметров функций и хранимых процедур. Часть синтаксиса [,…n] означает повторение синтаксической конструкции, взятой в фигурные скобки:

      DECLARE @Ivar int или DECLARE @IBit bit.

      Значения  переменным можно присвоить с  помощью команд SET и SELECT. Командой SET можно присвоить значение только одной переменной: SET @Ivar = 5

или SET @IBit = 0.

      Для присваивания значений нескольким переменным, вычисляемых с помощью выражений, следует использовать команду SELECT, которая выводит результаты в окно Grids:

      SELECT @Ivar = SUM (price) FROM titles _ _ см. окно Result.

      Для вывода значений переменных следует использовать команды:

    • SELECT – для вывода данных в стандартный набор строк;
    • PRINT – для вывода данных как служебной информации.

      Примеры команд вывода значений переменных:

    • SELECT @Ivar _ _ в окно Grids утилиты Query Analyzer;
    • PRINT @IBit _ _ в окно Messages утилиты Query Analyzer.

      Константы, переменные и параметры функций  и хранимых процедур, вызовы функций, имена столбцов и подзапросы являются операторами арифметических и логических выражений. В качестве операнда может быть также само выражение типа CFSE, NULLIF и COALESCE.

      Операторами выражения могут быть унарные («+»  или «-»), бинарные арифметические операторы (+, -, *, % ), оператор присваивания (=), строковая операция конкатенации (+), операторы сравнения (=, >, <, <=, >=, =, != или <>, !<, !>), логические операторы (NOT, AND, OR, ALL, ANY, BETWEEN, EXIST, IN, LIKE, SOME ) и битовые операторы (&, |, ^).

      Константы, переменные, операнды и выражения  используются при записи команд и программирования функций и хранимых процедур, которые, все вместе взятые, составляют основную часть системы программирования SQL Server 2000 и определяют ее выразительную мощь. Команды позволяют создавать, модифицировать и удалять базы данных и их объекты, формировать сложные запросы на ввод, обработку и извлечение данных из баз знаний, выполнять функции администрирования и обслуживания баз данных. Функции и хранимые процедуры реализуют разнообразные алгоритмы обработки данных или выполнение служебных функций сервера. 

      3.3 Типы данных SQL Server 2000 

      При объявлении переменной с помощью команды DECLARE необходимо указать ее тип данных. Тип данных определяет, какая информация может храниться в переменной, и какие операции могут выполняться над этими данными. В общем, понятие и использование типов данных в Transact-SQL соответствуют большинству современных языков программирования.

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

      В SQL Server 2000 набор типов данных несколько  расширен по сравнению с предыдущей версией SQL Server – добавлены типы данных bigint, table и sql_variant.

      В итоге в распоряжении пользователей  имеется набор из встроенных типов  данных:

  • binary(n) – двоичные данные фиксированной длины до 8000 байт; для n байтов выделяется n+4 байта памяти, значения задаются с помощью шестнадцатеричных чисел 0x<шестнадцатеричные цифры>;
  • image – двоичные данные длиной до 231–1, место во внешней памяти выделяется в виде цепочки страниц;
  • char(n) – строковый тип данных фиксированной длины без поддержки Unicode длиной до 8000 байтов, данные зависят от кодовой страницы; если для столбца не задана опция NULL, то строка при необходимости будет дополняться справа пробелами; если эта опция задана, то дополнение пробелами будет иметь место при условии ANSI_PADDING=ON, в противном случае пробелы добавляться не будут;
  • varchar(n) – строковый тип, как и char(n), но не с фиксированной длиной, если ANSI_PADDING=OFF, то будет выполняться удаление конечных пробелов, если ANSI_PADDING=ON, то удаление пробелов производиться не будет;
  • nchar(n) - строковый тип, как и char(n), но с поддержкой Unicode, поэтому максимальное количество символов составляет 4000, в этом случае для строковых констант надо задавать впереди букву N (например, N’ABC’);
  • nvarchar(n) – строковый тип, как varchar(n), но с поддержкой Unicode;
  • text – строковый тип без поддержки Unicode длиной до 2 Гбайт; память выделяется страницами по 8 Кбайт, связываемыми в цепочку;
  • ntext – строковый тип как и text, но с поддержкой Unicode, поэтому длина строки не более 1 Гбайта;
  • int – целый тип длиной в 4 байта и с диапазоном от –231 до 231-1;
  • smalling – целый тип длиной в 2 байта с диапазоном от –215 до 215-1;
  • tinyint – целый тип длиной в 1 байт и диапазоном от 0 до 255;
  • bigint – целый тип длиной в 8 байт и с диапазоном от-263 до 263-1;
  • decimal[(p[,s])] – десятичный двоично-кодированный тип с p десятичными разрядами, из которых s – дробных; максимальное значение p достигает 38, поэтому диапазон значений составляет от –(1038-1) до 1038-1;
  • numeric[(p[,s])] – тип, аналогичный типу decimal[(p[,s])];
  • float[(n)] – плавающий (приблизительный) тип длиной в 4 байта и с диапазоном от –1.79x10308 до 1.79x10308; значение n определяет количество бит для хранения мантиссы и может принимать значения от 1 до 53;
  • real – плавающий тип, являющийся аналогом float(240);
  • datetime – тип данных для хранения даты (4 первых байта) и времени (4 последних байта) в диапазоне от 1.1.1753 и до 31.12.9999 года, дата хранится в виде смещения относительно базовой даты 1.1.1753, а время является количеством миллисекунд после полуночи;
  • smalldatetime – тип данных для хранения даты (первых 2 байта) и времени (последние 2 байта) в диапазоне от 1.1.1900г. до 6.6.2079г., время задается с точностью до минуты;
  • money – тип данных для хранения больших денежных величин с точностью до 4 знаков после запятой в диапазоне от –922 337 203 685 477.5808 до +922 337 203 685 477.5807, для хранения данных отводится 8 байт;
  • smallmoney – тип данных для хранения нормальных денежных величин с точностью до 4 знаков после запятой в диапазоне от –214 748.3648 до 214 748.3647, для хранения данных отводится 4 байта;
  • bit – битовый (логический) тип со значениями 0 и 1; для хранения выделяется 1 разряд байта памяти;
  • timestamp – тип данных временный штамп для учета числа изменений данных в записи (версий строки row version), значение timestamp уникально в пределах базы данных и позволяет идентифицировать конкретное значение записи;
  • uniqueidentifier – тип данных для хранения глобальных уникальных идентофикаторов длиной в 16 байт, генерируемых функций NEWID и используемых для идентификации строк (записей), при генерации используется номер сетевой карты компьютера и текущее время;
  • sysname – тип данных для хранения имен объектов базы данных; аналог

nvarchar (128);

  • sql_variant – вариантный тип данных для хранения данных любого типа, кроме text, ntext, image, timestamp;
  • table – тип таблицы для временного хранения наборов данных с использованием переменных.

      На  основе некоторых из базовых типов  данных могут быть созданы новые  типы данных, называемые пользовательскими (user-defined). Примером такого типа данных может служить тип sysname (основанный на nvarchar(l28)), активно применяемый в системных таблицах для хранения имен объектов.

      Типы  данных SQL Server 2000 можно разбить на следующие группы:

    • целочисленные (Integers) – bigint, int, smallint и tinyint;
    • нецелочисленные (Decimal) – decimal, numeric, float и real;
    • денежные (Money) – money и smallmoney;
    • дата и время (Date and Time) – datetime и smalldatetime;
    • двоичные (Binary) – binary, varbinary и image;
    • строковые (String) – char, varchar, nchar и nvarchar;
    • текстовые (Text) – text и ntext;
  • специальные (Specials) – timestamp, uniqueidentifier, bit, cursor, table и sql variant. 

      3.4 Создание и удаление баз данных, таблиц и представлений 

      3.4.1 Создание и удаление баз данных 

      Любая пользовательская база данных может быть создана командой CREATE DATABASE. Для создания базы данных и для ее обслуживания нужно иметь соответствующие права. По умолчанию такими правами обладают члены фиксированных ролей сервера sysadmin и dbcreator. При необходимости такие права можно предоставить и другим пользователям. Лицо создающее базу данных, автоматически становится ее владельцем. Имя базы данных должно точно отражать ее назначение и создаваться по правилам построения системных идентификаторов. Длина имени не более 128 символов. Для команды CREATE DATABASE запись синтаксиса на этом метаязыке будет выглядеть следующим образом:

      CREATE DATABASE database_name

      [ON

      [<filespec> [,…n]]

      [<filegroup> [,…n]]

      ]

      [LOG ON {<file spec> [,…n]}]

      [COLLATE collation_name]

      [FOR LOAD| FOR ATTACH]

      <filespec> : : =

      [PRIMARY]

      ( [NAME=Logial_file_name,]

      FILENAME=’os_file_name’

      [, SIZE=size]

      [, MAXSIZE={MAX_SIZE|UNLIMITED}]

      [, FILEGROWTH=growth_increment]) [,…n]

      <filegroup> : : =

      FILEGROUP filegroup_ name <filespec> [,…n]

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

      Из  определения синтаксиса команды CREATE DATABASE следует:

  • для создания базы данных в ряде случаев достаточно задать лишь ее имя;
  • имеется возможность задавать полные пути и имена файлов, как для данных, так и для журнала транзакций (logon);
  • явно указывать первичный файл, который содержит необходимые сведения об остальных файлах;
  • можно использовать группы файлов для ускорения операций ввода – вывода.

      Большинство действий по изменению конфигурации базы данных выполняется с помощью команды ALTER DATABASE. Для уменьшения размера базы данных можно также использовать команды DBCC SHRINKDATABASE, DBCC SHRINKFILE. На логическом уровне изменяются такие параметры, как выполнение автоматического усечения журнала транзакций, автоматическое создание и обновление статистики, возможность выполнения вложенных триггеров и т.п. – всего 22 параметра. Изменять эти параметры можно командой ALTER DATABASE с параметром SET. 

      3.4.2 Создание и удаление таблиц 

      Пользовательская  таблица создается командой Transact-SQL CREATE TABLE. При этом необходимо задать имя таблицы, перечислить имена столбцов, задать тип данных для каждого столбца, упорядоченность символов для сортировки символьных данных, значения по умолчанию, а также ограничения на столбцы или таблицу в целом.

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

Информация о работе Разработка и сопровождение баз данных в MS SQL Server 2000