Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
материалы к БД по дисциплине.docx
Скачиваний:
19
Добавлен:
21.04.2019
Размер:
1.3 Mб
Скачать

5. Поддержка языков бд

Для работы с базами данных используются специальные языки, в целом называемые языками баз данных. В ранних СУБД поддерживалось несколько специализированных по своим функциям языков. Чаще всего выделялись два языка - язык определения схемы БД (SDL - Schema Definition Language) и язык манипулирования данными (DML - Data Manipulation Language). SDL служил главным образом для определения логической структуры БД, т.е. той структуры БД, какой она представляется пользователям. DML содержал набор операторов манипулирования данными, т.е. операторов, позволяющих заносить данные в БД, удалять, модифицировать или выбирать существующие данные.

В современных СУБД обычно поддерживается единый интегрированный язык, содержащий все необходимые средства для работы с БД, начиная от ее создания, и обеспечивающий базовый пользовательский интерфейс с базами данных. Стандартным языком наиболее распространенных в настоящее время реляционных СУБД является язык SQL (Structured Query Language). В нескольких лекциях этого курса язык SQL будет рассматриваться достаточно подробно, а пока мы перечислим основные функции реляционной СУБД, поддерживаемые на "языковом" уровне (т.е. функции, поддерживаемые при реализации интерфейса SQL).

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

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

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

Наконец, авторизация доступа к объектам БД производится также на основе специального набора операторов SQL. Идея состоит в том, что для выполнения операторов SQL разного вида пользователь должен обладать различными полномочиями. Пользователь, создавший таблицу БД, обладает полным набором полномочий для работы с этой таблицей. В число этих полномочий входит полномочие на передачу всех или части полномочий другим пользователям, включая полномочие на передачу полномочий. Полномочия пользователей описываются в специальных таблицах-каталогах, контроль полномочий поддерживается на языковом уровне.

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

Трехуровневая архитектура БД.

В 1975 г. Комитет планирования стандартов и норм Американского национального института стандартов предложил обобщенную структуру систем баз данных, признав необходимость использования трехуровневой архитектуры, которая и была признана в 1978 г.

Архитектура БД состоит из:

  • внешнего уровня (представления отдельных пользователей);

  • концептуального уровня (обобщенное представление пользователей);

  • внутреннего уровня (представления физического хранения).

Описание структуры данных на любом уровне называется схемой. На внешнем уровне – внешняя схема. На концептуальном уровне описание базы данных называется концептуальной схемой. На внутреннем уровне – внутренняя схема.

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

Преимущества и недостатки систем баз данных.

Преимущества: стандартизация оформления данных и процедура обработки данных, выгоды от защищенности данных, эффективность языков обработки данных и широта возможности системы, обеспечиваемых СУБД.

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

Лекция 2. Единицы информации.

Классификация и основные свойства единиц информации.

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

-реквизит;

-составная единица информации (СЕИ).

Единица информации характеризуется именем, структурой, значением, а так же допустимыми операциями над ними.

Имя – уникальное наименование в процессе обработки информации.

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

Операции над именем:

-открытие, закрытие;

-объявление синонимов.

Операции над структурой единицы информации:

Композиция – объединение различных по структуре единиц информации в новую структуру и новое множество значений.

Декомпозиция – дробление единиц информации на несовпадающие по структуре части.

Операции нормализация, свертка и выборка будут рассмотрены ниже.

Экономические документы и их структура.

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

Приходный ордер №___

Организация________________________________

Структура подразделения_____________________

Дата P1

Поставщик P2

Склад P3

05.09.06.

1527

01

Номенклатурный номер материала P4

Кол-во по документу Q1

Кол-во принято Q2

Цена Q3

Сумма Q4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис.1. Экономический документ приходный ордер с сокращенным составом реквизитов.

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

Реквизит имеет имя и множество значений. В зависимости от характера отображаемого свойства реквизиты делятся на:

-реквизиты признаки – качественное свойство объекта (номенклатурный номер материала);

-реквизиты основания – количественная характеристика объекта (количество материала, цена).

Реквизит можно переименовывать, осуществлять перекодировку.

Над реквизитами определены арифметические, логические операции и операции отношения (операции реляционной алгебры).

Составная единица информации (СЕИ). Понятие СЕИ.

Составной единицей информации (СЕИ) называется набор из реквизитов (атрибутов) и, возможно, других СЕИ.

Аппарат СЕИ предназначен для описания структуры экономических документов. Существует много способов описания структуры СЕИ. Рассмотрим способ описания который не зависит от конкретных языков программирования и типов использования СУБД. Документ приходной ордер можно представить в виде СЕИ.

Рис.2. Описание документа приходный ордер в виде СЕИ.

Единицу информации, входящую в СЕИ называют составляющей единицей информации. В рассматриваемом примере в качестве составляющей единицы информации можно рассматривать Р1, Р2, Р3, Р4. Для каждой СЕИ различают ее наименование, структуру, значение. Структура СЕИ - это реквизитный состав с учетом вхождения СЕИ более низкого уровня в состав рассматриваемой СЕИ.

Значение СЕИ - это некоторая конструкция, в которой каждому реквизиту, входящему в состав СЕИ присвоено значение или некоторое множество значений.

Документ Приходный ордер представляет собой СЕИ – обозначим ее С1. Форму документа «Приходный орден» можно разбить на две части: общую и предметную, которым соответствуют две СЕИ – «С11» и «С12».

С1 можно представить С1.(С11, С12), где С1 – идентификатор СЕИ.

( . ) – знак иерархического подчинения.

С11, С12 – составляющие С1. ( , ) – знак отношения следования одного уровня.

С11 и С12 являются составными единицами информации и включают следующие составляющие элементы:

С11. (Р1, Р2, Р3).

С12. (Р4, Q1, Q2, Q3, Q4).

Единица информации одной формы представляющая одно значение в некоторой конструкции называется простой СЕИ (С11), а представляющая несколько значений – составной или массивом (С12). Следовательно, в ее описании надо объявить длину массива т.е. максимальное число позиций (обычно указывают номер первой и последней позиций).

С1. (С11. (Р1, Р2, Р3), С12. (1:3). (Р4, Q1, Q2, Q3, Q4))

Можно дать графическую интерпретацию СЕИ в виде графа, где висячие вершины – реквизиты СЕИ (реквизиты – признаки и реквизиты - основания). Остальные вершины – промежуточные СЕИ, которые являются составляющими по отношению к основной СЕИ.

Одно значение С 12 содержит по одному значению реквизитов Р4, Q1, Q2, Q3, Q4. Одно значение С1 содержит по одному значению всех реквизитов из одного документа (Р1, Р2, Р3, Р4, Q1, Q2, Q3, Q4). Одно значение СЕИ в памяти ЭВМ называется записью.

Структура составной СЕИ С1 может быть преобразована к виду:

С1. (1:3). ( Р1, … ,Р4, Q1, … , Q4)

Табличная интерпретация СЕИ

С1

Р1

Р2

Р3

Р4

Q1

Q2

Q3

Q4

05.09.11

1527

01

05.09.11

1527

01

05.09.11

1527

01

Таблица 1.

Существует операция перестройки структуры СЕИ – нормализация. В результате этой операции СЕИ приобретает двухуровневую структуру, что соответствует двумерной таблице. Нормализованная структура более простая, но имеет увеличенный набор данных. Таблица 1. находится в первой нормальной форме. Операции над СЕИ те же, что и операции над единицами информации. Следует добавить сюда свертку и выборку.

Свертка - операция перехода от нормализованной структуры СЕИ к произвольной структуре, с соответствующим преобразованием значений (от таблицы 1 к рис. 2)

Выборка – операция выделения подмножества значений СЕИ, которое удовлетворяет заранее поставленным условиям выборки.

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

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

Общий вид показателя:

П (Р1, Р2, … , РN, Q), где Q- реквизит-основание, Р1, Р2, … , РN – реквизиты-признаки.

Структура показателя – его реквизитный состав.

Значение показателя – конструкция, в которой каждому реквизиту, входящему в показатель присвоено конкретное значение из соответствующего домена.

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

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

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

Показатель имеет: имя, структуру (состав реквизитов), значение.

Для установления признаков и оснований показателя можно руководствоваться правилами:

Если значения реквизита исходное данное (число) или результат арифметических вычислений – это реквизит основания.

Если значение текстовое – реквизит признак.

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

Пример. Реквизиты документа «Приходной орден»:

Дата, КодСкл , КодПост

КМат, Кво-док, Кво-пр, Цена, Сумма

Реквизиты – основания Кво-док, Кво-пр, Цена, Сумма представляют количественную характеристику оприходования материала на складе.

Следовательно имеем четыре показателя.

Чтобы определить структуру каждого реквизита – основания определить соответствующие реквизиты – признаки. Здесь необходимо использовать функциональных зависимостей.

П1 (КМат, КодСкл, КодПост, Дата, Кво-док)

П2 (КМат, КодСкл, КодПост, Дата, Кво-пр)

П3 (КМат, Цена)

П4 (КМат, КодСкл, КодПост, Дата, Сумма)

Расчетная формула, отражающая связь оснований трех показателей

Сумма = Цена * Кво-пр.

Реквизиты признаки показателя П4 результат объединения реквизитов признаков показателей П2 и П3

Граф взаимосвязи показателей

Использование показателей.

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

Описание структуры входных, выходных и нормативно-справочных показателей, расчетные формулы, а также граф взаимосвязи показателей определяют постановку экономической задачи. Использование аппарата экономических показателей позволяет создать структуру БД с минимальной избыточностью. Для этого в результате анализа документов ЭИС необходимо сначала выделить показатели, а затем объединить атрибуты родственных показателей по принципу: в одно отношение (таблицу) включить показатели с одинаковым составом атрибутов признаков.

Полученные в рассматриваемом примере показатели образуют в БД два отношения.

Первое - с атрибутами КодМат, Цена и второе - с атрибутами КодМат, КодСкл, КодПост, Дата, Кво-пр, Кво-док, Сумма.

Показатель является разновидностью СЕИ.

Лекция 3. Реляционная модель данных (РМД).

Моделью данных называется формализованное описание структуры данных и операций над ними.

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

В настоящее время различают несколько видов моделей данных, в том числе:

1. Теоретико-графовые модели (сетевые и иерархические).

2. Теоретико-множественные модели, использующие математический аппарат. К ним относятся реляционные модели.

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

Реляционная модель – это абстрактная теория данных, основанная на некоторых положениях математики ( в основном теории множеств и логики предикатов).

Впервые принципы реляционной модели были изложены Коддом (Е.F.Codd) в 70-х годах. Математик по образованию он предложил использовать аппарат теории множеств и математической логики в управлении БД. Он показал, что данные могут быть организованы в виде двумерных таблиц особого вида, известного в математике как отношение (relation). Над отношениями могут выполняться различные операции. Кодд также предложил понятие реляционного исчисления.

В реляционной модели рассматриваются три аспекта:

1. Структурный аспект. Данные должны быть представлены в виде отношений.

2. Аспект целостности данных. БД содержит полную и непротиворечивую информацию, необходимую для корректного функционирования приложений.

3. Аспект манипулирования данными. В распоряжении пользователя имеются операторы манипулирования данными.

БД поставщиков и деталей

S

S#

SNAME

STATUS

CITY

S1

Smith

20

London

S2

Jones

10

Paris

S3

Black

30

Paris

S4

Clark

20

London

P

P1

Nut

Red

12

London

P2

Bolt

Green

17

Paris

P3

Screw

Blue

17

Paris

P4

Screw

Red

14

London

SP

S#

P#

QTY

S1

P1

300

S1

P2

200

S1

P3

400

S2

P1

300

S2

P2

400

S3

P2

200

Переменная-отношение S представляет поставщиков. Каждый поставщик имеет уникальный номер( S# ); имя(SNAME); рейтинг (STATUS); место расположения (CITY).

Переменная-отношение P представляет детали. У каждой детали есть уникальный номер( P# ); название(PNAME); цвет (COLOR); вес (WGT); место, где эта деталь храниться (CITY).

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

Термины на понятийном уровне:

Отношение – это таблица.

Кортежи – строки таблицы.

Атрибуты – ее столбцы или поля.

Количество строк в таблицах – кардинальность таблицы или кардинальное число.

Количество столбцов – степень отношения.

Домен – тип данных; в частности простой, определяемый системой (например integer, char), а в общем случае – пользователем, как, например, тип S#.

Атрибут – использование домена внутри отношения. На одном и том же домене могут быть определены несколько атрибутов; но каждый атрибут определен на одном домене

Первичный ключ – уникальной идентификатор.

Отличие отношения от таблицы: в отношение определены типы атрибутов, а в таблице нет. В отношении нет повторяющихся строк. Таблицы в БД являются переменными- отношений, т.е. их значения - это значения отношений в разное время.

Отношение реляционной БД может быть описано в терминах теории множеств.

Пусть дана совокупность множеств доменов D1, D2, … , DN. Декартовым произведением этих множеств (D1* D2*, … , *DN) является множество всех возможных упорядоченных кортежей (d1, d2, … , dn) таких, что d1  D1, … , dn  DN.

Пример декартовых произведений двух множеств S и Q.

Q

Q1

Q2

Q3

S

Q

S1

Q1

S1

Q2

S1

Q3

S2

Q1

S2

Q2

S2

Q3


S

*

S1

S2

R есть отношение на множестве доменов D1, D2, … , DN, если R является подмножеством декартова произведения D1, D2, … , DN.

Отношение первой степени называется унарным, второй степени -бинарным, третьей степени- называется тернарным. Остальные n-арные.

Свойства отношений:

  1. Отсутствие одинаковых кортежей. Данное свойство следует из того факта, что тело отношения- это математическое множество (кортежей), а в математике множества по определению не содержит одинаковых элементов.

  2. Отсутствие упорядочения кортежей. Данное свойство также следует из того факта, что тело отношения- это математическое множество, а в математике простые множества не упорядочены.

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

  4. Отношение имеет имя, которое отличается от имен других отношений.

  5. Каждый кортеж содержит ровно одно значение для каждого атрибута. Отношение, удовлетворяющее этому свойству, называется нормализованным, или представленным в первой нормальной форме.

Ключи.

Потенциальные ключи. Потенциальный ключ К для R- это подмножество множества атрибутов R, обладающее свойствами:

- уникальности (нет двух кортежей R с одинаковым значением К)

- неизбыточности т.е. никакое из подмножеств множества К не обладает свойством уникальности (если из S#, P# удалить атрибут S#, то значения P# будут повторяться).

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

Внешние ключи используются в БД для связывания значений атрибутов из разных переменных -отношений и следовательно самих переменных - отношений. Если в БД отношения связаны, ее можно рассматривать как целостную. Внешний ключ, скажем S в переменной отношения SP, представляет собой атрибут, такой что:

- существует переменная -отношения S с потенциальным ключом S

- каждое значение внешнего ключа S в текущем значении отношения SP обязательно совпадает со значением потенциально ключа S некоторого кортежа в текущем значении отношения S. Внешний ключ может быть многоатрибутный.

Пример:

S - потенциальный ключ отношения S.

S - внешний ключ отношения SP.

P - потенциальный ключ отношения P.

P - внешний ключ отношения SP.

(S, P) – первичный ключ отношения SP. Он составной.

Составной ключ содержит два и более атрибутов.

Если в отношении SP ввести кортеж со значениями, например, S5; P8; 320, то эта информация будет системой отвергнута т.к. не могут существовать поставки несуществующих деталей.

Реляционные СУБД в качестве альтернативы должны поддерживать ключи, определяемые системой(суррогатные ключи ). Суррогатные ключи - это доступные пользователю значения, а идентификаторы объектов – это адреса, или указатели, которые, по крайней мере концептуально от пользователя скрыты. Суррогатный ключ не имеет никакого отношения к предметной области и заменяет длинный составной первичный ключ.

Суперключнадмножество потенциального ключа. Например { S, CITY} – суперключ переменной -отношения S.

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

Лекция 4. Реляционная алгебра.