Лекция 3 по ИТи. СЭ. Базы данных.
Понятие базы данных База данных (БД) - унифицированная совокупность данных, совместно используемая различными задачами в рамках некоторой единой АИС. Для создания БД надо исследовать предметную область в терминах “Сущность - связь”. 1)Сущности (Типы сущностей)– наборы однородных объектов в предметной области (в реляционной БД каждой сущности назначается таблица): Пример: - студенты, клиенты, подразделения 2)Экземпляр сущности относится к конкретной личности(предмету)в наборе. Тип сущности - студент, а экземпляры – Петров, Сидоров 3)Атрибут – это свойство сущности. Сущность студент имеет атрибуты: фамилия, имя, отчество, дата и место рождения, паспортные данные и т. д. В реляционной БД атрибуты хранятся в полях таблиц.
4) Связь – взаимосвязь между сущностями в предметной области, а в БД - соединения между частями БД (в реляционной БД – это соединение между записями таблиц). Сущности – это данные, которые классифицируются по типу, а связи показывают, как эти типы данных соотносятся один с другим. Пример: сущность Книга связана с сущностью Издательство… Если описать некоторую предметную область в терминах сущности – связь, то получим модель сущность - связь для этой БД. 5) Запись данных - это совокупность значений связанных атрибутов = кортеж (сведения об Иванове И. И. ) Модель данных «сущность – связь» - Используется в БД - Включает понятия: 1)Сущность 2)связи между сущностями 3)атрибуты (свойства) сущностей
Создание БД. Этапы проектирования Создание БД начинается с проектирования. Этапы проектирования БД: - Исследование предметной области; - Анализ данных (сущностей и их атрибутов); - Определение отношений между сущностями и определение первичных и вторичных (внешних) ключей.
Принципы хранения данных в БД: 1)целостность и непротиворечивость данных = физическая сохранность данных и предотвращение неверного использования данных 2)минимальная избыточность данных = любой элемент данных должен храниться в БД в единственном виде - позволяет избежать необходимости дублирования операций СУБД (система управления базами данных) – это программное обеспечение, осуществляющее операции над базами данных Модели организации данных Модель данных – это набор принципов, определяющих организацию логической структуры хранения данных в БД. Модель данных описывается 3 -мя эл-тами: - Типы данных (символьные, числовые, …) - Операции над данными (арифметические, логические…) - Ограничения целостности
Типы моделей данных: - Иерархическая - Сетевая - реляционная
1. Иерархическая модель - имеет структуру в виде дерева - выражает вертикальные связи подчинения нижнего уровня высшему(облегчён доступ к необходимой информации при условии, что запросы имеют древовидную структуру) - В каждую вершину орграфа (дерева), кроме 1 -й (корневой) входит только одна дуга - Из каждой вершины (кроме конечных) может выходить любое кол-во дуг (любой подчинённый элемент связан только с одним исходным) Достоинства: 1)Простота представления 2)Удобство анализа 3)Быстродействие 4)компактность Недостатки: 1)Сложность добавления новых записей 2)Сложность удаления существующих записей
Иерархическая модель
2. Сетевая модель. - отличается от иерархической модели наличием горизонтальных связей – сложнее иерархической - Направления связей не являются однозначными, что усложняет модель и СУБД. - Инф-ия предст-ся в виде орграфа (направленных стрелок) - В каждую вершину м. входить любое число дуг Преимущества: 1)Возможность отображения всего многообразия взаимоотношений объектов 2)Непосредственный доступ к любой вершине сети без указания других вершин 3)Малая инф-ая избыточность 4)Быстродействие Недостатки: 1)Невозможно достичь полной независимости данных 2)Слишком сложная структура для анализа и описания при большом объёме информации
2. Сетевая модель.
3. Реляционная модель. Концепция реляционной модели была сформулирована америк. учёным Э. Ф. Коддом => назыв-ся моделью Кодда. Основными понятиями реляционных БД являются: - тип данных, - домен, - атрибут, - кортеж, - первичный ключ - отношение. 1)Каждый атрибут определен на домене, т. е. домен -это множество допустимых значений (тип данных) данного атрибута (Домен атрибута Фамилия – перечень всех символьных строк, соответствующих возможным фамилиям). Понятие домен имеет семантическую нагрузку: данные можно считать сравнимыми только тогда, когда они относятся к одному домену => Нельзя сравнить атрибуты "Табельный номер" и "Оклад".
Экземпляр сущности опред-ся совокупностью значений атрибутов, определённых на соответствующих доменах, т. е. их декартовым произведением. Декартово произведение: Для заданных конечных множеств D 1, D 2, … Dn декартовым произведением называется множество произведений вида: d 1, d 2, … dn , где Пример: если даны два множества A (a 1, a 2, a 3) и B (b 1, b 2), их декартово произведение будет иметь вид С=A*B (a 1*b 1, a 2*b 1, a 3*b 1, a 1*b 2, a 2*b 2, a 3*b 2) 2)Отношение: Отношением R, определенным на множествах, называется подмножество декартова произведения (представляют в виде Таблицы). Множества D 1, D 2, … Dn являются доменами отношения. 3) Элементы декартова произведения называются кортежами – совокупность значений всех атрибутов данного отношения (Таблицы) одного экземпляра сущности (строка Таблицы сотрудника Иванова И. И. ) Число n определяет степень отношения =числу атрибутов
Реляционная модель. 4)Атрибут, значение которого однозначно идентифицирует записи(кортежи), называется ключевым (ключом) (ключом является атрибут "Табельный номер” - его значение уникально для каждого работника предприятия). Если записи (кортежи) идентифицируются только сцеплением значений нескольких атрибутов, то ключ называется составным. 5)Таблица(Отношение) может содержать несколько ключей. Всегда один из ключей объявляется первичным, его значения не могут обновляться. Для отражения связей между записями разных Таблиц используется дублирование их ключей.
Основные компоненты реляционного отношения На рис. - Таблица (отношение степени 5 – по числу атрибутов). - Строки таблицы соответствуют кортежам (записям). - Каждая строка - это описание одного объекта реального мира (работника), характеристики которого (атрибуты) содержатся в столбцах.
Связь между Таблицами ОТДЕЛ и СОТРУДНИК создается путем копирования первичного ключа "Номер_отдела" из 1 -й Таблицы во 2 -ую. Атрибуты, представляющие собой копии ключей других Таблиц, называются внешними ключами.
Свойства реляционных моделей - Данные содержатся в Таблицах. - Модель представляется в виде совокупности таблиц, над которыми выполняются операции - Таблица называется “отношением” - Строка = запись = кортеж - Столбец – поле (атрибут объекта записи) - Все элементы столбца имеют одинаковый тип данных - Столбцам присвоены уникальные имена -Нет одинаковых строк - Порядок расположения строк и столбцов не имеет значения - Каждая строка таблицы имеет данные об одном объекте - Операции формулируются в терминах реляционной алгебры (объединение, пересечение, вычитание, декартово произведение, выборка, проекция, соединение, деление) В реляционной БД каждая таблица должна иметь первичный ключ - поле или комбинацию полей, которые однозначно определяют каждую строку в таблице. Ключевые поля используются для связи Таблиц между собой
• Преимущества: – простота понимания ее структуры. – простота инструментальных средств её поддержки – использование точных матем-х методов реляционной алгебры – простота изменения данных – орг-ция разграничения доступа к ним • недостатки : – жёсткость структуры данных – зависимость скорости работы от размера БД – информационная избыточность Требования к организации реляционных БД. • Сформулированы Коддом, • называются нормальными формами.
Нормализация: - Приведение исходных данных к таблицам - Структура Таблиц подчиняется некоторым правилам. Существует 5 нормальных форм: - В процессе нормализации Таблицы последовательно переводят из одной формы в другую: - Св-ва предыдущей формы сохраняются - Улучшается их стр-ра - Возможен переход через форму - Достаточно привести к 3 -ей нормальной форме. Атомарный атрибут (простой) – значения которого неделимы (Имя, Фамилия, Индекс, Город, а не адрес(индекс, город, улица)) Сложный – соединение нескольких атомарных атрибутов = вектор = агрегат данных
Понятие ф-ции: У функционально зависит от Х, если любому Х соответствует в каждый момент времени единственное значение У: Х -> У В нормализованном отношении (Таблице): 1)Все неключевые атрибуты (св-ва полей записей) функционально зависят от ключа Таблицы. 2)Если ключ составной, то функцион-ая зависимость имеет вид: X 1, X 2, X 3, …, Xn -> Y функцион-ая зависимость: • неполная, если при исключении нескольких атрибутов (X 1, X 2…) функцион-ая зависимость не разрушается. • Иначе - полная
Транзитивная ф-ая зависимость: 1)Пусть X, Y, Z – атрибуты некоторого отношения 2)Y зависит от X, а Z зависит от Y 3)X не зависит от Y и Y не зависит от Z 3)В этом случае говорят, что Z транзитивно зависит от X, Y Т. е. неключевой атрибут зависит от другого неключевого атрибута, а тот, в свою очередь, уже зависит от ключа.
Отношение приведено к 1 -й нормальной форме, если: - все его атрибуты простые = нет составных полей в таблице 2 -я нормальная форма: 1)Отношение приведено к 1 -й нормальной форме = все его атрибуты простые 2)Каждый неключевой атрибут функционально полно (однозначно определяется им) зависит от ключа - Если ключ составной, то каждый атрибут зависит от совокупности всех частей ключа функционально полно (т. е. нельзя удалить к-л часть ключа без нарушения ф-й зависимости атрибутов от ключа)
3 -я нормальная форма: 1)Отношение находится во 2 -й нормальной форме - Отношение приведено к 1 -й нормальной форме = все его атрибуты простые - Каждый неключевой атрибут зависит от ключа функционально полно 2)Каждый неключевой атрибут нетранзитивно зависит от первичного ключа: - т. е. не допускается зависимостей между непервичными атрибутами, т. к. иначе станет возможной транзитивная зависимость непервичных атрибутов от ключа
Пример: 1) Таблица “Студент” (№ зачётки, Фамилия, Группа, Факультет, Семестр, Сессия) 2) Таблица “Сессия” (Предмет, Преподаватель, Вид работы, Оценка) =>Таблица Студент имеет составные атрибуты (Сессия) => ненормализована. 1. Приведём её к 1 -й нормальной форме = расшифруем поле Сессия: - Студент ((№ зачётки, Фамилия, Группа, Факультет, Семестр, Предмет, Преподаватель, Вид работы, Оценка) - Есть повторяющиеся атрибуты в этой Таблице 2. Приведём Т-цу ко 2 -й нормальной форме: - Выяснить все функц-ые зависимости в этом отношении: - Составим новые Таблицы: 1) Студент ((№ зачётки, Фамилия, Группа, Факультет) – 2 -я НФ (Первичный ключ атомарен и поля зависят от ключа) 2) Сессия ((№ зачётки, Семестр, Предмет, Преподаватель, Оценка) – не находится во 2 -й НФ (поле Преподаватель зависит от поля Предмет и не зависит от № зачётки и Семестра => Преподаватель неполно зависит от составного ключа)
1. Из Таблицы Сессия сделаем 3 Таблицы: 1)Оценки (№ зачётки, Семестр, Предмет, Оценка) – ключ из 3 -х атрибутов=> 2 -я НФ, полная зависимость 2)Предметы (Предмет, Преподаватель) – ключ атомарен => 2 -я НФ, полная зависимость 3)Семестры (Семестр, Предмет, Вид работы) – ключ из 2 -х атрибутов=> 2 -я НФ, полная зависимость 1, 2, 3 Таблицы находятся и в 3 -й НФ, т. к. нет транзитивной зависимости между непервичными полями 2. Таблица Студент (№ зачётки, Фамилия, Группа, Факультет): - 2 -я НФ (Первичный ключ атомарен и поля зависят от ключа) - не находится в 3 -й НФ, т. к. Факультет и группа связаны => есть транзитная зависимость между ними => Разбиваем её на 2 Таблицы: 1)Студент (№ зачётки, Фамилия, Группа) => 3 -я НФ (атрибуты атомарны, неключевые атрибуты зависят от ключа функционально полно, нет транзитной зависимости неключевых атрибутов) 2)Группа (Группа, Факультет) => 3 -я НФ
Связи между таблицами. 1)Один к одному: одной записи в одной таблице соответствует одна запись в другой таблице: - оба связываемых поля являются ключевыми или имеют уникальные индексы Пример: соотношение между сотрудником в списке сотрудников и его адресом в другой. Книги крупных изд-в и все книги в нашей БД. 2)Один ко многим (название лаборатории по отношению к списку сотрудников) - одной записи в одной таблице (называемой в данном случае главной) соответствует несколько записей в другой таблице (подчиненной): - Ключ главной Таблицы – первичный - Ключ подчинённой таблицы - Внешний 3)Многие ко многим (список преподавателей к списку читаемых дисциплин) - множеству записей из одной таблицы соответствует несколько записей в другой таблице - является двумя отношениями «один-ко-многим» с 3 -ей таблицей, первичный ключ которой состоит из полей внешнего ключа 2 -х других таблиц
Обеспечение целостности данных. - Целостность объектов - целостность ссылок 1. Целостность сущностей (объектов). Каждая запись любой Таблицы должна быть уникальной (т. е. Таблица должна иметь первичный ключ). Иначе в БД может храниться противоречивая информация об одном и том же объекте. при добавлении записей в таблицу проверяется уникальность их первичных ключей не позволяется изменение значений атрибутов, входящих в первичный ключ.
2. Целостность ссылок Для каждого значения внешнего ключа в дочерней Таблице в родительской Таблице должна найтись строка с таким же значением первичного ключа. Целостность обеспечив-ся выполнением правил: 1)В связанное поле подчинённой Таблицы невозможно ввести атрибут, отсутствующий в главной Таблице 2)Невозможно удалить атрибут в главной Таблице, если имеются связанные записи в подчинённой Таблице 3)Невозможно изменить значение ключевого поля главной Таблицы, если с ним связаны записи в подчинённой =>Предотвращ-ся потеря инф-ции при неправильной работе с данными Обеспеч-ся непротиворечивость данных некоторым заранее заданным условиям