Физическая схема базы данных

Физическая схема базы данных

Информационная система (ИС) — это система обработки данных какой-либо предметной области со средствами накопления, хранения, обработки, преобразования, передачи, обновления информации с использованием компьютерной и другой техники[1]. В ИС выполняются следующие процессы:

? ввод информации из внешних и внутренних источников;

? обработка входящей информации;

? хранение информации для последующего ее использования;

? вывод информации в удобном для пользователя виде [2].

Основа ИС, объект ее обработки — база данных (БД). База данных — это совокупность сведений о конкретных объектах реального мира в какой-либо предметной области или разделе предметной области[3]. Таким образом, БД выполняет функцию хранения информации в ИС.

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

? информация о работниках;

? информация об организации;

? информация о документах;

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

Логическая схема БД

информационный система интерфейс сервер

Логическая модель БД описывает понятия предметной области, их взаимосвязь, а также ограничения на данные, налагаемые предметной областью без учета её реализации в конкретной СУБД [4].

Основным средством разработки логической модели данных в настоящий момент являются различные варианты ER-диаграмм (Entity-Relationship, диаграммы сущность-связь).

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

Рисунок 1 — Логическая схема БД

Таблица 1 — Описание сущностей логической модели данных

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

Описывает организацию в которой работают сотрудники. Содержит атрибуты: название, адрес. Связана связью «один к одному» с сущностью «Employee».

Справочник должностей. Содержит атрибут: должность (название должности).

Описывает все документы и кто из работников над ними работает. Содержит атрибуты: название, тип документа, работник. Связана связью «один к одному» с сущностью Employee и связью «один к одному» с сущностью DocumentType.

Справочник типов документов. Содержит атрибут тип документа.

Физическая схема БД

Физическая модель данных оперирует категориями, касающимися организации внешней памяти и структур хранения, используемых в данной операционной среде [5]. В настоящий момент в качестве физических моделей используются различные методы размещения данных, основанные на файловых структурах: это организация файлов прямого и последовательного доступа, индексных файлов и инвертированных списков.

На рисунке 2 представлена физическая схема БД. На схеме изображены сущности, а также указаны типы данных. Так как сущности «Document_type» и «Employee» связаны с сущностью «Document» связью «один к одному», в физической схеме добавляются сущности-связки «Document_typeDocument»и «EmployeeDocument». Сущности-связки содержат внешние ключи, обеспечивающие вид связи «один к одному».

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

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

Физическая модель строится на основе логической с учетом ограничений, накладываемых возможностями выбранной СУБД (в данном случае — MS SQL Server 2012).

Имена

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

Типы данных

Для каждого атрибута необходимо определить тип данных его значений (табл. 2.2).

Связи

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

Приведенные три варианта физической модели различаются способами реализации наследования:

— миграция первичного ключа и неключевых атрибутов в иерархии от потомков к предку (рис. 2.11);

— миграция первичного ключа и неключевых атрибутов в иерархии от предка к потомкам (рис. 2.12);

— замена иерархии наследования идентифицирующими связями (рис. 2.13).

Преобразование связи «многие ко многим» (таблицы «Поставка» и «Способ доставки») включает создание новой таблицы-развязки и двух новых связей «один ко многим» от старых таблиц к новой.

Таблица 2.2. Основные типы данных в MS SQL Server
Тип данных Описание
Целые числа
bigint Целочисленные данные от -2 63 до 2 63 -1
int Целые числа от -2147483648 до 2147483647
smallint Целые числа от -32768 до 32767
tinyint Целые числа от 0 до 255
Вещественные числа
decimal (n, m) / numeric (n, m) Числа с фиксированной точностью (n) и масштабом (m). Максимальная точность от -1038-1 до 1038-1
float Приближенные числовые данные от -1,79Е+308 до 1,79Е+308
real Частный случай типа float, от -3,40Е+38 до 3,40Е+38
money Количество денежных единиц от -2 63 до 2 63 с точностью до четырех десятичных позиций
smallmoney Денежные единицы от -214748,3648 до 214748,3647
Дата и время
datetime Данные о дате и (или) времени, которые относятся к периоду с 1 января 1753 года по 31 декабря 9999 года, определяемые с точностью до трех сотых секунды
smalldatetime Данные о дате и (или) времени, которые относятся к периоду с 1 января 1900 года по 6 июня 2079 года, определяемые с точностью до одной минуты
date Дата с точностью до дня, занимает 3 байта
Символьные (строки)
char (n) Символьные данные фиксированной длины. Значения данных с длиной короче заданной дополняются пробелами. Максимальная длина – 8000 символов
varchar (n) Символьные данные переменной длины. Максимальная длина – 8000 символов. Длина, заданная ключевым словом max, позволяет определять данные объемом до 2 31 байтов
Продолжение табл. 2.2
Тип данных Описание
nchar (n) Символьные данные в кодировке Unicode фиксированной длины. Максимальное заданное значение длины может составлять 4000 символов
nvarchar (n) Символьные данные в кодировке Unicode переменной длины. Максимальное заданное значение длины может составлять 4000 символов, но для обозначения длины можно использовать ключевое слово max, что позволяет определять столбцы с символьными данными объемов до 2 31 байт
text / ntext Устаревший тип данных, вместо него следует использовать тип varchar (max) / nvarchar (max)
binary Двоичные данные фиксированной длины с максимальной длиной 8000 байт
varbinary Двоичные данные переменной длины с максимальной указанной длиной 8000 байт, но для обозначения длины можно использовать ключевое слово max, что позволяет определять столбцы типа LOB, имеющие объем до 2 31 байт
image Устаревший тип данных, вместо него следует использовать тип данных varbinary (max)
table Данные типа таблицы, предназначены для использования в работе с результирующими наборами. Как правило, они передаются из пользовательских функций. Применение данных типа table в определениях таблиц не допускается
sql_variant Данные различных типов
xml Определяет символьное поле как содержащее данные XML
Timestamp / rowversion Специальное значение, которое является уникальным в пределах данной базы данных. Устанавливается автоматически
uniqueidentifier Специальный глобально уникальный идентификатор (GUID). Уникальность любого идентификатора GUID в пространстве и времени является гарантированной.
Читайте также:  Какую видеокарту выбрать для игр 2018

Рис. 2.11. Физическая модель базы данных: реализация наследования через миграцию потомков в предка

Рис. 2.12. Физическая модель базы данных: реализация наследования через миграцию предка в потомков

Рис. 2.13. Физическая модель базы данных: реализация наследования через замену иерархии идентифицирующими связями

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

Контрольные вопросы

1. Дайте определение реляционной модели базы данных.

2. Какие ограничения целостности поддерживаются на уровне реляционной модели?

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

4. Что такое первичный ключ нормализованного отношения? Определите свойства первичного ключа.

5. Как реализуются связи между сущностями в реляционной модели?

6. Что такое логическая модель базы данных?

7. Что такое физическая модель базы данных?

8. Что такое «зависимая сущность» в нотации IDEF1X?

9. Какие отношения допустимы в нотации IDEF1X?

10. Каким образом определяется степень связи в нотации IDEF1X?

11. Какие отношения между сущностями отсутствуют в физической модели базы данных в нотации IDEF1X?

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

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

14. Как реализуется связь «многое ко многим» на уровне физической модели реляционной базы данных?

15. Как реализуется отношение «наследование» на уровне физической модели реляционной базы данных?

16. Какие варианты реализации наследования на уровне физической модели базы данных существуют?

17. Приведите пример справочника в разработанной модели базы данных.

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Только сон приблежает студента к концу лекции. А чужой храп его отдаляет. 9216 — | 7812 — или читать все.

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

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

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

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

  • • высокая степень участия ФС ОС (FoxPro);
  • • средняя степень участия ФС ОС (ADABAS);
  • • низкая степень (Oracle, MS Access).

Физическая структура БД FoxPro.

Здесь используется про- vv- ] стейшее решение — каждая таблица БД (отношение) размещается в отдельном файле ОС — файле данных, который состоит из заголовка, содержащего описание структуры таблицы и ее состояния, и области данных, занятой собственно информацией данной таблицы.

Всякая БД в FoxPro должна состоять хотя бы из одного файла данных, однако, кроме них, в ней может содержаться множество служебных файлов различных типов (рис. 4.7, а).

Рис. 4.7. Табличная БД в СП FoxPro: а — физическая структура БД; б — навигация в таблице

Основные типы файлов и расширения. В БД FoxPro предусмотрены следующие типы файлов:

  • • файл данных, файл базы данных (database, dbf) содержит упорядоченный набор определенных данных (таблица реляционной БД);
  • • индексный файл (index) управляет порядком доступа к записям в конкретной базе данных и их обработки. Индексные файлы позволяют изменить порядок, в котором записи файла данных будут появляться на экране, порядок, в каком они будут напечатаны, и т. д., однако фактический порядок данных в базе данных при этом не изменится. Расширения — . idx (компактный индекс), .cdx (составной индекс). Одному файлу БД может соответствовать несколько существующих и/или активных индексных файлов. Те- кущий/активный индекс — открытый индексный файл, выбранный для управления текущим файлом БД; выборка данных из БД осуществляется по возрастанию ключа (индексного выражения, вычисляемого по полям текущего файла), соответствующего текущему индексу;
  • • файл связанных данных, мемо-поля (memo, fpt) содержит данные, сохраняемые в мемо-полях, являющихся частью базы данных. Информация из мемо-полей не сохраняется в файле данных (расширение .dbf), вместо этого она сохраняется в файле с тем же именем с расширением . fpt;
  • • формат экрана (screen, frt) содержит описание экрана пользователя (описание порядка выдачи данных на экран монитора или чтения данных с экрана), которое определяет форматы, используемые для ввода, редактирования и просмотра данных;
  • • формат отчета (report, frx) содержит описание отчета. Это описание определяет, какую информацию содержит отчет, длину строки, ширину страницы, имена выдаваемых полей, заглавие отчета, имена колонок, печать итогов при прерывании и т. д. Это описание отчета используется для вывода отчета на экран или другое заданное устройство вывода информации;
  • • командный (пакетный, программный, program, prg) содержит в каждой строке одну из команд языка FoxPro. Эти файлы могут быть созданы и отредактированы с использованием текстового редактора FoxPro или любого другого;
  • • текстовый файл (text, txt) содержит текстовые данные в коде ASCII, расширение .txt добавляется автоматически, когда создается файл текстовых данных. Это расширение также могло быть использовано с текстовыми файлами, созданными с помощью текстового редактора FoxPro, но расширение . txt должно быть определено, когда файл создан с помощью другого редактора;
  • • резервная копия файла (file backup, bak) содержит предыдущую версию текста, программы или файла данных.
Читайте также:  Что лучше мультиварка или мультикухня

Навигация в таблице БД. Рассмотрим пример БД, реализованной в рамках системы программирования FoxPro. Здесь имеются следующие основные объекты:

  • • файл данных (file) соответствует таблице или отношению реляционных БД;
  • • элементом файла является запись (record) или агрегат разнотипных данных, описывающих объект (точнее, экземпляр объекта). В реляционных БД это — строка таблицы или экземпляр отношения. Записи имен не имеют, но им соответствуют физические номера в файле;
  • • элементом записи (здесь — неделимым) является поле — данное, описывающее какой-либо аспект (или атрибут, реквизит, свойство) объекта. Поля имеют имена. В реляционных БД это — столбец таблицы или атрибут отношения. Разные файлы могут иметь поля с одинаковыми именами, но лучше этого избегать. Иногда вводится понятие домена или совокупности допустимых значений атрибута (например, поле sex может иметь только два значения — «м», «ж», поле year — только четырехразрядные числа, начинающиеся с 19, если в БД речь идет о родившихся в XX в. и пр.);
  • • открытый (opened) файл — файл, доступный в данный момент данному приложению. Открытие файла создает в памяти буфер, в который с внешнего накопителя считываются записи. В разные моменты времени могут быть открыты различные множества файлов, количество открытых файлов обычно стараются ограничить, чтобы не расходовать оперативную память;
  • • активный или текущий (current, active) — тот из открытых файлов, который обрабатывается в данный момент времени. Все операции над файлами (добавление записи; удаление записи; редактирование записи) адресуются именно к активному файлу;
  • • активная или текущая запись — запись открытого файла (рис. 4.7, б), доступная для обработки в данный момент времени (редактирование, ввод полей, корректировка, удаление). Указатель текущей записи есть физический номер доступной записи. Текущая запись находится в оперативной памяти. При переходе к другой записи данного файла указатель записи изменяется, и содержание оперативной памяти замещается содержимым новой текущей записи. Подразумевается, что если в командах или программах (аргументы функций и выражений) фигурируют имена некоторых полей, то их значения соответствуют содержанию текущей записи текущего файла;
  • • каждый файл и каждая запись могут в широких пределах обрабатываться независимо друг от друга (за исключением ситуаций проверки соответствия записей друг другу или целостности БД;
  • • навигация в БД — последовательность действий приложения (программы или пользователя в процессе диалога), при которой осуществляются изменения состояния файлов и записей (открытых, текущих файлов, активных записей). Изменение содержимого файлов при навигации необязательно. В процессе навигации просматривается или редактируется содержимое БД.

Ж rloifk «с ТГ ) Ф изическая структура БД A DAB AS включа- /ЗДШОНЭ U ет пять наборов данных на МД: три обяза- ifbивае ns тельных (asso, data, work) и два вспомогательных, используемых утилитами системы (рис. 4.8).

Ассоциатор (ASSO) — часть физической БД, используемая ядром системы для определения адресов записей.

Ассоциатор включает следующие компоненты:

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

Рис. 4.8. Физическая структура БД ADABAS

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

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

Область хранения данных (data) — часть БД, используемая для размещения хранимых записей. Записи хранятся в сжатом формате в виде строк переменной длины. Сжатие данных скрыто от пользователя, поскольку СУБД выдает поля в представлениях пользователя. Принцип упаковки данных: исключение замыкающих пробелов в текстовых полях и ведущих нулей в текстовых полях.

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

Рабочая область (work) используется для размещения промежуточных результатов при работе Ядра системы.

Временные необязательные наборы (temp и sort) используются для сортировки дескрипторов и размещения промежуточных данных при работе утилит.

^рд ^-| р* Структура базы данных Oracle может рассматриваться как на физическом, так и на логическом уровнях (рис. 4.9).

Физическая структура базы данных Oracle определяется файлами операционной системы, из которых состоит база данных. Каждая БД Oracle может состоять из файлов трех типов: одного

Рис. 4.9. Элементы логической и физической структур БД Oracle или нескольких файлов данных, двух или более файлов журнала отката и одного или нескольких управляющих файлов. Файлы базы данных предоставляют физическую память для информации БД.

Табличные пространства. Логическая структура базы данных Oracle включает:

  • • одно или несколько табличных пространств;
  • • объекты схем базы данных (таблицы, подсхемы, индексы, кластеры, последовательности, хранимые процедуры)

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

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

Связи между базами данных, табличными пространствами и файлами данных иллюстрируются на рис. 4.9:

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

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

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

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

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

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

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

Формат блока данных Oracle один и тот же независимо от того, содержит ли блок данные таблицы, индекса или кластера (см. рис. 4.9) и включает следующие составляющие:

  • • заголовок (общий и переменный) — содержит общую информацию блока, такую как адрес блока и тип сегмента (сегмент данных, сегмент индекса или сегмент отката). Заголовок составляет накладные расходы блока, которые имеют переменный размер. В среднем, суммарные накладные расходы фиксированной и переменной частей блока составляют от 84 до 107 байт;
  • • оглавление таблиц — часть блока, которая содержит информацию о том, какие таблицы имеют строки в этом блоке;
  • • оглавление строк — содержит информацию о действительных строках в блоке (включая адреса каждой порции строки в области данных строк). После того, как в оглавлении строк распределено пространство, это пространство не освобождается при удалении строки. Поэтому блок, который сейчас пуст, но когда-то содержал до 50 строк, по-прежнему имеет 100 байт, распределенных в заголовке для оглавления строк. Это пространство используется повторно лишь тогда, когда в блок вставляются новые строки;
  • • данные строк — эта порция блока содержит данные таблицы или индекса. Строки могут переходить из блока в блок;

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

Ссылка на основную публикацию
Adblock detector