
- •Isbn © СибАгс, 2009
- •Тема 1. Роль и место баз данных в автоматизированных информационных системах 6
- •Тема 2. Модели бд 18
- •Тема 3. Реляционная модель бд 27
- •Предисловие
- •Тема 1. Роль и место баз данных в автоматизированных информационных системах
- •Технология субд
- •Размещение и архитектура субд
- •Функции субд
- •Тема 2. Модели бд
- •Модели организации данных Иерархическая модель хранения данных
- •Сетевая модель данных
- •Типы связей в модели
- •Тема 3. Реляционная модель бд
- •Структура реляционной базы данных
- •Типы данных
- •Ограничения целостности бд
- •Аномалии вставки (insert)
- •Аномалии обновления (update)
- •Аномалии удаления (delete)
- •Тема 4. Проектирование бд
- •Проектирование по методу erd-модели
- •Инфологическое проектирование баз данных
- •Структура бд
- •Количество таблиц и их имена
- •Типы данных и типы полей
- •Тема 5. Работа в субд Access
- •Мастера Access
- •Нормализация
- •Создание таблиц
- •Определение связей и обеспечение целостности данных
- •Создание форм для ввода данных
- •Создание запросов
- •Создание отчетов
- •Варианты заданий для лабораторной работы
- •Заключение
- •Литература Основная литература
- •3.3.2. Дополнительная литература
- •Глоссарий
Типы связей в модели
На практике часто используются связи, устанавливающие различные виды соответствия между объектами «связанных» типов, — это один к одному (1:1), один ко многим (1: М), многие ко многим (М:М).
Связь один к одному означает, что каждому экземпляру первого объекта (А) соответствует только один экземпляр второго объекта (В) и, наоборот, каждому экземпляру второго объекта (В) соответствует только один экземпляр первого объекта (А).
Связь один ко многим означает, что каждому экземпляру одного объекта (А) может соответствовать несколько экземпляров другого объекта (В), а каждому экземпляру второго объекта (В) может соответствовать только один экземпляр первого объекта (А).
Связь многие ко многим означает, что каждому экземпляру одного объекта (А) могут соответствовать несколько экземпляров второго объекта (В) и, наоборот, каждому экземпляру второго/
Задания для самостоятельной работы
1. Привести пример связи 1:1 для данных задачи «Преподаватель читает курс».
2. Привести пример связи 1:М для данных задачи «Преподаватель читает курс».
Контрольные вопросы
Почему, по вашему мнению, иерархическая модель данных возникла первой?
Каково основное отличие иерархической и сетевой моделей?
Какие недостатки имеет реляционная модель?
Тема 3. Реляционная модель бд
Основы реляционной модели данных были впервые изложены в статье Е.Кодда в 1970 г. Эта работа послужила стимулом для большого количества статей и книг, в которых реляционная модель получила дальнейшее развитие. Наиболее распространенная трактовка реляционной модели данных принадлежит К.Дейту, который представил реляционную модель, состоящей из трех частей: структурной, целостной и манипуляционной.
Структурная часть описывает, какие объекты рассматриваются реляционной моделью. Постулируется, что единственной структурой данных, используемой в реляционной модели, являются нормализованные n-арные отношения.
Целостная часть описывает ограничения специального вида, которые должны выполняться для любых отношений в любых реляционных базах данных. Это целостность сущностей и целостность связей (внешних ключей). Целостность обычно выражается в виде ограничений или правил сохранения непротиворечивости данных, которые не должны нарушаться в базе.
Манипуляционная часть описывает два эквивалентных способа манипулирования реляционными данными - реляционную алгебру и реляционное исчисление.
Структура реляционной базы данных
Итак, реляционная база данных - база данных, в которой все данные представлены в виде двумерных таблиц или отношений.
Таблица применяется для описания некой сущности, такой как персона, место, событие и тому подобное. Таблица Таблица представляет собой совокупность столбцов и строк. В каждом столбце собраны данные одного типа. Строка таблицы объединяет данные всех столбцов о предмете таблицы. Строке таблицы соответствует запись БД, а информация внутри записи на пересечении с одним столбцом называется полем.
К примеру, автоматизируя архив данных о студентах, начнем с нижеследующей таблицы, где столбцам поставлены в соответствия поля, а строкам — записи:
Таблица 1.Фрагмент списка из студенческого архива
Поле ФИО |
Поле Дата_рождения |
Поле Группа |
Поле Специальность |
|
|
|
|
|
|
ФИО |
Дата_рождения |
Группа |
Специальность |
|
Иванов И.И. |
01.09.85 |
405 |
ГМУ |
запись 1 |
Петров П.П. |
09.12.84 |
513 |
УП |
запись 2 |
Сидоров С.С. |
07.10.85 |
407 |
ГМУ |
запись 3 |
Соловьев С.С. |
07.10.85 |
407 |
ГМУ |
запись 4 |
Агапов Р.П. |
23.07.90 |
803 |
ГМУ |
запись 5 |
Записи таблицы соответствует термин кортеж, пришедший из теории множеств. Столбцы (поля записи) имеют имена. Имена столбцов — это атрибуты отношения. Список атрибутов отношения называют схемой отношения.
Число атрибутов отношения (столбцов таблицы) называют его степенью, а максимально возможное число кортежей — мощностью. Степень отношения уже введенной в эксплуатацию БД меняется редко (это зависит от конкретной используемой СУБД), другими словами, добавлять и удалять поля в существующую таблицу не всегда возможно. Количество записей меняется постоянно, поскольку требуется добавление в таблицу новых или удаление уже устаревших.
Замечание
Понятия «отношение» и «реляционная таблица» не совсем совпадают, подобно различию понятий «информация» и «данные», которыми эта информация представлена [3]. Пояснение дает следующий факт: мощность отношения определяется количеством встречаемых проявлений сущности, иначе говоря, неисчислимостью множества кортежей, тогда как количество сток в реляционной таблице каждый раз конечно. Но в практике работы с базами данных и в литературе по базам данных эти два понятия обычно смешиваются, и реляционные таблицы также называют просто «отношениями». С одной стороны, указанные различия часто находятся за рамками рассмотрения, с другой — всегда можно утверждать, что любой реляционной таблицей задано определенное отношение (пусть даже и не совпадающее с исходным). Из контекста почти всегда становится ясным, о чем идет речь.
Очевидно, что данной таблицы (см. таб.1) недостаточно для автоматизации студенческого архива. Возможно, потребуется еще несколько таблиц с различным количеством полей, но и это еще не все, могут потребоваться связи между таблицами.
Отношения реляционной базы данных делятся на два типа: объектные и связные. Объектное отношение хранит данные об экземплярах объекта предметной области. Например, отношение Студент хранит данные о различных студентах. Каждый студент является экземпляром объекта Студент и должен быть однозначно идентифицируем, поэтому объектное отношение должно обязательно иметь первичный ключ.
Связное отношение содержит атрибуты, характеризующие связь между объектами. Оно обязательно содержит первичные ключи объектных отношений, участвующих в связи, а также атрибуты, которые функционально зависят от этой связи. Связное отношение не обязательно содержит первичный ключ. Оно служит для того, чтобы можно было, выбрав информацию из одного отношения, использовать ее для поиска соответствующей информации в другом отношении.
Совокупность таблиц должна удовлетворять определенным ограничивающим условиям. Одним из главных ограничений является запрет на присутствие в таблице двух одинаковых строк, а точнее – строк, имеющих одинаковые первичные ключи (см. ниже).
Все названные понятия – таблицы (отношения) с их именами, поименованные столбцы (атрибуты), связи входят в понятие структуры БД. Также в структуру БД входит описание используемых типов данных.