Как сделать связи между таблицами в access 2010?
Содержание:
- Ключевые слова sql
- Схема данных БД
- Что представляет собой БД?
- Ключи в Access
- Создание связи данных вручную в конструктор наборов данных
- Отношение «один-к-одному»
- Как определить связи между таблицами
- 2.4.3.3. Заполнение таблиц
- 2.4. Microsoft Access 2007
- Как создать подтаблицу в Access в этой ситуации?
- Целостность данных
- Вывод
Ключевые слова sql
-
Команды – представляют собой глаголы определяющего действия, которые необходимо выполнить (SELECT, ALTER, CREATE, DROP)
-
Условия (квалификатор)-ограничивают диапазон значений элементов, входящих в запрос (WHERE)
-
Модификаторы (предложения)-модифицируют выполнение инструкций (ORDER BY)
-
Предикаты – представляют собой выражения, такие как IN. Могут возвращать в качестве результата значения True, False, в некоторых случаях Null (неизвестный результат)
-
Операторы (=, <,>)- сравнивают значения или применяются для создания объединений в синтаксисе предложений WHERE. Эти операторы наз предикатами сравнения.
-
Статистические функции (агрегаты)- возвращают одно результирующее значение на основе набора данных (SUM (сумма), COUNT (количество), MIN (минимальное значение), MAX (максимальное значение) или AVG (среднее значение)
-
Функции преобразования типа данных – изменяют тип данных с одного на др.(CAST, CONVERT)
-
Другие ключевые слова (зарезервированные)-изменяющие действие команд или управляющие курсором (указателем текущей записи в наборе)
В синтаксических конструкциях используются следующие обозначения:
звездочка (*) для обозначения «все» — употребляется в обычном для программирования смысле, т.е. «все случаи, удовлетворяющие определению»;
квадратные скобки ([]) – означают, что конструкции, заключенные в эти скобки, являются необязательными (т.е. могут быть опущены);
фигурные скобки ({}) – означают, что конструкции, заключенные в эти скобки, должны рассматриваться как целые синтаксические единицы, т.е. они позволяют уточнить порядок разбора синтаксических конструкций, заменяя обычные скобки, используемые в синтаксисе SQL;
многоточие (…) – указывает на то, что непосредственно предшествующая ему синтаксическая единица факультативно может повторяться один или более раз;
прямая черта (|) – означает наличие выбора из двух или более возможностей. Например обозначение ASC|DESC указывает, можно выбрать один из терминов ASC или DESC; когда же один из элементов выбора заключен в квадратные скобки, то это означает, что он выбирается по умолчанию (так, |DESC означает, что отсутствие всей этой конструкции будет восприниматься как выбор ASC);
точка с запятой (;) – завершающий элемент предложений SQL;
запятая (,) – используется для разделения элементов списков;
пробелы ( ) – могут вводиться для повышения наглядности между любыми синтаксическими конструкциями предложений SQL;
прописные жирные латинские буквы и символы – используются для написания конструкций языка SQL и должны (если это специально не оговорено) записываться в точности так, как показано;
строчные буквы – используются для написания конструкций, которые должны заменяться конкретными значениями, выбранными пользователем, причем для определенности отдельные слова этих конструкций связываются между собой символом подчеркивания (_);
Основой SQL является инструкция SELECT, используемая для создания запросов на выборку.
Синтаксис инструкции:
SELECT список_выбора
]]
FROM имена таблиц
];
SELECT — выбрать (директива) данные из указанных столбцов и (если необходимо) выполнить перед выводом их преобразование в соответствии с указанными выражениями и (или) функциями
FROM — из (условие) перечисленных таблиц, в которых расположены эти столбцы
WHERE — где (условие) строки из указанных таблиц должны удовлетворять указанному перечню условий отбора строк
GROUP BY — группируя по (условие) указанному перечню столбцов с тем, чтобы получить для каждой группы единственное агрегированное значение, используя во фразе SELECT SQL – функции: SUM (сумма), COUNT (количество), MIN (минимум), MAX (максимум), AVG (среднее значение)
HAVING — имея в результате лишь те группы, которые удовлетворяют указанному перечню условий отбора групп (условие)
ORDER BY — спецификация сортировки (условие) определяет порядок сортировки: ASC – сортировка по возрастанию, DESC — сортировка по убыванию.
ПРЕДИКАТЫ :
1. Сравнения =, <>, >=, <, <=
2. В интервале — “между” BETWEEN a1 and a2
3. Входит в множество IN (= IN (“Мука”,“Крупа”…..)
4. Подобие < имя > Like < образец > ( что ) ( с чем сравнивать)
Схема данных БД
В приведенном примере «Отели» связаны с «Регионами», а те, в свою очередь, со «Странами». Эта информация, написанная текстом, не слишком наглядно показывает связи между объектами. И в нашей базе всего три таблицы, а их могут быть сотни. Держать в голове все соединения разработчику затруднительно.
В качестве вспомогательного средства в базах создаются схемы данных, которые наглядно визуально показывают все объекты и отношения между ними. В Access схемы данных создаются с помощью специального инструмента. Для нашей БД это выглядит так:
Прямоугольниками обозначены таблицы со списком полей, линии между ними – связи. На линии связи в местах примыкания к прямоугольникам таблиц сделаны обозначения: «1» и «∞». Они показывают, какой тип связи применен в этом отношении. Значок «1» у таблицы-источника со значком «∞» у приемника обозначают вид «один-ко-многим». Обе связи в нашей БД – такого типа.
Соответственно, две единицы у двух концов линии говорят о виде «один-к-одному», а два знака бесконечности – «многие-ко-многим».
Что представляет собой БД?
Как известно, база данных представляет собой инструмент сбора и структурирования информации. В БД можно хранить данные о людях, заказах, товарах и т. п. Многие БД изначально выглядят как небольшой список в текстовом редакторе либо электронной таблице. Но в связи с увеличением объёма данных, список наполняется лишней информацией, появляются несоответствия, не всё становится понятным… Кроме того, способы поиска и отображения подмножеств данных при использовании обычной электронной таблицы крайне ограничены. Таким образом, лучше заранее подумать о переносе информации в базу данных, созданную в рамках системы управления БД, например, в такую, как Access.
База данных Access — это хранилище объектов. В одной такой базе данных может содержаться более одной таблицы. Представьте систему отслеживания складских запасов с тремя таблицами — это будет одна база данных, а не 3.
Что касается БД Access, то в ней все таблицы сохраняются в одном файле совместно с другими объектами (формами, отчётами, модулями, макросами).
Для файлов БД, созданных в формате Access 2007 (он совместим с Access 2010, Access 2013 и Access 2016), применяется расширение ACCDB, а для БД, которые созданы в более ранних версиях, — MDB. При этом посредством Access 2007, Access 2013, Access 2010 и Access 2016 вы сможете, при необходимости, создавать файлы и в форматах более ранних версий (Access 2000, Access 2002–2003).
Применение БД Access позволяет:
• добавлять новые данные в БД (допустим, новый артикул складских запасов);
• менять информацию, находящуюся в базе (перемещать артикул);
• удалять данные (например, когда артикул продан либо утилизирован);
• упорядочивать и просматривать данные разными методами;
• обмениваться информацией с другими людьми посредством отчётов, сообщений, эл. почты, глобальной или внутренней сети.
Ключи в Access
Поля, которые формируют связь между таблицами в Access, называют ключами. Как правило, ключ состоит из одного поля, но может включать и несколько. Существуют 2 вида ключей.
1. Первичный. Он может быть в таблице только один. Такой ключ состоит из одного либо нескольких полей, однозначно определяющих каждую запись в таблице. Нередко в качестве первичного ключа применяют уникальный идентификатор, код либо порядковый номер. К примеру, в таблице «Клиенты» можно назначить уникальный код клиента каждому клиенту. Поле кода клиента в таком случае будет являться первичным ключом данной таблицы. Если же первичный ключ состоит из нескольких полей, он обычно включает уже существующие поля, которые формируют уникальные значения в сочетании друг с другом. Допустим, в таблице с информацией о людях в качестве первичного ключа мы можем использовать сочетание фамилии, даты рождения и имени.
2. Внешний ключ. В таблице также могут быть несколько внешних ключей (либо один). Этот ключ содержит значения, которые соответствуют значениям первичного ключа другой таблицы. К примеру, в таблице «Заказы» каждый заказ может включать код клиента, который соответствует конкретной записи в таблице «Клиенты». А поле «Код клиента» будет внешним ключом таблицы «Заказы».
Таким образом, основой связи между таблицами в Access является соответствие значений между полями ключей. Посредством такой связи мы можем комбинировать данные из связанных таблиц. Допустим, существуют таблицы «Заказы» и «Заказчики». При этом каждая запись в таблице «Заказчики» идентифицируется полем первичного ключа, которое называется «Код»
Если мы хотим связать каждый заказ с клиентом, мы можем добавить в таблицу «Заказы» поле внешнего ключа, которое соответствует полю «Код» в нашей таблице «Заказчики», после чего создать связь между данными 2-мя ключами. В случае добавления записи в таблицу «Заказы» мы могли бы использовать значение кода клиента из нашей таблицы «Заказчики». Тогда во время просмотра каких-нибудь данных о клиенте, который сделал заказ, связь позволила бы определить, какие именно данные из нашей таблицы «Заказчики» соответствуют тем либо иным записям в нашей таблице «Заказы»:
- Первичный ключ, определяемый по знаку ключа рядом с именем поля.
- Внешний ключ, определяемый по отсутствию знака ключа.
Создание связи данных вручную в конструктор наборов данных
При создании таблиц данных с помощью средств проектирования данных в Visual Studio связи создаются автоматически, если данные могут быть собраны из источника данных. При добавлении вручную таблиц данных из вкладки набор данных панели элементов может потребоваться создать связь вручную. Сведения о создании DataRelation объектов программным путем см. в разделе Добавление связейданных.
Связи между таблицами данных отображаются в виде линий в Конструктор наборов данных с глифом «один ко многим». По умолчанию имя связи не отображается в области конструктора.
Примечание
Отображаемые на компьютере имена или расположения некоторых элементов пользовательского интерфейса Visual Studio могут отличаться от указанных в этой статье. Возможно, вы используете другой выпуск Visual Studio или другие параметры среды. Дополнительные сведения см. в разделе Персонализация среды IDE.
Создание связи между двумя таблицами данных
-
Откройте свой набор данных в Конструкторе наборов данных. Дополнительные сведения см. в разделе Пошаговое руководство. Создание набора данных в конструктор наборов данных.
-
Перетащите объект связи с панели элементов набора данных на дочернюю таблицу данных в связи.
Откроется диалоговое окно связь с заполнением поля дочерней таблицы таблицей, в которую перетаскивается объект связи .
-
Выберите родительскую таблицу из поля Родительская таблица . Родительская таблица содержит записи на стороне «один» связи «один ко многим».
-
Убедитесь, что в поле дочерняя таблица отображается правильная дочерняя таблица. Дочерняя таблица содержит записи на стороне «многие» связи «один ко многим».
-
Введите имя связи в поле имя или оставьте имя по умолчанию на основе выбранных таблиц. Это имя фактического DataRelation объекта в коде.
-
Выберите столбцы, которые объединяют таблицы в списках Ключевые столбцы и Внешние ключевые столбцы .
-
Выберите, следует ли создать связь, ограничение или и то, и другое.
-
Установите или снимите флажок Вложенная связь . При выборе этого параметра свойству присваивается значение Nested , после чего дочерние строки отношения вкладываются в родительский столбец, когда эти строки записываются в виде XML-данных или синхронизируются с XmlDataDocument . Дополнительные сведения см. в разделе вложенность связейданных.
-
Задайте правила, которые должны применяться при внесении изменений в записи в этих таблицах. Для получения дополнительной информации см. Rule.
-
Нажмите кнопку ОК , чтобы создать связь. Линия связи появится в конструкторе между двумя таблицами.
Отображение имени отношения в конструктор наборов данных
-
Откройте свой набор данных в Конструкторе наборов данных. Дополнительные сведения см. в разделе Пошаговое руководство. Создание набора данных в конструктор наборов данных.
-
В меню данные выберите команду Показать связи меток , чтобы отобразить имя связи. Очистите эту команду, чтобы скрыть имя связи.
Отношение «один-к-одному»
Отношение или связь «один-к-одному» связывает одну запись таблицы с одной или не связывает ни с одной записью другой таблицы. Иногда этот тип отношения применяется для разбиения таблицы с большим количеством полей на две или несколько меньших таблиц.
Таблица Products (изделия) может содержать подробную информацию, описывающую изделие и его цену, и дополнительные сведения об особенностях его производства.
Эти сведения интересны только сотрудникам инженерно-технических подразделений, поэтому их можно перенести в отдельную таблицу (названную, например, ProductsEngineering (технические характеристики изделия). Это та информация, которая не должна интересовать продавцов при оформлении заказов.
В другой ситуации можно разбить таблицу на две, просто потому что она слишком велика. (Программа Access не разрешает таблице иметь более 255 полей.)
Рис. 5.15. Когда связываются два поля, в которых не допускаются дублирующиеся данные (и флажок Обеспечение целостности данных установлен), Access считает, что создается связь «один-к-одному».
Программа помещает цифру 1 на концах линии связи для того, чтобы отличать ее от других типов связей.
В этом примере столбец ID в таблице Products и столбец ID в таблице ProductsEngineering — первичные ключи соответствующих таблиц, поэтому невозможно связать несколько записей таблицы ProductsEngineering с одной и той же записью таблицы Products
создается так же, как отношение «один-ко-многим» — перетаскиванием с помощью мыши полей на вкладке Схема данных (рис. 5.15). Единственная
разница состоит в том, что всвязанных полях обеих таблиц нужно задать запрет совпадений. В этом случае запись одной таблицы может (как максимум) быть связана с единственной записью в другой таблице.
Примечание
В поле запрещены совпадения, если оно является первичным ключом таблицы (см. разд. «Первичный ключ» главы 2) или если у поля есть индекс, препятствующий появлению дублирующейся информации (см. разд. «Предотвращение дублирования значений с помощью индексов» главы 4).
Применяйте связи «один-к-одному» с осторожностью
Отношения «один-к-одному» крайне редко применяются в программе Access. Обычно гораздо удобнее использовать скрытие столбцов (см. разд. «Скрытие столбцов» главы 3) и запросы (см. главу 6), если вы хотите видеть только отдельные поля таблицы.
• Две части таблицы необходимо поместить в отдельные БД (см. разд. «Что такое разделенная БД» главы 18) для того, чтобы разные люди могли копировать их на разные компьютеры и редактировать независимо.
• Вы хотите защитить от любопытных глаз уязвимые данные. Один из возможных способов — поместить информацию, которую нужно защитить, в отдельную таблицу и сохранить эту таблицу в другой, более защищенный файл БД.
• У вас есть таблица с огромным объемом данных, таких как поля типа Вложение (см. разд. «Вложение» главы 2) с большими документами. В этом случае можно повысить производительность, если разделить таблицу. Вы даже можете решить, что лучше поместить половину таблицы в отдельную БД (см, разд. «Что такое разделенная БД» главы 18).
• Некоторые данные вашей таблицы необязательны. Вместо того чтобы включать большое количество незаполненных полей, можно выделить их в отдельную таблицу. Когда не нужно включать эту информацию, вам не придется добавлять запись в связанную таблицу.
Если у вас нет таких ситуаций, вы больше выиграете от создания одной большой таблицы.
Отношение «многие-ко-многим»
Отношение или связь «многие-ко-многим»связывает одну или несколько записей одной таблицы с одной или несколькими записями в другой таблице. Рассмотрим БД, в которой в отдельных таблицах хранятся данные об авторах и книгах.
Авторы бестселлеров не останавливаются на одной книге (поэтому вы должны иметь возможность связать одного автора с несколькими книгами).
Однако иногда авторы объединяются в команду под одним заглавием (поэтому вы должны иметь возможность связать одну книгу с несколькими авторами).
Аналогичная ситуация возникает, если нужно распределить студентов по курсам, сотрудников по комитетам или ингредиенты по рецептам. Можно даже представить подобную ситуацию и в случае БД с куклами-болванчиками, если несколько изготовителей решат объединиться для изготовления одной куклы-болванчика.
Связи «многие-ко-многим» довольно распространены, и программа Access предоставляет два способа их обработки.
Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.
Как определить связи между таблицами
При создании связи между таблицами связанные поля не должны иметь одни и те же имена. Однако связанные поля должны иметь один и тот же тип данных, если только поле первичного ключа не является полем AutoNumber. Вы можете сопоставить поле AutoNumber с полем Number, только если свойство FieldSize обоих совпадающих полей совпадает. Например, можно сопоставить поле AutoNumber и поле Number, если свойство theFieldSizeproperty обоих полей имеет значение Long Integer. Даже если оба совпадающих поля являются числовыми полями, они должны иметь параметр sameFieldSizeproperty.
Как определить связи «один ко многим» или «один к одному»
Чтобы создать связь «один ко многим» или «один к одному», выполните следующие действия.
-
Закройте все таблицы. Нельзя создавать или изменять связи между открытыми таблицами.
-
В Access 2002 и Access 2003 выполните следующие действия.
- Нажмите F11, чтобы переключиться в окно базы данных.
- В меню Инструменты выберите Связи.
В Access 2007, Access 2010 или Access 2013 нажмите Связи в группе Показать/Скрыть на вкладке Инструменты базы данных.
-
Если вы еще не определили какие-либо связи в базе данных, автоматически отобразится диалоговое окно Показать таблицу. Если вы хотите добавить таблицы, которые нужно связать, но диалоговое окно Показать таблицу не отображается, нажмите Показать таблицу в меню Связи.
-
Дважды щелкните названия таблиц, которые вы хотите связать, а затем закройте диалоговое окно Показать таблицу. Чтобы создать связь между одной и той же таблицей, добавьте эту таблицу два раза.
-
Перетащите поле, которое вы хотите связать, из одной таблицы в связанное поле в другой таблице. Чтобы перетащить несколько полей, нажмите Ctrl, нажмите на каждое поле, а затем перетащите их.
В большинстве случаев вы перетаскиваете поле первичного ключа (это поле отображается жирным текстом) из одной таблицы в аналогичное поле (это поле часто имеет одно и то же имя), которое называется внешним ключом в другой таблице.
-
Откроется диалоговое окно Изменение связей. Убедитесь, что имена полей, отображаемые в двух столбцах, верны. Вы можете изменить имена, если это необходимо.
При необходимости установите параметры связей. Если у вас есть информация о конкретном элементе в диалоговом окне Изменение связей, нажмите кнопку со знаком вопроса, а затем нажмите на элемент. (Эти параметры будут подробно описаны ниже в этой статье.)
-
Нажмите кнопку Создать, чтобы создать связь.
-
Повторите шаги с 4 по 7 для каждой пары таблиц, которые вы хотите связать.
При закрытии диалогового окна Изменение связей Access спрашивает, хотите ли вы сохранить макет. Сохраняете ли вы макет или не сохраняете макет, созданные вами связи сохраняются в базе данных.
Примечание
Можно создавать связи не только в таблицах, но и в запросах. Однако целостность данных связывания не обеспечивается с помощью запросов.
Как определить связь «многие ко многим«
Чтобы создать связь «многие ко многим», выполните следующие действия.
-
Создайте две таблицы, которые будут иметь связь «многие ко многим».
-
Создайте третью таблицу. Это стыковочная таблица. В таблице соединения добавьте новые поля, которые имеют те же определения, что и основные ключевые поля из каждой таблицы, созданной в шаге 1. В связующей таблице основные ключевые поля функционируют как внешние ключи. Вы можете добавить другие поля в связующую таблицу, так же, как и в любую другую таблицу.
-
В связующей таблице установите первичный ключ, чтобы включить основные ключевые поля из двух других таблиц. Например, в связующей таблице «TitleAuthors» первичный ключ будет состоять из полей OrderID и ProductID.
Примечание
Чтобы создать первичный ключ, выполните следующие действия:
-
Откройте таблицу в Конструкторе.
-
Выберите поле или поля, которые вы хотите определить в качестве первичного ключа. Чтобы выбрать одно поле, нажмите на селектор строки для нужного поля. Чтобы выбрать несколько полей, удерживайте клавишу Ctrl, а затем нажмите селектор строки для каждого поля.
-
В Access 2002 или в Access 2003 нажмите на Первичный ключ на панели инструментов.
В Access 2007 нажмите на Первичный ключ в группе Инструменты на вкладке Дизайн.
Примечание
Если вы хотите, чтобы порядок полей в первичном ключе с несколькими полями отличался от порядка этих полей в таблице, нажмите Индексы на панели инструментов для отображения диалогового окна Indexes, а затем заново упорядочите имена полей для индекса с именем PrimaryKey.
-
-
Определите связь один-ко-многим между каждой основной и связующей таблицами.
2.4.3.3. Заполнение таблиц
Заполнение таблиц можно начать и с заполнения таблицы Студенты. В окне Базы данных выделяем нужную таблицу, затем выполняем щелчок на кнопке Открыть.
На экране появится структура таблицы БД в режиме таблицы. Новая таблица состоит из одной пустой строки.
Рис. 5.
Заполнение производится по записям, т.е. вводится информация для всей строки целиком. Поле счетчика заполняется автоматически. После ввода первой записи пустая запись смещается в конец таблицы. Переход к следующему полю осуществляется нажатием клавиши ТаЬ.
Для заполнения поля MEMO в таблице (колонка Место рождения) нажимаем комбинацию клавиш , предварительно установив курсор в поле MEMO. Открывается диалоговое окно Область ввода, после ввода или редактирования данных в этом окне щелкаем на кнопке ОК.
После заполнения таблица Студенты имеет следующий вид.
Рис. 6.
Аналогичным образом заполняются остальные таблицы: Группы Студентов, Успеваемость, Дисциплины.
Рис. 7. Рис. 8. Рис. 9.
В приложении Access применяются различные методы перемещения по таблице. Переходить от записи к записи можно с помощью: клавиш управления курсором; кнопки из области Запись, расположенной внизу таблицы в режиме таблицы; команды Правка — Перейти.. Для перемещения от поля к полю (слева направо) применяются клавиши Tab и Enter, а в обратном направлении Shift+Tab.
Поиск данных в таблице большого объема, который выполняется с помощью кнопок перехода, может занять много времени, поэтому для поиска и замены данных в полях необходимо использовать команду Правка — Найти. Откроется окно диалога. В поле Образец диалогового окна поиска указывается искомый объект и осуществляется поиск. Для замены данных в полях необходимо перейти на вкладку Замена.
После создания структуры таблиц, их заполнении и установки связей между таблицами можно приступать к построению запросов.
Далее …>>>Тема: 2.4.4. Формирование запросов
2.4. Microsoft Access 2007
2.4.4. Заполнение таблиц БД Access 2007
Tables БД Access 2007 необходимо заполнять данными в определенной последовательности. Сначала надо заполнять главные tables, а затем подчиненные. Заполнение таблиц для БД Деканат целесообразно выполнять в такой последовательности: Группы студентов, Студенты, Дисциплины и Успеваемость. В этом случае для заполнения полей вторичных ключей (КодГруппы, КодСтудентов, КодДисциплины) можно использовать раскрывающийся список данных.
Раскрывающийся список данных для вторичных ключей появится только в том случае, если при создании структуры подчиненных таблиц в режиме конструктор для полей вторичных ключей выбран тип данных «Мастер подстановок».
Рассмотрим заполнение таблицы Группы студентов. В окне базы данных Деканат_2007 в области объектов выбираем таблицу Группы студентов, и выполняем на ней двойной щелчок. В окне редактирования появится структура табл. «Группы студентов» в режиме таблицы. Новая table состоит из одной пустой строки.
Заполнение производится по записям (по строкам). Поле счетчика (поле КодСтудента) заполняется автоматически. Переход к следующему полю осуществляется нажатием клавиши ТаЬ. После ввода первой записи курсор смещается на следующую запись. После заполнения table Группы студентов имеет следующий вид (рисунок 1).
Рис. 2.
Аналогичным образом заполняется table Студенты (рис.2). Необходимо отметить, что в табл. Студенты поле КодГруппы заполняется из раскрывающегося списка.
Рис. 2.
Если раскрывающийся список не появляется, то необходимо закрыть таблицу Студенты и открыть окно Схема данных. В этом окне для таблицы Студенты разорвать связи, т.е. удалить отношения. Для этого щелкаем правой кнопкой мыши на одну из связей и из контекстного меню выбираем команду Удалить. Затем удаляем другую связь. Закрываем окно Схема данных. Открываем табл. «Студенты» в режиме Конструктор.
Из списка выбираем тип данных для поля КодГруппы «Мастер подстановок». В процессе назначения типа данных «Мастер подстановок» для поля КодГруппы табл. «Студенты» выбираем следующие данные: на первом шаге Группы студентов, а затем Название и далее щелкаем Готово. Закрываем таблицу Студенты. После этого восстанавливаем связи (отношения) в окне Схема данных. Продолжаем заполнение таблицы Студенты с использованием раскрывающегося списка для поля КодГруппы.
Далее заполняется table Дисциплины (рис. 3).
Рис. 3.
Затем заполняется table Успеваемость (рис. 4).
Рис. 4.
В таблице Успеваемость поля КодДисциплины и КодСтудента заполняются из раскрывающихся списков.
Необходимо отметить, что в базах данных Access 2007 применяются различные методы перемещения по таблице. Переходить от записи к записи можно с помощью: клавиш управления курсором; кнопок из области Запись, расположенных внизу таблицы в режиме таблицы; команды Перейти в группе Найти, расположенной на ленте. Для перемещения от поля к полю (слева направо) применяются клавиши Tab и Enter, а в обратном направлении Shift+Tab.
Поиск данных в таблице большого объема, можно осуществлять командой поиск расположенный внизу таблицы в режиме таблицы или командой Найти в группе Найти, расположенной на ленте. Для замены данных в полях необходимо использовать команду Заменить в группе Найти, расположенной на ленте.
После создания структуры таблиц, их заполнения и установления отношений (логических связей) между таблицами можно приступать к построению запросов.
Далее >>> Раздел: 2.4.5. Создание запросов в базе данных Access 2007
Как создать подтаблицу в Access в этой ситуации?
- Это действительно самая базовая связанная таблица, которую вы можете сделать — это очень подходит для любой системы баз данных.
- Стол будет стоить
- Id — pk id (все таблицы должны иметь этот PK) Идентификатор объекта — стандартный длинный столбец чисел, используемый для привязки к таблице активов.
Пункт (описание стоимости (краска, шины, ремонт сиденья и т.д. И т.д.) Стоимость (сумма данного предмета)
Таким образом, вы создаете основную форму, основанную на активах, а затем создаете подформу, которая, вероятно, наилучшим образом настраивается как «повторяющиеся строки» или так называемая множественная форма элементов (из которой вы попадаете в свою основную форму, и, таким образом, стоимость «становится подформой активов.
Таким образом, вы привязываете каждую строку стоимости к одной записи о единичных активах. И доступ будет «устанавливать» столбец идентификатора актива автоматически, если вы отбросите форму затрат в качестве дополнительной формы в форму активов.
Таким образом, форма будет выглядеть примерно так:
В приведенном выше примере (приложение доступа и базовая форма, которые я создал в Access), у меня на самом деле есть «два» столбца, в которых можно выбрать тип «item» или «cost».
У меня есть солнцезащитные очки, но на следующем ряду я мог бы добавить шины, а затем нарисовать, а затем, кто бы я ни захотел.
Со временем вы можете добавить любой «новый» элемент затрат без необходимости создания новой таблицы или изменения структуры базы данных.
Если ваш дизайн требует «изменения» в структуре таблицы для каждой новой «вещи», которую вы вводите, тогда у вас неправильный дизайн. Можете ли вы представить себе бухгалтерский пакет, который вам нужно «постоянно останавливать» и модифицировать программное обеспечение?
И тогда реальный беспорядок приходит, когда вы пытаетесь создать отчет. Еще раз, отчеты работают только с заранее определенными таблицами — вы можете «переключать» таблицы «на лету» для отчета.
Поэтому любое понятие, которое вы имеете в отношении электронных таблиц и т.д., Должно быть выброшено из вашего ума. Компьютерные информационные системы ПРОСТО НЕ РАБОТАЮТ, ЧТО ПУТЬ И НЕ МОЖЕТ РАБОТАТЬ, ЧТО ПУТЬ!
Формы, отчеты, запрос и даже компьютерный код не могут функционировать на таблицах, которые изменяются для каждой введенной записи — вы ДОЛЖНЫ принять модель данных, которая отражает ваши текущие потребности.
Эта модель данных, если она сделана правильно, может использоваться ТОЛЬКО для очень сложных систем учета, ERP-систем или даже веб-магазина, у которого есть 1000 или даже миллионы различных продуктов. Такие модели данных разрабатываются первыми, а затем формы и пользовательский интерфейс, отчеты и т.д. Созданы.
То же самое и для калькуляции затрат на работу. У вас могут быть жидкости, затраты на рабочую силу, обои, используемые в ногах, краска, используемая в галлонах, и плитки, используемые в метрах. Таким образом, как система счетов, системы калькуляции затрат могут обрабатывать «разные» виды затрат, и никаких изменений таблицы не требуется.
В приведенном выше примере у нас есть счет-фактура, подобный настройке, и мы можем добавить столько вещей, которые мы хотим совершить в бронировании тура. (Билеты, куртки, книги, коньки, шины, краски, сиденья и окна — все, что мы хотим — мы просто добавляем новую строку для всех, что нам нужно.
Подумайте о каком-либо программном обеспечении «счет-фактура», которое вы использовали, — вы можете добавить столько элементов, которые вы хотите к этому счету.
Реляционная база данных НЕ поддерживает всю новую таблицу для каждой новой «стоимости», которую вы хотите построить. Базы просто не работают таким образом. Таким образом, вы только (пока) действительно нуждаетесь в главной таблице актива, а затем в детской таблице «затраты».
Вы не можете создать целую новую таблицу «затрат» для каждого актива, поскольку встроенные инструменты почти в любой базе данных не поддерживают и не работают с созданием новой таблицы для каждого нового набора данных, которые вы создаете.
Таким образом, КАЖДЫЙ один пример в Интернете, каждой книге и каждой статье, в которой объясняется, как связать основную таблицу с дочерней таблицей, на самом деле на 100% уместен и как вам нужно подойти к этой проблеме.
Реляционные базы данных не поддерживают создание целой новой таблицы для «одного» нового набора данных, поскольку такой подход не может использоваться в отчетах, и язык запросов не поддерживает такой дизайн.
Целостность данных
Референтная целостность — это система правил, которую использует Access, чтобы убедиться, что связи между записями в соответствующих таблицах действительны и что пользователь не удалит или не изменит случайно связанные с ними данные. Вы можете установить целостность данных, когда все следующие условия верны:
- Совпадающие поля из основной таблицы являются первичным ключом или имеет уникальный индекс.
- Связанные поля имеют один и тот же тип данных. Из этого правила есть два исключения: Поле AutoNumber может быть связано с полем Number, которое имеет настройку свойства Long Integer, а поле AutoNumber, которое имеет настройку свойства Replication ID, может быть связано с полем Number, которое имеет настройку свойства Replication ID.
- Обе таблицы относятся к одной и той же базе данных Access. Если таблицы являются связанными таблицами, они должны быть таблицами в формате Access, и необходимо открыть базу данных, в которой они хранятся, чтобы установить целостность данных. Референтная целостность не может быть применена для связанных таблиц из баз данных в других форматах.
При использовании целостности данных применяются следующие правила:
- Невозможно ввести значение во внешнем ключевом поле связанной таблицы, которое не существует в первичном ключе первичной таблицы. Тем не менее, можно ввести значение Null во внешнем ключе. Это указывает на то, что записи не связаны между собой. Например, невозможно иметь заказ, который назначается клиенту, который не существует. Тем не менее, можно иметь заказ, который не назначается никому, введя значение Null в поле CustomerID.
- Вы не можете удалить запись из основной таблицы, если в соответствующей таблице существуют соответствующие записи. Например, вы не можете удалить запись сотрудника из таблицы «Сотрудники», если в таблице «Заказы» есть заказы, назначенные сотруднику.
- Невозможно изменить основное ключевое значение в основной таблице, если эта запись имеет соответствующие записи. Например, вы не можете изменить идентификатор сотрудника в таблице «Сотрудники», если в таблице «Заказы» есть заказы, назначенные этому сотруднику.
Вывод
Итак, с уверенностью можно заявить, что создание базы данных в MS Access 2007 мы разобрали полностью. Теперь вам известны все основные функции СУБД: от создания и заполнения таблиц до написания запросов на выборку и создания отчетов. Этих знаний хватит для выполнения несложных лабораторных работ в рамках университетской программы или использования в небольших личных проектах.
Для проектирования более сложных БД необходимо разбираться в объектно-ориентированном программировании и изучать такие СУБД, как MS SQL и MySQL. А для тех, кому нужна практика составления запросов, рекомендую посетить сайт SQL-EX, где вы найдете множество практических занимательных задачек.
Удачи в освоении нового материала и если есть какие-либо вопросы – милости прошу в комментарии!