- Лабораторная работа № 24
- Тема: Создание связей в базе данных.
- Цель работы: изучение приемов установки связей между таблицами базы данных.
- Оборудование: ПК, Windows XP Professional, MS Access 2007.
- Ход работы
- 1 В соответствие с заданием создать и заполнить таблицы БД «Фирма», установить связи между ними.
- 2 Продемонстрировать на компьютере заполненные таблицы, схему данных.
- 3 Ответить на контрольные вопросы.
- 4 Сделать вывод о проделанной работе.
- Порядок выполнения:
1. Запустите Microsoft Access.
2. Создайте базу данных Фирма. Сотрудники данной организации работают с клиентами и выполняют их заказы.
Для этого запустите Access, создайте новую базу данных, задайте имя базы данных Фирма, выберите место сохранения Вашей базы данных (диск Х:) и нажмите кнопку Создать. (подробный порядок действий описан в лабораторной работе № 23)
3. Создайте в режиме Конструктор 3 таблицы: Сотрудники, Клиенты и Заказы. Если все сведения поместить в одной таблице, то она станет очень неудобной для работы. В ней начнутся повторы данных.
Всякий раз, когда сотрудник Иванов будет работать с какой-либо фирмой, придется прописывать данные о сотруднике и клиенте заново, в результате чего можно допустить множество ошибок.
Чтобы уменьшить число ошибок, можно исходную таблицу разбить на несколько таблиц и установить связи между ними. Это будет более рационально.
Таблица Сотрудники
Таблица Клиенты
Таблица Заказы
4. Установите ключевые поля.
Отдельные таблицы, содержащие информацию по определенной теме, необходимо связать в единую структуру базы данных. Для связывания таблиц следует задать ключевые поля.
Ключ состоит из одного или нескольких полей, значения которых однозначно определяют каждую запись в таблице. Наиболее подходящим в качестве ключевого поля является Счетчик, так как значения в данном поле являются уникальными (т. е. исключают повторы).
При создании таблиц в режиме конструктора ключевое поле устанавливается автоматически. Откройте созданные Вами таблицы в режиме Конструктор и проверьте установленные ключевые поля:
1) в таблице Сотрудники ключевое поле Код сотрудника
2) в таблице Клиенты ключевое поле Код клиента
3) в таблице Заказы ключевое поле Код заказа
Если значение Ключевых полей не задалось автоматически, то задайте их вручную. Для этого откройте таблицу Сотрудники в режиме Конструктора.
Нажмите правой кнопкой мыши на поле Код сотрудника и в появившемся контекстном меню выберите команду Ключевое поле. Если в таблице необходимо установить несколько ключевых полей, то выделить их можно, удерживая клавишу Ctrl.
Для таблицы Клиенты установите ключевое поле Код клиента, а для таблицы Заказы — Код заказа.
5. Создайте раскрывающиеся списки с помощью Мастера подстановок.
Таблица Заказы содержит поля Код сотрудника и Код клиента. При их заполнении могут возникнуть некоторые трудности, так как не всегда удается запомнить все предприятия, с которыми работает фирма, и всех сотрудников с номером кода. Для удобства можно создать раскрывающиеся списки с помощью Мастера подстановок.
Откройте таблицу Заказы в режиме Конструктора. Для поля Код клиента выберите тип данных Мастер подстановок.
В появившемся окне выберите команду Объект «столбец подстановки» будет использовать значения из таблицы или запроса и щелкните на кнопке Далее.
В списке таблиц выберите таблицу Клиенты и щелкните на кнопке Далее.
В списке Доступные поля выберите поле Код клиента и щелкните на кнопке со стрелкой >>, чтобы ввести поле в список Выбранные поля. Таким же образом добавьте поле Название компании и щелкните на кнопке Далее.
- Выберите порядок сортировки списка по полю Название компании и нажмите кнопку Далее.
- В следующем диалоговом окне задайте необходимую ширину столбцов раскрывающегося списка, установите флажок Скрыть ключевой столбец и нажмите кнопку Далее.
- На последнем шаге Мастера подстановок замените при необходимости надпись для поля подстановок и щелкните на кнопке Готово.
- Сохраните полученный результат.
6. Аналогичным образом создайте раскрывающийся список для поля Код сотрудника.
- Теперь в списке таблиц выберите таблицу Сотрудники
- В списке Доступные поля выберите поля Код сотрудника, Фамилия, Имя.
- Порядок сортировки списка выберите по полю Фамилия.
- Все остальные действия проводятся аналогично пункту 6.
7. Создайте связей между таблицами.
Существует несколько типов отношений между таблицами:
— при отношении «один-к-одному» каждой записи ключевого поля в первой таблице соответствует только одна запись в связанном поле другой таблицы, и наоборот. Отношения такого типа используются не очень часто. Иногда их можно использовать для разделения таблиц, содержащих много полей, для отделения части таблицы по соображениям безопасности;
- — при отношении «один-к-многим» каждой записи в первой таблице соответствует несколько записей во второй, но запись во второй таблице не может иметь более одной связанной записи в первой таблице;
- — при отношении «многие-к-многим» одной записи в первой таблице могут соответствовать несколько записей во второй таблице, а одной записи во второй таблице могут соответствовать несколько записей в первой.
- Закройте все открытые таблицы, так как создавать или изменять связи между открытыми таблицами нельзя.
- Выполните команду вкладки Лента Работа с базами данных кнопка Схема данных
Если ранее никаких связей между таблицами базы не было, то при открытии окна Схема данных одновременно открывается окно Добавление таблицы, в котором выбираются нужные таблицы. Для добавления в схему данных новой таблицы необходимо щелкнуть правой кнопкой мыши на схеме данных и в контекстном меню выбрать пункт Добавить таблицу.
- Если связи между таблицами уже были заданы, то откроется окно Схема данных, на котором будут отображены таблицы и связи между ними.
- Отредактируйте связь между таблицами Сотрудники и Заказы, для этого щелкните правой кнопкой мыши (ПКМ) на линию связи и в открышемся контекстном меню выберите команду Изменить связь.
Откроется диалоговое окно Изменение связей, в котором включите флажок Обеспечение целостности данных. Это позволит предотвратить случаи удаления записей из одной таблицы, при которых связанные с ними данные других таблиц останутся без связи. Обратите внимение на тип отношений: один-ко-многим.
Флажки Каскадное обновление связанных полей и Каскадное удаление связанных записей обеспечивают одновременное обновление или удаление данных во всех подчиненных таблицах при их изменении в главной таблице.Параметры связи можно изменить, нажав на кнопку Объединение. После установления всех необходимых параметров нажмите кнопку ОК.
- Аналогично измените связь между таблицами Клиенты и Заказы.
- В результате должна получиться схема данных, представленная на рисунке.
На схеме данных связи отображаются в виде соединительных линий со специальными значками около таблиц. Связь «один-к-многим» помечается «1» вблизи главной таблицы (имеющей первичный ключ) и «∞» вблизи подчиненной таблицы (имеющей внешний ключ).
Связь «один-к-одному» помечается двумя «1» (оба поля таблиц имеют первичные ключи). Неопределенная связь не имеет никаких знаков.
Если установлено объединение, то его направление отмечается стрелкой на конце соединительной линии (ни одно из объединенных полей не является ключевым и не имеет уникального индекса).
7. В таблицу Сотрудники внесите данные о 7 работниках.
8. В таблицу Клиенты внесите данные о 7 предприятиях, с которыми работает данная фирма.
9. В таблице Заказы оформите 5 заявок, поступивших на фирму.
10. Покажите работу преподавателю.
11. Ответьте на контрольные вопросы.
- Контрольные вопросы:
- 1 С помощью чего можно создавать таблицы?
- 2 Что такое ключевое поле?
- 3 Как установить несколько ключевых полей?
- 4 Как установить связи между таблицами?
- 5 Какие существуют отношения между таблицами?
- 6 Что означают на схеме данных «1» и «∞»?
- 7 Зачем нужен Мастер подстановок?
- 8 Для чего нужен механизм запросов?
- Методические указания к лабораторной работе № 24 Создание связей в базе данных
Источник: http://infofiz.ru/index.php/mirtehn/infstud/1kurs/288-lr24inf
Как сделать поле уникальным access?
Реляционная база данных, созданная в соответствии с проектом канонической модели данных предметной области, состоит из нормализованных таблиц, связанных одно-многозначными отношениями.
В такой базе данных обеспечивается отсутствие дублирования описательных данных, их однократный ввод, поддержание целостности данных средствами системы.
Связи между таблицами позволяют выполнить объединение данных различных таблиц, необходимое для решения большинства задач ввода, просмотра и корректировки данных, получения информации по запросам и вывода отчетов.
Связи между таблицами устанавливаются в соответствии с проектом логической структуры базы данных и запоминаются в схеме данных Access.
Схема данных в Access является не только средством графического отображения логической структуры базы данных, она активно используется системой в процессе обработки данных.
Создание схемы данных позволяет упростить конструирование многотабличных форм, запросов, отчетов, а также обеспечить поддержание целостности взаимосвязанных данных при вводе и корректировке данных в таблицах.
Создание схемы данных
Создание схемы данных начинается с выполнения команды Схема данных (Relationships) в группе Отношения (Relationships) на вкладке ленты Работа с базами данных (Database Tools).
В результате выполнения этой команды открывается окно схемы данных и диалоговое окно Добавление таблицы (Show Table), в котором осуществляется выбор таблиц, включаемых в схему (см. рис. 3.48).
Диалоговое окно Добавление таблицы откроется автоматически, если в базе данных еще не определена ни одна связь.
Если окно не открылось, на ленте Работа со связями | Конструктор (Relationship Tools | Design) в группе Связи (Relationships) нажмите кнопку Отобразить таблицу (Show Table).
Включение таблиц в схему данных
В окне Добавление таблицы (Show Table) (рис. 3.48) отображены все таблицы и запросы, содержащиеся в базе данных.
Выберем вкладку Таблицы (Tables) и с помощью кнопки Добавить (Add) разместим в окне Схема данных (Relationships) все ранее созданные таблицы базы данных Поставка товаров, отображенные в окне Добавление таблицы (Show Table).
Затем нажмем кнопку Закрыть (Close). В результате в окне Схема данных (Relationships) таблицы базы будут представлены окнами со списками своих полей и выделенными жирным шрифтом ключами (см. рис. 3.52).
Создание связей между таблицами схемы данных
При создании связей в схеме данных используется проект логической структуры реляционной базы данных, в котором показаны все одно-многозначные связи таблиц. Реализуются связи с помощью добавления в связанные таблицы общих полей, называемых ключом связи. При одно-многозначных отношениях между таблицами ключом связи является ключ главной таблицы (простой или составной).
В подчиненной таблице он может быть частью уникального ключа или вовсе не входить в состав ключа таблицы. Одно-многозначные связи являются основными в реляционных базах данных. Одно-однозначные связи используются, как правило, при необходимости распределять большое количество полей, определяемых одним и тем же ключом, по разным таблицам, имеющим разный регламент обслуживания.
Создание связей по простому ключу
Установим связь между таблицами ПОКУПАТЕЛЬ и ДОГОВОР, которые находятся в отношении «один-ко-многим». Устанавливая связи между парой таблиц, находящихся в отношении типа 1 : M, выделим в главной таблице ПОКУПАТЕЛЬ ключевое поле КОД_ПОК, по которому устанавливается связь. Далее при нажатой кнопке мыши перетащим его в соответствующее поле подчиненной таблицы ДОГОВОР.
Поскольку поле связи является уникальным ключом в главной таблице связи, а в подчиненной таблице связи не является ключевым, схема данных в Access выявляет отношение «один-ко-многим» между записями этих таблиц. Значение «один-ко-многим» (One-To-Many) отобразится в окне Изменение связей (Edit Relationships) в строке Тип отношения (Relationship Type) (рис. 3.49).
ЗАМЕЧАНИЕ Если поле связи является уникальным ключом в обеих связываемых таблицах, схема данных в Access выявляет отношение «один-к-одному«. Если для связи таблиц вместо ключевого поля главной таблицы используется некоторый уникальный индекс, система также констатирует отношение таблиц как 1 : М или 1 : 1.
Определение связей по составному ключу
Определим связи между таблицами НАКЛАДНАЯ ОТГРУЗКА, которые связаны по составному ключу НОМ_НАКЛ + КОД_СК. Для этого в главной таблице НАКЛАДНАЯ выделим оба этих поля, нажав клавишу , и перетащим их в подчиненную таблицу ОТГРУЗКА.
В окне Изменение связей (Edit Relationships) (рис. 3.50) для каждого поля составного ключа главной таблицы НАКЛАДНАЯ, названной Таблица/запрос (Table/Query), выберем соответствующее поле подчиненной таблицы ОТГРУЗКА, названной Связанная таблица/запрос (Related Table/Query).
Каскадное обновление и удаление связанных записей
Если для выбранной связи обеспечивается поддержание целостности, можно задать режим каскадного удаления связанных записей и режим каскадного обновления связанных полей.
Такие параметры делают возможным в главной таблице, соответственно, удаление записей и изменение значения в ключевом поле, т. к.
при этих параметрах система автоматически выполнит необходимые изменения в подчиненных таблицах, обеспечив сохранение свойств целостности базы данных.
В режиме каскадного удаления связанных записей при удалении записи из главной таблицы будут автоматически удаляться все связанные записи в подчиненных таблицах. При удалении записи из главной таблицы выполняется каскадное удаление подчиненных записей на всех уровнях, если этот режим задан на каждом уровне.
В режиме каскадного обновления связанных полей при изменении значения ключевого поля в записи главной таблицы Access автоматически изменит значения в соответствующем поле в подчиненных записях.
Установить в окне Изменение связей (Edit Relationships) (см. рис. 3.49) флажки каскадное обновление связанных полей (Cascade Update Related Fields) и каскадное удаление связанных записей (Cascade Delete Related Records) можно только после задания параметра обеспечения целостности данных.
После создания связей изображения таблиц могут перемещаться в пределах рабочего пространства окна схемы данных. Перемещения и изменения размеров окон со списками полей таблиц в окне схемы данных осуществляются принятыми в Windows способами.
- Заметим, если каскадное удаление не разрешено, невозможно удалить запись в главной таблице, если имеются связанные с ней записи в подчиненной. Смотрим видео:
- Вот основное, что мы хотели рассказать на тему «Схема данных в Access».
- Дальше будем изучать запросы в Access.
Определение полей в окне конструктора Таблицы
С целью определения полей в Таблице, в конструкторе нам необходимо задать следующие поля:
- Тип данных
- Имя поля
- Свойства поля
- Описание в виде краткого комментария.
Есть вкладка Общие, где расположены строки свойств поля, включая значение по умолчанию, максимально возможный размер, подпись – она показывается в заголовке столбца и т.д.
Подстановка – это вкладка, где можно в появляющемся списке свойства Тип элемента управления сделать выбор одного из представленных значений: Поле со списком, Список либо Поле.
Тип данных и имя поля
Каждое имеющееся в таблице поле должно названо своим уникальным именем.
Это имя должно соответствовать соглашениям об именах объектов, которые действуют в Access, а именно представлять собой комбинацию из букв, пробелов, цифр, а также специальных знаков, исключая точку (.), квадратные скобки (), надстрочный (‘) и восклицательный (!) знаки.
Нельзя, чтобы имя начиналось с пробела. Кроме того, оно не может содержать в себе управляющие символы, имеющие коды ASCII от 00 до 31. Наибольшая возможная длина имени равна 64 символам.
Тип данных представляет собой значения, которые необходимо вводить в поле, а также операции, которые этими значениями будут выполняться.
В Access можно использовать 9 типов данных. Чтобы посмотреть на список возможных типов, следует нажать на кнопку «Список». Рассмотрим все 9 типов подробнее.
Текстовый
Он является типом по умолчанию. Представляет собой цифры или текст, которые не принимают участие в расчетах. Максимально возможное количество символов в поле составляет 255 знаков. Это значение можно установить в свойстве Размер поля. В части поля, которая не используется, пустые символы не сохраняются.
Поле MEMO
Поле мемо в access это большой текст, к примеру примечание или описание. Может составлять до 65 535 знаков.
Числовой
Числа, которые применяются при математических вычислениях. Длина и тип могут быть определены в следующем свойстве: Размер поля. Само поле может быть следующих размеров: 1, 2, 4 или 8 байт. Возможет также вариант 16 байт, но лишь в том случае, если в свойстве Размер поля выбрать значение Код репликации.
Денежный
Представляют собой числовые данные и денежные значения, которые применяются в расчетах. Составляют до 15 знаков в целой части и до 4 – в дробной. Размер поля составляет 8 байт.
Во время обработки числовых данных вычисления производятся с фиксированной точкой (это быстрее, чем для полей с плавающей точкой). Также предотвращается возможность округления.
Принимая во внимание данные обстоятельства, рекомендуется к полям, где планируется хранить числовые данные с названной точностью, применять денежный тип.
Дата/время
Это значением времени или даты. Года при этом могут быть выбраны в промежутке от 100 до 9999. Длина поля составляет 8 байт.
Счетчик
Здесь для каждой новой записи в автоматическом режиме вводятся случайные или уникальные целые числа, которые по очереди возрастают на 1. Невозможно удалить или как-то исправить значения представленного поля.
Для длинного целого размер поля составляет 4 байта, а для кода репликации он равен 16 байт. В поле по умолчанию вводятся последовательные значения. При этом таблица может иметь лишь одно поле подобного типа.
Применяется для выявления уникального ключа таблицы.
Логический
Представляет собой логические данные, имеющие одно из возможных значений: Да/Нет, Вкл./Выкл., Истина/Ложь. Размер данного поля составляет 1 бит.
Поле объекта OLE
Какой-либо объект (к примеру, аудиозапись, рисунок, документ Word, таблица Excel или иные данные в двоичном формате), связанный либо внедренный в таблицу. Размер поля составляет не более 1 Гбайта, но при этом он также ограничивается имеющимся размером диска.
Гиперссылка
Является адресом гиперссылки, в который входит путь в локальной сети на жестком диске к определенному файлу. Также может быть адресом страницы в intranet (URL) или Internet.
Он может представлять собой текст, который вводится в элементе управления или в поле, дополнительный адрес. При нажатии мышью на поле гиперссылки, осуществляется переход на конкретный документ, объект, web-страницу или иное место.
Каждая из частей гиперссылки не может быть больше 2048 символов. Для полей типа Гиперссылка, MEMO и OLE индексирование и сортировка невозможны.
Мастер подстановки
При выборе данного типа активизируются мастера подстановок. Мастер подстановок в access 2007 строит список значений для поля, основываясь на полях из другой таблицы.
В такое поле значение будет вводиться из списка. Таким образом, по факту, тип данных этого поля определяется за счет типа данных поля списка.
Также может быть произведено определения поля, имеющего список постоянных значений.
Какое поле можно считать уникальным в Access?
Гость 14.05.2018 21:08
в Microsoft Office Access уникальным можно считать поле, в котором не повторяются данные. Его содержимое присваивает каждой записи единственный номер, который больше нигде не повторяется, следовательно в текущей базе данных каждая запись становится уникальной, что означает, что в текущей базе данных отсутствуют одинаковые записи.
в Microsoft Office Access уникальным можно считать поле,в котором не повторяются данные. Его содержимое присваивает каждой записи единственный номер, который больше нигде не повторяется, следовательно в текущей базе данных каждая запись становится уникальной, что означает, что в текущей базе данных отсутствуют одинаковые записи.Уникальное поле часто используется как ключевое.
Другие вопросы посетителей из раздела «Бизнес Microsoft Access»:
- Гость: «Как создать базу данных в Access?»
- Гость: «Какие существуют типы запросов в базе данных Access?»
- Гость: «Что такое пересечение строки и столбца в Access?»
- Гость: «Почему открывается для чтения Access?»
- Гость: «Почему открывается для чтения Access?»
- Гость: «Что такое запись в Access?»
- Гость: «Как сохраняются таблицы в Access?»
Гость: «Почему Access лучше Excel? Почему лучше других субд?»
- Гость: «Какие существуют типы запросов в базе данных Access?»
- Гость: «Как сохранить Access?»
- Гость: «Почему открывается для чтения Access?»
- Гость: «Как создать базу данных в Access?»
- Гость: «Как подключить Access к sql?»
- Гость: «Как перевести Access в html?»
Гость: «Как найти на компьютере Access? Куда устанавливается?»
Гость: «Какое количество записей в таблице максимально в Access? Сколько полей?»
Источник: http://word-office.ru/kak-sdelat-pole-unikal-nym-access.html
Создание баз данных Access: Учебное пособие, страница 2
Модуль — объект, содержащий программы на языке Visual Basic для
приложений.
С помощью макросов и модулей можно
изменять ход выполнения приложения, открывать, фильтровать и изменять данные в
формах и отчетах, выполнять запросы и создавать новые таблицы.
Все объекты объединены в единую
реляционную БД и хранятся в одном файле с расширением .mdb. Данные из одной таблицы можно просматривать в разных
объектах. При работе с несколькими таблицами устанавливаются связи между таблицами
и данные, содержащиеся в них, можно отображать в различных объектах БД.
Проектирование базы данных
Основой любой реляционной БД являются
таблицы. Разработка таблиц является одним из наиболее сложных этапов в
проектировании БД. Грамотно спроектированные таблицы являются основой для
создания работоспособной и эффективной БД.
Понятие таблицы в Access полностью соответствует аналогичному
понятию реляционной модели данных. Любая таблица реляционной БД состоит из строк
(называемых также записями) и столбцов (называемых
также полями).
Строки таблицы содержат сведения об
однотипных объектах — документах, людях, предметах. На пересечении столбца и
строки находится конкретное значение, характеризующее объект.
Можно сформулировать ряд основных
требований, которым должны удовлетворять таблицы.
1. Информация в таблице не должна
дублироваться, т.е. в таблице не должно существовать двух записей с полностью
совпадающим набором значений ее полей.
2. На пересечении любого столбца и
любой строки должно находиться одно
значение.
3. Не рекомендуется включать в
таблицу данные, которые являются результатом вычислений.
4. Значения данных в одном и том же
столбце должны принадлежать к одному и тому же типу, доступному для
использования в данной СУБД.
5. Каждое поле должно иметь уникальное
имя.
6. Каждая таблица должна иметь
первичный ключ.
7. Таблицы БД должны быть связаны
через внешние ключи.
Каждая таблица должна содержать поле
(или набор из нескольких полей), значения в котором однозначно идентифицируют
каждую запись в таблице. Такое поле (или набор полей) называется ключевым полем
таблицы или первичным ключом.
Первичный ключ любой таблицы обязан
содержать уникальные непустые значения для каждой записи. Если
для таблицы обозначены ключевые поля, то Access предотвращает дублирование или ввод пустых значений в ключевое поле.
В Access можно выделить три типа ключевых полей: простой ключ, составной
ключ и поле счетчика.
Если поле содержит уникальные значения,
такие как коды или инвентарные номера, то это поле можно определить как простой
первичный ключ. Если в этом поле появятся повторяющиеся или пустые
значения, Access выведет сообщение об ошибке.
В случаях, когда невозможно
гарантировать уникальность значений ни одного из полей, можно создать ключ,
состоящий из нескольких полей — составной первичный ключ.
Для
составного ключа существенным может оказаться порядок образующих ключ полей.
Не
рекомендуется определять ключ по полям Имена и Фамилии, поскольку нельзя исключить
повторения этой пары значений для разных людей.
Составной ключ необходим для таблицы,
используемой для связывания двух таблиц в отношении «многие — ко — многим»
Обычно такой ключ состоит из ключевых полей связываемых таблиц.
Если для какой-либо таблицы не удалось
определить простой первичный ключ или найти подходящий набор полей для
составного ключа, можно добавить в таблицу поле счетчика и
сделать его ключевым.
При создании каждой новой записи Access генерирует уникальный номер записи,
называемый счетчиком.
Указание такого поля в качестве ключевого
является наиболее простым способом создания ключевых полей.
Если до сохранения созданной таблицы
ключевые поля не были определены, то при сохранении будет выдано предложение о
создании системой ключевого поля. При ответе Да будет создано ключевое
поле счетчика.
Сила реляционных баз данных, таких как
БД Microsoft Access, заключается в том, что они могут быстро найти и связать данные
из разных таблиц при помощи запросов, форм и отчетов.
Таблицы реляционных БД
связываются через одинаковые значения одноименных полей, содержащихся в
связываемых таблицах. Такие поля называются внешним ключом для
этих таблиц.
Все таблицы БД Access должны
быть связаны с помощью внешних ключей.
Создание файла базы данных
При запуске Access открывается диалоговое окно — Окно запуска, в котором
предлагается создать новую БД, запустить Мастера БД или открыть существующую
БД.
В Access поддерживаются два способа создания БД.
Можно создать пустой файл БД, а затем разрабатывать таблицы, формы, отчеты и
другие объекты, добавляя их в БД.
Такой способ является профессиональным и
наиболее гибким, но требует отдельного определения каждого элемента БД. При
выборе такого способа создания БД надо в окне запуска установить флажок Новая
база данных.
В раскрывшемся окне Файл новой базы данных следует
выбрать каталог и задать имя создаваемой БД. Раскроется Окно базы данных.
Вниманию студентов! Студенческие БД должны создаваться в
директории Student/GRNNN.
Для создания БД можно воспользоваться Мастером
базы данных, установив в окне запуска флажок Мастера, страницы и
проекты. Мастер создает БД, содержащую все необходимые объекты, и
остается только ввести в таблицы данные.
Это простейший способ начального
создания БД, но в этом случае придется пользоваться шаблоном, предлагающим
определенную структуру БД. Мастера баз данных нельзя использовать для
добавления новых таблиц, форм, отчетов в уже существующую БД.
Флажок Открыть базу данных окна
запуска позволяет открыть ранее
созданную БД, выбрав ее имя из
предлагаемого списка. При выборе Другие файлы предоставляется
каталог, из которого можно открыть нужную БД.
Источник: https://vunivere.ru/work15772/page2
Ключевое поле таблицы MS Access, его назначение, способы задания
База данных может состоять из нескольких таблиц, содержащих различную информацию. Эти таблицы связаны между собой каким-либо определённым полем, называемым ключевым полем.
Ключевое поле позволяет однозначно идентифицировать каждую запись таблицы, т.е. каждое значение этого поля отличает одну запись от другой.
Для Access обязательным является определение ключевого поля для таблицы. Для его определения достаточно выделить поле и выбрать команду Ключевое поле меню Правка.
Если требуется определить составной ключ, но необходимо выделить требуемые поля при нажатой клавише Ctrl, а затем выбрать командуКлючевое поле. При определении ключевого поля автоматически создается уникальный индекс, определяющий физический порядок записей в таблице.
Этот индекс является первичным индексом для таблицы и имеет зарезервированное имяPrimaryKey. Для составных ключей существенным может оказаться порядок образующих ключ полей, так как упорядочение записей будет проводиться вначале по первому полю, затем по второму и т.д.
Для внешних полей при создании связи также происходит автоматическое создание индекса (в данном случае вторичного).
Связи между таблицами дают возможность совместно использовать данные из различных таблиц. Например, одна таблица содержит информацию о профессиональной деятельности сотрудников предприятия (таблица Сотрудник), другая таблица — информацию об их месте жительства (таблица Адрес).
Допустим, на основании этих двух таблиц необходимо получить результирующую таблицу, содержащую поля Фамилия и инициалы, Должность и Адрес проживания. Причём полеФамилия и инициалы может быть в обеих таблицах, поле Должность — в таблице Сотрудник, а поле Адрес проживания — в таблице Адрес.
Ни одно из перечисленных полей не может являться ключевым, т. к. оно однозначно не определяет каждую запись.
В качестве ключевого поля в этих таблицах можно использовать поле Код типаСчётчик, автоматически формируемое Access при создании структуры таблицы, или в каждой таблице задать поле Табельный номер, по которому затем связать таблицы. Таблицы при этом будут связаны так называемым реляционным отношением. Последовательность действий пользователя при создании таблиц Сотрудник и Адрес.
Виды индексированных полей в MS Access, примеры
Свойство «Индексированное поле» (Indexed) определяет индекс, создаваемый по одному полю. Индекс ускоряет выполнение запросов, в которых используются индексированные поля, и операции сортировки и группировки. Например, если часто выполняется поиск по полю «Фамилия» в таблице «Сотрудники», следует создать индекс для этого поля.
Значение данного свойства можно задать только в окне свойств в режиме конструктора таблицы. Индекс по одному полю может быть определен путем установки свойства Индексированное поле (Indexed). Кроме того, можно выбрать команду Индексы в меню Вид или нажать кнопку «Индексы» на панели инструментов. Будет открыто окно индексов.
Вкладка Подстановка на бланке свойств поля используется для указания элемента управления, используемого по умолчанию для отображения поля. После выбора элемента управления на вкладке Подстановка выводятся все дополнительные свойства, необходимые для определения конфигурации элемента управления.
MicrosoftAccess задает значения этих свойств автоматически, если в режиме конструктора таблицы для поля в столбце «Тип данных» выбирается «Мастер подстановок».
Значения данного свойства и относящиеся к нему типы элементов управления влияют на отображение поля как в режиме таблицы, так и в режиме формы.
Рассмотрим некоторые из этих дополнительных свойств:
Свойство «Тип элемента управления»(DisplayControl) содержит раскрывающийся список типов элементов управления, доступных для выбранного поля. Для полей с типами «Текстовый» или «Числовой» для данного свойства возможен выбор поля, списка или поля со списком. Для логических полей возможен выбор поля, поля со списком или флажка.
Свойства «Тип источника строк» (RowSourceType), «Источник строк» (RowSource) определят источник данных для списка или поля со списком.
Например, для того чтобы вывести в строках списка данные из запроса «Список клиентов», следует выбрать для свойства Тип источника строк значение «Таблица/запрос» и указать в свойстве Источник строк имя запроса «Список клиентов».
Если список должен содержать небольшое число значений, которые не должны изменяться, можно выбрать в свойстве Тип источника строк (RowSourceType) «Список значений» и ввести образующие список значения в ячейку свойства Источник строк (RowSource). Элементы списка отделяются друг от друга точкой с запятой.
Источник: https://studopedia.net/2_47261_klyuchevoe-pole-tablitsi-MS-Access-ego-naznachenie-sposobi-zadaniya.html
Поля уникальные и ключевые
Создание базы данных всегда начинается с разработки структуры ее таблиц. Структура должна быть такой, чтобы при работе с базой требовалось вводить в нее как можно меньше данных. Если ввод каких-то данных приходится повторять неоднократно, базу делают из нескольких связанных таблиц. Структуру каждой таблицы разрабатывают отдельно.
Для того чтобы связи между таблицами работали надежно, и по записи из одной таблицы можно было однозначно найти записи в другой таблице, надо предусмотреть в таблице уникальные поля.
Уникальное поле — это поле, значения в котором не могут повторяться.
Если из таблицы Прокат известно, что клиент Новиков просрочил возврат взятого диска, то он должен уплатить штраф. Но в таблице Клиенты фирмы может быть несколько разных Новиковых, и компьютер не разберется, кто же из них должен платить штраф.
Это означает, что поле Фамилия не является уникальным и потому его нельзя использовать для связи между таблицами.
Поле номера телефона — более удачный кандидат на звание уникального поля, но, как вы понимаете, и одним телефоном могут пользоваться несколько разных людей.
Если ни одно поле таблицы не приемлемо в качестве уникального, его можно создать искусственно. В нашем примере в таблице Клиенты фирмы создано поле Шифр, которое образовано первыми тремя буквами фамилии и последними двумя цифрами номера телефона. Его и использовали для связи между таблицами.
Скорее всего, поле Шифр окажется уникальным, и проблем со связями между таблицами не возникнет, но было бы неплохо, если бы компьютер мог просигнализировать в том случае, если вдруг записи в этом поле повторятся. Для этого существует понятие ключевое поле.
При создании структуры таблиц одно поле (или одну комбинацию полей) можно назначить ключевым. С ключевыми полями компьютер работает особо. Он проверяет их уникальность и быстрее выполняет сортировку по таким полям. Ключевое поле — очевидный кандидат для создания связей.
Иногда ключевое поле называют первичным ключом.
Если при создании таблицы автор не задал ключевое поле, система управления базой данных вежливо напомнит о том, что поле первичного ключа таблице не помешает
В качестве первичного ключа в таблицах часто используют поле, имеющее тип Счетчик. Ввести два одинаковых значения в такое поле нельзя по определению, поскольку приращение значения поля производится автоматически.
Структура связей между таблицами называется схемой данных
Лекция 3 СУБД Access
Системы управления базами данных (СУБД) — это программные средства, с помощью которых можно создавать базы данных, наполнять их и работать с ними. В мире существует немало различных систем управления базами данных.
Многие из них на самом деле являются не законченными продуктами, а специализированными языками программирования, с помощью которых каждый, освоивший данный язык, может сам создавать такие структуры, какие ему удобны, и вводить в них необходимые элементы управления.
К подобным языкам относятся Clipper, Paradox, FoxPro и другие.
Необходимость программировать всегда сдерживала широкое внедрение баз данных в малом бизнесе. Крупные предприятия могли позволить себе сделать заказ на программирование специализированной системы «под себя». Малым предприятиям зачастую не по силам было не только решить, но даже и правильно сформулировать эту задачу.
Положение изменилось с появлением в составе пакета Microsoft Office системы управления базами данных Access. Ранние версии этой программы имели номера Access 2.0 и Access 95.
С помощью Access обычные пользователи получили удобное средство для создания и эксплуатации достаточно мощных баз данных без необходимости что-либо программировать. В то же время работа с Access не исключает возможности программирования. При желании систему можно развивать и настраивать собственными силами. Для этого надо владеть основами программирования на языке Visual Basic.
Еще одним дополнительным достоинством Access является интегрированность этой программы с Excel, Word и другими программами пакета Office. Данные, созданные в разных приложениях, входящих в этот пакет, легко импортируются и экспортируются из одного приложения в другое.
Объекты Access
Исходное окно Access отличается простотой и лаконичностью. Шесть вкладок этого окна представляют шесть видов объектов, с которыми работает программа.
- Таблицы — основные объекты базы данных. С ними мы уже знакомы. В них хранятся данные. Реляционная база данных может иметь много взаимосвязанных таблиц.
- Запросы — это специальные структуры, предназначенные для обработки данных базы. С помощью запросов данные упорядочивают, фильтруют, отбирают, изменяют, объединяют, то есть обрабатывают.
- Формы — это объекты, с помощью которых в базу вводят новые данные или просматривают имеющиеся.
- Отчеты — это формы «наоборот». С их помощью данные выдают на принтер в удобном и наглядном виде.
- Макросы — это макрокоманды. Если какие-то операции с базой производятся особенно часто, имеет смысл сгруппировать несколько команд в один макрос и назначить его выделенной комбинации клавиш.
- Модули — это программные процедуры, написаны на языке Visual Basic. Если стандартных средств Access не хватает, программист может расширить возможности системы, написав для этого необходимые модули.
Режимы работы с Access
Источник: https://poisk-ru.ru/s54476t1.html
Уникальные идентификаторы в Access
В чём проблема
ms access не предоставляет нам возможности выбора способа уникальной идентификации строк таблиц. Единственный вариант — счётчик. Правда, надо отдать ему должное — в подавляющем большинстве случаев этого достаточно.
Трудности начинаются, когда требуется консолидировать данные из разных баз. Очевидно, что даже использование счётчиков со случайными значениями не гарантирует отсутствия конфликтов. Разрешать такие ситуации не просто, главным образом, из-за того, что в них втягиваются кроме одной главной ещё и масса подчинённых таблиц.
При репликации также возникают подобные трудности. Другой неприятной особенностью счётчика явлается то, что иногда значения всё же дублируются, особенно при отсутствии уникального индекса для такого поля.
Способы решения Традиционный метод генерации уникального значения основывается на создании специальной таблицы с полем, которое изменяется по заданному алгоритму при каждом новом обращении к нему клиентских приложений. С полученным таким образом значением можно провести ещё какие-нибудь манипуляции и записать в ключевое поле.
Недостатком способа является его явная трудоёмкость и сомнительная надежность. В частности, функцию, используемую для получения такого уникального идентификатора, нельзя использовать в свойстве «Значение по умолчанию» поля таблицы. Другим методом является выделение диапазонов счётчика для каждой из баз. Такой способ очень даже не плох.
Недостатком можно считать необходимость заранее планировать количество и размер диапазонов. Иначе, кому-то может просто не хватить номеров. Кроме того, установка начальных значений счётчиков всё же требует дополнительных действий.
Третий подход подразумевает создание выражения, результатом которого было бы значение, подходящее для использования в качестве уникального идентификатора. Также требуется возможность указать это выражение в свойстве «Значение по умолчанию» поля таблицы. Ниже подробно описаны два таких выражения: одно строкового, а другое числового типа.
Идентификатор типа string Получение уникального значения в данном случае основано на генерации строки из 16-ти символов. Первым идёт самый левый из аргументов командной строки. Значение командной строки можно задать не только в параметре запуска /cmd, но и из программы:
application.setoption «command-line arguments», «w»
За ним следуют шестнадцатеричные значения текущей даты и времени. Оставшиеся 7 символов занимает случайное число (также в шестнадцатеричном формате). В итоге получается следующее: id = left(command(), 1) & hex(now() mod 2 ^ 16) & hex((now() — int(now())) * 65535) & hex(rnd() * (2 ^ 28-1)) Здесь: left(command(), 1) любой подходящий символ (должен быть первым в аргументе командной строки) hex(now() mod 2 ^ 16) дата по модулю 65536 (чтобы было не более 4 символов) hex((now() — int(now())) * 65535) время масштабированное до 65535 (чтобы было не более 4 символов) hex(rnd() * (2 ^ 28-1)) случайное число в диапазоне от 0 до 2^28-1 (чтобы было не более 7 символов) При таком способе, количество клиентов в системе ограничено числом допустимых символов для первого (левого) байта в строке. Определённо, таковых найдётся не менее сотни. Если нужно больше, то можно увеличить количество начальных символов. Размер идентификатора при этом, разумеется, тоже возрастёт. Дополнительным плюсом является то, что такой идентификатор можно без всяких переделок использовать в качестве ключа для treeview. Идентификатор типа currency Этот способ создания уникального идентификатора является развитием предыдущего. Он позволяет вдвое уменьшить размер поля и ускорить все операции с ним, так как работа с числами происходит быстрее, чем со строками. Функция получается, правда, более громоздкая: id = iif(val(command()) > 63, 1, -1) * (ccur(abs(val(command()) — 64) * (2 ^ 57) / 10000) + ccur(ccur((int(now()) mod 2 ^ 15) * (2 ^ 42) / 10000) + ccur(((now() — int(now())) * 65535) * (2 ^ 26) / 10000) + ccur(rnd() * (2 ^ 26 — 1)) / 10000)) Аргумент командной строки (то, что стоит за /cmd) должен быть числом в диапазоне от 1 до 127. Именно столько клиентов может быть в системе, использующей данный способ генерации уникального идентификатора. Присвоить этому аргументу значение, например, 127 можно следующей командой:
application.setoption «command-line arguments», «127»
Число типа currency лежит в диапазоне от -(2^63)/10000 до (2^63-1)/10000. Поэтому всё время приходится делить на 10000 и преобразовывать промежуточные результаты к типу currency, поскольку access постоянно норовит использовать double. Если представить значение типа currency как целое число, то использование его разрядов выглядит следующим образом: Биты Использование в идентификаторе Старший 63-й Знак (из аргумента командной строки) 6 (с 57-го по 62-й) Номер (из аргумента командной строки) 15 (с 42-го по 56-й) Дата 16 (с 26-го по 41-й) Время Младшие 26 (с 0-го по 25-й) Случайное число Знак числа (большая или меньшая половина номеров) iif(val(command()) > 63, 1, -1) Номер из меньшей (1…63) или большей (64…127) половин. Чтобы уместиться в тип currency, номер не должен превышать 63. Из-за этого использована функция abs. ccur(abs(val(command()) — 64) * (2 ^ 57) / 10000) Дата. Деление по модулю 2 ^ 15 позволяет втиснуться в отведенные 15 бит, сохраняя уникальность при этом около 80 лет. ccur(ccur((int(now()) mod 2 ^ 15) * (2 ^ 42) / 10000) Время с точностью до ~1,3 секунды. В промежутке от 00:00:00 до 23:59:59 принимает значение от 0 до 0,99999 и масштабируется до нужных 16 бит умножением на 65535. ccur(((now() — int(now())) * 65535) * (2 ^ 26) / 10000) Случайное число в диапазоне от 0 до 2 ^ 26 — 1. Уменьшение диапазона приводит к возникновению повторов. ccur(rnd() * (2 ^ 26 — 1)) / 10000)) Заключение Второй способ, очевидно, является более предпочтительным, так как позволяет создавать более компактные идентификаторы. Кроме того, он позволяет относительно безболезненно перейти от использования счётчиков, так как работа со строками гораздо сильнее отличается от работы с типами long или currency, чем они отличаются друг от друга.
Однако, есть и недостатки. Прежде всего, это ограниченное количество клиентов в системе (не более 127), вызванное сложностью втиснуться в рамки 8-ми байтного числа.
Также, нет полной гарантии, что случайные числа не повторятся в пределах тех 1,3 секунды, когда уникальность ключа определяется исключительно работой генератора случайных чисел. В случае такого повтора возникнет ошибка дублирования, которая потребует повтора всей операции добавления записей.
Правда, надо отдать должное access'совской функции rnd(): она достаточно долго генерирует неповторяющийся поток значений.
Источник: http://www.realcoding.net/article/view/4666