ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 11.04.2019

Просмотров: 5798

Скачиваний: 8

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
  1. Уровни представления баз данных; понятия схемы и подсхемы.

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

Обобщение представлений всех пользователей о данных называется концептуальной моделью (схемой) БД. Концептуальная модель представляет информационное описание предметной области с учетом логических взаимосвязей, поэтому её еще называют инфологической (информационно-логической) моделью. В модели отсутствуют какие-либо понятия, связанные с ЭВМ, памятью ЭВМ, способами размещения данных в памяти ЭВМ, и, по сути, это модель только предметной области.

Рис. 2 Обобщение представления пользователей о данных

Как уже отмечалось, для создания базы данных и работы с ней используется система управления базами данных. Каждая конкретная СУБД поддерживает определенный вид данных (форматов записей и отношений), называемый моделью данных СУБД.

Следующий этап разработки базы данных предполагает выбор представления концептуальной модели с помощью модели данных конкретной СУБД. Полученное таким образом представление концептуальной модели называется логической моделью БД. Или другими словами, логическая модель – это концептуальная схема, специфицированная в языке конкретной СУБД. Логическая модель представляет данные и элементы данных вне зависимости от их содержания и среды хранения. Далее разработчик системы средствами СУБД отображает полученную логическую модель БД в память ЭВМ и определяет методы доступа. Полученное представление данных в памяти ЭВМ называется внутренним представлением или структурой хранения. Прикладные программы работают с логической моделью, причем каждому пользователю представляется подмножество этой логической модели (подсхема), отражающее его представление о предметной области. Каждая прикладная программа «видит» и обрабатывает только те данные, которые необходимы именно ей.

Соответствующее «видение» данных прикладными программами (пользователями) представляет собой внешние представления. Взаимосвязь вышеуказанных моделей изображена на рис.3.

Рис.3 Различные представления о данных в БД

На данной схеме выделены три различных уровня описания данных (внешний, концептуальный, внутренний). Эти уровни формируют так называемую трехуровневую архитектуру ANSI/SPARC, предложенную в 1975 г. Комитетом планирования стандартов и норм SPARC (Standards Planning and Requirements Committee) Национального института стандартизации США (American National Standards Institute – ANSI). Основная цель этой архитектуры состоит в отделении пользовательского представления о данных в базе данных от их физического представления. Использование таких представлений о данных позволяет обеспечить выполнение основного требования к БД – независимости программ и данных.


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

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

Схема также есть сеть (а возможно, и дерево) подсхем, последние репрезентируют различные аспекты концептуального содержания закодированного схемой понятия. Как пример рассмотрим схему понятия “лицо”. Она расчленяется на ряд подсхем, репрезентирующих отдельные части лица: нос, рот, глаз. Каждая подсхема в свою очередь распадается на конфигурацию подсхем. глаз-схема, например, содержит подсхемы зрачек, глазное яблоко и т.д. Как выполнение полной процедуры зависит от успешной реализации ее подпроцедур, так и пригодность схемы зависит от пригодности каждой составляющей ее подсхемы. 

  1. Модели данных. Иерархическая, сетевая и реляционная модели данных; схема отношения

Система баз данных поддерживает в памяти ЭВМ модель предметной области. Однако результат моделирования зависит не только от предметной области, но и от используемой СУБД, поскольку каждая система предоставляет свой инструментарий для отображения предметной области [17].

Этот инструментарий принято называть моделью данных. В то же время результат отображения предметной области в терминах модели данных называется моделью баз данных.

Модель данных определяется тремя компонентами:

. допустимой организацией данных;

. ограничениями целостности (семантической);

. множеством операций, допустимых над объектами модели данных.

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

К основным понятиям иерархической структуры относятся уровень, узел и связь. Узел - это совокупность атрибутов данных, описывающих некоторый объект. На схеме иерархического дерева узлы представляются вершинами графа. Каждый узел на более низком уровне связан только с одним узлом, находящимся на более высоком уровне. Иерархическое дерево имеет только одну вершину, не подчиненную никакой другой вершине и находящуюся на самом верхнем - первом уровне. Зависимые (подчиненные) узлы находятся на втором, третьем и т. д. уровнях. Количество деревьев в базе данных определяется числом корневых записей. К каждой записи базы данных существует только один иерархический путь от корневой записи.

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

Реляционная модель данных объекты и связи между ними представляет в виде таблиц, при этом связи тоже рассматриваются как объекты. Все строки, составляющие таблицу в реляционной базе данных, должны иметь первичный ключ. Все современные средства СУБД поддерживают реляционную модель данных.


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

Каждая реляционная таблица представляет собой двумерный массив и обладает следующими свойствами:

1. Каждый элемент таблицы соответствует одному элементу данных.

2. Все столбцы в таблице однородные, т.е. все элементы в столбце имеют одинаковый тип и длину.

3. Каждый столбец имеет уникальное имя.

4. Одинаковые строки в таблице отсутствуют;

5. Порядок следования строк и столбцов может быть произвольным.

Постреляционные модели данных:

Иерархическая модель

Сетевая модель

Реляционная модель

Отношение — фундаментальное понятие реляционной модели данных. По этой причине модель и называется реляционной (от лат. relatio — «отношение», «зависимость», «связь»).

Понятие «схема отношения» соответствует описанию структуры таблицы.

  1. Язык манипулирования данными для реляционной модели; Реляционная алгебра и язык SQL.

Манипулирование данными в РМД осуществляется с помощью операций реляционной алгебры (РА) или реляционного исчисления [1]. Реляционная алгебра основана на теории множеств, а реляционное исчисление базируется на математической логике.

Реляционная алгебра - это язык операций, выполняемых над отношениями - таблицами реляционной базы данных. Операции реляционной алгебры позволяют на основе одного или нескольких отношений создавать другое отношение без изменения самих исходных отношений. Полученное другое отношение обычно не записывается в базу данных, а существует в результате выполнения SQL-запроса. Для каждой операции реляционной алгебры будет дана её реализация в виде запросов на языке SQL.

Операция выборки

Операция выборки работает с одним отношением  и определяет результирующее отношение R, которое содержит только те кортежи (или строки, или записи), отношения , которые удовлетворяют заданному условию (предикату P).

Таким образом, операция выборки - унарная операция - и записывается следующим образом:

,

где P - предикат (логическое условие).

Запрос SQL

SELECT * from R3 WHERE A3>'d0'

Теперь посмотрим, что получится в результате выполнения этой операции реляционной алгебры и соответствующего ей запроса SQL. В таблице ниже дано одно отношение, с которым работает эта операция.

R3

A1

A2

A3

A4

3

hh

yl

ms

4

pp

a1

sr

1

rr

yl

ms

Просматриваем столбец А3 и устанавливаем, что предикату A3>'d0' удовлетворяют записи в первой и третьей строках исходного отношения (так как номер буквы y в алфавите больше номера буквы d). В результате получаем следующее новое отношение, в котором две строки:

R

A1

A2

A3

A4

3

hh

yl

ms

1

rr

yl

ms


Комбинировать всевозможные логические условия для выборок Вам поможет материал "Булева алгебра (алгебра логики)".

А в материалах раздела "Программирование PHP/MySQL" Вы найдёт немало примеров комбинаций различных логических условий для выборок из базы данных.

Операция проекции

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

Запрос SQL

SELECT DISTINCT A4, A3 from R3

Пусть вновь дано то же отношение R3:

R3

A1

A2

A3

A4

3

hh

yl

ms

4

pp

a1

sr

1

rr

yl

ms

Из исходного отношения выбираем только столбцы А4 и А3 и видим, что строки со значениями - первая и третья - идентичны. Исключаем дубликат (за это отвечает ключевое слово DISTINCT в SQL-запросе, которое говорит, что нужно выбрать только уникальные записи) и получаем следующее новое отношение, в котором два атрибута и две строки (записи):

R

A4

A3

ms

yl

sr

a1

Операция объединения

Результатом объединения двух множеств (отношений) А и В () будет такое множество (отношение) С, которое включает в себя те и только те элементы, которые есть или во множестве А или во множестве В. Говоря упрощённо, все элементы множества А и множества В, за исключением дубликатов, образующихся за счёт того, что некоторые элементы есть и в первом, и во втором множестве. Операция объединения реляционной алгебры идентична операции объединения множеств, которая также описана в материале "Множества и операции над множествами".

Запрос SQL

SELECT A1, A2, A3 from R1 UNION SELECT A1, A2, A3 from R2

Теперь посмотрим, что получится в результате выполнения этой операции реляционной алгебры и соответствующего ей запроса SQL. Теперь даны два отношения, так как операция объединения - бинарная операция:

R1


R2

A1

A2

A3

A1

A2

A3

Z7

aa

w11

X8

pp

k21

B7

hh

h15

Q2

ee

h15

X8

pp

w11

X8

pp

w11

Объединяем строки первого и второго отношения и видим, что третья строка, которая является третьей и в первом, и во втором отношении - идентичны, поэтому её включаем в новое отношение только один раз. Получаем следующее отношение:

R

A1

A2

A3

Z7

aa

w11

B7

hh

h15

X8

pp

w11

X8

pp

k21

Q2

ee

h15

Важно следующее: операция объединения может быть выполнена только тогда, когда два отношения обладают одинаковым числом и названиями атрибутов (столбцов), или, говоря формально, совместимы по объединению.

Операция пересечения

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


Запрос SQL

SELECT A1, A2, A3 from R1 INTERSECT SELECT A1, A2, A3 from R2

В некоторых диалектах SQL отсутствует ключевое слово INTERSECT. Его заменой, например, в MySQL и других, является INNER JOIN. О том, как работает оператор SQL JOIN вообще и его разновидности INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN и FULL OUTER JOIN - на уроке SQL JOIN - соединение таблиц базы данных.

Запрос MySQL

SELECT * from R1 INNER JOIN R2 WHERE


   R1.A1 = R2.A1 AND


   R1.A2 = R2.A2 AND


   R1.A3 = R2.A3

Теперь посмотрим, что получится в результате выполнения этой операции реляционной алгебры и соответствующего ей запроса SQL. Вновь даны два отношения R1 и R2:

R1


R2

A1

A2

A3

A1

A2

A3

Z7

aa

w11

X8

pp

k21

B7

hh

h15

Q2

ee

h15

X8

pp

w11

X8

pp

w11

Просматриваем все записи в двух отношениях, и обнаруживаем, что и в первом, и во втором отношении есть одна строка - та, которая является третьей и в первом, и во втором отношении. Получаем новое отношение:

R

A1

A2

A3

X8

pp

w11

Операция разности

Разность двух отношений R1 и R2 () состоит из кортежей (или записей, или строк), которые имеются в отношении R1, но отсутствуют в отношении R2. Отношения R1 и R2 должны быть совместимы по объединению. Операция разности реляционной алгебры идентична операции разности множеств, которая также описана в материале "Множества и операции над множествами".

Запрос SQL

SELECT A1, A2, A3 from R2 EXCEPT

SELECT A1, A2, A3 from R1

Установим, что получится в результате выполнения этой операции реляционной алгебры и соответствующего ей запроса SQL. Вновь даны два отношения R1 и R2:

R1


R2

A1

A2

A3

A1

A2

A3

Z7

aa

w11

X8

pp

k21

B7

hh

h15

Q2

ee

h15

X8

pp

w11

X8

pp

w11

Из отношения R2 исключаем строку, которая есть также в отношении R2 - третью - и получаем новое отношение:

R

A1

A2

A3

X8

pp

w11

Q2

ee

h15

Операция декартова произведения

Операция декартова произведения () определяет новое отношение R, которое является результатом конкатенации каждого кортежа отношения R1 с каждым кортежем отношения R2.

Запрос SQL

SELECT * from R3, R4

Установим, что получится в результате выполнения этой операции реляционной алгебры и соответствующего ей запроса SQL. Даны два отношения R3 и R4:

R3


R4

A1

A2

A3

A4

A5

A6

3

hh

yl

ms

3

hh

4

pp

a1

sr

4

pp

1

rr

yl

ms



В новом отношении должны присутствовать все атрибуты (столбцы) двух отношений. Сначала первая строка отношения R3 сцепляется с каждой из двух строк отношения R4, затем вторая строка отношения R3, затем третья. В результате должно получиться 3 Х 2 = 6 кортежей (строк). Получаем такое новое отношение:

R

A1

A2

A3

A4

A5

A6

3

hh

yl

ms

3

hh

3

hh

yl

ms

4

pp

4

pp

a1

sr

3

hh

4

pp

a1

sr

4

pp

1

rr

yl

ms

3

hh

1

rr

yl

ms

4

pp