Реферат: Технический университет И. П. Карпова базы данных утверждено Редакционно-издательским советом института в качестве Учебного пособия Москва 2009
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
Государственное образовательное учреждение
высшего профессионального образования
Московский государственный институт электроники и математики
(Технический университет)
И.П. Карпова
БАЗЫ ДАННЫХ
Утверждено Редакционно-издательским советом института
в качестве Учебного пособия
Москва 2009
УДК 004.65
ББК 32.973
К26
Рецензенты: докт. техн. наук И.П. Беляев (НИИ ИТ)
канд. физ.-мат. наук Ю.А. Семёнов (МФТИ)
Карпова И.П.
К26 Базы данных. Учебное пособие. – Московский государственный институт электроники и математики (Технический университет). – М., 2009. – 118 с.
Рассматриваются основные модели данных, технологии организации баз данных и методы проектирования баз данных.
Для студентов дневных и вечерних факультетов технических вузов, изучающих автоматизированные информационные системы и системы управления базами данных.
УДК 004.65
ББК 32.973
ISBN Карпова И.П., 2009
Оглавление
1.ВВЕДЕНИЕ 5
1.1.Информация, данные, знания. Терминология 6
1.2.Автоматизированная информационная система 7
1.3.Предметная область информационной системы 9
1.4.Назначение и основные компоненты системы баз данных 12
1.5.Уровни представления данных 13
2.ОСНОВНЫЕ МОДЕЛИ ДАННЫХ 16
2.1.Понятие модели данных 16
2.2.Сетевая модель данных (СМД) 20
2.3.Иерархическая модель данных (ИМД) 22
2.4.Реляционная модель данных (РМД) 25
2.5.Другие модели данных 32
3.СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ 34
3.1.Классификация СУБД 34
3.2.Правила Кодда для реляционной СУБД (РСУБД) 35
3.3.Основные функции реляционной СУБД 37
3.4.Администрирование базы данных 38
3.5.Словарь-справочник данных 38
4.ФИЗИЧЕСКАЯ ОРГАНИЗАЦИЯ ДАННЫХ 40
4.1.Механизмы среды хранения и архитектура СУБД 40
4.2.Структура хранимых данных 41
4.3.Управление пространством памяти и размещением данных 42
4.4.Виды адресации хранимых записей 44
4.5.Способы размещения данных и доступа к данным в РБД 46
5.МНОГОПОЛЬЗОВАТЕЛЬСКИЙ ДОСТУП К ДАННЫМ 60
5.1.Механизм транзакций 60
5.2.Взаимовлияние транзакций 63
5.3.Уровни изоляции транзакций 65
5.4.Блокировки 65
5.5.Временные отметки 68
5.6.Многовариантность 68
6.ЗАЩИТА ДАННЫХ В БАЗАХ ДАННЫХ 70
6.1.Обеспечение целостности данных 70
6.2.Обеспечение безопасности данных 71
6.3.Защита от несанкционированного доступа 74
7.ОПТИМИЗАЦИЯ РЕЛЯЦИОННЫХ ЗАПРОСОВ 78
7.1.Этапы оптимизации запросов в реляционных СУБД 78
7.2.Преобразования операций реляционной алгебры 80
7.3.Методы оптимизации 82
7.4.Настройка приложений 87
8.ЭЛЕМЕНТЫ ПРОЕКТИРОВАНИЯ БАЗ ДАННЫХ 91
8.1.Требования к проекту базы данных 91
8.2.Этапы проектирования базы данных 92
8.3.Инфологическое проектирование 97
8.3.1.Метод "сущность-связь" 98
8.3.2.Объединение локальных представлений 100
8.4.Определение требований к операционной обстановке 101
8.5.Выбор СУБД и инструментальных программных средств 102
8.6.Логическое проектирование БД 102
8.7.Физическое проектирование БД 103
8.8.Автоматизация проектирования БД 103
8.9.Особенности проектирования реляционных БД 104
9.ПЕРСПЕКТИВЫ РАЗВИТИЯ ТЕХНОЛОГИИ БАЗ ДАННЫХ 117
Предметный указатель 120
Список используемых сокращений 124
Библиографический список 124
"Цивилизация развивается за счёт расширения числа важных операций, которые можно выполнять, не думая о них".
Альфред Норт Уайтхед, британский математик, логик, философ
ВВЕДЕНИЕ
Развитие средств вычислительной техники и информационных технологий обеспечило возможности для создания и широкого применения автоматизированных информационных систем (АИС) разнообразного назначения. Разрабатываются и внедряются информационные системы управления хозяйственными и техническими объектами, модельные комплексы для научных исследований, системы автоматизации проектирования и производства, всевозможные тренажеры и обучающие системы.
Различают АИС, основанные на знаниях, и АИС, основанные на данных. К первым можно отнести, например, экспертные системы (ЭС), интеллектуальные системы поддержки принятия решений (СППР) и т.п. Ко вторым – всевозможные прикладные системы, которые сейчас активно используются и на предприятиях, и в учреждениях. Такие прикладные системы применяются очень широко, и в рамках данного курса наше внимание будет сосредоточено именно на системах, которые основаны на данных.
Существуют две основные предпосылки создания таких систем:
Разработка методов конструирования и эксплуатации систем, предназначенных для коллективного использования.
Возможность собирать, хранить и обрабатывать большое количество данных о реальных объектах и явлениях, то есть оснащение этих систем "памятью".
Массив данных общего пользования в системах, основанных на данных, называется базой данных. База данных (БД) является моделью предметной области информационной системы.
На заре развития вычислительной техники обрабатываемые данные являлись частью программ: они располагались сразу за кодом программы в так называемом сегменте данных (рис. 1.1,а). Следующим шагом стало хранение данных в отдельных файлах (рис. 1.1,б). Недостатком этих двух подходов являлась зависимость программ от данных: сведения о структуре данных включались в код программы. При изменении структуры данных необходимо было вносить изменения в программу.
Рис.1.1. Развитие принципов обработки данных
Логичным продолжением этой эволюции является перенос описания данных в массив данных (рис. 1.1,в). Это позволило обеспечить независимость данных от программ.
Основным принципом организации баз данных является совместное хранение данных и их описания.
Описание данных называют метаданными. Метаданные хранятся в части базы данных, которая называется каталогом или словарём-справочником данных (ССД). Зная формат метаданных, можно запрашивать и изменять данные без написания дополнительных программ.
Одна и та же база данных может быть использована для решения многих прикладных задач. Наличие метаданных и возможность информационной поддержки решения многих задач – это принципиальные отличия базы данных от любой другой совокупности данных, расположенных во внешней памяти ЭВМ.
^ Информация, данные, знания. Терминология
Информация – любые сведения о каком-либо событии, сущности, процессе и т.п., являющиеся объектом некоторых операций: восприятия, передачи, преобразования, хранения или использования.
Данные – это информация, зафиксированная в некоторой форме, пригодной для последующей обработки, передачи и хранения, например, находящаяся в памяти ЭВМ или подготовленная для ввода в ЭВМ.
Подготовка информации состоит в её формализации, сборе и переносе на машинные носители.
Обработка данных – это совокупность задач, осуществляющих преобразование массивов данных. Обработка данных включает в себя ввод данных в ЭВМ, отбор данных по каким-либо критериям, преобразование структуры данных, перемещение данных на внешней памяти ЭВМ, вывод данных, являющихся результатом решения задач, в табличном или в каком-либо ином удобном для пользователя виде.
Система обработки данных (СОД) – это набор аппаратных и программных средств, осуществляющих выполнение задач по управлению данными.
Управление данными – совокупность функций обеспечения требуемого представления данных, их накопления и хранения, обновления, удаления, поиска по заданному критерию и выдачи данных. [6]
^ Предметная область (ПО1) – часть реального мира, подлежащая изучению с целью организации управления и, в конечном итоге, автоматизации.
База данных (БД) – совокупность данных, организованных по определённым правилам, предусматривающим общие принципы описания, хранения и манипулирования данными, независимая от прикладных программ [6]. Эти данные относятся к определённой предметной области и организованы таким образом, что могут быть использованы для решения многих задач многими пользователями.
^ Ведение базы данных – деятельность по обновлению, восстановлению и изменению структуры базы данных с целью обеспечения её целостности, сохранности и эффективности использования [6].
^ Система управления базами данных (СУБД) – это совокупность программ и языковых средств, предназначенных для управления данными в базе данных, ведения базы данных и обеспечения взаимодействия её с прикладными программами [6].
Автоматизированная информационная система (АИС) представляет собой совокупность данных, экономико-математических методов и моделей, технических, программных средств и специалистов, предназначенную для обработки информации и принятия управленческих решений.
Банк данных (БнД) – это автоматизированная информационная система, включающая в свой состав комплекс специальных методов и средств (математических, информационных, программных, языковых, организационных и технических) для поддержания динамической информационной модели предметной области с целью обеспечения информационных запросов пользователей. Банк данных должен:
Обеспечивать информационные потребности внешних пользователей.
Обеспечивать возможность хранения и модификации больших объёмов многоаспектных данных.
Обеспечивать заданный уровень достоверности хранимых данных и их непротиворечивость.
Обеспечивать доступ к данным только пользователям с соответствующими полномочиями.
Обеспечивать поиск данных по произвольной группе признаков.
Удовлетворять заданным требованиям по производительности при обработке запросов.
Иметь возможность реорганизации при изменении границ ПО.
Обеспечивать выдачу пользователям данных в различной форме.
Обеспечивать простоту и удобство обращения внешних пользователей к данным.
^ Автоматизированная информационная система
Под автоматизированной информационной системой (АИС) будем понимать совокупность программно-аппаратных средств, предназначенных для автоматизации деятельности, связанной с хранением, передачей и обработкой информации.
АИС, основанная на базе данных, служит для сбора, накопления, хранения информации, а также её эффективного использования для различных целей. Информация представляется в виде данных, хранимых в памяти ЭВМ. При проектировании АИС, с одной стороны, решается вопрос о том, какие сведения и для каких целей будут содержаться в системе, с другой – как соответствующие данные будут организованы в памяти ЭВМ и как они будут обрабатываться при эксплуатации АИС.
По сферам применения и правилам организации различают два основных класса АИС, основанных на базе данных: информационно-поисковые (ИПС) и системы обработки данных (СОД). ИПС ориентированы, как правило, на извлечение подмножества хранимых данных, удовлетворяющих некоторому поисковому критерию. Пользователя ИПС интересуют, в основном, сами извлекаемые из базы данных сведения, а не результаты их обработки. Примером ИПС является любая справочная служба: к ней обращаются с запросом и получают в результате те данные, которые удовлетворяют этому запросу.
Обращения пользователя к СОД чаще всего приводят к обновлению данных. Вывод данных может вовсе отсутствовать или представлять собой результат программной обработки хранимых сведений. Пример СОД – банковские системы, осуществляющие открытие/закрытие счетов, пересчёт вкладов в зависимости от процентов, приём/снятие сумм и т.п.
В зависимости от характера информационных ресурсов, с которыми имеют дело АИС, их подразделяют на документальные и фактографические системы. На практике используются также системы комбинированного типа.
Фактографические АИС хранят сведения об объектах предметной области, их свойствах и взаимосвязях. Сведения о каждом объекте могут поступать в систему из множества различных источников. Кроме поиска и модификации данных, фактографические системы поддерживают статистические функции (нахождение суммы, минимума, максимума и т.п.). Фактографические АИС обычно принадлежат к классу систем обработки данных.
В документальной системе объект хранения – документ, который содержит информацию, относящуюся к определённой предметной области. Это могут быть графические изображения (например, географические карты); информация на естественном языке (монографии, тексты законодательных актов, научные отчёты и т.п.); звуковая информация (например, мелодии для системы, хранящей фонотеку) и т.д. Для обработки данных не важно, какие сведения хранятся в документах. Обычно (но не всегда) документальные АИС реализуются в виде информационно-поисковых систем (ИПС).
Основные компоненты документальной ИПС:
программные средства;
поисковый массив документов;
средства поддержки информационного языка системы.
Программные средства ИПС служат для организации управления данными (ввода, хранения, защиты, поиска и выдачи). Поисковый массив документов в ИПС обычно называется базой данных. Он представляет собой набор ссылок на документы (или их описаний), хранящий основную информацию о документах и организованный так, чтобы обеспечить быстрый поиск документов. Описание документа зависит от предметной области и состоит из значений атрибутов, характеризующих содержание документа. Например, для БД географических карт это могут быть координаты и масштаб, а для БД законодательных актов – тип документа (закон, постановление и др.), дата принятия, область действия и т.п.
Информационный язык ИПС предназначен для того, чтобы пользователь мог запросить данные у системы. Системными средствами пользовательский запрос преобразуется в формальный запрос, понятный системе. Информационный язык ИПС может быть основан на подмножестве естественного языка, которое относится к обслуживаемой ПО. Но чаще поиск документа осуществляется с помощью шаблонов – экранных форм, включающих поля описания документа. В эти поля вносятся конкретные значения, которые и определяют условия поиска документов. На рис. 1.2 приведён пример поиска через экранную форму в справочнике библиотек. В форме указаны два условия – округ и фрагмент названия библиотеки, и в результате поиска система выдала три записи, удовлетворяющие этим условиям.
Рис.1.2. Пример поиска данных через экранную форму
Мы будем основное внимание уделять фактографическим АИС, имея в виду, что ИПС и документальные АИС создаются с помощью тех же программных средств и на тех же принципах, что и СОД, а специфические моменты обработки данных реализуются через приложения (программы, внешние по отношению к ядру СОД).
Разработка любой АИС начинается с определения предметной области.
^ Предметная область информационной системы
Предметная область (ПО) информационной системы рассматривается как совокупность реальных процессов и объектов (сущностей), представляющих интерес для её пользователей [7]. Каждая из сущностей ПО обладает определённым набором свойств (атрибутов), среди которых можно выделить существенные и малозначительные. Признание какого-либо свойства существенным носит относительный характер. Например, атрибут Должность для сотрудника является существенным, а для читателя библиотеки – малозначительным.
Примечание. В данном учебном пособии наименования сущностей, атрибутов и связей выделяются курсивом и подчёркиванием. Кроме того:
Сущность записывается прописными буквами (ОТДЕЛ).
Атрибут сущности начинается с прописной буквы (Название). Ключевой атрибут выделяется полужирным шрифтом (Табельный номер).
Связь между сущностями определяется глаголом (работает).
Для упрощения процедуры формализации ПО в большинстве случаев прибегают к определению типов сущностей. Тип позволяет выделить из всего множества сущностей ПО группу сущностей, однородных по структуре и поведению (относительно рамок рассматриваемой ПО). Например, для ПО "Институт" в качестве типов сущностей могут рассматриваться студенты, преподаватели, дисциплины и т.п. Данные предметной области представляются экземплярами сущностей (студент Иванов, преподаватель Сидоров, дисциплина "Базы данных"). Экземпляры сущностей одного типа обладают одинаковыми наборами атрибутов, но должны отличаться значением хотя бы одного атрибута для того, чтобы быть узнаваемыми (например, студенты могут иметь одинаковые ФИО, но должны иметь разные номера зачётных книжек).
Между сущностями ПО могут существовать связи, имеющие различный содержательный смысл (семантику). Например, студент учится в группе, врач лечит пациента, клиент имеет вклад в банке. Связи могут быть факультативными или обязательными. Если вновь порождённая сущность одного из типов оказывается по необходимости связанной с сущностью другого типа, то между этими типами сущностей есть обязательная связь. Иначе связь является факультативной. Примеры обязательной и факультативной связей приведены на рис. 1.3. Здесь связь замещает является обязательной (изображается двойной линией), потому что каждый сотрудник должен работать на определённой должности, а связь замещается является факультативной, т.к. должность может быть вакантна.
Рис.1.3. Примеры обязательной и факультативной связей
Для удобства каждую связь между сущностями можно изображать одним ромбом (рис. 1.4). Выделяют также показатель кардинальности связи: "один к одному" (1:1), "один ко многим" (1:n) и "многие ко многим" (m:n) (рис. 1.4).
Рис.1.4. Примеры различной кардинальности связей
Связи, приведённые на рис. 1.4, с учётом семантики означают следующее:
пациент–койка (1:1) – каждый пациент занимает одну койку, каждая койка в каждый момент времени может быть занята только одним пациентом;
палата–пациент (1:n) – каждый пациент находится в одной палате, в каждой палате могут находиться несколько пациентов;
пациент–врач (n:m) – каждый пациент может лечиться у нескольких врачей, каждый врач может лечить несколько пациентов.
Обратите внимание: необязательная связь имеет модификатор "может", а у обязательной связи его нет.
Степень связи – это количество сущностей, которые входят в связь. Различают унарные (рис. 1.5,а), бинарные (рис. 1.5,б) и тернарные (рис.1.5,в) связи. (На практике связи с большей степенью редко используются). Унарная связь означает, что одни экземпляры сущности связаны с другими экземплярами этой же сущности (например, одни сотрудники руководят другими, а деталь может являться частью механизма).
Рис.1.5. Примеры связей различной степени
Различают тип связи и экземпляр связи. Тип связи определяется её именем, обязательностью, степенью и кардинальностью, например, бинарная связь учится между сущностями ГРУППА и СТУДЕНТ, обязательная для студента, кардинальностью 1:n. А экземпляр связи – это конкретная связь между студентом Сидоровым и группой Н-11, в которой он учится.
Совокупность типов сущностей и типов связей между ними характеризует структуру предметной области. Собственно данные представлены экземплярами сущностей и связей между ними. Данные экземпляров сущностей и связей хранятся в базе данных информационной системы, а описание типов сущностей и связей является метаданными.
Множества экземпляров сущностей, значения атрибутов сущностей и экземпляры связей между ними могут изменяться во времени. Поэтому каждому моменту времени можно сопоставить некоторое состояние предметной области. Состояния ПО должны подчиняться совокупности правил, которые характеризуют семантику предметной области. В базе данных эти правила могут быть заданы с помощью так называемых ограничений целостности, которые накладываются на атрибуты сущностей, типы сущностей, типы связей и/или их экземпляры. Фактически ограничения целостности – это правила, которым должны удовлетворять значения данных в БД. Например, для библиотеки можно привести такие ограничения целостности: количество экземпляров книги не может быть отрицательным; номер паспорта читателя должен быть уникальным; каждая книга относится к определённому разделу рубрикатора ББК – библиотечно-библиографической классификации и т.д.
Для того чтобы обеспечить соответствие базы данных текущему состоянию предметной области, база данных динамически обновляется (периодически или в режиме реального времени). Это обновление называется актуализацией данных. Актуализация может проводиться:
вручную, если изменения в данные вносит пользователь (например, запись сведений о выдаче абоненту книги в библиотеке);
автоматизированно, если изменения инициируются пользователем, но выполняются программно (например, обновление списка должников в библиотеке – читателей, которые просрочили дату возврата книг);
автоматически, если данные поступают в электронном виде и обрабатываются программой без участия человека (это касается, например, автоматизированных систем управления производством).
Правильность обновлений может контролироваться программно, но правильнее контролировать их автоматически с помощью ограничений целостности БД.
База данных является информационной моделью внешнего мира, некоторой предметной области. Во внешнем мире сущности ПО взаимосвязаны, поэтому в БД эти связи должны быть отражены. Если связи между данными в БД отсутствуют, то имеет смысл говорить о нескольких независимых БД и хранить их раздельно.
^ Назначение и основные компоненты системы баз данных
Система БД включает два основных компонента: собственно базу данных и систему управления базами данных – СУБД (рис. 1.6). Большинство СОД включают также программы обработки данных (прикладное программное обеспечение, ППО), которые обращаются к данным через СУБД.
Рис.1.6. Компоненты системы баз данных
В соответствии с рис. 1.6 СУБД обеспечивает выполнение двух групп функций:
предоставление доступа к базе данных прикладному программному обеспечению (или квалифицированным пользователям);
управление хранением и обработкой данных в БД.
Таким образом, обращение к базе данных возможно только через СУБД.
БД предназначена для хранения данных информационной системы. Пользователи обращаются к базе данных обычно не напрямую через средства СУБД, а с помощью внешнего интерфейса – приложения, входящего в состав АИС. Если пользователей можно разделить на группы по характеру решаемых задач, то приложений может быть несколько (по количеству задач или групп пользователей). Например, для библиотеки можно выделить три группы пользователей: читатели, которым нужно осуществлять поиск книг по различным признакам; сотрудники, выдающие и принимающие у читателей книги (библиотекари); сотрудники отдела комплектации, осуществляющие приём новых книг и списание старых.
^ Уровни представления данных
Современная технология баз данных основана на концепции многоуровневой архитектуры СУБД. Эти идеи впервые были сформулированы в отчёте рабочей группы по базам данных Комитета по планированию стандартов Американского национального института стандартов (ANSI/X3/SPARC). Этот отчёт был опубликован в 1975 г. В нём была предложена обобщенная трёхуровневая модель архитектуры СУБД, включающая концептуальный, внешний и внутренний уровни (рис. 1.7).
Рис.1.7. Уровни представления данных
Концептуальный уровень архитектуры ANSI/SPARC служит для поддержки единого взгляда на базу данных, общего для всех её приложений и независимого от них и от среды хранения [6]. Концептуальный уровень представляет собой формализованную информационно-логическую модель ПО. Описание этого представления называется концептуальной схемой или схемой БД.
Схема базы данных – это описание базы данных в терминах конкретной модели данных.
^ Внутренний уровень архитектуры поддерживает представление данных в среде хранения и пути доступа к ним [6]. На этом архитектурном уровне БД представлена в полностью "материализованном" виде, тогда как на других уровнях идёт работа на уровне отдельных экземпляров или множества экземпляров данных. Описание БД на внутреннем уровне называется внутренней схемой или схемой хранения.
^ Внешний уровень архитектуры БД предназначен для групп пользователей. Описание представления данных для группы пользователей называется внешней схемой. Наличие внешнего уровня позволяет поддерживать разное представление одних и тех же данных для различных групп пользователей или задач [6].
Каждый из этих уровней может считаться управляемым, если он обладает внешним интерфейсом, который обеспечивает возможности определения данных. В этом случае становятся возможными формирование и системная поддержка независимого взгляда на БД для какой-либо группы персонала или пользователей, взаимодействующих с БД через интерфейс данного уровня.
В архитектурной модели ANSI/SPARC предполагается наличие в СУБД механизмов, обеспечивающих междууровневое отображение данных "внешний – концептуальный" и "концептуальный – внутренний". Функциональные возможности этих механизмов определяют степень независимости данных на всех уровнях. На переходе "внешний – концептуальный" обеспечивается логическая независимость данных, на переходе "концептуальный – внутренний" – физическая независимость. Под логической независимостью подразумевается возможность вносить изменения в концептуальный уровень, не меняя представление БД для пользователей, или изменять представление данных для пользователей без изменения концептуальной схемы. Физическая независимость данных подразумевает возможность вносить изменения в схему хранения, не меняя концептуальную схему БД.
Основной характеристикой баз данных является совместное использование данных многими пользователями АИС. Должно существовать какое-то общее понимание информации, представленной данными. Общее понимание должно относиться к чему-либо внешнему по отношению к пользователям, и оно должно быть зафиксировано. Для этого необходима некоторая предварительно определённая грамматика, которую принято называть моделью данных.
"Границы моего языка означают границы моего мира".
Людвиг Витгенштейн, англо-австрийский философ, логик
^ ОСНОВНЫЕ МОДЕЛИ ДАННЫХ
Модель данных является инструментом моделирования произвольной предметной области.
Понятие модели данных
^ Модель данных – это совокупность правил порождения структур данных в базе данных, операций над ними, а также ограничений целостности, определяющих допустимые связи и значения данных, последовательность их изменения [6]. Итак, модель данных состоит из трёх частей:
Набор типов структур данных.
Здесь можно провести аналогию с языками программирования, в которых тоже есть предопределённые типы структур данных, такие как скалярные данные, векторы, массивы, структуры (например, тип struct в языке Си) и т.д.
Набор операторов или правил вывода, которые могут быть применены к любым правильным примерам типов данных, перечисленных в (1), чтобы находить, выводить или преобразовывать информацию, содержащуюся в любых частях этих структур в любых комбинациях.
Такими операциями являются: создание и модификация структур данных, внесение новых данных, удаление и модификация существующих данных, поиск данных по различным условиям.
Набор общих правил целостности, которые прямо или косвенно определяют множество непротиворечивых состояний базы данных и/или множество изменений её состояния.
Правила целостности определяются типом данных и предметной областью. Например, значение атрибута Счётчик является целым числом, т.е. может состоять только из цифр. А ограничения предметной области таковы, что это число не может быть меньше нуля.
Теперь рассмотрим подробнее наборы, составляющие модель данных.
^ Типы структур данных
Структуризация данных базируется на использовании концепций "агрегации" и "обобщения". Один из первых вариантов структуризации данных был предложен Ассоциацией по языкам обработки данных (Conference on Data Systems Languages, CODASYL) (рис. 2.1).
Рис.2.1. Композиция структур данных по версии CODASYL
Элемент данных – наименьшая поименованная единица данных, к которой СУБД может обращаться непосредственно и с помощью которой выполняется построение всех остальных структур. Для каждого элемента данных должен быть определён его тип.
^ Агрегат данных – поименованная совокупность элементов данных внутри записи, которую можно рассматривать как единое целое. Агрегат может быть простым (включающим только элементы данных, рис. 2.2,а) и составным (включающим наряду с элементами данных и другие агрегаты, рис. 2.2,б).
Рис.2.2. Примеры агрегатов: а) простой и б) составной агрегат
Запись – поименованная совокупность элементов данных или элементов данных и агрегатов. Запись – это агрегат, не входящий в состав никакого другого агрегата; она может иметь сложную иерархическую структуру, поскольку допускается многократное применение агрегации. Различают тип записи (её структуру) и экземпляр записи, т.е. запись с конкретными значениями элементов данных. Одна запись описывает свойства одной сущности ПО (экземпляра). Иногда термин "запись" заменяют термином "группа".
Пример записи, содержащей сведения о сотруднике, приведён на рис. 2.3.
Рис.2.3. Пример записи типа СОТРУДНИК
Эта запись имеет несколько элементов данных (Номер пропуска, Должность, Пол и т.д.) и три агрегата: простые агрегаты ФИО и Адрес и повторяющийся агрегат Телефоны. (Повторяющийся агрегат может включаться в запись произвольное число раз).
Среди элементов данных (полей записи) выделяются одно или несколько ключевых полей. Значения ключевых полей позволяют классифицировать сущность, к которой относится конкретная запись. Ключи с уникальными значениями называются потенциальными. Каждый ключ может представлять собой агрегат данных. Один из ключей назначается первичным, остальные являются вторичными. Первичный ключ идентифицирует экземпляр записи, его значение должно быть уникальным и обязательным для записей одного типа. Для примера на рис. 2.3 потенциальными ключами являются поля № пропуска и Паспорт, а первичным ключом целесообразнее выбрать поле № пропуска, т.к. оно явно занимает меньше памяти, чем паспортные данные.
Набор (или групповое отношение) – поименованная совокупность записей, образующих двухуровневую иерархическую структуру. Каждый тип набора представляет собой связь между двумя или несколькими типами записей. Для каждого типа набора один тип записи объявляется владельцем набора, остальные типы записи объявляются членами набора. Каждый экземпляр набора должен содержать только один экземпляр записи типа владельца и столько экземпляров записей типа членов набора, сколько их связано с владельцем. Для группового отношения также различают тип и экземпляр.
Групповые отношения удобно изображать с помощью диаграммы Бахмана, которая названа так по имени одного из разработчиков сетевой модели данных. Диаграмма Бахмана – это ориентированный граф, вершины которого соответствуют группам (типам записей), а дуги – групповым отношениям (рис. 2.4).
Рис. 2.4. Пример диаграммы Бахмана для фрагмента БД "Город"
Здесь запись типа ПОЛИКЛИНИКА является владельцем записей типа ЖИТЕЛЬ и они связаны групповым отношением диспансеризация. Запись типа ОРГАНИЗАЦИЯ также является владельцем записей типа ЖИТЕЛЬ и они связаны групповым отношением работают. Записи типа РЭУ и типа ЖИТЕЛЬ являются владельцами записей типа КВАРТИРА с отношениями соответственно обслуживают и проживают. Таким образом, запись одного и того же типа может быть членом одного отношения и владельцем другого.
^ База данных – поименованная совокупность экземпляров групп и групповых отношений. Это самый высокий уровень структуризации данных.
Примечание: структуризация данных по версии CODASYL используется в сетевой и иерархической моделях данных. В реляционной модели принята другая структуризация данных, основанная на теории множеств.
^ Операции над данными
Модель данных определяет множество действий, которые допустимо производить над некоторой реализацией БД для её перевода из одного состояния в другое. Это множество соотносят с языком манипулирования данными (Data Manipulation Language, DML).
Любая операция над данными включает в себя селекцию данных (select), то есть выделение из всей совокупности именно тех данных, над которыми должна быть выполнена требуемая операция, и действие над выбранными данными, которое определяет характер операции. Условие селекции – это некоторый критерий отбора данных, в котором могут быть использованы логическая позиция элемента данных, его значение и связи между данными.
По типу производимых действий различают следующие операции:
идентификация данных и нахождение их позиции в БД;
выборка (чтение) данных из БД;
включение (запись) данных в БД;
удаление данных из БД;
модификация (изменение) данных БД.
Обработка данных в БД осуществляется с помощью процедур базы данных – транзакций. Транзакцией называют упорядоченное множество операций, переводящих БД из одного согласованного состояния в другое. Транзакция либо выполняется полностью, т.е. выполняются все входящие в неё операции, либо не выполняется совсем, если в процессе её выполнения возникает ошибка.
^ Ограничения целостности
Ограничения целостности – это правила, которым должны удовлетворять значения элементов данных. Ограничения целостности делятся на явные и неявные.
Неявные ограничения определяются самой структурой данных. Например, тот факт, что запись типа СОТРУДНИК имеет поле Дата рождения, служит, по существу, ограничением целостности, означающим, что каждый сотрудник организации имеет дату рождения, причём только одну.
Явные ограничения включаются в структуру базы данных с помощью средств языка контроля данных (DCL, Data Control Language). В качестве явных ограничений чаще всего выступают условия, накладываемые на значения данных. Например, номер паспорта является уникальным, заработная плата не может быть отрицательной, а дата приёма сотрудника на работу обязательно будет меньше, чем дата его перевода на другую работу.
Также различают статические и динамические ограничения целостности. Статические ограничения присущи всем состояниям ПО, а динамические определяют возможность перехода ПО из одного состояния в другое. Примерами статических ограничений целостности могут служить требование уникальности индивидуального номера налогоплательщика (ИНН) или задание ограниченного множества значений атрибута "Пол" ('м' и 'ж'). В качестве примера динамического ограничения целостности можно привести правило, которое распространяется на поля-счётчики: значение счётчика не может уменьшаться.
За выполнением ограничений целостности следит СУБД в процессе своего функционирования. Она проверяет ограничения целостности каждый раз, когда они могут быть нарушены (например, при добавлении данных, при удалении данных и т.п.), и гарантирует их соблюдение. Если какая-либо команда нарушает ограничение целостности, она не будет выполнена и система выдаст соответствующее сообщение об ошибке. Например, если задать в качестве ограничения правило «Остаток денежных средств на счёте не может быть отрицательным», то при попытке снять со счёта денег больше, чем там есть, система выдаст сообщение об ошибке и не позволит выполнить эту операцию. Таким образом, ограничения целостности обеспечивают логическую непротиворечивость данных при переводе БД из одного состояния в другое.
В настоящее время разработано много различных моделей данных. Основные – это сетевая, иерархическая и реляционная модели.
^ Сетевая модель данных (СМД)
Сетевая модель позволяет организовывать БД, структура к
еще рефераты
Еще работы по разное
Реферат по разное
Взаимодействие с Фондом поддержки малого предпринимательства Свердловской области
17 Сентября 2013
Реферат по разное
Ю образовательного учреждения, и, как следствие, оптимизировать управленческую деятельность и получать оперативный доступ к актуальной информации из единой базы
17 Сентября 2013
Реферат по разное
Програма для вступу на освітньо-кваліфікаційний рівень „магістр" після окр „спеціаліст" за спеціальністю
17 Сентября 2013
Реферат по разное
Фармацевтична хімія Одеса 2006 ббк 65. 05 ─ 49я 73 к 431
17 Сентября 2013