Сделай Сам Свою Работу на 5

Логическое моделирование данных.





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

Целостность – используется для описания точности и корректности данных, хранящихся в базе.

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

Типы данных – простые, структурированные, ссылочные, абстрактные (объекты).

1. Простые – базовые, не обладают внутренней структурой. К ним относят целый, вещественный, булевой, перечисления, литерный, интервальный.

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



3. Ссылочный тип - указатель, содержит физический адрес местоположения информации в ОЗУ и ПЗУ.

4. Абстрактный тип – интерпретируемый (структурируемый тип с функциями, определенными над его элементами.

Системы управления БД развивают понятие «тип данных». Модель данных строится из типов данных. Это делается для того, чтобы реализовать на ЭВМ концептуальные модели предметных областей.

СУБД как язык высокого уровня поддерживает 3 модели данных:

1) Иерархическую

2) Сетевую

3) Реляционную

Первые 2 модели были реализованы в ранних версиях СУБД и основывались на файловой системе ОС. Реляционная модель основана на математического аппарата, формализованы и активно используется в БД для хранения информации. Иерархическая и сетевая модель основаны на указателях, не формализованы и в каждом конкретном случае имеют свои программные реализации. В современных СУБД иерархическая и сетевая модели реализуются посредствам реляционной модели данных, объектных расширений реляционной СУБД, XML документов и метаданных систем информационной поддержки принятия решений.



3.2 Ранние подходы к организации БД. (Иерархическая и сетевая модели

Иерархическая модель данных. Организует структуру БД в виде упорядоченного дерева. Вершины (узлы) дерева соответствуют сущности предметной области и называются типом записи. Запись – совокупность данных разного типа. Состоит из элементов разного типа. Дуга дерева называется связью «исходный-порожденный». Эта связь 1 к 1 или 1 ко многим. Т.е. одному экземпляру исходной записи соответствует 0, 1 или несколько порожденных связей. Доступ к каждому узлу дерева осуществляется по навигационному пути (иерархического пути).

Путь – последовательность типов записей от корня дерева до заданной записи. Ограничением целостности иерархической модели в том, что любая запись не может иметь больше 1 исходной (в вершину входит только 1 дуга). (Дерево: отдел-сотрудник(ребенок, трудовой стаж)). Еще одна схема, но мы коллективным голосованием решили забить болт и не рисовать его. Для поддержания связи «исходный-порожденный» в каждом экземпляре записи определенного типа наряду с элементами (атрибутами) хранится ссылка на брата и на ребенка этой записи (санта барбара какая-то). Операции:

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



2) Удаление данных. При удалении экземпляра исходной записи автоматически удаляются все экземпляры порожденной записи.

3) Извлечение данных. Доступ к нужной записи осуществляется по иерархическому пути с указанием ключей соответствующих экземпляров записей.

4) Обновление данных. Изменение значений осуществляется только над извлеченными записями.

Достоинства:

+интуитивность восприятия

+возможность описания сложных структурированных объектов

Недостатки:

-избыточность при реализации связей многие ко многим.

-отсутствие унификации языка для работы с БД.

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

Короче, куча кружочков, беспорядочные связи. Может входить куча стрелок в вершину и выходить куча стрелок из вершины. Сетевая модель – совокупность вершин, соединенных попарно ориентированными дугами. Ориентированный граф произвольного вида. В сетевой модели так же 2 вершины соединены навигационным путем. При этом движение осуществляется по стрелкам. Сетевая модель состоит из типов записей в узлах сети, связанных типами наборов. Набор – поименованная совокупность записей, образующая 2х уровневую иерархическую структуру «исходный-порожденный». В каждом типе набора один тип записей (из которого исходит стрелка) называется владельцем набора, а другой – членом набора. Каждый экземпляр набора содержит 1 экземпляр записи типа «владелец» и любое количество экземпляров записей типа «член набора». Сетевая БД – совокупность экземпляров записей различного типа, содержащих ссылки (указатели) между записями, представленными экземплярами наборов. Данную реализацию предложила организация «conference on data systems languages”. Ограничением целостности в конкретном экземпляре набора экземпляр записи «член набора» может иметь не более одного экземпляра записи «владелец набора». В экземпляре набора другого типа сочетание владельцев и членов может быть другое. (нихуя не понял). Толкует, что в конкретном типе набора может быть только один владелец.

Операции:

1) Извлечь запись. Можно по ключу. От извлеченной записи возможен переход как к подчиненным записям, так и к тем, которым она подчинена.

2) Включить запись. Возможно в ранее объявленный набор или просто в базу без привязки к какому-то набору. (особнячком).

3) Переключение. Из одного экземпляра набора в другой.

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

5) Модификация – изменение значения элемента записи.

Достоинства модели:

+простота реализации сложно структурированных сетевых объектов, включая связи «многие ко многим».

Минусы:

-отсутствие унификации языка БД.

-сложность реструктуризации.

В настоящее время сетевые модели поддерживаются посредствам навигационных типов данных реляционными СУБД.

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

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

Рассмотрим пример логической модели базы данных. IDEF1X

Эдгар Одд присвоил сущностям некую семантическую окраску. В логической модели БД могут быть следующие виды сущностей:

1. Стержневая сущность. Основное бизнес понятие предметной области (служащий и проект)

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

3. Характеристическая сущность. Связана со стержневой сущностью отношением один ко многим. (Трудовой стаж). Так как в реляционной модели отношения нормализованы и все атрибуты скаляры (элементарные) то для определения множественных значений используются характеристические сущности. Аналогичным примером являются дети служащего. Поэтому же признаку реализуется связь часть – целое.

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

Сущностные ассоциации (звездообразные кто-то там) которые являются основой аналитической обработки накопленных данных. OLAP – технология.

Алгебра отношений

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

Манипулирование данными в реляционной БД основано на алгебре отношений адаптированной Эдгаром Подом.

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

4 теоретико-множественных (пересечение, объединение, вычитание, декартово произведение) и 4 специальных оператора (проекция, ограничение, соединение и деление) данные операции положены в основу языка реляционной БД (языка SQL)

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

Физическая модель.

Detail

Detail_code Detail_name Detail_wight Material_code
D1 Болт M2
D2 Винт M5
D3 Муфта M9
D4 Гайка M2

Material

Material_code Material_name
M2 Сталь
M3 Медь
M5 Алюминий
M9 Чугун

Supplier

Supplier_code Supplier_name Supplier_city
S1 Иванов Иваново
S2 Петров Москва
S3 Сидоров Москва
S4 Серов Киров

Order

Order_id Order_code Detail_code Order_quantity Order_date
S1 D1 01.01.12
S1 D2 01.01.12
S1 D3 01.02.12
S1 D4 01.02.12
S1 D1 01.02.12
S1 D2 01.02.12
S2 D1 01.01.12
S2 D2 01.03.12
S3 D2 01.04.12
S4 D1 01.05.12

 

 

Операция объединения - Union – Бинарная операция над отношениями одинаковой структуры. В результате объединения 2х отношения получается отношение степень которого является степени исходных а мощность лежит в интервале мах(m1m2)<<mрез<<m1+m2.

Вывести список деталей вес которых больше 10, а так же тех деталей, которых было заказано больше 200.

SELECT d.DETAIL_CODE

FROM DETAIL d

WHERE d.DETAIL_CODE>10

UNION

SELECT o.DETAIL_CODE

FROM ORDER o

WHERE o.ORDER_QANTITY>200

Detail_code   Detail_code   Detail_code
D1 union D1 => D1
D3   D2   D2
    D3   D3

Эту операцию удобно использовать для объединения 2 одинаковых таблиц например номенклатур 2 заводов.

Операция пересечения – intersect – в результате операции мощность лежит в интервале от 0 до минимальной из 2 выборок.

Вывести список деталей вес которых больше 10 и из было заказано за раз менее 200.

SELECT d.DETAIL_CODE

FROM DETAIL d

WHERE d.DETAIL_CODE>10

INTERSECT

SELECT o.DETAIL_CODE

FROM ORDER o

WHERE o.ORDER_QANTITY<200

Detail_code   Detail_code   Detail_code
D1 intersect D1 => D1
D3        

 

Вычитание – Except – мощность в интервале от 0 до M1

Все 3 рассмотренные операции работают с отношениями одинаковой структуры.

Декартово произведение – CROSS JOIN – результатом является множество сочетаний всех строк, пересекаемых отношений. В результате операции получается от ношение степень которого M1+M2, а мощность M1*M2.

SELECT *

FROM DETAIL CROSS JOIN MATERIAL

SELECT *

FROM DETAIL, MATERAIL.

Detail_code DETAIL_WEIGHT Detail_MATERIAL MATERIAL_CODE MATERIAL_CODE* Material_name
D1 Болт M2 M2 Сталь
D1 Болт M2 M3 Медь
  Болт M2 M5 Алюминий
      M2 M9 чугун
.. .. .. .. M2 … итого 16 строк

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

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

Результатом этого запроса будет БОЛТ.

Проекция – унарная операция предназначенная для уменьшения степени отношения. (выбрать все фамилии поставщиков)

SELECT SUPPLIER_NAME

FROM SUPPLIER;

Supplier_name
Иванов
….

 

Ограничение – выборка строк отношения по заданному условию. (Условие задается в конъюнктивной нормальной форме) (<терм>V<терм>…)^(<терм>V<терм>…)

<терм>::=(Aiɵ’const’)/(AiɵAk);

Ai,Ak::=<Атрибуты отношения>

ɵ::={=,<,>,<>,≤,≥}

Выбрать поставщиков местоположение которых начинается с буквы М.

SELECT s.SUPPLIER_NAME

FROM SUPPLIER s

WHERE s.SUPPLIER_CITY LIKE ’М%’;

В итоге выбираются все, кто из Москвы.

Выбрать все поставки в январе 12 года.

SELECT SUPPLIER_CODE, DETAIL_CODE, ORDER_QUANTITY

FROM ORDER

WHERE ORDER_DATE BETWEEN ’01.01.12’and’31.01.12’;

Фильтрация данных

Условия фильтрации записываются в опции

FROM <имя таблицы1> [inner/tower/cross/Full/left/right/union] join <имя таблицы2> ON <условие>

Условие::=(AiɵBk)

Ai::=(атрибут таблицы1)

Bk::=(атрибут таблицы2)

ɵ::={=,<,>,<>,≤,≥}

Часто сравниваемыми атрибутами являются первичный и вторичный ключи соединяемых отншений.

Внутреннее соединение

Inner join

SELECT d.DETAIL_NAME, m.MATERIAL_NAME

FROM DETAIL d INNER JOIN MATERIAL m

ON d.MATERIAL_CODE=m.MATERIAL_CODE

DETAIL_NAME MATERIAL_NAME
Болт Сталь
Винт Алюминий
Муфта Чугун
Гайка Сталь

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

SELECT d.DETAIL_NAME, m.MATERIAL_NAME

FROM DETAIL d, MATERIAL m

WHERE d.MATERIAL_CODE=m.MATERIAL_CODE;

Для реализации запроса выбрать название деталей, которые поставляются поставщиками из Москвы нужно применить Inner Join 3 таблиц: деталей, поставок, поставщиков.

Связь осуществляется по коду детали между таблицей детали и таблицей поставок. 2 связь по коду поставщика.

Существует еще несколько вариантов соединения таблиц:

1. Внешнее соединение Full Join содержит все строки внутреннего соединения + расширенные строки NULL по принципу: каждую строку первой таблицы, которая не имеет связи ни с какой строкой второй таблицы, включить в результат, присвоив значение столбца 2 таблицы null.

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

2. Левое внешнее соединение Left Join: все строки внутреннего объединения + расширенные null таблицы 1. В нашем случае левое внешнее соединение равно внутреннему соединению. Потому что ссылочная целостность реляционной модели предполагает определение всех значений внешних ключей.

3. Правое внешнее соединение Right Join: Все строки внутреннего соединения + расширенные NULL строки таблицы 2.

4. Union Join Результат включает все строки таблиц 1 и 2 с расширением NULL.

СУБД основанные на реляционной модели:

1. Oracle, DB2 (Кроссплатформенные)

2. Windows (MS SQL Server) и Acsess.

3. InterBase, MySQL (Свободно распространяемые)

Системы управления БД

1. Управление базами во внешней памяти

2. Управление данными

3. Потребительские качества СУБД

Перечислим основные функции СУБД:

1. Управление данными во внешней памяти, организация метода доступа к дисковому пространству.

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

3. Поддержание работы с языками БД. Языка описания, манипулирования, целостности базы (SQL).

4. Администрирование БД.

5. Автоматизированная разработка приложений (Case средства поддерживающие генерацию форм, отчетов, средства проектирование БД, средство поддержки принятия решений)

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.