
- •1. Подпрограммы
- •1.1. Описание подпрограмм
- •1.2. Обращение к подпрограммам
- •1.3. Виды параметров подпрограмм
- •1.3.1. Параметры-значения и параметры-переменные
- •1.3.2. Параметры процедурного типа
- •1.3.3. Параметры-константы
- •1.3.4. Нетипизированные параметры подпрограмм
- •1.3.5. Массивы и строки открытого типа
- •1.4. Рекурсивные подпрограммы
- •2. Файлы данных
- •2.1. Текстовые файлы
- •2.2. Типизированные файлы
- •2.3. Нетипизированные файлы
- •2.4. Обработка ошибок, возникающих в действиях с файлами
- •3. Указатели - ссылочные типы данных
- •4. Модули
- •5. Локальные и глобальные сети эвм
- •6. Базы данных
- •6.1. Модели организации данных
- •6.2. Нормализация данных
- •6.3. Типы связей между объектами
- •7. Основы компьютерной безопасности
- •7.1. Компьютерные вирусы
- •7.2. Защита информации в Интернете
- •Контрольные работы
- •Тема 1. Параметры-значения и параметры-переменные
- •Пример выполнения задания
- •Решение. Составляем алгоритм (изображен ниже), а затем программу.
- •Варианты задания
- •Тема 2. Процедурный тип Пример выполнения задания
- •Варианты задания
- •Тема 3. Рекурсия Пример выполнения задания
- •Варианты задания
- •Тема 4. Текстовые и типизированные файлы Пример выполнения задания
- •Варианты задания
- •Тема 5. Указатели Пример выполнения задания
- •Варианты задания
- •Тема 6. Модули Пример выполнения задания
- •Варианты задания
- •Библиографический список
- •Оглавление
- •1.1. Описание подпрограмм ……………………………………………… 1
6.2. Нормализация данных
Одни и те же данные можно группировать в таблицы разными способами. Группировка реквизитов в отношениях (таблицах) должна быть рациональной, сводящей к минимуму дублирование данных и упрощающей их обработку. Некоторый набор отношений будет в указанном смысле оптимальным, если он отвечает требованиям нормализации отношений. Нормализация отношений – это формальный аппарат ограничений на формирование таблиц. Он позволяет устранить дублирование, обеспечивает непротиворечивость хранимых данных и уменьшает трудозатраты на ведение базы. Э. Кодд выделил три нормальные формы отношений и предложил механизм, позволяющий преобразовать любое отношение к третьей, самой совершенной, нормальной форме (НФ).
Первая НФ. Отношение называют нормализованным или приведенным к первой НФ, если все его реквизиты простые (далее не делимы). Преобразование к первой НФ может привести к увеличению числа полей и даже к изменению ключа. Отношение СТУДЕНТ, представленное выше, находится в первой НФ.
Вторая НФ. Описательные реквизиты информационного объекта логически связаны с общим для них ключом. Эта связь носит характер функциональной зависимости реквизитов. При такой зависимости в экземпляре информационного объекта определенному значению ключевого реквизита соответствует только одно значение описательного реквизита. Графически это может быть представлено для объекта СТУДЕНТ так (рисунок слева).
СТУДЕНТ
Номер
Отношение будет
находиться во второй НФ,
Фамилия если оно находится в первой НФ и каждый
Имя описательный реквизит функционально полно
Отчество зависит от составного ключа.
Дата Функционально полная зависимость неключевых
Группа полей заключается в том, что каждое из них функционально зависит от ключа, но не находится в функциональной зависимости ни от какой части составного ключа. Например, рассмотренное отношение СТУДЕНТ находится в первой и во второй НФ одновременно, т.к. все его описательные реквизиты функционально полно зависят от ключа Номер. Напротив, отношение УСПЕВАЕМОСТЬ = (Номер, Фамилия, Имя, Отчество, Дисциплина, Оценка) находится в первой НФ и имеет составной ключ Номер + Дисциплина. Это отношение не находится во второй НФ, т.к. атрибуты Фамилия, Имя, Отчество не находятся в полной функциональной зависимости от составного ключа.
Третья НФ. Понятие третьей НФ связано с понятием нетранзитивной зависимости. Транзитивная зависимость наблюдается в том случае, если один из двух описательных реквизитов зависит от ключа, а другой зависит от первого описательного реквизита. Отношение будет находиться в третьей НФ, если оно находится во второй НФ и каждый описательный реквизит нетранзитивно зависит от ключа. Для устранения транзитивной зависимости описательных реквизитов необходимо произвести ‘расщепление’ исходного информационного объекта. В результате расщепления часть реквизитов удаляется из исходного информационного объекта и включается в состав других (возможно, вновь созданных) объектов. Покажем это на примере информационного объекта СТУДЕНТ ГРУППЫ. Если в его состав включить реквизит Староста (староста группы, в которой учится студент), который зависит только от номера группы, то одна и та же фамилия старосты будет повторяться в разных экземплярах объекта, что потребует неоправданного расхода дополнительной памяти. Если сменится староста, то корректировка его фамилии потребует затрат времени. В этих обстоятельствах целесообразно ввести еще один информационный объект ГРУППА и с его помощью расщепить объект СТУДЕНТ ГРУППЫ следующим образом.
СТУДЕНТ ГРУППЫ СТУДЕНТ ГРУППА
Н
омер
Номер
Группа
Фамилия Фамилия Староста
Имя = Имя +
Отчество Отчество
Дата Дата
Группа Группа
Староста
Теперь исходный информационный объект СТУДЕНТ ГРУППЫ представлен в виде совокупности правильно структурированных объектов СТУДЕНТ и ГРУППА. Оба эти объекта находятся одновременно в первой, второй и третьей нормальных формах.