Лекции по "Информатике"

Автор работы: Пользователь скрыл имя, 09 Декабря 2012 в 10:21, курс лекций

Описание работы

Временем появления на Земле вида «человек разумный» вполне можно считать тот момент, когда представители этого вида стали собирать, осмысливать, обрабатывать, хранить и передавать разнообразную информацию. Таким образом, человечество (социум) постоянно имеет дело с информацией.
Строгого научного определения понятия «информация» нет. Существует более 300 толкований этого термина.

Файлы: 1 файл

Лекции по Информатике.doc

— 2.85 Мб (Скачать файл)


 

Рис. 6.11. Другая структура иерархической  БД


Рис. 6.12. Экземпляр иерархической БД. Запись содержит сведения о хирурге Егорове Е.Е.

Иерархические модели, отличаются друг от друга, являясь при этом моделями одной предметной области. Различия между ними определяются способами представления взаимосвязей между объектами. Это означает, что в данном случае разработчик диктует подчинённость отношений в БД. Можно предложить и другие структуры иерархической БД для данной предметной области.

Включение и удаление данных

В первой иерархической модели исходным узлом является ПАЦИЕНТ, а порождённым, в котором хранятся сведения о лечении пациента, - ХИРУРГ. Если один хирург оперирует более одного пациента, то сведения дублируются для каждого пациента. Таким образом, возникает избыточность информации.

Включение данных. Экземпляр порождённого узла не может существовать в отсутствие экземпляра исходного узла. В такую БД невозможно добавить сведения о хирурге, который не оперировал ни одного пациента.

Удаление данных. При удалении экземпляра исходного узла также удаляются все экземпляры порождённых узлов, что приводит к потере информации.

Аномалии запоминания и удаления связаны с тем, что в иерархической модели данных взаимосвязи «многие ко многим» непосредственно не поддерживаются, а реализуется только взаимосвязь «один ко многим». Эти аномалии могут быть частично устранены за счёт введения двух иерархических моделей, связанных между собой.

Рис. 6.13. Представление данных в БД ПАЦИЕНТ и ХИРУРГ с помощью двух иерархических моделей данных.

В первой модели корневым узлом является ПАЦИЕНТ, а на втором уровне расположен узел ОПЕРАЦИЯ. Во второй модели корневым узлом является ХИРУРГ, а на втором уровне расположен узел ОПЕРАЦИЯ. Узел ОПЕРАЦИЯ первой модели связан с корневым узлом ХИРУРГ, аналогично Узел ОПЕРАЦИЯ второй модели связан с корневым узлом ПАЦИЕНТ. В такой комбинированной модели информация об операции хранится с избыточностью, однако таким путём удаётся устранить аномалии включения и удаления сведений о пациенте и о хирурге.

Достоинства модели

  • наличие хорошо зарекомендовавших себя СУБД и большие массивы данных, накопленных в БД;
  • простота понимания и использования;
  • простота оценки операционных характеристик благодаря заранее заданным взаимосвязям;
  • большая скорость доступа к данным в силу линейности пути.

Недостатки модели

  • взаимосвязи «многие ко многим» в иерархической модели могут быть реализованы искусственно, но структура становится громоздкой; избыточность на логическом уровне не является избыточностью, она обеспечивает простоту; но на физическом уровне избыточность нежелательна;
  • из-за строгой иерархической упорядоченности объектов усложняются операции включения и удаления;
  • особенности иерархических структур обуславливают процедурность операция манипулирования данными.

Сетевая модель данных

В сетевой модели данных понятия  главного и подчинённых объектов несколько расширены. Любой объект может быть и главным и подчинённым (в сетевой модели главный объект называется «владелец набора», а  подчинённый – «член набора»). Один и тот же объект может одновременно выступать и в роли владельца, и в роли владельца, и в роли члена набора. Это означает, что каждый объект может участвовать в любом числе взаимосвязей.

Основными компонентами сетевой модели данных являются записи и объекты. В  этой модели объекты предметной области объединяются в «сеть». Каждый тип записи может содержать нуль, один или несколько атрибутов (полей).

 

Рис. 6.14. Различные типы объектов изображаются различными фигурами, а связи «владелец - член» - стрелками

Вся БД логически разделяется на области – так будем называть поименованную часть БД, в которой могут содержаться экземпляры записей и наборов или частей наборов. Каждая область может обладать собственными уникальными физическими характеристиками. Области могут обрабатываться как по отдельности, так и вместе с дру гими областями.

Рис. 6.15. Пример разбиения на области в сетевой модели данных

Поясним различие между типом и  экземпляром записи. ПАЦИЕНТ является типом записи, а строка символов «1111, Иванов И.И., Вишнёвая 10 – 10» - экземпляром типа записи ПАЦИЕНТ. Т.о. в БД может иметься нуль, одна или несколько экземпляров записи некоторого типа. Между записями разных типов устанавливаются связи для описания и изображения типов наборов.

В приведённом ранее примере мы должны организовать набор ПАЦИЕНТ-ПЕРЕНЁС-ОПЕРАЦИЮ. В этом наборе будет

Рис. 6.17. Пример набора в сетевой модели данных

Т.о. тип набора представляет логическую взаимосвязь «один ко многим»  между владельцем и членом набора. Каждому типу наборов присваивается имя, что позволяет каждому типу объектов участвовать в нескольких взаимосвязях.

Для приведённого на рис. 6.17. типа набора экземпляром набора будет являться например:

Рис. 6.18. Экземпляр набора ПАЦИЕНТ-ПЕРЕНЁС-ОПЕРАЦИЮ

Как видно на рисунке экземпляр  набора состоит из одного экземпляра типа «запись-владелец» ПАЦИЕНТ и двух экземпляров типа «запись-член» ОПЕРАЦИЯ. Между экземпляром типа записи-владельца и экземплярами типа записи-члена существует взаимосвязь «один ко многим». Определённый экземпляр типа записи-члена в экземпляре данного типа набора не может одновременно принадлежать более чем одному экземпляру типа записи-владельца. Иными словами уникальность владельца типа набора обязательна.

Свойства сетевой модели данных

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

Рассмотрим, как будет реализована  взаимосвязи «многие ко многим»  т.е. взаимосвязь между объектами ПАЦИЕНТ и ХИРУРГ, которую мы уже рассмотрели в иерархической модели. Эти данные в сетевой модели будут представлены так:

Рис. 6.19. Представление данных с  помощью сетевой модели

ПАЦИЕНТ

Рис. 6.20. Экземпляры наборов ПАЦИЕНТ-ПЕРЕНЁС-ОПЕРАЦИЮ и ОПЕРАЦИЯ-И-

Следует обратить внимание, что набор  ПАЦИЕНТ-ПЕРЕНЁС-ОПЕРАЦИЮ – является иерархическим. Аналогично, набор ОПЕРАЦИЯ-И-ПАЦИЕНТ – также иерархический. Однако, из приведённого экземпляра сетевой модели данных видно, что объект ОПЕРАЦИЯ не дублируется, как иерархической модели данных.

В этом коренное отличие между сетевой и иерархической моделями данных: в сетевой модели каждая запись может участвовать в любом числе наборов.

Дополнительные классы типов наборов

Одни и те же два типа записей  могу входить в разные наборы. Это  называется первым классом наборов.

Рис. 6.21. Два набора «Выполненная операция» и «Планируемая операция», в которых участвуют одни и те же типы записей. Это даёт возможность отразить два аспекта взаимосвязей между объектами.

 

Второй класс включает в себя три или более типа записей. Такие  наборы называются многочленными


Рис. 6.22. Набор ПАЦИЕНТ-ОПЕРАЦИЯ-ЗАБОЛЕВАНИЕ является многочленным.

 

Рис. 6.23. Экземпляр набора ПАЦИЕНТ-ОПЕРАЦИЯ-ЗАБОЛЕВАНИЕ. (один экземпляр записи-владельца  и пять экземпляров записей-членов).

Третий класс называется сингулярным  набором. Он также определяется в терминах записи-владельца и записи-члена. Однако в БД может содержаться только один экземпляр сингулярного набора.

Рис. 6.24. Сингулярный тип набора

Такой класс записей используется для:

  • объединения записей, у которых нет естественного владельца;
  • включения записей, которые при вводе в БД не имеют владельца, но могут его приобрести впоследствии; тогда запись исключается из сингулярного набора и включается в экземпляр набора с новым владельцем.

Включение и удаление данных

Включение. Допускается добавление новой записи ХИРУРГ в качестве экземпляра владельца в экземпляр набора ОПЕРАЦИЯ-ПАЦИЕНТА, в котором экземпляр операция отсутствует. Т.о. можно в БД ввести сведения о хирурге, не прооперировавшем ни одного пациента.

Удаление. При удалении экземпляра владельца ХИРУРГ удаляются все указателли, связывающие операции, выполненные в экземплярах набора ОПЕРАЦИЯ-ПАЦИЕНТА. Информация же о пациентах, которых прооперировал данных хирург не уничтожается. Удаляется только информация о хирурге.

Достоинства модели

  • высокая скорость доступа к данным;
  • простота реализации часто встречающихся в реальном мире взаимосвязей «многие ко многим».

Недостатки модели

  • сложность модели (прикладной программист должен детально знать логическую структуру БД, поскольку ему необходимо осуществлять навигацию среди различных экземпляров наборов и экземпляров записей);
  • высокая вероятность потери независимости данных при организации БД;
  • как правило сложности с разработкой прикладных программ (т.к. используется сложное представление данных в БД).

Лекция 08: СУБД (продолжение)

Реляционная модель данных

Описание

Использование реляционной модели данных в СУБД было предложено в 1970 г. доктором Э.Ф. Коддом. В реляционной модели данных объекты и взаимосвязи между ними представляются в виде таблиц.

Элементы модели

Любой фрагмент предметной области  может быть представлен как множество сущностей, между которыми существует некоторое множество связей. Дадим определения:

Сущность (entity) - это объект, который может быть идентифицирован неким способом, отличающим его от других объектов.

Примеры: конкретный человек, предприятие, событие и т.д.

Набор сущностей (entity set) - множество сущностей одного типа (обладающих одинаковыми свойствами).

Примеры: все люди, предприятия, праздники и т.д. Наборы сущностей не обязательно должны быть непересекающимися. Например, сущность, принадлежащая к набору МУЖЧИНЫ, также принадлежит набору ЛЮДИ.

Сущность  фактически представляет из себя множество атрибутов, которые описывают свойства всех членов данного набора сущностей.

Пример: 
рассмотрим множество работников некого предприятия. Каждого из них можно описать с помощью характеристик табельный номер, имя, возраст. Поэтому, сущность СОТРУДНИК имеет атрибуты ТАБЕЛЬНЫЙ_НОМЕР, ИМЯ, ВОЗРАСТ. Используя нотацию языка Pascal этот факт можно представить как:

type employe = record

number : string[6];

name   : string[50];

age    : integer;

end;

В дальнейшем для определения сущности и её атрибутов будем использовать обозначение вида

СОТРУДНИК (ТАБЕЛЬНЫЙ_НОМЕР, ИМЯ, ВОЗРАСТ).

Например отделы, на которые подразделяется предприятие, и в которых работают сотрудники, можно описать как ОТДЕЛ(НОМЕР_ОТДЕЛА, НАИМЕНОВАНИЕ).

Множество значений (область определения) атрибута называется доменом.

Например, для атрибута ВОЗРАСТ  домен (назовём его ЧИСЛО_ЛЕТ) задаётся интервалом целых чисел больших нуля, поскольку людей с отрицательным возрастом не бывает.

В статье П.Чена атрибут определяется как функция, отображающая набор сущностей в набор значений или в декартово произведение наборов значений. Так атрибут ВОЗРАСТ производит отображение в набор значений (домен) ЧИСЛО_ЛЕТ. Атрибут ИМЯ производит отображение в декартово произведение наборов значений ИМЯ, ФАМИЛИЯ и ОТЧЕСТВО.

Отсюда определяется ключ сущности - группа атрибутов, такая, что отображение набора сущностей в соответствующую группу наборов значений является взаимнооднозначным отображением. Другими словами: ключ сущности - это один или более атрибутов уникально определяющих данную сущность. В нашем примере ключом сущности СОТРУДНИК является атрибут ТАБЕЛЬНЫЙ_НОМЕР (конечно, только в том случае, если все табельные номера на предприятии уникальны).

Связь (relationship) - это ассоциация, установленная между несколькими сущностями.

Примеры:

поскольку каждый сотрудник работает в каком-либо отделе, между сущностями СОТРУДНИК и ОТДЕЛ существует связь «работает в» или ОТДЕЛ-РАБОТНИК; так как один из работников отдела является его руководителем, то между сущностями СОТРУДНИК и ОТДЕЛ имеется связь «руководит» или ОТДЕЛ-РУКОВОДИТЕЛЬ; могут существовать и связи между сущностями одного типа, например связь РОДИТЕЛЬ - ПОТОМОК между двумя сущностями ЧЕЛОВЕК; (В скобках здесь следует отметить, что в методике проектирования данных есть своеобразное правило хорошего тона, согласно которому сущности обозначаются с помощью имен существительных, а связи - глагольными формами. Данное правило, однако, не является обязательным).

К сожалению, не существует общих правил определения, что считать сущностью, а что связью. В рассмотренном выше примере мы положили, что «руководит» - это связь. Однако, можно рассматривать сущность «руководитель», которая имеет связи «руководит» с сущностью «отдел» и «является» с сущностью «сотрудник».

Связь также может иметь атрибуты. Например, для связи ОТДЕЛ-РАБОТНИК можно задать атрибут СТАЖ_РАБОТЫ_В_ОТДЕЛЕ.

Роль сущности в связи - функция, которую выполняет сущность в данной связи. Например, в связи РОДИТЕЛЬ-ПОТОМОК сущности ЧЕЛОВЕК могут иметь роли «родитель» и «потомок». Указание ролей в модели «сущность-связь» не является обязательным и служит для уточнения семантики связи.

Набор связей (relationship set) - это отношение между n (причём n не меньше 2) сущностями, каждая из которых относится к некоторому набору сущностей.

В случае n=2, т.е. когда связь объединяет две сущности, она называется бинарной. Доказано, что n - арный набор связей (n>2) всегда можно заменить множеством бинарных, однако первые лучше отображают семантику предметной области.

Взаимосвязи также рассматриваются  в качестве объектов. Каждая таблица  представляет один объект и состоит из строк и столбцов.

Столбцы в реляционной модели таблицы часто называют атрибутами, строки – кортежами. Значения в столбце выделяются из домена. Так для атрибута «Код пациента» домен составляют все четырёхзначные числа (0000,…,9999), хотя в настоящий момент таблица ПАЦИЕНТЫ содержит только значения 1111, 1234,2345, 5432, 2468.

Информация о работе Лекции по "Информатике"