Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
303
Добавлен:
11.05.2015
Размер:
3.89 Mб
Скачать
  • Часть 1 – sql/Структура (sql/Framework) – определяет общие требования соответствия и фундаментальные понятия sql.

  • Часть 2 – SQL/Основы (SQL/Foundation) – определяет синтаксис и операции SQL.

  • Часть 3 – SQL/Интерфейс вызовов (SQL/Call-Level Interface) – определяет интерфейс программного взаимодействия приложений с SQL.

  • Часть 4 – SQL/Встроенные модули (SQL/Persistent Stored Modules) – определяет управляющие структуры, лежащие в основе SQL-программ. Часть 4 определяет и модули, содержащие SQL-программы.

  • Часть 5 – SQL/Языковая привязка к серверу (SQL/Host Language Bindings) – определяет возможности встраивания операторов SQL в приложения, созданные на основе стандартных языков программирования.

SQL3 позволяет использовать два минимальных уровня взаимодействия, которые может объявить СУБД:

  • поддержка ядра SQL (Core SQL Support);

  • поддержка расширенного SQL (Enhanced SQL Support).

Как и любой стандарт, SQL3 обладает некоторыми недостатками, однако большинство производителей, которые подчинились стандарту, добавили в свои реализации СУБД дополнительные по сравнению со стандартом SQL3 возможности, нивелирующие недостатки стандарта.

И, наконец, наиболее современным на текущий момент стандартом, который до сих пор находится в разработке, является т.н. SQL-2008.

Многие специалисты считали, что в варианте стандарта, следующем за SQL-99, будут всего лишь исправлены неточности SQL-99. Но на самом деле, в SQL-2003 специфицирован ряд новых и важных свойств.

Прежде всего, претерпела некоторые изменения общая организация стандарта. Часть 5 (SQL/Bindings) больше не существует; соответствующие спецификации включены в часть 2. Раздел части 2, посвященный информационной схеме, выделен в отдельную часть 11. Появились две новые части - 13 и 14. Часть 13 полностью называется «SQL Routines and Types Using the Java Programming Language» («Использование подпрограмм и типов SQL в языке программирования Java»).

Появление такой отдельной части стандарта оправдано повышенным вниманием к языку Java со стороны ведущих производителей SQL-ориентированных СУБД. Наконец, последняя часть SQL-2003 посвящена спецификациями языковых средств, позволяющих работать с XML-документами в среде SQL.

Наиболее серьёзные изменения языка SQL, специфицированные в части 2 стандарта SQL-2003, касаются следующих аспектов:

  • типы данных;

  • подпрограммы, вызываемые из SQL;

  • расширенные возможности оператора CREATE TABLE;

  • новый объект схемы – генератор последовательностей;

  • новые виды столбцов – идентифицирующие столбцы (identity column) и генерируемые столбцы (generated column);

  • новый оператор MERGE.

В SQL-2003 произошли некоторые изменения в системе типов SQL. Некоторые типы удалены, а другие добавлены.

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

3.1.6. Использование методологии idef1x

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

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

Методология IDEF1X – один из подходов к семантическому моделированию данных, основанный на концепции «сущность-связь» (Entity-Relationship). Это инструмент для анализа информационной структуры систем различной природы.

Информационная модель, построенная с помощью IDEF1X-методологии, отображает логическую структуру информации об объектах системы.

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

Основными объектами концептуальной модели являются сущности и связи.

Сущность (entity) – некоторый обособленный объект или событие моделируемой системы, имеющий определённый набор свойств – атрибутов (attributes).

Отдельный элемент этого множества называется «экземпляром сущности».

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

Правила для атрибутов сущности:

  • каждый атрибут должен иметь уникальное имя;

  • сущность может обладать любым количеством атрибутов;

  • сущность может обладать любым количеством наследуемых атрибутов, но наследуемый атрибут должен быть частью первичного ключа сущности-родителя;

  • для каждого экземпляра сущности должно существовать значение каждого его атрибута (правило необращения в нуль - Not Null);

  • ни один из экземпляров сущности не может обладать более чем одним значением для её атрибута.

Сущность изображается на ER-диаграмме в виде прямоугольника, в верхней части которого приводится её название; далее следует список атрибутов. Ключевые атрибуты могут быть выделены подчеркиванием или иным способом.

Стандарт IDEF1X описывает способы изображения двух типов сущностей – независимой и зависимой, и связей (relationships) – идентифицирующих (identifying) и неидентифицирующих (non-identifying).

Рисунок 3.1.6.1 – Стандарт IDEF1X

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

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

Сущность называется зависимой, если однозначная идентификация её экземпляра зависит от его связей с другими сущностями.

Сущность может обладать атрибутами, которые наследуются через связь с родительской сущностью. Последние обычно являются внешними ключами (FK, foreign keys) и служат для организации связей между сущностями.

Если внешний ключ сущности используется в качестве её первичного ключа (PK, primary key) или как часть составного первичного ключа, то сущность является зависимой от родительской сущности.

Если внешний ключ не является первичным и не входит в составной первичный ключ, то сущность является независимой от родительской сущности.

Если сущность является зависимой, то связь её с родительской сущностью называется идентифицирующей, в противном случае – неидентифицирующей.

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

Идентифицирующая связь изображается сплошной линией, неидентифицирующая – пунктирной.

Связи даётся имя, выражаемое грамматической формой глагола. Для связи дополнительно может присутствовать указание мощности: какое количество экземпляров сущности-потомка может существовать для сущности-родителя.

Имя связи всегда формируется с точки зрения родителя, так что может быть образовано предложение, если соединить имя сущности родителя, имя связи, выражение мощности и имя сущности-потомка (например «много СТУДЕНТов - сдают – ЭКЗАМЕН»).

CASE-средства разработки БД позволяют на основе концептуальной модели генерировать физическую модель и программный код создания базы данных для большинства наиболее распространенных СУБД.