- •Cодержание
- •Лабораторная работа №1 «Проектирование многотабличных баз данных в среде субдAccess»
- •1. Цель работы
- •2. Основные положения
- •Структура таблицы Студенты
- •Специальности
- •Студенты
- •3. Интерфейс субд access
- •4.Создание базы данных и заполнение таблиц
- •5.Определение связей между таблицами
- •6. Обеспечение целостности данных
- •7.Использование каскадных операций
- •8. Ввод данных в таблицы
- •9. Импорт или связывание данных
- •10. Экспорт данных в другую базу данных или в файл другого формата
- •11.Варианты задания
- •12.Порядок выполнения лабораторной работы
- •13. Вопросы для самоподготовки
- •Лабораторная работа №2 «Использование форм для заполнения баз данных в субд ms access»
- •Цель работы
- •Общие сведения
- •Использование форм для ввода данных
- •Создание формы
- •Размещение элементов управления на форме
- •Редактирование формы
- •Порядок выполнения лабораторной работы
- •Вопросы для самоподготовки
- •Лабораторная работа №3 «использование запросов в субдmsaccess»
- •Цель работы
- •Общие сведения о запросах
- •Многотабличные запросы
- •Результат запроса «Специальности -Группы»
- •Результат запроса «Группы –Студенты»
- •Использование условия отбора в запросах для выбора определенных записей
- •Перекрестные запросы и их использование
- •Запросы с параметрами с приглашением на ввод условий отбора
- •Создание итоговых запросов
- •Изменение данных с помощью модифицирующих запросов
- •Порядок выполнения лабораторной работы
- •Вопросы для самоподготовки
- •Создание отчета с помощью автоотчета
- •Создание отчета с помощью мастера
- •Создание отчета по нескольким таблицам
- •Разделы отчета
- •Создание почтовых и других наклеек
- •Сортировка записей в отчете
- •Группировка записей в отчете
- •Создание вычисляемого элемента управления
- •Нумерация записей в области данных отчета
- •Подсчет количества записей во всем отчете
- •Задание к лабораторной работе
Структура таблицы Студенты
-
N
Наименование
Тип
1
КодСт
Счетчик
2
ШифрЗК
Текстовый
3
ШифрГр
Текстовый
4
ШифрСп
Текстовый
5
НаимСп
Текстовый
6
ФИО
Текстовый
7
ДатаРожд
Дата
8
Область
Текстовый
9
Город
Текстовый
10
Адрес
Текстовый
Таблицу Студенты можно рассматривать как однотабличную базу данных. Основная проблема заключается в том, что в ней содержится значительное количество повторяющейся информации. Например, сведения о специальности повторяются в записях всех студентов, обучающихся на данной специальности. Такая структура данных является причиной следующих проблем, возникающих при работе с базой данных:
Вам придется тратить значительное время на ввод повторяющихся данных.
При изменении номера или наименования специальности необходимо корректировать все записи студентов, обучающихся по данной специальности.
Наличие повторяющейся информации приведет к неоправданному увеличению размера базы данных. В результате снизится скорость выполнения запросов. Кроме того, повторяющиеся данные нерационально используют дисковое пространство компьютера.
При многократном вводе повторяющихся данных возрастает вероятность ошибки. При больших размерах таблиц поиск ошибок будет занимать значительное время.
Для исключения дублирования информации и обеспечения быстрого доступа к данным в таблицах целесообразно использовать многотабличные базы данных. В рассматриваемом случае используем схему базы данных Контингент, состоящую из трех таблиц: Группы, Специальности, Студенты (см. рис.2.1).
Группы
-
N
Наименование
Тип
1
КодГр
Счетчик
2
ШифрГр
Текстовый
3
КодСп
Числовой
4
ФормаОб
Текстовый
Специальности
N |
Наименование |
Тип |
1 |
КодСп |
Счетчик |
2 |
ШифрСп |
Текстовый |
3 |
НаимСп |
Текстовый |
Студенты
N |
Наименование |
Тип |
1 |
КодСт |
Счетчик |
2 |
ШифрЗК |
Текстовый |
3 |
КодГр |
Числовой |
4 |
ФИО |
Текстовый |
5 |
ДатаРожд |
Дата |
6 |
Область |
Текстовый |
7 |
Город |
Текстовый |
8 |
Адрес |
Текстовый |
Рис.1.1.Схема базы данных Контингент
Таблица Группы содержит шифр группы, код специальности и форму обучения для данной группы. Таблица Специальности содержит шифры и наименования специальностей. Таблица Студенты содержит код группы, фамилии и инициалы студентов, даты рождения и их домашние адреса. Мы можем получить в базе данных информацию о каждом студенте, списки групп студентов, списки студентов по специальностям и т.п.
Для связывания таблиц Группы и Студенты используются совпадающие поля Код группы (КодГр). Причем в таблице Группы - это поле типа Счетчик, значение которого устанавливается автоматически на 1 больше при добавлении каждой новой записи в таблицу. В таблице Студенты поле КодГр является числовым полем. Его значение задается равным значению поля КодГр в таблице Группы. Таким образом таблица Группы является главной таблицей, поскольку она содержит первичный ключ, который необходимо сформировать до заполнения таблицы Студенты. Таблица Студенты при этом является подчиненной таблицей, а поле КодГр в ней называется внешним ключом.
Аналогично связаны посредством поля КодСп (Код специальности) таблицы Специальности и Группы. Главной таблицей в данном случае является таблица Специальности, а подчиненной - Группы.
Замечание. Связанные поля не обязательно должны иметь одинаковые имена, однако, они должны иметь одинаковые типы данных. Исключением из этого правила являются поля счетчика с последовательной нумерацией, которые могут связываться с числовыми полями размера Длинное число.
Такая структура базы данных имеет следующие преимущества:
Отсутствует повторяющаяся информация (например, шифр специальности вводится в базу данных один раз, а не для каждого студента).
При изменении номера или наименования специальности необходимо корректировать только одну запись в таблице специальности. То же и для номера группы.
Ввиду отсутствия повторяющейся информации сокращается вероятность появления ошибок, объем дискового пространства и время поиска информации.