Пример:
Тип объекта (записи) "СОТРУДНИК".
ФИО | АДРЕС(ул., дом, кв.) | ТЕЛЕФОН | ЗАРПЛАТА(за 3 месяца) | ДИПЛОМ | ДЕТИ(имя, возраст) |
Жуков И.П. | Победы, 5, 36 | 42-37-05 | 10 540,66 | АО-3628 | Иван, 10 |
Семенов А.В. | Водная, 15, 105 | 29-45-99 | 15 530,07 | ВН-5491, КР-1367 | Мария, 5Алексей, 8 |
Элемент | Агрегат | Элемент | Вектор, фиксированный | Вектор, переменный | Повторяющаяся группа, переменной длины |
Запись — агрегат, который не входит в состав никакого другого агрегата. Основная единица обработки данных.
Каждый экземпляр типа записи должен быть отличимым от других объектов данного типа. С этой целью каждому объекту данного типа назначается идентификатор, позволяющий на них однозначно ссылаться, он уникален. Он называется первичным ключом. В качестве первичного ключа может использоваться атрибут, комбинация атрибутов и даже части атрибутов. На практике используют не уникальные идентификаторы называемые вторичным ключом. К каждому такому множеству относятся объекты, которым соответствует одинаковое значение вторичного ключа.
1.1 Модели баз данных
БД может быть основана на одной модели или на совокупности нескольких моделей. Любую модель данных можно рассматривать как объект, который характеризуется своими свойствами (параметрами), и над ней, как над объектом, можно производить какие-либо действия.
Так как пользователя БД не интересует подробности физического хранения данных, в представлении данных можно выделить два уровня абстракции: логическая и физическая. На логическом уровне описываются данные информационной моделью, выделяют внешнюю и внутреннюю информационные модели, а на физическом – физической моделью. Информационная модель должна отражать предметную область в терминах понятных и привычных пользователю. Обычная информационная модель описывает объекты любой природы в терминах: сущность, атрибуты и связи. Абстрактная модель должна быть описана для представления в ЭВМ. Это описание делается средствами модели данных, которую поддерживает СУБД и называется внутренней или концептуальной информационной схемой. Итак, СУБД поддерживает некоторую модель данных и отображает её в соответствующие структуры физической БД.
Модель Данных (МД) — средство логического представления физических данных. Формализованное описание данных, отражающее их состав, типы данных, а также взаимосвязь между ними.
МД, которую поддерживает СУБД на логическом уровне определяется:
1) допустимой структурой данных, разнообразием и количеством типов данных, которые можно описать с помощью МД;
2) множеством допустимых операций над данными;
3) ограничениями контроля целостности.
В зависимости от поддерживаемой структуры данных, МД подразделяются на:
1) сетевые;
2) иерархические;
3) реляционные.
Большинство БД реляционные.
1.1.1 Реляционная модель
Термин "реляционный" (от латинского relation – отношение) указывает, прежде всего, на то, что такая модель хранения данных построена на взаимоотношении составляющих ее частей. В простейшем случае она представляет собой двухмерный массив или двухмерную таблицу, а при создании сложных информационных моделей составит совокупность взаимосвязанных таблиц. Каждая строка такой таблицы называется записью, а столбец – полем.
Реляционная модель данных имеет следующие свойства:
· Каждый элемент таблицы – один элемент данных.
· Все поля в таблице являются однородными, т.е. имеют один тип.
· Каждое поле имеет уникальное имя.
· Одинаковые записи в таблице отсутствуют.
· Порядок записей в таблице может быть произвольным и может характеризоваться количеством полей, типом данных.
Реляционная таблица — множество отношений содержащих всю необходимую информацию о предметной области.
Неспециалист | Математик | Программист ОД | Проектировщик БД |
ТаблицаСтрокаСтолбец | ОтношениеКортежАтрибут | Файл данныхЗаписьПоле | ОбъектЭкземпляр данныхАтрибут |
Отношение реляционной БД в зависимости от содержания подразделяется на два класса:
1) объектные;
2) связанные.
Таблица объектов хранит данные об экземплярах объекта, каждая строка содержит ключ и признаки объекта, которые функционально зависят от этого ключа.
Таблица связи хранит ключи двух или более таблиц объектов и таким образом устанавливаются связи между таблицами объектов, каждая строка связи содержит внешние ключи и характеристики связей.
Связь между объектами обычно выражается глаголами: "Служащие работают в отделах". Поэтому название таблице связей часто дают по имени связи или в названии указывают имена объектов участвующих в связи.
Отличительный признак объекта:
—объект может существовать сам по себе, ни с кем не связываясь, связь автономно существовать не может, требуя наличия хотя бы двух объектов.
Пример:
СТУДЕНТ (СТ#, ФИО, Группа, Адрес);
ПРЕДМЕТ (П#, Название, Вид контроля);
ИЗУЧАЕТ (СТ#, П#, Оценка).
Допустимые и недопустимые связи.
Пример:
Институт делится на подразделения, которые могут работать над несколькими проектами, над каждым проектом могут работать сотрудники из нескольких отделов.
Три таблицы:
Сотрудники | Отделы | Проекты | |||
С# | ФИО | О# | Название | П# | Название |
Связи:
Сотрудники - Проекты. Сотрудники - Отдел.
Сотрудник | Проект | Сотрудник | Отдел | Должность |
Для логической завершенности не хватает третьей связи "отдел – проекты", которая отражает какое подразделение над чем работает. Связь содержится в таблице, но косвенно через сотрудников, выделим её явно. С появлением 6-ой таблицы появляется противоречие. Причиной служит то, что один и тот же факт хранится в двух разных местах, косвенно — через исполнителя и явно (С - П) и явно в дополнительной шестой таблице. Вывод: связи между объектами не могут замыкаться. Недоразумение в этом примере вызвано нечеткой формулировкой задачи: отделы как таковые не работают над проектом, они работают над проектом тогда и только тогда, когда над проектом работает хотя бы один сотрудник. Две связи допустимы, а третья запрещена.
Если убрать связь СОТРУДНИКИ – Проекты, то изменится постановка задачи, тогда проекты
закрепляются за отделами, и все сотрудники должны будут работать над проектом.
Сотрудники не закреплены за отделами и свободно переходят в отдел занятый их проектом.
Реляционные модели связей не могут замыкаться, какие связи запрещены, а какие разрешены, зависит от постановки задачи. Для двух объектов возможна одна связь, для трех – две, а для n – (n-1). Для модели из n объектов необходимо (2n-1) объектов.
Работа с БД подразумевает задание и выполнение запросов.
Пример:
Найти всех студентов сдавших на отлично сессию. При этом используются специальные языковые средства, основанные на:
1) реляционной алгебре;
2) реляционном исчислении.
Алгебраический подход требует наличия операндов и совокупности операций над ними. В реляционной алгебре используются в качестве операндов — отношения (таблица).
Операции РА были предложены Коддом. Язык РА — аппликативный язык. Кодд доказал, что запросы сформированные с помощью реляционного исчисления могут сформировать язык РА и наоборот. Результатом любой реляционной операции является некоторое отношение.
Реляционная модель кроме РА может также включать операции реляционного присваивания Target := Source, где левые и правые части — реляционные выражения, представляющие совместимые по типу отношения. Target — базовое отношение.
Операция присваивания дает возможность запоминать значения некоторых алгебраических выражений в БД и изменять состояние БД.
Замечание: язык РА не применяется. Используется язык реляционного исчисления.
Исчисление — это знаковая система, в которой имеется некоторое количество исходных объектов и некоторое количество правил построения объектов из исходных и уже построенных. Дедуктивная система.
Были созданы различные разновидности языков исчисления предикатов, оно называлось реляционным исчислением.
Рассмотрим два языка, широко используемых в СУБД: SQL и QBE.
Язык Структурных Запросов (SQL)
SQL разработан фирмой IBM. Одобрен в качестве стандарта для больших и малых ЭВМ. Если D-Base ориентирована на операции с данными в виде записи, то SQL – на операции с данными, в виде таблиц. Кроме обычных таблиц SQL позволяет создавать особый тип таблиц – выборку (подмножество строк и столбцов из одной или нескольких таблиц). Часто выборку называют виртуальной таблицей.
Язык SQL оперирует понятием БД, которая содержит всю информацию, необходимую для обработки данных: таблицы, выборки, синонимы (альтернативные имена таблицы) и индексы (файлы для быстрого поиска данных, присоединяемые к таблице). В SQL можно выделить следующие средства:
1) средства запросов;
2) средства манипулирования данными;
3) средства определения данных;
4) средства контроля данных;
5) средства встраивания в основной язык.
Большинство запросов на извлечение данных из БД строится на основе команды SELECT.