Правило 1: Уникальность полей

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

Вывод. Каждое поле таблицы должно представлять уникальный тип информации.

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

Под ключевым понимается поле, значения которого уникальны.

Правило 2: Первичные ключи (поля)

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

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

Всегда, когда это возможно, в качестве первичного ключа следует использовать самые простые данные, имеющие «естественные» уникальные значения, например код книги.

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

Правило 3: Функциональная зависимость

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

Вывод. Для каждого значения первичного ключа (поля, значения которого уникальны) значения в столбцах данных должны относиться к объекту таблицы и полностью его описывать.

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

Правило 4: Независимость полей

И, наконец, последнее правило позволяет проверить, не возникнут ли проблемы при изменении данных в таблицах.

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

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

Описанные выше приемы проектирования помогут эффективно связывать данные. Можно заметить, что в результате нормализации базы данных, как правило, получается множество отдельных таблиц. До появления реляционных баз данных пришлось бы при проектировании таблиц самому отслеживать связи между файлами или таблицами. В реляционных базах таких проблем не возникает. Имея хороший проект, можно не заботиться о том, как объединить данные в нужный момент.

Введение в системы управления базами данных (СУБД)

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

СУБД используются для создания баз данных в различных прикладных областях.

Можно выделить следующие основные средства для работы в современных СУБД:

1. Средства описания структуры базы данных (БД).

2. Средства конструирования экранных форм БД.

3. Средства создания запросов для выборки и обработки данных по некоторым критериям.

4. Средства создания отчетов из БД для вывода на печать результатов обработки в удобном для пользователя виде.

5. Языковые средства — макросы, встроенные алгоритмические языки (например, Visual Basic), язык запросов (QBE – Query by Example SQL – Structured Queries Language).

6. Средства создания приложений пользователя с удобным интерфейсом (меню, панели управления и т.д.).

Язык запросов QBE предоставляет возможность пользователю работать с помощью подпрограмм – Конструкторов и Мастеров, которые позволяют строить запросы по образцу.

Язык запросов SQL является довольно сложным языком программирования высокого уровня и используется, как правило, программистами.

Возможности современных СУБД:

1. Работа с различными типами данных, в том числе мультимедийными – звуковыми, графическими, видеоклипами, а также в формате HTML и электронной почтой.

2. Интеграция данных из различных СУБД.

Классифицировать СУБД можно по разным критериям. С некоторыми из них мы познакомимся.

По степени универсальности СУБД делят на два класса: СУБД общего назначения и специализированные СУБД.

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

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

· за счёт знания особенностей конкретной предметной области,

· путём сокращения функциональной полноты системы.

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

По модели данных различают иерархические, сетевые, реляционные и объектно-ориентированные СУБД.

По методам организации хранения и обработки данных СУБД делят на централизованныеираспределённые.

Централизованная база данных хранится на одной ЭВМ, которая является компонентом сети. Это не означает, что пользователь может работать с БД только за этим же компьютером: доступ может быть удалённым. Однако доступ усложняется за счёт одновременности обращения многих пользователей к данным и соответственно ожидания ответа.

Распределенная база данных состоит из нескольких, возможно пересекающихся или даже дублирующих друг друга, хранимых на разных ЭВМ вычислительной сети. Работа с такой базой данных ведется с помощью СУРБД ‑ системой управления распределенной БД (например, Oracle).

Существует множество альтернатив распределенной обработки. Наиболее популярна в настоящее время архитектура клиент-сервер. Более распределенной и более гибкой является архитектура типа много-клиентов/много-серверов, когда база данных размещена на множестве серверов.

Специализированные СУБД ориентированы на конкретную область и поддерживают ряд функций: поиск, визуализацию в текстовом редакторе, пополнение базы данных и др. К таким СУБД можно отнести, например, информационно-поисковые системы (ИПС).

На Российском рынке широко известны такие системы, как база нормативных документов таможенного цикла ВЭД-инфо, информационно-правовые системы КонсультантПлюс, Кодекс и Гарант.

Каждая из этих систем имеет свой интерфейс, свой набор функций для работы, однако есть общие функции:

1. Поиск документов по реквизитам (простой и сложный)

2. Просмотр документов

3. Сохранение документов

4. Печать документов.

В данном курсе на практических занятиях подробно рассматривается ИПС КонсультантПлюс, которая состоит из нескольких баз:

· Консультант профессионал

· Консультант эксперт

· Консультант арбитраж

· Консультант финансист и бухгалтер

· Консультант международное право.

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

СУБД общего назначения - это очень сложные программные комплексы, предназначенные для выполнения всей совокупности функций по созданию и эксплуатации баз данных в любой области. Основные разработки СУБД на мировом рынке принадлежат фирмам Microsoft (FoxPro-DOS/WIN, Access) и Borland (Paradox-DOS/WIN).

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

СУБД MS ACCESS

База данных, созданная с помощью СУБД MS Access, содержит следующие объекты: таблицы, формы, запросы, отчеты, макросы и модули и хранится в одном файле с расширением .mdb (Microsoft Data Base). Основной структурный элемент БД в СУБД Access – это таблица.

Как и другие СУБД, Access включает в себя три основных типа функций:

1. Определение данных – тип данных и связи, иногда критерии проверки.

2. Обработка данных – вычисления и другие действия.

3. Управление данными – определение правил доступа и корректировки информации.

Процесс проектирования БД в рамках СУБД Access осуществляется с помощью встроенных программ: Конструкторов и Мастеров.

Например, формирование структуры таблицы используется Конструктор таблиц, для создания запросов – Конструктор запросов, для создания форм – Мастер форм, для создания отчетов – Мастер отчетов.

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

В Microsoft Access существуютключи двух типов: первичные и вторичные или внешние.

Первичный ключ используется для связывания таблицы с внешними ключами в других таблицах. Внешний (вторичный) ключ содержит ссылку на поле или поля первичного ключа в другой таблице и определяет способ объединения таблиц.

Можно выделить три типа первичных ключей: счетчик, простой ключ и составной ключ.

Ключевые поля счетчика

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

Простой ключ

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

Составной ключ

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

Запросы

Для обработки данных используется удобное средство - запрос.

Запрос – это механизм выборки и (или) обработки данных из БД по некоторому критерию.

Запросы строятся по-разному, в зависимости от потребности. Существует несколько групп запросов:

1. Запрос-выборка, предназначенный для отбора данных в таблице, не изменяющий эти данные в самой таблице:

1.1. Запрос сортировка и по критерию (статический критерий).

1.2. Запрос с параметром, который позволяет определять одно или несколько условий отбора во время выполнения запросов (динамический критерий).

1.3. Запрос на вычисление, предназначенный для организации нового вычисляемого поля или замены имеющегося поля вычисляемым.

2. Запрос-изменение, предназначенный для изменения или перемещения данных

2.1. Запрос на добавление

2.2. Запрос на удаление записи

2.3. Запрос на обновление таблицы

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

Формы

Для создания удобного пользовательского интерфейса СУБД Access дает возможность создать с помощью мастера экранную форму окна с кнопками, полями для ввода.

Отчеты

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

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

Функции СУБД Access

Для построения базы данных в СУБД Access предусмотрены следующие основные группы функций:

Ø Функции работы с файлами-базами (открытие, сохранение и т. д.)

Ø Функции редактирования

Ø Функции форматирования

Ø Функции работы с окнами

Ø Функции работы в основных режимах: таблица, форма, запрос, отчет и др.

Ø Функция справки.

Основные этапы создания базы данных:

1. Создание структур таблиц (имена, типы полей и т.д.)

2. Ввод и редактирование данных в таблице

3. Создание формы (если необходимо)

4. Связывание таблиц и создание запросов для обработки данных в таблицах

5. Вывод информации из БД на основе отчетов (если нужно).

Очень важным является вопрос связывания таблиц. В СУБД Access предусмотрено два варианта связывания таблиц:

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

2. Создание временной связи между нужными таблицами в Конструкторе запросов.

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

Контрольные вопросы:

1. Дайте общие сведения о СУБД и базах данных.

2. Классифицируйте логические модели баз данных. Чем они отличаются?

3. Определите понятие реляционной модели, в чем ее преимущества?

4. Определите основные понятия реляционной модели: домен, кортеж, атрибут.

5. Определите и поясните основные структурные элементы СУБД ACCESS – таблицы, формы, запросы, отчеты.

6. Перечислите четыре типа запросов на выборку без изменения таблицы.

7. Какие запросы используют динамический критерий?

8. Зачем нужны итоговые запросы и какова роль групповых операций?

9. Назовите Правила нормализации таблиц и поясните их.

10. Какие поля можно выбирать в качестве первичных?

11. Перечислите типы первичных ключей.

12. Что такое связывание таблиц, какова роль первичных и вторичных (внешних) ключей.

13. Какие виды ключей можно создать в СУБД MS Access?


Наши рекомендации