русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Концептуальное проектирование.


Дата добавления: 2013-12-23; просмотров: 2942; Нарушение авторских прав


Одна из архитектур БД называется ANSI/SPARC.

Основной идеей является выделение трехуровневой абстракции в описании данных. Цель – отделение пользовательского представления БД от ее физического представления.

Причины, по которым желательно такое разделение:

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

- пользователи не должны иметь дело с подробностями физического хранения данных;

- администратор БД должен иметь возможность изменять структуру БД, не оказывая влияние на представления пользователей;

- внутренняя структура БД не должна зависеть от изменений физических аспектов хранения информации, таких как переключение на новое устройство и т.д.;

Выделяются три уровня архитектуры БД – внешний, концептуальный и внутренний.

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

Концептуальный уровень – обобщенное представление схемы БД. Уровень описывает, какие данные хранятся в БД и какие связи хранятся между ними. Концептуальная схема – это полное представление требований к данным со стороны организации, оно не зависит от способа хранения данных. На концептуальном уровне представлены следующие компоненты:

1. Все элементы данных.

2. Ограничения, накладываемые на элементы данных.

3. Семантическая информация о данных.

4. Информация о мерах обеспечения безопасностей и поддержки целостности данных.

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



Внутреннему уровню соответствует следующая информация:

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

2. Распределение дискового пространства для хранения данных и индексов.

3. Сведения о физической организации данных.

4. Сведения о сжатии данных и методах их шифрования.

Ниже внутреннего уровня лежит физический, который контролируется операционной системой под руководством СУБД, их функции на этом уровне четко не разделены.

Два подхода к концептуальному проектированию: восходящий и нисходящий.

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

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

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

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

Понятие сущности.

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

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

 


Характеристики сущности. Проблема уникальности сущности.

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

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

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

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

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

В формате IDEFX сущность определяют следующим образом:

 
 

 

 


Все наборы атрибутов, которые могли рассматриваться как ключи, помечаются АК (альтернативный ключ).

Связи. Понятие связи.

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

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

Такие взаимодействия отражаются как связи «один ко многим» и в стандарте IDEFX отражаются следующим образом:

 
 

 

 


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

В стандарте IDEFX связи «один ко многим» классифицируют по следующим признакам:

1) по возможности null-значения;

2) по степени зависимости связываемых сущностей;

3) по кардинальности;

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

Такая связь (с возможностью null-значения внешнего ключа) отмечается ромбом у сущности-предка.

Рассмотрим другой пример – «сотрудник работает в отделе». Проводим рассуждения, аналогичные предыдущему примеру. Если «каждый сотрудник должен работать в отделе», то между сущностями «сотрудник» и «отдел» имеется связь «один ко многим» без возможности неопределенного значения внешнего ключа. Она отображается также, только ромб у сущности-предка отсутствует.

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

071901 – первые 4 цифры – номер специальности, остальные – номер специализации. При этом номер специализации уникален в рамках специальности.

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

 

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

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

3. Классификация связи по кардинальности. Стандарт IDEFX поддерживает следующие кардинальности связи (рис 4):

 
 

 


Например, на факультете может не быть ни одной специальности, а может быть 1, 2 и так далее специальностей.

 
 

 


Например, в группе должен быть хотя бы 1 студент.

 
 

 


Например, у группы может быть только один куратор. С другой стороны, преподаватель может быть куратором только для одной группы. Таким образом, на схеме должны присутствовать связи «преподаватель» и «группа», между ними существует связь «1 к 0 или к 1», при этом внешний ключ может присутствовать у любой из этих сущностей.

 
 

 


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

Роль внешнего ключа.

Иногда для более точного описания предметной области вводится понятие роли атрибута для внешнего ключа. Роль – значение, которое атрибут несет, в сущности. Например, в примере о кураторе группы атрибут «табельный номер преподавателя» в сущности «группа» может играть роль «куратор». Если связь построена в обратном направлении, то внешний ключ играет роль «курируемая группа».

Бывают ситуации, когда введение роли внешнего ключа обязательно.

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

– «проводка кредитует счет» - один и тот же счет может кредитоваться различными проводками, а проводка кредитует только один счет → связь «один ко многим»; проводка не может не иметь счета кредитования, то есть связь не допускает неопределенного значения внешнего ключа; счет кредитования не участвует в идентификации проводки, поэтому связь не идентифицирующая;

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

 

2) в случае рекурсивной связи - когда родитель и потомок совпадают. Пример – иерархия подчинения в организации, когда для данного работника необходимо учитывать его непосредственного начальника:

 
 

 

 


 




<== предыдущая лекция | следующая лекция ==>
Формулирование и анализ требований. | Связь N:M


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.007 сек.