Cтраница 3
![]() |
Схема данных ( звездочка означает ключевое поле. [31] |
Необходимо отметить, что схема, изображенная на рис. 5.4, является недостаточно точной, хотя часто схемы изображаются именно таким образом. Во-первых, имя некоторой части схемы представлено как блок, идентичный блоку, содержащему имя элемента данных. Так, например, Продукция и Адрес расположены рядом в соседних блоках, хотя Адрес является элементом данных, а Продукция - нет, это имя группы элементов данных, содержащей Наименование, Себестоимость и Выпуск. Во-вторых, из этой схемы не ясно, какие группы элементов данных представляют собой типы записей, а какие - типы агрегатов данных. Различие между записью и агрегатом заключается в том, что число экземпляров типа записи может быть произвольным, а число типа агрегата - ограниченным. Агрегат обычно является составной частью некоторой записи и не является самостоятельным. Недостатком схемы является также и то, что некоторые блоки имеют одинаковые имена. [32]
Необходимо отметить, что схема, изображенная на рис. 5.4, является недостаточно точной, хотя часто схемы изображаются именно таким образом. Во-первых, имя некоторой части схемы представлено как блок, идентичный блоку, содержащему имя элемента данных. Так, например, Продукция и Адрес расположены рядом в соседних блоках, хотя Адрес является элементом данных, а Продукция - нет, это имя группы элементов данных, содержащей Наименование, Себестоимость и Выпуск. Во-вторых, из этой схемы не ясно, какие группы элементов данных представляют собой типы записей, а какие - типы агрегатов данных. Различие между записью и агрегатом заключается в том, что число экземпляров типа записи может быть произвольным, а число типа агрегата - ограниченным. Агрегат обычно является составной частью некоторой записи и не является самостоятельным. Недостатком схемы является также и то, что некоторые блоки имеют одинаковые имена. [33]
В то время как определение простой сетевой структуры на языке описания данных CODASYL не представляет трудностей, сложную сетевую структуру нельзя описать на этом языке без преобразования ее к более простому виду. Отношение типа М: М между записями ( например, связи группового брака) не может быть представлено без преобразования. Это тем не менее не является большим недостатком языка CODASYL. Надо отметить, что в общем случае хорошо спроектированная схема должна не содержать отношений типа М: М между группами элементов данных. [34]
Кроме того, из диаграммы не ясно, какие группы элементов данных представляют собой типы записей, а какие - типы агрегатов данных. Различие между записью и агрегатом данных заключается в том, что число экземпляров типа записи может быть произвольным, а число экземпляров типа агрегата данных - ограниченным. Агрегат данных обычно адресуется посредством записи, частью которой он является, тогда как запись должна иметь свои собственные средства адресации. Некоторые известные системы управления базами данных не различают агрегаты данных и записи. Например, системы IMS и CICS фирмы IBM обращаются к индивидуально адресуемой группе элементов данных ( полям) как к сегменту. Там, где записи и агрегаты данных различаются между собой, как в базах данных, построенных по предложениям CODASYL, схема должна отображать, что есть что. [35]
Плохо нарисованная схема может скорее сбить с толку, чем дать ясное представление о данных. На рис. 6.6 приведена схема, которая используется во многих современных публикациях. В ней есть несколько неточностей. Во-первых, имя некоторой части схемы представлено как блок, идентичный блоку, содержащему имя элемента данных. ЗАРПЛАТА и ПРОФЕССИЯ, например, расположены рядом в идентичных блоках, в то время как ЗАРПЛАТА представляет собой элемент данных, а ПРОФЕССИЯ - нет. ПРОФЕССИЯ является именем группы элементов данных, содержащей КОД и ДОЛЖНОСТЬ. Во-вторых, на диаграмме не отражено различие между атрибутами и объектами. Блок ДАТА-РОЖДЕНИЯ находится в группе блоков, содержащей блок РЕБЕНОК. [36]