База данных

Автор работы: Пользователь скрыл имя, 13 Февраля 2013 в 21:31, курсовая работа

Описание

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

Работа состоит из  1 файл

КУРСОВАЯ БД.doc

— 279.50 Кб (Скачать документ)

1. Реляционная модель данных

Реляционная модель данных была предложена Е. Коддом, известным американским специалистом в области баз данных. Основные концепции этой модели были впервые опубликованы в 1970 г. в статье «A Relational Model of Data for Large Shared Data Banks» (CACM, 1970, Vol. 13, № 6).

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

 

1.1 Базовые понятия реляционной модели данных

 

Реляционные модели данных, в настоящее время приобрели наибольшую популярность и практически все современные СУБД ориентированы именно на такое представление данных.

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

Реляционная модель предполагает три концептуальных элемента:

  • структура,
  • целостность,
  • обработка данных,

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


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

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

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


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

  • тип данных;
  • домен;
  • атрибут;
  • кортеж;
  • ключ.

Рассмотрим смысл этих понятий на примере отношения (таблицы) СТУДЕНТЫ, содержащего информацию о студентах некоторого вуза (таблица 13.1).

Таблица 13.1. Пример отношения СТУДЕНТЫ реляционной базы данных

№_студенческого_ билета

Имя

Дата_ рождения

Курс

Специальность

23980282

Алексеев Д. А.

12.03.1982

2

Биология

2299 1380

Яковлев Н. В.

25.12.1979

4

Физика

22657879

Михайлов В. В.

29.02.1979

5

Математика

24356783

Афанасьев А. В.

19.08.1983

1

Иностранный язык

24350283

Кузнецов В. И.

03.10.1982

1

Физика

23125681

Смирнов А. Д.

26.03.1981

3

История


 

Тип данных

 

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

  • целочисленные;
  • вещественные;
  • строковые;                                                                                                     
  • специализированные типы данных для денежных величин;                          
  • специальные типы данных для временных величин (дата и/или время);       
  • типы двоичных объектов (данный тип не имеет аналога в языках программирования; обычно для его обозначения используется аббревиатура BLOB — Binary Large Object).                                                                                            

Достаточно активно  развивается подход к расширению возможностей реляционные систем абстрактными типами данных (соответствующими возможностями обладают, например, системы семейства Ingres/Postgres).                                                           

В рассматриваемом примере используются три типа данных:

  1. строковый (столбцы «Имя» и «Специальность»),
  2. временной тип (столбец «Дата_рождения»),
  3. целочисленный тип («Курс» и «№_студенческого_билета»).                                 

Домен                                                                                         

Наименьшая единица  данных реляционной модели — это  отдельное атомарное (неразложимое) для данной модели значение данных.

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


 В нашем примере  (таблица 13.1) можно для каждого  столбца таблицы определить домен  (рисунок 13.1):           

Рисунок 13.1 Пояснение  понятий реляционных БД

  • домены «Имена» и «Специальности» для столбцов «Имя» и «Специальность» соответственно будут базироваться на строковом типе данных — в число их значений могут входить только те строки, которые могут изображать имя и название специальности (в частности, такие строки не должны начинаться с мягкого знака);
  • домен «Даты_рождения» для столбца «Дата_рождения» определяется на базовом временном типе данных — данный домен содержит только допустимый диапазон дат рождения студентов;
  • домены «Номера_курсов» и «Номера_студенческих_билетов» базируются на целочисленном типе — в число его значений могут входить только те целые числа, которые могут обозначать номер курса университета (обычно от 1 до 6) и номер студенческого билета (обязательно положительное число).

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

Следует отметить также  семантическую нагрузку понятия  домена: данные считаются сравнимыми только в том случае, когда они относятся к одному домену. Если же значения двух атрибутов берутся из различных доменов, то их сравнение, вероятно, лишено смысла. В нашем примере значения доменов «Номера_курсов» и «Номера_студенческих_билетов» основаны на одном типе данных — целочисленном, но не являются сравнимыми.

Понятие домена используется далеко не во всех СУБД. В качестве примера  реляционных баз данных, использующих домены, можно привести Oracle и InterBase.

Атрибуты, схема отношения, схема базы данных

Столбцы отношения называют атрибутами, им присваиваются имена, по которым к ним затем производится обращение.

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


 

Пример. Схема нашего отношения СТУДЕНТ запишется так:

СТУДЕНТ {№_студенческого_билета Номера_студенческих_билетов

Имя Имена.

Дата_рождения Даты_рождения.

Курс Номера_курсов.

Специальность Специальности}

Степень отношения — это число его атрибутов.


Отношение степени один называют унарным, степени два — бинарным, степени три — тернарным,..., а степени п — n-арным.

Степень отношения СТУДЕНТЫ равна  пяти, то есть оно является 5-арным.

Схемой базы данных называется множество именованных схем отношений.


Кортеж

Кортеж, соответствующий данной схеме отношения, представляет собой

множество пар {имя атрибута, значение}, которое содержит одно вхождение

каждого имени атрибута, принадлежащего схеме отношения.


«Значение» является допустимым значением домена данного атрибута (или типа данных, если понятие домена не поддерживается). Тем самым степень кортежа, то есть число элементов в нем, совпадает со степенью соответствующей схемы отношения. Иными словами, кортеж — это набор именованных значений заданного типа.

Схему отношения иногда называют также заголовком отношения,

а отношение как набор  кортежей — телом отношения.


Понятие схемы отношения  напоминает понятие структурного типа данных в языках программирования (структура в C/C++, запись в Pascal). Однако в реляционных базах данных имя схемы отношения всегда совпадает с именем соответствующего отношения-экземпляра. В классических реляционных базах данных после определения схемы базы данных изменяются только отношения-экземпляры. В них могут появляться новые и удаляться или модифицироваться существующие кортежи. Однако во многих реализациях допускается и изменение схемы базы данных: определение новых и изменение существующих схем отношения. Это принято называть эволюцией схемы базы данных.

Таким образом, отношение, по сути, является множеством кортежей, соответствующим одной схеме отношения.

Кардинальным числом или мощностью отношения называется число его кортежей.


Мощность отношения  СТУДЕНТЫ равна 6. В отличие от степени  отношения кардинальное число отношения изменяется во времени.                                              

Пустые значения

В некоторых случаях  какой-либо атрибут отношения может  быть неприменим. Например, в рассматриваемом  в качестве примера отношении  СТУДЕНТЫ может же храниться информация о потенциальных абитуриентах, посещающих подготовительные курсы вуза. В этом случае неприменимыми оказываются атрибуты "№_студенческого_билета» и «Курс» (так как абитуриенты еще не поступили в вуз и, следовательно, не имеют студенческого билета и не могут быть отнесены к какому-либо курсу). Кроме того, иногда при вводе информации в строку реляционной таблицы некоторые данные могут быть неизвестны и выяснятся позже (для нашего примера — при поступлении на подготовительные курсы абитуриент еще не определился окончательно, на какую специальность он будет поступать).

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

Следует понимать, что пустое значение — это не ноль и не пустая строка, а неизвестное значение атрибута, которое не определено в данный момент времени и в принципе может быть определено позднее.

Для обозначения пустых значений полей используется слово NULL.

 

1.2 Ключи отношения

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

Более строго определить понятие первичного ключа можно  следующим образом:

Если R - отношение с атрибутами A1, А2,..., Аn,

то множество атрибутов К = (Ai, Aj,..., Ak) отношения R является первичным ключом этого отношения тогда и только тогда, когда удовлетворяются два независимых от времени условия:

  • уникальность: в произвольный момент времени никакие два различных кортежа отношения R не имеют одного и того же значения для Ai, Aj,..., Ak;
  • минимальность: ни один из атрибутов Ai, Af,..., Ak не может быть исключен из К без нарушения уникальности.

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

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

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

Сложный или составной ключ — ключ, состоящий из нескольких атрибутов.

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

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

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

Естественный ключ — ключ, в который включены значимые атрибуты и который, таким образом, содержит информацию.

Информация о работе База данных