Проектирование реляционных баз данных

Автор работы: Пользователь скрыл имя, 22 Мая 2013 в 14:55, лабораторная работа

Краткое описание

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

Вложенные файлы: 1 файл

lab1.doc

— 250.50 Кб (Скачать файл)

Новосибирский государственный технический университет

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Лабораторная работа по курсу «Банки и базы данных»

 

 

 

ПРОЕКТИРОВАНИЕ  РЕЛЯЦИОННЫХ

БАЗ ДАННЫХ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Нижний Новгород

 

2013

Лабораторная  работа №1 Проектирование ER и реляционной модели данных

 

Введение

 

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

1) концептуальное  проектирование, содержащее системный анализ рассматриваемой предметной области поставленной задачи и составление ее словесного описания. Этот этап в данной работе отсутствует, то есть каждый студент получает словесное описание объектов системной области и связей, существующих между ними, в качестве исходного задания. На данном этапе необходимо представить концептуальную модель в виде ER-диаграммы;

2) логическое  проектирование базы данных. На  этом этапе осуществляется выбор  СУБД (системы управления базами  данных), с помощью которой база данных будет реализована. В лабораторной работе предполагается использование СУБД MS Access. Поскольку эта СУБД реализует реляционную модель данных, то необходимо осуществить переход от ER-модели к реляционной модели и затем нормализовать полученные отношения;

3) создание таблиц, входящих в реляционную модель  с учетом существующих между  ними связей. В данной лабораторной  работе требуется составить для  каждой создаваемой таблицы оператор CREATE TABLE языка SQL.

 

 

Построение ER-модели

 

ER-модель (модель «сущность – связь») – широко используемый инструмент разработки баз данных, представляющий собой формализованное графическое представление предметной области в виде прямоугольников, линий и специальных символов. Преимущество ER-модели

заключается в том, что она понятна и разработчикам баз данных, и заказчикам, то есть будущим ее пользователям, и потому все возможные изменения в структуре данных согласуются между ними именно на уровне этой модели. ER-модель никак не связана ни с какой конкретной СУБД, этот выбор осуществляется впоследствии. В основе ER-модели лежат понятия «сущность» («entity») и «связь» («relation»). Не существует удовлетворительного формального описания понятия «сущность». Можно сказать, что это – совокупность значимых объектов, существующих в рамках предметной области. Например, при построении системы учета успеваемости студентов придется оперировать сущностями «студенты», «преподаватели», «дисциплины», а в случае создания банковской системы – сущностями «клиенты» и «счета». Каждая сущность включает набор атрибутов, представляющих собой именованные свойства сущности. Например, сущность «студенты» может иметь следующие атрибуты:

1) номер зачетной книжки;

2) ФИО;

3) код группы;

4) дату рождения.

Сущность –  совокупность объектов, а каждый объект этой совокупности – экземпляр сущности. Экземпляры должны быть различимы, то есть не должно быть двух экземпляров с одинаковыми наборами атрибутов. Каждая сущность имеет набор атрибутов, уникальный для каждого экземпляра сущности, называемый ключом. Например, для сущности «студенты» ключ состоит из одного атрибута «Номер зачетной книжки», так как точно не существует двух и более студентов с одинаковым значением этого атрибута.

Между сущностями могут быть установлены связи, определяющие, как сущности соотносятся или взаимодействуют между собой. Связь может существовать между двумя сущностями (бинарная связь) или между сущностью и ею же самой (рекурсивная связь). Наличие связи означает, что сущность имеет атрибут или набор атрибутов которые составляют ключ. Например, сущность «студенты» и сущность «учебные группы» связаны между собой атрибутом «код группы», который является ключом сущности «учебные группы» и присутствует в наборе атрибутов сущности «студенты».

Связи бывают трех (четырёх) типов:

1) связь «один к одному». При этой связи один элемент первой сущности связан не более чем с одним экземпляром второй сущности. Этот тип связи встречается сравнительно редко;

2) связь «один ко многим» («многие к одному»). В этом случае один экземпляр первой сущности связан с несколькими экземплярами второй сущности, но один экземпляр второй сущности связан не более чем с одним экземпляром первой сущности. Первая сущность считается в данной связи основной, вторая – подчиненной. Примером может служить рассмотренная выше связь между сущностями «учебные группы» и «студенты». Сущность «учебные группы» является здесь основной, сущность «студенты» – подчиненной, так как одна группа состоит из нескольких студентов, следовательно, одному экземпляру сущности «группы» соответствует несколько экземпляров сущности «студенты», принадлежащих этой группе;

3) связь «многие ко многим». В этом случае каждый экземпляр первой сущности может быть связан с несколькими экземплярами второй сущности, а каждый экземпляр второй сущности – с несколькими экземплярами первой. В качестве примера можно привести связь между сущностями «преподаватели» и «дисциплины». Эта связь имеет тип «многие ко многим», так как один преподаватель может вести несколько учебных дисциплин, а одна дисциплина – вестись несколькими преподавателями.

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

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

 

Базовые понятия


    Сущность (объект)  


    Атрибут сущности (свойство, характеризующее объект)      


    Ключевой атрибут (атрибут, входящий в первичный ключ)


   Связь

Кардинальность показывает, какое максимальное количество экземпляров данной сущности может участвовать в конкретной связи (точнее экземпляре связи).

Кардинальность бинарных связей («один к одному») степени 1 будем обозначать следующим образом:

Кардинальность бинарных связей степени n «один ко многим» («многие к одному») будем обозначать так:

 

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

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

Таким образом, можно выделить следующие сущности:

 

1) студенты;

2) преподаватели;

3) учебные дисциплины;

4) группы;

5) оценки.

 

Атрибутами сущности «студенты» будут:

1) номер зачетной  книжки;

2) ФИО;

3) номер группы.

Ключом здесь  будет номер зачетной книжки.

 

Сущность «преподаватели» будет иметь атрибуты:

1) табельный  номер;

2) ФИО.

Ключом сущности, естественно, является табельный номер преподавателя.

 

У сущности «учебные дисциплины» будет два атрибута:

1) код дисциплины; - ключевой

2) наименование дисциплины.

 

Сущность «группы» включает следующие атрибуты:

1) код группы;

2) название группы

3) табельный номер куратора группы.

Здесь код группы – ключевой атрибут.

 

Сущность «оценки» имеет следующие атрибуты:

1) номер зачетной  книжки студента;

2) код дисциплины;

3) таб. номер преподавателя;

4) дата получения  оценки;

5) оценка.

Ключ – уникальный идентификатор сущности. В данном случае ключом сущности «оценки» будет набор из 4 атрибутов: номер зачетной книжки, код дисциплины, таб.номер преподавателя и дата получения оценки, так как предполагается, что студент в один день по некоторой дисциплине может получить только одну оценку.

Теперь рассмотрим связи, имеющиеся между сущностями.

1. Так как  в одной группе числятся несколько  студентов, между сущностями «группы» и «студенты» существует связь «один ко многим». Эта связь обязательна с обеих сторон.

2. Так как  у каждой группы есть куратор  из числа преподавателей, между сущностями «группы» и «преподаватели» существует связь «один к одному», необязательная со стороны «преподаватели», так как не каждый преподаватель является куратором какой-либо группы.

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

4. Между сущностью  «студенты» и сущностью «оценки»  существует связь «один ко  многим». Каждый студент неоднократно  получает оценки по изучаемым дисциплинам. Возможно, что студент не успел получить еще ни одной оценки, следовательно, связь является необязательной со стороны «студенты».

5. Между сущностью  «преподаватели» и сущностью  «оценки» существует связь «один  ко многим». Каждый преподаватель  выставляет оценки по своим дисциплинам. Существует вероятность, что преподаватель не поставил ни одной оценки, потому что только что был принят на работу, следовательно, связь является необязательной со стороны «преподаватели».

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

На рис. 1 показана ER-диаграмма, построенная для данной задачи с учетом существующих связей.

Рис. 1

Переход к реляционной модели

 

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

Отношения могут быть связаны между собой посредством набора атрибутов, одинаково содержащихся в обоих отношениях. Связи между отношениями в реляционной модели (в отличие от ER-модели) могут иметь только тип «один ко многим» («многие к одному»), т. е. одно отношение всегда будет основным, а второе – подчиненным, и одному кортежу основного отношения могут соответствовать несколько кортежей подчиненного отношения. Данное соответствие означает, что у обоих кортежей значения набора атрибутов, по которому связаны отношения, совпадают. Обычно у основного отношения данный набор атрибутов является первичным ключом и, следовательно, уникальным для каждого кортежа. У второго отношения данный набор атрибутов называется внешним ключом для данной связи. Кортежей с одинаковым значением внешнего ключа может быть сколько угодно, но не может существовать кортежей со значением внешнего ключа, которому не соответствовал бы какой-либо первичный ключ основного отношения. Связь «один к одному» рассматривается как частный случай связи «один ко многим». Связи «многие ко многим» в реляционной модели быть не может. Они заменяются на отношения «один ко многим» или «многие к одному».

Информация о работе Проектирование реляционных баз данных