1. Архитектура баз данных




Название1. Архитектура баз данных
страница1/4
Дата публикации05.04.2013
Размер0.54 Mb.
ТипЛабораторная работа
uchebilka.ru > Информатика > Лабораторная работа
  1   2   3   4


Лабораторная работа №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 мог вызывать функции операционной системы для работы с файлом.

  • ^ 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 (текст в формате Unicode).

В начале каждой страницы типа Data располагается заголовок, в котором содержится системная информация — тип страницы, объем свободного пространства на странице, идентификационный номер объекта, которому принадлежит страница, и т. д. Размер заголовка равен 96 байтам, что составляет ровно половину объема, резервируемого на каждой страницы для системных нужд (8192-8000=192=96x2). Указанный заголовок имеют страницы всех типов.

Непосредственно после заголовка располагаются данные столбцов таблицы. Каждая страница применяется для хранения строк только одной таблицы, для чего она разбивается на один или более блоков (слотов), каждый из которых используется для хранения отдельной строки. Размер слота, а следовательно и их количество на странице, зависят от размера соответствующей строки. При этом следует учитывать, что размер слота для одной и той же таблицы может быть и непостоянным. Подобная ситуация складывается при использовании типов данных переменной длины (varchar, nvarchar и varbinary). Конечно, скорость работы с такими строками снижается, но зато на странице выделяется ровно столько пространства, сколько занимают сами данные.

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

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

  • Tex/Image. В страницах этого типа сохраняются данные столбцов таблиц, имеющих тип данных image, text или ntext. Особенностью хранения данных указанного типа является то, что они могут занимать более одной страницы. Таким образом, в общем случае для хранения значения столбца одного из указанных типов данных должно быть выделено более одной страницы, что невозможно при использовании страниц Data. Для хранения одного значения столбца image, text или ntext выделяется сразу целая страница. Последующее пространство также выделяется страницами.

  • ^ Global Allocation Map (GAM). Этот и последующие типы страниц являются чисто служебными. Страницы рассматриваемого типа содержат информацию об использовании экстентов.

Как отмечалось, экстент может содержать страницы, принадлежащие либо одному объекту, либо разным. В этой связи возникает вопрос, как сервер находит свободные страницы и восстанавливает цепочку страниц, используемых для хранения данных конкретного объекта? При этом необходимо учитывать, что страницы одного и того же владельца могут располагаться более чем одном файле, что еще более усложняет восстановление цепочки. Эта проблема решается с помощью страниц GAM, которые представляют собой битовое поле, каждый бит которого соответствует одному экстенту. Так как размер страницы равен 8 Кбайт, то одна страница GAM может описать 64 000 экстентов. Соответственно, одна страница GAM охватывает область немногим менее 4 Гбайт (64 000 х 8 х 8192).

Итак, примерно на каждые 4 Гбайта (точнее на 3,95 Гбайта) данных необходимо выделить в файле данных две страницы типа GAM, общий размер которых составит всего 16 Кбайт. Такая плотность информации позволяет хранить в оперативной памяти информацию использования экстентов, что позволяет быстро находить свободное пространство для записи данных.

  • ^ Page Free Space (PFS). Страницы данного типа содержат информацию о наличии свободного пространства на страницах файла.

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

Информация о степени заполнения страниц (не экстентов) хранится в страницах типа PFS. Каждая такая страница хранит информацию о количестве свободного пространства на 8000 страниц типа Data, Text/Image и Index. Таким образом, каждая страница описывается 1 байтом. Степень заполнения каждой страницы выражается в процентах, но не точно, а примерно, и указывается с помощью битов, каждому из которых соответствует определенное состояние страницы: 0%, 1-50%, 51-80%, 81-95%, 96-100%

Страницы PFS предназначены для быстрого поиска страниц, имеющих достаточно свободного пространства для хранения данных, без сканирования самих страниц.
  1   2   3   4

Добавить документ в свой блог или на сайт

Похожие:

1. Архитектура баз данных iconЛекция Введение в теорию баз данных Лекция посвящена рассмотрению...
Цель: выявить основные структурные элементы баз данных и основные принципы, используемые при их разработке

1. Архитектура баз данных iconЛекция Введение в базы данных
Обсуждается состав пользователей и распределение обязанностей в информационных системах с базами данных. Дается обзор моделей баз...

1. Архитектура баз данных iconКурсовая работа тема: «Защита баз данных. Архитектура защиты в Access.»

1. Архитектура баз данных iconЛекция 19. Основные направления развития технологий баз данных
В данной лекции рассматривается история развития технологии обработки данных, даются характеристики постреляционным, объектно-ориентированные...

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

1. Архитектура баз данных iconЛекция 1 (2 часа)
Базы данных являются одной из основных составляющих информационных технологий предприятий. В настоящее время без применения баз данных...

1. Архитектура баз данных iconПроектирование реляционных баз данных с использованием нормализации
В теории реляционных баз данных обычно выделяется следующая последовательность нормальных форм

1. Архитектура баз данных icon3. Лекция: Введение в реляционную модель данных Вопросы: Основные понятия реляционных баз данных
Эдгаром Коддом. В последние десятилетия этот подход является наиболее распространенным (с оговоркой, что в называемых в обиходе реляционными...

1. Архитектура баз данных iconКурс лекций по дисциплине "Организация баз данных"
В настоящем курсе рассматриваются вопросы организации баз данных (БД). Это важная тема, без основательного знакомства с которой,...

1. Архитектура баз данных iconКурс лекций по дисциплине "Организация баз данных"
В настоящем курсе рассматриваются вопросы организации баз данных (БД). Это важная тема, без основательного знакомства с которой,...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
uchebilka.ru
Главная страница


<