Главная страница
Навигация по странице:

  • ISBN 9785811493685

  • ПРЕДИСЛОВИЕ

  • ЧАСТЬ 1. ОСНОВНЫЕ КОНЦЕПЦИИ 7 / 19 8ГЛАВА 1. АВТОНОМНОСТЬ БАЗ ДАННЫХ

  • Листинг 1.1

  • Листинг 1.2

  • ГЛАВА 2. МОДЕЛИ ДАННЫХ 2.1. Проектирование как процесс преобразования моделей

  • Волк В.К. Базы данных. Практикум по проектированию, программированию и администрированию баз данных, включающий примеры и практические задания для самостоятельного выполнения


    Скачать 3.17 Mb.
    НазваниеПрактикум по проектированию, программированию и администрированию баз данных, включающий примеры и практические задания для самостоятельного выполнения
    АнкорВолк В.К. Базы данных
    Дата16.11.2022
    Размер3.17 Mb.
    Формат файлаpdf
    Имя файлаVolk_Bazy-dannyh-proektirovanie-programmirovanie-upravlenie-i-ad.pdf
    ТипПрактикум
    #791285
    страница1 из 18
      1   2   3   4   5   6   7   8   9   ...   18

    САНКТПЕТЕРБУРГ
    МОСКВА
    КРАСНОДАР
    2022
    БАЗЫ ДАННЫХ
    ПРОЕКТИРОВАНИЕ,
    ПРОГРАММИРОВАНИЕ,
    УПРАВЛЕНИЕ
    И АДМИНИСТРИРОВАНИЕ
    Учебник
    В. К. ВОЛК
    Издание третье, стереотипное
    1 / 19

    © Издательство «Лань», 2022
    © В. К. Волк, 2022
    © Издательство «Лань»,
    художественное оформление, 2022
    Îáëîæêà
    П. И. ПОЛЯКОВА
    УДК 004.65
    ББК 32.973018.2я73
    В 67
    Волк В. К. Базы данных. Проектирование, программиро
    вание, управление и администрирование : учебник для вузов / В. К. Волк. — 3е изд., стер. — СанктПетербург :
    Лань, 2022. — 244 с. : ил. — Текст : непосредственный.
    ISBN 9785811493685
    Учебник посвящен базам данных — одному из направлений ITинду
    стрии, в рамках которого традиционно рассматриваются технологии надежного хранения больших объемов информации, ее эффективного поиска и извлечения по запросам потребителей. Материал, представленный в учебнике, охватывает основные фазы жизненного цикла базы данных:
    последовательно обсуждаются основные концепции и проблематика баз данных, рассматриваются процессы их проектирования, программирования и управления, а также технологии их администрирования с целью достижения высокой производительности доступа к данным и обеспечения требуемого уровня информационной безопасности. База данных рассматри
    вается как информационная модель предметной области, а ее разработка —
    как многоэтапный процесс последовательного преобразования концептуаль
    ной модели в логическую (реляционную) модель данных на стадии проектирования, последующей программной реализации логической модели средствами языка SQL и настройки параметров физической модели в процессе эксплуатации базы данных.
    Основное внимание в учебнике уделено прикладным аспектам техноло
    гий баз данных, изложение материала сопровождается многочисленными примерами и листингами программного SQLкода. Учебник содержит практикум по проектированию, программированию и администрированию баз данных, включающий примеры и практические задания для самостоятельного выполнения.
    Предназначен для студентов вузов ITспециальностей и может быть использован преподавателями при подготовке лекционных курсов,
    проведении практических и лабораторных занятий, курсовом проекти
    ровании.
    УДК 004.65
    ББК 32.973018.2я73 2 / 19

    3
    ПРЕДИСЛОВИЕ
    Высокая ценность информации признавалась во все времена, но только во второй половине XX в., когда появилась возможность эффективного управле- ния действительно большими объемами информации, она стала важнейшим стратегическим ресурсом, обслуживание которого потребовало создания спе- циализированных программно-технических средств — автоматизированных информационных систем (АИС).
    АИС обеспечивают надежное хранение и оперативное обновление ин- формации, а также ее поиск, извлечение и аналитическую обработку по запро- сам потребителей. При всем разнообразии архитектур, решаемых задач и усло- вий использования АИС в структуре их программного обеспечения (ПО) явно выделяют два относительно автономных компонента: подсистему хранения данных и подсистему обработки информации. Основу подсистемы хранения составляют база данных (БД) — программно реализованная информационная модель предметной области АИС, управляемая специализированной программ- ной системой (СУБД), и подсистема обработки информации, включающая множество прикладных программ, получающих доступ к СУБД для чтения и/или модификации информации, хранимой в базе данных.
    АИС относятся к категории социотехнических систем, важнейшим ком- понентом которых, наряду с аппаратным и программным обеспечением, явля- ются пользователи — разработчики, администраторы и конечные пользователи, участвующие в создании или эксплуатации АИС на различных стадиях ее жиз- ненного цикла.
    Материал, излагаемый в учебнике, охватывает основные стадии жизнен- ного цикла базы данных и в основном соответствует содержанию учебной дис- циплины «Базы данных», изучаемой студентами IT-специальностей. Учебное пособие состоит из пяти относительно автономных частей, каждая из которых ориентирована на определенную категорию пользователей баз данных.
    1–3-я части учебника (главы с 1-й по 7-ю) ориентированы на проектиров- щиков и программистов баз данных, обычно выделяемых в отдельную категорию разработчиков программных систем. Здесь рассматриваются:
    – проблемы и пути достижения автономности системы хранения данных в составе программного обеспечения АИС, вводятся понятия базы данных и си-
    стемы управления базами данных;
    – информационные модели, используемые на различных стадиях жизнен- ного цикла баз данных, дается обзор основных свойств иерархической, сетевой, реляционной и объектно-ориентированной логических моделей данных;
    – реляционная модель данных Кодда: ее структурный, целостностный и манипуляционный компоненты, включая реляционную алгебру и реляционное исчисление кортежей (в объеме, минимально необходимом для понимания ме- тодов нормализации реляционных баз данных и освоения базовых конструкций языка SQL);
    – процедура проектирования базы данных, включающая разработку кон- цептуальной ER-модели предметной области АИС, преобразование ER-модели
    3 / 19

    4
    в схему реляционной БД и ее последующую нормализацию для улучшения экс- плуатационных характеристик;
    – программная реализация реляционных БД, рассматриваемая на примере одного из диалектов языка SQL, соответствующего стандарту SQL-89, обсуж- даются также элементы процедурного расширения языка, соответствующие стандарту SQL-92.
    5-я и 7-я главы учебника — это проектный практикум и практикум по
    SQL-программированию. Эти главы могут быть использованы как при прове- дении практических занятий со студентами, так и для самостоятельного освое- ния соответствующих разделов технологий баз данных.
    4-я часть учебника (главы с 8-й по 14-ю) посвящена вопросам управления данными и ориентирована на администраторов баз данных — IT-специалистов, обеспечивающих эффективное функционирование БД в процессе их эксплуата- ции. В этой части рассматриваются:
    – задачи администрирования БД, базовые функции реляционных СУБД и более детально — проблемы многопользовательского доступа к БД и пути их решения средствами управления транзакциями и блокировками;
    – низкоуровневая («физическая») модель данных, поддерживаемая на файловом уровне одним из коммерческих серверов баз данных, и инструмен- тальные средства управления этой моделью, предоставляемые администрато- рам баз данных;
    – методы высокопроизводительного доступа к данным, обеспечиваемые индексными структурами, алгоритмы поиска информации, а также инструмен- тальные средства анализа и управления индексами;
    – процедура трансляции исходного SQL-кода и оптимизации запросов, инструментальные средства визуализации и анализа процедурных планов их исполнения.
    5-я часть учебника (главы с 15-й по 17-ю) ориентирована на специалистов по защите информации, часто выделяемых в отдельную категорию администра- торов баз данных. Здесь рассматриваются:
    – концепции, задачи и методы защиты информации, хранимой в базах данных;
    – типовая архитектура подсистемы информационной безопасности СУБД;
    – методы и инструментальные средства разграничения доступа к объек- там БД со стороны пользователей.
    14-я и 17-я главы учебника — практикум по администрированию баз дан- ных и управлению информационной безопасностью, содержащий практические задания аналитического и технологического характера, выполнение которых позволит студентам более детально изучить низкоуровневую структуру базы данных, реализованные в СУБД алгоритмы управления данными и методы за- щиты от несанкционированного доступа, а также потребует от них освоения разнообразных технологических инструментов, используемых администрато- рами баз данных в своей профессиональной деятельности.
    4 / 19

    5
    Следует отметить прикладной характер учебника, основное внимание в нем уделено технологическим аспектам проектирования, программирования и администрирования баз данных.
    Теоретическим вопросам построения баз данных посвящены многочис- ленные публикации [4, 7, 16, 21, 24–33], среди которых можно выделить курс лекций С. Кузнецова [7], в котором, в частности, более детально рассмотрена реляционная модель данных: реляционная алгебра Кодда, алгебра «А» Дэйта и
    Дарвена, реляционное исчисление кортежей и доменов, теория нормальных форм отношений. Имеются также учебные издания, авторы которых рассмат- ривают технологии проектирования баз данных и их программной реализации, среди которых можно отметить книги Г. Рикарди [9] и Л. Бейли [1].
    В то же время (и это вполне объяснимо) вопросы построения СУБД, под- держиваемые ими низкоуровневые структуры данных, методы и алгоритмы управления, а также технологии администрирования баз данных представлены в основном научными и обзорными статьями в специализированных журналах, технической документацией, публикуемой разработчиками СУБД на своих официальных интернет-ресурсах, а также статьями в многочисленных профес- сиональных блогах, поддерживаемых администраторами баз данных. За редким исключением (например, книги С. Бобровского [2] и Е. Мамаева [8]) материалы такого рода трудно отнести к категории учебных изданий, их можно рекомен- довать студентам, изучающим базы данных, лишь в качестве дополнительных информационных источников.
    Учебник не является практическим руководством по администрированию баз данных и, разумеется, не охватывает весь объем трудовых функций, опре- деленных соответствующими профессиональными стандартами. При его подго- товке основное внимание было уделено вопросам организации физической модели данных, оптимизации выполнения SQL-запросов и разграничения до- ступа к данным, то есть решению наименее рутинных задач администрирова- ния, требующих профессиональной компетентности в вопросах функциониро- вания серверов баз данных, организации хранения данных на файловом уровне и методах поиска информации, основанных на использовании индексных структур данных.
    При подготовке учебника автор учитывал личный опыт преподавания технологий баз данных студентам старших курсов IT-специальностей Курган- ского государственного университета. Использование учебника предполагает наличие у студентов базовой подготовки в области программной инженерии: программирование, структуры и типовые алгоритмы обработки данных, модели жизненного цикла ПО, основы языка UML.
    Автор выражает благодарность всем студентам, использовавшим предва- рительный вариант учебника и сделавшим ряд полезных замечаний по его со- держанию. Особая благодарность студентам П. Казакову и Д. Стенникову, про- делавшим большую работу по анализу структуры системных объектов баз дан- ных, и М. Останину, исследовавшему индексные структуры данных и проце- дурные планы выполнения SQL-запросов.
    5 / 19

    6 6 / 19

    7
    ЧАСТЬ 1.
    ОСНОВНЫЕ КОНЦЕПЦИИ
    7 / 19

    8
    ГЛАВА 1. АВТОНОМНОСТЬ
    БАЗ ДАННЫХ
    Автономность подсистемы хранения данных, в основу которой положен принцип независимости данных от обрабатывающих их программ, является существенной особенностью АИС, отличающей их от других программных си- стем. Отсутствие взаимозависимости программ и данных позволяет, в частно- сти, использовать БД для решения многих прикладных задач, постепенно наращивая функциональность АИС, а также обеспечивает возможность моди- фикации структуры самой БД в соответствии с изменениями моделируемого сегмента предметной области.
    На пути к достижению автономности баз данных в составе АИС эти системы прошли ряд этапов в своем эволюционном развитии. В первых ком- пьютерных системах и программный код, и обрабатываемые им данные раз- мещались в едином запоминающем устройстве (вспомним один из базовых принципов фон Неймана, «сегмент кода» и «сегмент данных» в ассемблер- ном программном коде, пример которого приведен на листинге 1.1), и это накладывало серьезные ограничения на объем обрабатываемой информа- ции. format MZ;
    Исполняемый файл DOS EXE (MZ EXE) entry code_seg:start;
    Точка входа в программу stack 1000h;
    Размер стека segment data_seg;
    Cегмент данных hello_str db 'Hello!',0dh,0ah,'$';
    Выделение байт под строку segment code_seg;
    Сегмент кода start:;
    Точка входа в программу mov ax,data_seg;
    Инициализация регистра DS mov ds,ax mov ah,09h mov dx,hello_str int 21h;
    Вывод строки mov ax,4C00h int 21h;
    Завершение программы
    Листинг 1.1
    Пример ассемблерного кода программы
    Оснащение компьютеров быстродействующими дисковыми накопителя- ми большой емкости позволило снять это ограничение, так как стало возмож- ным хранение больших информационных массивов отдельно от программного кода — в файлах на внешних запоминающих устройствах. При этом, однако, описание структур таких файлов по-прежнему оставалось включенным в про- граммный код, что не избавляло систему от (как минимум) одного существен-
    8 / 19

    9
    ного недостатка, препятствующего реализации концепции автономности БД в структуре АИС.
    Для многих программных приложений объединение описаний структур данных и алгоритмов их обработки вполне естественно и не является их недо- статком, оно поддерживается (а в ряде случаев строго регламентируется) язы- ками программирования высокого уровня. Классическая схема исходного кода прикладной программы (листинг 1.2), написанной на высокоуровневом языке, предполагает наличие декларативной части, включающей описание типов и структур используемых данных, и собственно алгоритмической части, содер- жащей языковое описание алгоритмов их обработки.
    #include using namespace std; class Point { int x, y; public: void display(); int& givex() {return x;} int& givey() {return y;}
    Point (int xi = 0, int yi = 0) {x = xi; y = yi;} }; void Point::display() { cout << «x = » << x; cout << «, y = » << y << «\n»;} void main() { setlocale(LC_ALL,«Rus»);
    Point A;
    Point B(5,3); cout << «
    Точка A: »; A.display(); cout << «
    Точка B: »; B.display(); system(«pause»);}
    Листинг 1.2
    Пример кода программы на языке высокого уровня
    Объединение в едином программном коде описания структур данных, называемого метаданными, и описания алгоритмов их обработки неизбежно приводит к взаимозависимости программ и данных. Изменение метаданных
    (например, в связи с необходимостью корректировки модели предметной обла- сти) или алгоритмов их обработки (например, для реализации нового пользова- тельского запроса к БД) может потребовать модификации как декларативной, так и алгоритмической частей программного кода.
    Следующим этапом эволюции был отказ от хранения метаданных в программном коде и размещение их во внешнем файле аналогично тому, как это ранее было сделано для основных данных. Теперь при изменении струк- туры данных не требовалось вносить изменения в программный код, доста- точно было модифицировать файл с метаданными, доступный прикладной программе и необходимый ей для интерпретации и последующей обработки основных данных. Правда, такой прием давал лишь частичное решение про- блемы взаимозависимости данных и программ, так как описание структуры
    9 / 19

    10
    самих метаданных все равно приходилось хранить в коде прикладной про- граммы.
    Было найдено весьма радикальное решение и этой проблемы — приклад- ные программы были лишены возможности прямого доступа к БД и избавлены от необходимости интерпретации структуры как основных данных, так и мета- данных системы. Решение этой задачи, а также всего комплекса задач управле- ния данными возлагалось на специализированную служебную программу, имеющую непосредственный доступ к метаданным БД и обеспечивающую ин- формационную поддержку прикладных программ.
    Дальнейшее развитие этой концепции привело к созданию систем
    управления базами данных (СУБД), называемых также серверами баз данных.
    СУБД является необходимым компонентом подсистемы хранения данных
    АИС и образует промежуточный слой между файловой системой и приклад- ными программами, входящими в состав системы обработки данных АИС
    (рис. 1.1).
    Рис. 1.1
    Схема взаимодействия прикладных программ с базой данных
    Прикладные программы используют специальное представление о струк- туре БД (так называемую логическую модель данных) и отправляют в адрес
    СУБД запросы, сформулированные на языке этой модели. СУБД, получив такой запрос, обращается к системному каталогу (специальному служебному разделу БД, в котором хранятся метаданные — описание структуры БД), транс- лирует запрос в файловое представление (физическую модель данных), затем
    10 / 19

    11
    исполняет запрос путем прямого доступа к файлам БД и преобразует его ре- зультаты в логическое представление, понятное прикладной программе. Таким образом, прикладная программа получает от СУБД запрашиваемую информа- цию в формате логической модели данных, ничего при этом не зная о формате файлового представления этой информации в БД.
    Совместное файловое хранение метаданных с основными данными и ис- пользование универсальных программных средств управления данными — это принципиальные свойства БД, обеспечивающие ее автономность в составе АИС и независимость от пользовательских программ обработки информации. Имен- но это отличает базу данных от любой другой системы хранения информации на устройствах внешней памяти.
    11 / 19

    12
    ГЛАВА 2. МОДЕЛИ ДАННЫХ
    2.1. Проектирование как процесс преобразования моделей
    Представление о базе данных как об информационной модели предмет- ной области позволяет рассматривать процесс ее создания как процедуру по- следовательной детализации этой модели — от общего (пользовательского) представления об информационных сервисах, предоставляемых АИС, до схемы размещения соответствующих структур данных на внешних запоминающих устройствах.
    С другой стороны, представление о базе данных как о сложном программ- но-техническом объекте позволяет применять к процессу ее проектирования весь комплекс методов, инструментов и технологических приемов программ- ной инженерии, основанных на базовых принципах, обеспечивающих эффек- тивное решение проблемы «борьбы со сложностью» проектируемых объектов и повышение производительности процесса разработки.
    Принцип декомпозиции предписывает рассматривать сложную систему как множество взаимосвязанных компонентов, проектирование которых может выполняться параллельно разными командами разработчиков с последующим объединением полученных ими результатов в единый проект. Примером при- менения этого принципа может служить декомпозиция АИС на две относи- тельно автономные подсистемы — базу данных и подсистему обработки ин- формации, технологии создания которых существенно отличаются и требуют привлечения разработчиков различных специальностей.
    В соответствии с принципами иерархичности и многоэтапности процесс проектирования базы данных включает ряд последовательных стадий, на каж- дой из которых разрабатываются соответствующие представления (модели) проектируемого объекта, описывающие его с разной степенью детализации.
    Проектирование БД — это процесс последовательной детализации пользова- тельского представления о предметной области АИС и его преобразования сна- чала в концептуальную модель, описывающую объектную среду моделируемой предметной области, затем в логическую модель, определяющую представление прикладных программ о структуре базы данных, и наконец в физическую мо-
    дель данных, детально определяющую структуры данных и схему их размеще- ния на устройствах внешней памяти.
    Основным содержанием начальной стадии проекта АИС является прове- дение детального анализа бизнес-процессов предметной области с целью выяв- ления и согласования с заказчиком требований к проектируемому объекту и оценки их реализуемости. На этой стадии для описания проектируемой базы данных используются так называемые внешние модели — представления об ос- новных функциях и информационных сервисах, предоставляемых АИС по за- просам пользователей.
    Технологии анализа требований к проектируемым программным систе- мам — это отдельное направление программной инженерии и в данном учеб- нике не рассматриваются. Существует множество методов анализа бизнес-
    12 / 19

    13
    процессов и поддерживающих их CASE-средств, среди которых можно отме- тить, например, UseCase-модель языка UML, позволяющую классифицировать пользователей проектируемой системы, определить состав ее сервисов и опи- сать процесс их взаимодействия в процессе функционирования АИС. UseCase- диаграмма и сценарии вариантов использования проектируемой АИС содержат информацию, необходимую проектировщику БД для разработки концептуаль- ной модели.
      1   2   3   4   5   6   7   8   9   ...   18


    написать администратору сайта