Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Вторая нормальная форма (2НФ)
Вторая нормальная форма требует, чтобы все поля таблицы зависели от первичного ключа. То есть первичный ключ (рк) должен однозначно определяет запись и не должен быть избыточным. Те поля, которые зависят от части первичного ключа должны быть выделены в отдельную таблицу. Пример приведения ко второй НФ таблицы Университет (Рис. 17). Факультет___________ Рис. 18 Внимание Если таблица находиться в 1НФ, и первичным ключом является одно поле, то таблица уже находиться во 2НФ. 59 Третья нормальная форма (ЗНФ) Третья нормальная форма требует, чтобы в таблице не имелось зависимостей между не ключевыми полями, т.е. чтобы значение одного поля не зависело от значения другого поля. Пример: Имеется таблица склад, в которой учитывается вид товара, количество каждого товара, цена единицы товара, и стоимость каждого вида товара как произведения количества на цену единицы товара (Рис. 19). Поле «Стоимость» является лишним информационным звеном в таблице, так как зависит от поля «Колич.» и может быть всегда рассчитано. Поэтому устраним зависимость, приведя таблицу к ЗНФ (Рис. 20).
Склад Нормализация базы данных выгодна со многих точек зрения. Далее перечислены некоторые из основных преимуществ, которые она дает: • Лучшая общая организация базы данных; • Сокращение избыточности информации; • Непротиворечивость информации внутри базы данных; • Более гибкий проект базы данных. Примечание: На практике не всегда возможно получить полностью нормализованную БД. Иногда к этому даже и не стремятся в силу различных особенностей построения БД: например, когда число таблиц велико, то удержать в памяти всю структуру БД не позволяет возможность человеческого восприятия. Или если число повторяющихся групп известно заранее и никогда меняться не будет, по приведению таблицы к 1НФ по повторяющимся группам необязательно.
Пример разработки РБД Пусть необходимо разработать БД, где будут учтены: товары, сорта товаров, количество
Разделим информацию по сущностям. Первая сущность (стержневая), назовем ее - «Поставщик», включает в себя следующие объекты. • Название фирмы поставщика. • Факс фирмы. Вторая сущность (стержневая), назовем ее — «Товар», включает в себя следующие объекты. • Вид товара. • Сорт товара. Третья сущность назовем ее - «Клиенты», включает в себя следующие объекты. • Название клиента. Учитывая назначение БД, нормализуем сущности, и с учетом обеспечения целостности БД, составим структуру реляционных отношений.
РК_Ф, РК_Т, РК_С, РК_Скл, РК_К, первичные ключи в своих таблицах. FK_Ф. FK_T, FK_C, FK_Cкл, FK_K, внешние ключи. В таблице «Склад» учитываются: какие товары, какого сорта, каким поставщиком, когда и в каком количестве были поставлены на склад, а так же цена за единицу товара. В таблице «Учет» учитываются: когда, и в каком количестве, клиент приобрел товар. А наличае связи РК_Скл —> FК_Скл сразу определяет полную характеристику приобре- тенного товара (вид, сорт, цена ). Ниже приведена структура БД в заполненных таблицах.
ЯЗЫК SQL Язык SQL является инструментом, предназначенным для обработки (чтения, удаления, изменения) данных, содержащихся в БД. SQL - это сокращенное название языка запросов (Structured Query Language). Как следует из названия, SQL является языком программирования, который применяется для организации взаимодействия пользователя с базой данных. Достоинства SQL • независимость от конкретных СУБД; • переносимость с одной вычислительной системы на другую; • наличие стандартов; • реляционная основа; • высокоуровневая структура; • возможность выполнения специальных интерактивных запросов; • обеспечение программного доступа к базам данных; • возможность различного представления данных. Инструкция SELECT... FROM По этой инструкции возвращаются данные из базы данных в виде набора записей. Простейшая инструкция SELECT... FROM Синтаксис SELECT FROM имена полей имена таблиц;
Элемент имена полей имена таблиц Описание Имена полей, из которых должны быть отобраны данные. Если включить несколько полей, они будут извлекаться в указанном порядке. Имена одной или нескольких таблиц, которые содержат отбираемые данные.
1. Простейший запрос для одной таблицы SELECT поле1, поле2,....поле7 FROM таблица; SELECT * FROM таблица; (*- означает, по будут показаны все поля) 2. Простейший запрос для двух таблиц SELECT таблица 1.поле 1, таблппа2.поле1..... таблица1.полеN Примечание: Имя таблицы необходимо применять в том случае: если имена полей в таблицах одинаковы. Использование псевдонимов таблиц SELECT таблица1.поле1, таблица2.поле1 FROM таблица 1, таблица2; SELECT Tl. полеl, Т2.поле1 FROM таблица1 T1 таблица2 Т2; Использование псевдонимов полей. SELECT поле1, поле2, полеЗ AS Фамилия FROM таблица; Внимание! !! Имена полей, которые содержат пробелы или знаки препинания, необходимо заключать в квадратные скобки ([ ]). Например SELECT [Год рождения] -замена псевдонимом Пример: Простейший запрос для одной таблицы с использованием псевдонима поля. SELECT [Фамилия студента] AS Фамилия, Оценка FROM Студенты; Студенты Применение вычислений в полях
Арифметические выражения используются для расчета значений вычисляемых полей. При формировании вычисляемых полей следует придерживаться правил написания выражений. Выражение пишется вместо имени поля. SELECT Товар, Количество * Цена FROM Товары; Если вычисляемому столбцу необходимо присвоить имя, то запрос выглядит следующим образом: SELECT Товар, Количество * Цена AS Стоимость FROM Товары; бб Инструкция SELECT...INTO...FROM - • До сих пор инструкция SELECT создавала виртуальную таблицу, которая не сохранялась в базе данных. Для создания реальной таблицы как результат обработки существующих таблиц, используется запрос SELECT...INTG...FROM Синтаксис SELECT поле1, поле2,... INTO новая Таблица FROM Таблица1, Таблица2, .... Ниже перечислены аргументы инструкции SELECT...INTO....FROM: noлel, поле2................. Имена полей, которые следует скопировать в новую таблицу. Имя создаваемой таблицы. Это имя должно удовлетворять стандартным правилам именования. Если новая Таблица совпадает с именем существующей таблицы, возникает перехватываемая ошибка. Таблица1., Таблица2..., Имена существующих таблиц, из которых отбираются записи. Это может быть одна таблица, несколько таблиц или запрос. Дополнительные сведения Запрос на создание таблицы можно использовать для архивирования записей, создания резервных копий таблицы, копий для экспорта в другую базу данных, а также в качестве основы отчета, отображающего данные за конкретный период времени. Например, можно создать отчет «Ежемесячные продажи по областям», выполняя каждый месяц один и тот же запрос на создание таблицы. Примечания • При создании таблицы поля в новой таблице наследуют типы данных и размеры • Чтобы узнать, какие записи будут отобраны при выполнении запроса на создание таблицы, сначала просмотрите результаты инструкции SELECT, использующей те же условия отбора. Новая Таблица.
Пример: SELECT Фамилия, Оклад INTO Отчет FROM Сотрудники; Предложение ORDER BY Сортирует записи, полученные в результате запроса, в порядке возрастания или убывания на основе значений указанного поля или полей. Синтаксис SELECT список Полей FROM таблица WHERE условие Отбора поле1, поле2............... Имена полей, по которым сортируются записи. ASC......................... сортировки по возрастанию (от «А» до «Я» и от 0 до 9). DESC....................... сортировки по убыванию (от «Я» до «А» и от 9 до 0). По умолчанию используется порядок сортировки по возрастанию (от «А» до «Я» и от 0 до 9). Предложение ORDER BY может содержать несколько полей. Сначала записи сортируются по первому полю в списке ORDER BY. Затем записи, имеющие совпадающие значения в первом поле, сортируются по второму полю и т.д. Предложение ORDER BY является необязательным. Однако оно необходимо для отображения данных в порядке сортировки. Обе приведенные ниже инструкции SQL одинаково сортируют записи по фамилиям сотрудников: SELECT Фамилия ORDER BY Фамилия ASC; SELECT Фамилия ORDER BY Фамилия; Пример (Сортировка по Окладу, а затем по Фамилии) SELECT Фамилия, Оклад FROM Сотрудники ORDER BY Оклад DESC, Фамилия; Сотрудники Отчет Предложение WHERE Определяет, какие записи из таблиц, перечисленных в предложении FROM, следует включить в результат выполнения инструкции SELECT. Синтаксис SELECT имена полей FROM имена таблиц WHERE Условие Отбора; Элемент Условие Отбора Описание Выражение, которому должны удовлетворять записи, включаемые в результат выполнения запроса. Предложение WHERE не является обязательным, однако, если оно присутствует, то должно следовать после предложения FROM. Операции отношения Простой отбор. Операции отношения ( =, <, >, о, > =, < = ) Допускается использование различных операций отношения. > больше, < = меньше или равно, > = больше или равно, о не равно. 1. Следующая инструкция SQL отбирает всех сотрудников, зарплата которых превышает 10 000 рублей: SELECT Фамилия, Оклад FROM Сотрудники WHERE Оклад > 10000; 2. Отобрать всех сотрудников отдела продаж SELECT Фамилия FROM Сотрудники WHERE Отдел = " Продажи"; Пример: SELECT Фамилия, Оклад FROM Сотрудники WHERE Оклад > = 4000 Сотрудники Популярное:
|
Последнее изменение этой страницы: 2016-07-13; Просмотров: 971; Нарушение авторского права страницы