Как делать схему данных. Разработка схемы данных субд access. Экономики и финансов

Тема 2.3. Программные средства презентаций и основы офисного программирования

Тема 2.4. Системы управления базами данных и экспертные системы

2.4.11. Учебная база данных с главной кнопочной формой "Training_students" - Скачать

СУБД и экспертные системы

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

2.4.3. Создание базы данных (установка связей между таблицами и заполнение таблиц)

2.4.3.2. Установка связей между таблицами в СУБД Access

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

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


Рис. 1.

В появившемся диалоговом окне Добавление таблиц необходимо выделить имена таблиц и нажать кнопку Добавить, при этом в окне "Схема данных" добавляются таблицы. После появления всех таблиц в окне Схема данных необходимо закрыть окно Добавление таблицы, щелкнув левой кнопкой мыши на кнопке Закрыть.



Рис. 2.

Следующий шаг - это установка связей между таблицами в окне Схема данных. Для этого в окне Схема данных необходимо отбуксировать (переместить) поле КодГруппы из таблицы Группы на соответствующее поле таблицы Студенты, в результате этой операции появится окно "Изменение связей".

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



Рис. 3.

В окне Схема данных появится связь один-ко-многим между таблицами Группы студентов и Студенты. Аналогичным образом надо связать поля КодСтудента в таблицах Студенты и Успеваемость, а затем поля КодДисциплины в таблицах Успеваемость и Дисциплины. В итоге получим Схему данных, представленную на рисунке.



Рис. 4.

После установки связей между таблицами, окно Схема данных необходимо закрыть.

Далее необходимо осуществить заполнение всех таблиц. Заполнение таблиц целесообразно начинать с таблицы Группы студентов, так как поле Код группы таблицы Студенты используется в качестве столбца подстановки для заполнения соответствующего поля таблицы Студенты.

2.4.3.3. Заполнение таблиц

Заполнение таблиц можно начать и с заполнения таблицы Студенты. В окне Базы данных выделяем нужную таблицу, затем выполняем щелчок на кнопке Открыть.

На экране появится структура таблицы БД в режиме таблицы. Новая таблица состоит из одной пустой строки.


Рис. 5.

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

В приложении Access применяются различные методы перемещения по таблице. Переходить от записи к записи можно с помощью: клавиш управления курсором; кнопки из области Запись, расположенной внизу таблицы в режиме таблицы; команды Правка - Перейти.. Для перемещения от поля к полю (слева направо) применяются клавиши Tab и Enter, а в обратном направлении Shift+Tab.

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

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

В современном мире нужны инструменты, которые бы позволяли хранить, систематизировать и обрабатывать большие объемы информации, с которыми сложно работать в Excel или Word.

Подобные хранилища используются для разработки информационных сайтов, интернет-магазинов и бухгалтерских дополнений. Основными средствами, реализующими данный подход, являются MS SQL и MySQL.

Продукт от Microsoft Office представляет собой упрощенную версию в функциональном плане и более понятную для неопытных пользователей. Давайте рассмотрим пошагово создание базы данных в Access 2007.

Описание MS Access

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

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

Определения основных понятий

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

  1. Предметная область – множество созданных таблиц в базе данных, которые связаны между собой с помощью первичных и вторичных ключей.
  2. Сущность – отдельная таблица базы данных.
  3. Атрибут – заголовок отдельного столбца в таблице.
  4. Кортеж – это строка, принимающая значение всех атрибутов.
  5. Первичный ключ – это уникальное значение (id), которое присваивается каждому кортежу.
  6. Вторичный ключ таблицы «Б» – это уникальное значение таблицы «А», использующееся в таблице «Б».
  7. SQL запрос – это специальное выражение, выполняющее определенное действие с базой данных: добавление, редактирование, удаление полей, создание выборок.

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

Создание БД

Для наглядности всей теории создадим тренировочную базу данных «Студенты-Экзамены», которая будет содержать 2 таблицы: «Студенты» и «Экзамены». Главным ключом будет поле «Номер зачетки», т.к. данный параметр является уникальным для каждого студента. Остальные поля предназначены для более полной информации об учащихся.

Итак, выполните следующее:


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

Создание и заполнение таблиц

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



Совет! Для тонкой настройки формата данных перейдите на ленте во вкладку «Режим таблицы» и обратите внимание на блок «Форматирование и тип данных». Там можно кастомизировать формат отображаемых данных.

Создание и редактирование схем данных

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

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


Конструктор должен автоматически создать связь, в зависимости от контекста. Если же этого не случилось, то:


Выполнение запросов

Что же делать, если нам нужны студенты, которые учатся только в Москве? Да, в нашей БД только 6 человек, но что, если их будет 6000? Без дополнительных инструментов узнать это будет сложно.

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

Виды запросов

SQL синтаксис реализует принцип CRUD (сокр. от англ. create, read, update, delete - «создать, прочесть, обновить, удалить»). Т.е. с помощью запросов вы сможете реализовать все эти функции.

На выборку

В этом случае в ход вступает принцип «прочесть». Например, нам нужно найти всех студентов, которые учатся в Харькове. Для этого нужно:


А что делать, если нас интересуют студенты из Харькова, стипендии у которых больше 1000? Тогда наш запрос будет выглядеть следующим образом:

SELECT * FROM Студенты WHERE Адрес = «Харьков» AND Стипендия > 1000;

а результирующая таблица примет следующий вид:

На создание сущности

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

  1. Перейти во вкладку «Создание».
  2. Нажать кнопку «Конструктор запросов» в блоке «Другие».
  3. В новом окне нажмите на кнопку SQL, после чего в текстовое поле введите команду:

CREATE TABLE Преподаватели
(КодПреподавателя INT PRIMARY KEY,
Фамилия CHAR(20),
Имя CHAR (15),
Отчество CHAR (15),
Пол CHAR (1),
Дата_рождения DATE,
Основной_предмет CHAR (200));

где «CREATE TABLE» означает создание таблицы «Преподаватели», а «CHAR», «DATE» и «INT» - типы данных для соответствующих значений.


Внимание! В конце каждого запроса должен стоять символ «;». Без него выполнение скрипта приведет к ошибке.

На добавление, удаление, редактирование

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


Создание формы

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


Все базовые функции MS Access 2007 мы уже рассмотрели. Остался последний важный компонент – формирование отчета.

Формирование отчета

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

Если вы никогда не сталкивались с подобной функцией, рекомендуется воспользоваться встроенным «Мастером отчетов». Для этого сделайте следующее:

  1. Перейдите во вкладку «Создание».
  2. Нажмите на кнопку «Мастер отчетов» в блоке «Отчеты».

  3. Выберите интересующую таблицу и поля, нужные для печати.

  4. Добавьте необходимый уровень группировки.

  5. Выберите тип сортировки каждого из полей.

  6. Настройте вид макета для отчета.

Схема данных

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

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

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

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

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

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

Пример 1

Рассмотрим модель данных предметной области «Поставка товаров» (рисунок 1). Схема данных Access, построенная для данной модели данных, представлена на рисунке 2.

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

Особенности схемы данных

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

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

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

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

1. Выберите команду Сервис > Схема данных . Откроется окно, схематически изображающее связи базы данных. На рис. 16.11 видно, что линия связи соединяет поля Код_Контакты таблицы Контакты и Контакт таблицы Список.

Примечание Данная связь соединяет ключевое и обычное поля. Это связь типа «один ко многим», когда одной записи таблицы Контакты может соответствовать несколько записей таблицы Список, но не наоборот.

Рис. 16.11. Схема данных Access

Для тренировки давайте удалим связь, а затем создадим ее заново.

2. Щелчком выделите линию связи.

3. Нажмите клавишу Delete. В ответ на появившийся запрос щелкните на кнопке Да. Связь исчезнет.

4. Поместите указатель мыши на пункт Код_Контакты таблицы Контакты.

5. Нажмите кнопку мыши и перетащите указатель на поле Контакт таблицы Список.

6. В открывшемся окне диалога щелкните на кнопке Создать . Связь появится вновь. Чтобы настроить параметры связи, выполните следующие шаги.

7. Дважды щелкните на линии связи. Откроется окно диалога, показанное на рис. 16.12.

Рис. 16.12. Параметры связи

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

8. Установите флажок Обеспечение целостности данных . Этот режим не позволит Access оставлять в таблице Список записи, для которых нельзя подобрать запись таблицы Контакты с подходящим значением поля Код_Контакты.

9. Установите флажок Каскадное удаление связанных записей . Теперь при удалении записи таблицы Контакты (то есть удалении информации о конкретном человеке) будут удалены все соответствующие записи таблицы Список (то есть все описания контактов с этим человеком). Если указанный флажок сброшен, удаление тех записей таблицы Контакты, на которые ссылается хотя бы одна запись таблицы Список, запрещено.

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

10. Щелкните на кнопке ОК .

11. Закройте окно Схема данных.

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

13. Щелкните на знаке «плюс» записи для Петра Петрова. Откроется вложенная таблица, содержащая те записи таблицы Список, значение поля Код_Контакты которых равно величине одноименного поля записи для Петра Петрова (рис. 16.13).

Рис. 16.13. Выборка данных из связанной таблицы Access

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

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

Схема данных

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

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

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

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

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

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

Пример 1

Рассмотрим модель данных предметной области «Поставка товаров» (рисунок 1). Схема данных Access, построенная для данной модели данных, представлена на рисунке 2.

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

Особенности схемы данных

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

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

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