- •Реляционная модель данных
- •Содержание
- •Раздел 1. Теория реляционных баз данных 9
- •Раздел 2. Проектирование реляционных баз данных на основе принципов нормализации 39
- •Раздел 3. Лабораторная работа 58
- •Введение
- •Раздел 1. Теория реляционных баз данных
- •1.1. Основные понятия реляционных баз данных
- •Виды связей реляционных баз данных
- •1.2. Реляционная алгебра и реляционное исчисление
- •Операции реляционной алгебры. Формулы исчисления кортежей
- •Проекция. Проекцией отношения а по атрибутам X, y,..., z, где каждый из атрибутов принадлежит отношению а.
- •Extend Группа add (2011-ГодПоступления) as Курс
- •Контрольные вопросы по разделу 1
- •Контрольное задание по разделу 1
- •Примерные задания для подготовки к тестированию в системе Moodle по материалу раздела 1
- •Раздел 2. Проектирование реляционных баз данных на основе принципов нормализации
- •2.1 Целостность баз данных. Ограничения целостности.
- •3. Ограничения, связанные с коллективным доступом к бд.
- •2.2 Теория нормальных форм
- •Первая нормальная форма (1нф)
- •Вторая нормальная форма (2нф)
- •Третья нормальная форма (знф)
- •2.3 Избыточное дублирование данных и аномалии.
- •Контрольные вопросы по разделу 2
- •Контрольное задание по разделу 2
- •Примерные задания для подготовки к тестированию в системе Moodle по материалу раздела 2
- •Раздел 3. Лабораторная работа Основы проектирования реляционных баз данных Разработка структуры базы данных
- •Практическое руководство: создание логической и физической моделей с помощью Microsoft Visio 2007
- •Нотация idef1x
- •Контрольные вопросы по разделу 3:
- •Глоссарий
- •Список литературы
Контрольные вопросы по разделу 1
Что такое РМД? Дайте определение.
Перечислите основные элементы РМД.
В чем особенность РМД?
Что такое сущность в РМД?
Что такое атрибут, кортеж в РМД?
Что такое домен в РМД? Какое количество доменов включает в себя отношение «Товар» (рисунок 1.6)?
Для чего нужен первичный ключ?
Какой первичный ключ не является избыточным?
С какой целью устанавливаются связи между отношениями в РМД?
Какие виды связей вы знаете?
Какой тип связи в РМД используется чаще всего и почему?
Что такое внешний ключ?
Перечислите восемь основных операторов реляционной алгебры?
В чем смысл свойства ассоциативности?
В чем смысл свойства коммутативности;
Контрольное задание по разделу 1
Дано 3 примера вычислений реляционной алгебры. Определите, какие операторы использовались при вычислениях, и впишите их названия в шаблон?
Примерные задания для подготовки к тестированию в системе Moodle по материалу раздела 1
Впишите в правую часть таблицы соответствующие компоненты реляционной БД (из представленного списка): ТАБЛИЦА, СТРОКА, СТОЛБЕЦ:
Сущность |
|
Атрибут |
|
Экземпляр сущности |
|
Сопоставьте определения:
1. Сущность |
А) поименованная характеристика сущности |
2. Атрибут |
Б) множество однотипных объектов |
3. Экземпляр сущности |
С) отдельный объект сущности |
1. ___ 2. ___ 3. ___
Ключевое поле в таблице реляционной базы данных – это:
атрибут, однозначно идентифицирующий каждый экземпляр сущности;
набор допустимых значений и операций над данными;
логическое отношение между сущностями, выражающее некоторое ограничение или правило;
поле, представляющее первичный ключ или являющееся частью составного первичного ключа.
. Связь между таблицами в БД – это:
атрибут, однозначно идентифицирующий каждый экземпляр сущности;
набор допустимых значений и операций над данными;
логическое отношение между сущностями, выражающее некоторое ограничение или правило;
поле, представляющее первичный ключ или являющееся частью составного первичного ключа.
Сопоставьте определения:
1. Сущность |
А) Студент |
2. Атрибут |
Б) Иванов И. И. |
3. Экземпляр сущности |
С) ФИО, Группа |
1. ___ 2. ___ 3. ___
Раздел 2. Проектирование реляционных баз данных на основе принципов нормализации
2.1 Целостность баз данных. Ограничения целостности.
Одним из понятий, неразрывно связанных с базами данных, является целостность. Это понятие может относиться как к самой БД – целостность БД, так и к способу физического хранения БД – целостность файла БД.
Целостность БД - это соответствие информационной модели предметной области, хранимой в базе данных, объектам реального мира и их взаимосвязям в каждый момент времени, т.е. это правильность и непротиворечивость данных в БД в любой момент времени.
Следует различать проблемы обеспечения целостности базы данных и защиты базы данных от несанкционированного доступа. Поддержание целостности базы данных может интерпретироваться как защита данных от неправильных действий пользователей или некоторых случайных внешних воздействий. В обеих ситуациях нарушения целостности базы данных имеют непреднамеренный характер.
Целостность базы данных означает состояние базы данных, удовлетворяющее заданным в формализованной форме и известным системе баз данных условиям и ограничениям, наложенным на базы данных. Условия целостности могут быть выражены в программных, табличных, предикатных или других формах [9].
Целостность данных может быть нарушена при сбое оборудования, ошибке программы, ошибке пользователя, ошибке в вводимых данных и т.д. В тех случаях, когда возможно нарушение целостности БД, СУБД должна проверять ряд условий, и если они нарушаются, то отменять текущую операцию и производить восстановление БД.
Поддержание целостности БД включает проверку целостности и ее восстановление в случае обнаружения противоречий в базе данных. Целостное состояние БД описывается с помощью ограничений целостности в виде условий, которым должны удовлетворять хранимые в базе данные. Примером таких условий может служить ограничение диапазонов возможных значений атрибутов объектов, сведения о которых хранятся в БД, или отсутствие повторяющихся записей в таблицах реляционных БД [12].
Под целостностью баз данных будем понимать некоторый набор требований, нарушение которых приведет к противоречию между базой данных и предметной областью, которую она отражает.
Во многих случаях условия целостности удобно называть ограничениями целостности, или, когда это ясно из контекста, просто ограничениями.
Ограничения целостности БД – это условия проверки допустимости данных и связей в БД. Ограничения целостности (ОЦ) могут относиться к разным информационным объектам: к полю, записи, таблице, связям между таблицами, файлу, к связям между файлами.
По способу задания ОЦ делятся на явные и неявные. Неявные ограничения целостности определяются моделью данных и проверяются СУБД «автоматически», например, в сетевых СУБД каждый набор может иметь только одного владельца, в иерархической БД каждая запись - потомок может иметь только одного предка, ключ реляционной таблицы всегда принимает уникальные значения.
Явные ограничения целостности должны быть описаны разработчиком БД. Различают три разновидности явно задаваемых ОЦ [4]:
1. Ограничения на значения данных, которые вызваны способом кодирования и хранения данных:
значения атрибута должны находиться в заданном диапазоне. Открытый диапазон фиксирует только одну границу (например, заработная плата не меньше минимальной), закрытый диапазон - обе границы (например, возраст принимаемых сотрудников от 20 до 40 лет);
значения атрибута выбираются из небольшого набора допустимых значений, например, значение поля «Образование» может быть выбрано из массива {начальное, неполное среднее, среднее, неполное высшее, высшее};
значения атрибута должны соответствовать заданному типу и формату данных, например, для хранения дня, месяца и года рождения лучше использовать поле «Дата рождения» календарного, а не числового или символьного типа, так как СУБД позволяет автоматически контролировать ввод;
значения атрибута должны быть обязательно определены; например, в списке сотрудников поля ФИО, Оклад должны быть определены, а Ученая степень может отсутствовать;
задание значения по умолчанию означает, что каждый раз при вводе новой строки в таблицу, при отсутствии данных в указанном столбце этому атрибуту присваивается именно значение по умолчанию. Например, при вводе новых студентов разумно для года поступления задать значение по умолчанию = текущему году.
2. Структурные ограничения, которые задаются функциональными зависимостями, существующими в предметной области. Наиболее типичны ограничения, когда имеются связи между свойствами одного и того же объекта:
значения первичного ключа и возможных ключей любой таблицы должны быть уникальны. Следует запрещать ввод любой записи со значением ключа, повторяющим уже имеющееся значение. Например, при вводе данных о новом сотруднике следует запретить ввод табельного номера, если такой код уже есть в БД;
атрибуты одной таблицы могут быть связаны отношением - логическим или арифметическим, например, логическая связь: СТАЖ < ВОЗРАСТ, арифметическая связь: СУММА = КОЛИЧ * ЦЕНА. Более сложный, но не менее частый случай - когда ограничение накладывается на связи между разными объектами;
значения поля, которое используется для связи с другой таблицей (внешний ключ), должны совпадать со значениями ключа в связанной таблице. Это ограничение похоже на выбор значения атрибута из небольшого набора допустимых значений, но роль области допустимых значений играет поле другой таблицы;
значения поля вычисляются или ограничиваются значениями полей из других файлов.
