
- •Информация и компьютер
- •Иерархические системы
- •Сетевые системы
- •Инфологическое проектирование баз данных
- •Выбор модели данных. Существование различных моделей обусловлено большим количеством разработанных к настоящему времени разнообразных субд.
- •Реляционные операторы
- •Целостность внешних ключей
- •Операторы dml (Data Manipulation Language) - операторы манипулирования данными
Выбор модели данных. Существование различных моделей обусловлено большим количеством разработанных к настоящему времени разнообразных субд.
Проектировщик БнД, выбирая для своей системы СУБД общего назначения, прежде всего, сталкивается с проблемой выбора наиболее подходящей модели данных для своей прикладной области. В первую очередь он оценивает возможности рассматриваемой модели данных с точки зрения так называемого прямого моделирования понятий, сформулированных в инфологической модели ПО, только такими структурами данных, которые составляют понятийный базис данной модели. Чем больше конструкций инфологической модели ПО может быть представлено прямым моделированием при датологическом проектировании БД, тем более удачной считается рассматриваемая модель данных .
Кроме анализа возможностей прямого моделирования проектировщик оценивает и такие свойства модели данных СУБД, как:
сложность модели для изучения пользователями
простота и элегантность (возможность представления структуры данных в наглядной форме)
сложность и трудоемкость написания определений данных и программ для манипулирования структурами данных и пр.
Реляционная модель данных
Реляционная модель состоит из трех частей, описывающих разные аспекты реляционного подхода: структурной части, манипуляционной части и целостной части.
В структурной части модели фиксируется, что единственной структурой данных, используемой в реляционных БД, является нормализованное n-арное отношение. В манипуляционной части модели утверждаются два фундаментальных механизма манипулирования реляционными БД - реляционная алгебра и реляционное исчисление. Первый механизм базируется в основном на классической теории множеств (с некоторыми уточнениями), а второй - на классическом логическом аппарате исчисления предикатов первого порядка. Мы рассмотрим эти механизмы более подробно на следующей лекции, а пока лишь заметим, что основной функцией манипуляционной части реляционной модели является обеспечение меры реляционности любого конкретного языка реляционных БД: язык называется реляционным, если он обладает не меньшей выразительностью и мощностью, чем реляционная алгебра или реляционное исчисление.
Наконец, в целостной части реляционной модели данных фиксируются два базовых требования целостности, которые должны поддерживаться в любой реляционной СУБД. Первое требование называется требованием целостности сущностей. Объекту или сущности реального мира в реляционных БД соответствуют кортежи отношений. Конкретно требование состоит в том, что любой кортеж любого отношения отличим от любого другого кортежа этого отношения, т.е. другими словами, любое отношение должно обладать первичным ключом. Как мы видели в предыдущем разделе, это требование автоматически удовлетворяется, если в системе не нарушаются базовые свойства отношений.
Требование целостности по ссылкам, или требование внешнего ключа состоит в том, что для каждого значения внешнего ключа, появляющегося в ссылающемся отношении, в отношении, на которое ведет ссылка, должен найтись кортеж с таким же значением первичного ключа, либо значение внешнего ключа должно быть неопределенным (т.е. ни на что не указывать).
В основе реляционной модели лежит понятие «отношение», представляющее собой подмножество доменов.
Домен – некоторое множество элементов (например, множество целых чисел или множество допустимых значений, которые может принимать объект по некоторому свойству и т.п.).
Отношение - это множество кортежей, соответствующих одной схеме отношения. Иногда, чтобы не путаться, говорят "отношение-схема" и "отношение-экземпляр", иногда схему отношения называют заголовком отношения, а отношение как набор кортежей - телом отношения. На самом деле, понятие схемы отношения ближе всего к понятию структурного типа данных в языках программирования. Было бы вполне логично разрешать отдельно определять схему отношения, а затем одно или несколько отношений с данной схемой.
Ключ отношений. Если R – схема отношения с атрибутами A1, A2, … An и множеством F функциональных зависимостей, X – подмножество множества атрибутов {A1, A2, … An}, то X называется ключом в случае выполнения следующих условий:
Зависимость X -> A1A2An принадлежит замыканию F+ (полному множеству функциональных зависимостей, которые можно получить из F с помощью правил вывода).
Ни для какого собственного подмножества X зависимость Y -> A1A2An где YX, не принадлежит замыканию F+.
Введём понятия первичных атрибутов. Атрибут Ai называется первичным, если он входит в состав любого ключа (первичного или возможного) отношения. В противном случае будем называть его непервичным (вторичным).