Обзор распространенных постреляционных СУБД 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Обзор распространенных постреляционных СУБД



В настоящее время к числу распространенных постреляционных СУБД можно отнести:

– UniVerse (Vmark Software);

– Postgres (University of California at Berkeley – UCB);

– Cache’ (Intersystems).

Ниже приведено краткое описание особенностей синтаксиса для этих СУБД в части создания таблиц, имеющих множественные атрибуты, и составления запросов к таким таблицам. Основное изложение ведется на примере фрагмента базы данных «Сессии». Следует отметить, что в СУБД Cache’ реализован также и объектно-ориентированный подход к управлению базой данных.

UniVerse

В данной СУБД используется расширение стандарта ANSI SQL. Для описания множественного атрибута используется ключевое слово MULTIVALUED, а для механизма ассоциации – ASSOC. Множественный атрибут трактуется как вложенная таблица с одним атрибутом.

Создание таблиц выглядит следующим образом:

CREATE TABLE Студент (

ID INTEGER,

  Фамилия_И_О CHARACTER VARYING(50),

Домашний_адрес CHARACTER VARYING(100),

Телефон CHARACTER VARYING(20),

Номер_группы CHARACTER VARYING(10),

Дисциплина INTEGER MULTIVALUED,

Семестр INTEGER MULTIVALUED,

Оценка INTEGER MULTIVALUED,

ASSOC Дисциплина (Семестр, Оценка),

PRIMARY KEY (ID)

)

 

CREATE TABLE Преподаватель (

ID INTEGER,

  Фамилия_И_О CHARACTER VARYING(50),

Домашний_адрес CHARACTER VARYING(100),

Телефон CHARACTER VARYING(20),

Кафедра INTEGER,

Должность CHARACTER VARYING(20),

Дисциплина INTEGER MULTIVALUED,

Семестр INTEGER MULTIVALUED,

ASSOC Дисциплина (Семестр),

PRIMARY KEY (ID)

)

 

CREATE TABLE Дисциплина (

ID INTEGER,

  Наименование CHARACTER VARYING(50),

Семестр INTEGER MULTIVALUED,

Преподаватель INTEGER MULTIVALUED,

ASSOC Семестр (Преподаватель),

PRIMARY KEY (ID)

)

Postgres (слайд 5)

В данной СУБД используется вариант стандарта SQL-3 под названием PostgreSQL. Он реализует все основные команды языка SQL, а также позволяет использовать команды и типы данных языка программирования (например, Си). PostgreSQL позволяет создавать множественные атрибуты с внутренней структурой (например, вложенные таблицы с несколькими атрибутами). В настоящее время Postgres относят к классу объектно-реляционных СУБД. В ней реализовано наследование таблиц и некоторые другие объектно-ориентированные механизмы.

Множественные поля реализуются в виде массивов. Создание таблиц выглядит следующим образом:

CREATE TYPE TMarks AS (Дисциплина INTEGER, Семестр INTEGER, Оценка INTEGER)

 

CREATE TABLE Студент (

ID INTEGER,

  Фамилия_И_О CHARACTER VARYING(50),

Домашний_адрес CHARACTER VARYING(100),

Телефон CHARACTER VARYING(20),

Номер_группы CHARACTER VARYING(10),

Оценки TMarks ARRAY[],

PRIMARY KEY (ID)

)

 

CREATE TYPE TDiscip AS (Дисциплина INTEGER, Семестр INTEGER)

 

CREATE TABLE Преподаватель (

ID INTEGER,

  Фамилия_И_О CHARACTER VARYING(50),

Домашний_адрес CHARACTER VARYING(100),

Телефон CHARACTER VARYING(20),

Кафедра INTEGER,

Должность CHARACTER VARYING(20),

ДП TDiscip ARRAY[],

PRIMARY KEY (ID)

)

 

CREATE TYPE TPrep AS (Преподаватель INTEGER, Семестр INTEGER)

 

CREATE TABLE Дисциплина (

ID INTEGER,

  Наименование CHARACTER VARYING(50),

Ведет TPrep ARRAY[],

PRIMARY KEY (ID)

)

Множественные атрибуты хранятся в массивах переменной длины со сложным типом данных. Запрос для вывода только средствами SQL будет слишком сложным, и поэтому здесь не приводится. Для эффективного выполнения такого запроса необходимо воспользоваться расширенными возможностями PostgreSQL (написать специальную функцию на высокоуровневом языке программирования).

В Postgres реализован механизм наследования структуры таблиц. При этом наследуются все атрибуты таблицы и добавляются новые атрибуты. Например, таблицы преподавателей и студентов можно объявить следующим образом:

CREATE TABLE Персона (

ID INTEGER,

  Фамилия_И_О CHARACTER VARYING(50),

Домашний_адрес CHARACTER VARYING(100),

Телефон CHARACTER VARYING(20),

PRIMARY KEY (ID)

)

 

CREATE TABLE Преподаватель (

Кафедра INTEGER,

Должность CHARACTER VARYING(20),

ДП TDiscip ARRAY[]

) Персона

 

CREATE TABLE Студент (

Номер_группы CHARACTER VARYING(10),

Оценки TMarks ARRAY[]

) Персона

Это позволяет повысить выразительные способности SQL при описании структур данных, а также снизить затраты на их описание.

Cache ’

Cache’ довольно условно можно отнести к постреляционным СУБД. В чистом виде в ней не реализована НФ2. «Постреляционность» Cache’ обусловлена возможностью связывания реляционной модели данных с объектно-ориентированной моделью штатными средствами СУБД. С одной стороны это не прямой способ реализации НФ2. Но с другой – предоставляет разработчикам более широкие возможности, присущие объектно-ориентированному подходу. Поэтому, Cache’ относят как к классу постреляционных, так и к классу объектно-ориентированных СУБД.

14.1.4. Достоинства и недостатки постреляционной модели данных (слайд 6)

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

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

Следует также отметить, что в настоящее время отсутствуют стандарты и средства автоматизации проектирования постреляционных баз данных. Создать наглядное графическое представление (диаграмму) постреляционной модели на концептуальном (инфологическом) уровне можно средствами, например, ER-диаграмм и соответствующих CASE-средств (например, ERWin Data Modeler). Так же наглядно изобразить ту же модель, но на уровне физическом (реализации) на сегодняшний день не так просто.

 



Поделиться:


Последнее изменение этой страницы: 2021-12-07; просмотров: 79; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.143.239 (0.01 с.)