ОСНОВЫ ПРОЕКТИРОВАНИЯ БАЗ ДАННЫХ.ppt
- Количество слайдов: 39
ОСНОВЫ ПРОЕКТИРОВАНИЯ БАЗ ДАННЫХ
ОСНОВНЫЕ ПОНЯТИЯ И ОПРЕДЕЛЕНИЯ База данных (БД) — именованная совокупность данных, отражающая состояние объектов и их отношений в рассматриваемой предметной области. Система управления базами данных (СУБД) — совокупность языковых и программных средств, предназначенных для создания, ведения и совместного использования БД многими пользователями.
Классификация баз данных Базы данных Централизованная Файл-сервер Распределенная Клиент-сервер
Централизованная база данных При использовании этой технологии база данных располагается на одном компьютере, который может даже не иметь поддержки сети и работать автономно. В этом случае работа с базой данных возможна только локально. Если же компьютер работает в сети, то доступ к информации может осуществляться удаленно с других компьютеров сети. назад
Файл-сервер Эта архитектура централизованных баз данных с сетевым доступом предполагает назначение одного из компьютеров сети в качестве выделенного сервера, на котором будут храниться файлы централизованной базы данных. назад
Клиент-сервер В основе этой концепции лежит идея о том, что помимо хранения файлов базы данных, центральный сервер должен выполнять и основную часть обработки данных. назад
Распределенная база данных Базы данных этого типа располагаются на нескольких компьютерах. Информация на этих компьютерах может пересекаться и даже дублироваться. Для управления подобными базами данных предназначена система управления распределенными базами данных (СУРБД).
Трехуровневая модель СУБД (ANSI) Уровень внешних моделей — самый верхний уровень, где каждая модель имеет свое «видение» данных. Этот уровень определяет точку зрения на БД отдельных приложений. Каждое приложение видит и обрабатывает только те данные, которые необходимы именно этому приложению. Концептуальный уровень — центральное управляющее звено, здесь база данных представлена в наиболее общем виде, который объединяет данные, используемые всеми приложениями, работающими с данной базой данных. Физический уровень — собственно данные, расположенные в файлах или в страничных структурах, расположенных на внешних носителях информации.
Схема прохождения запроса к БД 1. Пользователь посылает СУБД запрос на получение данных из БД. 2. Анализ прав пользователя и внешней модели данных, соответствующей данному пользователю, подтверждает или запрещает доступ данного пользователя к запрошенным данным. 3. В случае запрета на доступ к данным СУБД сообщает пользователю об этом (стрелка 12) и прекращает дальнейший процесс обработки данных, в противном случае СУБД определяет часть концептуальной модели, которая затрагивается запросом пользователя. 4. СУБД получает информацию о запрошенной части концептуальной модели. 5. СУБД запрашивает информацию о местоположении данных на физическом уровне (файлы или физические адреса). 6. В СУБД возвращается информация о местоположении данных в терминах операционной системы. 7. СУБД вежливо просит операционную систему предоставить необходимые данные, используя средства операционной системы. 8. Операционная система осуществляет перекачку информации из устройств хранения и пересылает ее в системный буфер. 9. Операционная система оповещает СУБД об окончании пересылки. 10. СУБД выбирает из доставленной информации, находящейся в системном буфере, только то, что нужно пользователю, и пересылает эти данные в рабочую область пользователя.
Модели данных Модель данных (data model) — это совокупность структур данных и операций их обработки. Модель данных включает в себя структуры данных, операции их обработки и ограничения целостности. Использующиеся на практике модели: Иерархическая Сетевая Реляционная
Иерархическая модель данных Эта модель данных представляет собой совокупность связанных элементов, образующих иерархическую структуру. Связанные объекты образуют перевернутый граф (перевернутое дерево). К основным понятиям иерархической модели данных относятся уровень, элемент (или узел) и связь. Узлом называется совокупность атрибутов данных, описывающих некоторый объект. Каждый узел связан с одним узлом более высокого уровня и с любым количеством (в т. ч. и с нулем) узлов нижнего уровня. Исключением является узел самого высокого уровня, который не связан ни с одним узлом более высокого уровня. Этот узел называется корнем дерева. Подчиненные узлы располагаются на втором, третьем и т. д. уровнях. Количество деревьев в базе данных определяется количеством корней деревьев. К каждой записи базы данных существует единственный путь от корневой записи.
Пример иерархической БД
Сетевая модель данных В основе этой модели лежат те же понятия, что и в основе иерархической модели данных — узел, уровень и связь. Однако существенным отличием сетевой модели данных является то, что узел может быть связан с любым другим узлом, в т. ч. лежащим на уровне, не относящемся непосредственно к уровню исходного узла.
Пример взаимосвязи экземпляров двух наборов
Реляционная модель Каждая реляционная таблица представляет собой двумерный массив и обладает следующими свойствами: любой элемент таблицы является минимальным элементом данных; элементы в пределах одного столбца имеют одинаковый тип (числовой, символьный и т. д. ); все столбцы одной таблицы должны иметь уникальное имя; в таблице отсутствуют совпадающие строки; порядок следования строк и столбцов в таблице может быть произвольным.
Соотношение основных понятий реляционного подхода
Структурные элементы Объект или сущность (entity) — это нечто, существующее в реальном мире и различимое, что имеет название и имеется способ отличать один подобный объект от другого. Атрибут (attribute)— это некоторый показатель, характеризующий объект и принимающий для каждого конкретного объекта индивидуальное значение (текстовое, числовое и т. п. ).
Поле (field) — это минимальная неделимая структура организации данных. Для каждого поля базы данных разработчик должен задать следующие значения: • уникальное в пределах отношения имя (name); • тип данных, которые будут храниться в поле (числовой, символьный, логический и т. д. ); • максимальная длина (или размер), который могут иметь данные, хранящиеся в поле; • дополнительные характеристики (например, для числовых данных — точность, для символьных — формат, и т. д. ).
Множество логически связанных полей образуют запись (record). Запись является ничем иным, как строкой таблицы. Экземпляр записи — это отдельная реализация записи, содержащая конкретные значения ее полей. Множество экземпляров записи одной структуры образуют таблицу (table). При описании таблицы указывается последовательность расположения полей и их основные характеристики (имя, длина и точность). Количество записей в таблице может меняться.
Домен — это множество атомарных значений одного типа. В общем виде домен определяется заданием набора значений некоторого типа. Все значения атрибутов, входящих в домен, должны входить в заданный набор. Домен атрибута — это множество значений данного атрибута.
Ключом (key) называется множество атрибутов, задание значений которых позволяет однозначно определить значения остальных атрибутов таблицы. Используется как идентификатор для того, чтобы иметь возможность связать таблицы, позволяет уникально идентифицировать любую строку таблицы.
Множество атрибутов отношения является возможным ключом отношения тогда и только тогда, когда выполняется два независимых от времени условия: Уникальность. В любой момент времени никакие два кортежа не имеют одинаковых значений для всех атрибутов, входящих в возможный ключ. Остальные атрибуты могут иметь произвольные значения. Минимальность. Ни один из атрибутов не может быть исключен из ключа без нарушения уникальности возможного ключа. Это означает, что в ключ разрешается вносить только минимальный набор атрибутов, который позволяет идентифицировать каждую строку отношения.
Терминология баз данных Теория БД Реляционные БД SQL Server 2000 Сущность (Entity) Отношение (Relation) Таблица (Table) Кортеж (Tuple) Запись (Record) Строка (Row) Атрибут (Attribute) Поле (Field) Столбец, колонка (Column)
Требования к проектированию реляционных баз данных Каждая таблица в базе данных имеет уникальное имя в пределах этой базы данных. Это позволяет уникально идентифицировать данные в таблице. Все строки в таблице однотипны, т. е. количество, набор и последовательность полей в каждой строке одной таблицы одинаковы. Кроме того, количество значений в строке также фиксировано. Строки таблицы обязательно отличаются друг от друга хотя бы единственным значением. Каждому столбцу таблицы присваивается уникальное в пределах таблицы имя. Любой из столбцов служит для хранения данных строго определенного типа (даты, числового, символьного, денежного и т. п. ). При обращении к данным можно свободно обращаться к любой строке или столбцу таблицы. Сами данные не налагают никаких ограничений на последовательность обращений к ним. Кроме того, ни одна строка таблицы не зависит от значений, хранимых в другой строке. Полное информационное содержание базы данных зависит только от значений самих данных и такое представление является единственным. То есть не существует никаких дополнительных конструкций, которые бы определяли связь между таблицами или значение данных.
Нормализация данных Нормализация — это процесс приведения структур данных в состояние, обеспечивающее лучшие условия выборки, включения, изменения и удаления данных. Это достигается разбиением одной большой таблицы на две более мелкие таблицы. Конечной целью нормализации является получение такого проекта базы данных, в котором каждый факт появляется лишь в одном месте, т. е. исключена избыточность информации. Это делается не столько с целью экономии памяти, сколько для исключения возможной противоречивости хранимых данных.
Таблица, в которую включены все интересующие атрибуты, называется универсальным отношением. Применение универсального отношения связано с рядом проблем: Избыточность. Информация во многих столбцах многократно повторяется. Чем больше данных будет храниться в базе данных, тем больше информации дублируется и тем выше непроизводительные затраты. Потенциальная противоречивость (аномалии обновления). Вследствие наличия множества копий одних и тех же данных возможна ситуация, когда одна часть избыточных копий данных будет изменена, а другая — нет. Например, если на одном из факультативов меняется преподаватель, то необходимо изменить информацию во всех строках, относящихся к этому факультативу. Иначе дело будет выглядеть так, что один факультатив ведут два преподавателя. Аномалии включения. В базу данных нельзя включить студента, если он не посещает ни один факультатив. Однако часто бывает, что необходимо учесть все данные, которые могут потенциально использоваться. Аномалии удаления. При удалении факультатива будет потеряна информация о преподавателе и студентах. Однако эти данные могут понадобиться в будущем, изза чего потребуется их повторный ввод.
При описании нормальных форм существуют несколько понятий Функциональной зависимостью между полями А и В называется зависимость, при которой каждому значению А в любой момент времени соответствует единственное значение в из всех возможных. Примером функциональной зависимости может служить связь города и страны, т. к. любой город находится в единственной стране и с течением времени эта связь не меняется. Полной функциональной зависимостью между составным полем А И полем в называется зависимость, при которой поле в зависит функционально от поля А и не зависит функционально от любого подмножества поля А. Многозначная функциональная зависимость. Поле А однозначно определяет поле в, если для каждого значения поля А существует хорошо определенное множество соответствующих значений поля в. Например, если рассматривать таблицу с описанием сотрудников и поле "Образование", то это поле имеет хорошо определенное множество допустимых значений (высшее, среднее, незаконченное среднее и т. д. ). Транзитивная функциональная зависимость между полями А и с наблюдается в том случае, если поле в функционально зависит от поля А И поле с функционально зависит от поля в. В то же время не существует функциональной зависимости поля А ОТ ПОЛЯ В. Несколько полей взаимно независимы, если ни одно из них не является функционально зависимым от другого поля. Неключевым полем таблицы называется каждое поле, не входящее в состав первичного ключа.
Первая нормальная форма (INF, First Normal Form) Считается, что таблица находится в первой нормальной форме, если ни одно поле строки не содержит более одного значения и любое ключевое поле не пусто. То есть ни один элемент таблицы не является, в свою очередь, таблицей и не содержит сложных данных. Не трудно заметить, что это требование перекликается с определением отношения, в котором говорится, что любой столбец состоит из атомарных значений, которые не могут быть разложены на более мелкие составляющие. То есть любая таблица в реляционной базе данных автоматически находится в первой нормальной форме.
Вторая нормальная форма (2 NF, Second Normal Form). Таблица находится во второй нормальной форме тогда и только тогда, когда она удовлетворяет требованиям первой нормальной формы и все ее поля, не входящие в первичный ключ, связаны полной функциональной зависимостью с первичным ключом. То есть необходимо, чтобы только первичный ключ однозначно идентифицировал значения в любом столбце и в то же время значения в столбцах не зависели ни от какой части составного ключа. Если первичный ключ состоит из одного столбца, то это требование удовлетворяется автоматически. Если же первичный ключ состоит из двух и более столбцов, то таблица необязательно будет находиться во второй нормальной форме. В этом случае таблица должна быть разбита на две или более таблиц таким образом, чтобы первичный ключ однозначно идентифицировал значение в любом столбце. Бывают ситуации, когда в таблице имеется поле, не зависящее от первичного ключа. В этом случае необходимо добавить в первичный ключ дополнительный столбец. Если таких столбцов нет, то в таблицу вставляется новый столбец.
Третья нормальная форма (3 NF, Third Normal Form) Таблица находится в третьей нормальной форме тогда и только тогда, когда она удовлетворяет требованиям второй нормальной формы и ни одно из ее неключевых полей не зависит функционально от любого неключевого поля. Любое неключевое поле должно зависеть только от значения первичного ключа и не зависеть от любого другого неключевого атрибута. То есть каждое неключевое поле нетранзитивно зависит от первичного ключа. Для устранения транзитивной зависимости между неключевыми полями выполняется расщепление исходной таблицы. В результате часть полей удаляется из исходной таблицы и включается в состав других (возможно вновь созданных) таблиц.
Нормальная форма Бойса-Кодда (BCNF, Brice-Codd Normal Form) Таблица находится в нормальной форме Бойса. Кодда тогда и только тогда, когда она находится в третьей нормальной форме и любая функциональная зависимость между ее полями сводится к полной функциональной зависимости от возможного ключа.
Четвертая нормальная форма (4 NF, Fourth Normal Form) Четвертая нормальная форма является частным случаем пятой нормальной формы, когда полная декомпозиция должна быть соединением двух проекций. Для понимания определения необходимо объяснить, что такое полная декомпозиция. Полной декомпозицией называют такую совокупность произвольного числа ее проекций, соединение которых абсолютно совпадает с содержимым таблицы. Проекция таблицы — это неполный набор ее столбцов. Другими словами, проекция таблицы — это ее копия, не включающая один или более столбцов.
Пятая нормальная форма или нормальная форма проекции-соединения (5 NF, Fifth Normal Form или PJ/NF) Таблица находится в пятой нормальной форме, если в каждой ее полной декомпозиции все проекции содержат возможный ключ. Если в таблице не имеется ни одной полной декомпозиции, то она также находится в пятой нормальной форме.
Связывание таблиц Связывание строк таблиц реляционной базы данных выполняется с помощью первичного (primary) и внешнего (foreign) ключей. Первичный ключ позволяет однозначно идентифицировать любую строку таблицы. Внешний ключ создается в таблице, поля которой ссылаются на строки главной таблицы. Для каждой строки зависимой таблицы необходимо, чтобы значению внешнего ключа было сопоставлено значение первичного ключа. То есть нельзя вставлять в зависимую таблицу строки со значением внешнего ключа, не определенного в главной таблице. В отличие от первичного ключа, внешний ключ не должен быть уникальным.
Типы связей между таблицами Один-к-одному (One-to-one). При установке отношения «одинк-одному» (1: 1) каждой строке главной таблицы соответствует единственная (или ни одной) строка зависимой таблицы. С другой стороны, каждая строка зависимой таблицы должна быть связана только с одной строкой главной таблицы. Один-ко-многим (One-to-many). При использовании связи «один-ко-многим» каждой строке главной таблицы соответствует ноль, одна или более строк зависимой таблицы. С другой стороны, каждая строка зависимой таблицы должна быть связана только с одной строкой главной таблицы. Много-ко-многим (Many-to-many). Этот тип связи предполагает, что любой строке главной таблицы может соответствовать ноль, одна или множество строк зависимой таблицы. При этом каждая строка зависимой таблицы может быть связана с одной или более строк главной таблицы.
Студент Зачетная Группа Преподаватель книжка Кафедра Предмет Оценка Домашний адресс Телефон Иванович 9765 101 Харитонова Татьяна Николаевна Каф. высшей математики Высшая математик а 3 г. Киев, ул. 333 -22 -33, 067 Озерная, 10, кв. 5 567 -89 -76 Иванович 9765 101 Трифонов Олег Степанович Каф. физики Физика 3 г. Киев, ул. 333 -22 -33, 067 Озерная, 10, кв. 5 567 -89 -76 Петренко Сергей Данилович 6767 Щукина Ольга Борисовна 9845 101 Харитонова Татьяна Николаевна Каф. высшей математики Высшая математик а 5 г. Киев, ул. Борщаговская, 140, кв. 8 445 -65 -77, 095567 -76 -67, 063787 -76 -67 Щукина Ольга Борисовна 9845 101 Трифонов Олег Степанович Каф. физики Физика 5 г. Киев, ул. Борщаговская, 140, кв. 8 445 -65 -77, 095567 -76 -67, 063787 -76 -67 203 Василенко Юрий Каф. философи Философи Алексеевич и я 4 г. Борисполь, ул. 050 -789 -89 -88 Киевская, 3, кв. 20
Зачетная книжка Студент Группа 9765 Иванович 6767 Петренко Сергей Данилович ID_улица 1 2 3 2 10 3 5 20 101 1 1 56 8 Тип улицы Улица 1 улица 2 улица 3 шоссе Квартира 101 203 9845 Щукина Ольга Борисовна ID_горо Город д 1 Киев 2 Борисполь ID_город ID_улица Дом Озерная Киевская Харьковское
Зачетная книжка Студент Группа 9765 Иванович 6767 Петренко Сергей Данилович Тип улицы Улица 1 улица 2 улица 3 шоссе 1 2 3 2 10 3 5 20 101 1 1 56 8 ID_телефон Зачетная книжка 1 2 ID_горо Город д 1 Киев 2 Борисполь Озерная Киевская Харьковское Квартира 101 203 9845 Щукина Ольга Борисовна ID_улица ID_город ID_улица Дом Телефон 1 333 -22 -33 1 067 -567 -89 -76 3 2 050 -789 -89 -88 4 5 3 445 -65 -77 3 063 -787 -76 -67 6 3 095 -567 -76 -67
Зачетная книжка 9765 6767 9845 Студент Иванович Петренко Сергей Данилович ID_преподаватель 1 3 ID_оценка 1 2 6 7 8 ID_город ID_улица Дом 1 2 3 2 10 3 5 20 101 ID_улица Тип улицы 1 улица 2 улица 3 шоссе Преподаватель Харитонова Татьяна Николаевна Трифонов Олег Степанович Василенко Юрий Алексеевич Зачетная книжка 9765 6767 9845 1 1 56 8 Улица ID_телефо Зачетна Телефон н я книжка 1 1 333 -22 -33 2 1 067 -567 -89 -76 3 2 050 -789 -89 -88 Озерная Киевская Харьковское Кафедра Каф. высшей математики Каф. физики 4 5 1 2 3 1 2 Оценка 3 3 4 5 5 3 3 445 -65 -77 063 -787 -76 -67 6 Каф. философии Преподаватель Предмет 1 2 3 1 2 Квартира 101 203 Щукина Ольга Борисовна ID_город Город 1 Киев 2 Борисполь 2 Группа 3 095 -567 -76 -67 ID_предме Предмет т 1 Высшая математика 2 Физика 3 Философия
ОСНОВЫ ПРОЕКТИРОВАНИЯ БАЗ ДАННЫХ.ppt