Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

905

.pdf
Скачиваний:
0
Добавлен:
07.01.2021
Размер:
745.34 Кб
Скачать

Первая нормальная форма (1НФ)

Характеристики таблицы, находящейся в 1НФ:

1.Нет повторяющихся строк.

2.Строки и столбцы не упорядочены.

3.Нет повторяющихся групп.

Пример

База данных «Студенты», ставящая в соответствие студентам посещаемые ими курсы, содержит следующие поля: № зачетки, Название курса, Преподаватель.

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

Для того чтобы привести базу данных к 1НФ, нужно разделить одну таблицу на две отдельные – таблицу студентов и таблицу курсов.

Вторая нормальная форма (2НФ)

Характеристики таблицы, находящейся в 2НФ:

1.Таблица находится в 1НФ.

2.Каждое поле таблицы функционально полно зависит от первичного ключа.

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

Пример

База данных «Итоги сессии» включает поля: № зачетки, Код экзамена,

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

Тогда поле Номер группы зависит только от части первичного ключа (от поля № зачетки), следовательно, таблица не будет находиться во 2НФ. Чтобы привести таблицу во 2НФ, необходимо убрать из нее поле Номер группы.

Третья нормальная форма (3НФ)

Характеристики таблицы, находящейся в 3НФ:

1. Таблица находится во 2НФ.

11

2.Каждое поле таблицы нетранзитивно (напрямую) зависит от первичного ключа.

Т. е. ни одно поле не зависит ни от какого другого, кроме как от полей, соответствующих первичному ключу.

Пример

Таблица «Студенты» состоит из полей: ФИО студента, Дата рождения, Адрес, Курс, Факультет, ФИО декана, Специальность декана, № зачетки, Группа.

Если в качестве первичного ключа выбрать № зачетки, то поля ФИО декана и Специальность декана зависят от первичного ключа транзитивно:

ФИО декана через Факультет, а Специальность декана через ФИО декана. Этого не должно быть.

Четвертая нормальная форма (4НФ)

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

На практике 4НФ используется редко, поэтому мы не будем ее рассматривать.

Пример проектирования нормализованной базы данных

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

Таблица 1

Перечень полей базы данных и их типов

Поле

Тип данных

№ зачетки

Текстовый

Фамилия

Текстовый

Имя

Текстовый

Отчество

Текстовый

Город

Текстовый

Адрес

Текстовый

Дата рождения

Дата/время

Год поступления

Числовой

Номер группы

Текстовый

Факультет

Текстовый

Поле

Тип данных

Декан

Текстовый

Вид оценки знаний

Текстовый

Дисциплина

Текстовый

Дата

Дата/время

Преподаватель

Текстовый

Должность преподавателя

Текстовый

Кафедра

Текстовый

Заведующий кафедрой

Текстовый

Оценка

Текстовый

 

 

Проблемы при работе с такой базой данных:

много времени на ввод повторяющихся данных (при вводе данных о сдаче очередного экзамена или зачета снова нужно вводить все данные про каждого студента);

12

при изменении одних полей (адрес, преподаватель, должность) необходимо изменять все записи, связанные с этим полем;

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

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

1)сведения о студентах;

2)сведения о зачетах и экзаменах;

3)сведения об итогах сессии.

Для того чтобы не было повторяющихся записей, таблицы должны иметь уникальный индекс (первичный ключ). Пусть в первой таблице «Студенты» в качестве первичного ключа будет поле № зачетки, во второй таблице «Зачеты и экзамены» – поле Код зач/экз. В третью таблицу «Итоги сессии» добавим два поля № зачетки и Код зач/экз для связи с первой и второй таблицами, и в качестве первичного ключа возьмем эти два поля. После того, как мы разделили повторяющиеся объекты и определили ключевые поля в каждой таблице, база данных находится в

1НФ (рис. 2).

 

Студент

 

 

Итоги сессии

 

 

 

Зачеты и экзамены

 

№ зачетки

 

 

№ зачетки

 

 

 

Код зач/экз

 

 

 

 

 

 

 

Фамилия

 

 

Код зач/экз

 

 

 

Вид оценки знаний

 

 

 

 

 

 

 

Имя

 

 

Дата

 

 

 

Дисциплина

 

Отчество

 

 

Преподаватель

 

 

 

Семестр

 

Город

 

 

Должность преподавателя

 

 

 

 

 

Адрес

 

 

Кафедра

 

 

 

 

 

Дата рождения

 

 

Заведующий кафедрой

 

 

 

 

 

Год поступления

 

 

Оценка

 

 

 

 

 

Номер группы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Факультет

 

 

 

 

 

 

 

 

Декан

 

 

 

 

 

 

 

 

 

 

 

Рис. 2. Первая нормальная форма

 

 

Понятие 2НФ относится только к таблицам, имеющим составной ключ. В нашем случае это касается таблицы «Итоги сессии», имеющей в качестве первичного ключа поля № зачетки и Код зач/экз. Таких полей, которые зависели бы только от одного из поля, входящего в первичный ключ, в этой таблице нет. Следовательно, эта таблица уже находится во 2НФ.

13

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

таблице «Итоги сессии» поля Должность преподавателя, Кафедра,

Заведующий кафедрой зависят от первичного ключа транзитивно, через поле Преподаватель.

В свою очередь поле Заведующий кафедрой зависит от поля Кафедра. Следовательно, необходимо создать еще две таблицы: «Преподаватель» и «Кафедра». Поле Преподаватель заменим на ФИО. Каждая кафедра закреплена за отдельным факультетом, поэтому добавим в таблицу

«Кафедра» поле Код факультета.

Преподаватель

Код преподавателя

ФИО

Должность преподавателя

Код кафедры

Кафедра

Код кафедры

Кафедра

Заведующий кафедрой

Код факультета

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

Факультет

Код факультета

Факультет

Декан

В результате этой работы у нас получится нормализованная структура базы данных (рис. 3).

Задание 1. Проектирование базы данных

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

1.«СОРЕВНОВАНИЯ»: фамилия спортсмена, страна проживания, город проживания, дата рождения, вид спорта, фамилия тренера, название соревнований, дата проведения соревнований, место проведения соревнований, занятое спортсменом место.

2.«ПОДПИСКА»: тип издания, название издания, индекс, фамилия подписчика, адрес подписчика, дата начала подписки, дата окончания срока подписки.

3.«ФУТБОЛЬНЫЙ ЧЕМПИОНАТ»: название команды, город, тренер, дата проведения игры, название команды-соперника, количество забитых мячей, количество пропущенных мячей, количество набранных за игру очков.

14

Рис. 3. Нормализованная база данных

4.«ВИДЕОПРОКАТ»: название фильма, страна, время, жанр, дата выпуска, ФИО клиента, адрес клиента, дата выдачи кассеты, дата возврата кассеты.

5.«АПТЕКА»: наименование лекарства, дата поступления, форма выпуска, количество в упаковке, количество упаковок в наличии, цена за упаковку, показания к применению, противопоказания, срок годности.

6.«СТРАНЫ МИРА»: страна, столица, часть света, материк, население, площадь, название реки, исток, устье, протяженность реки.

7.«СТРАХОВАЯ КОМПАНИЯ»: ФИО, адрес, место работы, дата рождения, серия страхового полиса, номер страхового полиса, паспортные данные, страховая сумма, дата происшествия, причина выплаты по страховке, начисленный процент по страховке.

8.«БИБЛИОТЕКА»: автор книги, название книги, год издания, тираж, количество экземпляров, ФИО читателя, адрес читателя, телефон читателя.

9.«ПОСТАВКИ ТОВАРОВ»: наименование товара, странапроизводитель, стоимость, страна-заказчик, название фирмызаказчика, адрес заказчика, телефон заказчика, дата оформления заказа, объем поставки.

10.«ТЕЛЕВИДЕНИЕ»: название программы, ведущий, время выхода в эфир, день выхода в эфир, длительность программы (часы), спонсор

15

программы, телефон спонсора, адрес спонсора, место работы, паспортные данные.

ГЛАВА II

СИСТЕМА УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ MICROSOFTACCESS

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

Microsoft Access теперь полностью интегрирована с другими приложениями пакета Microsoft Office: Microsoft Word, Microsoft Excel, PowerPoint и Microsoft Mail.

Microsoft Access также обладает развитой системой разработки приложений Windows, которая позволяет полностью использовать ваши данные (независимо от их источника) и быстрее создавать необходимые вам приложения. Вы можете разрабатывать простые приложения, определяя (буквально рисуя на экране) основанные на ваших данных формы и отчеты и связывая их между собой с помощью нескольких простых макросов или инструкций языка Microsoft Access Basic. При этом нет необходимости писать программы в классическом понимании этого слова.

Создание базы данных

При загрузке Microsoft Access (с помощью кнопки Пуск на панели задач или ярлыка на рабочем столе) на экране появляется диалоговое окно, позволяющее определить направление ваших действий: создать новую базу данных или открыть существующую базу данных для работы с ней (рис. 4). Выберем положение переключателя «Новая база данных» и нажмем кнопку OK.

На экране появится диалоговое окно «Файл новой базы данных». В этом окне необходимо выбрать папку, в которой вы создаете свою базу данных, и ввести имя базы данных в поле «Имя файла». По умолчанию предлагается имя типа db#, где вместо символа # ставится цифра.

Выбрав нужную папку и указав имя базы данных, нажмите на кнопку

Создать.

Если вы уже работали в Access, то создать новую базу данных можно с помощью кнопки Создать базу данных на панели инструментов (рис. 5) или с помощью команды Создать меню Файл, после чего на экране появится диалоговое окно «Файл новой базы данных».

16

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

Рис. 4. Окно создания (открытия) базы данных

Рис. 5. Главная панель управления Access

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

Чтобы открыть уже существующую базу данных, можно воспользоваться кнопкой Открыть базу данных панели инструментов (см. рис. 5) или командой Открыть базу данных меню Файл, а затем в появившемся диалоговом окне выбрать нужную папку и имя файла и нажать кнопку Открыть.

После того, как будет создана новая база данных или открыта существующая база данных, на экране появится окно базы данных (рис. 6).

Окно базы данных содержит вкладки Таблицы, Запросы, Формы, Отчеты, Макросы и Модули – это объекты базы данных, а также кнопки

Открыть, Конструктор, Создать.

17

Кроме главного меню в Access, как и в других приложениях Windows, существует меню, называемое контекстным. Это меню вызывается нажатием правой кнопки мыши на каком-либо объекте. Контекстным оно называется потому, что меняет свое содержание в зависимости от положения курсора мыши.

Объекты базы данныхAccess

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

Рис. 6. Окно базы данных

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

18

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

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

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

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

Модуль объект, содержащий программы на Microsoft Access Basic, которые позволяют вам разбить процесс на более мелкие действия и обнаружить те ошибки, которые вы не могли бы найти с использованием макросов.

Создание и ведение таблиц базы данных

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

1.В окне базы данных выбрать вкладку Таблица.

2.Нажать кнопку Создать.

3.Выбрать режим Конструктор и нажать кнопку ОК.

4.Ввести названия полей, определить их типы и установить нужные свойства, определить ключевое поле.

5.Закрыть окно конструктора, сохранив таблицу.

После того, как вы выполните пункт 2, на экране появится диалоговое окно «Новая таблица» (рис. 7).

В этом окне вам предоставляется пять вариантов выбора:

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

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

19

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

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

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

Рис. 7. Диалоговое окно «Новая таблица»

После того, как вы выполните пункт 3, на экране появится окно конструктора таблиц (рис. 8).

Окно состоит из двух частей: верхней, в которой указываются названия и типы полей (данных), и нижней, в которой определяются свойства каждого поля. Раздел Свойства поля состоит в свою очередь из двух вкладок: Общие и Подстановка. В правом нижнем углу окна конструктора появляется описание того объекта окна, на который указывает курсор. Переход от верхней части окна конструктора к нижней и наоборот осуществляется с помощью клавиши [F6] или с помощью мыши.

Ввод полей и определение их типов

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

20

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]