Весь сложный процесс создания БД может быть разбит на инфологическое и даталогическое проектирование. Даталогическое подразделяется на логическое и физическое проектирование. В зависимости от этапов проектирование различают концептуальную инфологическую модель и концептуальную даталогическую модель, а так же внешнюю инфологическую модель и внешнюю даталогическую модель.
Задача инфологического моделирования БД - получение семантических моделей отражающих информационное содержание конкретной предметной области. На этом этапе выполняется восприятие реальной действительности, абстрагирования, изучения и описание предметной области. В начале выделяется из воспринимаемой реальности предметная область, определяются ее границы, происходит абстрагирование от несущественных частей для данного конкретного применения БД. В результате этих действий определяются объекты, их свойства и связи, которые будут существенны для будущих пользователей системы. После этого изучается предметная область, накапливаются знания о ней. Эти знания представляются в какой либо языковой системе. Обычно это не формализованное описание с использованием естественного языка, математических формул, диаграмм, связей и т.д.. Выполняется структуризация знаний о предметной области, т.е. выделяются и классифицируются множество составляющих предметной области, стандартизируется терминология. Затем компонуется концептуально инфологическая модель, основное предназначение при этом имеет потребности пользователей. Описывается информация, требуемая каждому конкретному пользователю, т.е. описываются запросы к БД. Задача логического этапа проектирования в организации данных, выделенных на предыдущем этапе проектирования в форму принятую выбранной СУБД. Задача физического этапа проектирования выбор рациональной структуры хранения данных и методов доступа к ним.
Архитектура СУБД. При организации многопользовательской СУБД применяют следующие типовые архитектурные решения:
Телеобработка.
Файловый сервер.
Технология "клиент/сервер".
Телеобработка. Традиционные архитектуры многопользовательских систем раньше считалась схема получившая название "телеобработки", при которой 1 компьютер с единственным процессором был соединен с несколькими терминалами. При этом вся обработка выполнялась в рамках единственного компьютера, а присоединенный к нему пользовательские терминалы были типичными неинтеллектуальными устройствами, неспособными функционировать самостоятельно . С центральным компьютером терминалы были связаны с помощью кабелей по которому они посылали сообщение пользовательским приложением. В свою очередь пользовательские приложения обращались к необходимым службам СУБД. Таким же образом сообщения возвращались назад на пользовательский терминал. Недостатком является то, что при такой архитектуре основная и слишком высокая нагрузка возлагалась на центральный компьютер, который должен был выполнять не только действия прикладных программ СУБД, но и значительную работу по обслуживанию терминалов.
Архитектура с использованием файлового сервера.
Файловый сервер. В среде файлового сервера обработка данных распределена в сети, а обычно представляющая собой локальную вычислительную сеть (ЛВС/LAN). Файловый сервер содержит файлы необходимые для работы приложения и самой СУБД. Однако, пользовательские приложения и СУБД размещены и функционируют на отдельных рабочих станциях и обращаются к файловому серверу только по мере необходимости получения доступа к нужным им файлам. Таким образом файловый сервер функционирует на подобии совместно используемого жесткого диска. СУБД на каждой рабочей станции посылает запрос файловому серверу по всем необходимым ей данным, которые хранятся на диске файл-сервер. Такой подход характеризуется значительным сетевым трафиком, что может привести к снижению производительности все системы в целом.
Общая схема построения систем с архитектурой "клиент/сервер".
Недостатки данной архитектуры:
Большой объем сетевого трафика.
На каждой рабочей станции должна находится полная копия СУБД.
Управление параллельностью, восстановлением и целостностью усложняется поскольку доступ к одним и тем же файлам могут осуществлять сразу несколько экземпляров СУБД.
Технология "клиент/сервер". Была разработана с целью устранения недостатков имеющихся в первых 2-х подходах. Клиент/сервер означает такой способ взаимодействия программных компонентов, при котором они образуют единую систему. Существует некий клиентский процесс, требующий определенных ресурсов, а так же серверный процесс, который эти ресурсы предоставляет. При этом совсем необязательно чтобы они находились на одном и том же компьютере. На практике принято размещать сервер на одном узле локальной сети, а клиентов на других узлах.
Пример ER-диграммы.
Операции выполняемые клиентом:
Управляет пользовательским интерфейсом.
Принимает и проверяет синтаксис, введенного пользователем, запроса.
Выполняет приложение.
Генерирует запрос к БД и передает его серверу.
Отображает полученные данные пользователю.
Функции, выполняемые сервером:
Принимает и обрабатывает запросы к БД со стороны клиента.
Проверяет полномочия пользователей.
Гарантирует соблюдение ограничений целостности.
Выполняет запросы и обновления, а так же возвращает результаты клиенту.