- Базы данных
- Лабораторная работа №7
- Лабораторная работа №8
- Как называется набор сведений хранящихся некоторым упорядоченным способом
- IT-ЗАМЕТКИ
- Инструменты пользователя
- Инструменты сайта
- Содержание
- Понятие базы данных
- Структура базы данных
- Иерархическая структура базы данных
- Сетевая структура базы данных
- Реляционная структура базы данных
- Объектно-ориентированные и гибридные базы данных
- Реляционные базы данных
- Концептуальная модель базы данных
- Преобразование модели в реляционную
- Первая нормальная форма
- Вторая нормальная форма
- Третья нормальная форма
Базы данных
Любой из нас, начиная с раннего детства, многократно сталкивался с «базами данных». Это — всевозможные справочники (например, телефонный), энциклопедии и т. п. Записная книжка — это тоже «база данных», которая есть у каждого из нас.
Базы данных представляют собой информационные модели, содержащие данные об объектах и их свойствах. Базы данных хранят информацию о группах объектов с одинаковым набором свойств. Например, база данных «Записная книжка» хранит информацию о людях, каждый из которых имеет фамилию, имя, телефон и так далее. Библиотечный каталог хранит информацию о книгах, каждая из которых имеет название, автора, год издания и так далее.
Информация в базах данных хранится в упорядоченном виде. Так, в записной книжке все записи упорядочены по алфавиту, а в библиотечном каталоге — либо по алфавиту (алфавитный каталог), либо по области знания (предметный каталог). База данных (БД) — это информационная модель, позволяющая в упорядоченном виде хранить данные о группе объектов, обладающих одинаковым набором свойств. Существует несколько различных структур информационных моделей и соответственно различных типов баз данных: табличные, иерархические и сетевые.
Табличные базы данных
Табличная база данных содержит перечень объектов одного типа, то есть объектов, имеющих одинаковый набор свойств. Такую базу данных удобно представлять в виде двумерной таблицы: в каждой ее строке последовательно размещаются значения свойств одного из объектов; каждое значение свойства — в своем столбце, озаглавленном именем свойства.
Столбцы такой таблицы называют полями; каждое поле характеризуется своим именем (именем соответствующего свойства) и типом данных, представляющих значения данного свойства. Поле базы данных — это столбец таблицы, содержащий значения определенного свойства.
Строки таблицы являются записями об объекте; эти записи разбиты на поля столбцами таблицы, поэтому каждая запись представляет собой набор значений, содержащихся в полях. Запись базы данных — это строка таблицы, содержащая набор значений свойств, размещенный в полях базы данных. Каждая таблица должна содержать, по крайней мере, одно ключевое поле, содержимое которого уникально для каждой записи в этой таблице. Ключевое поле позволяет однозначно идентифицировать каждую запись в таблице. Ключевое поле — это поле, значение которого од нозначно определяет запись в таблице. В качестве ключевого поля чаще всего используют поле, содержащее тип данных счетчик. Однако иногда удобнее в качестве ключевого поля таблицы использовать другие поля: код товара, инвентарный номер и т. п. Тип поля определяется типом данных, которые оно содержит.
Поля могут содержать данные следующих основных типов:
- счетчик — целые числа, которые задаются автоматически при вводе записей. Эти числа не могут быть изменены пользователем;
- текстовый — тексты, содержащие до 255 символов;
- числовой — числа;
- дата/время — дата или время;
- денежный — числа в денежном формате;
- логический — значения Истина (Да) или Ложь (Нет);
- гиперссылка — ссылки на информационный ресурс в Интернете (например, Web-сайт). Поле каждого типа имеет свой набор свойств. Наиболее важными свойствами полей являются:
- размер поля — определяет максимальную длину текстового или числового поля;
- формат поля — устанавливает формат данных;
- обязательное поле — указывает на то, что данное поле обязательно надо заполнить.
Рассмотрим, например, базу данных «Компьютер», которая содержит перечень объектов (компьютеров), каждый из которых имеет имя (название). В качестве характеристик (свойств) можно рассмотреть тип установленного процессора и объем оперативной памяти. Поля Название и Тип процессора являются текстовыми, Оперативная память — числовым, а поле № п/п — счетчиком (см.таблицу 1). При этом каждое поле обладает определенным набором свойств. Например, для поля Оперативная память задан формат данных целое число.
Источник
Лабораторная работа №7
Какие логические функции имеются в Excel?
Что такое массив, как выполняется работа с массивами в Excel?
Массив — прямоугольные диапазоны формул или ячеек, которые Excel обрабатывает как единую группу.
При работе с массивами формулы заключают в фигурные скобки. Фигурные скобки означают операцию с массивами и получаются, если при вводе формулы нажать одновременно три клавиши Ctrl+Shift+Enter.
В чем заключается различие между функцией СУММЕСЛИ() и функцией условного суммирования для массивов?
Функция СУММЕСЛИ() вычисляет сумму содержимого ячеек заданного диапазона, а функция условного суммирования для массивов позволяет работать с несколькими диапазонами.
Для чего используется условное форматирование?
Условное форматирование используется для применения разных форматов к ячейке в зависимости от хранимых в ней данных. Для задания условного формата используется команда Формат-Условное форматирование.
Дайте определение базы данных.
База данных — набор сведений, хранящихся некоторым упорядоченным способом.
Как называется база данных Excel?
База данных в Excel называется Списком.
Как должен быть оформлен список в Excel?
Список — таблица, построенная по принципу базы данных: множество однотипных строк-записей, разделенных на поля. Одна или две верхних строки списка должны иметь заголовки столбцов (имена полей).
Какие действия с базами данных выполняются в Excel?
Основные функции при работе с любой базой — поиск информации по определенным критериям и сортировка данных.В Excel все операции по работе с данными содержатся в меню Данные.
В чем заключаются различия между сортировкой и фильтрацией?
Сортировка позволяет представлять данные по определенным правилам, а фильтрация позволяет выделять нужные записи.
В каких случаях используется расширенный фильтр?
Расширенный фильтра используется, если необходимо:
задавать условия, соединенные логическим оператором ИЛИ для нескольких столбцов
задавать три и более условий для конкретного столбца с использованием, по крайней мере одного логического оператора ИЛИ.
задавать вычисляемые условия
извлекать строки из списка и вставлять эти копии в другую часть текущего листа.
Лабораторная работа №8
Какие типы диаграмм Excel можно применять для построения графиков?
Для построения графиков функций используются два типа диаграмм: График и Точечная.
Чем различаются диаграммы типа График и Точечная?
При выборе диаграммы типа График следует выделит только диапазон, содержащий значения функции. При выборе диаграммы типа Точечная достаточно выделить ячейку, содержащую первое значение аргумента, на графике отобразится весь диапазон таблицы значений функции.
Основное отличие точечных диаграмм от графиков заключается в способе нанесения данных по горизонтальной оси. На точечной диаграмме всегда имеется две оси значений, чтобы показывать один набор числовых данных вдоль горизонтальной оси (оси значений), а другой набор числовых данных — вдоль вертикальной оси (также оси значений). На пересечении координат значений X и Y отображается точка данных, объединяющая эти два числовых значения. Такие точки данных могут быть распределены по горизонтальной оси равномерно или неравномерно, в зависимости от конкретных данных. На графике данные категорий равномерно распределены вдоль горизонтальной оси (оси категорий), а все числовые данные располагаются вдоль вертикальной оси (оси значений).
Поскольку горизонтальная ось точечной диаграммы всегда является осью значений, на ней можно показывать числа и даты (в том числе дни и часы), представляемые в виде числовых значений. Чтобы отображать числовые значения вдоль горизонтальной оси с большей гибкостью, можно изменить параметры ее шкалы, аналогично тому, как изменяется настройка шкалы вертикальной оси.
Поскольку горизонтальная ось графика — это ось категорий, она может быть только осью текста или осью дат. На оси текста отображается только текст (нечисловые данные или числовые категории, не являющиеся значениями) с равномерными интервалами. На оси дат отображаются даты в хронологическом порядке с определенными промежутками или базовые единицы измерения, например число дней, месяцев или лет, даже если даты на листе расположены в ином порядке или выражены в других единицах.
Как метод работы с массивами применяется для решения системы линейных уравнений?
Для решения СЛАУ методом обратной матрицы используются функции МОБР() и МУМНОЖ() (для нахождения обратной матрицы и умножения обратной матрицы на вектор свободных членов). При работе с массивами и вышеперечисленными функциями необходимо выделить диапазон ячеек необходимого массива, вызвать необходимую функцию, а после записи функции воспользоваться комбинацией клавиш Ctrl+Shift+Enter.
Следует ли учитывать работу с массивами при решении СЛАУ методом Крамера?
При решении СЛАУ методом Крамера не учитывается работа с массивами.
Какой численный метод лежит в основе выполнения команды Подбор параметра?
В основе выполнения команды Подбор параметра лежит численный метод — Метод последовательных приближений Ньютона.
Что представляют собой оптимизационные задачи?
Оптимизационная задача – это экономико-математическая задача, которая состоит в нахождении оптимального (максимального или минимального) значения целевой функции, причем значения переменных должны принадлежать некоторой области допустимых значений.
В каких случаях решается задача линейного программирования?
Оптимизационная задача является задачей линейного программирования, если максимизируемая функция F(X) является линейной, а ограничения задаются линейными неравенствами.
Как применить команду Поиск решения для решения задачи оптимизации?
Заполняем исходными данными лист, вызываем команду Поиск решения (Сервис – Поиск решения). Устанавливаем целевую ячейку. Выбираем, чему в итоге должна быть равна целевая функция – максимуму, минимуму или 0. Далее выбираем диапазон ячеек, значения которых нужно изменять для получения оптимального решения. Вводим необходимые ограничения. Нажимаем команду Выполнить.
Какая из команд Поиск решения или Подбор параметра может быть применена для решения нелинейного уравнения?
Для решения нелинейного уравнения можно применить команду Подбор параметра (Сервис – Подбор параметра). В поле Установить в ячейке дается ссылка на ячейку, в которую введена формула, вычисляющая значение левой части уравнения (уравнение должно быть записано так, чтобы его правая часть не содержала переменную). В поле Значение вводим правую часть уравнения, а в поле Изменяя значения ячейки дается ссылка на ячейку, отведенную под переменную.
Источник
Как называется набор сведений хранящихся некоторым упорядоченным способом
Одной из важнейших областей применения компьютеров является переработка и хранение больших объемов информации в различных сферах деятельности человека: в экономике, банковском деле, торговле, транспорте, медицине, науке и т.д.
Существующие современные информационные системы характеризуются огромными объемами хранимых и обрабатываемых данных, сложной организацией, необходимостью удовлетворять разнообразные требования многочисленных пользователей.
Информационная система — это система, которая реализует автоматизированный сбор, обработку и манипулирование данными и включает технические средства обработки данных, программное обеспечение и обслуживающий персонал.
Цель любой информационной системы — обработка данных об объектах реального мира. Основой информационной системы является база данных. В широком смысле слова база данных — это совокупность сведений о конкретных объектах реального мира в какой-либо предметной области. Под предметной областью принято понимать часть реального мира, подлежащего изучению для организации управления его объектами и, в конечном счете, автоматизации, например, предприятие, вуз и т. д.
Создавая базу данных, пользователь стремится упорядочить информацию по различным признакам и быстро производить выборку с произвольным сочетанием признаков. При этом очень важно выбрать правильную модель данных. Модель данных — это формализованное представление основных категорий восприятия реального мира, представленных его объектами, связями, свойствами, а также их взаимодействиями.
База данных — это информационная модель, позволяющая упорядоченно хранить данные о группе объектов, обладающих одинаковым набором свойств.
Информация в базах данных хранится в упорядоченном виде. Так, в записной книжке все записи упорядочены по алфавиту, а в библиотечном каталоге либо по алфавиту (алфавитный каталог), либо в соответствии с областью знания (предметный каталог).
Система программ, позволяющая создавать БД, обновлять хранимую в ней информацию, обеспечивающая удобный доступ к ней с целью просмотра и поиска, называется системой управления базами данных (СУБД).
База данных — совокупность данных, хранимых в соответствии со схемой данных, манипулирование которыми выполняют в соответствии с правилами средств моделирования данных
- Иерархическая
- Объектная и объектно-ориентированная
- Объектно-реляционная
- Реляционная
- Сетевая
- Функциональная.
- Пространственная -БД, в которой поддерживаются пространственные свойства сущностей предметной области. Такие БД широко используются в геоинформационных системах.
- Временная, или темпоральная — БД, в которой поддерживается какой-либо аспект времени, не считая времени, определяемого пользователем.
- Пространственно-временная — БД, в которой одновременно поддерживается одно или более измерений в аспектах как пространства, так и времени.
- Циклическая — БД, объём хранимых данных которой не меняется со временем, поскольку в процессе сохранения новых данных они заменяют более старые данные. Одни и те же ячейки для данных используются циклически.
Источник
IT-ЗАМЕТКИ
Инструменты пользователя
Инструменты сайта
Содержание
Понятие базы данных
База данных – набор сведений, хранящихся некоторым упорядоченным способом. Можно сравнить базу данных со шкафом, в котором хранятся документы. Иными словами, база данных — это хранилище данных. Сами по себе базы данных не представляли бы интереса, если бы не было систем управления базами данных (СУБД).
Система управления базами данных (СУБД) — это совокупность языковых и программных средств, которая осуществляет доступ к данным, позволяет их создавать, менять и удалять, обеспечивает безопасность данных и т.д. В общем СУБД — это система, позволяющая создавать базы данных и манипулировать сведениями из них. А осуществляет этот доступ к данным СУБД посредством специального языка — SQL .
Структура базы данных
Создавая базу данных, мы стремимся упорядочить информацию по различным признакам для того, чтобы потом извлекать из нее необходимые нам данные в любом сочетании. Сделать это возможно, только если данные структурированы.
Структурирование — это набор соглашений о способах представления данных.
В зависимости от структуры различают иерархическую, сетевую, реляционную, объектно-ориентированную и гибридную модели баз данных. Самой популярной на сегодняшний день является реляционная структура.
Иерархическая структура базы данных
Это древовидная структура представления информации. Ее особенность в том, что каждый узел на более низком уровне имеет связь только с одним узлом на более высоком уровне. Посмотрим, например, на фрагмент иерархической структуры базы данных «Институт»:
Из структуры понятно, что на одной кафедре может работать несколько преподавателей. Такая связь называется «один ко многим» (одна кафедра — много преподавателей). Но если мы попытаемся добавить в эту структуру группы студентов, то нам понадобится связь «многие ко многим»: (один преподаватель может работать со многими группами, а одна группа может учиться у многих преподавателей), а такой связи в иерархической структуре быть не может (т.к. связь может быть только с одним узлом на более высоком уровне). Это основной недостаток подобной структуры базы данных.
Сетевая структура базы данных
По сути, это расширение иерархической структуры. Все то же самое, но существует связь «многие ко многим». Сетевая структура базы данных позволяет нам добавить группы в наш пример. Недостатком сетевой модели является сложность разработки серьезных приложений.
Реляционная структура базы данных
Все данные представлены в виде простых таблиц, разбитых на строки и столбцы, на пересечении которых расположены данные. Эта структура стала настоящим прорывом в развитии баз данных.
Объектно-ориентированные и гибридные базы данных
В объектно-ориентированных базах данных данные хранятся в виде объектов, что очень удобно. Но на сегодняшний день такие БД еще распространенны, т.к. уступают в производительности реляционным.
Гибридные БД совмещают в себе возможности реляционных и объектно-ориентированных, поэтому их часто называют объектно-реляционными. Примером такой СУБД является Oracle, начиная с восьмой версии.
Несомненно, такие БД будут развиваться в будущем, но пока первенство остается за реляционными структурами.
Реляционные базы данных
Реляционные базы данных, как мы уже знаем, состоят из таблиц. Каждая таблица состоит из столбцов (их называют полями или атрибутами) и строк (их называют записями или кортежами). Таблицы в реляционных базах данных обладают рядом свойств. Основными являются следующие:
Предположим, мы захотели создать базу данных для форума. У форума есть зарегистрированные пользователи, которые создают темы и оставляют сообщения в этих темах. Эта информация и должна храниться в базе данных.
Теоретически (на бумаге) мы можем все это расположить в одной таблице, например, так:
Но это противоречит свойству атомарности (одно значение в одной ячейке), а в столбцах Темы и Сообщения у нас предполагается неограниченное количество значений. Значит, нашу таблицу надо разбить на три: Пользователи, Темы и Сообщения. Наша таблица Пользователи удовлетворяет всем условиям. А вот таблицы Темы и Сообщения — нет. Ведь в таблице не может быть двух одинаковых строк, а где гарантия, что один пользователь не оставит два одинаковых сообщения, например:
Кроме того, мы знаем, что каждое сообщение обязательно относится к какой-либо теме. А как это можно узнать из наших таблиц? Никак. Для решения этих проблем, в реляционных базах данных существуют ключи.
Первичный ключ (сокращенно РК — primary key) — столбец, значения которого во всех строках различны. Первичные ключи могут быть логическими (естественными) и суррогатными (искусственными). Так, для нашей таблицы Пользователи первичным ключом может стать столбец e-mail (ведь теоретически не может быть двух пользователей с одинаковым e-mail). На практике лучше использовать суррогатные ключи, т.к. их применение позволяет абстрагировать ключи от реальных данных. Кроме того, первичные ключи менять нельзя, а что если у пользователя сменится e-mail?
Суррогатный ключ представляет собой дополнительное поле в базе данных. Как правило, это порядковый номер записи (хотя вы можете задавать их на свое усмотрение, контролируя, чтобы они были уникальны). Давайте внесем поля первичных ключей в наши таблицы:
Теперь каждая запись в наших таблицах уникальна. Нам осталось установить соответствие между темами и сообщениями в них. Делается это также при помощи первичных ключей. В таблицу сообщения мы добавим еще одно поле: Теперь понятно, что сообщение с принадлежит теме «О рыбалке» (id темы = 4), созданной Васей, а остальные сообщения принадлежать теме «О рыбалке» (id темы = 1), созданной Кириллом. Такое поле называется внешний ключ (сокращенно FK — foreign key). Каждое значение этого поля соответствует какому-либо первичному ключу из таблицы «Темы». Так устанавливается однозначное соответствие между сообщениями и темами, к которым они относятся.
Последний нюанс. Предположим, у нас добавился новый пользователь, и зовут его тоже Вася: Как мы узнаем, какой именно Вася оставил сообщения? Для этого поля автор в таблицах «Темы» и «Сообщения» мы сделаем также внешними ключами:
Наша база данных готова. Схематично ее можно представить так:
В нашей маленькой базе данных всего три таблички, а если бы их было 10 или 100? Понятно, что сразу невозможно представить все таблицы, поля и связи, которые нам могут понадобиться. Именно поэтому проектирование базы данных начинается с ее концептуальной модели.
Концептуальная модель базы данных
Концептуальная модель — это отражение предметной области, для которой разрабатывается база данных.
Не вдаваясь в теорию, отметим, что это некая диаграмма с принятыми обозначениями элементов. Так, все объекты, обозначающие вещи, обозначаются в виде прямоугольника. Атрибуты, характеризующие объект — в виде овала, а связи между объектами — ромбами. Мощность связи обозначаются стрелками (в направлении, где мощность равна многим — двойная стрелка, а со стороны, где она равна единице — одинарная).
Давайте в качестве примера рассмотрим интернет-магазин. У магазина есть товары, которые поставляются поставщиками и покупаются покупатели. Это можно представить тремя объектами и двумя связями:
Но как поставщик поставляет товары? Он делает поставку, которая подтверждается документом. Аналогично и покупатель делает покупку, которая также может подтверждаться документом. Таким образом, поставка и покупка могут рассматриваться, как самостоятельные объекты: Таким образом, у нас появилось еще два объекта — журнал покупок и журнал поставок, со связями «один ко многим» (один журнал поставок может включать несколько поставок, но каждая поставка может входить только в один журнал, аналогично и для остальных).
Каждый объект нашего магазина имеет свои атрибуты: Вот собственно мы и создали концептуальную модель базы данных магазин, вернее ее части, ведь в магазине еще есть сотрудники, склады, доставка товаров и т.д.
Вообще, если предметная область обширная, то ее полезно разбить на несколько локальных предметных областей (наша концептуальная модель отражает именно локальную предметную область). Объем локальной области выбирается таким образом, чтобы в нее входило не более 6-7 объектов. После создания моделей каждой выделенной предметной области производится объединение локальных концептуальных моделей в одну общую, как правило, довольно сложную схему.
Преобразование модели в реляционную
Преобразование концептуальной модели в реляционную состоит в следующем:
Итак, нам надо построить набор таблиц. Сделать это несложно, т.к. таблицы — это наши объекты, а поля таблиц — атрибуты объектов. Набор предварительных таблиц, исходя из нашей концептуальной модели, выглядит так: Таким образом, у нас определены таблицы, поля, первичные ключи (РК) и связи (FK). Обратите внимание, в таблицах Журнал поставок и Журнал покупок первичные ключи — составные, т.е. состоят из двух полей. Теоретически бывают таблицы, в которых все поля являются одним составным ключом.
Нормализация — это пошаговый, обратимый процесс замены исходной схемы другой схемой, в которой таблицы имеют более простую и логичную структуру. Для чего это нужно?
Во-первых, для устранения избыточности данных. Например, в нашем примере для форума , мы оставили бы вот такую таблицу: В поле Темы часто повторяются одни и те же названия. Помимо того, что для их хранения потребуются дополнительные ресурсы памяти, при дублировании информации очень несложно допустить ошибку при вводе значений атрибута, в результате чего БД перейдет в несогласованное состояние.
Кроме того, при работе с такими таблицами могут возникнуть так называемые аномалии обновления. Например, если мы удалим из этой таблицы четвертое сообщение, то вместе с ним пропадет и информация о теме. Такая ситуация представляет собой аномалию удаления. Если мы решим поменять название темы, то нам придется просмотреть все строки и в каждой заменить старую тему на новую. Это так называемая аномалия модификации. Существуют и другие виды аномалий.
Далеко не всегда эти недостатки можно учесть сразу. Для их устранения и применяется процесс нормализации. Он включает ряд правил, используемых для проверки всех таблиц базы данных. Различают:
Каждая нормальная форма налагает определенные ограничения на данные. Каждая нормальная форма более высокого уровня предполагает, что анализируемая таблица уже находится в нормальной форме на уровень ниже рассматриваемой. В ходе нормализации схема базы данных становится все более строгой, а ее таблицы все менее подвержены различного рода аномалиям.
Для реляционных баз данных необходимо, чтобы ее таблицы находились в 1НФ. Нормальные формы более высоких уровней могут использоваться разработчиками по своему усмотрению. Однако грамотный специалист стремится к тому, чтобы довести уровень нормализации базы данных хотя бы до 3НФ, тем самым исключив избыточность данных и аномалии обновления. Надо сказать, что НФБК, 4НФ и 5НФ используются крайне редко. Поэтому и мы рассмотрим только первые три.
Первая нормальная форма
В нашей таблице Поставщики есть поле Адрес. Если наш магазин работает только с поставщиками из одного города, то значения поля Адрес можно считать атомарными, а саму таблицу — приведенной к 1НФ.
Но что если наши поставщики находятся в разных городах? Тогда, посылая машину за товарами в определенный город, мы должны быть уверенны, что она заберет товары у всех поставщиков, находящихся в этом городе. Т.е. нам могут понадобиться сведения о поставщикам, находящихся в определенном городе. В этом случае, значения в поле Адрес уже не являются атомарными (т.к. мы используем часть адреса), и для приведения таблицы к 1НФ нам надо выделить еще одно поле — Город:
Таким образом надо проанализировать все таблицы нашей базы данных. Так, в таблице Покупатель есть поле ФИО. Если мы собираемся, например, поздравлять наших покупателей с именинами (которые, как известно, завися от имени), то это поле пришлось бы разбить на три: Фамилию, Имя и Отчество. Наш магазин этого делать не собирается, поэтому поле ФИО можно считать атомарным, а таблицу — приведенной к 1НФ.
Вторая нормальная форма
Эта форма применяется к таблицам с составными ключами. Таблица, у которой первичный ключ включает только одно поле, всегда находится во 2НФ
Таблица находится во второй нормальной форме, если она находится в первой нормальной форме, а каждое неключевое поле функционально полно зависит от составного ключа.
В нашей базе данных две таблицы имеют составной ключ — Журнал покупок и Журнал поставок. Значение поля Количество зависит, как от Поставки (Покупки), так и от Товара. Значит, наши таблицы находятся во 2НФ.
Но предположим, что на этапе концептуального моделирования нашей базы данных, мы не выделили объекты Поставка и Покупка. Тогда наши таблицы могли бы выглядеть так:
Посмотрим теперь на таблицу Журнал поставок: поле Количество зависит от Наименования товара и от Даты поставки, но не зависит от того, кто поставил товар (поле Поставщика). Т.е. таблица не находится во 2НФ. Если бы на этапе концептуального моделирования нашей базы данных, мы не выделили объекты Поставка и Покупка, нам бы пришлось это делать сейчас. Но мы их выделили, поэтому все наши таблицы находятся во 2НФ.
Третья нормальная форма
Таблица находится в третьей нормальной форме, если она находится во второй нормальной форме, и каждое неключевое поле нетранзитивно зависит от первичного ключа.
Транзитивная зависимость наблюдается в том случае, если одно из двух неключевых полей зависит от первичного ключа, а другое зависит от первого неключевого поля. На примере будет понятнее.
Посмотрим на нашу таблицу Товар. В ней есть поле Цена, но цены, как известно, имеют свойство меняться. Если мы будем их менять прямо здесь, то будет пропадать вся информация о предыдущих ценах. Чтобы не терять эту информацию, надо добавить поле Дата (когда изменилась цена). Тогда наша таблица будет выглядеть так:
Даже не прибегая к 3НФ видно, что такая таблица будет содержать избыточную информацию. Но посмотрим на ее поля: поля Наименование и Дата зависят от id товара, а поле Цена зависит также и от Даты. Т.е. таблица не находится в 3НФ. Для устранения транзитивной зависимости необходимо провести «расщепление» объекта на два: Все остальные таблицы нашей базы данных находятся в 3НФ. Кстати, в таблице Товар можно было и не вводить поле id товара, а сделать первичным ключом поле Наименование, но как уже говорилось в третьем уроке суррогатные ключи все-таки предпочтительнее.
Подведем итог. Схема нашей базы данных после нормализации несколько изменилась и выглядит теперь так: Таким образом, мы преобразовали нашу концептуальную модель в реляционную. Дальше необходимо эту модель реализовать в конкретной СУБД. Для этого нам понадобится сама СУБД и знание языка SQL .
Источник