Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


РЕЛЯЦИОННЫЕ ЯЗЫКИ МАНИПУЛИРОВАНИЯ ДАННЫМИ



 

Реляционные модели

Классификация реляционных языков

Основные характеристики языка SQL

Организация запросов к базе данных на языке SQL

РЕЛЯЦИОННЫЕ МОДЕЛИ

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

 

Реляционные модели данных (РМД), в отличие от сетевых и иерархических (см. гл. 15), характеризуются простотой структуры данных, удобным для пользователя табличным представлением, а также возможностью использования формального аппарата алгебры отношений и реляционного исчисления для обработки данных. Отношение, или реляционная таблица, имеет прямоугольную структуру (" плоский файл" ) (рис. 19.28):

 

  Поле 1 Поле 2 ... Поле n
Запись 1        
Запись 2        
       
Запись m        

Рис. 19.28. Структура данных реляционной таблицы

 

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

Условимся считать, что указанные термины имеют полноправное употребление и являются синонимами.

Схема реляционной таблицы образована именами полей, образующих структуру ее записи, например:

 

(Поле1, Поле2,.... Поле n)

Пример 19.42. Схема отношения:

СТУДЕНТ(Имя, Фамилия, Дата рождения, № зач.книжки,...).

 

В заполненном виде этой схеме соответствует таблица (рис. 19.29).

 

Студент
Имя Фамилия Дата рождения № зач. книжки и т.д.
Петр Иванов 12.12.80  
Марина Петрова 1.1.80  

Рис. 19.29. Фрагмент реляционной таблицы

 

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

Для определенности изложения рассмотрим реляционную таблицу (рис. 19.29).

Таблица СТУДЕНТ содержит основные сведения о студентах учебного заведения. Каждое поле принимает определенное значение в строке таблицы, обладает определенным форматом, или типом данных: Фамилия – строка символов, Дата рождения – дата в формате ДД.ММ.ГГ.

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

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

Пример 19.43. Таблица СТУДЕНТ содержит записи; для идентификации отдельной записи указывается значение ключа. В данном случае ключей несколько:

№ зач. книжки;

[Имя]+[Фамилия]+[Дата рождения].

 

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

Для эффективной реализации поиска и обработки данных создаются индексы, обеспечивающие формирование дополнительных индексных файлов (рис. 19.30).

 

Значение индекса Адрес записи, содержащей значение индекса
и1 и2 и3 и т.д. Адр2 Адр10 Адр1

Рис. 19.30. Индекс реляционной таблицы

 

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

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

Работа с данными осуществляется на уровне:

отдельной таблицы;

нескольких таблиц.

Типовые операции по обработке записей реляционной таблицы

 

Классический состав операций с реляционными таблицами определяет требования к реляционным языкам. Рассмотрим типовые операции по обработке записей в изолированной реляционной таблице.

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

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

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

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

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

Пример 19.44.

Ввод сведений о новом студенте:

ВКЛЮЧИТЬ в СТУДЕНТ [Игорь; Смирнов; 23.02.1980; 126543]

Изменить номер зачетной книжки студента:

ОБНОВИТЬ в СТУДЕНТ: [Игорь; Смирнов; 23.02.1980] поле [№ зач.книжки] = 345234

Удаление сведения о студенте:

УДАЛИТЬ в СТУДЕНТ: [Игорь; Смирнов; 23.02.1980]

Удаление сведения о студентах, которые родились в 1979 г.:

УДАЛИТЬ в СТУДЕНТ: если [Дата рождения] > =01.01.1980 AND [Дата рождения] < 01.01.1981

Отобрать студентов, у которых номера зачетных книжек находятся в интервале 100000 – 200000:

ВЫБОРКА в СТУДЕНТ: если [№ зач.книжки] > = 100000 AND [№ зач.книжки] < 200000

 

Результат выборки

 

Имя Фамилия Дата рождения № зач.книжки
Марина Петрова 1.1.80

 

Сформировать список имен студентов на основании таблицы СТУДЕНТ

 

ПРОЕКЦИЯ СТУДЕНТ [Имя]:

СТУДЕНТ

 

Имя Фамилия Дата рождения № зач.книжки
Петр Иванов 12.12.80
Марина Петрова 1.1.80
Марина Смирнова 6.6.81

 

Результат проекции

 


Поделиться:



Популярное:

Последнее изменение этой страницы: 2017-03-11; Просмотров: 477; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.016 с.)
Главная | Случайная страница | Обратная связь