Пример сетевой базы данных
На этом рисунке показаны три типа записи: Отдел, Служащие и Руководитель и три типа связи: Состоит из служащих, Имеет руководителя и Является служащим.
В типе связи Состоит из служащих типом записи-предком является Отдел, а типом записи-потомком – Служащие (экземпляр этого типа связи связывает экземпляр типа записи Отдел со многими экземплярами типа записи Служащие, соответствующими всем служащим данного отдела).
В типе связи Имеет руководителя типом записи-предком является Отдел, а типом записи-потомком – Руководитель (экземпляр этого типа связи связывает экземпляр типа записи Отдел с одним экземпляром типа записи Руководитель, соответствующим руководителю данного отдела).
Наконец, в типе связи Является служащим типом записи-предком является Руководитель, а типом записи-потомком – Служащие (экземпляр этого типа связи связывает экземпляр типа записи Руководитель с одним экземпляром типа записи Служащие, соответствующим тому служащему, которым является данный руководитель).
Концептуальное проектирование — построение семантической модели предметной области, то есть информационной модели наиболее высокого уровня абстракции. Такая модель создаётся без ориентации на какую-либо конкретную СУБД и модель данных. Термины «семантическая модель», «концептуальная модель» и «инфологическая модель» являются синонимами. Кроме того, в этом контексте равноправно могут использоваться слова «модель базы данных» и «модель предметной области» (например, «концептуальная модель базы данных» и «концептуальная модель предметной области»), поскольку такая модель является как образом реальности, так и образом проектируемой базы данных для этой реальности.
Конкретный вид и содержание концептуальной модели базы данных определяется выбранным для этого формальным аппаратом. Обычно используются графические нотации, подобные ER- диограмм
Чаще всего концептуальная модель базы данных включает в себя:
- описание информационных объектов, или понятий предметной области и связей между ними.
- описание ограничений целостности, т.е. требований к допустимым значениям данных и к связям между ними.
Основные понятия
- Сущность – любой различимый объект (объект, который мы можем отличить от другого), информацию о котором необходимо хранить в базе данных. Сущностями могут быть люди, места, самолеты, рейсы, вкус, цвет и т.д. Необходимо различать такие понятия, как тип сущности и экземпляр сущности. Понятие тип сущности относится к набору однородных личностей, предметов, событий или идей, выступающих как целое. Экземпляр сущности относится к конкретной вещи в наборе. Например, типом сущности может быть ГОРОД, а экземпляром – Москва, Киев и т.д.
- Атрибут – поименованная характеристика сущности. Его наименование должно быть уникальным для конкретного типа сущности, но может быть одинаковым для различного типа сущностей (например, ЦВЕТ может быть определен для многих сущностей: СОБАКА, АВТОМОБИЛЬ, ДЫМ и т.д.). Атрибуты используются для определения того, какая информация должна быть собрана о сущности. Примерами атрибутов для сущности АВТОМОБИЛЬ являются ТИП, МАРКА, НОМЕРНОЙ ЗНАК, ЦВЕТ и т.д. Здесь также существует различие между типом и экземпляром. Тип атрибута ЦВЕТ имеет много экземпляров или значений: Красный, Синий, Банановый, Белая ночь и т.д., однако каждому экземпляру сущности присваивается только одно значение атрибута.
Абсолютное различие между типами сущностей и атрибутами отсутствует. Атрибут является таковым только в связи с типом сущности. В другом контексте атрибут может выступать как самостоятельная сущность. Например, для автомобильного завода цвет – это только атрибут продукта производства, а для лакокрасочной фабрики цвет – тип сущности.
- Ключ – минимальный набор атрибутов, по значениям которых можно однозначно найти требуемый экземпляр сущности. Минимальность означает, что исключение из набора любого атрибута не позволяет идентифицировать сущность по оставшимся. Для сущности Расписание ключом является атрибут Номер_рейса или набор: Пункт_отправления, Время_вылета и Пункт_назначения (при условии, что из пункта в пункт вылетает в каждый момент времени один самолет).
- Связь – ассоциирование двух или более сущностей. Если бы назначением базы данных было только хранение отдельных, не связанных между собой данных, то ее структура могла бы быть очень простой. Однако одно из основных требований к организации базы данных – это обеспечение возможности отыскания одних сущностей по значениям других, для чего необходимо установить между ними определенные связи. А так как в реальных базах данных нередко содержатся сотни или даже тысячи сущностей, то теоретически между ними может быть установлено более миллиона связей. Наличие такого множества связей и определяет сложность инфологических моделей.
Урок 39
Виды моделей данных
— что представляет собой модель данных;
— в чем особенность иерархической модели данных;
— в чем особенность сетевой модели данных;
— в чем особенность реляционной модели данных;
— как устанавливаются связи в реляционной модели.
Сетевая модель данных
Сетевая модель, как и иерархическая, отражает взаимосвязь информационных объектов. Она базируется на тех же основных понятиях: узел, уровень, связь. Основным ее отличием является то, что каждый элемент одного уровня в сетевой модели может быть связан с любым количеством элементов другого уровня. Свойства сетевой модели:
♦ Каждый узел имеет имя (идентификатор).
♦ Узлы одного уровня образуют один класс объектов.
♦ Каждый узел одного уровня может быть связан с произвольным количеством узлов другого уровня.
В качестве примера можно рассмотреть базу данных, в которой хранятся сведения об увлечениях подростков (рис. 4.8). В модели представлены два уровня (класса): увлечения и подростки. Связи показывают увлечения конкретных подростков. С одной стороны, каждый подросток может иметь несколько увлечений. С другой стороны, одно увлечение может быть у многих подростков. Связи такого типа называются «многие-ко-многим», для них введено условное обозначение М:М.
Рис. 4.8. Пример сетевой модели
Реляционная модель данных
Таблица является одним из наиболее удобных и привычных человеку способов представления данных. Это свойство и определило основу реляционной модели данных, на которую сориентировано большинство современных СУБД — систем управления базами данных.
Реляционная модель данных представляет собой совокупность таблиц с установленными между ними связями. Название «реляционная» происходит от английского слова relation — отношение. Этот термин указывает, что модель отражает отношения составляющих ее частей.
В реляционной модели каждая таблица описывает один класс объектов.
Рассмотрим таблицу, содержащую сведения об учениках школы: номер личного дела, фамилия, имя, отчество, дата рождения (табл. 4.2). В ней описывается класс объектов Ученики.
Каждый столбец в такой таблице называется полем. Верхняя строка содержит названия параметров объекта и отображает структуру записи.
Каждая последующая строка является записью.
С такой формой хранения данных мы знакомились уже в начале этого раздела. Реляционная модель данных имеет следующие свойства.
Таблица 4.2. Ученики
1. Каждый элемент таблицы — один элемент данных. Элементом таблицы является ячейка. Данное свойство означает, что в одной ячейке реляционной таблицы не может указываться более одного значения параметра. Ниже показано правильное и неправильное представление данных.
2. Все элементы одного столбца (поля) имеют одинаковый тип (числовой, символьный и т. п.), формат и смысл. Данное свойство указывает, что в одном столбце таблицы не могут содержаться данные разных типов, например, и текст, и числа. Кроме того, данные одного типа (например, дата) должны иметь одинаковый формат, то есть нельзя в одном столбце записать дату сначала так: 8 сентября 2003 года, а потом так: 23.11.2001. И наконец, все данные одного столбца должны иметь одинаковый смысл. Иначе говоря, если в столбце установлен тип «Дата», то она должна для всех записей означать одно и то же, например дату рождения.
3. Каждый столбец (поле) имеет уникальное имя. Это свойство означает, что в таблице не может быть столбца, не имеющего имени, и не может быть двух столбцов с одинаковыми именами. В разных таблицах одной модели одинаковые имена столбцов допустимы, но нежелательны.
4. Одинаковые строки в таблице отсутствуют. Это означает, что каждая строка описывает конкретный объект. Если, например, в базе данных описываются автомобили, то в реальной жизни вполне допустимо, что два автомобиля имеют одинаковые характеристики: и марку, и цвет, и объем двигателя и пр. Чтобы различить автомобили-близнецы вводят специальный параметр — заводской номер двигателя. Таким образом, в таблице может оказаться несколько похожих записей, которые будут отличаться только заводским номером двигателя.
5. Порядок следования строк в таблице может быть произвольным. Это означает, что информация об объекте одного класса не зависит от информации о другом объекте этого же класса.
6. Каждая таблица должна иметь ключ. Ключ (ключевой элемент) — это поле или совокупность полей, которые единственным образом определяют каждую строку (запись) в таблице. Таким образом, все строки таблицы являются уникальными, то есть не может быть строк с одинаковыми ключами. Например, в табл. 4.2 в качестве ключевого поля можно выбрать поле Номер личного дела, а другие поля в качестве ключа выбрать нельзя, потому что значения в них могут повторяться.
7. Таблицы, входящие в модель данных, могут характеризоваться разным количеством полей и записей. Каждая таблица описывает определенный класс объектов, который может характеризоваться своим набором параметров, и, соответственно, таблицы могут иметь разную структуру, а также количество записей.
Рассмотрим приведенную выше табл. 4.2, в которой хранятся сведения об учениках школы. Эта модель данных является реляционной, так как она удовлетворяет всем перечисленным свойствам реляционных таблиц. В каждой ячейке таблицы записано только одно значение какого-либо признака (свойство 1). Информация в каждом столбце имеет одинаковый тип, формат записи и смысл (свойство 2). Заголовки столбцов имеют разные имена (свойство 3). Одинаковые строки отсутствуют (свойство 4). Сведения об одном ученике никак не зависит от сведений о других учениках, следовательно, строки можно расположить в любом порядке (свойство 5). Поле Номер личного дела можно выбрать в качестве ключа (свойство 6).
Над данной моделью базы удобно производить следующие действия:
— сортировку данных (например, по алфавиту);
— выборку данных по группам (например, по датам рождения или по фамилиям);
— поиск записей (например, по фамилиям) и т. д.
Контрольные вопросы и задания
1. Что такое модель данных и для чего она нужна?
2. Приведите определение информационной модели и сопоставьте его с определением модели данных. Найдите у них общие и различающиеся характеристики.
3. Какие вы знаете формы представления информационной модели? Сравните их и сделайте вывод о том, когда лучше использовать ту или иную форму представления.
4. Приведите примеры моделей данных для разных предметных областей.
5. Что представляет собой иерархическая модель данных в общем виде?
6. Что такое узел иерархической модели данных?
7. В чем состоят свойства иерархической модели данных?
8. Приведите примеры иерархических моделей данных.
9. Что представляет собой сетевая модель данных в общем виде?
10. В чем состоят свойства сетевой модели данных?
11. Приведите примеры сетевых моделей данных.
12. Что представляет собой реляционная модель данных в общем виде?
13. Как вы понимаете связь между информационными объектами 1:1? Приведите примеры такого типа связей.
14. Как вы понимаете связь между информационными объектами 1:М? Приведите примеры этого типа связей.
15. Как вы понимаете связь между информационными объектами М:М? Приведите примеры данного типа связей.
16. В чем состоят свойства реляционной модели данных?
17. Приведите примеры реляционных моделей данных.
18. Как графически отображается реляционная модель данных?
19. Приведите примеры преобразования иерархической модели в реляционную.
20. Приведите примеры преобразования сетевой модели в реляционную.