Функции субд. Типовая организация субд. . 6 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Функции субд. Типовая организация субд. . 6



БАЗЫ И БАНКИ ДАННЫХ

Содержание

Реляционные базы данных.. 3

Реляционная база данных. 6

Функции СУБД. Типовая организация СУБД.. 6

Типовая организация СУБД.. 9

Базисные средства манипулирования реляционными данными. 10

Реляционная алгебра. 10

Общая интерпретация реляционных операций. 11

Особенности теоретико-множественных операций реляционной алгебры 11

Реляционное исчисление. 12

Целостность сущности и ссылок. 13

СУБД в архитектуре клиент-сервер. 14

Сервера баз данных. 17

Типичные распределения функций между клиентами и серверами. 18

Язык реляционных баз данных SQL.. 20

Идентификаторы.. 21

Выражения. 21

Типы данных. 23

Конвертирование типов данных. 25

Управляющие конструкции Transact SQL.. 27

Логические операторы.. 28

Создание, модификация и удаление таблиц. 29

Определение идентификационной колонки (Identity) 29

Создание таблиц средствами TRANSACT SQL.. 30

Изменение структуры таблицы при помощи Transact-SQL.. 32

Управление данными. 34

Добавление данных. 34

Использование INSERT. 35

Извлечение данных. 37

Изменение данных. 40

Хранимые процедуры.. 41

Создание хранимых процедур. 43

Управление процессом компиляции хранимой процедуры.. 44

Управление автоматическим выполнением хранимых процедур. 45

Модификация хранимой процедуры.. 45

Удаление хранимых процедур. 46

Использование индексов. 47

Планирование и использование индексов. 47

Кластерный индекс. 48

Некластерный индекс. 48

Уникальный индекс. 49

Создание индексов. 49

Использование представлений. 50

Создание триггеров. 51

Использование курсора. 53

Типы и поведение курсоров. 54

Управление правами доступа к объектам базы данных. 55

Запрещение доступа. 56

Неявное отклонение доступа. 57

Современные направления исследований и разработок.. 58

 


Реляционные базы данных

За историю развития баз данных было разработано множество способов хранения, структуризации и обработки информации. По технологии обработки базы данных подразделяют следующим образом:

1) Распределенная база данных – этот способ обработки требует использования нескольких серверов, на которых может храниться пересекающаяся или даже дублирующаяся информация. Для работы с такой базой данных используется система управления распределенными базами данных.

2) Централизованная база данных – при таком способе обработки база данных располагается на одном компьютере. Если для этого компьютера установлена поддержка сети, то множество пользователей с клиентских компьютеров могут одновременно обращаться к информации хранящейся в центральной базе данных.

Система централизованных баз данных с сетевым доступом имеет различные архитектуры:

─ файл-сервер;

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

─ клиент-сервер.

При использовании этой архитектуры выделенный компьютер используется не только в качестве хранилища файлов, но и выполняет основной объем действий по обработке информации. Пользователь рабочей станции отправляет список операций обрабатываемых данных (запрос), которые необходимо выполнить центральному компьютеру, т. е. серверу. Сервер выполняет необходимые вычисления и выборку данных и отправляет готовый результат клиенту. Для описания запросов часто используют структурированный язык запросов SQL (Structured Query Language). Этот язык специально разработан для создания запросов.

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

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

1. Иерархическая модель данных.

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

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

Достоинства иерархической модели данных:

─ простота модели (иерархия баз данных при использовании иерархической модели напоминает структуру компании или генеалогическое дерево);

─ использование отношений предок-потомок;

─ быстродействие.

В СУБД, реализованной на основе иерархической модели данных, отношение предок-потомок реализуется в виде физических указателей из одной записи на другую, вследствие чего перемещение по базе данных происходит очень быстро. Иерархические модели данных идеально подходят для большого числа транзакций (управление банкоматами, проверка номеров кредитных карт).

2. Сетевая модель данных.

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

3. Реляционная модель данных.

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

Развитие реляционных баз данных началось в 60-х гг., когда появились первые работы, в которых обсуждались возможности использования при проектировании баз данных привычных и естественных способов представления данных так называемых табличных датологических моделей.

Теория реляционных баз данных, разработанная в 70-х гг. в США доктором Коддом, имеет под собой мощную математическую основу, описывающую правила эффективной организации данных. Разработанная Коддом теоретическая база стала основой для разработки теории проектирования баз данных. Кодд предложил использовать для обработки данных аппарат теории множеств (объединение, пересечение, разность, декартово произведение). Кодд доказал, что любой набор данных можно представить в виде двумерных таблиц особого вида известных в математике как отношения. От английского слова relation произошло название «реляционная модель данных». Термин «отношение реляционной модели данных» обозначает таблицу. Наименьшая единица данных, которой оперирует реляционная модель данных, - это отдельное атомарное для данной предметной области значение данных, которое не может быть разложено на более простые составляющие. Так в одной предметной области составляющие адреса могут рассматриваться как различные значения, а в другой как единое целое. Множество атомарных значений одного и того же типа образуют домен. В самом общем виде домен определяется заданием некоторого базового типа данных, к которому относятся элементы домена, и произвольного логического выражения, применяемого к элементам данных. В простейшем случае домен определяется как допустимое потенциальное множество значений одного типа. Например, совокупность дат рождений всех сотрудников составляет домен дат рождения, а имена – домен имен сотрудников. Домен дат рождений имеет тип данных, позволяющий хранить информацию о моментах времени, а домен имен сотрудников должен иметь символьный тип данных.

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

Каждый элемент данных в отношении может быть определен с указанием его адреса в формате А[i, j], где А – элемент данных, i – строка отношения, j – номер атрибута отношения. Количество атрибутов в отношении определяет его порядок. Множество значений А[i, j] при постоянном i и всех возможных j образуют кортеж или просто строку таблицы. Количество всех кортежей в отношении определяет его мощность или кардинальное число. Мощность отношения в отличие от порядка отношения может со временем меняться. Совокупность всех кортежей образует тело отношения или таблицу. Поскольку отношения являются математическими множествами, которые по определению не могут содержать совпадающих элементов, никакие два кортежа в отношении не могут быть дубликатами друг друга в любой момент времени.

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

1)уникальность - в каждый момент времени никакие два различные кортежа отношения не имеют одинакового значения для комбинации входящих в ключ атрибутов, т.е. в таблице не может быть двух строк, имеющих одинаковый ключ;

2)минимальность - ни один не входящий в ключ атрибутов не может быть исключен из ключа без нарушения уникальности.

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

Реляционная база данных

Реляционная база данных - это совокупность отношений, содержащих всю информацию, которая должна хранится в базе данных, т.е. реляционная база данных представляет собой набор таблиц необходимых для хранения всех данных. Таблицы реляционных баз данных логически связаны между собой. Требования к проектированию реляционных баз данных в общем можно свести к нескольким правилам: 1) каждая таблица имеет в БД имя, состоит из однотипных строк; 2) каждая таблица состоит из фиксированного числа клеток и значений. В одной колонке строки не может быть сохранено больше одного значения; 3) ни в какой момент времени в таблице не найдется двух строк, дублирующих друг друга. Строки должны отличатся хотя бы одним значением, чтобы была возможность однозначно идентифицировать любую строку таблицы. Каждой колонке присваивается уникальное в пределах таблицы имя. Для нее устанавливается конкретный тип данных, чтобы в этой колонке размещались однотипные значения. Полное информационное содержание БД представляется в виде явных значений самих данных, и такой метод представления является единственным; 4) при выполнении обработки данных можно свободно обращаться к любой строке или колонке таблицы. Значение, хранимое в таблице, не накладывает никаких ограничений на порядок обращения данных.

Описание колонок, которое составляет разработчик, принято называть макетом таблицы.

Типовая организация СУБД

В современных СУБД логически можно выделить следующие основные компоненты:

─ ядро СУБД;

─ компилятор языка БД;

─ подсистема поддержки времени выполнения;

─ набор утилит.

Ядро СУБД отвечает за управление данными во внешней памяти, управление буферами оперативной памяти, управление транзакциями и журнализацию. Соответственно можно выделить такие компоненты ядра как менеджер данных, менеджер буферов, менеджер транзакций, менеджер журнала.

Функции всех компонентов ядра взаимосвязаны и для обеспечения корректной работы СУБД все эти компоненты должны взаимодействовать по тщательно продуманным и проверенным протоколам. Ядро СУБД обладает собственным интерфейсом, недоступным пользователям напрямую и используемым в программах, созданных средствами SQL, а также в утилитах БД. При использовании архитектуры клиент-сервер ядро является основным составляющим серверной части системы. Основной функцией компилятора языка БД является компиляция операторов языка БД в некоторую управляемую программу. Основной проблемой реляционной СУБД является то, что языки этих систем являются непроцедурными, поэтому компилятор должен решить, каким образом выполнить оператор языка, прежде чем воспроизвести программу. Результатом компиляции является выполняемая программа, представляемая в некоторых системах в машинных кодах, но более часто в выполняемом внутреннем машинонезависимом коде. В последнем случае реальное выполнение оператора производится с привлечением подсистемы поддержки времени выполнения, которая представляет собой интерпретатор внутреннего языка СУБД. В отдельные утилиты БД обычно выделяют такие процедуры, которые слишком накладно выполнять с использованием языка баз данных. Например, загрузка и выгрузка баз данных, сбор статистики, глобальная проверка целостности БД и т.д. Утилиты программируются с использованием интерфейса ядра СУБД, а в некоторых случаях с проникновением внутрь ядра.

Реляционная алгебра

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

Реляционное исчисление

Реляционное исчисление является прикладной ветвью формального механизма исчисления предикатов первого порядка.

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

Для определения картежей переменной используются оператор RANGE. Правильно построенная форма (ППФ) служит для выражения условий, накладываемых на картежные переменные. Основой ППФ являются простые сравнения. Которые представляют собой операции сравнения скалярных значений, т.е. значений атрибутов переменных или заданных констант. Более сложные варианты ППФ строятся с помощью логических операций И, ИЛИ, НЕ и оператора ЕСЛИ-ТО. Допускается также построение ППФ с помощью кванторов: EXISTS.

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

Открытая система

Реальное распространение архитектуры клиент-сервер стало возможным благодаря развитию и широкому внедрению в практику «Концепции открытых систем». Основным смыслом подхода открытых систем является упрощение комплексирования вычислительных систем за счет международной и национальной стандартизаций аппаратных и программных интерфейсов. Главной побудительной причиной развития «Концепции открытых систем» явился повсеместный переход к использованию локальных вычислительных сетей и те проблемы комплексирования аппаратно-программных средств, которые этот переход вызвали. В связи с бурным развитием технологий глобальных коммуникаций открытые системы приобрели еще больший масштаб.

Основой открытых систем, дающей существенные преимущества пользователям, является независимость от конкретного поставщика. Ориентируясь на продукцию компаний, придерживающихся стандартов открытых систем, потребитель, который приобретает продукт компании, не попадает в зависимость от ее продуктов, он может продолжить наращивание мощности своей системы за счет приобретения продуктов любой другой компании, соблюдающей стандарты открытых систем, при чем это касается как аппаратных, так и программных средств. Технологии стандарта открытых систем обеспечивают реальную и проверенную практикой возможность производства системных и прикладных программных средств со свойствами мобильности и интероперабильности. Свойство мобильности означает сравнительную простоту переноса программной системы в широком спектре аппаратно-программных средств, соответствующих стандартам открытых систем. Интероперабильность означает упрощение комплексирования новых программных систем на основе использования готовых компонентов со стандартными интерфейсами.

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

Сервера баз данных

Термин «сервер БД» используется для обозначения всей СУБД, основанной на архитектуре клиент-сервер, включая серверную и клиентскую часть. Такие системы предназначены для хранения и обеспечения доступа к БД. Обычно одна БД целиком хранится в одном узле сети и поддерживается сервером в сервере БД, представляющим собой простое и дешевое приближение к распределенным БД, так как общая БД доступна для всех пользователей локальной сети. Доступ к базам данных из прикладной программы или пользователя осуществляется с использованием клиентской части системы. В качестве основного интерфейса между клиентскими и серверными частями выступает язык SQL.

Язык SQL представляет собой текущий стандарт интерфейса СУБД в открытых системах. Соблюдая предосторожности при программировании, можно создать прикладные информационные системы мобильные в классе SQL-серверов.

Серверы БД, интерфейс которых основан на языке SQL, обладают своими преимуществами и недостатками.

Преимущества: стандартный открытый интерфейс, т. е. клиентская часть любой ориентированной СУБД может работать с любым SQL-сервером независимо от того, когда компания его разработала.

Недостатки. При высоком уровне интерфейса между клиентской и серверной частями системы со стороны клиента работает слишком мало программ СУБД. Это нормально, если на стороне клиента используется маломощная работающая станция. Но если клиентский компонент обладает достаточной мощностью, то часто возникает необходимость возложить на него большие функции управления БД. Разгрузить сервер, который в этом случае является узким местом этой системы. Одним из корректных направлений СУБД является гибкая конфигурированная система, при которой распределяются функции между клиентской и пользовательской системами.

Распределенные базы данных

Основной задачей системы управления распределенной БД состоит в обеспечении средств интеграции локальных баз данных, располагающихся в некоторых узлах вычислительной сети для того, чтобы пользователи, работающие на любом узле сети, имели доступ ко всем базам данных как к единой БД. При этом должны обеспечиваться:1) простота использования системы; 2) возможности автономного функционирования, при нарушении связанности сети; 3) высокая степень эффективности.

Идентификаторы

Все объекты MS SQL сервер имеют свои собственные имена, с помощью которых можно ссылаться на них.

Имена объектов называются идентификаторами. Любой объект БД должен быть уникально идентифицирован. Transact SQL налагает ряд ограничений наименований объектов:

1) Первый символ имени объекта должен быть одним из символов латинского или национального алфавита, либо символом подчеркивания. Т.е. не допускается использование в качестве первого символа имени объекта цифр и некоторых других знаков (*,!,?…). Для обозначения объектов сервер разрешает использование символов @, # для именования временных таблиц и хранимых процедур. Временные объекты существуют только в течении сеанса или транзакции, а за тем уничтожаются. Для обозначения глобальных временных объектов, к которым могут обращаться все пользователи Transact SQL позволяет использовать символы @@, ##. Некоторые функции и переменные начинаются с символа @@.

2) Основная часть идентификатора может включать любые символы, десятичные цифры, подчеркивание, решетки и т. д.

3) При выборе имени следует убедиться, что оно не является зарезервированным словом, и что не существует объект с таким именем. Transact SQL не различает регистров, в которых набраны символы и поэтому считает одинаковыми имена объектов в разных регистрах.

4) Запрещено использование внутри имени пробелов, круглых скобок и спец. символов.

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

Идентификаторы, заключающиеся в двойные кавычки или квадратные скобки, называются ограниченными идентификаторами.

Выражения

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

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

Операнды SQL сервер делится на следующие типы:

1) Константы - постоянные величины, значения которых не могут быть изменены.

2) Функции – именованные программы, выполняющие обработку данных и в некотором случае возвращающие определенный результат. Функции реализуют наиболее часто выполняемые алгоритмы, что избавляет пользователей от многократного написания одного кода.

3) Имя колонки - в качестве операнда может выступать колонка таблицы. Это часто используется при обработке данных таблицы, удовлетворяющих определенному критерию. Пользователь указывает в выражении имя интересующей колонки, а сервер автоматически подставляет туда соответствующее значение. При последовательном просмотре таблицы имя колонки будет изменяться.

4) Переменная - именованная область памяти определенного объема, в которой хранятся данные. Фактически любая переменная- это последовательность из одного или несколько байт. То, как сервер будет обрабатывать последовательность, представленную значением переменной зависит от типа данных, ассоциированной с этой переменной.

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

1)– простейшие (унарные) операторы работают только с одним операндом. Простейшие операторы могут быть использованы с любыми величинами числового типа, как с числовыми, так и с дробными.

2)– оператор присваивания используется для присваивания переменной определенного значения, полученного в результате вычисления выражения. В SQL-сервер единственным оператором присваивания является знак равенства (=), который также используется в операторе сравнения.

DECLARE @@ variable int

SET @@ variable=10

3)– арифметические операции - это бинарные операции, выполняемые с операндами, имеющими числовой тип данных. К ним относят *, /, +, -, %. Арифметические операторы возвращают значения того же типа, что и входные.

4)– строковые - единственные операции, которые можно непосредственно производить над операндами символьного типа - конкатенация (сложение). Для обозначения конкотенации строк используется знак «+».

– Сравнение.

Операторы сравнения могут дать информацию о сравнительной величине операндов. Допускается использование следующих логических операндов: равно «=», больше «>», меньше «<», меньше пли равно «<=», больше или равно «>=>>, не равно «!=>> или «<>>>, не менее чем «!<», не более чем «!>». Результатом выполнения логического операнда будет значение «истина» (TRUE), если условие выполняется, или «ложь» (FALSE) в противном случае. Если сравнение невозможно (например, в случае несовпадения типов), то возвращается неопределенное значение NULL.

– Логические операторы.

Операторы этого типа возвращают значения TRUE или FALSE и могут быть использованы в различных конструкциях, включая запросы. Логические операторы могут быть представлены в виде нескольких опера­торов сравнения и являются своего рода надстройкой над ними.

В Transact SQL есть следующие операторы:

ALL -выполняет сравнение для набора данных. Если условие выполнено для всего набора данных, возвращается значение TRUE.

AND - оперирует с двумя булевыми выражениями. Только если оба выражения истинны (TRUE), возвратится значение TRUE.

ANY -выполняет сравнение для набора данных. Если условие выполнено, хотя бы для одного элемента из набора данных, возвращается значение TRUE.

BETWEEN - проверяет, лежит ли значение в указанном диапазоне.

EXIST – возвращает TRUE, если подзапрос возвращает хотя бы одну строку. Та­ким образом, этот оператор проверяет существование данных.

IN -возвращает TRUE, если значение входит в указанный список.

LIKE - проверяет значение на «похожесть» по указанному шаблону.

NOT - инвертирует значение булева типа, то есть заменяет TRUE на FALSE и наоборот.

OR -возвращает TRUE, если хотя бы один из двух операндов равен TRUE.

SOME - выполняет сравнение для набора данных. Если условие выполнено для одного элемента из набора данных, возвращается значение TRUE. Аналог ANY.

Типы данных

Понятие типа данных в SQL Server полностью адекватно понятию типа данных в современных языках программирования. Тип данных определяет диапазон значений, которые можно сохранить в переменной или колонке таблицы.

1) Числовые целые типы данных.

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

К целочисленным типам данных (общее название — integer) относятся следующие типы данных:

Int (или Integer) - для хранения данных используются 32 бита или 4 байта;

Small int - для хранения данных используются 16 бит, или 2 байта;

Tinyint - этот целочисленный тип занимает всего 1 байт и не содержит отрицательных чисел. Все биты интерпретируются как числовое значе­ние. Тип данных tinyint позволяет хранить значения в интервале от 0 до 255.

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

2) Нецелочисленные типы данных.

Числа, в составе которых есть десятичная точка, называются нецелочисленными. Microsoft разделяет нецелочисленные данные на два типа — десятичные (decimal) и приблизительные (approximate).

Десятичные данные физически хранятся в SQL Server 7.0 не в виде чисел, а в виде последовательности цифр. Для представления каждой десятичной цифры обычно используются 4 бита, то есть один байт позволяет хранить две десятичных цифры, или значение от 0 до 99.

Денежные типы данных.

Денежные типы данных обеспечивают хранение значений до 4-х знаков после запятой.

Maney - 8 байт;

Smallmaney - 4 байта.

Бинарные типы данных.

Binary(n) - этот тип данных позволяет хранить до 8000 байт. Значение n определяет количество байт, которое будет храниться. В таблице будет выделено n+4 байта (4 байта используются для хранения длины самого поля).

Varbinary(n) – этот тип данных идентичен типу binary с единственным отличием — в таблице для хранения данных этого типа выделяется ровно столько байт, сколько ввел пользователь, плюс 4 байта на описание длины. Аргумент n (максимальное значение — 8000) определяет только максимальную длину, при превышении которой происходит усечение данных.

Image - этот бинарный тип позволяет преодолевать ограничение длины в 8000 байтов, характерное для типов binary и varbinary. При использовании этого типа допускается хранение битовых полей длиной до 231-1 (2 147 483 647). Пространство в таблице для этого типа данных выделяется целыми страницами. Если в таблице имеется колонка с типом данных image, то первоначально сервер выделяет для нее одну страницу. При необходимости выделяются дополнительные страницы, которые связываются в цепочку.

Символьные типы данных.

К символьным типам данных относятся следующие типы:

Char(n) - этот тип данных разрешает хранение набора символов длиной до 8000 знаков. Аргумент n определяет максимальное количество символов, его максимальное значение равно 8000 (255 для SQL Server 6.x). В таблице для хранения значений типа char выделяется указанное количество байт независимо от того, сколько символов было реально сохранено. Если пользователь сохраняет строку длиной менее объявленной, то сервер до­бавляет в конец строки необходимое количество пробелов. Если строка превышает объявленную длину, то строка усекается, и часть конечных символов будет потеряна.

Varchar(n) - этот тип подобен типу данных char с тем отличием, что количе­ство выделяемого в таблице пространства зависит от реального числа байтов, которое занимает значение.

Nchar(n) - поведение сервера при работе с этим типом аналогично работе с типом данных char с тем отличием, что тип nchar используется для хранения символов Unicode. Каждый символ Unicode занимает два байта и, следовательно, максимальное количество символов, которое можно сохранить с использованием этого типа, равно 4000. Если в коде программы необходимо явно указать тип символьной строки как Unicode, то перед строкой ставится символ «N». Например, оператор SET присвоит переменной символьную строку в формате Unicode. Если символ «N» не указывается, то сервер предполагает, что строка указана не в Unicode.

7) Текстовые типы данных.

Текстовые типы данных так же, как и символьные, позволяют хранить текстовые данные. Они обеспечивают хранение очень большого количества символов — до 2 Гбайт. К текстовым типам данных относятся:

Text -этот тип обеспечивает хранение блоков текста длиной до 231-1 (2 147 483 647) символов. Как и для данных типа image, при работе с данными типа text сервер первоначально выделяет для хранения данных одну страницу (8 Кбайт). При необходимости выделяются дополнительные страницы, которые связываются в цепочку.

Ntext -при работе с большим объемом текста в формате Unicode использу­ется тип данных ntext,обеспечивающий хранение до 230-1 (1 073 741 823) символов. Хранение данных типа ntextосуществляется теми же методами, что и типов text и image.

Работа с текстовыми типами данных отличается от работы с символьными типами данных. SQL Server 7.0 предлагает набор специализированных функций для обработки текстовых данных. Эти функции перечислены в таблице.

 



Поделиться:


Последнее изменение этой страницы: 2017-02-19; просмотров: 355; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.117.182.179 (0.086 с.)