
Впервые термин "база данных" появился в литературе в 1962 году.
База данных — структурированная совокупность взаимосвязанных данных, относящихся к конкретной предметной области. В литературе используются и другие, сходные по смыслу, определения понятия "база данных". БД может быть определена как совокупность специально организованных данных, рассчитанных на применение в большом количестве прикладных программ или как совокупность данных, отражающая состояние объектов и их отношений в рассматриваемой предметной области. Наиболее полным определением, по видимому, следует считать следующее. База данных определяется как совокупность взаимосвязанных, хранящихся вместе данных при наличии такой избыточности, которая допускает их использование оптимальным образом для одного или нескольких приложений; данные запоминаются так, чтобы они были независимы от программ, использующих эти данные.
Любая база данных должна обладать следующими свойствами:
-
интегрированностью, направленной на решение широкого круга задач;
-
структурированностью;
-
взаимосвязанностью;
-
независимостью описания данных от прикладных программ.
Независимость описания данных достигается за счет построения двух уровней представления данных: логического и физического. На логическом уровне данные представляются в виде удобном для использования прикладными программами и проектировщиками. Физический уровень представления данных отражает способ хранения и структуру данных с учетом их расположения на носителях информации. БД может быть размещена на магнитных носителях в виде совокупности взаимосвязанных файлов.
В современной технологии БД предполагается, что создание БД, ее поддержка и обеспечение доступа пользователей к ней осуществляется централизовано с помощью специального программного инструментария — системы управления базами данных (СУБД).
Сформулируем основные требования, которые предъявляются к БД:
-
Целостность данных — их непротиворечивость и достоверность.Организация БД должна обеспечивать согласование времени выборки данных с частотой их использования прикладными программами.Универсальность, т.е. наличие в БД всех необходимых данных и возможности доступа к ним в процессе решения проектной задачи.Открытость БД для внесения в нее новой информации.Наличие языков высокого уровня для взаимодействия пользователей с БД.Секретность, т.е. невозможность несанкционированного доступа к информации и к ее изменению.Устранение избыточности данных и минимизация затрат памяти на внешних устройствах.Минимизация времени доступа к данным, что особенно важно при многократном обращении к БД.Коллективность использования.
Администраторы банков данных
С базой данных взаимодействуют различные пользователи, разнообразные требования которых нужно удовлетворять, не допуская конфликтных ситуаций. Это приводит к необходимости постоянно осуществлять функции контроля и управления БД для координации и выполнения всех этапов проектирования, поддержки БД в работоспособном состоянии. Лицо (или группа лиц), ответственных за выполнение функций ведения БД (ее управления, контроля и т.п.) называют администратором банка данных (АБД). В развитых системах, предназначенных для проектирования сложных объектов, АБД — это коллектив специалистов, обеспечивающих создание и поддержание БД, организующих и контролирующих доступ к данным различных пользователей, т.е. АБД — лицо (или группа лиц), ответственных за общее управление БД.
Словарь данных
Банк данных и его ядро база данных являются сложными динамическими системами. Для обеспечения различных категорий пользователей информацией о самом банке данных организовано специальное хранилище метаинформации — словарь данных (СД).
Словарь данных обеспечивает взаимодействие всех участников проекта и предоставляет информацию для управления данными как ресурсом на всех этапах проектирования и функционирования банка данных. Словарь данных состоит из метаданных и комплекса программ, разработанных для решения задач, связанных с ведением и использованием этих данных. СД содержит сведения о предметной области и циркулирующей в ней информации, содержании и структуре БД, о связях между элементами БД и программами, о кодах защиты и разграничении доступа. СД — это один из наиболее важных инструментов администратора БД. Два важнейших назначения словаря данных состоят в централизованном ведении и управлении данными как ресурсами на всех этапах проектирования, реализации и эксплуатации системы, а также в обеспечении эффективного взаимодействия между всеми участниками проекта.
Различают два способа организации СД — интегрированный и независимый.
Интерфейсы словаря данных разделяют на два типа:
-
с людьми, вовлеченными в систему: АБД, системными и прикладными программистами, руководителями, конечными пользователями;с программными средствами.
-
Языковые средства банка данных
Языковые средства предназначены для общения пользователей разных классов с БнД и служат для описания различных компонентов БнД, а также внешних по отношению к банку элементов, находящихся с ним в непосредственном взаимодействии, а также для обращения к составным частям банка данных.
Программные средства банка данных
Программные средства банка данных представляют собой сложный комплекс, обеспечивающий взаимодействие всех его частей. В составе программных средств БнД можно выделить программы управления данными, трансляторы с языков БнД, различные вспомогательные программы (утилиты), программные средства, обеспечивающие взаимодействие пользователей и технических средств. В состав программных средств БнД входит и операционная система.
Совокупность лингвистических (языковых), программных и аппаратных средств, предназначенных для создания и использования БД прикладными программами и пользователями, называют системой управления базой данных (СУБД).
Аппаратные средства банка данных
К аппаратным (техническим) средствам БнД относятся процессоры, устройства ввода-вывода, внешние запоминающие устройства, каналы связи. В каждом конкретном случае, в зависимости от особенностей используемой СУБД и проектируемого на ее основе БнД, состав технических средств может быть различным. В технической документации СУБД указывается минимальная конфигурация технических средств, необходимых для организации БнД, а также различные ограничения на состав и количество технических средств.
Основные функции СУБД
СУБД реализует два внутренних интерфейса:
-
между логическими структурами данных в программных модулях и различными программными модулями системы;
-
между логической и физической структурами в БД.
Таким образом, любые изменения в физической организации данных воспринимаются СУБД и не влияют на прикладные программы, а изменение логики прикладной программы не требует реорганизации и изменения механизма доступа к физическим данным.
Основные функции СУБД включают в себя:
-
Создание БД, включая формирование описаний объектов, их свойств и отношений.
-
Первоначальная загрузка реализаций.
-
Поиск объектов, реализаций и их свойств.
-
Удаление отдельных свойств объектов, описаний объектов и уничтожение его связей в БД.
-
Добавление новых свойств объекта, новых объектов и установление связей нового объекта в БД.
-
Модификация свойств и характеристик объекта.
-
Классификация, позволяющая определить на множестве объектов, принадлежность объекта к конкретному классу.
-
Обеспечение защиты и целостности данных. СУБД обеспечивает защиту данных от некорректных объявлений пользователями, защиту от несанкционированного доступа, разрушений при сбоях оборудования.
По степени универсальности различают два класса СУБД:
-
СУБД общего назначения;
-
специализированные СУБД.
СУБД общего назначения не ориентированы на какую-либо предметную область или не удовлетворяют информационных потребностей конкретной группы пользователей. Их применение при создании автоматизированных систем, основанных на использовании БД, позволяет существенно сократить сроки разработки, экономить трудовые ресурсы. Однако в некоторых случаях СУБД общего пользования не позволяет добиться требуемых характеристик производительности и/или удовлетворить заданные ограничения по объему памяти, предоставляемой для хранения БД. Тогда приходится разрабатывать специализированные СУБД для конкретного применения.
Накопленный в последние годы опыт применения СУБД при создании банков данных различных уровней, назначений и объемов хранимых данных с использованием основных типов ЭВМ — больших ЭВМ, мини ЭВМ и персональных компьютеров — постепенно изменил взгляды специалистов, считавших, что программное обеспечение класса СУБД относится к весьма узкой области, связанной с хранением и выборкой данных, и является в основном расширением операционных систем. Множество имеющихся СУБД (за последние 10 лет зафиксировано более 60 отечественных разработок, а число зарубежных СУБД на порядок больше) свидетельствует о повышенном интересе разработчиков к данной проблеме, высокой значимости программного обеспечения данного класса. Многообразие типов СУБД объясняется: отличиями поддерживаемых моделей данных (см. п.3.2-3.4), функциональными возможностями средств, предназначенных для пользователей различных категорий, различиями операционных сред и т.д.
Широкое внедрение персональных компьютеров привело к созданию мощной индустрии, производящей средства программного обеспечения систем БД, в том числе и различные СУБД. Здесь сосредоточен значительный потенциал разработчиков программного обеспечения. Помимо крупных фирм (Ashton-Tate Corp., Microrim Inc., Borland International Inc., Nantucket Inc., Fox Software Inc.), которые занялись созданием СУБД только в 80-е годы, сюда устремились и фирмы, обладающие многолетним опытом разработки таких средств для больших вычислительных систем и мини-ЭВМ.
Рынок программного обеспечения "персональных" БД отличается острой конкурентной борьбой. Для того чтобы добиться в ней успеха, нужна не только оперативная реакция на весьма динамичные потребности пользователей, но и тщательное изучение достоинств созданных соперниками программных продуктов и воспроизведение их в собственных разработках.
Уровни представления баз данных
В любом банке данных отражается информация об определенной предметной области. Предметная область — часть реального мира, представляющая интерес для данного исследования (использования) и отражается в информационной системе, в нашем случае, подлежащая автоматизированной системе. В автоматизированных системах отображение предметной области представлено моделями нескольких уровней. Модель данных — формализованное описание, отражающее состав и типы данных, а также взаимосвязи между ними.
Пользователя БД интересует ее информационное и смысловое содержание. Подробности организации физического хранения данных его не интересует. Поэтому в представлении данных в БД можно выделить четыре уровня абстракции:
-
внешнее представление;концептуальную модель;информационную (или) внешнюю модель;внутреннюю модель.
Процесс проектирования БД начинается с установления концептуальных требований ряда пользователей. Эти требования различных пользователей интегрируются в едином обобщенном представлении. Последнее называется концептуальной моделью (КМ). КМ — есть представление общего содержания БД. Концептуальная модель определяется посредством концептуальной схемы. Версия КМ, которую может обеспечить СУБД, называется логической моделью.
Внешняя информационная модель должна отображать предметную область в терминах, понятиях, привычных для пользователя, т.е. она является информационным содержанием БД в том виде, в каком его представляет конкретный пользователь. Каждая внешняя модель определяется посредством внешней схемы. В литературе термин "внешняя модель" употребляется чаще всего как синоним понятия "подсхема". Внутренняя модель — представление самого низкого уровня всей БД. Описываемые в БД объекты и их атрибуты должны быть каким-либо образом описаны для представления их в ЭВМ. Внутренняя модель описывается посредством внутренней схемы (или просто схемы), которая определяет различные типы хранимых записей, как представлены хранимые поля записей, каково физическое представление хранимых записей и т.п.
Внутреннюю модель называют также моделью данных физического уровня или физической моделью; она строится с учетом СУБД и операционной системы ЭВМ.
Модель каждого из последующих уровней строится на основе фиксированных характеристик моделей предшествующих уровней.
Указанные выше классы моделей имеют разный уровень абстракции. Выделение моделей разных уровней абстракции позволяет:
- разделить сложный процесс отображения "предметная область БД" на несколько более простых отображений;
- обеспечить возможность разным категориям пользователей работать с моделью соответствующего уровня.
Архитектура СУБД, предложенная рабочей группой CODASYL (Ассоциация по языкам и системам обработки данных), представлена на рисунке.
Модели данных
В зависимости от широты охвата предметной области различают глобальные и локальные модели. Глобальные модели отображают точку зрения администратора БД, локальные — взгляды различных пользователей.
Модели данных, поддерживаемые СУБД, делят на сетевые, иерархические и реляционные.
Соответственно различают сетевые, иерархические и реляционные СУБД. Модели данных, поддерживаемые СУБД определяют способ отражения связей между данными.
Сетевые СУБД используют модели представления данных в виде произвольного графа (или сети).
В иерархических СУБД данные представляются в виде иерархической (граф типа дерево) структуры.
В реляционной СУБД данные представляются в форме таблиц, называемых отношениями.
Сетевые и иерархические СУБД получили наибольшее распространение на больших и мини-ЭВМ.
Реляционные модели данных и реляционные СУБД реализуются чаще всего на персональных ЭВМ.
Виды взаимосвязи данных
Одна из главных функций АБД состоит в разработке концептуальной модели. Компонентами модели являются объекты и их взаимосвязи. Объектом считают любой предмет, событие, понятие и т.п., о котором приводятся данные. Все объекты характеризуются атрибутами. Например, объект ЭВМ можно характеризовать такими атрибутами: скоростью вычислений, объемом оперативной памяти, числом элементарных операций, числом процессоров, габаритами и т.д.
Сведения, содержащиеся в атрибуте данных, называются значениями данных.
Взаимосвязь выражает отображение или связь между двумя множествами данных. Различают взаимосвязи типа "один к одному", "один ко многим" и "многие ко многим".
- Взаимосвязь "один к одному" (1:1) между двумя типами объектов
пользователь <——> дисплей
В определенный момент времени один пользователь работает за одним дисплеем.
- "один ко многим" (1:m) между двумя типами объектов.
студент <<——> аудитория
В данный момент времени в одном дисплейном классе находится один или несколько пользователей, но любой пользователь может быть только в одной аудитории.
- "многие ко многим" (m:n)
преподаватель <<———>> студентЭВМ <<———>> пользовательимя <<———>> имя преподавателя студента
Каждый преподаватель обучает несколько студентов; каждый студент обучается у нескольких преподавателей.
Взаимосвязь может охватывать любое число объектов. С другой стороны каждый объект может участвовать в любом числе взаимосвязей.
Наряду с этим существует взаимосвязь между атрибутами объекта. Здесь также размещают взаимосвязи типа "1:1", "1:m", "m:n". Взаимосвязь "один к одному" (между двумя атрибутами)
один номер пользователя <———> другой уникальный один идентификатор.
Мы предполагаем, что номер пользователя является его уникальным идентификатором. Если в БД хранится и другой его уникальный идентификатор, то между такими двумя уникальными идентификаторами существует взаимосвязь "1:1".
Имя один Номер пользователя <———>> Пользователей с одинаковыми именами может быть много, но все они имеют различные имена. Каждому пользователю присваивается уникальный номер. Данному номеру соответствует только одно имя.