Информационные системы Тема: «Модели данных» Е.Г. Лаврушина ВИДЫ МОДЕЛЕЙ ДАННЫХ Ядром любой базы данных является модель данных, которая определяет взаимосвязь данных на логическом уровне. С помощью модели данных могут быть представлены объекты предметной области, взаимосвязи между ними. Модель данных — совокупность структур данных и операций их обработки. Разработано Е.Г. Лаврушиной 2 Три основных типа моделей данных: Иерархическая Сетевая Разработано Е.Г. Лаврушиной Реляционная 3 Иерархическая модель данных Иерархическая структура представляет совокупность элементов, связанных между собой по определенным правилам. Объекты, связанные иерархическими отношениями, образуют ориентированный граф (перевернутое дерево), вид которого представлен на рисунке. Уровень 1 Уровень 2 Уровень 3 C1 А В1 В1 C1 В1 C1 В1 C1 C1 Разработано Е.Г. Лаврушиной В1 C1 C1 C1 4 Иерархическая модель данных К основным понятиям иерархической структуры относятся: уровень, элемент (узел), связь. Уровень 1 Уровень 2 Уровень 3 C1 А В1 В1 C1 В1 C1 В1 C1 C1 Разработано Е.Г. Лаврушиной В1 C1 C1 C1 5 Иерархическая модель данных Узел — это совокупность атрибутов данных, описывающих некоторый объект. На схеме иерархического дерева узлы представляются вершинами графа. Каждый узел на более низком уровне связан только с одним узлом, находящимся на более высоком уровне. Уровень 1 Уровень 2 Уровень 3 C1 А В1 В1 C1 В1 C1 В1 C1 C1 Разработано Е.Г. Лаврушиной В1 C1 C1 C1 6 Иерархическая модель данных Иерархическое дерево имеет только одну вершину (корень дерева), не подчиненную никакой другой вершине и находящуюся на самом верхнем (первом) уровне. Зависимые (подчиненные) узлы находятся на втором, третьем и т.д. уровнях. Количество деревьев в БД определяется числом корневых записей. К каждой записи БД существует только один (иерархический) путь от корневой Уровень 1 записи. А Уровень 2 Уровень 3 C1 В1 В1 C1 В1 C1 В1 C1 Разработано Е.Г. Лаврушиной C1 В1 C1 C1 C1 7 Сетевая модель данных B A C D F E G H В сетевой структуре при тех же основных понятиях (уровень, узел, связь) каждый элемент может быть связан с любым другим элементом. Пример сетевой структуры БД - база содержащая сведения о студентах и курсовых работах (один студент может сдать несколько работ по разным предметам) Разработано Е.Г. Лаврушиной 8 Сетевая модель данных Студент (N зачетки, ФИО, группа) N23456 Иванов П.А. 111 N23457 Петров П.А. 111 N23458 Сванов П.А. 111 Работа (N шифра,предмет, ФИО преподавателя,) N25 Информатика. Петина Н.Л. N67 История Олейник П.А. N34 Графика Пустых А.К. Разработано Е.Г. Лаврушиной N56 Экономика Сенчин С.С. 9 Реляционная модель данных Понятие реляционный (англ. relation — отношение) связано с разработками известного американского специалиста Эдгара Кодда (сотрудник IBM). Реляционная модель данных (РМД) некоторой предметной области представляет собой набор отношений, изменяющихся во времени. Эти модели характеризуются простотой структуры данных, удобным для пользователя табличным представлением и возможностью использования формального аппарата алгебры отношений и реляционного исчисления для обработки данных. Реляционная модель ориентирована на организацию данных в виде двумерных таблиц. Разработано Е.Г. Лаврушиной 10 Реляционная таблица Каждая реляционная таблица представляет собой двумерный массив и обладает следующими свойствами: каждый элемент таблицы — один элемент данных; все столбцы в таблице однородные, т.е. все элементы в столбце имеют одинаковый тип (числовой, символьный и т.д.) и длину; каждый столбец имеет уникальное имя; одинаковые строки в таблице отсутствуют; порядок следования строк и столбцов может быть произвольным. Разработано Е.Г. Лаврушиной 11 Пример: Отношение Студент (вся таблица) Поле или атрибут (заголовок столбца) № личного дела Фамилия Имя 16493 Кортеж 16593 16693 Сергеев Петр Петрова Анна Анохин Андрей Отчество Дата рождения Группа Михайлович 01.01.76 Владимировн 15.03.75 а Борисович 14.04.76 111 112 111 Значение поля или атрибута Реляционной таблицей можно представить информацию о студентах, обучающихся в вузе Пример: Отношение Студент (вся таблица) Поле или атрибут (заголовок столбца) № личного дела Фамилия Имя 16493 Кортеж 16593 16693 Сергеев Петр Петрова Анна Анохин Андрей Отчество Дата рождения Группа Михайлович 01.01.76 Владимировн 15.03.75 а Борисович 14.04.76 111 112 111 Значение поля или атрибута Отношения представлены в виде таблиц, строки которых соответствуют кортежам или записям, а столбцы — полям (атрибутам отношений, доменам). Пример: Отношение Студент (вся таблица) Поле или атрибут (заголовок столбца) № личного дела Фамилия Имя 16493 Кортеж 16593 16693 Сергеев Петр Петрова Анна Анохин Андрей Отчество Дата рождения Группа Михайлович 01.01.76 Владимировн 15.03.75 а Борисович 14.04.76 111 112 111 Значение поля или атрибута Поле, каждое значение которого определяет соответствующую запись, называется простым ключом (ключевым полем). Если записи однозначно определяются значениями нескольких полей, то такая таблица базы данных имеет составной ключ . В примере ключевым полем таблицы является "№ личного дела". Связывание таблиц Чтобы связать две реляционные таблицы, необходимо ключ первой таблицы ввести в состав ключа второй таблицы (возможно совпадение ключей); в противном случае нужно ввести и в структуру первой таблицы внешний ключ — ключ второй таблицы. Например имеется 3 таблицы 1) Студент - N зачетки, ФИО, год рождения; 2) Сессия - N зачетки, оценка; 3) Стипендия - оценка, размер стипендии . Связь между первыми двумя таблицами устанавливается по N зачетки, а между 2) и 3) по оценке: Студент (N зачетки) N зачетки Сессия (N зачетки) (оценка) Разработано Е.Г. Лаврушиной Стипендия (оценка) Оценка 15 Проектирование реляционных баз данных Проектирование информационных систем, включающих в себя базы данных состоит в построении комплекса взаимосвязанных моделей данных. Важнейшим этапом проектирования баз данных является построение инфологической (информационно-логической) модели предметной области, не ориентированной на конкретную СУБД. Информационно-логическая (инфологическая) модель отражает предметную область в виде совокупности информационных объектов и их связей Информационный объект - это описание некоторого реального объекта, процесса, события (сущности) в виде совокупности логически связанных информационных элементов (полей или атрибутов) Разработано Е.Г. Лаврушиной 16 Информационный объект имеет множество реализаций - экземпляров, каждый из которых представлен совокупностью полей или атрибутов и идентифицируется значением ключа. Например: Информационный объект СТУДЕНТ Ключ Номер Описательные реквизиты Фамилия Отчество Дата Группа Пол СТУДЕНТ Разработано Е.Г. Лаврушиной 17 Типы связей информационных объектов Все информационные объекты предметной области связаны между собой. Различают связи 3-х типов: один к одному (1:1) один ко многим (1:М) многие ко многим (М:М) Разработано Е.Г. Лаврушиной 18 Пример представления инфологической модели : Между студентами и преподавателями связи М:М Преподаватель Студент Стипендия Сессия (набор предметов) (один студент обучается у нескольких преподавателей и несколько преподавателей обучают одного студента). Разработано Е.Г. Лаврушиной 19 Пример представления инфологической модели : Между студентами и сессией (набором предметов) связь 1:1 Преподаватель Студент Стипендия Сессия (набор предметов) (каждый студент имеет индивидуальный набор экзаменационных оценок). Разработано Е.Г. Лаврушиной 20 Пример представления инфологической модели : Преподаватель Студент Стипендия Сессия (набор предметов) Между стипендией и результатами сдачи сессии связь 1:М, так как установленный размер стипендии повторяется для многих студентов по результатам сессии. Разработано Е.Г. Лаврушиной 21 Уровни представления данных в БД Развитые СУБД обеспечивают независимость прикладных программ от конкретной организации данных. Это позволяет реорганизовывать сами данные, не меняя программ. Разработано Е.Г. Лаврушиной 22 Уровни представления данных в БД Указанная независимость достигается благодаря тому, что имеется 3 уровня представления данных: физический (с позиции системного программиста) логический (с позиций прикладного программиста и пользователя) концептуальный (с позиций администрации предприятия) На основе 3-х уровней представления данных строят соответствующие модели представления данных. Разработано Е.Г. Лаврушиной 23 Уровни представления данных в БД. I II III КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ Сущности Атрибуты Связи (факты, свойства факобъекты) тов и объектов) Записи ЛОГИЧЕСКАЯ МОДЕЛЬ Элементы данных Связи (поля) (ключи) Блоки ФИЗИЧЕСКАЯ МОДЕЛЬ Указатели Группирование (поля) данных (ключи) Внешний уровень (не зависит от ПО) / с позиций администрации предприятия Внешний уровень I /с позиций прикладного программиста и пользователя Внутренний уровень /с позиций системного программиста Проектирование на физическом уровне во многом зависит от используемой СУБД, оно зачастую автоматизировано и скрыто от пользователя. Проектирование на логическом уровне заключается в определении числа и структуры таблиц формировании запросов к БД, определении типов отчетных документов, разработки алгоритмов обработки информации, создании форм для ввода и редактирования данных базе и решении ряда аналогичных задач. Разработано Е.Г. Лаврушиной 25 Проектирование баз данных Проектирование БД - это один из этапов жизненного цикла информационной системы. Основная задача, решаемая при проектировании нормализация отношений Разработано Е.Г. Лаврушиной 26 Нормализация отношений Одни и те же данные могут группироваться в реляционные таблицы (отношения) по-разному. Группировка полей (атрибутов) в таблицах должна быть рациональной, т.е. минимизирующей избыточность данных. Нормализацией отношений называется аппарат ограничений применяемый при формировании отношений (таблиц), который позволяет устранить дублирование, обеспечить непротиворечивость хранимых в базе данных, уменьшает трудозатраты на ведение БД . Разработано Е.Г. Лаврушиной 27 Первая нормальная форма Отношение (таблица) называется приведенной к 1-ой нормальной форме , если все атрибуты простые (далее неделимы). Преобразование таблицы к 1-ой форме может привести к увеличению количества полей. Вторая нормальная форма Введем понятие функциональной зависимости реквизитов - это зависимость, при которой в экземпляре информационного объекта определенному значению ключевого поля соответствует только одно значение описательного реквизита. Это определение позволяет при анализе предметной области выделить самостоятельные информационные объекты. Разработано Е.Г. Лаврушиной 28 Вторая нормальная форма Номер* Фамилия Имя Отчество Дата Группа Функционально полная зависимость неключевых атрибутов заключается в том, что каждый неключевой атрибут функционально зависит от ключа, но не находится в функциональной зависимости ни от какой части составного ключа. Разработано Е.Г. Лаврушиной 29 Третья нормальная форма Введем понятие транзитивной зависимости. , которая наблюдается в том случае, если один из 2-х описательных реквизитов зависит от ключа, а другой описательный реквизит зависит от 1-го. Например: Введем в состав описательных реквизитов объекта СТУДЕНТ фамилию старосты группы. Фамилия старосты зависит только от номера группы, поэтому у разных студентов из одной группы она будет повторяться, т.е. информация дублируется. Для устранения транзитивной зависимости необходимо провести расщепление исходного информационного объекта на 2. Разработано Е.Г. Лаврушиной 30 Третья нормальная форма Номер* Фамилия Имя Отчество Дата Группа Староста Номер* = Фамилия Имя Отчество Дата Группа Группа* + Староста Контрольные вопросы: Дайте определение кортежа. Что понимается под сетевой моделью данных? Перечислите уровни представления данных при построении базы данных Что понимается под нормализацией отношений? Перечислите основные понятия иерархической структуры данных. Дайте определение модели данных. Опишите процесс перехода от второй нормальной формы к третьей нормальной форме представления данных в базе данных. Что понимается под вершиной иерархического дерева? Охарактеризуйте основные модели данных. Разработано Е.Г. Лаврушиной 32