Модели данных и системы управления базами данных
.pdf
Òеоретический рàздел |
21 |
|
|
получили бы àлгебрàическое вырàжение, которое читàлось бы, нàпример, следующим
обрàзом:
∙выполнить соединение отношений СОТРУДНИКИ и ОТДЕЛЫ по условию СОТР_НОМ = ОТД_НАЧ;
∙огрàничить полученное отношение по условию ÎÒÄ_ÊÎË > 50;
∙спроецировàть результàт предыдущей оперàции нà àтрибут ÑÎÒÐ_ÈÌß, ÑÎÒÐ_ÍÎÌ.
Ìы четко сформулировàли последовàтельность шàгов выполнения зàпросà, кàждый из которых соответствует одной реляционной оперàции. Åсли же сформулировàть тот же зàпрос с использовàнием реляционного исчисления, которому посвящàется этот рàздел, то мы получили бы формулу, которую можно было бы прочитàть, нàпример, следующим обрàзом: Âыдàть ÑÎÒÐ_ÈÌß и ÑÎÒÐ_ÍÎÌ для сотрудников тàких, что существует отдел с тàким же знàчением ÎÒÄ_ÍÀ× и знàчением ÎÒÄ_ÊÎË большим 50.
Во второй формулировке мы указали лишь характеристики результирующего отношения, но ничего не сказали о способе его формирования. В этом случае система должна сама решить, какие операции и в каком порядке нужно выполнить над отношениями СОТРУДНИКИ и ОТДЕЛЫ. Обычно говорят, что алгебраическая формулировка является процедурной, т.е. задающей правила выполнения запроса, а логическая - описательной (или декларативной), поскольку она всего лишь описывает свойства желаемого результата. Как мы указывали в начале лекции, на самом деле эти два механизма эквивалентны и существуют не очень сложные правила преобразования одного формализма в другой.
2.1. Êортежные переменные и прàвильно построенные формулы
Ðеляционное исчисление является приклàдной ветвью формàльного мехàнизмà исчисления предикàтов первого порядкà. Áàзисными понятиями исчисления являются понятие переменной с определенной для нее облàстью допустимых знàчений и понятие прàвильно построенной формулы, опирàющейся нà переменные, предикàты и квàнторы.
 зàвисимости от того, что является облàстью определения переменной, рàзличàются исчисление кортежей и исчисление доменов.  исчислении кортежей облàстями определения переменных являются отношения бàзы дàнных, т.е. допустимым знàчением кàждой переменной является кортеж некоторого отношения.  исчислении доменов облàстями определения переменных являются домены, нà которых определены àтрибуты отношений бàзы дàнных, т.е. допустимым знàчением кàждой переменной является знàчение некоторого доменà. Ìы рàссмотрим более подробно исчисление кортежей, à в конце лекции коротко опишем особенности исчисления
© 2011 Ìолчинà Ë.È.
22 Ìолчинà Ë.È. ÝÓÌÊ Ìодели дàнных и системы упрàвления бàзàми дàнных
доменов.
 отличие от рàзделà, посвященного реляционной àлгебре, в этом рàзделе нàм не удàстся избежàть использовàния некоторого конкретного синтàксисà, который мы, тем не менее, формàльно определять не будем. Íеобходимые синтàксические конструкции будут вводиться по мере необходимости.  совокупности, используемый синтàксис близок, но не полностью совпàдàет с синтàксисом языкà бàз дàнных QUEL, который долгое время являлся основным языком ÑÓÁÄ Ingres.
Для определения кортежной переменной используется оператор RANGE. Например, для того, чтобы определить переменную СОТРУДНИК, областью определения которой является отношение СОТРУДНИКИ, нужно употребить конструкцию
RANGE СОТРУДНИК IS СОТРУДНИКИ
Как мы уже говорили, из этого определения следует, что в любой момент времени переменная СОТРУДНИК представляет некоторый кортеж отношения СОТРУДНИКИ. При использовании кортежных переменных в формулах можно ссылаться на значение атрибута переменной (это аналогично тому, как, например, при программировании на языке Си можно сослаться на значение поля структурной переменной). Например, для того, чтобы сослаться на значение атрибута СОТР_ИМЯ переменной СОТРУДНИК, нужно употребить конструкцию СОТРУДНИК.СОТР_ИМЯ.
Правильно построенные формулы (WFF - Well-Formed Formula) служат для выражения условий, накладываемых на кортежные переменные. Основой WFF являются простые сравнения (comparison), представляющие собой операции сравнения скалярных значений (значений атрибутов переменных или литерально заданных констант). Например, конструкция "СОТРУДНИК.СОТР_НОМ = 140" является простым сравнением. По определению, простое сравнение является WFF, а WFF, заключенная в круглые скобки, является простым сравнением.
Áолее сложные вàриàнты WFF строятся с помощью логических связок NOT, AND, OR и IF ... THEN. Òàк, если form - WFF, à comp - простое срàвнение, то NOT form, comp AND form, comp OR form и IF comp THEN form являются WFF.
Íàконец, допускàется построение WFF с помощью квàнторов. Åсли form - это WFF, в которой учàствует переменнàя var, то конструкции EXISTS var (form) и FORALL var (form) предстàвляют wff.
Ïеременные, входящие в WFF, могут быть свободными или связàнными. Âсе переменные, входящие в WFF, при построении которой не использовàлись квàнторы, являются свободными. Ôàктически, это ознàчàет, что если для кàкого-то нàборà знàчений свободных кортежных переменных при вычислении WFF получено знàчение true, то эти знàчения кортежных переменных могут входить в результирующее отношение. Åсли же имя переменной использовàно срàзу после квàнторà при построении WFF видà EXISTS var (form) или FORALL var (form), то в этой WFF и во
© 2011 Ìолчинà Ë.È.
Òеоретический рàздел |
23 |
|
|
всех WFF, построенных с ее учàстием, var - это связàннàя переменнàя. Ýто ознàчàет, что тàкàя переменнàя не виднà зà пределàми минимàльной WFF, связàвшей эту переменную. Ïри вычислении знàчения тàкой WFF используется не одно знàчение связàнной переменной, à вся ее облàсть определения.
Пусть СОТР1 и СОТР2 - две кортежные переменные, определенные на отношении СОТРУДНИКИ. Тогда, WFF EXISTS СОТР2 (СОТР1.СОТР_ЗАРП > СОТР2. СОТР_ЗАРП) для текущего кортежа переменной СОТР1 принимает значение true в том и только в том случае, если во всем отношении СОТРУДНИКИ найдется кортеж (связанный с переменной СОТР2) такой, что значение его атрибута СОТР_ЗАРП удовлетворяет внутреннему условию сравнения. WFF FORALL СОТР2 (СОТР1. СОТР_ЗАРП > СОТР2.СОТР_ЗАРП) для текущего кортежа переменной СОТР1 принимает значение true в том и только в том случае, если для всех кортежей отношения СОТРУДНИКИ (связанных с переменной СОТР2) значения атрибута СОТР_ЗАРП удовлетворяют условию сравнения.
Íà сàмом деле, прàвильнее говорить не о свободных и связàнных переменных, à о свободных и связàнных вхождениях переменных. Ëегко видеть, что если переменнàя var является связàнной в WFF form, то во всех WFF, включàющих дàнную, может использовàться имя переменной var, которàя может быть свободной или связàнной, но в любом случàе не имеет никàкого отношения к вхождению переменной var в WFF form. Âот пример:
EXISTS ÑÎÒÐ2 (ÑÎÒÐ1.ÑÎÒÐ_ÎÒÄ_ÍÎÌ = ÑÎÒÐ2.ÑÎÒÐ_ÎÒÄ_ÍÎÌ) AND
FORALL ÑÎÒÐ2 (ÑÎÒÐ1.ÑÎÒÐ_ÇÀÐÏ > ÑÎÒÐ2.ÑÎÒÐ_ÇÀÐÏ)
Çдесь мы имеем двà связàнных вхождения переменной ÑÎÒÐ2 с совершенно рàзным смыслом.
2.2. Öелевые списки и вырàжения реляционного исчисления
Èтàк, WFF обеспечивàют средствà формулировки условия выборки из отношений ÁÄ. ×тобы можно было использовàть исчисление для реàльной рàботы с ÁÄ, требуется еще один компонент, который определяет нàбор и именà столбцов результирующего отношения. Ýтот компонент нàзывàется целевым списком (target_list).
Öелевой список строится из целевых элементов, кàждый из которых может иметь следующий вид:
∙var.attr, где var - имя свободной переменной соответствующей WFF, à attr - имя àтрибутà отношения, нà котором определенà переменнàя var;
∙var, что эквивàлентно нàличию подспискà var.attr1, var.attr2, ..., var.attrn, где attr1, attr2, ..., attrn включàет именà всех àтрибутов определяющего отношения;
∙new_name = var.attr; new_name - новое имя соответствующего àтрибутà
©2011 Ìолчинà Ë.È.
24 Ìолчинà Ë.È. ÝÓÌÊ Ìодели дàнных и системы упрàвления бàзàми дàнных
результирующего отношения.
Ïоследний вàриàнт требуется в тех случàях, когдà в WFF используются несколько свободных переменных с одинàковой облàстью определения.
Âырàжением реляционного исчисления кортежей нàзывàется конструкция видà target_list WHERE wff. Çнàчением вырàжения является отношение, тело которого определяется WFF, à нàбор àтрибутов и их именà - целевым списком.
2.3. Ðеляционное исчисление доменов
В исчислении доменов областью определения переменных являются не отношения, а домены. Применительно к базе данных СОТРУДНИКИ-ОТДЕЛЫ можно говорить, например, о доменных переменных ИМЯ (значения - допустимые имена) или НОСОТР (значения - допустимые номера сотрудников).
Îсновным формàльным отличием исчисления доменов от исчисления кортежей является нàличие дополнительного нàборà предикàтов, позволяющих вырàжàть тàк нàзывàемые условия членствà. Åсли R - это n-àрное отношение с àтрибутàми a1, a2, ..., a
n, то условие членствà имеет вид
R (ai1:vi1, ai2:vi2, ..., aim:vim) (m <= n),
где vij - это либо литерàльно зàдàвàемàя констàнтà, либо имя кортежной переменной.
Óсловие членствà принимàет знàчение true в том и только в том случàе, если в отношении R существует кортеж, содержàщий укàзàнные знàчения укàзàнных àтрибутов. Åсли vij - констàнтà, то нà àтрибут aij зàдàется жесткое условие, не зàвисящее
от текущих знàчений доменных переменных; если же vij - имя доменной переменной,
то условие членствà может принимàть рàзные знàчения при рàзных знàчениях этой переменной.
Âо всех остàльных отношениях формулы и вырàжения исчисления доменов выглядят похожими нà формулы и вырàжения исчисления кортежей. Â чàстности, конечно, рàзличàются свободные и связàнные вхождения доменных переменных.
Для примера сформулируем с использованием исчисления доменов запрос "Выдать номера и имена сотрудников, не получающих минимальную заработную плату" (будем считать для простоты, что мы определили доменные переменные, имена которых совпадают с именами атрибутов отношения СОТРУДНИКИ, а в случае, когда требуется несколько доменных переменных, определенных на одном домене, мы будем добавлять в конце имени цифры):
ÑÎÒÐ_ÍÎÌ, ÑÎÒÐ_ÈÌß WHERE EXISTS ÑÎÒÐ_ÇÀÐÏ1
(СОТРУДНИКИ (СОТР_ЗАРП1) AND
© 2011 Ìолчинà Ë.È.
Òеоретический рàздел |
25 |
|
|
СОТРУДНИКИ (СОТР_НОМ, СОТР_ИМЯ, СОТР_ЗАРП) AND
ÑÎÒÐ_ÇÀÐÏ > ÑÎÒÐ_ÇÀÐÏ1)
Ðеляционное исчисление доменов является основой большинствà языков зàпросов, основàнных нà использовàнии форм. Â чàстности, нà этом исчислении бàзировàлся известный язык Query-by-Example, который был первым (и нàиболее интересным)
языком в семействе языков, основàнных нà тàбличных формàх.
Ëитерàтурà и источники
1.Êузнецов Ñ.Í., Öентр Èнформàционных Òехнологий. "Îсновы современных бàз дàнных"
2.Äейт Ê. Âведение в системы бàз дàнных. Ì., 1998.
3.Ïушников À.Þ. Âведение в системы упрàвления бàзàми дàнных. ×àсть 1. Ðеляционнàя модель дàнных: Óчебное пособие/Èзд-е Áàшкирского ун-тà. - Óфà, 1999. - 108 с. , à тàкже CITFORUM.RU
4.Ïушников À.Þ. Âведение в системы упрàвления бàзàми дàнных. ×àсть 2. Íормàльные формы отношений и трàнзàкции: Óчебное пособие/Èзд-е Áàшкирского ун-тà. - Óфà, 1999. - 138 с. à тàкже CITFORUM.RU
.
1.1.4Àвтомàтизàция обрàботки информàции
Âопросы
1.Ïонятие экономической и àвтомàтизировàнной информàционной системы.
2.Ïонятие ÁÄ и ÑÓÁÄ. функционàльные возможности и клàссификàция ÑÓÁÄ.
1.1.4.1Ïонятие экономической и àвтомàтизировàнной информàционной системы.
Èнформàционнàя системà (ÈÑ) – коммуникàционнàя системà по сбору, передàче, перерàботке информàции об объекте, снàбжàющàя рàботников рàзличного рàнгà информàцией для реàлизàции функций упрàвления.
 зàвисимости от степени (уровня) àвтомàтизàции выделяют ручные, àвтомàтизировàнные и àвтомàтические информàционные системы.
Ðучные ÈÑ хàрàктеризуются тем, что все оперàции по перерàботке информàции выполняются человеком.
Àвтомàтизировàнные ÈÑ – чàсть функций (подсистем) упрàвления или обрàботки дàнных осуществляется àвтомàтически, à чàсть –
© 2011 Ìолчинà Ë.È.
26 Ìолчинà Ë.È. ÝÓÌÊ Ìодели дàнных и системы упрàвления бàзàми дàнных
человеком.
Àвтомàтические ÈÑ – все функций упрàвления и обрàботки дàнных осуществляется техническими средствàми без учàстия человекà.
Ýкономическàя ÈÑ (ÝÈÑ) – системà для хрàнения, поискà и выдàчи экономической информàции по зàпросàм пользовàтелей.
Êлàссификàция ÝÈÑ
Ïо уровню применения и àдминистрàтивному делению рàзличàют ÝÈÑ:
1.госудàрствà;
2.облàсти;
3.рàйонà;
4.городà;
5.предприятия;
6.подрàзделения.
Ïо сфере применения – ÝÈÑ:
1.бàнковские ÈÑ;
2.ÈÑ фондового рынкà;
3.нàлоговые ÈÑ;
4.стрàховые ÈÑ;
5.стàтистические ÈÑ;
6.ÈÑ промышленных предприятий и оргàнизàций (особое место по знàчимости и рàспрострàненности среди них зàнимàют бухгàлтерские ÈÑ).
ÝÈÑ [систему] можно рàзделить нà 2 чàсти: обеспечивàющую и функционàльную.
Îбеспечивàющàя чàсть ÝÈÑ (включàет в себя следующие виды обеспечения:
информàционное, техническое, прогрàммное, прàвовое и другие).
1.1.4.2Ïонятие ÁÄ и ÑÓÁÄ. функционàльные возможности и клàссификàция ÑÓÁÄ.
Áàзà дàнных (ÁÄ) – это оргàнизовàннàя структурà, преднàзнàченнàя для
© 2011 Ìолчинà Ë.È.
Òеоретический рàздел |
27 |
|
|
хрàнения информàции.
Ñистемà упрàвления бàзàми дàнных (ÑÓÁÄ) – это прогрàммà (или комплекс прогрàмм), преднàзнàченнàя для создàния структуры новой бàзы дàнных, нàполнения ее содержимым, редàктировàния содержимого и визуàлизàции информàции.
Ïод визуàлизàцией информàции бàзы понимàется отбор отобрàжàемых дàнных по зàдàнному критерию, их упорядочение, оформление и выдàчà нà устройствà выводà или передàчà по кàнàлàм связи.
Ôункционàльные возможности ÑÓÁÄ
ÑÓÁÄ позволяют осуществлять следующие функции:
∙Ñоздàвàть ÁÄ в виде фàйлà (или фàйлов) нà внешнем носителе;
∙Çàгружàть, редàктировàть ÁÄ;
∙Îсуществлять поиск информàции по зàпросу;
∙Óпорядочивàть информàцию в ÁÄ;
∙Âыводить информàцию из ÁÄ;
∙Ôормировàть отчёты и другие объекты нà основàнии ÁÄ;
∙Îбеспечивàть зàщиту дàнных от рàзрушения и несàнкционировàнного доступà;
∙Ñохрàнять имеющиеся дàнные при изменении структуры ÁÄ;
∙Ñохрàнять имеющиеся прогрàммы при изменении структуры ÁÄ.
Êлàссификàция ÑÓÁÄ
1.Ïо уровню использовàния ÑÓÁÄ делят нà:
∙Ïрофессионàльные (промышленные);
∙Íàстольные (персонàльные).
Ïрофессионàльные ÑÓÁÄ предстàвляют собой прогрàммную основу для рàзрàботки àвтомàтизировàнных систем упрàвления (ÀÑÓ) крупными экономическими объектàми. Íà основе этих ÑÓÁÄ создàются ÀÑÓ бàнков, крупных предприятий, отрàслей. Ê этой группе относятся Oracle, DB2,Informix, Progress, Ingress.
© 2011 Ìолчинà Ë.È.
28 Ìолчинà Ë.È. ÝÓÌÊ Ìодели дàнных и системы упрàвления бàзàми дàнных
Ïерсонàльные ÑÓÁÄ ориентировàны нà решение зàдàч отдельного пользовàтеля или небольшой группы пользовàтелей, и преднàзнàчены для использовàния нà ÏÊ.
Îсновными хàрàктеристикàми нàстольных ÑÓÁÄ являются:
-простотà эксплуàтàции;
-невысокие требовàния к àппàрàтным ресурсàм компьютерà.
Êним относятся: Dbase, FoxBase, FoxPro, Clipper, MS Access, Approach.
2.Ïо степени универсàльности рàзличàют ÑÓÁÄ:
∙Îбщего нàзнàчения;
∙Ñпециàльного нàзнàчения;
ÑÓÁÄ общего нàзнàчения не имеют ориентàции нà кàкую-то конкретную облàсть. Îни облàдàют средствàми нàстройки нà конкретную ÁÄ.
Îднàко в некоторых предметных облàстях ÑÓÁÄ общего нàзнàчения не позволяют эффективно оргàнизовàть рàботу с конкретной ÁÄ. Â тàких случàях создàются специàлизировàнные ÑÓÁÄ для конкретного применения, нàпример, ÑÓÁÄ Imbase, используемàя для àвтомàтизàции проектных и конструкторских рàбот.
3.Ïо типу моделей дàнных:
∙иерàрхическàя (IMS фирмы IBM);
∙сетевàя (IDS фирмы General Electric)
∙реляционные (MS Access).
4.Ïо способу рàспределения дàнных:
∙центрàлизовàнные;
∙децентрàлизовàнные;
∙смешàнные.
Öентрàлизовàннàя оргàнизàция ÁÄ является сàмой простой. Íà одном компьютере – сервере нàходится единственнàя ÁÄ. Âсе оперàции с ÁÄ обеспечивàются этим сервером.
Äецентрàлизовàннàя оргàнизàция ÁÄ предполàгàет рàзбиение ÁÄ нà несколько
© 2011 Ìолчинà Ë.È.
Òеоретический рàздел |
29 |
|
|
физически рàспределенных ÁÄ. Êàждый клиент пользуется своей ÁÄ, которàя может быть либо копией общей ÁÄ, либо ее чàстью (используется дублировàние).
Âозможнà смешàннàя оргàнизàция, которàя объединяет двà этих способà.
Êонцепции сетевой обрàботки дàнных фàйл-сервер и клиент-сервер
Êонцепция фàйл-сервер предполàгàет нàличие компьютерà, выделенного под фàйловый сервер, нà котором нàходится сетевàя ÎÑ и центрàлизовàнно хрàнимые фàйлы. Äля этой àрхитектуры хàрàктерен коллективный доступ к общей бàзе дàнных нà фàйловом сервере. Ïри обновлении фàйлà одним из пользовàтелей, он блокируется для доступà другим пользовàтелям. Çàпрошенные дàнные передàются по сети с фàйлового серверà нà рàбочие стàнции, где их обрàботкà выполняется средствàми ÑÓÁÄ.
 концепции фàйл-сервер вся тяжесть выполнения зàпросов к ÁÄ и упрàвления целостностью ÁÄ ложится нà ÑÓÁÄ пользовàтеля.
Êонцепция клиент-сервер подрàзумевàет рàзделение функций обрàботки дàнных между клиентом – рàбочей стàнцией и мàшиной-сервером бàз дàнных, где обрàботку осуществляет устàновленнàя тàм ÑÓÁÄ. Çàпрос нà обрàботку дàнных выдàется клиентом и передàется по сети нà сервер бàз дàнных, где осуществляется поиск. Îбрàботàнные дàнные передàются по сети от серверà к клиенту. (Ñпецификой àрхитектуры клиент-сервер является использовàние языкà SQL для зàпросов к ÁÄ, что обеспечивàет рàботу с общими дàнными из рàзнотипных приложений клиентов сети.)
1.1.5Ïроектировàние ÁÄ. Îргàнизàция связей между объектàми ÁÄ
Âопросы
1.Òребовàния, предъявляемые к ÁÄ
2.Ìодели дàнных. Êомпьютернàя реляционнàя ÁÄ
3.Ýтàпы проектировàния бàз дàнных
© 2011 Ìолчинà Ë.È.
30 Ìолчинà Ë.È. ÝÓÌÊ Ìодели дàнных и системы упрàвления бàзàми дàнных
1.1.5.1Òребовàния, предъявляемые к ÁÄ
Ïервые àвтомàтизировàнные информàционные системы (ÀÈÑ) появились в конце 50-х нàчàле 60-х годов. Äàнные в первых ÀÈÑ хрàнились в фàйлàх последовàтельного доступà. Ïоследовàтельному доступу присущи следующие недостàтки:
∙низкàя скорость обрàботки;
∙недостàточнàя возможность упрàвления дàнными;
∙большой объем дублировàния дàнных;
∙огрàниченные возможности по контролю дàнных;
∙жесткàя связь дàнных и приклàдных прогрàмм.
ÁÄ предстàвляет собой поименовàнную совокупность дàнных, отрàжàющую состояние объектà или множествà объектов, их свойств и взàимоотношений.
Òребовàния, предъявляемые к ÁÄ:
1.Îбеспечение незàвисимости прогрàмм от дàнных (это позволяет сохрàнять существующие прогрàммы при модификàции ÁÄ).
2.Âозможность модификàции структуры ÁÄ без повторного вводà имеющихся дàнных.
3.Îтсутствие избыточности (минимàльнàя избыточность), что позволяет однокрàтно вводить и корректировàть информàцию.
4.Îбеспечение непротиворечивости дàнных и целостности ÁÄ. Ýто знàчит, что обрàботкà дàнных должнà быть построенà тàким обрàзом, чтобы в случàе возникновения физических сбоев или попыток неверного изменения дàнных или структуры дàнных системà смоглà восстàновить и соглàсовàть дàнные без потерь.
Âàжнейшим мехàнизмом поддержàния целостности ÁÄ является трàнзàкция.
Òрàнзàкция – это совокупность оперàций с ÁÄ, которàя должнà быть выполненà до
концà, чтобы ÁÄ не окàзàлàсь в противоречивом состоянии (нàпример, изменение в ÁÄ при переводе студентà нà следующий курс, удàлении из ÁÄ сведений о сотруднике при увольнении).
5. Âозможность многоàспектного доступà, т.е. рàзличные пользовàтели могут
© 2011 Ìолчинà Ë.È.
