Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СУБД_ACCESS_РИО (1).doc
Скачиваний:
74
Добавлен:
09.04.2015
Размер:
3.2 Mб
Скачать

Разработка реляционной модели многотабличной базы данных

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

  • Студенты (код студента, фамилия, имя, отчество, номер группы, дата рождения, стипендия, оценки);

  • Дисциплины (код дисциплины, название дисциплины);

  • Преподаватели (код преподавателя, фамилия, имя, отчество, дата рождения, телефон, разряд).

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

Рассмотрим основные типы связей: один к одному (1:1); один ко многим (1:М); многие ко многим (М:М).

  1. Один-к-одному (1:1). При использовании отношения "один-к-одному" запись в таблице А (главной таблице) может иметь не более одной связанной записи в таблице В (связанной таблице) и наоборот. Этот тип связи используют не очень часто, поскольку такие данные могут быть помещены в одну таблицу. Связь с отношением "один-к-одному" используют для разделения очень широких таблиц или для отделения части таблицы по соображениям защиты. В таблицах, связанных отношением "один-к-одному", ключевые поля должны быть уникальными (в этих полях не допускаются повторяющиеся данные).

  1. Один-ко-многим (1:М). Связь с отношением "один-ко-многим" является наиболее часто используемым типом связи между таблицами. В такой связи каждой записи в таблице А могут соответствовать несколько записей в таблице В, а запись в таблице В не может иметь более одной соответствующей ей записи в таблице А. В таблице А ключевое поле должно быть уникальным. Связь с отношением "один-ко-многим" таблиц А и В можно рассматривать как связь с отношением "многие-к-одному" таблиц В и А.

  1. Многие-ко-многим (М:М). При использовании отношения "многие-ко-многим" одной записи в таблице А могут соответствовать несколько записей в таблице В, а одной записи в таблице В несколько записей в таблице А. В этом случае не требуется уникальности ключевых полей таблиц А и В. Этот вид отношения используется для связывания таблиц, имеющих только внешние ключи.

Важно!

Связанные поля не обязательно должны иметь одинаковые имена, однако они должны иметь одинаковые типы данных. Кроме того, связываемые поля типа Числовой должны иметь одинаковые значения свойств Размер поля.

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

Рассмотрим связь между таблицами Студенты и Дисциплины. Студент изучает несколько дисциплин, что соответствует многозначной связи и отражено на рис. 11 двойной стрелкой. Очевидно, что каждая дисциплина изучается множеством студентов. Это тоже многозначная связь, обозначаемая двойной стрелкой. Таким образом, связь между объектами Студенты и Дисциплины относится к типу Многие-ко-многим (М:М).

Рис.11. Типы связей между таблицами Студенты, Дисциплины и Преподаватели.

Множественные связи усложняют управление базой данных, так, например, в СУБД MS Access при множественных связях нельзя использовать механизм каскадного обновления. Поэтому использовать такие связи нежелательно и нужно строить реляционную модель, не содержащую связей типа Многие-ко-многим. Поэтому необходимо создать вспомогательную таблицу, которая содержит ключевые поля связываемых таблиц и которая может быть дополнена другими описательными полями. В нашем случае такой новой таблицей для связи может послужить таблица Оценки, полями которой являются Код студента, Код дисциплины и Оценки. Каждый студент имеет оценки по нескольким дисциплинам, поэтому связь между таблицами Студенты и Оценки будет Один-ко-многим (1:М). Каждую дисциплину сдает множество студентов, поэтому связь между таблицами Дисциплины и Оценки также будет Один-ко-многим (1:М). В результате получаем модель базы данных, приведенную на рис. 12.

Рис.12. Модель реляционной базы данных

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

Студенты

1:М

Оценки

Дисциплины

1:М

Преподаватели

Код студента

Код студента

1

Код дисциплины

Код дисциплины

Фамилия

Код дисциплины

Дисциплина

Код преподавателя

Имя

Оценки

Фамилия

Отчество

Имя

Номер группы

Отчество

Дата рождения

Дата рождения

Стипендия

Должность

Дисциплина

Телефон

Разряд ЕТС

Рис. 13. Логическая модель реляционной базы данных