Главная страница
Навигация по странице:

  • В. В. Скакун Системы управления базами данных Учебное пособиеМоделирование данных Оглавление

  • 1.1. Понятие модели

  • 1.2. Типы связей

  • Номер

  • 1.3. Модель сущность-связь

  • Социология. Моделирование данных hl. Системы управления базами данных


    Скачать 0.68 Mb.
    НазваниеСистемы управления базами данных
    АнкорСоциология
    Дата31.10.2022
    Размер0.68 Mb.
    Формат файлаpdf
    Имя файлаМоделирование данных hl.pdf
    ТипУчебное пособие
    #764711
    страница1 из 6
      1   2   3   4   5   6

    БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
    Факультет радиофизики и электроники
    Кафедра системного анализа
    В. В. Скакун
    Системы управления
    базами данных
    Учебное пособие
    Моделирование данных
    Оглавление
    1. МОДЕЛИРОВАНИЕ ДАННЫХ
    2 1.1. Понятие модели
    2 1.2. Типы связей
    5 1.3. Модель сущность-связь
    8 2. МОДЕЛИ ДАННЫХ
    14 2.1. Иерархическая модель
    14 2.2. Сетевая модель данных
    15 2.3. Реляционная модель
    17 2.3.1. Основные понятия
    17 2.3.2. Связи в реляционной БД
    20 2.3.3. Целостность в реляционной БД
    24 2.4. Нормализация данных в реляционной модели
    25 2.4.1. Первая нормальная форма
    27 2.4.2. Вторая нормальная форма
    28 2.4.3. Третья нормальная форма
    29 2.4.4. Нормальная форма Бойса – Кодда (Boyce-Codd)
    30 2.4.5. Нормальные формы более высоких порядков
    31 2.4.6. Правила нормализации
    31 2.4.7. Выводы
    32 2.5. Постреляционная модель
    33 2.6. Многомерная модель
    35 2.7. Объектно-ориентированная модель
    38 2.7.1. Понятие класса
    40 2.7.2. Инкапсуляция данных
    40 2.7.3. Наследование
    41 2.7.4. Полиморфизм
    41 2.7.5. Идентификация объектов в ООБД
    42 2.7.6. Обеспечение доступности и перманентности объектов
    43 2.7.7. Стандарт ODMG
    44 2.7.8. Выводы
    46 2.8. Объектно-реляционная модель
    47 3. ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ
    50 3.1. Этапы проектирования
    50 3.2. Средства автоматизированной разработки приложений
    53
    Минск 2006

    1.
    МОДЕЛИРОВАНИЕ ДАННЫХ
    Существует множество моделей, отражающих различные аспекты реального мира: физические, позволяющие понять физические свойства; математические, представляющие собой абстрактное описание мира с помощью математических знаков; экономические, отображающие тенденции экономики и позволяющие получить прогноз ее развития. Самой обобщенной моделью реального мира может служить естественный язык.
    Но так как естественный язык пока малопригоден для компьютерной обработки преимущественно вследствие его многозначности, то нам потребуется построить такую модель, которая бы наиболее адекватно отображала некоторую часть реального мира (предметную область) и была пригодна для компьютерной обработки. Так как мы будем работать с данными, то нас будут интересовать модели данных.
    1.1. Понятие модели
    Модель данных – это средство абстракции, позволяющее отобразить информационное содержание данных. В самом простейшем виде модель данных может быть представлена простым перечнем той информации, которая должна храниться в информационной системе. Но так как данные, представляющие эту информацию, практически всегда имеют сложную структуру и тесно взаимосвязаны, то необходимо представить каким либо образом также и их структуру. Иначе говоря, модель данных представляет собой совокупность правил, что могут быть использованы для описания структуры данных. Моделей для отображения одной и той же информации можно придумать множество. Критерием выбора будет являться максимум количества информации, извлекаемой из данных. Чтобы понять процесс построения модели данных необходимо знать ряд терминов, которые применяются при описании и представлении данных.
    Объектом называется элемент информационной системы, информацию о котором мы сохраняем. Объекты могут быть реальными и абстрактными, а также могут представлять некоторую концепцию или событие. Например, клиент некой фирмы, отделы той же фирмы, записи купли-продажи и т.д.
    Всякий объект мыслится посредством своих свойств и находится в некоторых отношениях с другими объектами. Классом (типом) объектов называют совокупность объектов, обладающих одинаковым набором свойств.
    Выделенную по некоторым признакам совокупность объектов реального или абстрактного мира, или относящихся к какой-либо области знаний, или необходимых для достижения какой-либо цели называют предметной областью.
    2

    Данные имеют три области своего представления. Первая область
    (смотри рис. 1) – это реальный мир. Объекты и их свойства являются понятиями реаль- ного мира, в котором эти объек- ты существуют и имеют некоторые свойства. Во вто- рой области, облас- ти информации
    (иначе области идей,
    которые существуют в голове програм-миста или разработчика), говорят об атрибутах объектов.
    Атрибут это информационное отражение свойств объекта. Каждый объект характеризуется рядом основных атрибутов. Например, человек может быть охарактеризован такими атрибутами, как ФИО, год рождения, номер паспорта, адрес и т.д. Третья область – это область сохраненных данных.
    Это может быть бумажным источником или представлять собой память компьютера, в которой используются строки символов или совокупность битов для кодирования элементов информации.
    Так как объектов некоторого типа может быть множество, то области представления данных в свою очередь могут быть разбиты на две подобласти. Первая дает общую характеристику объекта как некоторого типа в виде совокупности имен атрибутов (полей). Для нашего примера, объект «человек» будет иметь атрибуты ФИО, год рождения, номер паспорта и т.д. Вторая подобласть состоит из совокупностей значений атрибутов каждого экземпляра объекта в отдельности. Например, Петров
    (Петров Петр Петрович, 1966, V-HO №654723); Иванов (Иванов Иван
    Иванович, 1961, IV-ВЛ №865278) и т.д. Исходя из этого, дадим определение экземпляра объекта: экземпляром объекта называется единичный набор принимаемых элементами данных значений.
    Элементы данных (атрибуты) могут быть простыми и составными, однозначными и многозначными, сохраняемыми и вычисляемыми или быть пустыми. Составные состоят (или могут быть разделены) из нескольких простых, например адрес. Обычно разложение происходит в иерархическом порядке. Такие составные элементы данных могут использоваться, если ссылки на них возможны только как на целое. Если же возможны ссылки на часть элемента данных, то их лучше разложить на простые. Многозначными называют элементы данных, которые могут принимать набор значений.
    Например, телефон и адрес клиента. Вычисляемыми (производными) называют элементы данных, которые могут быть вычислены на основе уже
    3
    Реальный мир
    Объект
    Свойства
    Экземпляр объекта
    Сохраненные данные
    Элементы данных
    (поля)
    Значения элементов данных
    Информация
    Атрибуты
    Значения атрибутов
    Рис. 1. Три области представления данных
    существующих. Например, возраст человека легко может быть вычислен из текущей даты и дня рождения.
    Специальное пустое значение (NULL) вводится для элементов данных которые не имеют значений или могут быть опущены. Различают следующие три случаи: мы не знаем, какое значение имеет элемент данных; элемент данных не может иметь значения в данном конкретном случае
    (например, ученую степень имеет смысл заполнять только для научных работников и преподавателей); мы знаем, что элемент данных имеет значение, но оно для нас безразлично или было пропущено при вводе.
    Каждый атрибут связан с набором значений, называемым доменом.
    Домен определяет все потенциальные значения, которые могут быть присвоены атрибуту. Таким образом, домен – это набор значений, который может быть присвоен атрибуту. Например, домен «Имена» содержит все возможные имена людей, а домен «Номера телефонов» содержит все возможные номера телефонов. Для доменов могут быть приняты соглашения по написанию (формат), к примеру, для имен вначале должна быть фамилия, затем имя и отчество. Домены нельзя путать с атрибутами.
    Атрибуты представляют собой различные интерпретации домена.
    Например, атрибуты «Имя клиента», «Имя поставщика» берут свои значения из одного и того же домена «Имена». В принципе, домен это не что иное как тип данных. Его можно сравнить с такими типами данных в программировании, как перечисление enum в C и type в Pascal. Т.е. мы можем задать тип Days и затем им пользоваться: enum Days {Mon, Tue,
    Wed, Thu, Fri, Sat, Sun}.
    Некоторые элементы данных обладают важным для построения информационной модели свойством. Если известно значение, какое принимает такой элемент данных некоторого объекта, то мы можем однозначно идентифицировать значения, принимаемые другими элементами данных того же объекта. Например, зная номер кузова автомобиля, мы вправе говорить о конкретном автомобиле, описывая его характеристики. Такой элемент данных, по которому можно однозначно идентифицировать остальные элементы данных называется ключевым элементом данных. Ключевой элемент данных может состоять из нескольких элементов данных. Тогда его называют составным или сцепленным. В общем случае элементов данных, по которым можно однозначно идентифицировать остальные элементы данных, может быть несколько. Тогда один из них выбирают в качестве первичного ключа, а остальные будут называться потенциальными или альтернативными ключами.
    Минимальным фрагментов данных является элемент данных. В большинстве случаев сам по себе элемент данных информации не несет и приобретает смысл только в связи с другими элементами данных.
    4

    Совокупность значений связанных элементов данных называется записью данных. Так как некоторый объект может быть описан набором элементов данных, то между такими элементами существует естественная связь. В дальнейшем такие элементы данных мы будем всегда рассматривать в совокупности, и такой вид связи явно выделяться не будет.
    Соответствующая модель объектов с составляющими их элементами данных и взаимосвязями называется концептуальной моделью. Так как такая модель позволяет наглядно отобразить структуру данных, то иначе ее называют схемой данных.
    1.2. Типы связей
    В общем случае связи подразделяются по количеству связываемых объектов. Можно выделить унарные, бинарные, тернарные и т.д. Унарная связь обычно смысла не имеет, кроме рекурсивной. Наибольший интерес представляют бинарные связи, так как связи более высоких порядков редко встречаются, труднореализуемы, нелегки для понимания и всегда могут быть разбиты на совокупность бинарных связей.
    Первый тип связи – «один к одному»
    (1:1 или 1 – 1)
    Эта связь означает, что одному экземпляру объекта А может соответствовать один и только один экземпляр связанного с ним объекта B.
    На практике такой вид связи встречается редко, так как почти всегда два связываемых объекта можно объединить в один. В качестве примера использования такой связи может послужить связь между персональной и служебной характеристикой работника некой фирмы. Поскольку доступ к служебной информации обычно ограничен, то защиту от несанкционированного доступа намного легче реализовать при раздельном хранении таких данных.
    Второй тип связи – «один ко многим»
    (1:М или 1 –

    )
    Это означает, что одному экземпляру объекта А соответствует несколько (много) экземпляров объекта B. Например: сведения о клиентах – записи о покупках; сведения о товаре – записи наличия его на складе. Один клиент может сделать много покупок, а один и тот же товар может быть завезен многократно.
    Третий тип связи – «много к одному»
    (М:1 или

    – 1)
    Означает, что одному или нескольким экземплярам объекта А соответствует один экземпляр объекта B. Связи «один ко многим» и «много к одному» являются обратимыми, поэтому на практике обычно говорят о связи «один ко многим».
    5

    Четвертый тип связи – «многие ко многим»
    (М:N или



    )
    Означает, что одному экземпляру объекта А соответствует несколько
    (много) экземпляров объекта B и наоборот, каждому экземпляру объекта B может соответствовать несколько экземпляров объекта А. Например, сведения об авторах и написанных ими книгах или отношение между клиентами и товарами. Книга может быть написана несколькими авторами и наоборот, один автор может написать много книг. Каждый товар может быть куплен несколькими клиентами и наоборот, один клиент может купить несколько товаров.
    Наряду с взаимосвязями между объектами можно выделить зависимости между атрибутами объектов. Зависимости бывают функциональные, транзитивные и многозначные. Понятие функциональной зависимости является базовым, так как на его основе формулируются определения всех остальных видов зависимостей. Атрибут В функционально зависит от атрибута А, если каждому значению атрибута А соответствует одно и только одно значение атрибута В. Т.е. если нам известно значение атрибута А (его иначе называют детерминантом), то мы однозначно можем определить значение атрибута В. Однако данному значению атрибута В может соответствовать несколько различных значений атрибута А. Математически функциональная зависимость В от А обозначается записью А

    В. Необходимо отметить, что А и В могут быть составными, т.е. состоять из двух и более атрибутов. Если же между атрибутами A и B существует функциональная зависимость вида А

    В и В

    А (т.е между А и В имеется взаимнооднозначное соответствие), то говорят о функциональной взаимозависимости (обозначается как А

    В или
    В

    А). Наличие функциональной взаимозависимости между атрибутами А и В приводит к образованию связи «один к одному» между этими атрибутами. Например, если в БД наряду с идентификационным номером клиента хранится и номер его паспорта. Функциональная зависимость может быть полной либо частичной. Частичной зависимостью (частичной функциональной зависимостью) называется зависимость атрибута B от части составного атрибута A. Полная функциональная зависимость определяется зависимостью атрибута B от всего составного атрибута A.
    Атрибут С зависит от атрибута А транзитивно (существует транзитивная зависимость), если для атрибутов А, В, С выполняются условия А

    В и В

    С, но обратная зависимость отсутствует. Например,
    ФИО

    Должность

    Оклад.
    Между атрибутами может иметь место также многозначная зависимость. Атрибут В многозначно зависит от атрибута А, если каждому значению А соответствует множество значений В. Многозначные
    6
    зависимости могут образовывать связи «один ко многим», «многие к одному» или «многие ко многим», обозначаемые соответственно А

    В, А

    В и А

    В. Например, имя клиента и его идентификационный номер существуют совместно. Клиентов с одинаковыми именами может быть много, но все они имеют различные идентификационные номера (один ко многим). Или информация о клиентах и обслуживаемых их продавцах хранится совместно. Тогда несколько клиентов с одинаковыми именами могут быть обслужены разными продавцами и наоборот, несколько продавцов с одинаковыми именами могут получить заказы от нескольких клиентов (многие ко многим). Атрибуты могут быть и независимыми. Два или более атрибута будут взаимно независимыми, если ни один из этих атрибутов не является функционально зависимым от других.
    Проектирование концептуальной модели можно провести на основе анализа существующих зависимостей между атрибутами. Понятно, что все атрибуты, характеризующиеся полной функциональной зависимостью от ключевого атрибута, наверняка будут атрибутами объекта одного типа. Те атрибуты, которые характеризуются транзитивной зависимостью от ключевого атрибута, необходимо выделить и сформировать отдельные объекты. Многозначные зависимости также требуют дополнительного разбиения по объектам. Практически процесс формирования объектов на основе анализа зависимостей необходимо продолжать до тех пор, пока все неключевые атрибуты будут характеризоваться только полной функциональной зависимостью от соответствующих ключевых атрибутов.
    На первом же шаге проектирования можно значительно сократить множество анализируемых атрибутов, исключив тривиальные зависимости, т.е. те зависимости, которые не могут не выполняться. Атрибуты, связанные тривиальной зависимостью, необходимо всегда рассматривать вместе. В качестве примера схематично представим концептуальную модель расписания вылета самолетов некоторого аэропорта (смотри рис. 2).
    Существует большое количество видов концепту- альных моделей, позволяющих отобразить семантику данных.
    Критериями выбора модели могут служить следующие характеристики:

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

    формализованность;
    7
    Номер пункт пункт тип
    рейса отправления назначения самолета
    Номер время и дата свободные
    рейса вылета места
    Рис. 2. Концептуальная модель расписания вылета самолетов


    простота и легкость восприятия. Модель должна восприниматься конечными пользователями;

    минимальность. Модель должна обладать минимальным (но достаточным) набором не перекрывающихся по смыслу концепций;

    представительность. Модель должна обладать выразительной диаграммной техникой представления.
    Всеми этими характеристиками обладает модель сущность-связь, специально разработанная для концептуального моделирования реляционных БД. Большим достоинством ее также является возможность автоматизации процесса проектирования.
    1.3. Модель сущность-связь
    Модель сущность-связь (entity-relationship model или просто ER model) представляет собой высокоуровневую концептуальную модель данных, созданную Ченом (Chen) в 1976 году с целью упрощения задачи проектирования БД.
    Основным объектом в ER модели является сущность, или объект
    (entity), которая представляет собой реальную вещь и может быть реально существующим (физическое существование) или абстрактным
    (концептуальное существование) объектом. Каждая сущность имеет набор атрибутов, представляющих ее свойства. Сущность имеет имя – тип, который представляет совокупность сущностей с одинаковым набором атрибутов. Таким образом, некоторая сущность определяется ее типом
    (именем) и набором атрибутов. В свою очередь, некоторый экземпляр сущности будет характеризоваться набором значений атрибутов.
    Различаются сильные и слабые типы сущностей. Слабый тип сущности определяется как тип, существование которого зависит от какого-то другого типа сущности, а сильный как тип, существование которого не зависит от всех других типов сущностей. Слабые сущности могут быть дочерними, подчиненными и зависимыми, а сильные – родительскими, владельцами или доминантными.
    Между типами сущностей могут существовать связи. В общем случае связи могут быть унарными (рекурсивная), бинарными, тернарными и быть более высокого порядка (степень связи). Как и для сущностей, следует различать связи и типы связей. В свою очередь связи могут также иметь атрибуты. На связи накладываются ограничения по степени участия и по показателю кардинальности. Показатель кардинальности соответствует типу связи в ее обычной формулировке, т.е. 1:1, 1:M, M:1, M:N. Если ER модель составляется для некоторого предприятия (смотри пример на рис. 3), то показатели кардинальности будут прежде всего определяются
    8
    производственными правилами (бизнес правилами), установленными на данном предприятии.
    Рис. 3. Пример ER модели
    Термин «бизнес-правило» получил широкое распространение, поскольку при моделировании любой предметной области важнейшей задачей является выделение и учет всех без исключения отношений между объектами (если, конечно, этого позволяет сама модель). Связям могут также присваиваться ролевые имена для однозначного определения назначения каждой связи. Если назначение каждой связи определено недвусмысленно, то ролевые имена не указываются. Степень участия может быть полной и частичной. Полной она будет в том случае, если для существования объекта, участвующего в связи, требуется существование другого объекта. Например, если правила предприятия требуют, чтобы любой служащий работал в некотором отделе, то экземпляр сущности
    «Служащий» будет существовать, только если он участвует в связи
    «Работает на» с сущностью «Отдел». Называется иначе зависимостью существования. В то же самое время только некоторые служащие могут руководить отделами. Значит участие сущности «Служащий» в связи
    «Руководство» будет только частичным.
    Допустимо использование и альтернативного варианта обозначения структурных ограничений, накладываемых на связь в виде двух чисел (min, max), означающих минимальное и максимальное количество экземпляров сущности (0 ≤ min ≤ max и max ≥ 1), участвующей в связи. Такой вид обозначения позволяет отобразить больше информации о степени участия. min = 0 означает частичное участие, min > 0 – полное, а max = N указывает на отсутствие ограничений со стороны максимума. Например, надпись (0, 1)
    9
    над связью «Руководство» означает, что любой служащий не обязательно должен руководить некоторым отделом, да и руководить одновременно двумя отделами он тоже не может.
    Достоинством этой модели является наличие удобной и выразительной диаграммной техники построения модели (смотри рис. 4). На диаграмме каждый тип объекта показан в виде отдельного прямоугольника с его именем внутри, причем слабые типы объектов изображаются в двойной рамке. Атрибуты показаны в виде эллипсов с названием атрибута, соединенных сплошной линией с соответствующим объектом или типом связи. Эллипс обведен штриховой линией, если атрибут производный, и двойной линией, если атрибут многозначный. Если атрибут составной, то составляющие его атрибуты показаны в виде других эллипсов, соединенных с эллипсом составного атрибута с помощью дополнительных линий.
    Ключевые атрибуты, как правило, подчеркиваются, а множества значений не показываются вовсе.
    Каждый тип связи показан в виде ромба с названием связи внутри.
    Ромб окружен двойной линией, если связь задана между слабым типом объекта и типом объекта, от существования которого находится в зависимости слабый тип объекта.
    Участники каждой связи присоединены к соответствующему типу связи сплошными линиями.
    Каждая такая линия содержит надпись "1" "M" или "N" для обозначения типа связи. Двойная линия обозначает полное участие.
    К недостаткам этой модели можно отнести возможность появления
    «ловушек»
    при недостаточном определении связей между объектами. К таким ловушкам можно отнести ловушки разветвления и разрыва.
    Ловушка разветвления имеет место в том случае, когда модель отображает связи между типами сущностей, но путь между отдельными сущностями этих типов указан не
    10
    Рис. 4 Система обозначений, принятая в ER модели
    однозначно. Например, ловушка разветвления может возникать, когда две и более связей «один ко многим» разветвляются из одной сущности, как показано на рис. 5. В данном примере схема данных, представленная слева, не позволяет однозначно ответить на вопрос, к каким группам относятся студенты. Устранить такую ловушку можно с помощью реорганизации связей между типами сущностей – так, как показано на схеме справа.
    Рис. 5. Пример возникновения ловушки разветвления
    Ловушка разрыва появляется в том случае, когда в модели предполагается наличие связи между типами сущностей, но не существует пути между отдельными сущностями этих типов. Ловушка разрыва может возникать между тремя и более сущностями, связанными между собой отношениями «один ко многим» при наличии связи с частичным участием.
    Пример представлен на рис. 6.
    Рис. 6. Пример возникновения ловушки разрыва
    Из схемы, представленной на слева следует, что в отделе работает несколько сотрудников и за ними закреплено определенное имущество. Но не за каждым сотрудником должно быть закреплено какое-то имущество и не все имущество обязательно должно быть закреплено за сотрудниками в данный момент времени. Такая схема не позволяет ответить на вопрос, какое имущество (закрепленное или не закрепленное) числится за отделом.
    Такая ловушка устраняется введением дополнительной связи между типами сущностей, как показано на схеме справа.
    11

      1   2   3   4   5   6


    написать администратору сайта