![]() |
Понятие базы данных появилось в конце 60-х годов.До этого в сфере обработки данных говорили о файлах данных и о наборах данных. Существует хорошо известное, но трудно реализуемое на практике понятие базы данных как большого по объему хранилища, в которое фирма помещает все обрабатываемые ею данные и из которого различные пользователи могут эти данные получать. Устройства памяти, в которых хранятся все данные, могут быть расположены в одном или нескольких местах; в последнем случае они должны быть связаны средствами передачи данных. К данным должны иметь доступ программы. Такая единая база данных представляется очень сложной и, в общем-то, нереальной. Создание подобной базы данных остается долгосрочной целью развития средств обработки данных. Тем не менее сложные базы данных необходимо создавать, и делать это следует поэтапно. Большинство существующих на сегодняшний день баз данных предназначено для определенного ряда приложений.
Базу данных можно определить как совокупность взаимосвязанных хранящихся вместе данных при наличии такой минимальной избыточности, которая допускает их использование оптимальным образом для одного или нескольких приложений; данные запоминаются так, чтобы они были независимы от программ, использующих эти данные; для добавления новых или модификации существующих данных, а также для поиска данных в базе данных применяется общий управляемый способ. Говорят, что система содержит совокупность баз данных, если эти базы данных структурно полностью самостоятельны.
В системах с простой организацией данных для каждого приложения создается своя совокупность записей. Назначение базы данных заключается в том, чтобы одну и ту же совокупность данных можно было использовать для максимально возможного числа приложений. Исходя из этого, базы данных часто разрабатывают в качестве хранилища такой информации, необходимость в которой возникает в процессе выполнения определенных функций в какой-либо организации. Такая база данных должна обеспечивать возможность не только получения информации, но также постоянной её модификации, необходимой для процессов управления в данной организации. Может оказаться, что для получения информации для целей планирования или ответов на вопросы потребуется осуществлять поиск в базе данных.
Базу данных иногда определяют как неизбыточную совокупность элементов данных; однока в действительности для уменьшения времени доступа к данным или упрощения способов адресации во многих базах данных избыточность в незначительной степени присутствует. Некоторые записи повторяются для того, чтобы обеспечить возможность восстановления данных при их случайной потери. Чтобы база данных была неизбыточной и удовлетворяла другим требованиям, приходится идти на некоторый компромисс. В этом случае говорят об управляемой или минимальной, избыточности или о том, что хорошо разработанная база данных свободна от излишней избыточности.
Неуправляемая избыточность имеет ряд недостатков. Во-первых, хранение нескольких копий данных приводит к дополнительным затратам. Во-вторых, при обновлении, по крайней мере, нескольких избыточных копий необходимо выполнять многократные операции обновления. Избыточность поэтому обходится значительно дороже в тех случаях, когда при обработке файлов обновляется большое количество информации, или, что ещё хуже, часто вводятся новые элементы или уничтожаются старые. В-третьих, вследствие того что различные копии данных могут соответствовать различным стадиям обновления, информация, выдаваемая системой, может быть противоречивой.
Одной из наиболее важных характеристик большинства баз данных является их постоянное изменение и расширение. По мере добавления новых типов данных или при появлении новых приложений должна быть обеспечена возможность быстрого изменения структуры базы данных. Реорганизация базы данных должна осуществляться по возможности без перезаписи прикладных программ и в целом вызывать минимальное количество преобразований.
О независимости данных часто говорят как об одной из основных свойств базы данных. Под этим подразумевается независимость данных и использующих их прикладных программ друг от друга в том смысле, что изменение одних не приводит к изменению других. В действительности же полностью независимыми данные бывают также редко, как и полностью неизбыточными.
В том случае, когда один набор элементов данных используется для многих приложений, между элементами этого набора устанавливается множество различных взаимосвязей, необходимых для соответствующих прикладных программ. Организация базы данных в значительной степени зависит от реализации взаимосвязей между элементами данных и записями, а также от того, как и где эти данные хранятся. В базе данных, используемой многими приложениями, должны быть установлены многочисленные промежуточные взаимосвязи между элементами. Что касается обеспечения секретности данных и восстановления их после сбоев, то этот вопрос является очень важным при конструировании баз данных.
В некоторых системах средства управления базами данных применяются для того, чтобы пользователи могли использовать данные таким путем, который не был предусмотрен разработчиками системы. Наличие этой возможности означает такую организацию данных в системе, при которой доступ к ним может осуществляться по различным путям, причем одни и те же данные могут использоваться для ответов на различные вопросы.
Итак, база данных представляет собой постоянно развивающийся объект, который используется возрастающим количеством приложений. К базе данных добавляются новые записи, а в существующие записи включаются новые элементы данных. Структура базы данных изменяется с целью повышения эффективности её функционирования и при добавлении новых типов запросов.
Добавление новых элементов данных в записи без изменения прикладных программ возможно при том условии, что программное обеспечение связано с данными на уровне элементов данных (полей), а не на уровне записей.
Наиболее простая структура данных соответствует случаю, когда между отдельными данными отсутствуют какие-либо внутренние связи. Их набор можно рассматривать как множество.
Множество есть любое собрание определённых и различных между собой объектов, которые можно рассматривать как единое целое. Так, например, можно рассмотреть множества моделей, машин, телевизоров. Отдельные объекты множества называют элементами.
Для любых объектов а1, а2,..., аn множество обозначается через { а1, а2,..., аn }, т.е. путём перечисления всех объектов, входящих в множество. Другая форма обозначения множества состоит в указании общего свойства объектов, из которых оно образуется M = {x|P(x)}. Эта запись читается “множество элементов х таких, что имеет место P(x)”. Вертикальная черта в записи расшифровывается как фраза: “таких, что”, а P(x) обозначает свойство, характеризующее все элементы данного множества. Например, множество чётных чисел М можно записать так:Объединением множеств в М1 и М2 (М1∪М2) называется множество тех элементов, которые содержатся по крайней мере в одном из множеств М1 или М2:
М1∪М2 = {х|х ∈ М1 или х ∈ М2}.
Пересечением множеств М1 и М2 (М1∩М2) называется такое множество, которое содержит элементы, одновременно принадлежащие как М1, так и М2:
М1∩М2 = {х|х ∈ М1 и х ∈ М2}.
Разностью множеств М1 и М2 (М1\М2) называется множество тех элементов, которые принадлежат М1 и не принадлежат М2:
М1\М2 = {х|х ∈ М1 и х
М2}.
Упорядоченная пара элементов - это совокупность, состоящая из двух предметов, расположенных в некотором определённом порядке. Или, упорядоченной парой элементов множества М называется объект <х1, х2>, состоящий из двух (не обязательно различных) элементов х1, х2 ∈ М, с указанием, какой из них следует считать первым, а какой - вторым. Так, если рассмотреть множество М={ х1, х2 х3, х4 х5}, то упорядоченные пары <х1, х2>, <х2, х1> следует считать различными. К упорядоченным парам элементов из множества М относят также пары <х1, х1>, <х2, х2> и т.д.
Множество всех упорядоченных пар <хi, хj>, из М называют декартовым (или прямым) произведением множества на себя и обозначают М × М:
М × М = { <хi, хj>| хi ∈ М, хj ∈ М }
Аналогичным образом вводится и прямое произведение множества М1 на М2:
М1 × М2 = { <х, y>| х ∈ М1, y ∈ М2 }.
Упорядоченная n -ка элементов из М - это n (не обязательно различных) элементов множества М, данных в определённой последовательности <а1, а2,...,аn>. Упорядочение n -ки элементов из множества М называют иногда кортежами над М (длинной n).
Кортежи используются для формализации отношений. Термин “отношения” применяется для обозначения какой-либо связи между объектами или понятиями. Например, мы говорим, “х меньше, чем y”,“а равно в”, так вот здесь примерами отношений являются выражения: “лучше”,”меньше”,”чем”,”равно”, которые показывают, в каком отношении друг к другу находятся элементы.
Отношения бывают двуместные (или бинарные), трёхместные (или тернарные) и вообще n-местные, или n-арные, где n- произвольное число. Термин “бинарное (двуместное) отношение” говорит о том, что для его представления используется упорядоченная пара элементов.
Формально бинарное отношение (обозначим его R) между двумя множествами М1 и М2 может быть определено как подмножество прямого произведения М1 × М2:
R(М1 × М2) = { <х, y>| х ∈ М1, y ∈ М2 }.
Другими словами, бинарное отношение R представляет собой множество упорядоченных пар R(М1, М2 ,..., Мn) = {<x1, x2, ... , xn>| х1 ∈ М1, х2 ∈ М2,..., хn ∈ Мn}.
Множества М1, М2 ,..., Мn называют областями определения (доменами), т.е. домены - множества, из которых черпаются конкретные значения элементов кортежа.
Очень важное требование к отношениям заключается в том, что каждая строка (кортеж) рассматривается как элемент множества R, а в множествах дубликаты не имеют смысла, т.е., например, множества{1,2,3} и {3,2,3,1,2} считаются эквивалентными. Поэтому если в результате операций над отношениями появляются одинаковые строки, то в результирующем отношении должна остаться только одна из них.
На логическом уровне работают с логическими структурами данных, отражающими реальные отношения, которые существуют между объектами и их характеристиками, т.е. указывающими в каком виде данные представляются пользователю системы. Единицей информации на этом уровне является логическая запись. Каждый объект, описываемый соответствующей логической записью, характеризуется определёнными признаками, являющимися атрибутами записи. На логическом уровне устанавливается перечень признаков, полностью характеризующий описываемый класс объектов. Совокупность и их взаимосвязь определяют внутреннюю структуру логической записи.
На логическом уровне представления данных не учитывается техническое и математическое обеспечение данных.
На уровне хранения оперируют со структурами хранения - представления логической структуры данных в памяти ЭВМ. Структура хранения должна полностью отображать логическую структуру данных и поддерживать её в процессе функционирования АИС . Единицей информации на этом уровне также является логическая запись. Поддержание структуры хранения осуществляется программными средствами.
На физическом уровне представление данных оперируют с физическими структурами данных. На этом уровне решаются задачи реализации структуры хранения непосредственно в конкретной памяти конкретной ЭВМ. Единицей информации на этом уровне является физическая запись, представляющая участок носителя на котором размещаются одна или несколько логических записей.
При разработке структур данных всех уровней должен обеспечиваться принцип независимости данных. Физическая независимость данных означает, что изменения в физическом расположении данных и в техническом обеспечении системы не должны отражаться на логических структурах и прикладных программах, т.е. не должны вызывать в них изменений. Логическая независимость данных означает, что изменения в структурах хранения не должны вызывать изменений в логических структурах данных и в прикладных программах.Схема представляет собой таблицу типов используемых данных. Она содержит имена объектов и их атрибуты и указывает на существующую между ними связь. Схема представляет собой структуру, в которую могут быть помещены значения элементов данных. Подобно табло в аэропорту, на котором высвечивается информация о прибытии и отправлении самолетов, схема не изменяется, в то время как величины, помещенные в ней, время от времени изменяются.
Если схема содержит значения элементов данных, её называют экземпляром схемы. Запись - такая структура, в которую можно помещать конкретные значения данных. Экземпляр записи - запись с конкретным значением данных. Схемы часто изображают в форме диаграммы, используя для этого блоки. Сплошные линии, соединяющие блоки, отображают связи.
Термин схема используется для определения полной таблицы всех типов элементов данных и типов записей, хранимых в базе данных. Термином подсхема определяют описание данных, которое использует прикладной программист. На основе одной схемы можно составить много различных подсхем.
Одним из основополагающих в концепции баз данных являются обобщённые категории «данные» и «модель данных». Понятие «данные» в концепции баз данных – это набор конкретных значений, параметров, характеризующих объект, условия, ситуацию или любые другие факторы. Модель данных - это некоторая абстракция, которая, будучи приложима к конкретным данным, позволяет пользователям и разработчикам трактовать их уже как информацию, т.е. сведения, содержащие не только данные, но и взаимосвязь между ними.
Классификация моделей данных
Инфологические модели, или семантические, отражают в естественной и удобной для разработчиков форме информационно-логический уровень абстрагирования. Используются на ранних стадиях для описания структуры данных в процессе разработки приложения, даталогические модели уже поддерживаются конкретной СУБД. Документальные модели данных соответствуют представлению о слабоструктурированной информации, ориентированной в основном на свободные форматы документов, текстов на естественном языке.
Тезаурусные модели основаны на принципе организации словарей, содержат определённые языковые конструкции и принципы их взаимодействия в заданной грамматике. Эти модели эффективно используются в системах-переводчиках, особенно многоязыковых переводчиках. Принцип хранения информации в этих системах и подчиняется тезаурусным моделям.
Дескрипторные модели – самые простые из документальных моделей, они широко использовались на ранних стадиях использования документальных баз данных. В этих моделях каждому документу соответствовал дескриптор-описатель. Этот дескриптор имел жёсткую структуру и описывал документ в соответствии с теми характеристиками, которые требуются для работы с документами в разрабатываемой документальной базе данных. Например, для базы данных, содержащей описание патентов, дескриптор содержал название области, к которой относится патент, номер патента, дату выдачи патента и ещё ряд ключевых параметров, которые заполнялись для каждого патента. Обработка информации в таких базах данных велась исключительно по дескрипторам, т.е. по тем параметрам, которые характеризовали пакет, а не по самому тексту патента.
Инфологическая модель должна включать такое формализованное описание предметной области, которое легко будет читать не только специалистам по базам данных. Инфологическое проектирование прежде всего связанно с попыткой представления семантики предметной области в модели базы данных. Реляционная модель данных в силу своей простоты и лаконичности не позволяет отобразить семантику, т.е. смысл предметной области. Теоретико-графовые модели в большей степени отображали семантику предметной области. Они в явном виде определяли иерархические связи между объектами предметной области. К семантическим моделям можно отнести модель данных, предложенную Хаммером Мак-Леоном в 1981 году, модель «сущность-связь», предложенную Ченом в 1976 году и ряд других моделей. В настоящее время именно модель «сущность-связь» или “Entity Relationship” стала фактически стандартом при инфологическом моделировании баз данных. Модель «сущность-связь» (ER-модель) имеет несколько базовых понятий ([4], дополнительная литература). Эта модель в наибольшей степени согласуется с концепцией объектно-ориентированного проектирования, которая в настоящее время является базовой для разработки сложных программных систем.
В основе ER-модели лежат следующие базовые понятия: Сущность, с помощью которой моделируется класс однотипных объектов. Сущность имеет имя, уникальное в пределах моделируемой системы. Так как сущность соответствует некоторому классу однотипных объектов, то предполагается, что в системе существует множество экземпляров данной сущности. Объект, которому соответствует понятие сущности, имеет свой набор атрибутов-характеристик, определяющих свойства данного представителя класса. При этом набор атрибутов должен быть таким, чтобы можно было различать конкретные экземпляры сущности. Например, у сущности сотрудник может быть следующий набор атрибутов: табельный номер, фамилия, имя, отчество, дата рождения. Набор атрибутов однозначно идентифицирующий конкретный экземпляр сущности, называется ключевым. Для сущности сотрудник ключевым будет атрибут табельный номер, так как для всех сотрудников данного предприятия табельные номера будут различны. Экземпляром сущности сотрудник будет описание, конкретного сотрудника предприятия. Одно из общепринятых графических обозначений сущности – прямоугольник, в верхней части которого записано имя сущности, а ниже перечисляются атрибуты, причём ключевые атрибуты помечаются подчёркиванием:
|
| Рис Пример определения сущности в модели ER. |
Между сущностями могут быть установлены связи - бинарные ассоциации, показывающие, каким образом сущности соотносятся или взаимодействуют между собой. Связь может существовать между двумя разными сущностями или между сущностями и ей же самой (рекурсивная связь). Она показывает, как связанны экземпляры сущностей между собой. Если связь устанавливается между двумя сущностями, то она определяет взаимосвязь между экземплярами одной и другой сущности. Например, если у нас есть связь между сущностью студент и сущностью преподаватель и эта связь – руководство дипломными проектами, то каждый студент имеет только одного преподавателя, но один и тот же преподаватель может руководить множеством студентов-дипломников. Поэтому это будет связь «один-ко-многим» (1:М)
|
| Рис. Пример отношения «один-ко-многим» при связывании сущностей студент и преподаватель. |
Связь имеет общее имя Дипломное проектирование и имеет имена ролей со стороны обеих сущностей. Со стороны студента эта роль называется Пишет диплом под руководством, со стороны преподавателя эта связь называется Руководит. Связи делятся на три типа по множественности: один-к-одному (1:1), один-ко-многим (1:М), многие-ко-многим (М:М). Связь один-к-одному (1:1) означает, что экземпляр одной сущности связан только с одним экземпляром другой сущности. Связь один-ко-многим (1:М) означает, что один экземпляр сущности, расположенной слева по связи, может быть связан с несколькими экземплярами сущности, расположёнными справа по связи. Связь многие-ко-многим (М:М) означает, что один экземпляр первой сущности может быть связан с несколькими экземплярами второй сущности, и наоборот, один экземпляр второй сущности может быть связан с несколькими экземплярами первой сущности. Между двумя сущностями может быть заданно сколько угодно связей с разными смысловыми нагрузками. Например, между двумя сущностями студент и преподаватель можно установить две смысловые связи: одна – дипломное проектирование, а вторая – лекции, и она определяет, лекции каких преподавателей слушает студент и каким студентам данный преподаватель читает лекции. Это связь типа многие-ко-многим.
|
Связь любого из этих типов может быть обязательной, если в данной связи должен участвовать каждый экземпляр сущности, необязательной – если не каждый экземпляр сущности должен участвовать в данной связи. При этом связь может быть обязательной с одной стороны и необязательной с другой. Обязательность связи тоже по разному обозначается в разных нотациях. Используем нотацию power designer. Здесь необязательность связи обозначается пустым кружочком конце связи, а обязательность – перпендикулярной линией, перечёркивающей связь. Кружочек означает, что ни один экземпляр не может участвовать в этой связи. А перпендикуляр интерпретируется как то, что по крайне мере один экземпляр сущности участвует в этой связи. Каждый студент который пишет диплом, должен иметь своего руководителя дипломного проектирования, но с другой стороны, не каждый преподаватель должен вести дипломное проектирование:
|
В ER-модели допускается принцип категоризации сущностей. Это значит, что вводится понятие подтипа сущности, то есть сущность может быть представлена в виде двух или более своих подтипов-сущностей, каждая из которых может иметь общие атрибуты и отношения, которые определяются однажды на верхнем уровне и наследуются на нижнем. Все подтипы одной сущности рассматриваются как взаимоисключающие, и при разделении сущности на подтипы она должна быть представлена в виде полного набора взаимоисключающих подтипов. Сущность, на основе которой строятся подтипы, называется супертипом. Для графического изображения принципа категоризации сущности вводится специальный графический экземпляр, который называется узел-дискриминатор, изображается в виде полукруга, выпуклой стороной обращённого к суперсущности. Эта сторона соединяется направленной стрелкой с суперсущностью, а к диаметру этого круга стрелками подсоединяются подтипы данной сущности.
|
Пример
|
| Рис. Инфологическая модель «Библиотека» |
Между сущностями книги и экземпляры существует связь 1:М, обязательная с двух сторон. Между сущностями читатели и экземпляры установлена связь 1:М и при этом она не обязательна с двух сторон. Между сущностями каталог и книги связь М:М обязательна с двух сторон.
Существует сущность книги, каждая книга имеет уникальный шифр, который является её ключом, и ряд атрибутов, которые взяты из предметной области ([4], дополнительная литература). Множество экземпляров сущности определяет множество книг, которые хранятся в библиотеке. Каждый экземпляр сущности книги соответствует не конкретной книге, стоящей на полке, а описанию некоторой книги, которое даётся обычно в предметном каталоге библиотеке. Каждая книга может присутствовать в нескольких экземплярах, и это, как раз те конкретные книги, которые стоят на полках библиотеки. Для того чтобы отразить это, надо ввести сущность экземпляры, которая будет содержать описания всех экземпляров книг, которые хранятся в библиотеке. Каждый экземпляр сущности экземпляры соответствует конкретной книге на полке. Каждый экземпляр имеет уникальный инвентарный номер, однозначно определяющий конкретную книгу. Каждый экземпляр книги может находится либо в библиотеке, либо на руках у читателя, и тогда для данного экземпляра указываются дополнительно дата взятия книги читателем и дата предполагаемого возврата книги. Между сущностями книги и экземпляры существует связь (1:М), обязательная с двух сторон. То есть каждая книга может присутствовать в библиотеке в нескольких экземплярах, поэтому связь 1:М (один-ко-многим). При этом если в библиотеке нет ни одного экземпляра данной книги, то не будем хранить её описание, поэтому если книга описана в сущности книги, то по крайне мере один экземпляр этой книги присутствует в библиотеке. Это означает, что со стороны книги связь обязательная. Что касается сущности экземпляры, то не может существовать в библиотеке ни одного экземпляра, который бы не относился к конкретной книге, поэтому и со стороны экземпляры связь тоже обязательная. Спроектируем инфологическую модель системы, предназначенной для хранения информации о книгах и областях знаний, представленных в библиотеке. Не ставим условие хранение истории чтения книги. Сущность читатели, каждый экземпляр которой будет соответствовать конкретному читателю. В библиотеке каждому читателю присваивается уникальный номер читательского билета, который будет однозначно идентифицировать читателя. Номер читательского билета будет ключевым атрибутом сущности читатели. Дополнительные атрибуты: ФИО, Адрес читателя, Телефон домашний и рабочий, Дата рождения. Каждый читатель может держать на руках несколько экземпляров книг. Для этого надо провести связь между сущностями читатели и экземпляры, то есть связываем с читателем только инвентарные номера взятых книг. Между сущностями читатели и экземпляры установлена связь 1:М при этом она не обязательная с двух сторон. Читатель в данный момент может не держать ни одной книги на руках, а с другой стороны, данный экземпляр книги может не находится ни у одного читателя, а просто стоять на полке в библиотеке. Сущность системный каталог содержит перечень всех областей знаний, сведения по которым содержатся в библиотечных книгах. Введём два атрибута «код области знаний» и «название области знаний». Атрибут «код области знаний» будет ключевым атрибутом сущности. Из описания предметной области известно, что каждая книга может содержать сведения из нескольких областей знаний, а с другой стороны, в библиотеке может присутствовать множество книг, относящихся к одной и той же области знаний, поэтому между сущностями системный каталог и книги устанавливается связь «многие-ко-многим», обязательная с двух сторон. Действительно, в системном каталоге не должно присутствовать такой области знаний, сведения по которой не представлены ни в одной книге библиотеки, и наоборот, каждая книга должна быть отнесена к одной или нескольким областям знаний для того, чтобы читатель мог её быстрее найти.