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

Инфологическая модель данных "Сущность-связь"

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

Сущность - любой различимый объект (объект, который мы можем отличить от другого), информацию о котором необходимо хранить в базе данных. Сущностями могут быть люди, места, самолеты, рейсы, вкус, цвет и т.д. Необходимо различать такие понятия, как тип сущности и экземпляр сущности. Понятие тип сущности относится к набору однородных личностей, предметов, событий или идей, выступающих как целое. Экземпляр сущности относится к конкретной вещи в наборе. Например, типом сущности может быть ГОРОД, а экземпляром - Москва.

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

Абсолютное различие между типами сущностей и атрибутами отсутствует. Атрибут является таковым только в связи с типом сущности. В другом контексте атрибут может выступать как самостоятельная сущность. Например, для автомобильного завода цвет - это только атрибут продукта производства, а для лакокрасочной фабрики цвет - тип сущности.

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

Связь - ассоциирование двух или более сущностей. Если бы назначением базы данных было только хранение отдельных, не связанных между собой данных, то ее структура могла бы быть очень простой. Однако одно из основных требований к организации базы данных - это обеспечение возможности отыскания одних сущностей по значениям других, для чего необходимо установить между ними определенные связи. А так как в реальных базах данных нередко содержатся сотни или даже тысячи сущностей, то теоретически между ними может быть установлено более миллиона связей. Наличие такого множества связей и определяет сложность инфологических моделей.

Реляционная структура данных

В конце 60-х годов появились работы, в которых обсуждались возможности применения различных табличных даталогических моделей данных, т.е. возможности использования привычных и естественных способов представления данных. Наиболее значительной из них была статья сотрудника фирмы IBM д-ра Э.Кодда (Codd E.F., A Relational Model of Data for Large Shared Data Banks. CACM 13: 6, June 1970), где, вероятно, впервые был применен термин "реляционная модель данных".

Будучи математиком по образованию Э.Кодд предложил использовать для обработки данных аппарат теории множеств (объединение, пересечение, разность, декартово произведение). Он показал, что любое представление данных сводится к совокупности двумерных таблиц особого вида, известного в математике как отношение - relation

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

Доменом называется множество атомарных значений одного и того же типа. Смысл доменов состоит в следующем. Если значения двух атрибутов берутся из одного и того же домена, то, вероятно, имеют смысл сравнения, использующие эти два атрибута (например, для организации транзитного рейса можно дать запрос "Выдать рейсы, в которых время вылета из Москвы в Сочи больше времени прибытия из Архангельска в Москву"). Если же значения двух атрибутов берутся из различных доменов, то их сравнение, вероятно, лишено смысла: стоит ли сравнивать номер рейса со стоимостью билета?

Заголовок состоит из такого фиксированного множества атрибутов A1, A2, ..., An, что существует взаимно однозначное соответствие между этими атрибутами Ai и определяющими их доменами Di (i=1,2,...,n).

Тело состоит из меняющегося во времени множества кортежей, где каждый кортеж состоит в свою очередь из множества пар атрибут-значение (Ai:Vi), (i=1,2,...,n), по одной такой паре для каждого атрибута Ai в заголовке. Для любой заданной пары атрибут-значение (Ai:Vi) Vi является значением из единственного домена Di, который связан с атрибутом Ai.

Степень отношения - это число его атрибутов. Отношение степени один называют унарным, степени два - бинарным, степени три - тернарным, ..., а степени n - n-арным.

Кардинальное число или мощность отношения - это число его кортежей. Кардинальное число отношения изменяется во времени в отличие от его степени.

Поскольку отношение - это множество, а множества по определению не содержат совпадающих элементов, то никакие два кортежа отношения не могут быть дубликатами друг друга в любой произвольно-заданный момент времени. Пусть R - отношение с атрибутами A1, A2, ..., An. Говорят, что множество атрибутов K=(Ai, Aj, ..., Ak) отношения R является возможным ключом R тогда и только тогда, когда удовлетворяются два независимых от времени условия:

Уникальность: в произвольный заданный момент времени никакие два различных кортежа R не имеют одного и того же значения для Ai, Aj, ..., Ak.

Минимальность: ни один из атрибутов Ai, Aj, ..., Ak не может быть исключен из K без нарушения уникальности.

Каждое отношение обладает хотя бы одним возможным ключом, поскольку по меньшей мере комбинация всех его атрибутов удовлетворяет условию уникальности. Один из возможных ключей (выбранный произвольным образом) принимается за его первичный ключ. Остальные возможные ключи, если они есть, называются альтернативными ключами.

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

Отношение-Таблица(иногдаФайл),Кортеж - Строка (иногда Запись), Атрибут - Столбец, Поле. При этом принимается, что "запись" означает "экземпляр записи", а "поле" означает "имя и тип поля".

Реляционная база данных - это совокупность отношений, содержащих всю информацию, которая должна храниться в БД. Однако пользователи могут воспринимать такую базу данных как совокупность таблиц.

Проектирование данных проекта

В дипломном проекте АРМ менеджера по аренде офисных помещений при проектировании данных, для их реализации и обработки в программной среде было создано одиннадцать основных таблиц.

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

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

Сущность - любой различимый объект (объект, который мы можем отличить от другого), информацию о котором необходимо хранить в базе данных. Сущностями могут быть люди, места, самолеты, рейсы, вкус, цвет и т.д. Необходимо различать такие понятия, как тип сущности и экземпляр сущности . Понятие тип сущности относится к набору однородных личностей, предметов, событий или идей, выступающих как целое. Экземпляр сущности относится к конкретной вещи в наборе. Например, типом сущности может быть ГОРОД, а экземпляром - Москва, Киев и т.д.

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

Красный, Синий, Банановый, Белая ночь и т.д., однако каждому экземпляру сущности присваивается только одно значение атрибута.

Абсолютное различие между типами сущностей и атрибутами отсутствует. Атрибут является таковым только в связи с типом сущности. В другом контексте атрибут может выступать как самостоятельная сущность. Например, для автомобильного завода цвет - это только атрибут продукта производства, а для лакокрасочной фабрики цвет - тип сущности.

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

Связь - ассоциирование двух или более сущностей. Если бы назначением базы данных было только хранение отдельных, не связанных между собой данных, то ее структура могла бы быть очень простой. Однако одно из основных требований к организации базы данных - это обеспечение возможности отыскания одних сущностей по значениям других, для чего необходимо установить между ними определенные связи. А так как в реальных базах данных нередко содержатся сотни или даже тысячи сущностей, то теоретически между ними может быть установлено более миллиона связей. Наличие такого множества связей и определяет сложность инфологических моделей.

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

хорошую работу на сайт">

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

Размещено на http://www.allbest.ru/

Инфологическая модель данных "Сущность-связь"

2.1 Основные понятия

Модель «сущность-связь» (entity-relationship model) предложена американским исследователем в области баз данных Питером Ченом в 1976 году. С тех пор она расширялась и модифицировалась как самим Ченом, так и многими другими исследователями. В различных вариантах она вошла в состав многих автоматизированных средств поддержки проектирования информационных систем. В настоящее время нет единого стандарта этой модели, но есть набор общих конструкций, лежащих в основе большинства её вариантов. Эти общие конструкции мы и изучим здесь.

Существует много различных систем построения моделей ER.

Мы, разумеется, не намерены изучить их все. В этом нет необходимости. Усвоив основные концепции ER-модели и принципы построения диаграмм в одной системе обозначений, нетрудно разобраться в любой другой.

Какие бы системы ни использовались, ER-диаграмма наглядно и точно отражает представления автора о данных . Поэтому она является хорошим источником информации для проектировщика логической модели данных. Их очень удобно использовать при обсуждении требований к данным с конечными пользователями.

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

2.2 Элементы ER - модели

модель инфологический сущность данные

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

2.2.1 Сущность

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

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

СТУДЕНТ Петров,

ПРЕПОДАВАТЕЛЬ Ломов,

УЧЕБНИК по БД,

АУДИТОРИЯ,

УЧЕБНЫЕ ЗАНЯТИЯ для группы и т.п.

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

К сожалению, формального определения этого понятия не существует . По крайней мере, на сегодняшний день.

Сущности одного и того же типа образуют класс сущности или тип сущности .

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

Экземпляр сущности относится к конкретной вещи в наборе. Например, типом сущности может быть ГОРОД, а экземпляром - Москва, Киев и т.д.

СТУДЕНТ - это тип или класс сущности, имеющей одинаковые наборы характеристик , значения которых представляют интерес для пользователя (каких). Пользователь заинтересован в сведениях об экземплярах класса. Например, о студентах, обучающихся в настоящее время на кафедре ПМ.

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

Например, представления о СТУДЕНТе, имеющиеся у зам. декана, преподавателя и уборщицы, различаются.

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

Для преподавателя СТУДЕНТ - это лицо, имеющее право посещать его занятия и обязанное в определённые сроки отчитываться о результатах изучения тех дисциплин, которые ведёт преподаватель.

Для уборщицы СТУДЕНТ - это безликое множество людей, таскающее грязь с улицы, повсюду плюющее, забивающее мусором все помещения, бессмысленно галдящее в коридорах и мешающее махать шваброй.

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

2.2.2 Атрибут

Атрибут - это поименованная характеристика сущности (свойство типа сущности), значимая с точки зрения пользователя.

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

У атрибута также существует различие между типом и экземпляром, при этом каждому экземпляру сущности присваивается только одно значение атрибута.

Например:

Тип атрибута ЦВЕТ имеет много экземпляров или значений:

Красный, Синий и т.д.

Любой атрибут является атрибутом только в связи с типом сущности. В другом контексте атрибут может выступать как самостоятельная сущность. Например, для автомобильного завода цвет - это только атрибут продукта производства, а для лакокрасочной фабрики цвет - тип сущности.

Примеры: НомерСтудбилета, ФамилияПреподавателя, НазваниеУчебника, Заказчик и т.п.

Атрибут может быть простым , как первые три. Их значения принадлежат простым типам данных.

Он может быть составным, например {ИмяЗаказчика, АдресЗаказчика, ТелефонЗаказчика}

Заметим, что решение о том, является ли атрибут простым или составным, зависит от степени детализации сведений, приемлемой для пользователя. Например, НомерАудитории можно считать простым атрибутом, если пользователя вполне устраивают строковые значения вида `227рк", `418фэт", `411гл" .

Атрибут может быть производным . Например, в состав атрибутов сущности ГРУППА может входить атрибут ЧисленностьГруппы . Его значение для каждого экземпляра ГРУППы может быть вычислено подсчётом числа экземпляров сущности СТУДЕНТ, связанных с этим экземпляром.

Замечание . Значения производных атрибутов сохраняются в БД в исключительных случаях. Однако на этапе проектирования все такие атрибуты, представляющие интерес для пользователя, должны быть выявлены и описаны.

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

Для сущности Расписание поездов ключом является атрибут Номер_поезда или набор: {Пункт_отправления, Время_отправления и Пункт_назначения} .

Выделяют уникальные ключи (потенциальные ключи) и неуникальные . Значение уникального ключа не может встретиться у двух экземпляров сущности. Оно указывает на один и только один экземпляр (НомерСтудбилета, НомерАудитории ). Значение неуникального ключа указывает на множество экземпляров (ФамилияПреподавателя = Иванов указывает на всех Ивановых, преподающих в ВУЗе).

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

Сущность может иметь несколько уникальных и неуникальных ключей.

Атрибут нельзя назначить уникальным ключом сущности. Он либо является таковым, либо не является.

2.2.4 Связь

Связь - это характеристика отношений между двумя или более сущностями.

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

Однако одно из основных требований к организации базы данных - это обеспечение возможности отыскания одних сущностей по значениям других, для чего необходимо установить между ними определенные связи. А так как в реальных базах данных нередко содержатся сотни или даже тысячи сущностей, то теоретически между ними может быть установлено более миллиона связей. Наличие такого множества связей и определяет сложность инфологических моделей.

Как и для сущностей и атрибутов, в ER-модели различаются типы (классы) и экземпляры связей .

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

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

2.3 Классификация сущностей и связей. Системы обозначения ER-моделей

Идея Чена, благодаря которой его имя стало широко известным в кругах проектировщиков баз данных, состоит в том, что сущности и связи следует представлять графически . Тогда модель требований пользователя будет компактной и наглядной. Существует великое множество систем обозначений для представления ER-моделей . Стандарта нет. Мы будем придерживаться наиболее распространённых обозначений.

Размещено на Allbest.ru

Подобные документы

    Построение инфологической модели тестовой программы по электронному учебнику для проверки знаний учащихся. Инфологическое моделирование и семантическое представление предмета в базе данных. Модель "сущность-связь" и связи между выявленными сущностями.

    курсовая работа , добавлен 27.02.2009

    Сущность и характеристика типов моделей данных: иерархическая, сетевая и реляционная. Базовые понятия реляционной модели данных. Атрибуты, схема отношения базы данных. Условия целостности данных. Связи между таблицами. Общие представления о модели данных.

    курсовая работа , добавлен 29.01.2011

    Системный анализ и краткая характеристика предметной области. Функции для работы с буферизованной таблицей. Описание предметной области и инфологическое моделирование. Модель "сущность-связь". Проектирование баз данных на основе принципов нормализации.

    курсовая работа , добавлен 27.02.2009

    Создание модели "сущность-связь" и нормализация данных средствами программы Microsoft Access. Идентификация объектов предметной области и отношений между ними, разработка структуры физической модели, запросов и отчетов базы данных о студентах ВУЗа.

    контрольная работа , добавлен 08.06.2011

    Процесс проектирования базы данных на основе принципов нормализации. Применение инфологической модели на втором этапе проектирования. Семантика предметной области в модели базы данных. Оформление, выдача и обмен паспорта. Модель "сущность-связь".

    курсовая работа , добавлен 27.02.2009

    Процесс проектирования с использованием принципов нормализации. Определение сущности "Группа" в модели ER. Моделирование связи между сущностями "Студент" и "Группа" и предметной области "Учебный процесс". Применение инфологической модели в проекте.

    курсовая работа , добавлен 27.02.2009

    Анализ и описание предметной области. Функции программы "Прокат", которая работает на одном или нескольких компьютерах операторов пункта проката. Инфологическое моделирование, типы и экземпляры сущностей. Связи между сущностями и модель "сущность-связь".

    курсовая работа , добавлен 27.02.2009

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

    реферат , добавлен 22.02.2011

    Современные системы управления базами данных (СУБД). Анализ иерархической модели данных. Реляционная модель данных. Постреляционная модель данных как расширенная реляционная модель, снимающая ограничение неделимости данных, хранящихся в записях таблиц.

    научная работа , добавлен 08.06.2010

    Освоение сервисной системы управления базами данных Microsoft SQL. Разработка базы данных "Служба АТС" в среде Microsoft SQL Server Management Studio и создание запросов на языке SQL. Апробация инфологической модели "сущность - связь" базы данных.

Инфологическая модель баз данных "Сущность-связь" Основные понятия

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

Сущность – любой различимый объект (объект, который мы можем отличить от другого), информацию о котором необходимо хранить в базе данных. Сущностями могут быть люди, места, самолеты, рейсы, вкус, цвет и т.д. Необходимо различать такие понятия, как тип сущности и экземпляр сущности. Понятие тип сущности относится к набору однородных личностей, предметов, событий или идей, выступающих как целое. Экземпляр сущности относится к конкретной вещи в наборе. Например, типом сущности может быть ГОРОД, а экземпляром – Москва, Киев и т.д.

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

Красный, Синий, Банановый, Белая ночь и т.д.,

Однако каждому экземпляру сущности присваивается только одно значение атрибута.

Абсолютное различие между типами сущностей и атрибутами отсутствует. Атрибут является таковым только в связи с типом сущности. В другом контексте атрибут может выступать как самостоятельная сущность. Например, для автомобильного завода цвет – это только атрибут продукта производства, а для лакокрасочной фабрики цвет – тип сущности.

Ключ – минимальный набор атрибутов, по значениям которых можно однозначно найти требуемый экземпляр сущности. Минимальность означает, что исключение из набора любого атрибута не позволяет идентифицировать сущность по оставшимся. Для сущности Расписание (п. 1.2) ключом является атрибут Номер_рейса или набор: Пункт_отправления, Время_вылета и Пункт_назначения (при условии, что из пункта в пункт вылетает в каждый момент времени один самолет).

Связь – ассоциирование двух или более сущностей. Если бы назначением базы данных было только хранение отдельных, не связанных между собой данных, то ее структура могла бы быть очень простой. Однако одно из основных требований к организации базы данных – это обеспечение возможности отыскания одних сущностей по значениям других, для чего необходимо установить между ними определенные связи. А так как в реальных базах данных нередко содержатся сотни или даже тысячи сущностей, то теоретически между ними может быть установлено более миллиона связей. Наличие такого множества связей и определяет сложность инфологических моделей.

Характеристика связей и язык моделирования

При построении инфологических моделей можно использовать язык ER-диаграмм (от англ. Entity-Relationship, т.е. сущность-связь). В них сущности изображаются помеченными прямоугольниками, ассоциации – помеченными ромбами или шестиугольниками, атрибуты – помеченными овалами, а связи между ними – ненаправленными ребрами, над которыми может проставляться степень связи (1 или буква, заменяющая слово "много") и необходимое пояснение.

Между двумя сущностям, например, А и В возможны четыре вида связей.

Первый тип – связь ОДИН-К-ОДНОМУ (1:1): в каждый момент времени каждому представителю (экземпляру) сущности А соответствует 1 или 0 представителей сущности В:

Студент может не "заработать" стипендию, получить обычную или одну из повышенных стипендий.

Второй тип – связь ОДИН-КО-МНОГИМ (1:М): одному представителю сущности А соответствуют 0, 1 или несколько представителей сущности В.

Квартира может пустовать, в ней может жить один или несколько жильцов.

Так как между двумя сущностями возможны связи в обоих направлениях, то существует еще два типа связи МНОГИЕ-К-ОДНОМУ (М:1) и МНОГИЕ-КО-МНОГИМ (М:N).

Пример 2.1. Если связь между сущностями МУЖЧИНЫ и ЖЕНЩИНЫ называется БРАК, то существует четыре возможныхпредставления такой связи:

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

Множество связей между одними и теми же сущностями

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

Тренарные связи

(врач может назначить несколько пациентов на несколько анализов, анализ может быть назначен несколькими врачами нескольким пациентам и пациент может быть назначен на несколько анализов несколькими врачами);

Связи более высоких порядков, семантика (смысл) которых иногда очень сложна.

В приведенных примерах для повышения иллюстративности рассматриваемых связей не показаны атрибуты сущностей и ассоциаций во всех ER-диаграммах. Так, ввод лишь нескольких основных атрибутов в описание брачных связей значительно усложнит ER-диаграмму (рис. 2.1,а). В связи с этим язык ER-диаграмм используется для построении небольших моделей и иллюстрации отдельных фрагментов больших. Чаще же применяется менее наглядный, но более содержательный язык инфологического моделирования (ЯИМ), в котором сущности и ассоциации представляются предложениями вида:

СУЩНОСТЬ (атрибут 1, атрибут 2 , ..., атрибут n)АССОЦИАЦИЯ [СУЩНОСТЬ S1, СУЩНОСТЬ S2, ...] (атрибут 1, атрибут 2, ..., атрибут n)

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

Так, рассмотренный выше пример множества связей между сущностями, может быть описан на ЯИМ следующим образом:

Врач (Номер_врача, Фамилия, Имя, Отчество, Специальность)Пациент (Регистрационный_номер, Номер койки, Фамилия, Имя, Отчество, Адрес, Дата рождения, Пол)Лечащий_врач [Врач 1, Пациент M] (Номер_врача, Регистрационный_номер)Консультант [Врач M,Пациент N] (Номер_врача, Регистрационный_номер).

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

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

Рис. 2.1. Уровни моделей данных

Такая человеко-ориентированная модель полностью независима от физических параметров среды хранения данных.

Остальные модели, показанные на рис. 1.1, являются компьютеро-ориентированными. С их помощью СУБД дает возможность программам и пользователям осуществлять доступ к хранимым данным лишь по их именам, не заботясь о физическом расположении этих данных. Нужные данные отыскиваются программами СУБД на внешних запоминающих устройствах по физической модели данных.

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

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

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

Сущность - любой различимый объект (объект, который мы можем отличить от другого объекта), информацию о котором необходимо хранить в базе данных. Сущностями могут быть люди, места, самолеты, рейсы, вкус, цвет и т.д. Необходимо различать такие понятия, как тип сущности и экземпляр сущности. Понятие тип сущности относится к набору однородных личностей, предметов, событий или идей, выступающих как целое. Экземпляр сущности относится к конкретной вещи в наборе. Например, типом сущности может быть ГОРОД, а экземпляром сущности - города Москва, Киев и т.д.

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

Красный, Синий, Банановый, Белая ночь и т.д.,

однако каждому экземпляру сущности присваивается только одно значение атрибута.

Абсолютное различие между типами сущностей и атрибутами отсутствует. Атрибут является таковым только в связи с типом сущности. В другом контексте атрибут может выступать как самостоятельная сущность. Например, для автомобильного завода цвет - это только атрибут продукта производства, а для лакокрасочной фабрики цвет - тип сущности.

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

Связь - выделение основной и связанной сущности. Если бы назначением базы данных было только хранение отдельных, не связанных между собой данных, то ее структура могла бы быть очень простой. Однако одно из основных требований к организации базы данных - это обеспечение возможности отыскания одних сущностей по значениям других, для чего необходимо установить между ними определенные связи. А так как в реальных базах данных нередко содержатся сотни или даже тысячи сущностей, то теоретически между ними может быть установлено более миллиона связей. Наличие такого множества связей и определяет сложность инфологических моделей.

2.1. Характеристика связей

Между двумя сущностями, возможны четыре вида связей.

Первый тип - связь ОДИН-К-ОДНОМУ (1:1): в каждый момент времени каждому представителю (экземпляру) сущности Студент соответствует 1 или 0 представителей сущности Стипендия:

Студент может не получать стипендии, либо получать только одну стипендию.

Второй тип - связь ОДИН-КО-МНОГИМ (1:М): одному представителю сущности А соответствуют 0, 1 или несколько представителей сущности В.

В квартире может никто не жить или жить один или несколько жильцов.

Так как между двумя сущностями возможны связи в обоих направлениях, то существует еще тип связи МНОГИЕ-К-ОДНОМУ (М:1).

Третий тип - многие ко многим.

Если связь между сущностями Квартира и Владелец называется Владение, то существует четыре возможных представления такой связи:

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

2.2. О первичных и внешних ключах

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

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

В СУБД Access оптимальным способом задания первичного ключа является введение в таблицу поля типа Счетчик . Поле Счетчик содержит уникальный номер для каждой строки таблицы и автоматически генерируется при создании записи.

Количество атрибутов в первичном ключе обязательно определяется смыслом задачи. Например, для определения факта выдачи книги требуется комплекс из двух атрибутов - номера читательского билета и номера переплета (конкретной книги).

Теперь о внешних ключах:

Если сущность С связывает сущности А и В, то она должна включать внешние ключи, соответствующие первичным ключам сущностей А и В.

В таблице Издание поля ВидИздания и КодИздательства является внешним ключом, соответствующим внутренним ключам КодиВидИздания и КодИздательства таблиц ВидИздания и Издательства соответственно.

Если сущность В обозначает сущность А, то она должна включать внешний ключ, соответствующий первичному ключу сущности А.

Поле Ind1 таблицы Подчиненная является внешним ключом, соответствующим внутреннему ключу Ind таблицы Основная . Заметим, что таблица Подчиненная также имеет свой внутренний ключ Ind .

2.3. Классификация сущностей

Имеется четыре вида сущностей:

  • Основная
  • Характеристика
  • Справочник
  • Ассоциация

Основная сущность (стержень) - это независимая сущность.

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

Характеристическая сущность (характеристика) - это связь вида «многие-к-одной» или «одна-к-одной» между двумя сущностями. Единственная цель характеристики в рамках рассматриваемой предметной области состоит в описании или уточнении некоторой другой сущности. Необходимость в них возникает в связи с тем, что сущности реального мира имеют иногда многозначные свойства. Книга может иметь несколько характеристик переиздания (исправленное, дополненное, переработанное...), дом характеризуется некоторой характеристикой из определенного набора (каменный, панельный, монолитный…).

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

Справочник применяется для безошибочного или многократного использования атрибутов.

Это могут быть имена организаций, фамилии клиентов, цвета…

Рассмотрим пример, связанный с зачислением сотрудников в различные отделы организации.

При отсутствии жестких правил (сотрудник может одновременно зачисляться в несколько отделов или не зачисляться ни в один отдел) необходимо создать описание с ассоциацией Зачисление:

Служащие (Табельный номер, Фамилия, ...)

Зачисление (Номер отдела, Табельный номер, Дата зачисления) [Отделы M, Служащие N]

В квадратные скобки помещены обозначения ключевых полей ассоциации.

Однако, при условии, что каждый из сотрудников должен быть обязательно зачислен в один из отделов, можно создать описание с обозначением Служащие:

Отделы (Номер отдела, Название отдела, ...)

Служащие (Табельный номер, Фамилия, ..., Номер отдела, Дата зачисления)[Отделы]

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

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

Рассмотрим вид сущности: Ассоциация .

Ассоциация обычно имеет собственные поля и несколько ссылок на другие сущности.

В СУБД Access тип сущности Ассоциация имеет вид:

2.4. Ограничения целостности

Целостность (от англ. integrity - нетронутость, неприкосновенность, сохранность, целостность) - понимается как правильность данных в любой момент времени. Но эта цель может быть достигнута лишь в определенных пределах: СУБД не может контролировать правильность каждого отдельного значения, вводимого в базу данных (хотя каждое значение можно проверить на правдоподобность). Например, нельзя обнаружить, что вводимое значение 5 (представляющее номер дня недели) в действительности должно быть равно 3. С другой стороны, значение 9, как день недели, явно будет ошибочным и СУБД должна его отвергнуть. Однако для этого ей следует сообщить, что номера дней недели должны принадлежать набору (1, 2, 3, 4, 5, 6, 7).

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

2.4.1. Средства поддержания целостности данных СУБД Access

Рассмотрим три типа таблиц:

  • Основная
  • Подчиненная
  • Справочник

Таблицы имеют структуру:

Во всех таблицах поле Ind - счетчик (см. 1.3).

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

Сформируем связи таблиц.

Связь между Основной и Подчиненной таблицами оформим так:

Это означает, что мы не сможем сформировать запись в подчиненной таблице с Ind1 <> Ind основной таблицы. Более того, при удалении записи из основной таблицы будет удалена и запись связанной с ней подчиненной таблицы.

В качестве Основной таблицы может выступать список читателей библиотеки, а в Подчиненной таблице хранится список полученных данным читателем книг.

Связь между основной таблицей и справочником имеет вид:

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