SQL-МОДЕЛЬ ДАННЫХ
Пунчик З.В.,
к.э.н.., доцент
Punik@tut.by
Оскерко В.С.
к.э.н., доцент
oskerkov@mail.ru
Белорусский государственный экономический университет (Беларусь)
Презентація
Понятие модели данных широко используется в технологиях организации хранения и обработки данных. Это понятие впервые было введено в начале 1970-х годов Э. Коддом при описании реляционной СУБД System R, разработанной компанией IBM. Понятие модели данных впоследствии стало широко применяться и для нереляционных подходов к реализации СУБД.
Общепризнанное определение модели данных как «абстрактное, самодостаточное, логическое определение объектов, операторов и прочих элементов, в совокупности составляющих абстрактную машину доступа к данным, с которой взаимодействует пользователь» принадлежит К. Дейту [1, с. 17]. Таким образом, модель данных определяет логические структуры данных и способы организации связей между ними; методы манипулирования данными; правила ограничения целостности данных.
Все современные СУБД базируются на основе определенной модели данных. Наиболее распространенной на практике и имеющей глубоко проработанную теоретическую основу является реляционная модель данных, основанная на математической теории отношений. Несмотря на появление новых, в том числе так называемых NoSQL моделей данных, эта модель по-прежнему является наиболее широко распространенной, к примеру, в рейтинге популярности СУБД за февраль 2019 г., рассчитываемый ежемесячно изданием DB-Engines, в ТОР-10 представлены семь СУБД, основанных на реляционной модели [2].
В рамках разработки уже упоминавшейся СУБД System R оформилась идея разработки специального универсального языка взаимодействия с базами данных реляционного типа, получившего название SQL. Плодотворная идея привела к тому, что в процессе своего развития SQL стал стандартным языком управления базами данных в широчайшем диапазоне применения от локальных баз данных до систем клиент/сервер, хранилищ данных и Интернет-приложений.
Несмотря на то, что во множестве публикаций декларируется, что язык SQL предназначен для работы с данными по реляционной модели, это не совсем верно. К концу 1990 гг. в связи с эволюцией языка SQL на практике сложилась (но не оформилась теоретически) собственная, так и называемая SQL-модель данных.
Реляционная и SQL-модель данных достаточно близки. Как и в реляционной модели данных, в SQL-модели поддерживается единственная родовая структура данных – базовая таблица. Понятие базовой таблицы в SQL родственно понятию отношения. Базовая таблица так же, как и отношение, имеет заголовок, который содержит уникальные имена столбцов, и тело, состоящее из строк, чья структура определяется заголовком таблицы. Однако, термин «отношение» не совсем корректно трактовать как синоним понятия «двумерная таблица».
Принципиальное отличие базовой таблицы SQL и отношения в том, что в строках таблицы могут встречаться и дубликаты, и отсутствующие значения. Еще одно существенное несходство – в отличие от отношения, где порядок следования атрибутов несущественен, в базовой таблице SQL порядок определения столбцов специфицирует порядок их следования. Из этих различий следует, что в SQL-модели в отличие от реляционной, нет обязательного ограничения целостности сущности, т.е. в базе данных могут существовать таблицы, для которых не определен первичный ключ. При этом в случае, если первичный ключ определен, ограничение целостности сущности поддерживается аналогично реляционной модели данных.
Таким образом, термины «таблица» в SQL-модели и «отношение» в реляционной хотя во многом совпадают, но не являются синонимами, что приводит к необходимости разграничения понятий «реляционная модель данных» и «SQL-модель данных».
К сожалению, во многих изданиях (в том числе учебных), посвященных проектированию и использованию баз данных, различия реляционной и SQL-модели не освещаются, преобладает подход, рассматривающий SQL-модель как практическое воплощение реляционной модели данных. С появлением новых направлений развития СУБД, таких как NoSQL, и в последствии NewSQL, формировать понимание SQL-модели данных у разработчиков и пользователей баз данных становится, на наш взгляд, весьма актуальным.
ЛИТЕРАТУРА
Дейт, К. Дж. Введение в системы баз данных / К.Дж. Дейт; [Пер. с англ. Ю.Г. Гордиенко]. – 7. изд. – М. [и др.] : Вильямс, 2001. – 1071 с.
Knowledge Base of Relational and NoSQL Database Management Systems (Date of access : 08.03.2019).