Кузин А.В., Левонисова С.В. Базы данных (5-е издание, 2012) (1084448), страница 10
Текст из файла (страница 10)
Причем для связей типов один к одному и один ко многим можно задать параметр,обеспечивающий целостность данных, а также автоматическое каскадное обновление или удаление связанных записей.Обеспечение целостности данных означает выполнение длявзаимосвязанных таблиц следующих условий корректировки базыданных:• в подчиненную таблицу не может быть добавлена запись, длякоторой не существует в главной таблице ключа связи;• в главной таблице нельзя удалить запись, если не удаленысвязанные с ней записи в подчиненной таблице;• изменение значений ключа связи главной таблицы должноприводить к изменению соответствующих значений в записях подчиненной таблицы,В случае если пользователь нарушил эти условия в операцияхобновления или удаления данных в связанных таблицах, Accessвыводит соответствующее сообщение и не допускает выполненияоперации.
Access автоматически отслеживает целостность данных,если между таблицами в схеме данных установлена связь с параметрами обеспечения целостности. При вводе некорректных данных в связанные таблицы выводится соответствующее сообщение.Access не позволяет создавать связи с параметрами обеспеченияцелостности в схеме данных, если ранее введенные в таблицыданные не отвечают требованиям целостности.Отметим, что установление между двумя таблицами связи типаодин к одному или один ко многим и задание параметров целостности данных возможно только при следующих условиях:• связываемые поля имеют одинаковый тип данных, причемимена полей могут быть различными;• обе таблицы сохраняются в одной базе данных Access;• главная таблица связывается с подчиненной по первичномупростому или составному ключу (уникальному индексу) главнойтаблицы.Если для выбранной связи обеспечивается поддержание целостности, то можно задать режимы каскадного обновления и удаления связанных записей.В режиме каскадного обновления связанных записей при изменении значения в поле связи главной таблицы Access автоматически изменит значения в соответствующем поле в подчиненныхшписях.47В режиме каскадного удаления связанных записей при удалении записи из главной таблицы Access выполняет каскадное удаление подчиненных записей на всех уровнях.Создание схемы данных и включение в нее таблицСоздание схемы данных начинается в окне базы данных с выполнения команды Сервис| Схема данных или нажатия кнопки [Схема данных] на панели инструментов.После нажатия кнопки [Схема данных] открывается окно Добавление таблицы, где можно выбрать таблицы и запросы, которые нужно включить в схему данных (рис.
2.3). Для размещениятаблицы в окне Схема данных надо выделить ее в окне Добавлениетаблицы и нажать кнопку [Добавить]. Для выделения несколькихтаблиц надо, держа нажатой клавишу [0x1], щелкнуть мышью навсех таблицах, переносимых в схему. После включения в схемуданных всех нужных таблиц надо нажать кнопку [Закрыть]. В результате в окне Схема данных будут представлены все включенныев эту схему таблицы со списком своих полей.’ Схема данныхшши вя штЩ йбС Т Ш Ш ЗрШ !НазваниеКод категорииКод категории оборудованияМоделиКод фирмыШифр документаКатегория оборудованияАннотацияЯзык документаСтатусДата созданияЕЯШГ?Гк1j '-Добавить[Д о б а в л е н и е т а б л и ц ы; '. ■. .1\ 1 ьТаблицыJзапросыj Табчицыи зглр } ,| ...
Ц | | щЛ 1 1 1 i щщщT'-f " ""'|;Я|Категория документаКатегория оборудованияваФирмь.-производители'///J- Закрыть§1111Е; v!' -у,/- vw< *v s1».»'Х"*{>^*< ' ________________* */7'' -< *SfftB'v- :. ,. .. . ;■ .Рис. 2.3. Схема данных БД48Для установления связи между парой таблиц в схеме данныхнадо выделить в главной таблице уникальное ключевое поле, покоторому устанавливается связь, а затем при нажатой кнопке мышиперетащить курсор в соответствующее поле подчиненной таблицы.При установлении связи по соответствующему ключу необходимо выделить все поля, входящие в ключ главной таблицы, ииеретащить их на одно из полей связи в подчиненной таблице.Для выделения всех полей, входящих в составной уникальныйключ, необходимо отмечать их при нажатой клавише [С1х1].
Приустановлении связи откроется окно Связи. При этом в строке Типотношения автоматически установится тип связи один ко многим.При составном ключе связи в окне Связи необходимо для каждого ключевого поля Таблица\Запрос главной таблицы выбратьсоответствующее поле подчиненной таблицы Связанная таблица\Запрос.В этом же окне можно задать параметр Обеспечение целостности данных для выбранной связи. Если же таблицы уже содержатданные, не отвечающие требованиям целостности, то связь типаодин ко многим не устанавливается и появляется соответствующее сообщение с соответствующей инструкцией.
После заданияпараметра целостности можно в окне Связи отметить каскадноеобновление связанных полей или каскадное удаление связанныхзаписей.После установления связей между таблицами получают схемуданных в окне Схема данных. Перемещение и изменение размеровтаблиц осуществляются принятыми в операционной системе\Vindows способами. Проверка работоспособности схемы данныхосуществляется при конструировании форм, запросов, отчетов ипри их использовании, а также при непосредственной работе стаблицами.2.7. Модификация структуры базы данныхМодификация структуры базы данных определяется изменением структуры отдельных таблиц и схемы данных. При этом всеизменения структуры таблиц производятся в режиме конструктора таблиц.Изменения полей, которые не являются ключами или ПОЛЯМИсвязи.
Состав и последовательность, а также тип данных, свойстваили имена этих полей можно изменять независимо от наличиясвязей таблицы с другими таблицами базы данных. Однако, еслипреобразования недопустимы, попытка изменения типа данныхможет привести к потере данных.Изменение или удаление ключевого поля. При попытке изменитьсвойства или удалить ключевое поле загруженной и несвязанной49таблицы система предупреждает о возможности потери данных приудалении ключа. Если, например, удаляется поле в составном ключе, с других полей этого ключа снимается признак ключа.Для отказа от определения первичного ключа в таблице достаточно нажать кнопку [Ключевое поле] или удалить индекс ключав окне Индексы после нажатия соответствующей кнопки на панели инструментов. Если требуется изменить ключ таблицы, имеющей связи с другими таблицами, необходимо предварительно разорвать эти связи.
Изменения, сделанные в структуре таблиц, автоматически не переносятся системой в использующие их формы, запросы и отчеты.Изменение схемы данных. При модификации схемы данных осуществляется изменение состава ее таблиц, т. е. удаление, добавление таблиц и изменение их связей.Необходимость изменения связей возникает, в частности, приизменении ключей в таблицах. Изменение ключа по составу, типуи размеру его полей не может производиться до тех пор, пока неудалены связи таблицы в схеме данных.При изменении типа данных для неключевых полей, задействованных в связях таблицы, также предварительно необходимоудалить эти связи в схеме данных.Для внесения изменений в схему данных необходимо закрытьвсе таблицы и выполнить команду Сервис\Схема данных или нажать кнопку [Схема данных] на панели инструментов.Добавление таблиц выполняется нажатием кнопки [Добавитьтаблицу] после выделения в окне Добавление таблицы нужной таблицы.Удаление таблицы из схемы данных осуществляется после перехода в окно Схема данных, в котором сначала удаляются ее связи,затем она выделяется, после чего подается команда Правка\Удалить или нажимается клавиша [Ое1].Для удаления связи ее отмечают щелчком мыши, затем нажимают правую кнопку мыши, вызывающую контекстное меню, иподают команду Удалить связь.
Помеченную связь можно такжеудалить с помощью команды Правка\Удалить или клавиши [Бе1].Изменение параметров связи выполняется посредством командыСвязи\Изменить связь или соответствующей команды контекстного меню.2.8. Обработка данных в базе2.8.1. Запросы в СУБД AccessЗапросы создаются пользователем для выборки необходимыхему данных из одной или нескольких связанных таблиц и пред50ставления выбранных данных также в виде таблицы. Запрос можетформироваться двумя способами:с помощью запросов по образцу — QBE (Query By Example);с помощью инструкций языка структурированных запросов SQL(Structured Query Language), т.е.
специализированного языка, предназначенного для организации запросов, а также для обновленияи управления реляционными базами данных.Практически все типы запросов в Access можно создать визуально. Исключение составляют сквозные запросы (SQL-passthrough), т.е. запросы из других приложений, запросы на изменение структуры данных и запросы объединения.Визуально можно построить запросы добавления, удаления,обновления и создания таблиц.Отметим также, что одной из наиболее сильных сторон Accessявляются фильтры, которые строятся с помощью запросов илипосредством установки критериев. Для облегчения этой задачи используют параметрические запросы.В Access имеется несколько видов запросов:• запрос на выборку, т.е. выбирающий данные из взаимосвязанных таблиц и других запросов.
В результате получают таблицу,существующую до закрытия запроса. Таблицу с результатами запроса можно использовать для работы с данными таблиц, на которых построен запрос;• запрос на создание таблицы, основанный на запросе на выборку, но в отличие от последнего результат этого запроса сохраняется в новой таблице;• запросы на обновление, добавление, удаление, являющиесязапросами действия, в результате выполнения которых изменяются данные в таблицах.2.8.2. Основы конструирования запросовОсновные принципы конструирования запроса заложены в технике конструирования запроса на выборку, являющегося основой всех видов запросов.Запрос на выборку позволяет достаточно просто выбрать данные из одной или нескольких взаимосвязанных таблиц.