 
        
        Лекция 3
Реляционная модель
- 
Что такое реляционная система
Почти все продукты баз данных, созданные за последние 20 лет, основаны на подходе, который называют реляционным (relational), и подавляющее большинство научных исследований в области баз данных проводилось в этом направлении. Еще в конце 60-х годов появились работы, в которых обсуждались возможности применения табличных моделей данных, т.е. возможности использования привычных и естественных способов представления данных. Наиболее значительной из них была статья сотрудника фирмы IBM д-ра Э.Кодда, где, вероятно, впервые был применен термин "реляционная модель данных". Будучи математиком по образованию Э.Кодд предложил использовать для обработки данных аппарат теории множеств (объединение, пересечение, разность, декартово произведение). Он предложил представлять данные как совокупности двумерных таблиц особого вида, известного в математике как отношение – relation (англ.). Это привнесло в область управления БД ранее недостававшие качества: строгие принципы и точность.
Для начала представим грубое приблизительное определение реляционной системы.
Реляционная система – это система, основанная на принципах:
- 
данные пользователю представляются в виде таблиц и никак иначе; 
- 
пользователем используются операторы обработки данных, генерирующие новые таблицы из старых1. 
Из данного определения следует важный вывод: результат любой операции над таблицами – это также таблица. Это свойство называется свойством замкнутости. Это значит, что над результатом операции можно проделать новую операцию, т.е. использовать вложенные выражения. Другой вывод заключается в том, что операции применяются к каждой таблице, участвующей в операции, целиком, т.е. ко всем ее строкам. Такая возможность обработки множества – одна из главных отличительных характеристик реляционных систем. Добавим, что таблицы в реляционной системе являются логическими, а не физическими структурами. На физическом уровне система может использовать любой метод хранения – последовательные файлы, индексирование, хеширование, цепочки указателей и т.п., но все эти детали скрыты от пользователя. Реляционная теория ничего не говорит о внутреннем уровне вообще, оставляя проблемы реализации физического хранения за рамками рассмотрения.
На рис. 3.1 показан простой пример реляционной базы данных групп и студентов.
	 
	 
				Группа 
				Номер группы 
				Название 
				Год формирования 
				 D1 1-ИЭ 
				1999 
				 D2 2-ИЭ 
				1998 
				 D3 3-ИЭ 
				1997 
				 D4 1-ЭФ 
				1999 
	 
				Студент 
				Номер студента 
				Фамилия 
				Номер группы 
				Дата рождения 
				 57001 Усманова D2 
				28.02.81 
				 45002 Хализов D2 
				23.05.81 
				 34356 Астанина D3 
				29.09.80 
				 46754 Володин
				
				 D3 
				26.12.79 
	
		
	
			 
		
				 
			
				 
			
				 
			
				 
		
			 
		
				 
			
				 
			
				 
			
				 
		
			 
		
				 
			
				 
			
				 
			
				 
		
			 
		
				 
			
				 
			
				 
			
				 
		
			 
	
				 
			
				 
			
				 
			
				 
		
		
	
			 
		
				 
			
				 
			
				 
			
				 
			
				 
		
			 
		
				 
			
				 
			
				 
			
				 
			
				 
		
			 
		
				 
			
				 
			
				 
			
				 
			
				 
		
			 
		
				 
			
				 
			
				 
			
				 
			
				 
		
			 
	
				 
			
				 
			
				 
			
				 
			
				 
		
Рис. 3.1. База данных студентов и групп
Анализируя пример, можно заметить замечательное свойство реляционной БД: все информационное (в т.ч. и связи!) содержимое БД представлено одним и только одним возможным способом, а именно: явным заданием значений данных. В частности, нет никаких указателей, связывающих содержимое одной таблицы с содержимым другой2. А в нереляционных системах такая информация представляется неким указателем, который пользователь видит явно.
Кроме того, все значения данных атомарные, т.е. в "ячейке" таблицы всегда находится только одно значение, хотя можно себе представить таблицу вида:
- 
			Специальность Группы 071900 1-ИЭ, 2-ИЭ, 3-ИЭ … … 
Ее особенность в том, что она содержит группу повторения. Такие таблицы, содержащие группы повторения, в реляционных БД недопустимы.
