«Базы данных»: Домашний архив

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ РФ

Государственное образовательное учреждение высшего  профессионального образования

«Ижевский Государственный Технический Университет»

Кафедра «АСОИУ» 
 
 
 
 
 
 
 
 
 
 
 
 

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовой работе по дисциплине

«Базы данных»

на тему «Домашний архив» 
 
 
 
 
 
 
 
 
 

Выполнил

студент гр. 5-15-3

 
Проверил

ст. преподаватель  каф. АСОИУ

Н. В. Соболева
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Ижевск 2007 

СОДЕРЖАНИЕ

 

ВВЕДЕНИЕ

    База  данных (БД) — централизованное хранилище данных, обеспечивающее хранение, доступ, первичную обработку и поиск информации./1/

    Целью данной курсовой работы является создание работающей посредством конкретной СУБД базы данных. При этом будут  рассмотрены все этапы создания БД.

    Тема  данной курсовой работы — БД «Домашний архив». Архив — это учреждение или структурное подразделение учреждения, организации или предприятия, осуществляющее приём, комплектование и хранение архивных документов в интересах пользователей. /2/

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

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

 

  1. ОПИСАНИЕ  ПРЕДМЕТНОЙ ОБЛАСТИ «ДОМАШНИЙ АРХИВ»
    1. Описание  предметной области

    Вкратце рассмотрим схему работы домашнего  архива.

    При появлении нового экземпляра в домашнем архиве пользователь заполняет следующие  поля.

    Если  этот экземпляр книга:

    • название;
    • год выхода;
    • количество страниц;
    • жанр;
    • страна;
    • фамилия и имя писателя/писателей;
    • постоянное место расположения книги в квартире.

    Музыкальный альбом:

    • название;
    • год выхода;
    • количество треков в альбоме;
    • жанр;
    • страна;
    • псевдоним (или имя) исполнителя;
    • постоянное место расположения музыкального диска в квартире.

    Фильм:

    • название;
    • год выхода;
    • продолжительность;
    • жанр;
    • страна;
    • фамилия и имя режиссера/режиссеров;
    • фамилии и имена актеров/актера;
    • постоянное место расположения диска с фильмом в квартире.

 

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

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

    1. Основные понятия

    Сущность — личности, факты, объекты реального мира, имеющие отношение к некоторой проблемной области.

    Атрибут — это информационное отображение свойств объекта. При реализации информационной модели на каком-либо носителе информации, атрибут часто называют элементом данных, полем данных или просто полем.

    Экземпляр объекта — это один набор значений его элементов данных.

    Доменом — набор записей данных одного типа, отвечающих поставленным условиям.

    Связь — это функциональная зависимость между сущностями.

    Концептуальная  модель — интегрированные концептуальные требования всех пользователей к базе данных данной предметной области.

    Концептуальная  схема — это графическое представление данных на концептуальном уровне.

    Отношение — двумерная таблица, содержащая некоторые данные (например, отношение Клиент (таблица)).

    Схема отношения — список имен атрибутов (например, Товары (КодТовара, КодКатегории, МаркаТовара, Цена, Количество)).

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

    Также существует понятие внешнего ключа. С помощью внешних ключей устанавливаются связи между отношениями. Например, имеются два отношения Товары (КодТовара, КодКатегории, МаркаТовара, Цена, Количество) и Заказы (КодЗаказа, КодСотрудника, КодКлиента, ДатаЗаказа, ВидДоставки, СтоимостьДоставки), которые связаны отношением, Заказано (КодЗаказа, КодТовара, Цена, Количество, Скидка, Продано, Продал/ПринялСотр). В связующем отношении Заказано атрибуты КодЗаказа и КодТовара образуют составной ключ. Эти атрибуты представляют собой внешние ключи, являющиеся первичными ключами других отношений.

    В концептуальной схеме для указания связей таблиц производят операцию их связывания.

    • 1:1;
    • 1:М;
    • М:1;
    • М:М ;
    • n – арная.

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

    1. Цель  проектирования, определение  пользователя

    Основная  цель проектирования БД — создание системы для учета, сортировки и  поиска, фильмов, музыки и книг в домашнем архиве.

    Пользователями  создаваемой БД будут владельцы  домашнего архива.

    1. Постановка  задач и запросов, реализуемых в  курсовой работе

Задачи

    • сведения  об имеющихся книгах;
    • сведения об имеющихся музыкальных альбомах;
    • сведения об имеющихся фильмах;
    • сведения о писателях, исполнителях, актерах и режиссерах;
    • сведения об одалживании книг, музыки и фильмов;
    • возможность просмотра, редактирования, добавления и удаления данных.

 

Запросы

    • список  всех книг (включая информацию о годе выхода, количестве страниц, жанре, стране, имени и фамилии писателя, постоянном расположении книги в квартире);
    • список всех музыкальных альбомов (включая информацию о годе выхода, количестве треков, жанре, стране, псевдониме исполнителя, постоянном расположении музыкального диска в квартире);
    • список всех фильмов (включая информацию о годе выхода, продолжительности, жанре, стране, именах и фамилиях актеров и режиссеров, постоянном расположении диска с фильмом в квартире);
    • список одалживаемых книг, фильмов и музыки (включая информацию об одалживающей персоне — фамилия, имя, отчество, адрес и контактный телефон).

 

  1. КОНЦЕПТУАЛЬНЫЙ  УРОВЕНЬ ПРОЕКТИРОВАНИЯ БД «ДОМАШНИЙ АРХИВ»
    1. Описание  сущностей и их атрибутов

Фильм

    Данная  сущность содержит информацию о фильме и имеет следующие атрибуты:

    • код фильма;
    • название фильма;
    • год выхода;
    • продолжительность;
    • код жанра;
    • код страны;
    • постоянное расположение.

Книга

    Данная  сущность содержит информацию о книге  и имеет следующие атрибуты:

    • код книги;
    • название книги;
    • год выхода;
    • количество страниц;
    • код жанра;
    • код страны;
    • постоянное расположение.

Альбом

    Данная  сущность содержит информацию об альбоме  и имеет следующие атрибуты:

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

Жанр  альбома

    Данная  сущность содержит информацию о жанре альбома и имеет следующие атрибуты:

    • код жанра;
    • название жанра.

Жанр  книги

    Данная  сущность содержит информацию о жанре  книги и имеет следующие атрибуты:

    • код жанра;
    • название жанра.

Жанр  фильма

    Данная  сущность содержит информацию о жанре фильма и имеет следующие атрибуты:

    • код жанра;
    • название жанра.

Исполнитель

    Данная  сущность содержит информацию об исполнителе  и имеет следующие атрибуты:

    • код исполнителя;
    • псевдоним.

Писатель

    Данная  сущность содержит информацию о писателе и имеет следующие атрибуты:

    • код писателя;
    • фамилия;
    • имя.

Актер

    Данная  сущность содержит информацию об актере и имеет следующие атрибуты:

    • код актера;
    • фамилия;
    • имя.

 

Режиссер

    Данная  сущность содержит информацию о режиссере  и имеет следующие атрибуты:

    • код режиссера;
    • фамилия;
    • имя.

Страна

    Данная  сущность содержит информацию о стране и имеет следующие атрибуты:

    • код страны;
    • название страны.

Персона

    Данная  сущность содержит информацию о персоне  и имеет следующие атрибуты:

    • код персоны;
    • фамилия;
    • имя;
    • отчество;
    • адрес;
    • телефон.

 

    1. Описание  связей

    Сущности, их ключи и связи между сущностями изображены на концептуальной схеме базы данных (рис. 2.1).

    Концептуальная  модель данных отражает самые общие  представления о предметной области.

Рис. 2.1. Концептуальная схема БД

 

  1. ЛОГИЧЕСКИЙ  УРОВЕНЬ ПРОЕКТИРОВАНИЯ БД «ДОМАШНИЙ АРХИВ»
    1. Определение реляционной модели данных, ее основные элементы

    Реляционная модель данных (РМД) некоторой предметной области представляет собой набор  отношений, изменяющихся во времени (т.е. РМД — представление данных в виде совокупности двумерных таблиц). При создании информационной системы совокупность отношений позволяет  хранить данные об объектах предметной области и моделировать связи между ними.

    Элементами реляционной модели данных являются:

    • отношение (таблица);
    • схема отношений (строка заголовков столбцов таблицы);
    • кортеж (строка таблицы);
    • сущность (описание свойств объекта);
    • атрибут (заголовок столбца таблицы);
    • домен (множество допустимых значений атрибута);
    • значение атрибута (значение поля в записи);
    • первичный ключ (один или несколько атрибутов);
    • тип данных (тип значений элементов таблицы). /3/
    1. Проектирование  реляционной модели

    Существует 2 метода построения реляционной модели:

    • метод декомпозиции (используется при числе ключевых атрибутов не более 20);
    • диаграммы сущность-связь (универсальный).

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

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

    Основные свойства нормальных форм:

    • каждая следующая нормальная форма в некотором смысле лучше предыдущей;
    • при переходе к следующей нормальной форме свойства предыдущих нормальных свойств сохраняются.

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

    Наиболее  важные на практике нормальные формы  отношений основываются на фундаментальном в теории реляционных баз данных понятии функциональной зависимости. Для дальнейшей работы нам потребуются несколько определений.

    Определение 1. Функциональная зависимость

    В отношении R атрибут Y функционально  зависит от атрибута X (X и Y могут  быть составными) в том и только в том случае, если каждому значению X соответствует в точности одно значение Y: R.X (r) R.Y.

    Определение 2. Полная функциональная зависимость

    Функциональная  зависимость R.X (r) R.Y называется полной, если атрибут Y не зависит функционально от любого точного подмножества X.

    Определение 3. Транзитивная функциональная зависимость

    Функциональная зависимость R.X (r) R.Y называется транзитивной, если существует такой атрибут Z, что имеются функциональные зависимости R.X (r) R.Z и R.Z (r) R.Y и отсутствует функциональная зависимость R.Z → R.X. (При отсутствии последнего требования мы имели бы «неинтересные» транзитивные зависимости в любом отношении, обладающем несколькими ключами.).

    Определение 4. Неключевой атрибут

    Неключевым  атрибутом называется любой атрибут  отношения, не входящий в состав первичного ключа (в частности, первичного).

    Определение 5. Взаимно независимые атрибуты

    Два или более атрибута взаимно независимы, если ни один из этих атрибутов не является функционально зависимым от других.

    Рассмотрим  следующий пример схемы отношений:

    Определение 6. Вторая нормальная форма (в этом определении предполагается, что единственным ключом отношения является первичный ключ)

    Отношение R находится во второй нормальной форме (2NF) в том и только в том случае, когда находится в 1NF, и каждый неключевой атрибут полностью зависит от первичного ключа.

    Таким образом, мы получили вторую нормальную форму.

    Определение 7. Третья нормальная форма (снова определение дается в предположении существования единственного ключа).

    Отношение R находится в третьей нормальной форме (3NF) в том и только в том  случае, если находится в 2NF и каждый неключевой атрибут нетранзитивно зависит от первичного ключа.

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

    Определение 8. Четвертая нормальная форма

    Отношение R находится в четвертой нормальной форме (4NF) в том и только в том  случае, если в случае существования  многозначной зависимости A (r) (r) B все  остальные атрибуты R функционально зависят от A.

Переход от концептуальной модели к реляционной

    1. Реализация  связи 1:М (один-ко-многим) 
       
      Альбом (код альбома, название альбома, год выхода, количество треков, код жанра, код страны, постоянное расположение). 
      ЖанрАльбома (код жанра, название жанра). 
      Правило: в этом случае строится по одному отношению для каждой сущности. Ключ односвязной сущности добавляется в качестве внешнего ключа в другое отношение.
    2. Реализация связи М:М (многие-ко-многим) 
       
      Книга (код книги, название книги, год выхода, ;количество страниц, код жанра, код страны, постоянное расположение). 
      Книга-Писатель (код книги, код писателя). 
      Писатель (код писателя, фамилия, имя). 
      Правило: не зависимо от обязательности связи строятся 3 отношения. Ключ отношения для связи состоит из ключей обеих сущностей.

    Далее приступим к непосредственному  описанию определенных выше элементов  реляционной модели и заданию  множества их значений:

    АЛЬБОМ (код альбома, название альбома, год выхода, количество треков, код жанра, код страны, постоянное расположение).

    Описание  ключа:

    ("x,y АЛЬБОМ) [код альбома (x) = [код альбома (y)] x = y,

    где x,y – цепочка символов следующих друг за другом;

    Dom(код альбома) = {x | 0 < x };

    Dom(название альбома) = { x | STR(x)}, где STR — предикат, проверяющий является ли цепочка символов следующих друг за другом x строкой символов;

    Dom(год выхода) = {x | 1900 < x };

    Dom(количество треков) = {x | 0 < x };

    Dom(код жанра) = {x | 0 < x };

    Dom(код страны) = {x | 0 < x };

    Dom(постоянное расположение) = { x | STR(x)}, где STR — предикат, проверяющий является ли цепочка символов следующих друг за другом x строкой символов;

    ПИСАТЕЛЬ (код писателя, фамилия, имя).

    Описание  ключа:

    ("x,y ПИСАТЕЛЬ) [код писателя (x) = [код писателя (y)] x = y,

    где x,y – цепочка символов следующих друг за другом;

    Dom(код писателя) = {x | 0 < x };

    Dom(фамилия) = { x | STR(x)}, где STR — предикат, проверяющий является ли цепочка символов следующих друг за другом x строкой символов;

    Dom(имя) = { x | STR(x)}, где STR — предикат, проверяющий является ли цепочка символов следующих друг за другом x строкой символов;

    ЖАНР (код жанра, название жанра).

    Описание  ключа:

    ("x,y ЖАНР) [код жанра (x) = [код жанра (y)] x = y,

    где x,y – цепочка символов следующих друг за другом;

    Dom(код жанра) = {x | 0 < x };

    Dom(название жанра) = { x | STR(x)}, где STR — предикат, проверяющий является ли цепочка символов следующих друг за другом x строкой символов;

    1. Целостность реляционной модели

    Под целостностью понимают свойство БД, означающее, что она содержит полную непротиворечивую информацию, которая адекватно отражает предметную область. /3/

    Существует  «целостность по ссылкам», анализ содержимого двух таблиц на соблюдение следующих правил:

    • каждой записи основной таблицы соответствует ноль или более записей дочерней таблицы;
    • в дочерней таблице нет записей, которые не имеют родительских записей в родительской таблице;
    • каждая запись дочерней таблицы имеет только одну родительскую запись основной таблицы.

    Другими словами, внешний ключ должен быть равным какому-либо значению первичного ключа или может быть полностью неопределенным.

    Над данными  двух таблиц существуют три основные операции:

    • ввод новых записей;
    • модификация записей (каскадное обновление связанных полей);
    • удаление записей (каскадное удаление связанных полей). /3/

    Под каскадным обновлением всех связанных  полей понимается то, что при изменении  связанного поля родительской таблицы мгновенно меняются все связанные поля дочерней таблицы.

«Базы данных»: Домашний архив