Внедрение ЭВМ в информационно - управленческую деятельность фирм повлекло за собой возникновение и развитие новых видов профессиональной деятельности, связанных с обслуживанием ЭВМ, а именно программистов, операторов, обработчиков информации.
Все системы управления базами данных предназначены для хранения и обработки информации. Реляционный подход к управлению базами данных основан на математической модели, использующей методы реляционной алгебры и реляционного исчисления. Тем не менее, большинство действительно необходимых определений из области управления базами данных скорее относятся к практической, чем к теоретической стороне этого вопроса [4].
С. Дейт дает следующее неформальное определение системе управления реляционными базами данных (СУБД).
- вся информация в базе данных представлена в виде таблиц;
- она поддерживает три реляционных оператора—выбора, проектирования и объединения, с помощью которых вы получаете необходимые вам данные (и можете выполнять эти операции, не требуя от системы физической записи получаемых с их помощью данных в каком-то определенном виде).
Др. И.Ф. Кодд, автор реляционной модели, разработал целый список критериев, которым должна удовлетворять реляционная модель. Описание этого списка, часто называемого «правилами Кодда», требует введения сложной терминологии и теоретических выкладок, что выходит за рамки данного дипломного проекта. Тем не менее, опишем состоящий из 12 правил тест Кодда для реляционных систем, и будем использовать его совместно с общим определением Дейта.
Чтобы считаться реляционной, система управления базами данных должна:
- представлять всю информацию в виде таблиц;
- поддерживать логическую структуру данных, независимо от их физического представления;
- использовать язык высокого уровня для структурирования, выполнения запросов и изменения информации в базах данных (теоретически это может быть любой язык баз данных, практически для этого используется язык SQL);
- поддерживать основные реляционные операции (выбор, проектирование и объединение), а также теоретико-множественные операции, такие как объединение, пересечение и дополнение;
- поддерживать виртуальные таблицы, обеспечивая пользователям альтернативный способ просмотра данных в таблицах;
- различать в таблицах неизвестные значения (nulls), нулевые значения и пропуски в данных;
- обеспечивать механизмы для поддержки целостности, авторизации, транзакций и восстановления данных.
Далее проведем аналитический обзор этих пунктов, ко многим из них будем обращаться в дальнейшем.
14.1 Реляционная модель: одни таблицы
Первое правило Кодда гласит, что вся информация в реляционных базах данных представляется значениями в таблицах (tables). В реляционных системах таблицы состоят из горизонтальных строк (row) и вертикальных столбцов (column). Все данные представляются в табличном формате - другого способа просмотреть информацию в базе данных не существует. Несколько замечаний по терминологии. Поскольку такие понятия как таблица, строка и столбец являются общепринятыми в коммерческих системах управления реляционными базами данных, будем стараться использовать их в этом дипломном проекте. Однако иногда можно встретиться и с такими понятиями, как отношение (relations), кортеж (tuple) и атрибут (attributes). Это соответственно синонимы понятий таблица, строка и столбец, так же, как и файл (file), запись (record) и поле (field). Первые три считаются академическими терминами, последние - взяты из общего лексикона, используемого в области обработки данных. Набор связанных таблиц образует базу данных (database). Таблицы в реляционной базе разделены, но полностью равноправны. Между ними не существует никакой иерархии и, вообще говоря, они не обязательно даже физически связаны друг с другом [5].
Каждая таблица состоит из строк и столбцов. Каждая строка описывает отдельный объект или сущность (entity) человека, компанию, торговую сделку или что-нибудь другое. Каждый столбец описывает одну характеристику объекта—имя человека или его адрес, телефонный номер компании или ее президента, лоты распродажи или дату. Каждый элемент данных, или значение (value), определяется пересечением строки и столбца таблицы. Чтобы найти требуемый элемент данных, необходимо знать имя содержащей его таблицы, столбец и значение его первичного ключа (primary key), или уникального идентификатора (каждая строка должна единственным образом идентифицироваться по одному из своих значений.)
В реляционных базах данных существует два типа таблиц — пользовательские таблицы (user tables) и системные таблицы (system tables). Пользовательские таблицы содержат информацию, для поддержки которой собственно и создавались системы реляционных баз данных—данные по сделкам, заказам, персоналу и т.д. Системные таблицы, известные также под названием системные каталоги (system catalog), содержат описание базы данных. Системные таблицы обычно поддерживаются самой СУБД, однако доступ к ним можно получить так же, как и к любым другим таблицам. Возможность получения доступа к системным таблицам, по аналогии с любыми другими таблицами, составляет основу другого правила Кодда для реляционных систем.
Независимость данных - критический аспект при управлении любой системой баз данных. Она позволяет изменять приложения, не изменяя для этого структуру базы данных, и изменять конструкцию базы данных, не оказывая при этом влияния на работу приложений. Система управления базами данных не должна вынуждать выносить окончательные решения о том, какие данные должны сохраняться, как получать к ним доступ и что будет нужно пользователям. Система не должна становиться бесполезной при изменении потребностей.
Реляционная модель обеспечивает независимость данных на двух уровнях - физическом и логическом. Физическая независимость данных (physical data independents) означает с точки зрения пользователя, что представление данных абсолютно не зависит от способа их физического хранения. Как следствие этого, физическое перемещение данных никоим образом не может повлиять на логическую структуру базы данных и ваше восприятие данных. Такие изменения обычно становятся просто необходимыми, особенно в больших многопользовательских системах. Например, при недостатке места для хранения информации может потребоваться установка дополнительных физических носителей. Когда устройство выходит из строя, увы, его приходится быстро заменять. Иногда может потребоваться увеличить производительность системы или упростить ее использование, изменив для этого методы доступа к физическим данным [4]. (Эти методы связаны с созданием стратегии доступа (access strategies) и применением индексов (index).)
Другой тип независимости, обеспечиваемый реляционными системами - логическая независимость (logical independents) означает, что изменение взаимосвязей между таблицами, столбцами и строками не влияет на правильное функционирование программных приложений и текущих запросов. Можно разбивать таблицы по строкам или столбцам, а приложения и запросы все равно будут выполняться, как и раньше. Несмотря на изменение логической структуры базы данных, всегда можно воспользоваться старыми запросами. Требование логической и физической независимости данных составляет основу двух других правил Кодда.
Определение реляционной системы, так же, как и правила Кодда, требует, чтобы весь диалог с базой данных велся на едином языке - иногда его называют общим подъязыком данных (comprehensive data sublanguage). В мире коммерческих систем управления базами данных такой язык получил название SQL. SQL используется для манипуляций с данными (data manipulation) выборки и модификации, определения данных (data definition) и администрирования данных (data administration). Любая операция по выборке, модификации, определению или администрированию выполняется с помощью оператора (statement) или команды (command) SQL.
Имеется две разновидности операций по манипуляции с данными - выборка данных (data retrieval) и модификация данных (data modification). Выборка - это поиск необходимых вам данных, а модификация означает добавление, удаление или изменение данных. Операции по выборке (чаше называемые запросами (query)) осуществляют поиск в базе данных, наиболее эффективно извлекают затребованную вами информацию и отображают ее. Другие команды SQL предназначены для создания и удаления таблиц, индексов и других объектов [4].
Последняя категория операторов SQL - операторы администрирования, или команды управления данными (data control). Они позволяют вам координировать совместное использование базы данных и поддерживать ее в наиболее эффективном состоянии.
Одним из наиболее важных аспектов администрирования многопользовательских систем управления базами данных является управление доступом к данным.
В определении системы управления реляционными базами данных упоминаются три операции по выборке данных - проектирование, выбор (иногда называемый ограничением (restrictions)) и объединение, которые позволяют строго указать системе, какие данные вы хотите увидеть. Операция проектирования выбирает столбцы, операция выбора - строки, а операция объединения собирает вместе данные из связанных таблиц.
Логическая и физическая независимость, о которой мы упоминали выше, означает, что вам не нужно беспокоиться о физическом расположении данных и о том, как их искать - это проблемы исключительно систем управления базами данных.
Проектирование - операция проектирования позволяет указать системе, какие столбцы таблицы должны просматриваться. С концептуальной точки зрения: операция проектирования определяет подмножество столбцов в таблице. Обратите внимание, что результаты выполнения проектирования (как и любой другой реляционной операции) также отображаются в форме таблицы. Результирующие таблицы иногда называют производными таблицами (derived tables), чтобы отличать их от базовых таблиц (base tables), содержащих исходные строки данных.