
- •Базы данных
- •Содержание
- •Введение
- •1. Основные понятия реляционных баз данных
- •2. Субд Microsoft Access
- •3. Лабораторный практикум Лабораторная работа № 1 Проектирование баз данных с использованием er-технологии
- •Лабораторная работа № 2 Создание и связывание таблиц базы данных
- •Лабораторная работа № 3 Создание запросов на выборку
- •Лабораторная работа № 4 Запросы на выборку в форме sql
- •Лабораторная работа № 5 Перекрестные запросы
- •Лабораторная работа № 6 Запросы на изменение
- •Лабораторная работа № 7 Создание однотабличных форм
- •Лабораторная работа № 8 Создание многотабличных форм
- •Лабораторная работа № 9 Создание главной кнопочной формы
- •Лабораторная работа № 10 Создание отчетов
- •Лабораторная работа № 11 Создание макросов
- •Лабораторная работа № 12 Автоматизированное создание баз данных с использованием case-средств
- •Лабораторная работа № 13 Средства защиты базы данных
- •Лабораторная работа № 14 Работа с базами данных в распределенной среде
- •Лабораторная работа № 15 Интеграция базы данных с глобальной сетью Интернет
- •4. Варианты заданий к лабораторным работам
- •Библиографический список
Лабораторная работа № 2 Создание и связывание таблиц базы данных
Теоретические сведения
Создание РБД начинается с создания структуры таблиц. После этого устанавливаются связи между таблицами. Затем таблицы заполняются конкретной информацией. Перед созданием и заполнением таблиц следует определить между ними отношение порядка. К нулевому уровню относятся таблицы, в которых данные не зависят от данных в других таблицах. К первому уровню принадлежат таблицы, данные в которых зависят только от таблиц нулевого уровня; ко второму – таблицы, данные в которых зависят от таблиц нулевого и первого уровня, и т. д. Сначала создают и заполняют таблицы нулевого уровня, затем первого и т. д.
После запуска Access следует создать БД, в которой будут сохранены все другие объекты (команда Файл > Создать). В правой части окна будет отображена панель со списком действий. Щелкните на ссылке Новая база данных и введите имя файла, к которому добавится расширение .mdb. Появится окно БД (рис. 21).
Рис. 21. Окно базы данных
В составе окна БД находятся три управляющие кнопки:
первая кнопка выполняет функции: Открыть, если выбрана таблица, форма или запрос; Просмотреть, если выбран отчет; Запустить, если выбран макрос;
кнопка Конструктор позволяет перейти в режим доработки любого объекта;
кнопка Создать позволяет приступить к созданию объекта любого типа.
При создании объекта предоставляется возможность выбора режима его разработки. Для создания таблицы следует щелкнуть на кнопке Таблицы, затем – на кнопке Создать. Можно выбрать следующие способы создания таблицы:
Режим таблицы – проектирование таблицы происходит в ходе ее заполнения по анализу вводимых данных;
Конструктор – создание таблицы с помощью конструктора таблиц;
Мастер таблиц – создание таблицы с помощью мастера таблиц на основе коллекции таблиц и полей;
Импорт таблиц – создание таблицы путем импорта данных из внешнего файла или из другой БД;
Связь с таблицами – присоединение внешнего файла (таблицы другой БД).
После выбора команды Конструктор откроется пустое окно проектирования, в котором определяется структура таблицы БД (рис. 22). Для определения поля в окне задаются Имя поля, Тип данных, Описание, а также Свойства поля: общие свойства – на закладке Общие и тип элемента управления – на закладке Подстановка.
При создании структуры таблицы следует разбивать информацию на наименьшие возможные элементы. Почтовый адрес рекомендуется разделить на поле почтового индекса, поле населенного пункта и т. д. Тот же подход следует применить для полей, содержащих имена (поле фамилии, поле имени и отчества). Упрощается процедура поиска и сортировки. Упрощается процедура оформления серийных писем. Использование для генерации обращения единственного поля, содержащего имя и фамилию, приведет к тому, что обращение будет выглядеть так: «Дорогой господин Иванов Сергей Петрович!».
Рис. 22. Окно таблицы в режиме конструктора
Имя поля в таблице является комбинацией из букв, цифр, пробелов и специальных символов, за исключением « . ! " " ». Максимальная длина имени 64 символа.
Тип данных определяется значениями, которые предполагается вводить в поле, и операциями, которые будут выполняться с этими значениями. Допускается использование типов данных, приведенных в табл. 4. Список типов данных вызывается нажатием кнопки списка при выборе типа данных каждого поля.
Для каждого поля таблицы можно ввести комментарий в колонку Описание. Отсутствие комментария не влияет на корректность спецификации таблицы.
Задание характеристик отдельных полей (размер поля, формат и т. д.) выполняется в нижней части окна проектирования. Набор свойств, присущих полю, зависит от выбранного типа данных поля (табл. 5). При выборе размера числового поля таблицы следует руководствоваться данными табл. 6.
Если поле индексируется, то существенно сокращается время поиска записи по содержимому этого поля. Следует щелкнуть на свойстве Индексированное поле и выбрать в списке значение Да.
Тип элемента управления – свойство, которое задается на закладке Подстановка. Это свойство определяет, будет ли отображаться поле в таблице, и в какой форме (в виде поля, списка или поля со списком). Если выбран тип элемента управления Список или Поле со списком, то на закладке Подстановка появляются дополнительные свойства, определяющие источник данных для строк списка и другие характеристики. Если при определении типа поля был выбран Мастер подстановок, то значения свойств на закладке Подстановка будут заполнены мастером.
Таблица 5
Свойство |
Функция |
Размер поля |
Определяет максимальную длину текстового поля или размерность данных числового поля. |
Формат поля |
Устанавливает формат вывода данных в форме и запросе |
Число десятичных знаков |
Определяет количество разрядов в дробной части десятичного числа |
Маска ввода |
Определяет маску данных при вводе |
Подпись |
Содержит надпись, которая выводится рядом с полем в форме или отчете и может содержать поясняющие сведения. |
Значение по умолчанию |
Определяет значение, которое автоматически вводится в поле при создании новой записи |
Условие на значение |
Описывает правило, ограничивающее множество доступных для поля значений. Каждое из доступных значений текстового поля должно быть заключено в кавычки. Для поля Коробка передач правило может гласить: «Автоматика» Or «Ручная». |
Сообщение об ошибке |
Выдает сообщение о нарушении правил отбора допустимых значений. Для поля Коробка передач может выглядеть так: Допустимые значения только «Автоматика» или «Ручная» |
Обязательное поле |
Определяет необходимость заполнения поля при вводе |
Пустые строки |
Определяет возможность установления нулевой длины поля |
Индексированное поле |
Определяет простые индексы для ускорения процессов поиска (поле первичного ключа индексируется автоматически) |
Сжатие Юникод |
В Access для хранения информации полей типа Текстовый, MEMO или Гиперссылка используется кодировка Юникод, где каждый знак представляется 2 байтами (в ранних версиях каждый знак представлялся 1 байтом). Если первый байт знака не равен нулю, этот знак не будет сжиматься, иначе он будет представлен 1 байтом (сжат) |
Режим IME |
Обеспечивает работу с текстами на китайском или японском языке |
Таблица 6
Значение |
Описание |
Байт |
Числа от 0 до 255 (целые > 0). Занимает 1 байт |
Целое |
Числа от –32 768 до 32 767 (целые). Занимает 2 байта |
Длинное целое |
Числа от –2 147 483 648 до 2 147 483 647 (целые). Занимает 4 байта |
Одинарное с плавающей точкой |
Дробные числа (с плавающей точкой) с шестью знаками в дробной части от –3.402823 Е38 до 3.402823 Е38. Занимает 4 байта |
Двойное с плавающей точкой |
Дробные числа (с плавающей точкой) с 10 знаками в дробной части от –1.79769313486232 Е308 до 1.79769313486232 Е308. Занимает 8 байт |
Код репликации |
Уникальный глобальный идентификатор (GUID) – 16-байтовое поле, используемое для уникальных идентификаторов при репликации |
Действительное |
Числа от (–10 Е38) – 1 до (10 Е38) – 1 (.adp). Числа от (–10 Е28) – 1 до (10 Е28) – 1 (.mdb). Занимает 12 байт. Дробная часть 28 значащих цифр |
Первичный ключ таблицы может быть простым или составным. Для определения ключа выделяются поля, составляющие ключ, и на панели инструментов нажимается кнопка Ключевое поле (команда Правка > Ключевое поле). Если для установки ключевого поля используется Мастер таблиц, то необходимо задать тип используемых в ключевом поле данных (табл. 7).
Таблица 7
Тип данных |
Описание |
Тип поля |
Порядковый номер, автоматически присваиваемый каждой новой записи |
При вводе каждой новой записи Access автоматически присваивает ей порядковый номер. Вводить или редактировать данные в поле Счетчик (AutoNum) нельзя |
Счетчик (AutoNum) |
Номер, вводимый пользователем при добавлении каждой новой записи |
При вводе записи в одно из ее полей заносится уникальное числовое значение, например номер документа. В это поле нельзя вводить буквы |
Числовой (Number) |
Сочетание букв и цифр, вводимое пользователем при добавлении каждой новой записи |
При вводе записи в одно из ее полей заносится уникальное сочетание цифр и букв. Выберите этот тип данных, если поле будет содержать как буквы, так и цифры |
Текстовой (Text) |
Для ключевого поля автоматически строится индекс. Окно Индексы вызывается щелчком на кнопке просмотра и редактирования индексов Индексы (команда Вид > Индексы). В этом окне индекс первичного ключа имеет имя Primary Key, в столбце Имя поля перечисляются имена полей, составляющие индекс. Индекс ключевого поля всегда уникален и не допускает пустых полей в записях.
После определения структуры таблицы ее надо сохранить командой Файл > Сохранить или кнопкой панели инструментов Сохранить. В окне Сохранение вводится имя таблицы. Если необходимо добавить, удалить или изменить параметры поля, маркируйте таблицу в окне БД и щелкните на кнопке Конструктор. Чтобы добавить поле в определенной позиции, следует маркировать с помощью селекторного столбца строку, перед которой должна быть введена пустая строка и выбрать команду Вставка > Строки или Поле подстановок. В случае использования команды Поле подстановок активизируется Мастер подстановок.
После сохранения таблицы делается доступным режим таблицы, позволяющий перейти к созданию записей. Для ввода записей маркируйте имя таблицы в окне БД и щелкните на кнопке Открыть. Если пользователь находится в окне проектирования, то в меню Вид следует установить опцию Режим таблицы. Переход от поля к полю осуществляется с помощью клавиши [Tab]. В предыдущее поле можно попасть с помощью комбинации клавиш [Shift+Tab]. Посредством клавиш [вверх] и [вниз] осуществляются перемещения между строками таблицы. Переход к первой ячейке следующей строки осуществляется с помощью клавиши [Tab]. Если необходимо изменить значение в поле, содержащем значение по умолчанию, следует щелкнуть в нем мышью и ввести новое значение.
Пользователь может добавить в таблицу любое количество записей, удалить или исправить имеющиеся данные. Удаляемые данные следует предварительно маркировать с помощью селекторной колонки и нажать клавишу [Del] (команда Правка > Удалить или Удалить запись). Закрыть таблицу можно командой Файл > Закрыть. Сохранение данных не требуется, поскольку записи по мере их ввода автоматически помещаются в файл.
Встроенные средства конвертирования позволяют Access считывать и обрабатывать данные других форматов, а также экспортировать Access-таблицы в другие БД. Данные можно импортировать, если они хранятся в файлах форматов: MS Access, текстовый, MS Excel, Paradox, Exchange, Outlook, документы HTML, dBASE III, dBASE IV, dBASE 5, таблицы Lotus 1-2-3, документы XML, ODBC Database. Импорт данных осуществляется командой Файл > Внешние данные > Импорт.
Предположим, что данные хранились в Excel-таблице. В поле Тип файлов маркируйте формат MS Excel. Найдите импортируемый файл и маркируйте его. Щелкните на кнопке Импорт для запуска мастера импорта. В открывшемся окне отобразятся данные импортируемой таблицы Excel. В качестве имен полей предлагается выбрать первую строку таблицы Excel, содержащую заголовки столбцов (опция Первая строка содержит заголовки столбцов). В следующем окне можно изменить имя поля и его тип, а также определить, следует ли его импортировать. Кроме того, можно определить, требуется ли индексация данного поля. В следующем окне нужно установить первичный ключ для таблицы, исходя из вариантов:
автоматически создать ключ – поле с первичным ключом добавляет Access;
определить следующий ключ – поле выбирает пользователь;
не создавать ключ – первичный ключ не присваивается.
В последнем диалоговом окне задается имя импортируемой таблицы. После импорта таблицы можно запустить программу анализа данных.
Существует возможность обработки данных, представленных в другом формате, без импортирования. Такие данные представляют для Access внешнюю таблицу, они остаются в исходном формате. Встраивание таблицы осуществляется командой Файл > Внешние данные > Связь с таблицами. В БД Access могут быть встроены в виде таблицы данные из файлов следующих форматов: MS Access, MS Excel, Paradox, dBASE III, dBASE IV, dBASE 5, Exchange, Outlook, документы HTML, ODBC Database. После выбора формата следует нажать кнопку Связь. Процесс связывания проходит под управлением мастера связи и аналогичен процессу импорта таблицы. Выбранная таблица встраивается в активную БД, в окне БД рядом со встроенной таблицей появится пиктограмма-стрелка. Встроенная таблица выглядит как обычная Access-таблица, однако ее структуру изменить нельзя.
Пользователь может экспортировать данные из Access-таблиц в текстовые файлы, электронные таблицы, файлы других прикладных программ, а также в другую БД Access (можно в формате предыдущей версии). Перейдите в БД, содержащую экспортируемую таблицу, маркируйте ее и выберите команду Файл > Экспорт. В диалоговом окне экспорта выберите формат файла или БД, в которую производится экспорт (например, MS Excel). Форматы экспорта идентичны форматам импорта. После щелчка на кнопке Экспорт Access создаст Excel-файл с данными из таблицы и вставит имена полей таблицы в первую строку.
Можно сохранить таблицу в текущей БД. Для этого маркируйте ее и активизируйте команду Файл > Сохранить как. В диалоговое окно Сохранение следует ввести имя копии, а также выбрать, во что при сохранении будет преобразована таблица. Таблицу можно сохранить как Таблицу (без преобразования) либо, выбрав одну из опций Форма, Отчет, Страница доступа к данным, преобразовать ее в выбранный тип объекта. При этом исходная таблица не изменится.
Структура БД в Access задается схемой данных, которая отображается в отдельном окне (рис. 23). При построении схемы данных Access определяет по выбранному полю тип связи между таблицами. Если поле связи является уникальным ключом и в главной и в подчиненной таблице, Access устанавливает связь один-к-одному. Если поле связи является уникальным ключом в главной таблице, а в подчиненной таблице является неключевым или входит в составной ключ, Access устанавливает связь один-ко-многим от главной таблицы к подчиненной.
Рис. 23. Схема данных БД
При создании схемы данных пользователь включает в нее таблицы и устанавливает связи между таблицами. Для связей один-к-одному и один-ко-многим можно задать обеспечение целостности данных, а также автоматическое каскадное обновление и удаление связанных записей. Обеспечение целостности данных означает выполнение для связанных таблиц следующих условий:
в подчиненную таблицу не может быть добавлена запись, для которой не существует в главной таблице ключа связи;
в главной таблице нельзя удалить запись, если не удалены связанные с ней записи в подчиненной таблице;
изменение значения ключа связи главной таблицы должно приводить к изменению соответствующих значений в записях подчиненной таблицы,
Если пользователь нарушает эти условия при обновлении или удалении данных, Access не допускает выполнения операции.
Если в схеме данных установлена связь с параметрами обеспечения целостности, Access отслеживает целостность данных, и при вводе некорректных данных в связанные таблицы выводит сообщение. В схеме данных Access не позволяет создавать связи с параметрами целостности, если ранее введенные в таблицы данные не отвечают требованиям целостности.
Установление между двумя таблицами связи один-к-одному или один-ко-многим и задание параметров целостности данных возможно при условиях:
связываемые поля имеют одинаковый тип (имена могут быть различными);
обе таблицы сохраняются в одной базе данных;
главная таблица связывается с подчиненной по первичному простому или составному ключу (уникальному индексу) главной таблицы.
Если для выбранной связи обеспечивается поддержание целостности, то можно задать режим каскадного обновления и удаления связанных записей. В режиме каскадного обновления связанных записей при изменении значения в поле связи главной таблицы Access автоматически изменит значения в соответствующем поле в подчиненных записях. В режиме каскадного удаления связанных записей при удалении записи из главной таблицы Access выполняет каскадное удаление подчиненных записей на всех уровнях.
Схема данных создается командой Сервис > Схема данных (кнопка Схема данных на панели инструментов). На экране появляется окно Схема данных. В списке таблиц окна Добавление таблицы следует выделить таблицу и нажать клавишу Добавить. Добавить таблицы или запросы в окно Схема данных можно командой Связи > Добавить таблицу. Для установления связи между двумя таблицами надо выделить в главной таблице уникальное ключевое поле, по которому устанавливается связь, и протащить мышью курсор в соответствующее поле подчиненной таблицы. В диалоговом окне Изменение связей необходимо определить параметры связи. При составном ключе связи в окне Изменение связей необходимо для каждого ключевого поля главной таблицы (Таблица / 3апрос) выбрать соответствующее поле подчиненной таблицы (Связанная таблица / 3апрос).
Установление опции Обеспечение целостности данных обеспечивает проверку ссылочной целостности для связи между таблицами. После задания параметра целостности можно отметить Каскадное обновление связанных полей и Каскадное удаление связанных записей. После нажатия кнопки Создать созданная связь будет графически показана в окне Схема данных. Между двумя таблицами может быть объявлено только одно отношение. Если дается определение другому отношению между теми же таблицами, то оно заменит уже имеющееся отношение.
При модификации схемы данных осуществляется удаление, добавление таблиц и изменение связей. Необходимость в изменении связей возникает при изменении ключей в таблицах. Изменение ключа не может производиться, пока не удалены связи таблицы в схеме данных. При изменении типа данных неключевых полей, задействованных в связях, также предварительно необходимо удалить эти связи.
Для внесения изменений в схему данных необходимо закрыть все таблицы и открыть схему данных. Добавление таблиц выполняется кнопкой Добавить таблицу. Для удаления таблицы из схемы данных надо удалить связи таблицы и выполнить команду Правка > Удалить или нажать клавишу <Del>. Для удаления связи необходимо ее выделить, вызвать контекстное меню и выполнить команду Удалить связь. Можно использовать команду Правка > Удалить или клавишу <Del>. Изменение параметров связи выполняется командой Связи > Изменить связь или командой контекстного меню.
На основе связанной таблицы можно построить поле со списком. Выберите в окне БД модифицируемую таблицу и нажмите кнопку Конструктор. Щелкните в колонке Тип данных необходимого поля и выберите из списка строку Мастер подстановок. В первом диалоговом окне выберите опцию Столбец подстановки использует значения из таблицы или запроса. В следующем окне из списка таблиц (запросов) выберите нужную таблицу. В новом окне из списка полей Доступные поля выберите поля, значения которых будут фигурировать в списке (ключевое поле к списку присоединится автоматически). Это можно увидеть в следующем диалоговом окне, если отключить опцию Скрыть ключевой столбец. В следующем окне выбирается столбец, значение которого будет сохранено в модифицируемом поле. Из списка полей Доступные поля выберите нужное поле, нажмите кнопку Готово и сохраните проект таблицы. Если при вводе данных в таблице щелкнуть мышью в модифицированном поле, то развернется комбинированный список.
Практическая работа
При выполнении лабораторной работы необходимо:
для заданной предметной области создать файл БД в Access;
сконструировать таблицы, определить атрибуты таблиц, их типы и свойства;
определить связи между таблицами и построить схему данных;
наложить ограничения целостности;
заполнить таблицы данными;
составить отчет по лабораторной работе.