Нормализация представляет собой процесс реорганизации данных путем ликвидации повторяющихся групп и иных противоречий с целью приведения таблиц к виду, позволяющему непротиворечивое и корректное редактирование данных. Нормализацию можно также определить как процесс, направленный на снижение избыточности информации в реляционной БД. В качестве примера ненормализованной таблицы М.Б. следующая:
Код сотрудника
Имя
Фамилия
Отчество
Дата рождения
Адрес
Телефон
Должность
Разряд
Зарплата
Рейтинг
Дата приема на работу
Дата увольнения
Здесь избыточность проявляется в том, что в нескольких записях таблицы БД повторяется одна и та же информация. Например, сотрудник занимает несколько должностей и для каждой должности нужно делать такую таблицу, т.е. личные данные будут дублироваться, что влечет дополнительное использование внешней памяти.
Теория нормализации основана на концепции нормальных форм. В теории БД существует 5 нормальных форм, но наибольшую популярность получили первые три, т.е. 1NF, 2NF, 3 NF, где NF- Normal Form. В основе процесса проектирования лежит метод нормализации- декомпозиция отношения, находящуюся в предыдущей нормальной форме, в два или более отношения, удовлетворяющих требованиям следующей нормальной форме и т.д. На практике вводят понятие функциональной зависимости, т.е. функционально зависимым считается такой атрибут, значение которого однозначно определяется значением другого атрибута .Функционально зависимые атрибуты обозначивается след. образом: X Z эта запись означает, что если два кортежа в таблице имеют одно и то же значение атрибута х, то они имеют одно и тоже значение атрибута y . Атрибут указываемый в левой части называется детерминантом(первичный ключ).
Первичная нормальная форма – значения всех атрибутов отношения должны быть атомарными. Поэтому наша таблица сотрудник (отношения R1 при этом условии являются 1NF).
Вторая нормальная форма (2NF)- это когда отношение (R1) уже находится в 1NF и каждый не ключевой атрибут полностью зависит от первичного ключа. Чтобы перейти от 1NF к 2NF нужно:
1. Определить, на какие части можно разбить первичный ключ, так чтобы некоторые из не ключевых полей зависели от одной из этих частей (причем эти части могут содержать несколько атрибутов).
2. Создать новую таблицу для каждой такой части ключа и группы зависящих от нее полей и переместить их в эту таблицу. Часть бывшего первичного ключа станет при этом первичным ключом новой таблицы.
3. Удалить из исходной таблицы поля, перемещенные в другие таблицы, кроме тех из них, которые станут внешними ключами.
В нашем примере для приведения таблицы сотрудники к 2NF ее следует разделить на две таблицы, т.к. первичный ключ состоит из 2-х атрибутов-код сотрудника и должность. Все же личные данные о сотрудниках зависят только от код сотрудника.
Атрибуты соответствуют этим данным, мы выделим в качестве одной из таблиц, которую назовем физические лица.
Информацию же о их должностях и зарплате вынесем во 2-ую таблицу с именем сотрудники. Эти две таблицы связаны между собой по полю код физического лица, которое является первичным ключом для таб.1 и внешним ключом для таб.2. Данное поле в начале отсутствовало и было добавлено в результате нормализации.
Таб.1Физические лица Таб. 2 Сотрудники
Код физического лица
Имя
Фамилия
Отчество
Дата рождения
Адрес
телефон
Код сотрудника
Код физического лица
Должность
Разряд
Зарплата
Рейтинг
Дата приема
Дата увольнения
Третья нормальная форма (3NF)
В таблице 2 «Сотрудники» есть связь между полями Код сотрудника и полем Зарплата. Причем эта связь транзитивная. Действительно транзитивность этих полей означает, что зарплата на самом деле является характеристикой не сотрудника, а должности которую он занимает, т.е. есть атрибут Z, для которого имеются функциональные зависимости Zсотруд.→Zзарпл. и Zзарпл.→Yдолжность, но отсутствует зависимость Zзарпл.→Xсотрудник.
Поэтому отношение R max. в 3NF в том и только в том случае, если оно max во 2NF и каждый неключевой атрибут нетранзитивно зависит от первичного ключа.
Чтобы перейти от 2NF к 3NF необходимо:
1. Определить все поля (или группы полей), от которых зависят другие поля;
2. Создать новую таблицу для каждого такого поля (или группы полей) и группы зависящих от него полей и переместить их в эту таблицу. Поле (или группа полей от которых зависят все остальные перемещенные поля, станет при этом первичным ключем новой таблицы.
3. Удалить перемещенные поля из исходной таблицы, оставив лишь те из них, которые станут внешними ключами.Для нашего примера для перехода от 2NF к 3NF разделяем табл. 2 «Сотрудники» на две – Сотрудники и Должности и тогда получаем:
Таб. 2. Таб. Сотрудники
Код Сотрудника
Код физического лица
Должность
Разряд
Зарплата
Рейтинг
Дата приема
Дата увольнения
Код сотрудника
Код должности
Код физического лица
Рейтинг
Дата приема
Дата увольнения
Таб. Должности
Код должности
Должность
Разряд
Зарплата
Таким образом, РБД будет следовать в 3NF:
Код физ. лица
Имя
Фамилия
Отчество
Дата рождения
Адрес
Телефон
Код должности
Должность
Разряд
Зарплата
Код сотрудника
Код должности
Код физ. лица
Рейтинг
Дата приема
Дата увольнения
Знакомство с Access. Создание таблиц
База данных (БД) - упорядоченная совокупность данных, предназначенных для хранения, накопления и обработки с помощью ЭВМ. Для создания и ведения баз данных (их обновления, обеспечения доступа по запросам и выдачи данных по ним пользователю) используется набор языковых и программных средств, называемых системой управления базами данных (СУБД)[1].
Объекты базы данных Access
К объектам базы данных Accessотносятся:
1. Таблицы - предназначены для упорядоченного хранения данных.
2. Запросы - предназначены для поиска, извлечения данных и выполнения вычислений.
3. Формы - предназначены для удобного просмотра, изменения и добавления данных в таблицах.
4. Отчеты - используются для анализа и печати данных.
5. Страницы доступа к данным - предназначены для просмотра, ввода, обновления и анализа данных через сеть или из любого места компьютера.
6. Макросы - используются для выполнения часто встречающегося набора макрокоманд, осуществляющих обработку данных.
7. Модули - предназначены для описания инструкций и процедур на языке VBA.
Основным объектом базы данных является таблица, которая состоит из записей (строк) и полей (столбцов). На пересечении записи и поля образуется ячейка, в которой содержатся данные.
Каждому полю таблицы присваивается уникальное имя, которое не может содержать более 64символов. В каждом поле содержатся данные одного типа
Тип
Описание
Текстовый
Используется для хранения символьных или числовых данных, не требующих вычислений. В свойстве Размер полязадается максимальное количество символов, которые могут быть введены в данное поле. По умолчанию размер устанавливается в 50 знаков. Максимальное количество символов, которые могут содержаться в текстовом поле, - 255
Поле МЕМО
Предназначено для ввода текстовой информации, по объему превышающей 255 символов; может содержать до 65 536 символов
Числовой
Предназначен для хранения числовых данных, используемых в математических расчетах. На вкладках Общиеи Подстановка можно установить свойства числового поля, среди которых Размер поля, Формат поля, Число десятичных знаков
Дата/Время
Используется для представления даты и времени. Выбор конкретного формата даты или времени устанавливается в свойстве Формат даты
Денежный
Предназначен для хранения данных, точность представления которых колеблется от 1 до 4 знаков после запятой. Целая часть может содержать до 15 десятичных знаков
Счетчик
Предназначен для автоматической вставки уникальных последовательных (увеличивающихся на 1) или случайных чисел в качестве номера новой записи. Номер, присвоенный записи, не может быть удален или изменен. Поля с этим типом данных используются в качестве ключевых полей таблицы
Логический
Предназначен для хранения одного из двух значений, интерпретируемых как «Да / Нет», «Истина / Ложь», «Вкл. / Выкл.»
Поле объекта OLE
Содержит данные, созданные в других программах, которые используют протокол OLE. Это могут быть, например, документы Word, электронные таблицы Excel, рисунки, звуковые и видеозаписи и др. Объекты OLEсвязываются с базой данных Accessили внедряются в нее. Сортировать, группировать и индексировать поля объектов OLEнельзя
Гиперссылка
Специальный тип, предназначенный для хранения гиперссылок
Мастер подстановок
Предназначен для автоматического определения поля. С его помощью будет создано поле со списком, из которого можно выбирать данные, содержащиеся в другой таблице или в наборе постоянных значений
«Сортировка и фильтрация»
Сортировка по возрастанию (соотв. кнопка) , сортировка по убыванию на панели сортировка и фильтр вкладки Главная.
Фильтрация нужна, когда возникает необходимость отображать в таблице не все записи, а только соответствующие определенным условиям.
Чтобы задать режим ввода только тех записей, в которых опред. поле присутствует некоторое значение, следует выделить эту часть поля и воспользоваться режимом Фильтр по выделенному (например, выбрать фамилии, начинающиеся с буквы А. Тогда в поле Фамилия выделяем букву А, затем нажимаем кнопку «Фильтр» на панели сортировки и фильтр вкладки Главная и выбираем вариант Начинается с А. Тогда отображается таблица не вся, а только с фамилиями, начинающимися с буквы А.
Чтобы изменить режим фильтрации, можно воспользоваться кнопкой Фильтр дополнительно, которая открывает окно действий с текущим фильтром.
«Использование запросов»
В работе с БД пользователю требуется увидеть часть информации в разных таблицах, а затем её загрузить в спец. таблицу, разработанную пользователем.
В Access есть мощное средство обработки данных в нескольких связанных таблицах – это запрос. Панель для создания запросов находится на вкладке «Создание». В этой панели указано обращение к Мастеру запросов, конструктору запросов и макрос.
Существуют два основных типа запросов: 1.)на выборку и 2) на изменение данных (создание таблицы, обновление, добавление и удаление)
Итак (1) наиболее распространено. Чтобы создать новый запрос нажимаем кнопку Конструктор запросов на панели «Другие» вкладки «Создание».
Появляется вкладка «Конструктор», отображается диалоговое окно «Добавление таблицы» для выбора таблиц, которые будут служить источником данных при выполнении этого запроса. Добавляем имена таблиц путем двойного щелчка мыши или кнопкой « Добавить «.
Закрываем окно «Добавление таблицы» и на экране отображается окно конструктора нового запроса, напоминающее окно расширенного фильтра.
Мы видим связи между таблицами, указываем поле, которое будет добавлено в результаты запроса, имя таблицы, сортировка (если нужна), вывод на экране (если на экране нужно посмотреть), условие отбора.
Создаем макет запроса на выборку и затем выполняем созданный запрос, нажав кнопку «!» Выполнить на вкладке « Конструктор».
Запрос с параметром – он задается таким образом, что в квадратных скобках указываются не конкретное значение, а текст. Здесь соответствующим образом используется форма, т.е.
Fоrms![имя формы]![имя элемента формы]
«Вычисляемые поля»
При создании запросов часто возникает необходимость не только использовать имеющиеся поля таблиц, но и создавать на их основе другие поля, которые называются вычисляемыми. Пример: имеется два поля- количество товара и цена, можно создать по ним доп. поле, в котором будет общая стоимость данного количества товара опред. типа.)
При создании их используют арифмет. операции *, /, \, ^, Мод. (вычисл. остатки от деления нацело)и знак &.(конкатенция строк(объединение текста))
Подключаем окно «Построитель выражений» с помощью его строим макет запроса для вычисления полей Запрос на создание таблицы (например, создание архивной таблицы создается соответствующий макет запроса)
«Запрос на обновление».
Подключается тип запроса: обновление на панели Тип запроса. Условие строиться с использованием ORерации «ИЛИ»
«Запрос на добавление записей.»
С помощью кнопки Тип запроса: Добавление
Запрос на удаление записей
С помощью кнопки Тип запроса: Удаление
Работа с формами.
Создание интерфейса пользователя при помощи форм « Конструктор и Мастер форм.
Виды форм:
1. многостраничная (в столбец) – поля записи вводятся в один столбец;
2. ленточная – все поля записи выводятся в одну строку;
3. табличная – т.е режим таблицы.
Возможно использовать так называемую подчиненную форму, которая используется для вывода данных, связанных отношением « один ко многим»
Для какого канала и на что дает ограничение теорема Шеннона?
«Если канал связи с финитной АЧХ и аддитивным белым гауссовским шумом (АБГШ) обладает пропускной способностью «С», а производительность источника равна Н′(А), то при Н′(А) ≤ С возможно такое кодирование, которое обеспечивает передачу сообщений по этому каналу со сколь угодно малыми ошибками и со скоростью, сколь угодно близкой к значению «С» »:
[бит/с], (3.1)
где ∆fk– ширина полосы прямоугольной АЧХ канала связи;
Рс- средняя мощность сигнала;
Рш=N0·∆fk; (3.2)
N0·- односторонняя спектральная плотность АБГШ.
Для дискретного канала и случайного кодирования источника эта теорема может быть записана в другой форме
(3.3)
где - средняя по множеству кодов вероятность ошибки декодирования;
Т.к., [С−Н′(А) ≥ 0] по условию теоремы, то с увеличением Т (укрупнением источника) причем при Н′(А)→С значение Т→∞ и увеличивается задержка декодирования кода укрупненного источника.
2. На что влияет длина кодируемого отрезка сообщения?
чем длиннее кодируемый отрезок сообщения (Т) и чем менее эффективно
используется пропускная способность канала ( чем больше разность [С-Н′(А)]), тем выше достоверность связи (1-);
существует возможность обмена между эффективностью использования, значениями С, и Т (задержкой декодирования).
3. Чему равна пропускная способность канала связи при бесконечной его полосе?
При ∆fk→∞ . Тогда разложим функцию ln(1+x) в ряд Маклорена (т.е. в точке х=0) , который при х→0 равен ln(1+x)≈x. В результате получим
.
Пропускная способность заметно возрастает с увеличением ∆fk до тех пор, пока Рс/Рш≥1 и стремится к пределу 1,44 Рс/N0, т.е. максимальное значение параметра С имеет место при h →0.
4. Что определяет зависимость удельных энергетических затрат βЕ от затрат полосы β∆f и чему равны βЕ для передачи по каналу одного бита информации при β∆f → ?
В результате выражение
(3.5)
определяет связь между удельными затратами энергии и полосы в канале с АБГШ и финитной АЧХ. Вместе с тем, т.к.
то из (3.5) получим зависимость для отношения сигнал/шум (ОСШ):
. (3.6)
Это выражение определяет необходимое значение ОСШ в оптимальном канале связи с АБГШ в зависимости от удельных затрат полосы частот канала связи.
При больших значениях
,
т.е. для передачи одного бита (С =1) необходимы малые и ОСШ.