Файл: Лабораторная работа 1 Архитектура реляционных баз данных.doc
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.01.2024
Просмотров: 117
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Лабораторная работа №1
Архитектура реляционных баз данных
Архитектура баз данных СУБД, которые поддерживают реляционную модель данных. Средства СУБД для создания базы данных и работы с ее объектами.
1. Архитектура баз данных
1.1. Архитектура баз данных MS SQL Server
MS SQL Server мощная полнофункциональная СУБД масштаба предприятия за умеренную цену. Эта система предназначена для управления базами данных и их анализа и позволяет быстро разрабатывать корпоративные бизнес-приложения, ориентированные на OLAP-анаиіз данных на основе использования многомерных хранилищ данных, электронную коммерцию и использование Internet для доступа к данным. Текущая коммерческая версия MS SQL Server 2008 R2. MS SQL Server Denali CTP3 это бесплатная редакция системы SQL Server. Она идеально подходит для обучения работе с базами данных, для создания небольших серверных приложений и для распространения независимыми поставщиками ПО. В этот выпуск включен ряд мощных функциональных возможностей, в частности служба отчетов SQL Server 2008 серверная платформа для создания и отправки классических и интерактивных отчетов и графическая среда SQL Server 2008 Management Studio Express, упрощающая управление базами данных. Обе указанные версии выдвигают множество требований к аппаратному и программному обеспечению, поэтому далее будет рассмотрена архитектура MS SQL Server 2000, как исходная для более новых версий.
1.1.1. Физическая архитектура баз данных MS SQL Server 2000.
Данные MS SQL Server сохраняются в базах данных, которые организованы в логические компоненты, видимые пользователю. SQL Server имеет несколько баз данных. Прежде всего, это четыре системных базы данных: master, model, tempdb и msdb. Кроме того, может быть определены несколько предназначенных для пользователя баз данных.
При подключении к SQL Server соединения ассоциируется с конкретной базой данных на сервере, которая называется текущей базой данных. Переключаться между базами данных из клиентского приложения можно с помощью SQL-инструкции USE <имя_базы_данных>. MS SQL Server начиная с версии 7.0 позволяет отсоединять базу данных от сервера и присоединять ее к другому серверу или опять к тому же самого.
Независимо от того, является база данных системной или предназначенной для пользователя, все они состоят из определенного набора файлов, которые являются индивидуальными для каждой базы данных. Каждая база данных имеет два типа файлов:
-
файли данных (data files), в которых сохраняются объекты базы данных (таблицы, индексы, ограничения и др.); -
журналы транзакций (transaction log files), куда MS SQL Server записывает все выполняемые транзакции перед тем, как записать их в базу данных.
Если компьютер, на котором установлен SQL Server, имеет множество физических дисков, то для повышения производительности настоятельно рекомендуется для каждой базы данных создать как минимум один файл на каждом физическом диске. Кроме того, по возможности 'следует располагать файлы данных и журнала транзакций на отдельных физических дисках.
Файлы данных бывают двух типов:
-
Рrimeгу File (основной или главный файл). Каждая база данных имеет один и только один главный файл. Если база данных включает только один файл данных, то этот файл будет основным. Основной файл предназначен для хранения всех системных таблиц, присутствующих в любой базе данных. В основном файле хранится информация о структуре базы данных, созданных в ней объектах, параметрах дополнительных файлов и файлов журнала транзакций. В системной базе данных Master содержится ссылка только на первичный файл, а описание остальных файлов размещается в основном файле самой базы данных. Помимо системной информации, в основном файле также могут храниться и пользовательские данные. По умолчанию основному файлу базы данных присваивается расширение mdf (Master Data File). -
Secondary File (вторичный или дополнительный файл). В отличие от основного файла, база данных может содержать множество дополнительных файлов или не содержать их вовсе. В дополнительных файлах может храниться только пользовательская информация. Хранение любой системной информации не допускается. В ходе эксплуатации базы данных администратор может добавлять новые или удалять уже существующие дополнительные файлы. Часто в базе данных создается несколько таких файлов с целью распределения данных среди множества физических дисков. По умолчанию для дополнительных файлов базы данных устанавливается разрешение ndf (secoNdary Data FiJe).
Файлы журнала транзакций бывают только одного типа - Transaction LogFile (файл журнала транзакций), служащего для хранения информации о транзакциях. В базе данных должен быть как минимум один файл журнала транзакций. Для ускорения обработки транзакций можно использовать несколько журналов транзакций, расположенных на разных физических дисках. SQL Server 2000 организует работу с ними таким образом, что обработка транзакций распределяется между различными физическими дисками, что приводит к повышению производительности. По умолчанию файлы журнала транзакций имеют расширение ldf (Log Data File).
Любой файл базы данных идентифицируется по двум именам:
-
OS File Name (физическое имя) имя файла на диске. Это имя необходимо, чтобы SQL Server 2000 мог вызывать функции Windows NT для работы с файлом. -
Logical File Name (логическое имя) имя, которое будет применяться в SQL Server 2000 для ссылки на соответствующий файл. Это имя можно рассматривать как псевдоним.
Имена обоих типов могут совпадать, но могут быть и различными. По умолчанию SQL Server 2000 предлагает совпадающие имена.
Группы файлов
Файлы базы данных в SQL Server 2000 объединяются в группы. Это делается в основном с целью сохранения данных целых таблиц или даже отдельных столбцов таблиц в определенных файлах. По умолчанию в базе данных создается единственная группа. И все данные располагаются в этой группе.
Группы файлов бывают следующих типов:
-
Primary File Group — основная группа файлов. Основной отличительной особенностью этой группы является то, что она содержит основной файл базы данных (primary file) и, как следствие, включает все системные данные. Поскольку в базе данных имеется лишь один основной файл, то и основная группа файлов может быть только одна. Другой особенностью основной группы файлов является то, что в нее автоматически включаются все файлы, не приписанные явно ни к какой иной группе. Основная группа может состоять только из одного файла (primary file) и всегда существует в базе данных. -
User File Group пользовательская группа файлов. Для объединения дополнительных файлов базы данных администратор может создать одну или более пользовательских групп. Состав файлов той или иной группы зависит от ее назначения. В принципе, в базе данных может не быть ни одной пользовательской группы файлов. -
Default File Group группа файлов по умолчанию. Это маркер, присваиваемый одной из созданных в базе данных групп. Основным назначением группы файлов по умолчанию является хранение данных, не приписанных явно ни к какой группе файлов. Создавая в базе данных новый объект, пользователь может явно указать, в какой группе файлов он должен храниться. Если же эта информация не указывается, то объект размещается в группе по умолчанию. Допускается конфигурирование только одной группы по умолчанию. Сразу же после создания базы данных в качестве группы по умолчанию назначается основная группа файлов. Впоследствии можно установить в качестве группы по умолчанию любую другую группу.
При хранении данных в группе файлов. SQL Server 2000 равномерно распределяет данные между всеми файлами в группе. То есть вместо того, чтобы заполнить сначала первый файл, потом второй и т. д., SQL Server 2000 по возможности записывает данные сразу во все файлы параллельно. Объем информации, сохраняемой в каждом файле группы, напрямую зависит от размера файла. Система хранения SQL Server 2000 действует таким образом, чтобы заполнение всех файлов в группе было примерно одинаковым.
Страницы
В виртуальной системе хранения SQL Server 2000 страница представляет собой минимальный блок, с которым может работать ядро системы. Каждый файл данных базы данных разбит на множество страниц. При выполнении операций ввода/вывода данные из файлов базы данных считываются по страницам, а не по строкам. Даже если пользователь обращается к единственной строке таблицы, то все равно будет считана целая страница..
Размер страницы в SQL Server 2000 составляет 8 Кбайт. Размер страницы определяет максимальный размер некоторых типов данных. Дело в том, что в общем случае данные одного столбца не могут распределяться между несколькими страницами. Поэтому размер столбцов символьных типов данных и двоичного ограничен 8000 байтами, а для символьных типов данных, поддерживающих стандарт Unicode, 4000 байт, т.к. один символ описывается 2 байтами.
Работать персонально с каждой страницей было бы неразумно с точки зрения производительности, особенно с учетом тех громадных объемов информации, которые может хранить SQL Server 2000. Поэтому для облегчения работы со страницами были созданы так называемые экстенты (extent), которые представляют собой группу из 8 страниц. Таким образом, общий объем экстента составляет 64 Кбайта. Экстент является минимальным элементом, который выделяется на уровне файла для хранения данных. Даже если необходимо сохранить всего одну страницу, то будет выделен новый экстент (если конечно страницу нельзя сохранить в одном из имеющихся экстентов).
Так как каждая страница имеет своего владельца, в качестве которого может выступать таблица, индекс или другой объект, экстент может содержать страницы, принадлежащие либо одному объекту, либо разным. От этого зависит тип экстента:
-
Uniform. Экстенты этого типа содержат только страницы, принадлежащие одному владельцу. Если для таблицы, представления и т. д. было выделено 8 страниц, то имеет смысл расположить их рядом, чтобы повысить скорость поиска, считывания и записи данных как на физическом, так и на логическом уровне. Для этого они размещаются в одном экстенте. Подобный подход позволяет снизить фрагментацию страниц в файле, т. к. страницы одного экстента располагаются рядом. -
Mixed. В экстентах данного типа могут содержаться страницы, принадлежащие разным владельцам. Это позволяет снизить непроизводительные расходы пространства в файлах базы данных. Если бы существовали только экстенты типа Uniform, то даже для небольших по объему данных, занимающих менее 1 страницы, пришлось бы выделять целые экстенты.
SQL Server поддерживает следующие типы страниц:
-
Data. Страницы этого типа используются для хранения собственно данных пользовательских и системных таблиц. Однако страницы типа Data не предназначена для хранения информации тяжелых столбцов — типов данных image, text и ntext.
Как видно, в начале каждой страницы располагается заголовок, в котором содержится системная информация — тип страницы, объем свободного пространства на странице, идентификационный номер объекта, которому принадлежит страница, и т. д. Размер заголовка равен 96 байтам, что составляет ровно половину объема, резервируемого на каждой страницы для системных нужд (8192— -8000=192=96x2). Указанный заголовок имеют страницы всех типов.
Непосредственно после заголовка располагаются данные столбцов таблицы. Каждая страница применяется для хранения строк только одной таблицы, для чего она разбивается на один или более блоков (слотов), каждый из которых используется для хранения отдельной строки. Размер слота, а следовательно и их количество на странице, зависят от размера соответствующей строки. При этом следует учитывать, что размер слота для одной и той же таблицы может быть и непостоянным. Подобная ситуация складывается при использовании типов данных переменной длины (varchar, nvarchar и varbinary). Конечно, скорость работы с такими строками снижается, но зато на странице выделяется ровно столько пространства, сколько занимают сами данные.
При поиске на странице нужной строки сервер должен учитывать, что строки могут иметь разную длину. Поэтому каждая страница содержит таблицу смещения строк (row offsets). Эта таблица располагается в конце страницы и содержит номер байта (от начала страницы, а не от начала области данных — конца заголовка), с которого начинается соответствующая строка. Порядок перечисления строк в таблице смещения зеркален их порядку на странице. То есть самая последняя запись соответствует самой первой строке, предпоследняя — второй и т. д. Подобный подход позволяет решить проблему с размером таблицы смещения — она может увеличиваться до тех пор, пока не столкнется с областью данных.
-
Index. Этот тип страниц применяется для хранения индексов таблиц и представлений. Такая информация включает значения индексируемых столбцов, для каждого из которых также указывается ссылка на исходную строку таблицы. -
Tex/Image. В страницах этого типа сохраняются данные столбцов таблиц, имеющих тип данных image, text или ntext. Особенностью хранения данных указанного типа является то, что они могут занимать более одной страницы. Таким образом, в общем случае для хранения значения столбца одного из указанных типов данных должно быть выделено более одной страницы, что невозможно при использовании страниц Data. Для хранения одного значения столбца image, text или ntext выделяется сразу целая страница. Последующее пространство также выделяется страницами. -
Global Allocation Map (GAM). Этот и последующие типы страниц являются чисто служебными. Страницы рассматриваемого типа содержат информацию об использовании экстентов.