Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

СКБД - все лк

.pdf
Скачиваний:
15
Добавлен:
16.03.2016
Размер:
2.91 Mб
Скачать

Основной функцией компилятора языка БД является преобразование операторов языка БД в выполняемую программу.

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

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

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

Утилиты программируются с использованием интерфейса ядра СУБД.

Производительность СУБД оценивается:

временем выполнения запросов;

скоростью поиска информации в неиндексированных полях;

временем выполнения операций импортирования базы данных из других форматов;

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

максимальным числом параллельных обращений к данным в многопользовательском режиме;

временем генерации отчета.

Устно.

2.2. Типы моделей данных

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

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

сетевая и реляционная.

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

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

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

найти указанное дерево БД;

перейти от одного дерева к другому;

перейти от одной записи к другой внутри дерева;

перейти от одной записи к другой в порядке обхода иерархии;

вставить новую запись в указанную позицию;

удалить текущую запись.

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

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

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

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

иобладает следующими свойствами:

каждый элемент таблицы — один элемент данных;

все столбцы в таблице однородные, то есть, все элементы в столбце имеют одинаковый тип (числовой, символьный или другой) и длину;

каждый столбец имеет уникальное имя;

одинаковые строки в таблице отсутствуют;

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

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

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

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

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

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

Вкачестве операторов манипулирования данными в реляционных моделях используются операторы языка структурированных запросов SQL.

СУБД для специальности СП, III курс

Лекция №3

Компоненты СУБД MS SQL Server

SQL Server реализуется в виде нескольких самостоятельных служб, каждая из которых отвечает за выполнение определенного круга задач:

MSSQLServer;

SQLServerAgent;

Microsoft Search (MSSearch);

Microsoft Distributed Transaction Coordinator (MS DTС).

MSSQLServer

Основное ядро SQL Server запускается как служба операционной системы MSSQLServer. Эта служба реализует большинство основных функций SQL Server: выполнение хранимых процедур, управление файлами баз данных и журнала транзакций, проверку учетных записей пользователей, выполнение запросов и команд Transact-SQL. Если служба MSSQLServer не запущена, то пользователи не смогут подключиться к базам данных и никакие административные задачи не смогут быть выполнены.

SQLServerAgent

Служба SQLServerAgent реализует часть SQL Server, отвечающую за автоматическое исполнение заданий и извещение операторов об ошибках в работе сервера. SQLServerAgent можно рассматривать как службу, зависимую по отношению к MSSQLServer. Для успешной работы SQL Server запуск службы SQLServerAgent не обязателен.

MSSearch

Компонент Microsoft Search, реализованный в виде службы MSSearch, позволяет реализовать поиск символьной информации в полях таблиц баз данных. Возможности поиска были значительно переработаны по сравнению с предыдущими версиями SQL Server. Microsoft Search реализует поддержку полнотекстовых (full-text) каталогов и индексов, созданных для реализации поиска текстовой информации в базе данных. С помощью этой службы вы можете осуществлять поиск слов или фраз в таблицах баз данных. В результирующем множестве будут отражены склоняемые формы глаголов и существительных. Можно осуществлять поиск слов или фраз, стоящих близко по отношению друг к другу.

ПРИМЕЧАНИЕ Полнотекстовые каталоги не хранятся вместе с базами данных. Они реализуются в виде отдельных файлов, к которым обращается только Microsoft Search. Это означает, что они не сохраняются вместе с остальной базой данных в процессе резервного копирования. Полнотекстовые каталоги должны архивироваться и восстанавливаться отдельно. Связь между

SQL Server и Microsoft Search реализуется через специального full-text- поставщика.

MS DTC

Управление распределенными транзакциями. Использование MS DTC позволяет в единственной транзакции использовать несколько источников данных. При откате транзакции служба MS DTC восстанавливает первоначальные значения на всех удаленных и локальных источниках информации.

Системные базы данных SQL Server

При установке SQL Server всегда создаются четыре базы данных, содержащие системные таблицы:

Master;

Msdb;

Model;

Tempdb.

Любая база данных, в том числе и перечисленные системные базы, содержит 18 системных таблиц, которые хранят информацию, определяющую структуру и организацию этой базы данных. В табл. 2.1 перечислены эти таблицы с кратким описанием их назначения. Мы специально не останавливаемся на перечислении колонок таблиц. Вы можете воспользоваться средствами SQL Server Enterprise Manager, чтобы получить информацию о колонках. Просто обратитесь к окну свойств требуемой таблицы либо откройте ее для просмотра.

Таблица 2.1. Системные таблицы, содержащиеся в каждой базе данных

Название Описание таблицы

Sysallocations

Syscolumns

Syscomments

Sysconstraints

Sysdepends

Содержит сведения о размещении объектов внутри базы данных

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

Таблица содержит определения объектов баз данных

Содержит соответствия между ограничениями (constraints) и объектами, которым они принадлежат

В этой таблице хранятся ссылки на объекты, которые были использованы при

Sysfilegroups

Sysfiles

Sysforeignkeys

Sysfulltextcatalogs

Sysindexes

Sysindexkeys

Sysmembers

Sysobjects

Syspermissions

Sysprotects

Sysreferences

Systypes

Sysusers

определении других объектов баз данных

В таблице перечислены все группы файлов, принадлежащие этой базе данных

Здесь перечислены все файлы базы данных

Содержит информацию, определяющую ограничение FOREIGN KEY

В таблице перечислены все

полнотекстовые каталоги, присоединенные к базе данных

Таблица используется для хранения информации об индексах и таблицах базы данных

Таблица хранит сведения о ключах и колонках индексов

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

Сведения обо всех объектах, создаваемых в базе данных, содержатся в этой системной таблице

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

В таблицу заносятся сведения о разрешениях, которые предоставляются либо отзываются посредством команд

GRANT и REVOKE

Содержит соответствия между ограничением FOREIGN KEY и колонками, на которые оно ссылается

Все типы данных, как стандартные, так и пользовательские, хранятся в этой таблице

В таблице содержится список всех пользователей базы данных. Список включает пользователей SQL Server и Windows NT, роли SQL Server и группы пользователей Windows NT

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

изменять хранящуюся в них информацию. По умолчанию прямой доступ к системным таблицам и использованию Transact-SQL-команд SELECT, INSERT, UPDATE и DELETE запрещен. Для изменения данных необходимо использовать системные хранимые процедуры. Другой альтернативой является применение приложений, использующих SQL-DMO API. Microsoft вообще не рекомендует изменять значения в системных таблицах напрямую, настойчиво рекомендуя использовать хранимые процедуры, что гарантирует правильность и надежность выполняемых операций. Имеющиеся хранимые процедуры охватывают все возможные ситуации управления базами данных, так что необходимость прямого доступа к системным таблицам практически исключена. Кроме того, использование в прикладных приложениях хранимых процедур позволяет гарантировать, что работоспособность программы сохранится даже при изменении структуры системных таблиц в следующих версиях SQL Server.

Системная база данных Master

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

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

Таблица 2.2. Системные таблицы базы данных Master, содержащие информацию о конфигурации сервера

Название

таблицы

Sysaltfiles Syscacheobjects

Syscharsets

Sysconfigures

Syscurconfigs

Описание

Здесь перечислены все файлы, используемые для хранения баз данных

Содержит сведения о том, как используется

кэш-память

В таблице представлены все наборы символов и порядок сортировки, установленные на сервере

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

Эта таблица используется для хранения

текущих значений настроек сервера

Sysdatabases

Sysdevices

Syslanguages

Syslockinfo

Syslogins

Sysmessages

Sysoledbusers

Sysperfinfo

Sysprocesses

Sysremotelogins

Sysservers

Содержит сведения обо всех базах данных сервера

Содержит сведения обо всех файлах базы данных, хранящихся на различных устройствах. Эта системная таблица оставлена в целях сохранения совместимости с предыдущими версиями SQL Server

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

Содержит информацию обо всех

блокировках

Каждой учетной записи пользователя SQL Server соответствует одна строка таблицы

Строки таблицы содержат сведения об

ошибках либо предупреждениях SQL Server

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

В этой таблице хранятся внутренние счетчики SQL Server для Windows NT Performance Monitor

Таблица содержит информацию о процессах, как клиентских, так и системных, запущенных на SQL Server

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

Таблица содержит информацию о серверах, способных выступать в роли OLE DB источника данных для SQL Server

Системная база данных Master располагается в файле Master.mdf в каталоге \Data. Для хранения журнала транзакций используется файл Mastlog.ldf в том же каталоге.

Системная база данных Msdb

Системная база данных Msdb используется службой SQLServerAgent для хранения информации о заданиях, операторах и оповещениях. В этой же базе данных хранится информация о расписании исполнения заданий.

Таблица 2.3. Системные таблицы базы данных Msdb

Название таблицы

Описание

Sysalerts

В этой таблице содержатся

сведения об оповещениях

 

 

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

 

категории, которые

Syscategories

используются Enterprise Manager

 

для автоматизации

 

администрирования SQL Server

 

В таблице перечислены

 

инструкции, загружаемые всеми

 

серверами назначения. Эти

Sysdownloadslist

инструкции используются для

 

управления процессом

 

выполнения многосерверных

 

заданий

 

В этой таблице отражается

Sysjobhistory

подробная информация о

процессе выполнения

 

 

запланированных заданий

 

Информация обо всех

Sysjobs

запланированных заданиях

 

хранится в этой таблице

 

Таблица используется для

Sysjobschedules

хранения расписания

выполнения запланированных

 

 

заданий

 

Используется для хранения

Sysjobservers

информации о многосерверных

 

заданиях

 

В каждой строке этой таблицы

Sysjobsteps

содержится подробное описание

каждого шага заданий

 

 

SQLServerAgent

 

В строках таблицы хранятся

 

сведения об извещениях, которые

Sysnotifications

посылаются операторам в случае

наступления определенных

 

 

событий, контролируемых

 

сервером

В эту системную таблицу Sysoperators заносятся сведения об

операторах SQL Server

В этой таблице перечислены все

Systargetservergroupmembers серверы назначения, задействованные в

многосерверной группе

Systargetservergroups

В этой таблице указаны все

группы серверов назначения

 

Содержит информацию о

Systargetservers серверах назначения, которые

задействованы в выполнении многосерверного задания

Используется для указания

соответствия между задачами

Systaskids (применялись в предыдущих версиях SQL Server) и

заданиями

Для размещения системной базы данных Msdb используется файл Msdbdata.mdf в каталоге \Data. Для хранения журнала транзакций используется файл Msdblog.ldf, который расположен в том же каталоге.

Системная база данных Tempdb

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

База данных Tempdb является глобальным ресурсом, автоматически доступным всем пользователям. Создаваемые временные объекты могут быть локальными, доступными только создавшему их пользователю, или глобальными. К глобальным объектам могут обращаться все пользователи. Локальные объекты уничтожаются, как только создавший их пользователь заканчивает работу с сервером. Локальный временный объект может быть создан, если в начале его имени указывается один знак #. Если указываются два знака (##), то временный объект будет глобальным.

База данных Tempdb уничтожается всякий раз, когда происходит останов SQL Server. При запуске сервера она создается заново. Естественно, архивирование этой базы данных совершенно бесполезно. Для базы данных Tempdb, как и для всех системных баз данных, поддерживается возможность автоматического увеличения ее размера. Администратор может потратить свое время на решение более серьезных проблем, нежели постоянно следить за тем, чтобы свободное пространство в базе данных не исчерпалось. Необходимо лишь правильно установить первоначальный размер базы данных и шаг его приращения.