Автор работы: Пользователь скрыл имя, 16 Апреля 2013 в 15:17, курсовая работа
Цель данной работы заключилась в ознакомлении и изучении основных понятий о базах данных, реляциционной модели данных, также изучение среды разработки базы данных Oracle Database.
Задачи:
Ознакомиться особенности и возможностями СУБД;
Изучить основные понятия реляционной модели данных;
Ознакомитьтся с языком запросов SQL;
Изучить среду разработки Oracle;
Рассмотреть особенности Oracle;
Разработать базу данных в Oracle.
В идеально спроектированной реляционной базе данных отношение "один к одному" (1:1) не нужно. Если каждой строке одной таблицы соответствует одна строка другой таблицы, то это обычно свидетельствует о том, что обе таблицы нужно объединить в единое целое. Исключение из правила— необычный случай, когда число столбцов таблицы превышает предел, установленный в СУБД. Обычно в СУБД этот предел равен 3000, так что маловероятно, чтобы кому-то пришло в голову его превысить. Есть СУБД, где предельное число столбцов гораздо меньше, например 250, но даже этого числа вполне достаточно для большинства приложений.
Еще одна причина существования отношения "один к одному" — это случай, когда определенный набор атрибутов применим лишь к небольшому подмножеству записей. Например, в таблице может храниться статистика по каждому из игроков, но для нападающих статистические показатели будут несколько отличаться, поэтому для них лучше создать отдельную таблицу.
В реляционной базе данных нельзя напрямую создать отношение "многие ко многим" (M:N). Его необходимо преобразовать в два отношения 1:N, устанавливаемых с промежуточной таблицей. Например, футболист, особенно игрок переднего края ("аутфилд"), может занимать на поле более одной позиции. Если информацию обо всех занимаемых позициях хранить в общей таблице, то получится, что есть группа игроков с несколькими позициями и есть позиции, занимаемые несколькими игроками.
Выход из положения заключается в декомпозиции, т.е. разбивке отношения M:N на два отношения 1:N. Это означает, что ссылки между двумя таблицами будут вынесены в третью таблицу, содержащую всего два столбца. В них будут сопоставляться первичные ключи основных таблиц.
Реляционная модель предъявляет к таблице определенные требования:
Помимо собственно таблиц и их свойств, реляционная модель имеет еще и собственные операции. Эти операции позволяют выполнять некоторые действия над подмножествами столбцов и/или строк, объединять (сливать) таблицы и выполнять другие операции над множествами. Чрезвычайно важно отметить, что все эти операции используют таблицы в качестве исходных данных; результатом операций также являются таблицы. В настоящее время стандартным языком для работы СУБД, является SQL, средства которого позволяют выполнять все эти операции.
В таблице не должно быть повторяющихся строк. Поэтому необходимо иметь возможность уникальной идентификации каждой отдельной строки таблицы по значениям одного или нескольких столбцов (называемых реляционными ключами). Рассмотрим терминологию, используемую для обозначения реляционных ключей.
Суперключ – столбец или множество столбцов, которое единственным образом идентифицирует строку данной таблицы. Суперключ однозначно обозначает каждую строку в таблице. Но суперключ может содержать дополнительные столбцы, которые необязательны для уникальной идентификации строки, поэтому рассмотрим суперключи, состоящие только из тех столбцов, которые действительно необходимы для уникальной идентификации строк.
Потенциальный ключ – суперключ, который не содержит подмножества, также являющегося суперключем данного отношения.
Потенциальный ключ K для данной таблицы R обладает двумя свойствами.
Таблица может содержать несколько потенциальных ключей. Если ключ состоит из нескольких столбцов, то он называется составным ключом. Для идентификации потенциального ключа требуется знать смысл используемых столбцов в «реальном мире»; только это позволит обоснованно принять решение о возможности существования значений-дубликатов.
Первичный ключ – потенциальный ключ, который выбран для уникальной идентификации сток внутри таблицы.
Поскольку таблица не содержит строк-дубликатов, всегда можно уникальным образом идентифицировать каждую ее строку. Это значит, что таблица всегда имеет первичный ключ. В худшем случае все множество столбцов может использоваться как первичный ключ, но обычно, чтобы различить строки, достаточно использовать несколько меньшее подмножество столбцов. Потенциальные ключи, которые не выбраны в качестве первичного ключа, называются альтернативными ключами.
Чаще всего в реальных системах в качестве первичного ключа используют суррогатный ключ. Это позволяет избежать проблем, связанных с изменением значения первичного ключа.
Пустое значение – указывает, что значение столбца в настоящий момент неизвестно или неприемлемо для этой строки.
Пустое значение (которое условно обозначается как NULL) следует рассматривать как логическую величину «неизвестно». NULL не следует понимать как нулевое численное значение или заполненную пробелами текстовую строку. Нули и пробелы представляют собой некоторые значения, тогда как ключевое слово NULL обозначает отсутствие какого-либо значения.
Внешний ключ — это столбец или подмножество столбцов одной таблицы, который может служить в качестве первичного ключа для другой таблицы. Говорят также, что внешний ключ одной таблицы является ссылкой на первичный ключ другой таблицы.
Два фундаментальных правила целостности: правило целостности объектов (entity integrity rule) и правило ссылочной целостности (referential integrity rule).
Правило целостности объектов утверждает, что первичный ключ не может быть полностью или частично пустым, т.е. иметь значение NULL.
Правило ссылочной целостности гласит, что внешний ключ может быть либо пустым (иметь значение NULL), либо соответствовать значению первичного ключа, на который он ссылается.
Таким образом, система управления реляционной БД — это СУБД, которая удовлетворяет сформулированным выше фундаментальным требованиям реляционной модели. Критерием могут служить двенадцать правил полноты реляционных систем, сформулированных Коддом, за которыми так и закрепилось наименование правил Кодда.
Двенадцать правил Кодда определяют требования к реляционным СУБД.
СУБД, удовлетворяющая всем фундаментальным требованиям (т.е. соответствующая обеим частям определения, обладающая шестью перечисленными свойствами, поддерживающая реляционные операции и не противоречащая двум правилам целостности), а также всем двенадцати правилам Кодда, может квалифицироваться как система управления реляционными БД. Все это Кодд суммировал в правиле 0: для того чтобы систему можно было квалифицировать как реляционную СУБД, она должна использовать исключительно реляционные функции для управления базой данных.
Существует много подходов к определению реляционной алгебры, которые различаются набором операций и способами их интерпретации, но в принципе, более или менее равносильны. Мы опишем немного расширенный начальный вариант алгебры, который был предложен Коддом. В этом варианте набор основных алгебраических операций состоит из восьми операций, которые делятся на два класса - теоретико-множественные операции и специальные реляционные операции. В состав теоретико-множественных операций входят операции: объединения отношений; пересечения отношений; взятия разности отношений; прямого произведения отношений.
Специальные реляционные операции включают: ограничение отношения; проекцию отношения; соединение отношений; деление отношений.
Кроме того, в состав алгебры включается операция присваивания, позволяющая сохранить в базе данных результаты вычисления алгебраических выражений, и операция переименования атрибутов, дающая возможность корректно сформировать заголовок (схему) результирующего отношения.
Общая интерпретация реляционных операций
Почти все операции предложенного выше набора обладают очевидной и простой интерпретацией.
Поскольку результатом любой реляционной операции (кроме операции присваивания) является некоторое отношение, можно образовывать реляционные выражения, в которых вместо отношения-операнда некоторой реляционной операции находится вложенное реляционное выражение.
Нормальная форма — свойство отношения в реляционной модели данных, характеризующее его с точки зрения избыточности, которая потенциально может привести к логически ошибочным результатам выборки или изменения данных. Нормальная форма определяется как совокупность требований, которым должно удовлетворять отношение.
Процесс преобразования отношений базы данных (БД) к виду, отвечающему нормальным формам, называется нормализацией. Нормализация предназначена для приведения структуры БД к виду, обеспечивающему минимальную логическую избыточность, и не имеет целью уменьшение или увеличение производительности работы или же уменьшение или увеличение физического объёма базы данных. Конечной целью нормализации является уменьшение потенциальной противоречивости хранимой в базе данных информации. Как отмечает К. Дейт, общее назначение процесса нормализации заключается в следующем:
Устранение избыточности производится, как правило, за счёт декомпозиции отношений таким образом, чтобы в каждом отношении хранились только первичные факты (то есть факты, не выводимые из других хранимых фактов).
При том, что идеи нормализации весьма полезны для проектирования баз данных, они отнюдь не являются универсальным или исчерпывающим средством повышения качества проекта БД. Это связано с тем, что существует слишком большое разнообразие возможных ошибок и недостатков в структуре БД, которые нормализацией не устраняются. Несмотря на эти рассуждения, теория нормализации является очень ценным достижением реляционной теории и практики, поскольку она даёт научно строгие и обоснованные критерии качества проекта БД и формальные методы для усовершенствования этого качества. Этим теория нормализации резко выделяется на фоне чисто эмпирических подходов к проектированию, которые предлагаются в других моделях данных. Более того, можно утверждать, что во всей сфереинформационных технологий практически отсутствуют методы оценки и улучшения проектных решений, сопоставимые с теорией нормализации реляционных баз данных по уровню формальной строгости.