РАБОТА 3. РАЗРАБОТКА ИНФОЛОГИЧЕСКОЙ МОДЕЛИ И СОЗДАНИЕ СТРУКТУРЫ РЕЛЯЦИОННОЙ БАЗЫ ДАННЫХКРАТКАЯ СПРАВКАОрганизация данныхСлово "реляционная" происходит от английского relation - отношение. Отношение - тематическое понятие, но в терминологии моделей данных отношения удобно изображать в виде таблицы. При этом строки таблицы соответствуют кортежам отношения, а столбцы - атрибутам. Ключом называют любую функцию от атрибутов кортежа, которая может быть использована для идентификации кортежа. Такая функция может быть значением одного, из атрибутов (простой ключ), задаваться алгебраическим выражением, включающим значения нескольких атрибутов (составной ключ). Это означает, что данные в строках каждого из столбцов составного ключа могут повторяться, но комбинация данных каждой строки этих столбцов является уникальной. Например, в таблице Студенты есть столбцы Фамилии и Год рождения. В каждом из столбцов есть некоторые повторяющиеся данные, т.е. одинаковые фамилии и одинаковые года рождения. Но если студенты, имеющие одинаковые фамилии, имеют разные года рождения, то эти столбцы можно использовать в качестве составного ключа. Как правило, ключ является уникальным, т.е. каждый кортеж определяется значением ключа однозначно, но иногда используют и неуникальные ключи (ключи с повторениями). В локализованной (русифицированной) версии Access 97 вводится термин ключевое поле, которое можно трактовать как первичный ключ. В Access 97 можно выделить три типа ключевых полей: простой ключ, составной ключ и внешний ключ. Одно из важнейших достоинств реляционных баз данных состоит в том, что вы можете хранить логически сгруппированные данные в разных таблицах и задавать связи между ними, объединяя их в единую базу. Для задания связи таблицы должны иметь поля с одинаковыми именами или хотя бы с одинаковыми форматами данных. Связь между таблицами устанавливает отношения между совпадающими значениями в этих полях. Такая организация данных позволяет уменьшить избыточность хранимых данных, упрощает их ввод и организацию запросов и отчетов. Поясним это на примере. Допустим, вам в базе надо хранить, данные о студентах (фамилия, изучаемая дисциплина) и преподавателях (фамилия, номер кафедры, ученая степень, преподаваемая дисциплина). Если хранить данные в одной таблице, то в строке с фамилией студента, изучающего конкретную дисциплину, будут храниться все атрибуты преподавателя, читающего эту дисциплину. Это же огромная избыточность данных. А если хранить данные о студенте в одной таблице, о преподавателе - в другой и установить связь между полями "Читаемая дисциплина" - "Изучаемая дисциплина" (фактически это одинаковые поля), то избыточность хранимых данных многократно уменьшится без ущерба для логической организации информации. В Access 97 можно задать три вида связей между таблицами; Один-ко-многим,, Многие-ко-многим и Один-к-одному. Связь Один-ко-многим - наиболее часто используемый тип связи между таблицами. В такой связи каждой записи в таблице А может соответствовать несколько записей в таблице В (поля с этими записями называют внешними ключами), а запись в таблице В не может иметь более одной соответствующей ей записи в таблице А. При связи Многие-ко-многим одной записи в таблице А может соответствовать несколько записей в таблице В, а одной записи в таблице В - несколько записей в таблице А. Такая схема реализуется только с помощью третьей (связующей) таблицы, ключ которой состоит по крайней мере из двух полей, одно из которых является общим с таблицей А, а другое - общим с таблицей В. При связи Один-к-одному запись в таблице А может иметь не более одной связанной записи в таблице В и наоборот. Этот тип связи используют не очень часто, поскольку такие данные могут быть помещены в одну таблицу. Связь с отношением Один-к-одному применяют для разделения очень широких таблиц, для отделения части таблицы в целях ее защиты, а также для сохранения сведений, относящихся к подмножеству записей в главной таблице. Тип создаваемой связи зависит от полей, для которых определяется связь:
Целостность данныхЦелостность данных означает систему правил, используемых в СУБД Access для поддержания связей между записями в связанных таблицах (таблиц, объединенных с помощью связи), а также обеспечивает защиту от случайного удаления или изменения связанных данных. Контролировать целостность данных можно, если выполнены следующие условия:
ЗАДАНИЕ 1Создание инфологической и логической моделей базы данных.1. Разработайте информационно-логическую модель реляционной базыданных. 2. Разработайте логическую модель реляционной базы данных ТЕХНОЛОГИЯ РАБОТЫ1. Перед разработкой информационно-логической модели реляционной базы данных рассмотрим, из каких информационных объектов должна состоять эта база данных. Можно выделить три объекта, которые не будут обладать избыточностью, - Студенты, Дисциплины и Преподаватели. Представим состав реквизитов этих объектов в виде "название объекта (перечень реквизитов)": Студенты (код студента, фамилия, имя, отчество, номер группы, дата рождения, стипендия, оценки). Дисциплины (код дисциплины, название дисциплины), Преподаватели (код преподавателя, фамилия, имя, отчество, дата рождения, телефон, заработная плата). Рассмотрим связь между объектами Студенты и Дисциплины. Студент изучает несколько дисциплин, что соответствует многозначной связи и отражено на рис. 4.9 двойной стрелкой. Понятно, что каждая дисциплина изучается множеством студентов. Это тоже многозначная связь, обозначаемая двойной стрелкой (связь "один" обозначена одинарной стрелкой). Таким образом, связь между объектами Студенты и Дисциплины - Многие-ко-многим (М : N).
Рис.4.9. Типы связей между объектами Студенты, Дисциплины и Преподаватели. Множественные связи усложняют управление базой данных, например, в СУБД Access 97 при множественных связях нельзя использовать механизм каскадного обновления. Поэтому использовать такие связи нежелательно и нужно строить реляционную модель, не содержащую связей типа Многие-ко-многим. В Access 97 дня контроля целостности данных с возможностью каскадного обновления и удаления данных необходимо создать вспомогательный объект связи, который состоит из ключевых реквизитов связываемых объектов и который может быть дополнен описательными реквизитами. В нашем случае таким новым объектом для связи служит объект Оценки, реквизитами которого являются код студента, код дисциплины и оценки. Каждый студент имеет оценки по нескольким дисциплинам, поэтому связь между объектами Студенты и Оценки будет Один-ко-многим (1:М). Каждую дисциплину сдает множество студентов, поэтому связь между объектами Дисциплины и Оценки также будет Один-ко-многим (1:М). В результате получаем информационно-логическую модель базы данных, приведенную на рис. 4.10. Рис. 4.10. Информационно-логическая модель реляционной базы данных 2. В реляционной базе данных в качестве объектов рассматриваются отношения, которые можно представить в виде таблиц. Таблицы между собой связываются посредством общих полей, т.е. одинаковых по форматам и, как правило, по названию, имеющихся в обеих таблицах. Рассмотрим, какие общие поля надо ввести в таблицы для обеспечения связности данных. В таблицах Студенты и Оценки таким полем будет "Код студента", в таблицах Дисциплины и Оценки - "Код дисциплины", в таблицах Преподаватели и Дисциплины - "Код дисциплины". Выбор цифровых кодов вместо фамилий или названий дисциплин обусловлен меньшим объемом информации в таких полях: например, число "2". по количеству символов значительно меньше слова "математика". В соответствии с этим логическая модель базы данных представлена на рис. 4.11, где жирными буквами выделены ключевые поля.
Рис. 4.11. Логическая модель базы данных ЗАДАНИЕ 2Создание реляционной базы данных.1.Создайте базуданных Деканат. 2.Создайте структуру таблицы Студенты. 3.Создайте структуру таблицы Дисциплины. 4. Измените структуру таблицы Преподаватели. 5. Создайте структуру таблицы Оценки. 6. Разработайте схему данных, т.е. создайте связи между таблицами.
ТЕХНОЛОГИЯ РАБОТЫ1. Создайте базу данных Деканат, выполнив следующие действия:
2. Создайте структуру таблицы Студенты. Для этого:
Примечание.Заполнять таблицу данными пока не требуется, это будет сделано в режиме формы. 3. Создайте структуру таблицы Дисциплины аналогично п. 2 в соответствии с табл. 4.4. Таблица 4.4
В качестве ключевого поля задайте "Код дисциплины". Заполняться эта таблица будет также в режиме формы. 4. Структура таблицы Преподаватели уже создана в работе 1 и заполнена данными, этому для работы используйте эту таблицу с одним лишь изменением - в соответствии с рис. 4.11 в структуру таблицы надо добавить поле "Код дисциплины" и заполнить его в соответствии с данными табл. 4.4. 5. Создайте структуру таблицы Оценки аналогично п. 2 в соответствии с табл. 4.5. Таблица 4.5
В этой таблице задавать ключевое поле не надо, так как данные во всех полях могут повторяться. Эта таблица, аналогично предыдущим, будет заполняться в режиме формы. 6. Разработайте схему данных, т.е. создайте связи между таблицами. Для этого:
Примечание.Задание каскадного обновления связанных полей и каскадного удаления связанных записей позволит вам отредактировать записи только в таблице Дисциплины, а в таблице Оценки эти действия будут со связанными записями выполняться автоматически. Например, если вы удалите из таблицы Дисциплины один предмет, то в таблице Оценки удалятся все строки, связанные с этим предметом.
Рис. 4.12. Структура таблицы Студенты ЗАДАНИЕ 3Создание форм для ввода данных в таблицы.1. Создайте форму Студенты. 2. Заполните данными таблицу Студенты посредством формы Студенты. 3. Создайте форму Дисциплины. 4. Заполните данными таблицу Дисциплины посредством формы Дисциплины. 5. Создайте форму Оценки. 6. Заполните данными таблицу Оценки посредством формы Оценки. ТЕХНОЛОГИЯ РАБОТЫ1. Для создания формы Студенты:
Примечание. Если вас не удовлетворяет макет, вы можете перейти в режим конструктора и изменить макет, передвигая и изменяя размеры элементов - заголовков полей и ячеек для ввода данных. Достаточно щелкнуть по элементу - он выделяется прямоугольной рамкой, и вы можете изменять размеры и двигать элемент. Если вы хотите изменить другие параметры элемента, надо, по выделенному элементу щелкнуть правой клавишей мыши, и откроется окно свойств элемента. В силу ограниченности объема раздела описать все свойства нет возможности, но их можно изучить самостоятельно по справочной системе, а многие свойства понятны уже из своего названия. 2. Заполните данными, приведенными в табл. 4.6, таблицу Студенты посредством формы. Таблица 4.6 Примечание. Переход между ячейками лучше выполнять клавишей <Таb> либо мышью. Существуют и другие варианты перехода по строкам или полям с помощью различных клавиш и их комбинаций. Обычно их используют опытные пользователи, не любящиеработать с мышью. Закройте форму, задав ей имя Студенты. 3. Создайте форму Дисциплины аналогично п.1. 4. Заполните данными, приведенными в табл. 4.7, таблицу Дисциплины посредством, формы и закройте форму, задав ей имя Дисциплины. 5. Создайте форму Дисциплины аналогично п. 1. 6. Заполните данными, приведенными в табл. 4.8, таблицу Оценки. Посредством формы закройте форму, задав ей имя Оценки.
Таблица.4.8. |
|