Норм_формы.pptx
- Количество слайдов: 41
Основные этапы разработки ба данных 1
Введение На предыдущих лекциях мы рассмотрели построение однотабличной базы данных. Если необходима только одна таблица, то можно и обойтись без использования Access. Но современные информационные системы, основанные на концепции интеграции данных, характеризуются огромными объемами хранимых данных, сложной организацией, необходимостью удовлетворять разнообразные требования многочисленных пользователей. Разработка БД должна начинаться с определения структуры и состава данных, подлежащих хранению в базе для обеспечения запросов пользователей, далее должен производиться их анализ и структурирование. Существующие методы разработки баз данных основаны на нормализации данных предметной области. В связи с этим появляется несколько понятий, которые необходимо рассмотреть. 2
1. Структуры данных Решая конкретную задачу, необходимо выбрать множество данных, представляющих реальную ситуацию. Важную роль здесь играют свойства самих данных и операции, которые должны выполняться над ними. Обычно данные делят на простые – неструктурированные – (основной признак: одно имя – одно значение) и структурированные. Структурированные типы данных классифицируют по следующим основным признакам: n По однородности (все элементы структуры однотипны – однородная структура), n По упорядоченности (между элементами определен порядок следования – упорядоченная структура), n По способу доступа – прямого (каждый элемент структуры доступен пользователю в любой момент времени независимо от других элементов) и последовательного доступа (доступ к элементу возможен только после извлечения предыдущих), n По динамичности – статические (с фиксированным размером данных) и динамические (размер данных устанавливается по ходу решения задачи). 3
Типовые структуры данных n n Массив – однородная упорядоченная статическая структура прямого доступа, однородный набор величин одного и того же типа (компонентов массива), объединенных одним общим именем (идентификатором) и идентифицируемых (адресуемых) вычисляемым индексом. Стек — структура данных с порядком доступа к элементам «последним пришёл - первым вышел» (LIFO, Last In - First Out). Добавление элемента возможно только в вершину стека (добавленный элемент становится первым в стеке), удаление - также только из вершины стека. Свя занный спи сок —структура данных, в котором объекты расположены в линейном порядке, порядок определяется указателями на каждый объект. Различают односвязный список, в котором можно передвигаться только в сторону конца списка (узнать адрес предыдущего элемента невозможно) и двусвязный список, по которому можно передвигаться в любом направлении — как к началу, так и к концу. В этом списке проще производить удаление и перестановку элементов, т. к. всегда известны адреса тех элементов списка, указатели которых направлены на изменяемый элемент. Очередь — структура данных с порядком доступа к элементам "первый пришел - первый вышел" (FIFO, First In — First Out). Добавление элемента возможно лишь в конец очереди, выборка - только из начала очереди. 4
2. Информационный объект (ИО) — это описание некоторой сущности (реального объекта, явления, процесса, события) в виде совокупности логически связанных реквизитов (информационных элементов). Например: цех, склад, материал, вуз, студент, сдача экзаменов и т. д. • ИО определенного реквизитного состава и структуры образует класс (тип), которому присваивается уникальное имя (символьное обозначение), например Студент, Сессия, Стипендия. • ИО имеет множество реализаций — экземпляров, каждый из которых представлен совокупностью конкретных значений реквизитов и идентифицируется значением ключа (простого — один реквизит или составного — несколько реквизитов). • Остальные реквизиты ИО являются описательными. При этом одни и те же реквизиты в одних информационных объектах могут быть ключевыми, а в других — описательными. • Информационный объект может иметь несколько ключей. 5
Пример. Структура и экземпляры информационного объекта СТУДЕНТ В информационном объекте Студент ключом является реквизит Номер (№ личного дела), к описательным реквизитам относятся: Фамилия (Фамилия студента), Имя (Имя студента). Отчество (Отчество студента). Дата (Дата рождения). Группа (№ группы). Если отсутствует реквизит Номер, для однозначного определения характеристик конкретного студента необходимо использование составного ключа из трех реквизитов: Фамилия + Имя + Отчество. Структура Номер Фамилия Имя Отчество Дата Группа Экземпляры 16493 Сергеев Петр Михайлович 01. 76 111 информационного объекта 16593 Петрова Анна Владимировна 15. 03. 75 112 Студент 16693 Анохин Андрей Борисович 14. 04. 76 111 6
Примеры представления информационных объектов 110 ТОВАР Примеры компактного преставления информационных объектов Код. Т Простой ключ ПОСТАВКА 110 Код. Т +NДок Составной ключ Ключ 7
3. Модели данных Организация данных рассматривается с позиций той или иной модели данных. Модель данных является ядром любой базы данных. С помощью модели данных могут быть представлены объекты предметной области и взаимосвязи между ними. Модель данных — совокупность структур данных, ограничений целостности и операций манипулирования данными. Модели используются для представления данных в информационных системах. Различают три типа моделей данных, которые имеют множества допустимых информационных конструкций: • иерархическая , • сетевая, • реляционная. 8
Иерархическая модель данных n Иерархическая структура представляет совокупность элементов, связанных между собой по определенным правилам. Объекты, связанные иерархическими отношениями, образуют ориентированный граф (перевернутое дерево), вид которого представлен на рис Уровень 1 Уровень 2 Уровень 3 В 1 С 1 В 2 С 2 А В 3 СЗ В 4 С 5 С 6 9 В 5 С 7 С 8
Основные понятия иерархической структуры Это – узел, уровень и связь. n Узел — это совокупность атрибутов данных, описывающих некоторый объект. На схеме иерархического дерева узлы представляются вершинами графа. Каждый узел на более низком уровне связан только с одним узлом, находящимся на более высоком уровне. n Иерархическое дерево имеет только одну вершину (корень дерева), не подчиненную никакой другой вершине и находящуюся на самом верхнем (первом) уровне. Зависимые (подчиненные) узлы находятся на втором, третьем и т. д. уровнях. К каждой записи базы данных существует только один (иерархический) путь от корневой записи. Например, как видно из рис. , для записи С 4 путь проходит через записи ВЗ к А. 10
Пример иерархической структуры Для рассматриваемого примера иерархическая структура правомерна, так каждый студент учится в определенной (только одной) группе, которая относится к определенному (только одному) институту. 11
Сетевая модель данных n n В сетевой структуре при тех же основных понятиях (уровень, узел, связь) каждый элемент может быть связан с любым другим элементом. На рисунке изображена сетевая структура базы данных в виде графа. 12 B A C D F E G H
Пример сетевой структуры БД Примером сложной сетевой структуры может служить структура базы данных, содержащей сведения о студентах, участвующих в научно-исследовательских работах (НИРС). Возможно участие одного студента в нескольких НИРС, а также участие нескольких студентов в разработке одной НИРС. Графическое изображение описанной в примере сетевой структуры состоит только из двух типов записей. 13
Понятие реляционный (англ. relation — отношение) связано с разработками известного американского специалиста в области систем баз данных Е. Кодда Реляционная модель данных Реляционная модель ориентирована на организацию данных в виде двумерных таблиц. Каждая реляционная таблица представляет собой двумерный массив и обладает следующими свойствами: n каждый элемент таблицы — один элемент данных; n все столбцы в таблице однородные, т. е. все элементы в столбце имеют одинаковый тип (числовой, символьный и т. д. ) и длину; n каждый столбец имеет уникальное имя (заголовки столбцов являются названиями полей в записях); n одинаковые строки в таблице отсутствуют; n порядок следования строк и столбцов может быть произвольным. Отношение – это плоская таблица, содержащая N столбцов, среди которых нет одинаковых. N – это степень отношения, или арность отношения. Столбец отношения соответствует атрибуту сущности. Кортеж – строка отношения (соответствует записи в таблице). 14
Основные понятия: таблица, строка, столбец, отношение, первичный ключ Таблица отражает тип объекта предметной области сущность, а каждая ее строка один конкретный объект – экземпляр сущности. В каждой таблице реляционной модели должен быть столбец или совокупность столбцов, значения которых однозначно идентифицируют каждую строку таблицы. Этот столбец или их совокупность и называется первичным ключом таблицы. Если таблица удовлетворяет требованию уникальности первичного ключа, она называется отношением. 15
Основные понятия Мощностью отношения называется число его кортежей, а степенью отношения – число атрибутов. Атрибут – логически неделимый элемент, относящийся к свойствам некоторого объекта или процесса. Атрибуты имеют множество допустимых значений. Совокупность атрибутов, характеризующих один объект - запись. Домен - множество всех возможных значений атрибута. Тип записи определяется свойствами объекта. Ключ – атрибут или совокупность атрибутов, однозначно определяющие объект. Из множества потенциальных ключей выбирается один первичный ключ. Все остальные ключи – альтернативные. Суррогатный ключ – атрибут, который создан для того, чтобы однозначно определять объект. 16
Пример реляционной модели № личного Фамилия дела Имя Отчество Дата рождения Группа 16493 Сергеев Петр Михайлович 01. 76 112 16593 Петрова Анна Владимировна 15. 03. 75 111 16693 Анохин Андрей Борисович 14. 04. 76 112 • Отношения представлены в виде таблиц, строки которых соответствуют кортежам или записям, а столбцы — атрибутам отношений, доменам, полям. • Поле, каждое значение которого однозначно определяет соответствующую запись, называется простым ключом (ключевым полем) • . Если записи однозначно определяются значениями нескольких полей, то такая таблица базы данных имеет составной ключ. • В примере ключевым полем таблицы является "№ личного дела". 17
Нормализация отношений Одни и те же данные могут группироваться в таблицы (отношения) различными способами, т. е. возможна организация различных наборов отношений взаимосвязанных информационных объектов. Группировка атрибутов в отношениях должна быть рациональной, т. е. минимизирующей дублирование данных и упрощающей процедуры их обработки и обновления. Нормализация отношений — формальный аппарат ограничений на формирование отношений (таблиц), который позволяет устранить дублирование, обеспечивает непротиворечивость хранимых в базе данных, уменьшает трудозатраты на ведение (ввод, корректировку) базы данных. 18
Требования к нормализации информационный объект (ИО) должен содержать идентификатор-ключ (простой или составной), Все описательные (неключевые) реквизиты должны быть взаимно независимы, Каждый описательный реквизит должен функционально полностью зависеть от ключа ИО, т. е. каждому значению ключа соответствует только одно значение описательного реквизита, Каждый описательный (неключевой) реквизит в ИО не может зависеть от ключа транзитивно, т. е. через другой промежуточный реквизит. 19
Нормальные формы БД находится в первой нормальной форме, если все ее таблицы являются отношениями, а столбцы таблиц удовлетворяют условию атомарности. n Вторая нормальная форма - каждый неключевой атрибут должен функционально полно зависеть от первичного ключа (не должен зависеть от части составного ключа). n Третья нормальная форма - между неключевыми атрибутами сущности должны отсутствовать транзитивные зависимости, т. е. они должны быть взаимно независимы. n 20
Нормальные формы Четвертая нормальная форма. В отношении не должно быть многозначных зависимостей между атрибутами. Пример: преподаватель обучает нескольких студентов по различным курсам. По одному курсу могут учиться несколько студентов, каждый студент может обучаться по нескольким курсам, т е. между атрибутами «Курс обучения» и «Студент» имеет место многозначная зависимость. На практике обычно ограничиваются структурой БД, соответствующей 3 НФ. n 21
Системы управления базами данных База данных (БД) – совокупность взаимосвязанных, хранящихся вместе данных при наличии такой минимальной избыточности, которая допускает их использование оптимальным образом для одного или нескольких приложений. Создание базы данных, ее поддержка и обеспечение доступа пользователей к ней осуществляется централизованно с помощью специального программного инструментария – системы управления базами данных. Система управления базами данных (СУБД) – это комплекс программных и языковых средств, необходимых для создания баз данных, поддержания их в актуальном состоянии и организации поиска в них необходимой информации. 22
Основные функции СУБД : n n n управление данными во внешней памяти; управление буферами оперативной памяти; управление транзакциями; (Транзакция - в информатике - совокупность операций над данными, которая, с точки зрения обработки данных, либо выполняется полностью, либо совсем не выполняется. Транзакция - в информационных системах - последовательность логически связанных действий, переводящих информационную систему из одного состояния в другое. Транзакция либо должна завершиться полностью, либо система должна быть возвращена в исходное состояние). n n журнализация и восстановление БД после сбоев; поддержание языков БД. 23
Состав реляционной СУБД Логически в современной реляционной СУБД можно выделить: n ядро СУБД (т. н. Data Base Engine); его основными логическими компонентами являются: менеджер данных, менеджер буферов, менеджер транзакций и менеджер журнала; n компилятор языка БД (обычно SQL); n подсистему поддержки времени выполнения; n набор утилит. Язык SQL - это основное средство общения с реляционными базами данных. SQL (Structured Query Language) - структурированный язык запросов. SQL состоит из трех компонентов: DDL (Язык Определения Данных) – Язык Описания Схемы, состоит из команд, которые создают объекты (таблицы, индексы, и так далее) в базе данных. DML (Язык Манипулирования Данными) – это набор команд, которые определяют, какие значения представлены в таблицах в любой момент времени. DCD (Язык Управления Данными) состоит из средств, которые определяют, разрешить ли пользователю выполнять определенные действия или нет 24
Структурные связи При проектировании реляционной базы данных структурная связь устанавливается между ИО, т. к. БД должна обеспечивать всевозможные запросы. Типы связей Все информационные объекты предметной области связаны между собой. Различаются связи нескольких типов, для которых введены следующие обозначения: • один к одному (1: 1), одно-однозадачные реальные отношения; • один ко многим (1: М), одно-многозадачные реальные отношения; • многие ко многим (М: М), много-многозадачные реальные отношения. 25
Пример 1. Дана совокупность информационных объектов, отражающих учебный процесс в вузе: СТУДЕНТ (Номер, Фамилия, Имя, Отчество, Пол, Дата рождения. Группа) ПРЕПОДАВАТЕЛЬ (Код преподавателя, Фамилия, Имя, Отчество) СЕССИЯ (Номер, Оценка 1, Оценка 2, Оценка 3, Оценка 4, Результат) СТИПЕНДИЯ (Результат, Процент) 26
Связь один к одному (1: 1) предполагает, что в каждый момент времени одному экземпляру информационного объекта А соответствует не более одного экземпляра информационного объекта В и наоборот. Рисунок иллюстрирует указанный тип отношений. ИО А 1 В 1 ИО А В А 2 А 3 В 2 Примером связи 1: 1 может служить связь между информационными объектами СТУДЕНТ и СЕССИЯ: Каждый студент имеет определенный набор экзаменационных оценок в сессию. СТУДЕНТ СЕССИЯ 27
Связь один ко многим (1: М) При связи один ко многим (1: М) одному экземпляру информационного объекта А соответствует 0, 1 или более экземпляров объекта В, но каждый экземпляр объекта В связан не более чем с 1 экземпляром объекта А. Графически данное соответствие имеет вид, представленный на рисунке Главный ИО Подчиненный ИО А 1 А 2 А 3 В 1 А В В 2 В 3 Примером связи 1: М служит связь между информационными объектами СТИПЕНДИЯ и СЕССИЯ: Установленный размер стипендии по результатам сдачи сессии может повторяться многократно для различных студентов. СТИПЕНДИЯ СЕССИЯ 28
Связь многие ко многим (М: М) предполагает, что в каждый момент времени одному экземпляру информационного объекта А соответствует 1 или более экземпляров объекта В и наоборот. На рисунке графически представлено указанное соответствие. Примером данного отношения служит связь между информационными объектами СТУДЕНТ и ПРЕПОДАВАТЕЛЬ: Один студент обучается у многих преподавателей, один преподаватель обучает многих студентов СТУДЕНТ ПРЕПОДАВАТЕЛЬ 29
Информационно-логическая модель Проектирование базы данных состоит в построении комплекса взаимосвязанных моделей данных. В инфологической модели средствами структур данных в интегрированном виде отражают состав и структуру данных, а также информационные потребности приложений (задач и запросов). Информационно-логическая (инфологическая) модель предметной области отражает предметную область в виде совокупности информационных объектов и их структурных связей. Инфологическая модель предметной области строится первой. Предварительная инфологическая модель строится еще на предпроектной стадии и затем уточняется на более поздних стадиях проектирования баз данных. Преподаватель Пример Студент Стипендия Сессия 30
Архитектура СУБД Базы данных и программные средства их создания и ведения (СУБД) имеют многоуровневую архитектуру, представление о которой можно получить из рисунка. Логический уровень представления данных Физический уровень представления данных 31
Уровни представления данных Различают три уровня представления данных баз данных, которым соответствуют модели аналогичного назначения: Концептуальный уровень соответствует логическому аспекту представления данных предметной области в интегрированном виде. Концептуальная модель состоит из множества экземпляров различных типов данных, структурированных в соответствии с требованиями СУБД к логической структуре базы данных. Внутренний уровень отображает требуемую организацию данных в среде хранения и соответствует физическому аспекту представления данных. Внутренняя модель состоит из отдельных экземпляров записей, физически хранимых во внешних носителях. Внешний уровень поддерживает частные представления данных, требуемые конкретным пользователям. Внешняя модель является подмножеством концептуальной модели. 32
Технология разработки ИЛМ Это процесс творческий и трудно поддается формализации. Выделение информационных объектов в общем случае может производиться на основе различных подходов, требующих различных трудозатрат и имеющих различную форму формализации. Формальные правила выделения информационных объектов - список реквизитов можно представить в виде таблицы и далее выполнить следующие действия: Номер* Фамилия Имя Отчество Дата рожд. Группа Графическое изображение функциональной зависимости реквизитов 1. установить функциональные зависимости между реквизитами на основе описания ИО и анализа форм документов, которые содержат необходимые для решения задач реквизиты. Для каждого реквизита определяется, зависит ли он функционально от какого-либо другого. Если такая зависимость есть, проводится линия связи от данного реквизита к реквизиту(ключевому), от которого он зависит и указывается стрелка к зависимому реквизиту. 33
Технология разработки ИЛМ (продолжение) 2. разделить все реквизиты на две группы описательных и ключевых реквизитов и установить между ними соответствие. Для этого надо проанализировать выявленные функциональные зависимости реквизитов. В первую группу следует включить реквизиты, зависимые от каких-либо других реквизитов, и для каждого из них указать реквизиты, от которых они зависят. Оставшиеся образуют вторую группу ключевых реквизитов (см. табл) Описательные (зависимые) реквизиты Ключевые реквизиты Вид ключа: У – уникальный П – простой С – составной В - вторичный Имя ИО, включающего реквизит Название информационного объекта (ИО) 34
Технология разработки ИЛМ (продолжение) 3. Образовать информационные объекты. Сгруппировать описательные реквизиты, одинаково зависимые от одного (или нескольких) реквизитов. В каждую группу включить общие для группы ключевые реквизиты. Каждая такая группа из описательных реквизитов с общим для них ключом образует один из формируемых информационных объектов. После выделения ИО надо дать окончательное их описание. Описание информационных объектов должно включать название и имя объекта, перечень описательных реквизитов и ключевые реквизиты, образующие в совокупности ключ ИО. Кроме того в описание можно включить семантику, т. е. их смысловое определение. Представить в виде таблицы: Реквизиты ИО Признак уникального ключа Имя Название Семантика Приведенные правила позволяют группировать реквизиты в отдельные ИО, отвечающие требованиям нормализации 35
8. Технология разработки ИЛМ (продолжение) 4. определить структурные связи между ИО. Если выявлены отношения Многие-ко-Многим, они должны реализовываться через третий объект (связку), с которым исходные объекты связаны 1: М. Это сводится к введению объекта-связки, который становится подчиненным как 1: М по отношению к каждому ИО. Объект-связка должен иметь идентификатор, образованный из идентификаторов исходных объектов Ка и Кв. 36
Технология разработки ИЛМ (продолжение) 5. построить ИЛМ удобно представить в графическом виде, используя графическое изображение ИО и отношений ИО. В качестве примера рассмотрим построение ИЛМ, используемого в Теме 3, в которой представлена предметная область, охватывающая действие – Сдачу экзаменов по нескольким предметам. Перед разработкой информационно-логической модели реляционной базы данных рассмотрим, из каких информационных объектов должна состоять эта база данных. Можно выделить три объекта, которые не будут обладать избыточностью, — Студенты, Дисциплины и Преподаватели. Представим состав реквизитов этих объектов в виде "название объекта (перечень реквизитов)": Студенты (код студента, фамилия, имя, отчество, номер группы, дата рождения, стипендия, оценки). Дисциплины (код дисциплины, название дисциплины), Преподаватели (код преподавателя, фамилия, имя, отчество, дата рождения, телефон, заработная плата). 37
Рассмотрим связь между объектами Студенты и Дисциплины. Студент изучает несколько дисциплин, что соответствует многозначной связи и отражено на рисунке двойной стрелкой. Понятно, что каждая дисциплина изучается множеством студентов. Это тоже многозначная связь, обозначаемая двойной стрелкой (связь "один" обозначена одинарной стрелкой). Таким образом, связь между объектами Студенты и Дисциплины — Многие-ко-многим (М : N). 38
Множественные связи усложняют управление базой данных. Поэтому использовать такие связи нежелательно и нужно строить реляционную модель, не содержащую связей типа Многие-ко-многим. В Ассеss для контроля целостности данных необходимо создать вспомогательный объект связи, который состоит из ключевых реквизитов связываемых объектов и который может быть дополнен описательными реквизитами. В нашем случае новым объектом для связи служит объект Оценки, реквизитами которого являются код студента, код дисциплины и оценки. Каждый студент имеет оценки по нескольким дисциплинам, поэтому связь между объектами Студенты и Оценки будет Один-ко-многим (1 : М). Каждую дисциплину сдает множество студентов, поэтому связь между объектами Дисциплины и Оценки также будет Один-ко-многим (1 : М). В результате получаем информационно-логическую модель базы данных, приведенную на рисунке. 39
Логическая модель (ЛМ) Определить логическую структуру реляционной БД. В реляционной базе данных в качестве объектов рассматриваются отношения, которые можно представить в виде таблиц. Таблицы между собой связываются посредством общих полей, т. е. одинаковых по форматам и, как правило, по названию, имеющихся в обеих таблицах. Результат изображения ИЛМ в логическую структуру можно отобразить графически в виде схемы данных. На схеме данных прямоугольники отображают таблицы БД, а связи показывают, по каким полям осуществляется взаимосвязь таблиц. Внутри прямоугольника каждой таблицы целесообразно привести список атрибутов (полей) таблицы. Имена ключевых полей для наглядности целесообразно выделить и привести в начале списка. Для полученной схемы данных реляционной базы необходимо подготовить описание структуры ее таблиц в виде: 40
Рассмотрим, какие общие поля надо ввести в таблицы для обеспечения связности данных. В таблицах Студенты и Оценки таким полем будет «Код студента» , в таблицах Дисциплины и Оценки — «Код дисциплины» , в таблицах Преподаватели и Дисциплины — «Код дисциплины» . Выбор цифровых кодов вместо фамилий или названий дисциплин обусловлен меньшим объемом информации в таких полях: например, число "2". по количеству символов значительно меньше слова "математика". В соответствии с этим логическая модель базы данных представлена на рисунке, где жирными буквами выделены ключевые поля. Таким образом, рассмотренные выше этапы разработки БД, основанные на построении ИЛМ, позволяют легко получить логическую структуру реляционной БД, с нормализованными таблицами. 41
Норм_формы.pptx