Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Проектирование запросов

Связывание таблиц

 

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

 

Примечание: Связанные поля могут иметь разные имена, однако у них должны быть одинаковые типы данных и одинаковые значений свойств.

 

При наличии связи между таблицами Access будет автоматически выбирать связанные данные из таблиц для запросов, форм, отчетов.

Установить связь между таблицами позволяет команда " Схема данных… " меню " Сервис ". На экране появится окно, в котором можно определить и просмотреть связи между таблицами базы данных.

Построим схему данных для учебной базы данных " Успеваемость студентов ". Для этого надо выполнить команду " Сервис "-" Схема данных… " и в первом диалоговом окне (Рис. 1) с помощью кнопки " Добавить " выбрать все три таблицы базы данных (Рис. 2) и закрыть окно.

 
 

 

 


Рис. 1

 

Теперь надо связать таблицы. Для этого надо переместить используемое для связи поле одной таблицы (например, поле "№ зачетки " в отношении " Студенты ") к соответствующему полю другой таблицы (поле " № зачетки " в отношении " Успеваемость ") с помощью мыши. При этом указатель мыши примет вид линейки.

       
   
 
 

 


Рис. 2 Рис. 3

 

На экране появится диалоговое окно " Связи " (Рис. 3), в котором будет предложена связь между таблицами (между таблицей " Студенты " и таблицей " Успеваемость " через поле " № зачетки ").

 

Теперь надо определить целостность данных.

Что означает целостность данных?

 

Целостность данных означает систему правил, используемых в Microsoft Access для поддержания связей между записями в связанных таблицах, а также обеспечивает защиту от случайного удаления или изменения связанных данных.

 

Уникальный индекс – это индекс, определенный для поля с заданным для свойства " Индексированное поле " значением " Да (Совпадения не допускаются) ". При этом ввод в индексированное поле повторяющихся значений становится невозможным. Для ключевых полей уникальный индекс создается автоматически.

 

Установить целостность данных можно, если выполнены следующие условия:

- Связанное поле главной таблицы является ключевым полем или имеет уникальный индекс.

- Связанные поля имеют один тип данных. Здесь существует два исключения. Поле " Счетчика " может быть связано с числовым полем, если в последнем в свойстве " Размер поля " указано значение " Длинное целое ". А также поле " Счетчика " можно связать с числовым полем, если и в обеих ячейках свойства " Размер поля " задано значение " Код репликации ".

- Обе таблицы принадлежат одной базе данных Microsoft Access. Для установки целостности данных база данных, в которой находятся таблицы, должна быть открыта. Для связанных таблиц из баз данных других форматов установить целостность данных невозможно.

 

Установив целостность данных, необходимо помнить следующие правила:

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

- Не допускается удаление записи из главной таблицы, если существуют связанные с ней записи в подчиненной таблице. Например, невозможно удалить запись из таблицы " Студенты ", если в таблице " Успеваемость " имеются записи, относящиеся к данному студенту.

- Невозможно изменить значение ключевого поля в главной таблице, если существуют записи, связанные с данной. Например, невозможно изменить номер зачетной книжки студента в таблице " Студенты ", если в таблице " Успеваемость " имеются оценки данного студента.

 

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

 

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

 

Примечания:

- Если в главной таблице ключевым полем является поле " Счетчик ", то установление флажка " Каскадное обновление связанных полей " не приведет к каким-либо результатам, так как изменить значение поля счетчика невозможно.

- Если записи удаляются из формы или таблицы при установленном флажке " Каскадное удаление связанных записей ", Microsoft Access выводит предупреждение о возможности удаления связанных записей. Если же записи удаляются с помощью запроса на удаление записей, то удаление осуществляется автоматически без вывода предупреждения.

 

Тип создаваемой связи зависит от полей, для которых определяется связь:

- Отношение " один-к-одному " создается в том случае, когда оба связываемых поля являются ключевыми или имеют уникальные индексы.

При отношении " один-к-одному " запись в таблице A может иметь не более одной связанной записи в таблице B и наоборот. Этот тип связи используют не очень часто, поскольку такие данные могут быть помещены в одну таблицу. Связь с отношением " один-к-одному " используют для разделения очень широких таблиц, для отделения части таблицы по соображениям защиты, а также для сохранения сведений, относящихся к подмножеству записей в главной таблице. Например, такой тип связей между таблицами подходит для сохранения сведений об участии сотрудников в спортивных мероприятиях.

- Отношение "один-ко-многим" создается в том случае, когда только одно из полей является ключевым или имеет уникальный индекс.

Отношение " один-ко-многим " – это связь между двумя таблицами, при которой:

Ø значению ключа каждой записи в главной таблице могут соответствовать значения в связанном поле или полях в нескольких записях подчиненной таблицы.

Ø значению ключа каждой записи в подчиненной таблице соответствует значение в связанном поле или полях в одной и только одной записи главной таблицы.

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

Если две таблицы связаны отношением " многие-ко-многим ", то одной записи в каждой таблице могут соответствовать несколько записей в другой таблице. Для установления отношения " многие-ко-многим " необходимо создать третью (связующую) таблицу и добавить в нее ключевые поля из обеих таблиц.

 

После установления всех параметров связи " Схема данных… " для учебной базы данных будет выглядеть так (Рис. 4).

 


Рис. 4

 

На линиях связи устанавливаются специальные символы " 1 " или " ¥ ", обозначающие тип отношения. Так в таблице " Студенты " ключевое поле " № зачетки " не допускает совпадений значений, поэтому около него стоит символ " 1 ", а в таблице " Успеваемость " это же поле допускает совпадения, около него стоит символ " ¥ ". Значит, связь между таблицами имеет тип " один-ко-многим ". Такой тип отношений был определен Access и при установлении самой связи при формировании " Схемы данных… ".

При закрытии окна " Схема данных… " Access запросит сохранение схемы данных.

 

 

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

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

В Access запросы делятся на QBE -запросы (Query By Example – запрос по образцу), параметры которого устанавливаются в конструкторе запросов, и SQL -запросы (Structured Query Language – структурированный язык запросов), при создании которых применяются операторы и функции языка SQL. Примерами SQL –запросов являются: запрос на объединение, запрос к серверу, управляющий запрос и подчиненный запрос.

Access позволяет преобразовывать QBE -запрос в SQL -запрос и наоборот.

 

В Access существует 4 типа QBE-запросов для различных целей:

- Запросы на выборку. Самый распространенный тип запроса. Извлекает данные из одной или нескольких таблиц и результаты отображает в объекте в режиме таблицы, в котором допускается изменение записей. Кроме того, используется для группировки записей, а также для вычисления сумм, средних значений.

- Запросы с параметрами. Это запрос, при запуске которого открывается диалоговое окно с приглашением ввести определенные сведения. Допускается создание запроса, в котором открывается несколько диалоговых окон для ввода разных сведений, например двух дат. Эти запросы удобно использовать как базовые источник данных для форм и отчетов.

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

- Запрос на изменения. Это запрос, который позволяет, выполнив одну операцию, ввести изменения во многие записи. Существует четыре типа запроса на изменения:

Ø на добавление записей;

Ø на удаление записей;

Ø на обновление записей;

Ø на создание таблицы.

 

После создание таблиц и ввода в них данных можно приступать к созданию Запроса. Для этого выполним следующие действия:

 

- В окне базе данных надо выбрать вкладку " Запросы".

- Щелкнуть по кнопке " Создать ".

 

Откроется диалоговое окно " Новый запрос " (Рис. 5), в котором предлагается выбрать способ создания запроса.

 
 

 


Рис. 5

 

Способы создания запроса:

- Конструктор – создание запроса без помощи мастера;

- Простой запрос – создание простого запроса на основе выбранных полей;

- Перекрестный запрос – создание запроса, данные в котором имеют компактный формат, подобный формату представления данных в электронных таблицах;

- Повторяющиеся запросы – создание запроса, выбирающего повторяющиеся записи из таблицы или простого запроса;

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

 

<== предыдущая лекция | следующая лекция ==>
Термоэлектрические преобразователи | Конструктор
Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 952; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.05 сек.