Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИТТ. LabRab 3.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.29 Mб
Скачать

16

Лабораторная работа № 3

«Базы данных реляционных и объектно-реляционных СУБД.

Таблицы баз данных. Связи между таблицами баз данных»

Введение

Подавляющее большинство современных ИС используют реляционные или объектно-реляционные СУБД. Структура баз данных таких СУБД соответствует реляционной модели, предложенной амери-канским математиком Е.Коддом в 1970 году. Реляционная модель позволяет обеспечить независи-мость представления и описания данных от прикладных программ, что существенно упрощает про-ектирование и программирование баз данных. Помимо этого, Кодд предложил применять к отноше-ниям (двумерным таблицам) стройную систему операций реляционной алгебры, позволяющую получать (выводить, вычислять подобно тому, как это делается при использовании арифметических операций) одни отношения из других. Это дало возможность делить информацию реляционной модели объекта на хранимую и нехранимую (вычисляемую) части и экономить память, при необходимости вычисляя нехранимую часть информации, используя для этого хранимую информацию.

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

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

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

 тип данных;

 домен;

 атрибут;

 кортеж;

 ключ;

 связь отношений.

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

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

Тип данных

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

 целочисленные;  вещественные;

 строковые;

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

 специальные типы данных для временных величин (дата и/или время);

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

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

- строковый (столбцы «Имя» и «Специальность»);

- временной (столбец «Дата_рождения»);

- целочисленный («Курс» и «№_студенческого_билета»).

Домен

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

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

Например, предположим, что в БД, кроме таблицы СТУДЕНТЫ (табл. 1), есть ещё таблица ПРЕПОДАВАТЕЛИ, в которой содержатся анкетные данные преподавателей. В таблице ПРЕПОДАВАТЕЛИ есть столбцы «ФИО» и «№_УДОСТОВЕРЕНИЯ». Допустим, что столбец «Имя» таблицы СТУДЕНТЫ и столбец «ФИО» таблицы ПРЕПОДАВАТЕЛИ имеют одинаковые типы данных, максимальную длину, в обоих столбцах используется кириллица и смысл данных в этих столбцах одинаков (фамилия и инициалы человека). Допустим, также, что столбцы «№_студенческого_билета» в таблице СТУДЕНТЫ и «№_УДОСТОВЕРЕНИЯ» в таблице ПРЕПОДАВАТЕЛИ тоже имеют одинаковые типы данных и смысл (числовой номер). В этом случае, перед тем как в БД будут созданы таблицы СТУДЕНТЫ и ПРЕПОДАВАТЕЛИ, можно создать два домена: один с именем FNSN и второй с именем №UD. В описании домена FNSN указать: тип данных – строковый, максимальная длина – 25 символов, кодовая страница – 1251. В описании домена №UD указать: тип данных – целочисленный. Тогда при описании структуры таблиц СТУДЕНТЫ и ПРЕПОДАВАТЕЛИ вместо того, чтобы давать полное определение столбцу ИМЯ в таблице СТУДЕНТЫ и столбцу ФИО в таблице преподаватели (тип данных, максимальная длина, кодовая страница), в том и другом случае достаточно вместо типа данных указать имя домена FNSN. Аналогично можно поступить со столбцами «№_студенческого_билета» таблицы СТУДЕНТЫ и «№_УДОСТОВЕРЕНИЯ» таблицы ПРЕПОДАВАТЕЛИ, указав вместо их типов данных имя домена №UD.

Необходимо отметить, что понятие домена используется далеко не во всех СУБД. Однако в таких широко используемых объектно-реляционных СУБД как Oracle и InterBase доменами можно пользоваться.

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

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

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

Схема отношения СТУДЕНТЫ (структура таблицы СТУДЕНТЫ) приведена в табл. 2:

Таблица 2. Схема отношения (структура таблицы) СТУДЕНТЫ.

Имя столбца

Тип данных

Максимальная длина

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

№UD1

-

Имя

FNSN2

-

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

DATE3

-

Курс

SMALLINT3

-

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

VARCHAR(30)

30

Степень отношенияэто число его атрибутов. Отношение степени один называют унарным, степени два — бинарным, степени три — тернарным,..., а степени п — n-арным. Степень отношения СТУДЕНТЫ равна пяти, то есть оно является 5-арным.

Схемой базы данных (структурой БД) называется множество именованных схем отношений (структур её таблиц) с указанием связей между ними.

Кортеж

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

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

В реляционных базах данных имя схемы отношения (структуры таблицы) всегда совпадает с именем соответствующего отношения (таблицы). В классических реляционных базах данных после определения схемы базы данных могут изменяться только отношения (таблицы). В них могут появляться новые и удаляться или модифицироваться существующие кортежи. Однако, во многих современных реляционных и объектно-реляционных СУБД допускается изменение схемы базы данных (БД) уже после её определения. В процессе работы с БД возможно определение новых и изменение существующих схем отношений. Процесс изменения схемы БД во время работы с БД принято называть эволюцией схемы базы данных.

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

Кардинальным числом или мощностью отношения называется число его кортежей. Мощность отношения СТУДЕНТЫ равна 6. В отличие от степени отношения кардинальное число отношения изменяется во времени. При выполнении некоторых операций над отношениями, участ-вующие в них отношения должны иметь совместимые схемы, то есть иметь одинаковую степень и одинаковые типы соответствующих атрибутов.

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

Таблица 3.

Файл (File)

Таблица (Table)

Отношение (Relation)

Сущность

Запись (Record)

Строка (Row)

Кортеж (Tuple)

Экземпляр сущности

Поле (Field)

Столбец (Column)

Атрибут (Attribute)

Атрибут

Описание однотипных столбцов

Домен (Domain)

Общая совокупность однотипных значений

Количество полей

Количество столбцов

Степень отношения

Количество атрибутов (свойств сущности)

Количество записей

Количество строк

Мощность отношения

(кардинальное число)

Количество экземпляров сущности

Однако, со временем, особенно с появлением объектно-реляционных БД, эти соответствия были размыты (особенно, для первых двух столбцов таблицы 3). Поэтому, выражения «строка таблицы» и «запись таблицы» используются равнозначно. Также равнозначно используются выражения «столбец таблицы» и «поле таблицы» (реже - «колонка таблицы» или «атрибут таблицы»).

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