Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 Базы данных.doc
Скачиваний:
20
Добавлен:
18.02.2016
Размер:
258.05 Кб
Скачать
  1. Базы данных

  1. Основные понятия баз данных и модели данных.

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

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

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

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

Тип поля определяет тип данных, которые могут содержаться в данном поле.

Размер поля определяет предельную длину данных, которые могут размещаться в данном поле.

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

Маска ввода определяет форму, в которой вводятся данные в поле.

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

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

СУБД имеет два режима работы: проектировочный и пользовательский. Первый режим предназначен для создания или изменения структуры базы и создания ее объектов. Во втором режиме происходит использование ранее подготовленных объектов для наполнения базы или получения данных из нее.

Таблицы - это основные объекты любой базы данных. В таблицах хранятся все данные, имеющиеся в базе. Таблицы хранят структуру базы (поля, их типы и свойства).

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

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

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

Ядром любой БД является модель данных. Модель данных представляет собой совокупность структур данных и операций их обработки. Существует три модели данных: иерархическая, сетевая, реляционная. Эти модели различаются способом представления взаимосвязей между объектами. Модель данных - указание множества допустимых информационных конструкций, операций над данными и множества ограничений для хранимых значений данных.

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

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

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

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

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

Уровень 1

Уровень 2

Уровень 3

Между главным и подчинёнными объектами устанавливается связь 1: многим. Узел является совокупностью атрибутов описывающих объект.

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

- простота, естественность иерархического принципа;

- независимость данных;

- минимальный расход памяти (среди всех моделей).

Недостатки:

- не универсальность (модель применима не для всех вариантов взаимосвязи данных, реализация может быть связана с повышением избыточности в базе данных);

- допустимость только навигационного принципа доступа к данным;

- доступ к данным производится только через корневое отношение.

Сетевая модель данных определяется в тех же терминах, что и иерархическая. Она состоит из множества записей, которые могут быть владельцами или членами групповых отношений. Связь между записью-владельцем и записью-членом также имеет вид 1:N. В сетевой модели данных понятие главного и подчинённого объектов несколько расширены: любой объект может быть одновременно и главным и подчинённым. Это означает, что каждый объект может участвовать в любом числе взаимосвязей. Основное различие этих моделей состоит в том, что в сетевой модели запись может быть членом более чем одного группового отношения. Согласно этой модели каждое групповое отношение именуется и проводится различие между его типом и экземпляром. Тип группового отношения задается его именем и определяет свойства общие для всех экземпляров данного типа. Экземпляр группового отношения представляется записью-владельцем и множеством (возможно пустым) подчиненных записей. При этом имеется следующее ограничение: экземпляр записи не может быть членом двух экземпляров групповых отношений одного типа.

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

- универсальность;

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

Недостатки:

- высокая сложность;

- допустимость только навигационного принципа доступа к данным.

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

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

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

Наиболее распространенным средством моделирования данных являются диаграммы "сущность-связь" (ERD). С их помощью определяются важные для предметной области объекты (сущности), их свойства (атрибуты) и отношения друг с другом (связи). ERD непосредственно используются для проектирования реляционных баз данных.

Нотация ERD была впервые введена П. Ченом (Chen) и получила дальнейшее развитие в работах Баркера.

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

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

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

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

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

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

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

Следующим шагом моделирования является идентификация связей.

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

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

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

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

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

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

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

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

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

С учетом имеющейся информации дополним построенную ранее диаграмму (рисунок 2.25).

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

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

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

Рекурсивная связь: сущность может быть связана сама с собой

Неперемещаемые (non-transferrable) связи: экземпляр сущности не может быть перенесен из одного экземпляра связи в другой

  1. Реляционные отношения между таблицами баз данных.

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

Существует три вида связей м/д таблицами:

  • один к одному

  • один ко многим

  • многие ко многим

Один ко многим, когда одной записи родительской таблицы может соответствовать несколько записей в дочерней таблице. Различают 2 разновидности 1 ко многим:

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

  • подобное требование не носит жесткого характера.

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

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

Многие ко многим имеет место тогда, когда: записям родительской таблицы может соответствовать больше 1-й записи дочерней таблицы; записям дочерней таблицы может соответствовать больше 1-ой записи в родительской таблице.

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

  1. Ключевые поля в таблицах баз данных и индексирование баз данных.

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

  • однозначную идентификацию записей таблицы;

  • ускорение выполнения запросов к БД;

  • установление связи между отдельными таблицами БД;

  • использование ограничений ссылочной целостности.

Ключ также называют первичным или первичным (главным) индексом.

Общие правила построения ключа:

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

  • Ключ должен быть достаточным и неизбыточным, т.е. не содержать поля, которые можно удалить без нарушения уникальности ключа.

  • В состав ключа не могут входить поля некоторых типов, например, графическое или поле комментария.

РК – поле однозначно идентифицирующих запись, значение одного ключа в таблице БД должно быть уникальным, т.е. в таблице не должно существовать 2-ух и более записей с одинаковым значением первичного ключа. PК должен быть min-но достаточным, в нем не должно быть поле удаления, которое из первичного ключа не отразиться на его уникальности. В качестве ключа: № серия паспорта, № -двигателя, наз-е фак-та, каф-ры, № - почт.адрес.

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

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

Использование индекса обеспечивает:

  • увеличение скорости доступа (поиска) к данным;

  • сортировку записей;

  • установление связи между отдельными таблицами БД;

  • использование ограничений ссылочной целостности.

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

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