Икт

Введение

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

1. Эта форма содержит данные из таблицы клиентов,

4. и сведений о заказах.

Имя клиента в поле Плательщик получено из таблицы «Клиенты», значения кода заказа и даты заказа — из таблицы «Заказы», наименование товара — из таблицы «Товары», а цена и количество — из таблицы «Заказано». Чтобы можно было передать данные в форму, эти таблицы связаны друг с другом несколькими способами.

В приведенном примере поля в таблицах должны быть согласованы таким образом, чтобы отображать сведения об одном и том же заказе. Это согласование осуществляется путем установления связей между таблицами. Связь между таблицами устанавливает отношения между значениями в ключевых полях — часто между полями, имеющими одинаковые имена в обеих таблицах. В большинстве случаев с первичным ключом одной таблицы, являющимся уникальным идентификатором каждой записи, связывается внешний ключ другой таблицы. Например, для связывания сотрудников с заказами, за которые они отвечают, можно создать связь между полями «Код сотрудника» в таблицах «Сотрудники» и «Заказы».

1. Поле «Код сотрудника» отображается в двух таблицах: как первичный ключ.

2. и как внешний ключ.

Понятие о целостности данных

При создании базы данных сведения распределяются по множеству тематически организованных таблиц, чтобы свести к минимуму избыточность данных. После этого в Access предоставляются средства сбора разбросанных данных путем создания в связанных таблицах общих полей. Например, чтобы создать связь «один-ко-многим», добавьте первичный ключ из таблицы на стороне «один» как дополнительное поле в таблицу на стороне «многие». Чтобы соединить данные, Access подставляет значение из таблицы на стороне «многие» в соответствующее поле таблицы на стороне «один». Таким образом, значения таблицы на стороне «многие» связаны с соответствующими значениями на стороне «один».

Предположим, между таблицами «Грузоотправители» и «Заказы» существует связь «один-ко-многим», и нужно удалить грузоотправителя. Если у грузоотправителя, которого нужно удалить, есть заказы в таблице «Заказы, они станут потерянными записями после удаления записи грузоотправителя. В таблице «Заказы» останется код грузоотправителя, но он будет недействителен, поскольку запись, на которую он ссылается, уже не существует.

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

Обеспечение целостности данных включается для конкретного отношения между таблицами. После активации, Access будет отклонять любые операции, нарушающие целостность данных для этой межтабличной связи. Это означает, что Access будет отклонять как любые обновления, изменяющие целевой объект ссылки, так и удаление такого целевого объекта. Возможно, у вас может быть полностью допустимая потребность в изменении первичного ключа для поставщика, у которого есть заказы в таблице «Заказы». В этом случае необходимо, чтобы Access выполнил автоматическое обновление всех задействованных строк в рамках одной операции. Таким образом, Access гарантирует, что обновление будет полностью завершено, а база данных не будет находиться в несогласованном состоянии, когда некоторые строки обновлены, а другие — нет. Для этого в Access имеется параметр Каскадное удаление связанных записей. Если при включении обеспечения целостности данных был включен параметр Каскадное удаление связанных полей, то при последующем обновлении первичного ключа Access автоматически обновляет все связанные с ним поля.

Может понадобиться удалить строку и все связанные записи — например, запись грузоотправителя и все связанные с ним заказы. Для этого в Access имеется параметр Каскадное удаление связанных записей. Если при обеспечении целостности данных выбрать параметр Каскадное удаление связанных записей, а затем удалить запись на стороне первичного ключа в отношении, Access автоматически удалит все записи со ссылкой на первичный ключ.

Основные ключи и взаимосвязи таблиц

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

Например, у вас есть две таблицы, содержащие взаимосвязанную информацию. К примеру, они называются «День» и «План». Выбрав в первой таблице поле «понедельник», вы сможете связать его с каким-либо полем в таблице «План» и при наведении курсора на одно из этих полей, вы увидите информацию и связанные ячейки.

Подобные взаимосвязи облегчат читаемость вашей базы данных и наверняка увеличат её удобство и эффективность.

Чтобы создать взаимосвязь, перейдите во вкладку «Работа с базами данных» и в области «Отношения» выберите кнопку «Схема данных». В появившемся окне вы увидите все обрабатываемые базы данных

Следует обратить ваше внимание на то, что в базах данных должны быть специальные поля, предназначенные для внешних ключей. На нашем примере, если во второй таблице вы хотите отобразить день недели или число, оставьте пустое поле, назвав его «День»

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

Затем, открыв две таблицы, перетащите поле, которое вы хотите связать, в специально приготовленное поле для внешнего ключа. Появится окно «Изменение связей», в котором вы увидите отдельно выделенные поля. Чтобы обеспечить изменение данных в обеих связанных полях и таблицах, поставьте галочку напротив пункта «Обеспечение целостности данных».

2.4. Microsoft Access 2007

2.4.3. Установка логических связей в БД Access 2007

Логические связи устанавливаются между одноименными полями таблиц базы данных Access 2007. Связь данных в одной таблице с данными в других таблицах осуществляется через уникальные идентификаторы (ключи) или ключевые поля. В нашем случае мы должны установить логические связи между таблицами: Группы студентов, Студенты, Дисциплины и Успеваемость.

Для установления связей используем ключевые поля: КодГруппы, КодСтудентов и КодДисциплины. Например, между первичным ключом (КодГруппы) tables Группы студентов и вторичным ключом (КодГруппы) tables Студенты устанавливаем связь один — ко — многим.

Прежде чем приступить к созданию логических связей надо в Окне редактирования закрыть все tables и перейти на вкладку Работа с базами данных. Затем щелкнуть на пиктограмме Схема данных, в окне редактирования появится активное диалоговое окно «Добавление таблицы» на фоне неактивного окна Схема данных (рис. 1).


Рис. 1.

В окне Добавление таблиц необходимо выделить имена таблиц и нажать кнопку Добавить, при этом в окне «Схема данных» появятся все tables (рис. 2). После этого необходимо закрыть окно диалога.


Рис. 2.

Далее необходимо установить связи между табл. в окне Схема данных. Для этого в окне Схема данных необходимо отбуксировать (переместить) поле КодГруппы из таблицы Группы студентов на соответствующее поле tables Студенты, в результате этой операции появится окно «Изменение связей» (рис. 3) .


Рис. 3.

В появившемся окне диалога «Изменение связей» (рис. 3) необходимо установить флажки: «Обеспечить целостность данных», «каскадное обновление связанных полей» и «каскадное удаление связанных записей», убедиться в том, что установлен тип отношений один-ко-многим и нажать кнопку Создать.

В окне Схема данных появится связь один-ко-многим между таблицами Группы студентов и Студенты. Аналогичным образом надо связать поля КодСтудента в таблицах Студенты и Успеваемость, а затем поля КодДисциплины в таблицах Успеваемость и Дисциплины. В итоге получим Схему данных, представленную на рисунке 4.


Рис. 4.

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

Затем установить связи между табл.
«Студенты» и «Успеваемость», «Дисциплины» и «Успеваемость», так как поля КодСтуденты и КодДисциплины табл. Успеваемость используется в качестве столбца подстановки для заполнения соответствующих полей таблицы Успеваемость.

Далее >>> Раздел: 2.4.4. Заполнение таблиц базы данных Access 2007

БД из трех таблиц

Сначала необходимо спроектировать структуру базы данных. Например, БД «Учеба».

В ней будет  3 таблицы с полями (полужирным начертанием выделены ключевые поля):

1. «Список курсантов» — №, фамилия, имя, день рождения, пол, улица, дом, кв, группа.

2. «Группы» — номер группы, название группы, преподаватель.  

3. «Успеваемость» — код, фамилия, имя, любые 6 предметов.

Ключевые поля можно сделать тип счетчик или числовой.

Откройте новую базу данных Microsoft Access

Сохраните ее в своей папке с именем «Учеба».

Таблицы в ней создадим в режиме Конструктор. 

Таблицы заполните произвольными 20 строками в режиме таблицы.

Создадим схему базы данных для данных таблиц во вкладке Работа с базами данных.

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

Таблицы «Группы» и «Список учеников» связать связью «один-ко-многим», а таблицы «Список учеников» и  «Успеваемость» — связью «один-к-одному». Таблицы «Группы» и «Успеваемость» напрямую не связаны. 

Задание.

Запрос выполняется на вкладке Создание. Выполнить запрос для выделения учащихся (их группу и преподавателей), у которых одновременно экзаменационный балл по химии меньше 75 и больше 50, а по информатике балл  меньше 80 и больше 60. Предоставь результат для проверки.

Определения основных понятий

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

  1. Предметная область – множество созданных таблиц в базе данных, которые связаны между собой с помощью первичных и вторичных ключей.
  2. Сущность – отдельная таблица базы данных.
  3. Атрибут – заголовок отдельного столбца в таблице.
  4. Кортеж – это строка, принимающая значение всех атрибутов.
  5. Первичный ключ – это уникальное значение (id), которое присваивается каждому кортежу.
  6. Вторичный ключ таблицы «Б» – это уникальное значение таблицы «А», использующееся в таблице «Б».
  7. SQL запрос – это специальное выражение, выполняющее определенное действие с базой данных: добавление, редактирование, удаление полей, создание выборок.

Теперь, когда в общих чертах есть представление о том, с чем мы будем работать, можно приступить к созданию БД.

Создание отношения между таблицами с помощью окна отношений

На вкладке Работа с базами данных в группе Отношения выберите элемент Схема данных.

Если ни одного отношения еще не определено, автоматически откроется диалоговое окно Добавление таблицы. Если это окно не открылось, на вкладке Конструктор в группе Схема данных нажмите кнопку Отобразить таблицу.

В диалоговом окне Добавление таблицы отображаются все таблицы и запросы базы данных. Чтобы просмотреть только таблицы, выберите пункт Таблицы. Чтобы просмотреть только запросы, выберите пункт Запросы. Чтобы отобразить и таблицы, и запросы, щелкните Таблицы и запросы.

Выберите одну или несколько таблиц или запросов и нажмите кнопку Добавить. После добавления таблиц и запросов на вкладку «Схема данных» нажмите кнопку Закрыть.

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

Появится диалоговое окно Изменение связей.

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

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

Нажмите кнопку Создать.

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

Создание связи «один-к-одному» Оба общих поля (как правило, поля первичного ключа и внешнего ключа) должны иметь уникальный индекс. Это означает, что свойство Индексированное этих полей должно иметь значение Да (Совпадения не допускаются). Если оба поля имеют уникальный индекс, в Access будет создано отношение «один-к-одному».

Создание отношения «один-ко-многим». Поле на стороне «один» (как правило, первичный ключ) отношения должно иметь уникальный индекс. Это значит, что свойство Индексированное поле должно иметь значение Да (Совпадения не допускаются). Поле на стороне «многие» не должно иметь уникального индекса. Это поле может быть индексированным, но для него должны допускаться повторы. Это означает, что свойство Индексированное поле должно иметь значение Нет или Да (Допускаются совпадения). Когда у одного поля однозначный индекс, а у другого — нет, в приложении Access создается отношение «один-ко-многим».

Вставка рисунка или объекта

Создание других таблиц для этой базы данных — аналогичное. 

Создайте еще 5 таблиц самостоятельно.

Вставка в запись рисунка или объекта

Рисунок или объект добавляется из имеющегося файла либо создается в приложении OLE (например, в MS Paint), а затем вставляется в текущую запись.

Рассмотрим размещение объекта OLE на примере поля Фотография начальника в таблице Преподаватели. Фотографии хранятся в формате графического редактора Paint в файлах с расширением .bmp. Если рисунка в вашем файле нет, то создайте его самостоятельно и сохраните.

  1. В окне базы данных установите курсор на таблице Преподаватели и нажмите кнопку Открыть
  2. Заполните строки (записи) открывшейся таблицы данными в соответствии с названиями столбцов (полей)
  3. Для размещения поля Фотография начальника выполните внедрение объекта OLE в файл базы данных. Установите курсор в соответствующее поле таблицы. Выполните команду меню Вставка|Объект
  4. В окне Вставка объекта выберите тип объекта Paintbrush Picture и установите флажок Создать из файла
  5. В этом окне можно ввести имя файла, содержащего фотографию.
  6. Для просмотра внедренного объекта установите курсор в соответствующее поле и дважды щелкните кнопкой мыши
  7. Чтобы вернуться из программы Paint, выполните команду Файл|Выход и возврат к таблице Преподаватели.
Размещение данных типа МЕМО в таблице

В таблице ПРЕДМЕТ предусмотрено поле ПРОГРАММА, которое будет содержать длинный текст – краткую программу курса. Для такого поля выберите тип данных ПолеМЕМО.

Редактирование записей

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

Чтобы заменить слово в записи:

Вы можете редактировать несколько вхождений одного и того же слова, используя Find и Replace, который ищет термин и заменяет его другим термином.

  1. 1. Выберите вкладку «Главная» и найдите группу «Найти».
  1. 2. Выберите команду «Заменить». Появится диалоговое окно «Найти и заменить».
  1. 3. Нажмите поле «Найти»: и введите слово, которое вы хотите найти.
  1. 4. Нажмите кнопку «Заменить с» и введите слово, которое вы хотите заменить оригинальным словом.
  1. 5. Нажмите стрелку «Вниз»: выберите область, которую вы хотите найти.
  1. Выберите «Текущее поле», чтобы ограничить поиск выбранным в данный момент полем.
  1. Выберите текущий документ для поиска по всей таблице.
  1. 6. Нажмите стрелку раскрывающегося списка Match: выберите, насколько близко вы хотите, чтобы результаты соответствовали вашему поиску.
  1. Выберите любую часть поля для поиска поискового запроса в любой части ячейки.
  1. Выберите «Всего полей» для поиска только для ячеек, которые соответствуют вашему поисковому запросу.
  1. Выберите «Начало поля» для поиска только для ячеек, которые начинаются с вашего поискового запроса.
  1. 7. Нажмите «Найти далее», чтобы найти следующее вхождение поискового запроса.
  1. 8. Нажмите «Заменить», чтобы заменить исходное слово на новое.

Хотя вы можете использовать Replace All для замены каждого экземпляра термина, заменяя его по одному, вы можете быть абсолютно уверены, что редактируете только нужные вам данные. Замена данных непреднамеренно может негативно повлиять на вашу базу данных.

Чтобы удалить запись:

  1. 1. Выберите всю запись, нажав серая рамка в левой части записи.
  1. 2. Выберите вкладку «Главная» и найдите группу «Записи».
  1. 3. Нажмите команду Удалить. Запись будет удалена навсегда.

Идентификационные номера, присвоенные записям, остаются неизменными даже после удаления записи. Например, если вы удалите 34-ю запись в таблице, последовательность идентификационных номеров записей будет читать . 32, 33, 35, 36 . а не . 32, 33, 34, 35, 36 .. ,

Определения основных понятий

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

  1. Предметная область – множество созданных таблиц в базе данных, которые связаны между собой с помощью первичных и вторичных ключей.
  2. Сущность – отдельная таблица базы данных.
  3. Атрибут – заголовок отдельного столбца в таблице.
  4. Кортеж – это строка, принимающая значение всех атрибутов.
  5. Первичный ключ – это уникальное значение (id), которое присваивается каждому кортежу.
  6. Вторичный ключ таблицы «Б» – это уникальное значение таблицы «А», использующееся в таблице «Б».
  7. SQL запрос – это специальное выражение, выполняющее определенное действие с базой данных: добавление, редактирование, удаление полей, создание выборок.

Теперь, когда в общих чертах есть представление о том, с чем мы будем работать, можно приступить к созданию БД.

Создание и виды запросов

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

  1. Выборный запросы, благодаря которым программа достаёт определённую информацию и делает по ней расчёты.
  2. Запросы действия, добавляющие информацию в базу либо удаляющие её.

Выбрав «Мастер запросов» во вкладке «Создание», программа проведёт процесс создания определённого типа запроса. Следуйте инструкциям.

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

Например, вы можете создать выборный запрос по определённым параметрам. Если вы хотите увидеть информацию по конкретной дате или дню таблицы «День» за весь промежуток времени, вы можете настроить подобный запрос. Выберите пункт «Конструктор запросов», а в нём нужную вам таблицу. По умолчанию запрос будет выборным, это становится понятным, если глянуть на панель инструментов с выделенной там кнопкой «Выборка». Для того чтобы программа искала именно ту дату или день, который вам нужен, найдите строку «Условие отбора» и введите туда фразу . Запомните, запрос должен быть помещён в квадратные дужки [] и заканчиваться на знак вопроса либо на двоеточие.

Это лишь один из вариантов использования запросов. На самом деле, с их помощью также можно создавать новые таблицы, отбирать данные по критериям и т. д.

Нормализация базы данных

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

В то же время не все базы данных необходимо нормализовать. В целом, базы с обработкой транзакций в реальном времени (OLTP), должны быть нормализованы.

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

Первая форма нормализации

Первая форма нормализации (сокращенно 1NF) гласит, что во время логического проектирования базы данных каждая ячейка в таблице может иметь только одно значение, а не список значений. Поэтому таблица, подобная той, которая приведена ниже, не соответствует 1NF:

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

Вместо этого во время физического проектирования базы данных разделите данные на несколько таблиц или записей, пока каждая ячейка не будет содержать только одно значение, и дополнительных столбцов не будет. Такие данные считаются разбитыми до наименьшего полезного размера. В приведенной выше таблице можно создать дополнительную таблицу «Реквизиты продаж», которая будет соответствовать конкретным продуктам с продажами. «Продажи» будут иметь связь 1:M с «Реквизитами продаж».

Вторая форма нормализации

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

Например, атрибут «возраст» зависит от «дня рождения», который, в свою очередь, зависит от «ID студента», имеет частичную функциональную зависимость. Таблица, содержащая эти атрибуты, не будет соответствовать второй форме нормализации.

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

Таким образом, таблица с этими полями не будет соответствовать второй форме нормализации, поскольку атрибут «название товара» зависит от идентификатора продукта, но не от номера заказа:

  • Номер заказа (первичный ключ);
  • ID товара (первичный ключ);
  • Название товара.

Третья форма нормализации

Третья форма нормализации (3NF): каждый не ключевой столбец должен быть независим от любого другого столбца. Если при проектировании реляционной базы данных изменение значения в одном не ключевом столбце вызывает изменение другого значения, эта таблица не соответствует третьей форме нормализации.

В соответствии с 3NF, нельзя хранить в таблице любые производные данные, такие как столбец «Налог», который в приведенном ниже примере, напрямую зависит от общей стоимости заказа:

В свое время были предложены дополнительные формы нормализации. В том числе форма нормализации Бойса-Кодда, четвертая-шестая формы и нормализации доменного ключа, но первые три являются наиболее распространенными.

Многомерные данные

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector