Проектирование СУБД

Основные типы данных языка SQL. Технология "клиент-сервер". Виды моделей серверов. Агрегатные и итоговые функции. Транзакции, объекты серверных СУБД. Позапросы и интеграция СУБД в Web, обзор серверных СУБД. Достоинства и недостатки спецификации CGI.

Рубрика Программирование, компьютеры и кибернетика
Вид курс лекций
Язык русский
Дата добавления 28.12.2013
Размер файла 162,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Оглавление

субд язык сервер функция

SQL. Структурированный язык запросов

1. Основные типы данных языка SQL

1.1 Константы SQL

1.2 Группы операторов

2. Технология «клиент-сервер»

3. Агрегатные или итоговые функции

4. Транзакции

4.1 Журнал транзакции

4.2 Принцип работы журнала

4.3 Понятие контрольных точек

4.4 Блокировки

4.5 Типы блокировок

5. Объекты серверных СУБД

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

5.2 Пользователи и роли

5.3 Индекс

5.4 Курсоры

6. Позапросы

7. Интеграция СУБД в Web и обзор серверных СУБД

Источники

SQL. Структурированный язык запросов

SQL - основа для работы с любой БД, имеет много модификаций, перый стандарт был принят в 1989 году.

SQL (StructuredQueryLanguage - «Структурированный язык запросов») - универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. SQL основывается на исчислении кортежей.

1. Основные типы данных языка SQL

Integer- целое число до 10 чисел и знаков

SMALLINT - целое число длиной 2 байта, представляемое при выводе максимально до 5 цифрами

Decimal- десятичное число

CHAR (size) - строка символов фиксированной длины размером size символов; VARCHAR (size) - строка символов переменной длины максимальным размером до size символов; Date- период, даты

Datetime- Формат даты

Money- Денежный формат

1.1 Константы SQL

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

Константы символьной строки

Константы символьной строки заключаются в одинарные кавычки и состоят из алфавитно-цифровых (a-z, A-Z и 0-9) и специальных символов, таких как восклицательный знак (!), знак @ и знак номера (#). Значения константам символьной строки присваиваются согласно параметрам сортировки текущей базы данных. Чтобы указать другие параметры сортировки, необходимо использовать предложение COLLATE. Символы, вводимые пользователями, сопоставляются с кодовой страницей компьютера и в случае необходимости переводятся в символы, совместимые с кодовой страницей базы данных по умолчанию.

Если для соединения значение параметра QUOTED_IDENTIFIER было задано как OFF, то символьные строки также могут заключаться в двойные кавычки, однако поставщик и драйвер ODBC для собственного клиента Microsoft SQL Server автоматически устанавливает значение параметра QUOTED_IDENTIFIER в значение ON. Рекомендуется использовать одинарные кавычки.

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

Ниже приведены примеры символьных строк.

'Cincinnati'

'O''Brien'

'Process X is 50% complete. '

'The level for job_id: % d should be between% d and% d. '

«O'Brien»

Пустые строки представляются в виде двух последовательных одинарных кавычек. В режиме совместимости с версией 6. x пустая строка рассматривается как одинарный пробел.

Константы символьной строки поддерживают расширенные параметры сортировки.

Строки в Юникоде

Строка Юникода имеет формат, схожий с обычной символьной строкой, но она начинается с идентификатора N (в стандарте SQL-92 идентификатор N содержит сведения о языке сообщения строки). Префикс N должен быть заглавной буквой. Например, символьная строка 'Michel' в Юникоде имеет вид N'Michel'. Константы в Юникоде рассматриваются как данные Юникода, и при их обработке кодовая страница не используется. Константы в Юникоде имеют параметры сортировки. Этот параметр сортировки в основном управляет сравнением и учетом регистра. Значения константам в Юникоде присваиваются согласно параметрам сортировки текущей базы данных. Чтобы указать другие параметры сортировки, необходимо использовать предложение COLLATE. При хранении данных Юникода каждый символ занимает 2 байта вместо 1 байта на символ в символьных данных. Константы в Юникоде поддерживают расширенные параметры сортировки.

Двоичные константы

Двоичные константы начинаются с префикса 0x, за которым следует строка шестнадцатеричных чисел. Двоичные константы не заключаются в кавычки.

Ниже приведены примеры двоичных строк.

0xAE

0x12Ef

0x69048AEFDD010E

0x (empty binary string)

Константы типа bit

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

Константы datetime

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

Ниже приведены примеры констант типа datetime.

'December 5, 1985'

'5 December, 1985'

'851205'

'12/5/98'

Ниже приведены примеры констант, задающих время.

'14: 30: 24'

'04: 24 PM'

Константы integer

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

Ниже приведены примеры констант типа integer.

1894

Константы decimal

Константы типа decimal состоят из числовых строк, которые не заключаются в кавычки и содержат десятичный разделитель.

Ниже приведены примеры констант типа decimal.

1894. 1204

2. 0

Константы типа float и real

Константы типа float и real представляются в экспоненциальной форме.

Ниже приведены примеры значений типа float или real:

101. 5E5

0. 5E-2

Константы money

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

SQL Server не предусматривает каких-либо жестких правил группирования, таких как разделение с помощью запятой (,) каждых трех разрядов значения.

Ниже приведены примеры констант типа money.

$12

$542023. 14

Константы uniqueidentifier

Константы типа uniqueidentifier состоят из строки, представляющей идентификатор GUID. Константы этого типа могут указываться с помощью символьного или двоичного символьного формата.

Следующие примеры представляют один и тот же идентификатор GUID.

'6F9619FF-8B86-D011-B42D-00C04FC964FF'

0xff19966f868b11d0b42d00c04fc964ff

Указание отрицательных и положительных чисел

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

Ниже приведен пример выражения типа integer со знаком.

+145345234

-2147483648

Ниже приведен пример выражения типа decimal со знаком.

+145345234. 2234

-2147483648. 10

Ниже приведен пример выражения типа float со знаком.

+123E-3

-12E5

Ниже приведен пример выражения типа money со знаком.

-$45. 56

+$423456. 99

Расширенные параметры сортировки

SQL Server поддерживает возможность работы с символьными строками и строками в Юникоде, поддерживающими расширенные параметры сортировки. Дополнительные сведения см. в разделе COLLATE (Transact-SQL) .

1.2 Группы операторов

Группа манипулирования данных (DML)

Select-выбор

From-откуда

Where- Условие

Группа определения данных (DDL)

Create

Drop

Alter

Группа контроля за базой.

Синтаксис оператора Select:

Select имя поля1, имя поля 2

From-название таблицы 1

Where- пишется условие с использованием OR (если из одного поля) и And (если значения из разных полей)

Выдать фамилии студентов гр. 11ИС из табл. Студенты:

Select fam, grup

From Student

Wheregrup='11ИС'

Выдать фамилию, имя студента из гр. 11ИС 1995-1996 гг.

Select fam, name, grup, god_r

From Student

Where grup='11ИС' and (god_r =1995 or 1996)

Оператор поле IN (зн1, зн2) когда требуется много значений одного поля то:

Надо каждый раз писать имя поля со знач.

Поле In (Знач)

Пр. Выдать названия фирм которые находятся в Ярославле, Ростове, Москве из табл. Заказы

Selectfirma, city

Fromzakaz

WherecityIn (`Ярославль', 'Ростов', 'Москва')

Оператор like

LIKE применим только к полям типа CHAR или VARCHAR, с которыми он используется чтобы находить подстроки. Т. е. он ищет поле символа чтобы видеть, совпадает ли с условием часть его строки. В качестве условия он использует групповые символы (wildkards) - специальные символы которые могут соответствовать чему-нибудь. Имеются два типа групповых символов используемых с LIKE: * символ подчеркивания (_) замещает любой одиночный символ. Например, 'b_t' будет соответствовать словам 'bat' или 'bit', но не будет соответствовать 'brat'. * знак процента (%) замещает последовательность любого числа символов (включая символы нуля). Например '% p% t' будет соответствовать словам 'put', 'posit', или 'opt', но не 'spite'.

Пр. Выбрать все фамилии начинающихся на К в табл. Студенты

Select fam

From stud

Where fam like `k'

ПредложениеORDERBY

Предложение ORDER BY (необязательное) применяется для сортировки результирующего набора данных по одной или нескольким колонкам. Для определения порядка сортировки используются ключевые слова ASC (по возрастанию) или DESC (по убыванию). По умолчанию данные сортируются по возрастанию. Синтаксис предложения ORDER BY имеет вид:

ORDER BY column1 [{ASC | DESC}] [, column2 [{ASC | DESC}] [, …]

Например, для сортировки сотрудников по фамилии и затем по имени следует использовать следующий SQL-запрос:

SELECT LastName, FirstName, Title FROM Employees ORDER BY LastName, FirstName

Если сортировка данных требуется в убывающем порядке (например, требуется список продуктов в порядке убывания цен), используется ключевое слово DESC:

SELECT ProductName, UnitPrice FROM Products ORDER BY UnitPrice DESC

!!! Оператор сортировки пишется последней строчкой. Если сортируется несколько полей то ORDERBY пишется один раз

BETWEEN- Применяется при проверке нахождения значения внутри заданного интервала (включая его границы)

Выбрать книги от 100 до 200 руб

WherepriceBetween 100 and 200

NOT NULL Он противоположен реляционным операторам, которые должны иметь оператор NOT - вводимым выражением. Например, если мы хотим устранить NULL из нашего вывода, мы будем использовать NOT чтобы изменить на противоположное значение предиката:

SELECT *

FROM Customers

WHERE city NOT NULL;

Выборкавсехполей

Select *

From stud

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

SELECT DISTINCT Country FROM Customers

Пр. вложеннойсортировки

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

Select *

Fromypec

orderbyfam, gropdesc

перечислите в алфавитном порядке все товары назв. которых начинаются с про-

Select towar

From towar

Order by like `про'

2. Технология «клиент-сервер»

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

Компьютер управляющий этим ресурсом принято называть сервером этого ресурса, а компьютер, который пользуется этим называется клиентом.

Как клиент общается с сервером?

На пользовательских машинах устанавливаются специальные программы-шлюзы, которые через сетевой протокол обеспечивают связь с сервером БД. Часто, дополнительно устанавливается библиотека (ODBC, OLE DB и т. п.), предоставляющая приложениям API для работы с сервером БД. В настоящее время архитектура клиент-сервер имеет распределенный характер, часть приложений реализовывается, а другая часть в приложении сервер.

Чем отличается «тонкий» клиент от «толстого»

«Тонким» клиентом обычно называют пользовательское приложение, не содержащее никакой функциональности, и предназначенное только для ввода/вывода информации. Вся обработка данных производится на сервере БД, либо на сервере приложений. Зачастую, такой клиент изначально не содержит вообще никаких возможностей, а подгружает дополнительные модули с сервера, по мере необходимости. Обычно, в качестве «тонкого» клиента, выступают Web браузер + HTML/ASP/Java. «Толстый» клиент содержит всю функциональность и интерфейсную часть в себе, и при любом изменении, требует замены у всех пользователей.

В настоящее время стандартом для многопользовательских СУБД стала архитектура клиент-сервер. Прикладные программы имеют распределенный характер.

Все программы технологии клиент-сервер разделены на 4 группы:

Функции ввода и отображения данных. Претензионная логика (PL)

Объединяются чисто прикладные функции, характерные для данной предметной области. Бизнес- логика (BL)

Функции обработки данных внутри приложения (BL)

Функции управления информационными ресурсами (DML)

Структура типичного приложения, работающего с БД.

PL - это часть приложения, которая определяется тем, что пользователь видит на экране, когда работает приложение (интерактивные экранные формы, а также все то, что выводится пользователю на экран, результаты решения некоторых промежуточных задач, справочная информация). Основные задачи PL:

формирование экранных изображений;

чтение и запись в экранные формы информации;

управление экраном;

обработка движений мыши и нажатий клавиш клавиатуры.

BL - это часть кода приложения, которая определяет алгоритмы решения конкретных задач приложения. Обычно этот код пишется с использованием различных языков программирования. DL - это часть кода приложения, которая связана с обработкой данных внутри приложения (данными управляет собственно СУБД), где используется язык запросов и средства манипулирования данными стандартного языка SQL. Процессор управления данными (Data Base Manager System Processing) - это собственно СУБД, которая обеспечивает управление и хранение данных. В идеале СУБД должна быть скрыта от BL-приложения. Однако для рассмотрения архитектуры приложения нам надо их выделить в отдельную часть приложения.

Модели серверов

Двухуровневые модели

Эти модели фактически являются распределением пяти указанных функций между двумя процессами, которые выполняются на двух платформах - клиенте и сервере. Модель удаленного управления данными (модель файлового сервера). В этой модели BL и PL располагаются на клиенте. На сервере располагаются файлы с данными и доступ к ним. Функции управления информационными ресурсами в этой модели находятся на клиенте.

Модель файл-сервера

В этой модели файлы БД хранятся на сервере, клиент обращается к серверу с файловыми командами, а механизм управления всеми информационными ресурсами (база метаданных (БМД)) находится на клиенте. Достоинства:

разделение монопольного приложения на два взаимодействующих процесса.

сервер может обслуживать множество клиентов, которые обращаются к нему с запросами.

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

Модель удаленного доступа к данным

В модели удаленного доступа (RDA) база данных хранится на сервере. На нем же находится и ядро СУБД. На клиенте располагаются PL и BL приложения. Клиент обращается к серверу с запросами на языке SQL.

Достоинства:

перенос компонента представления и прикладного компонента на клиентский ПК существенно разгружает сервер БД, сводя к минимуму общее число процессов в ОС.

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

резко уменьшается загрузка сети, запросы на ввод-вывод и на SQL уменьшаются в объеме, т. е. в ответ на запросы клиент получает только данные, удовлетворяющие данному запросу.

унификация интерфейса клиент-сервер.

стандартным при обращении приложения клиента и сервера становится язык SQL.

Недостатки:

запросы на SQL при интерактивной работе клиента могут существенно загрузить сеть.

на клиенте располагаются PL и BL, и если при повторении аналогичных функций в различных приложениях (других клиентов) их код должен быть повторен для каждого клиентского приложения, следовательно, дублирование кода приложения.

сервер в этой модели играет пассивную роль, поэтому функции управления информационными ресурсами должны выполняться на клиенте => это усложняет клиентское приложение.

Модель сервера баз данных

Для того, чтобы избавиться от недостатков модели удаленного доступа должны быть соблюдены следующие условия:

Данные, которые хранятся в БД в каждый момент времени должны быть непротиворечивы.

БД должна отображать некоторые правила ПО, законы ПО.

Необходим постоянный контроль за состоянием БД, отслеживание всех изменений и адекватная реакция на них.

Возникновение некоторой ситуации в БД четко и оперативно должно влиять на ход выполнения прикладной задачи.

Одной из важных проблем СУБД является контроль типов данных через язык описания данных (ЯОД).

Модель активного сервера

Данную модель поддерживают большинство современных СУБД: Informix, Ingres, Sybase, Oracle, MS SQL Server. Основу данной модели составляет механизм хранимых процедур (как средства программирования SQL-сервера), механизм триггеров (как механизм отслеживания текущего состояния информационного хранилища) и механизм ограничений на пользовательские типы данных (который иногда называется механизмом поддержки доменной структуры). В этой модели бизнес логика разделена между клиентом и сервером. На сервере бизнес логика реализована в виде хранимых процедур - специальных программных модулей, которые хранятся в БД и управляются непосредственно СУБД. Клиентское приложение обращается к серверу с командой запуска хранимой процедурой, а сервер выполняет эту процедуру и регистрирует все изменения в БД, которые в ней предусмотрены. Сервер возвращает клиенту данные, релевантные его запросу. Трафик обмена информацией между клиентом и сервером резко уменьшается. Централизованный контроль в данной модели выполняется с использованием механизма триггеров, которые являются частью БД.

3. Агрегатные или итоговые функции

В результате запроса получается один итог. Название функции пишется в строке Select.

В SQL также определены так называемые агрегатные функции, которые совершают действия над совокупностью одинаковых полей в группе записей. Среди них:

AVG (<имя поля>) - среднее по всем значениям данного поля

COUNT (<имя поля>) или COUNT (*) - число записей

MAX (<имя поля>) - максимальное из всех значений данного поля

MIN (<имя поля>) - минимальное из всех значений данного поля

SUM (<имя поля>) - сумма всех значений данного поля

Следует учитывать, что каждая агрегирующая функция возвращает единственное значение.

Примеры: определить дату публикации самой «древней» книги в нашей базе данных

SELECT MIN (yearpub) FROM titles;

подсчитать количество книг в нашей базе данных:

SELECT COUNT (*) FROM titles;

Область действия данных функции можно ограничить с помощью логического условия. Например, количество книг, в названии которых есть слово «SQL»:

SELECTCOUNT (*) FROMtitlesWHEREtitleLIKE '% SQL% ';

Использование Distinct

Издательством АСТ выпущены книги многих авторов:

Сколько изданий было выпущенно?

Select count (avtor)

From АСТ

Подчитать кол-во изданий по фамилиям авторов без повторов

Select count (distinct avtor) as кол-во

From АСТ

Определить среднюю цену по бизнесу

Select AVG (price)

From книги

Whereкатегория='бизнес'

Группировка и оператор Groupby.

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

Синтаксис.

Select

From

Where

groupby

orderby

несколько рабочих выпускали детали трех видов. Показать, сколько деталей было выпущено 1, 2, 3 вида.

Select model, Sum as col-vo

Fromt

Groupbymodel

Вывод: если в строке Selectнужно использовать назв. поля а за ним пойдет итоговая ф-ция то обязательно использовать строку Groupbyс тем полем которое идет без ф-ций.

4. Транзакции

Транзакция - набор команд или операций, образующий логически завершаемый блок, который выполняется как единое целое по признаку «всё или ничего».

Если хотя бы одна команда по какой-то причине не работает, происходит откат транзакции, при этом система восстанавливается в состояние до начала транзакции.

4.1 Журнал транзакции

- отдельный ресурс на сервере, который записывает всю информацию при выполнении транзакции:

- время начала

- изменение вида каждой транзакции

- информация о результате контрольных точек

- о распределении памяти

- о завершении каждой транзакции.

4.2 Принцип работы журнала

При выполнении транзакции работает сначала функция «Пиши сначала в журнал» WAL - это значит, что все изменения фиксируются в журнале и только после команды «commit» происходит выброс «грязных страниц» в базу и изменения в ней.

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

4.3 Понятие контрольных точек

Если количество операций Т. большое то разработчик через команду «savepoint» сам устанавливает запись результата после нескольких операций;

Тогда после отката выполнение идёт сначала, но не каждую операцию, а переходит от одной точки с другой.

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

4.4 Блокировки

Блокировками (locks) называются механизмы, применяемые для управления параллельными изменениями данных.

Существует два типа блокировок:

оптимистические блокировки (optimistic locks) - предотвращают возникновение конфликтных ситуаций, выполняя при необходимости откат транзакции (такие блокировки в стандарте SQL-92 не поддерживаются) ;

пессимистические блокировки (pessimistic locks) - предотвращают возникновение конфликтных ситуаций, блокируя одновременный доступ к данным для одновременных транзакций.

Блокировки используются для приостановки выполнения одних SQL-операторов, пока выполняются другие.

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

Блокировки, используемые уровнями изоляции, подразделяются на:

разделяемые блокировки (S-locks), которые могут одновременно устанавливаться несколькими пользователями;

исключительные блокировки (X-locks), которые устанавливаются только одним пользователем, получающим эксклюзивный доступ к данным.

Существуют следующие логические и физические уровни блокировок:

блокировка на уровне таблицы (table-level locking) ;

блокировка на уровне строк (row-level locking) ;

блокировка на уровне элемента таблицы (item-level locking) ;

блокировка на уровне БД (dbspace-level locking) ;

блокировка на уровне табличного пространства (tablespace-level locking) ;

блокировка на уровне страницы или блока (page-level locking).

4.5 Типы блокировок

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

>Пользователь может быть уверен, что никто не изменит просматриваемые данные.

2) Обновления - транзакция пытается изменить данные, для того чтобы избежать мёртвую блокировку, сервер устанавливает блокировку на обновление.

>Блокировку обновлений можно рассматривать как переходный этап от коллективной к многопользовательской блокировке.

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

Восстановление базы может идти в нескольких случаях:

1. Индивидуальный откат транзакции по журналу

2. Восстановление после мягкого сбоя (сбоя в ПО)

5. Объекты серверных СУБД

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

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

- специальный вид запросов, который создаётся один раз и храниться на сервере.

Чтобы сохранить результат запроса, надо ввести команду VIEW. Сам запрос - набор команд.

Пользователи и роли.

Для защиты базы создаётся список пользователей, которые объединены в группы и имеют определённые полномочия.

Каждая группа пользователей выполняет свои функции (задачи), например: пользователи могут только искать информацию, администраторы могут изменять базу, т. е. дополнять, удалять и обновлять.

Индекс

- объект базы с целью повышения производительности поиска в базе.

- внутренняя таблица, состоящая и двух столбцов: в первом неповторяемые значения индексированного столбца.

- ссылка на № записи, где встречается эта запись.

Индексы в стандарте языка

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

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

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

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

CREATE [ UNIQUE ] INDEX имя_индекса

ON имя_таблицы (имя_столбца[ASC|DESC][,... n])

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

Если созданный индекс впоследствии окажется ненужным, его можно удалить с помощью оператора

DROP INDEX имя_индекса

Индексы в среде MS SQL Server

Индекс представляет собой средство, помогающее ускорить поиск необходимых данных за счет физического или логического их упорядочивания. Индекс представляет собой набор ссылок, упорядоченных по определенному столбцу таблицы, который в данном случае будет называться индексированным столбцом. Индексы - это наборы уникальных значений для некоторой таблицы с соответствующими ссылками на данные. Они расположены в самой таблице и являются удобным внутренним механизмом системы SQL-сервера, с помощью которого осуществляется доступ к данным оптимальным способом. В среде SQL Server реализованы эффективные алгоритмы поиска нужного значения в строго определенной последовательности данных. Ускорение поиска достигается именно за счет того, что данные представляются упорядоченными (хотя физически, в зависимости от типа индекса, они могут храниться в соответствии с очередностью их добавления в таблицу). К настоящему времени разработаны эффективные математические алгоритмы поиска данных в упорядоченной последовательности. Наиболее эффективной структурой для поиска данных в машинном представлении являются B-деревья - многоуровневая иерархическая структура с переменным количеством элементов в каждом узле.

Создание индекса

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

В среде SQL Server реализовано несколько типов индексов:

кластерные индексы;

некластерные индексы;

уникальные индексы.

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

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

Для идентификации нужной строки в таблице некластерный индекс организует специальные указатели, включающие в себя:

информацию об идентификационном номере файла, в котором хранится строка;

идентификационный номер страницы соответствующих данных;

номер искомой строки на соответствующей странице;

содержимое столбца.

В большинстве случаев следует ограничиваться 4-5 индексами.

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

Принципиальным отличием кластерного индекса от индексов других типов является то, что при его определении в таблицефизическое расположение данных перестраивается в соответствии со структурой индекса. Логическая структура таблицы в этом случае представляет собой скорее словарь, чем индекс. Данные в словаре физически упорядочены, например по алфавиту.

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

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

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

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

При создании в таблице первичного ключа (PRIMARY KEY) сервер автоматически создает для него кластерный индекс, если его не существовало ранее или если при определении ключа не был явно указан другой тип индекса.

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

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

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

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

Уникальные индексы следует определять только тогда, когда это действительно необходимо. Для обеспечения целостности данных в столбце можно определить ограничение целостности UNIQUE или PRIMARY KEY, а не прибегать к уникальным индексам. Их использование только для обеспечения целостности данных является неоправданной тратой пространства в базе данных. Кроме того, на их поддержание тратится и процессорное время.

Средства языка SQL предлагают несколько способов определения индекса:

автоматическое создание индекса при создании первичного ключа;

автоматическое создание индекса при определении ограничения целостности UNIQUE;

создание индекса с помощью команды CREATE INDEX.

Последняя команда имеет следующий формат:

<создание_индекса>: : =

CREATE [ UNIQUE ]

[ CLUSTERED | NONCLUSTERED ]

INDEX имя_индекса ON имя_таблицы (имя_столбца

[ASC|DESC][,... n])

[WITH [PAD_INDEX]

[[, ] FILLFACTOR=фактор_заполнения]

[[, ] IGNORE_DUP_KEY]

[[, ] DROP_EXISTING]

[[, ] STATISTICS_NORECOMPUTE] ]

[ON имя_группы_файлов ]

Рассмотрим некоторые параметры приведенной команды.

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

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

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

Параметр NONCLUSTERED позволяет создавать некластерные индексы.

Параметр FILLFACTOR осуществляет настройку разбиения индекса на страницы и заметно оптимизирует работу SQL-сервера. Коэффициент FILLFACTOR определяет в процентном соотношении размер создаваемых индексных страниц. При этом имеется обратно пропорциональная зависимость частоты работы с таблицей и коэффициента FILLFACTOR.

Параметр PAD_INDEX определяет заполнение внутреннего пространства индекса и применяется совместно с FILLFACTOR.

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

Параметр STATISTICS_NORECOMPUTE определяет функции автоматического обновления статистики для таблицы.

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

Удаление индекса

Удаление индекса выполняется командой

DROP INDEX 'имя_индекса'[,... n]

Пример. Создать уникальный кластерный индекс для таблицы Клиент по столбцу Фамилия в первичной группе файлов.

CREATE UNIQUE CLUSTERED INDEX index_klient1

ON Клиент (Фамилия)

WITH DROP_EXISTING

ON PRIMARY

Пример 3. 5. Создание уникального кластерного индекса.

Пример. Создать уникальный некластерный индекс для таблицы Клиент по столбцам Фамилия и Имя в первичной группе файлов. Кроме того, элементы индекса будут упорядочены по убыванию. Также запретим автоматическое обновление статистики при изменении данных в таблице и установим фактор заполнения индексных страниц на уровне 30%.

CREATE UNIQUE NONCLUSTERED INDEX index_klient2

ON Клиент (Фамилия DESC, Имя DESC)

WITH FILLFACTOR=30,

STATISTICS_NORECOMPUTE

ON PRIMARY

Пример 3. 6. Создание уникального некластерного индекса.

Курсоры

В результате запроса специально выдаётся набор строк и столбцов, этому фрагменту присваивается имя decl.

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

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

При работе с курсорами можно выделить специальные действия:

>создание или объявление курсора

> открытие курсора

> выборка из курсора

> закрытие курсора

> освобождение курсора (удаление).

Запрос к реляционной базе данных обычно возвращает несколько рядов (записей) данных, но приложение за один раз обрабатывает лишь одну запись. Даже если оно имеет дело одновременно с несколькими рядами (например, выводит данные в форме электронных таблиц), их количество по-прежнему ограничено. Кроме того, при модификации, удалении или добавлении данных рабочей единицей является ряд. В этой ситуации на первый план выступает концепция курсора, и в таком контекстекурсор - указатель на ряд.

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

В соответствии со стандартом SQL при работе с курсорами можно выделить следующие основные действия:

создание или объявление курсора;

открытие курсора, т. е. наполнение его данными, которые сохраняются в многоуровневой памяти;

выборка из курсора и изменение с его помощью строк данных;

закрытие курсора, после чего он становится недоступным для пользовательских программ;

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

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

В некоторых случаях применение курсора неизбежно. Однако по возможности этого следует избегать и работать со стандартными командами обработки данных: SELECT, UPDATE, INSERT, DELETE. Помимо того, что курсоры не позволяют проводитьоперации изменения над всем объемом данных, скорость выполнения операций обработки данных посредством курсора заметно ниже, чем у стандартных средств SQL.

Реализация курсоров в среде MS SQL Server

SQL Server поддерживает три вида курсоров:

курсоры SQL применяются в основном внутри триггеров, хранимых процедур и сценариев;

курсоры сервера действуют на сервере и реализуют программный интерфейс приложений для ODBC, OLE DB, DB_Library;

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

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

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

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

SQL Server поддерживает курсоры статические, динамические, последовательные и управляемые набором ключей.

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

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

В статический курсор внести изменения невозможно, поэтому он всегда открывается в режиме «только для чтения».

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

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

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

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

Управление курсором в среде MS SQL Server

Управление курсором реализуется путем выполнения следующих команд:

DECLARE - создание или объявление курсора;

OPEN - открытие курсора, т. е. наполнение его данными;

FETCH - выборка из курсора и изменение строк данных с помощью курсора;

CLOSE - закрытие курсора;

DEALLOCATE - освобождение курсора, т. е. удаление курсора как объекта.

Объявление курсора

В стандарте SQL для создания курсора предусмотрена следующая команда:

<создание_курсора>: : =

DECLARE имя_курсора

[INSENSITIVE][SCROLL] CURSOR

FOR SELECT_оператор

[FOR { READ_ONLY | UPDATE

[OFимя_столбца[,... n]]}]

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

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

SELECT-оператор задает тело запроса SELECT, с помощью которого определяется результирующий набор строк курсора.

При указании аргумента FOR READ_ONLY создается курсор «только для чтения», и никакие модификации данных не разрешаются. Он отличается от статического, хотя последний также не позволяет менять данные. В качестве курсора «только для чтения» может быть объявлен динамический курсор, что позволит отображать изменения, сделанные другим пользователем.

Создание курсора с аргументом FOR UPDATE позволяет выполнять в курсоре изменение данных либо в указанных столбцах, либо, при отсутствии аргумента OF имя_столбца, во всех столбцах.

В среде MS SQL Server принят следующий синтаксис команды создания курсора:

<создание_курсора>: : =

DECLARE имя_курсора CURSOR [LOCAL | GLOBAL]

[FORWARD_ONLY | SCROLL]

[STATIC | KEYSET | DYNAMIC | FAST_FORWARD]

[READ_ONLY | SCROLL_LOCKS | OPTIMISTIC]

[TYPE_WARNING]

FOR SELECT_оператор

[FOR UPDATE [OF имя_столбца[,... n]]]

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

Если указано ключевое слово GLOBAL, создается глобальный курсор; он существует до закрытия текущего соединения.

При указании FORWARD_ONLY создается последовательный курсор; выборку данных можно осуществлять только в направлении от первой строки к последней.

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

При указании STATIC создается статический курсор.

При указании KEYSET создается ключевой курсор.

При указании DYNAMIC создается динамический курсор.

Если для курсора READ_ONLY указать аргумент FAST_FORWARD, то созданный курсор будет оптимизирован для быстрого доступа к данным. Этот аргумент не может быть использован совместно с аргументами FORWARD_ONLY и OPTIMISTIC.

В курсоре, созданном с указанием аргумента OPTIMISTIC, запрещается изменение и удаление строк, которые были изменены после открытия курсора.

При указании аргумента TYPE_WARNING сервер будет информировать пользователя о неявном изменении типа курсора, если он несовместим с запросом SELECT.

Открытие курсора

Для открытия курсора и наполнения его данными из указанного при создании курсора запроса SELECT используется следующая команда:

OPEN {{[GLOBAL]имя_курсора }

|@имя_переменной_курсора}

После открытия курсора происходит выполнение связанного с ним оператора SELECT, выходные данные которого сохраняются в многоуровневой памяти.

Выборка данных из курсора

Сразу после открытия курсора можно выбрать его содержимое (результат выполнения соответствующего запроса) посредством следующей команды:

FETCH [[NEXT | PRIOR | FIRST | LAST

| ABSOLUTE {номер_строки

| @переменная_номера_строки}

| RELATIVE {номер_строки |

@переменная_номера_строки}]

FROM ]{{[GLOBAL ]имя_курсора }|

@имя_переменной_курсора }

[INTO @имя_переменной [,... n]]

При указании FIRST будет возвращена самая первая строка полного результирующего набора курсора, которая становится текущей строкой.

При указании LAST возвращается самая последняя строка курсора. Она же становится текущей строкой.

При указании NEXT возвращается строка, находящаяся в полном результирующем наборе сразу же после текущей. Теперь она становится текущей. По умолчанию команда FETCH использует именно этот способ выборки строк.

Ключевое слово PRIOR возвращает строку, находящуюся перед текущей. Она и становится текущей.

Аргумент ABSOLUTE {номер_строки | @переменная_номера_строки} возвращает строку по ее абсолютному порядковому номеру в полном результирующем наборе курсора. Номер строки можно задать с помощью константы или как имя переменной, в которой хранится номер строки. Переменная должна иметь целочисленный тип данных. Указываются как положительные, так и отрицательные значения. При указании положительного значения строка отсчитывается от начала набора, отрицательного - от конца. Выбранная строка становится текущей. Если указано нулевое значение, строка не возвращается.

Аргумент RELATIVE {кол_строки | @переменная_кол_строки} возвращает строку, находящуюся через указанное количество строк после текущей. Если указать отрицательное значение числа строк, то будет возвращена строка, находящаяся за указанное количество строк перед текущей. При указании нулевого значения возвратится текущая строка. Возвращенная строка становится текущей.

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

В конструкции INTO @имя_переменной [,... n] задается список переменных, в которых будут сохранены соответствующие значения столбцов возвращаемой строки. Порядок указания переменных должен соответствовать порядку столбцов в курсоре, а тип данных переменной - типу данных в столбце курсора. Если конструкция INTO не указана, то поведение команды FETCH будет напоминать поведение команды SELECT - данные выводятся на экран.

...

Подобные документы

  • Архитектура "клиент-сервер". Параллельная обработка данных в многопроцессорных системах. Модернизация устаревших информационных систем. Характерные черты современных серверных СУБД. Наиболее популярные серверные СУБД. Распределенные запросы и транзакции.

    курсовая работа [309,2 K], добавлен 11.11.2011

  • Основные вехи на пути развития систем программирования. Microsoft Access - первая СУБД для персональных компьютеров, созданная для работы в среде Windows. Перенос файл-серверных приложений в среду клиент-сервер. Использование ActiveX Data Objects.

    презентация [662,2 K], добавлен 11.04.2013

  • Понятие и сущность базы данных, их классификация и характеристика. Системы управления базами данных. СУБД структуры "сервер-клиент", его суть. Microsoft Access - функционально полная реляционная СУБД. Предназначение СУБД Access, и описание ее работы.

    реферат [44,3 K], добавлен 27.02.2009

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

    курсовая работа [2,3 M], добавлен 01.11.2011

  • Структура и функции системы управления базами данных (СУБД). Управление хранением данных и доступом к ним. Защита и поддержка целостности данных. Надежность хранения данных во внешней памяти. Классификация СУБД по способу доступа к базе данных.

    презентация [3,7 M], добавлен 05.06.2014

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

    презентация [73,2 K], добавлен 28.05.2019

  • Краткая история развития СУБД ORACLE, основные понятия и определения, архитектура. Принципы работы с СУБД ORACLE. Разработка баз данных, средства и технологии их реализации; возможности процедурного языка PL/SQL. Приемы администрирования СУБД ORACLE.

    презентация [609,2 K], добавлен 14.02.2014

  • Теоретические аспекты СУБД. Основные понятия. Функциональные возможности СУБД. Архитектура систем управления. Разработка базы данных. Крупные массивы данных размещают, как правило, отдельно от исполняемого программы, и организуют в виде базы данных.

    курсовая работа [30,5 K], добавлен 23.02.2006

  • Типы моделей данных: реляционная, иерархическая и сетевая. Описание концептуальной модели реляционной базы данных. Разработка базы данных в СУБД Microsoft Access, ее премущества и недостатки, составные компоненты, описание и обоснование полей таблиц.

    курсовая работа [62,6 K], добавлен 09.03.2009

  • Определение, свойства и характеристики распределенных систем баз данных. Основная задача систем управления ими. Архитектура распределения СУБД. Сравнение технологий файлового сервера и "клиент-сервера". Стратегия распределения данных по узлам сети ЭВМ.

    курсовая работа [601,3 K], добавлен 24.05.2015

  • Основные понятия серверов, базы данных и их классификация. Задача логического проектирования - разработка схемы, ориентированной на выбранную СУБД. Понятия сервер и клиент и закрепленные за ними роли. Специализация и комплектация серверного оборудования.

    реферат [33,2 K], добавлен 08.04.2009

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

    курсовая работа [467,8 K], добавлен 14.12.2012

  • Разработка API взаимодействия клиентских приложений с сервером СУБД через Pipe под Windows. Устройство и характеристики СУБД SQLite. Методы WinAPI для передачи данных. Реализация взаимодействия через PIPE. Результат работы серверного приложения.

    курсовая работа [596,3 K], добавлен 09.05.2014

  • Транзакции как одно из свойств, отличающих базу данных от файловой системы. Операторы управления транзакциями в Оracle, пример неделимости. Работа с журналами повторного выполнения (активные и архивные журналы). Преимущества данной СУБД при работе.

    презентация [618,1 K], добавлен 14.02.2014

  • Классификации баз данных и СУБД. Технология модели "клиент-сервер". Особенности языка структурированных запросов SQL. Структура и назначение операторов определения, манипулирования и управления данными. Разработка реляционной БД, создание SQL запросов.

    курсовая работа [1,4 M], добавлен 17.08.2015

  • Основные этапы проектирования базы данных. Access как система управления базами данных (СУБД), ее предназначение, отличительные возможности. Работа с таблицами, их создание и редактирование. Порядок создания запросов. Способы защиты баз данных.

    лабораторная работа [3,1 M], добавлен 18.08.2009

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

    курсовая работа [60,5 K], добавлен 02.03.2014

  • Характеристика системы управления базами данных. Принципы классификации СУБД. NoSQL как ряд подходов, проектов, направленных на реализацию моделей баз данных. Методологические обоснования подхода NoSQL. Описание некоторых СУБД из данного движения.

    реферат [18,1 K], добавлен 06.10.2011

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

    курсовая работа [965,5 K], добавлен 13.01.2013

  • Технологии обработки экономической информации в среде ТП MS Excel. Работа в среде СКМ Maple. Технологии обработки данных в среде СУБД MS Access и анализ языка запросов SQL как средства расширения возможностей СУБД. Разработка отчетов в СУБД Access.

    контрольная работа [1,5 M], добавлен 04.04.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.