Базы данных

Автор: Пользователь скрыл имя, 21 Декабря 2011 в 13:23, реферат

Описание работы

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

Работа содержит 1 файл

База данных.doc

— 196.00 Кб (Скачать)

     Такой тип связи может быть определен, если связь характеризуется отношением 1:1 или 1:М, а также если тип отношения не может быть определен системой, то есть если не выполняются условия для этих отношений. Например, при выборе в главной таблице в качестве поля связи неключевого поля или поля, входящего в составной ключ, Access сообщает, что тип отношения не может быть определен. В этом случае между таблицами возможно установление только связи-объединения.

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

     Создание  схемы данных

     Создание  схемы данных начинается в окне Базы данных (Database) с выполнения команды Сервис|Схема данных (Tools|Relationships) или нажатия кнопки Схема данных (Relationships) на панели инструментов базы данных.

     Включение таблиц в схему  данных. После нажатия кнопки Схема данных (Relationships) открывается окно Добавление таблицы (Show Table) , в котором можно выбрать таблицы и запросы, включаемые в схему данных. Для размещения таблицы в окне Схема данных (Relationships) надо выделить ее в окне Добавление таблицы (Show Table) и нажать кнопку Добавить (Add). Для выделения нескольких таблиц надо, удерживая клавишу , щелкнуть мышью на каждой из этих таблиц. Включив все нужные таблицы в схему данных, нажать кнопку Закрыть (Close).

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

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

     Устанавливая  в окне схемы данных связи типа 1:М между парой таблиц, надо выделить в главной таблице уникальное ключевое поле, по которому устанавливается  связь. Далее, при нажатой кнопке мыши, протащить курсор в соответствующее  поле подчиненной таблицы.

     При создании связи по составному ключу  необходимо выделить все поля, входящие в ключ главной таблицы, и перетащить их на одно из полей связи в подчиненной  таблице. Для выделения всех полей, входящих в составной уникальный ключ, необходимо отмечать поля при нажатой клавише . После создания связи откроется окно Изменение связей (Edit Relationships). При этом в строке Тип отношения (Relationship Type) автоматически установится тип один-ко-многим (One-To-Many).

     При составном ключе связи в окне Изменение связей (Edit Relationships) необходимо для каждого поля ключа в главной таблице ТАБЛИЦА/ЗАПРОС (Table/Query) выбрать соответствующее поле подчиненной таблицы, названной СВЯЗАННАЯ ТАБЛИЦА/ЗАПРОС (Related Table/Query).

     Обеспечение целостности данных

     При создании схемы данных пользователь включает в неё таблицы и устанавливает связи между ними. Для связей типа 1:1 и 1:М можно задать параметр обеспечения связной целостности данных, а также автоматическое каскадное обновление и удаление связанных записей.

     Обеспечение связной целостности данных означает, что Access при корректировке базы данных обеспечивает для связанных таблиц контроль за соблюдением следующих  условий:

  • В подчиненную таблицу не может быть добавлена запись с несуществующим в главной таблице значением ключа связи;
  • В главной таблице нельзя удалить запись, если не удалены связанные с ней записи в подчиненной таблице;
  • Изменение значений ключа связи в записи главной таблицы невозможно, если в подчиненной таблице имеются связанные с ней записи.

     При попытке пользователя нарушить эти  условия в операциях добавления и удаления записей или обновления ключевых данных в связанных таблицах Access выводит соответствующее сообщение  и не допускает выполнения операции.

     Установление  между двумя таблицами связи типа 1:М или 1:1 и задание для нее параметров целостности данных возможно только при следующих условиях:

  • Связываемые поля имеют одинаковый тип данных, причем имена полей могут быть различными;
  • Обе таблицы сохраняются в одной базе данных Access;
  • Главная таблица связывается с подчиненной по первичному простому или составному ключу (уникальному индексу) главной таблицы.

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

     Каскадное обновление и удаление связанных записей

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

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

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

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

     Язык  SQL (аббревиатура Structured Query Language) – это язык структурированных запросов, стандартный язык, предназначенный для создания баз данных, добавления новых и поддержки имеющихся данных, а также извлечения требуемой информации. Язык SQL с самого начала был создан, чтобы работать с данными из тех баз, которые следуют реляционной модели.

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

     При создании каждого запроса MS Access автоматически  составляет эквивалентную ему инструкцию SQL. Изменения, внесенные в инструкцию SQL, автоматически отражаются в бланке конструктора.

     Просмотрим  или изменим инструкцию SQL:

     1. Выполнив анализ предметной области,  создадим групповой запрос «Список  студентов группы ДФД-31» на  основании таблиц «Студент» и  «Группа» (рис. 21), в который включим  список следующих полей таблиц:

     Группа.[Обозначение группы], Студент.[Номер зачетной книжки], Студент.Фамилия, Студент.Имя, Студент.Отчество, Студент.Год рождения, Студент.Адрес, Студент.[Домашний телефон], Студент.[Балл при поступлении].

     В поле Группа.[Обозначение группы] используем условие отбора по коду группы: «ДФД-31».

     Групповой запрос «Список студентов группы ДФД-31» в MS Access в режиме конструктора

     2. Выберем Режим SQL в меню Вид или через кнопку «Режим SQL» на панели инструментов. На экране появится текущий запрос в режиме SQL эквивалентный созданному в режиме конструктора (рис. 22).

     Запрос  «Список студентов группы ДФД-31»  в MS Access в режиме SQL

     3. В этот запрос можно внести  изменения, и эти изменения  будут отражены в бланке конструктора. Например, попробуем удалить в  текстовом окне режима SQL записи Студент.Адрес, Студент.[Домашний телефон], Студент.[Балл при поступлении].

     Результат выполнения измененного запроса  «Список студентов группы ДФД-31»

     Основной  инструкцией языка SQL, всегда содержащейся в запросе, является команда SELECT [2].

     В простейшей форме эта команда занимается поиском информации в таблице. Она имеет следующий формат:

     SELECT field1, field 2, …

     FROM Table;

     Здесь field1, field 2,… – список столбцов таблицы Table, которые должны быть представлены в результате запроса.

     Для получения всей таблицы вместо списка столбцов необходимо поставить символ «*» (звездочка).

     Команда SELECT имеет следующие параметры:

     A. DISTINCT (получить список без повторений)

     Формат: SELECT DISTINCT field1, field2, …

     FROM Table;

     B. ALL (получить список со всеми повторениями)

     Формат: SELECT ALL field1, field2, …

     FROM Table;

     C. WHERE (извлечь нужные строки)

     Формат: SELECT field1, field2, …

     FROM Table WHERE predicate;

     Здесь predicate – логическое выражение, которое  может быть истинно или ложно  для каждой записи таблицы.

     D. ORDER BY (рассортировать выходные данные)

     Формат: SELECT field1, field2, …

     FROM Table

     ORDER BY field1 DESC;

     Это означает, что выходные данные будут  рассортированы по столбцу field1 в порядке убывания (порядок возрастания задается по умолчанию или с помощью слова ASC).

     E. GROUP BY (группировать выходные данные)

     Формат: SELECT field1, field2, …

     FROM Table

     GROUP BY [field1, field2, …]

     ORDER BY field1 DESC;

     Группировка – это объединение записей  в соответствии со значениями некоторого заданного поля.

     Агрегатные функции

     Существуют  следующие основные агрегатные функции:

  • Count – определение численности;
  • Sum – определение суммы;
  • First/Last – определение первого/последнего значения;
  • Min/Max – определение минимума/максимума;
  • Avg – определение среднего значения.

     Для обозначения связи двух таблиц дополнительно  к команде FROM используются атрибуты INNER JOIN и ON.

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

     С помощью атрибута INNER JOIN мы указали, что таблица «Студент» связана с таблицей «Группа». А с помощью атрибута ON мы указали, как именно связаны между собой две таблицы «Студент» и «Группа»: по полю Код группы (FROM Группа INNER JOIN Студент ON Группа.[Код группы] = Студент.[Код группы]).

     С помощью атрибута WHERE мы указали, что  нужно извлечь только строки, которые  содержат запись в поле Группа.[Обозначение  группы] «ДФД-31»: WHERE (((Группа.[Обозначение  группы])="ДФД-31")).

     ПРИМЕЧАНИЕ. Обратите внимание на то, что в качестве имени поля всегда используется то имя, которое было присвоено полю в процессе создания таблицы в режиме конструктора, а не надпись, которую мы видим на экране в таблице в режиме заполнения.

Информация о работе Базы данных