Организация баз данных
Покупка
Тематика:
Проектирование баз и банков данных
Автор:
Сенченко Павел Васильевич
Год издания: 2015
Кол-во страниц: 170
Дополнительно
Рассматриваются вопросы организации баз данных. Изложены принципы проектирования реляционных баз данных, нормализации отношений. Подробно рассматриваются операции реляционной алгебры, синтаксис и применение языка SQL. Даются характеристики баз данных различных поколений. Материал подготовлен на основе учебного курса, который читается автором в Томском государственном университете систем управления и радиоэлектроники. Ориентировано на студентов направлений подготовки бакалавров «Государственное и муниципальное управление», «Бизнес-информатика», «Программная инженерия», а также студентов родственных специальностей и разработчиков баз данных.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.04: Программная инженерия
- 38.03.04: Государственное и муниципальное управление
- 38.03.05: Бизнес-информатика
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Министерство образования и науки Российской Федерации ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР) ФАКУЛЬТЕТ ДИСТАНЦИОННОГО ОБУЧЕНИЯ (ФДО) П. В. Сенченко ОРГАНИЗАЦИЯ БАЗ ДАННЫХ Учебное пособие Томск 2015
УДК 004.65(075.8) ББК 32.973.233-018.2я73 С–316 Рецензенты: Тарасенко В. Ф., докт. техн. наук, профессор кафедры теоретической кибернетики Национального исследовательского Томского государственного университета; Перемитина Т. О. канд. техн. наук, доцент кафедры автоматизации обработки информации ТУСУР. Сенченко П. В. С–316 Организация баз данных : учебное пособие / П. В. Сенченко. — Томск : ФДО, ТУСУР, 2015. — 170 с. Рассматриваются вопросы организации баз данных. Изложены принципы проектирования реляционных баз данных, нормализации отношений. Подробно рассматриваются операции реляционной алгебры, синтаксис и применение языка SQL. Даются характеристики баз данных различных поколений. Материал подготовлен на основе учебного курса, который читается автором в Томском государственном университете систем управления и радиоэлектроники. Ориентировано на студентов направлений подготовки бакалавров «Государственное и муниципальное управление», «Бизнес-информатика», «Программная инженерия», а также студентов родственных специальностей и разработчиков баз данных. УДК 004.65(075.8) ББК 32.973.233-018.2я73 © Сенченко П. В., 2015 © Оформление. ФДО, ТУСУР, 2015
ОГЛАВЛЕНИЕ Введение 6 1 Обоснование концепции баз данных 8 1.1 История и направления развития вычислительной техники . . . . . . 8 1.2 Файл и области применения файлов . . . . . . . . . . . . . . . . . . . . 11 1.3 Основные понятия СУБД . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.4 Функции СУБД . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2 Модели данных 24 2.1 Архитектура представления информации в концепции баз данных . 24 2.2 Развитие моделей данных . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.3 Иерархическая модель данных . . . . . . . . . . . . . . . . . . . . . . . . 30 2.4 Сетевая модель данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 3 Реляционная модель 35 3.1 Основные понятия реляционной модели . . . . . . . . . . . . . . . . . . 35 3.1.1 Общие сведения . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.1.2 Смысл понятий реляционной модели . . . . . . . . . . . . . . . 36 3.2 Свойства отношений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.2.1 Уникальность кортежей отношения . . . . . . . . . . . . . . . . 39 3.2.2 Отсутствие упорядоченности кортежей и атрибутов . . . . . . 40 3.2.3 Атомарность значений атрибутов, первая нормальная форма . 40 3.2.4 Состав реляционной модели данных . . . . . . . . . . . . . . . 42 3.3 Целостная часть реляционной модели данных . . . . . . . . . . . . . . 44 3.3.1 Целостность сущности . . . . . . . . . . . . . . . . . . . . . . . . 44 3.3.2 Ссылочная целостность . . . . . . . . . . . . . . . . . . . . . . . 44 3.3.3 Целостность доменов . . . . . . . . . . . . . . . . . . . . . . . . . 46 3.3.4 Целостность, определяемая пользователем . . . . . . . . . . . . 47 3.4 Технология манипулирования данными в реляционной модели . . . . 48 3.4.1 Основные принципы технологии манипулирования реляционными данными . . . . . . . . . . . . . . . . . . . . . . . 48 3.4.2 Операции реляционной алгебры . . . . . . . . . . . . . . . . . . 49 3.4.3 Реляционное исчисление . . . . . . . . . . . . . . . . . . . . . . . 56 4 Технология проектирования реляционных баз данных 60 4.1 Нормализация отношений . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 4.1.1 Термины и определения . . . . . . . . . . . . . . . . . . . . . . . 60 4.1.2 Вторая нормальная форма . . . . . . . . . . . . . . . . . . . . . . 62 4.1.3 Третья нормальная форма . . . . . . . . . . . . . . . . . . . . . . 64 4.1.4 Нормальная форма Бойса—Кодда . . . . . . . . . . . . . . . . . . 66
Оглавление 4.1.5 Четвертая нормальная форма . . . . . . . . . . . . . . . . . . . . 68 4.1.6 Пятая нормальная форма . . . . . . . . . . . . . . . . . . . . . . . 70 4.1.7 Денормалилизация отношений . . . . . . . . . . . . . . . . . . . 72 4.2 Моделирование данных с помощью диаграмм «сущность-связь» . . . 74 4.2.1 Основные понятия модели «сущность-связь» . . . . . . . . . . 74 4.2.2 Принцип нормализации ER-диаграмм . . . . . . . . . . . . . . . 77 4.2.3 Дополнительные элементы ER-модели . . . . . . . . . . . . . . 78 4.2.4 Получение схемы реляционной базы данных из ER-диаграммы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 4.3 CASE-средства . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 4.3.1 Назначение и классификация CASE-средств . . . . . . . . . . . 80 4.3.2 Обзор CASE-средств . . . . . . . . . . . . . . . . . . . . . . . . . 80 5 Языки управления и манипулирования данными 86 5.1 Язык SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 5.1.1 История развития языка . . . . . . . . . . . . . . . . . . . . . . . 86 5.1.2 Стандарты языка SQL . . . . . . . . . . . . . . . . . . . . . . . . . 87 5.1.3 Описание основных команд SQL . . . . . . . . . . . . . . . . . . 90 5.1.4 Особые возможности и основные различия языка Microsoft Jet и ANSI SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 5.2 Язык Query-by-Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 5.2.1 Основы языка QBE . . . . . . . . . . . . . . . . . . . . . . . . . . 112 5.2.2 Запрос по образцу (идеология MS Access) . . . . . . . . . . . . 113 6 Физическая организация баз данных 116 6.1 Структуры внешней памяти, методы организации индексов . . . . . . 116 6.1.1 Организация внешней памяти . . . . . . . . . . . . . . . . . . . . 116 6.1.2 Хранение таблиц в базе данных . . . . . . . . . . . . . . . . . . 118 6.1.3 Организация индексов, методы хранения и доступа к данным . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 6.1.4 Словарь данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 6.1.5 Прочие объекты базы данных . . . . . . . . . . . . . . . . . . . . 126 6.2 Оптимизация работы с базами данных . . . . . . . . . . . . . . . . . . . 129 6.3 Экстенсиональная и интенсиональная части базы данных . . . . . . . 131 7 Системы управления базами данных 133 7.1 СУБД первого поколения . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 7.2 СУБД второго поколения — реляционные СУБД . . . . . . . . . . . . . 134 7.2.1 Архитектура СУБД второго поколения . . . . . . . . . . . . . . 134 7.2.2 СУБД FoxPro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 7.2.3 СУБД MS Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 7.3 СУБД третьего поколения и объектно-ориентированные СУБД . . . . 141 7.3.1 Манифесты СУБД третьего поколения и объектно-ориентированных СУБД . . . . . . . . . . . . . . . . 141 7.3.2 Общие понятия объектно-ориентированного подхода к базам данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Оглавление 5 7.3.3 Реализация объектно-ориентированного подхода в СУБД Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 7.3.4 СУБД Cach´e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 7.3.5 Перспективы развития СУБД . . . . . . . . . . . . . . . . . . . . 160 Заключение 162 Литература 163 Список условных обозначений и сокращений 165 Глоссарий 167
ВВЕДЕНИЕ Учебное пособие составлено в соответствии с требованиями основных образовательных программ Федеральных государственных образовательных стандартов подготовки бакалавров по направлениям «Программная инженерия», «Бизнесинформатика», «Государственное и муниципальное управление» по дисциплине «Базы данных». Изучение материала, изложенного в данном пособии, должно не только помочь в освоении новых знаний будущим специалистам в области разработки информационных технологий, но и сформировать общий базис по организации баз данных (БД) квалифицированным специалистам в различных областях деятельности, связанных с использованием прикладных программных продуктов. Целью изучения данного курса является овладение способами организации и методами проектирования баз данных, а также технологией их использования в системах обработки информации и управления. Учебное пособие содержит следующие основные разделы дисциплины: • положения концепции баз данных, теория структуризации данных, принципы построения баз данных и методы доступа к ним; • современные системы управления базами данных и их место в системах обработки информации; • современные методики проектирования баз данных. Для эффективного освоения материала, изложенного в учебном пособии, студентам целесообразно знать: основы информатики, общие представления о разработке информационных технологий, подходы к обработке данных, основы теории множеств и применения теоретико-множественных операций. В результате изучения дисциплин с использованием данного пособия студент приобретает знания, необходимые для эффективного проектирования сложно структурированных баз данных для любых предметных областей с использованием методов нормализации и моделирования данных. В ходе изучения практической составляющей пособия студенты получают возможность создания баз данных и простых информационных технологий в среде современных систем управления базами данных. Знание организации БД позволит на профессиональном уровне овладеть навыками работы в конкретных прикладных системах по ведению и обработке информации.
Соглашения, принятые в книге 7 Соглашения, принятые в книге Для улучшения восприятия материала в данной книге используются пиктограммы и специальное выделение важной информации. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Этот блок означает определение или новое понятие. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Этот блок означает внимание. Здесь выделена важная информация, требующая акцента на ней. Автор здесь может поделиться с читателем опытом, чтобы помочь избежать некоторых ошибок. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Эта пиктограмма означает совет. В данном блоке можно указать более простые или иные способы выполнения определенной задачи. Совет может касаться практического применения только что изученного или содержать указания на то, как немного повысить эффективность и значительно упростить выполнение некоторых задач. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Этот блок означает теорему. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . Пример . . .. . . . . . . . . . . . . . . . . . . . . . Этот блок означает пример. В данном блоке автор может привести практический пример для пояснения и разбора основных моментов, отраженных в теоретическом материале. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Контрольные вопросы по главе . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Глава 1 ОБОСНОВАНИЕ КОНЦЕПЦИИ БАЗ ДАННЫХ 1.1 История и направления развития вычислительной техники История развития технических средств, способных облегчить умственный труд человека, насчитывает несколько сотен лет. Так, одним из первых устройств для выполнения арифметических вычислений принято считать счетную доску абак, которую использовали еще в Древнем Вавилоне в третьем тысячелетии до нашей эры. В России абак или более известные деревянные русские счеты появились намного позже, в XV веке нашей эры. В XVII веке немецкий ученый Вильгельм Шиккард разработал первый механический калькулятор «Считающие часы», с помощью которого можно было выполнить четыре основных арифметических действия. Немного позднее были изобретены счетные машины Блеза Паскаля и Готфрида Вильгельма Лейбница. Первый серийный арифмометр был создан Шарлем Ксавье Томасом де Кольмаром в 1820 году. Подобные механические калькуляторы применялись вплоть до 70-х годов XX века. В начале XIX века Жозеф Мари Жаккар разработал работающей с использованием перфокарт ткацкий станок. Для того чтобы изменить узор на ткани, необходимо было просто заменить набор перфокарт. Подобная технология в дальнейшем использовалась в разработке аналитических машинах Чарльза Бэббиджа. Вычислительные устройства, созданные на основе применения перфокарт, а позднее и перфолент, использовались повсеместно до 80-х годов прошлого века. В 1904 году в Российской империи русским инженером Алексеем Николаевичем Крыловым была изобретена вычислительная машина, способная решать дифференциальные уравнения. В первой половине XX века уже стало обыденным использование механических вычислителей в труде математиков, бухгалтеров и финансовых работников. Так, в Советском Союзе был создан арифмометр «Феликс», выпускавшийся с 1929 по 1978 годы, фактически это был первый отечественный механический калькулятор.
1.1 История и направления развития вычислительной техники 9 С началом эпохи электричества начинался новый виток в развитии вычислительных машин. В 1890 году Германом Холлеритом была создана электромеханическая машина, способная выполнять различные математические расчеты, оперируя информацией, зафиксированной на перфокартах, обеспечивая вывод данных на бумажные носители. Такая машина, получившая название «табулятор», использовалась в обработке переписи населения США в 1890 году. Холлеритом была организована фирма, основной задачей которой являлось производство табуляторов для различных сфер деятельности (партия таких машин была закуплена правительством Российской империи). Фирма Холлерита динамично развивалась, а с 1924 года получила широко известное название IBM. В 1935 году в СССР на Первом Государственном заводе счетных и счетноаналитических машин была создана первая в нашей стране электродинамическая счетно-аналитическая машина «Табулятор Т1». В 1941 году немецким инженером Конрадом Цузе была спроектирована и воплощена в жизнь Z3 — первая полноценная вычислительная машина, созданная на основе обыкновенных телефонных реле. Для этой разработки были характерны основные свойства современных компьютеров — существовали возможности по программному управлению и программированию в двоичном коде с плавающей запятой. В середине XX века в процессе развития и совершенствования вычислительной техники сформировалось два основных направления ее использования. Первое направление (40-е–50-е годы) характеризовалось широкомасштабным применением электронно-вычислительной техники для выполнения сложных математических расчетов, которые трудоемко или вообще невозможно производить вручную. Так, в 1943 году в США была создана первая за океаном вычислительная машина Марк I, основное назначение которой заключалось в возможности проведения баллистических расчетов для Министерства обороны США. Становление этого направления способствовало интенсификации методов численного решения сложных математических задач; развитию класса языков программирования, предназначенных для записи в программном коде численных алгоритмов; возникновению обратной связи с разработчиками новых архитектур ЭВМ. При этом объем исходных данных был соизмерим с объемом оперативной памяти. Одним из недостатков первого направления являлась невозможность повторного использования исходных данных. Дополнительным толчком в развитии вычислительной техники явилось изобретение в 1960 году интегральной схемы. Для этого периода характерно второе направление (60-е годы), непосредственно касающееся темы нашего курса, — это использование средств вычислительной техники для разработки и функционирования автоматизированных информационных систем. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Информационная система представляет собой программный комплекс, функции которого состоят в обеспечении надежного хранения информации в памяти компьютера, выполнении операций по обработке информации для данного приложения, предоставлении пользователям удобного и легко осваиваемого интерфейса. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Глава 1. Обоснование концепции баз данных Обычно объемы информации, с которыми приходится иметь дело таким системам, достаточно велики, а сама информация может иметь сложную структуру. Примерами информационных систем являются библиотечные системы, системы бухгалтерского и финансового учета, банковские системы, системы резервирования авиационных или железнодорожных билетов, системы складского учета и т. д. Естественно, что второе направление возникло несколько позже первого. Это связано с тем, что на начальном этапе развития вычислительной техники компьютеры обладали ограниченными возможностями в области памяти. Говорить о надежном и долговременном хранении информации можно только при наличии энергонезависимых запоминающих устройств, т. е. сохраняющих информацию после выключения электрического питания. Оперативная память этим свойством обычно не обладает. Для первоначального периода создания средств вычислительной техники характерно использование нескольких типов носителей информации во внешней памяти: магнитных лент, перфолент, перфокарт и барабанов. При этом перфоленты и перфокарты были способны обеспечить только хранение информации без возможности ее перезаписи, емкость магнитных лент была достаточно велика, но по своей физической природе они обеспечивали лишь последовательный доступ к данным. Магнитные же барабаны, отдаленно напоминающие современные магнитные диски, давали возможность произвольного доступа к данным, но были ограниченного размера. Легко заметить, что указанные ограничения не существенны для чисто численных расчетов. Даже если программа должна обработать (или произвести) большой объем информации, при программировании можно продумать расположение этой информации во внешней памяти таким образом, чтобы программа работала как можно быстрее и сохраняла данные после окончательных вычислений на любом из вышеперечисленных носителей. Однако для информационных систем, в которых потребность в текущих данных определяется пользователем, наличия только магнитных лент и барабанов и, тем более, перфокарт и перфолент недостаточно. Одним из естественных требований к таким системам является средняя скорость выполнения операций. Требования к вычислительной технике со стороны нечисленных приложений вызвали появление съемных магнитных дисков с подвижными (плавающими) головками, что явилось революцией в истории ее развития. Эти устройства внешней памяти обладали существенно большей емкостью, чем магнитные барабаны, обеспечивая удовлетворительную скорость доступа к данным в режиме произвольной выборки, а возможность смены дискового пакета на устройстве позволяла иметь практически неограниченный архив данных, перфокарты и перфоленты ушли в прошлое. С изобретением магнитных дисков началось развитие систем управления данными во внешней памяти. До этого каждая прикладная программа, которой требовалось сохранение данных во внешней памяти, сама определяла расположение каждой порции данных на магнитной ленте или барабане и выполняла обмены между оперативной и внешней памятью с помощью программно-аппаратных средств низкого уровня, машинных команд и вызовов соответствующих программ операционной системы. Такой режим работы затруднял поддержание на одном внешнем носителе нескольких архивов долговременно хранимой информации.