- •Казахский национальный технический университет имени к.И.Сатпаева
- •1 Учебная программа дисциплины – Syllabus
- •1. 1 Данные о преподавателях:
- •1.2 Данные о дисциплине:
- •Выписка из учебного плана
- •1.5 Цели и задачи дисциплины.
- •Перечень и виды заданий и график их выполнения:
- •Виды заданий и сроки их выполнения
- •1.7 Список литературы
- •Распределение рейтинговых баллов по видам контроля
- •Оценка знаний студентов
- •1.9 Политика и процедура.
- •2 Содержание Активного раздаточного материала
- •2.2 Конспект лекционных занятий
- •Тема 1. Введение в субд.
- •Тема 2. Языковая среда реляционных субд.
- •Дополнительная литература: 9[22:28].
- •Тема 3. Работа с файлами в субд.
- •Тема 4. Стандартные функции в субд.
- •Функции для обработки файлов
- •Тема 5. Программирование в субд.
- •Тема 6. Язык реляционных баз данных sql.
- •Тема 7. Запросы sql.
- •Ниже приведен сокращенный вариант команды select с опцией into/to, используемый в Visual FoxPro:
- •Тема 8. Сложные запросы sql.
- •Дополнительная литература: 10[1025:1040].
- •Тема 9. Подзапросы в sql.
- •Дополнительная литература: 10[1028:1040].
- •Тема 10. Объектно-ориентированное программирование (ооп) в субд.
- •Дополнительная литература: 10[944:960].
- •Тема 11. Визуальное программирование в субд.
- •Дополнительная литература: 10[958:962].
- •Тема12. Инструментальные средства субд.
- •Тема 13. Архитектура клиент-сервер в технологии бд.
- •Дополнительная литература 9[159:164], 10[81:83,792:794].
- •Тема 14. Архитектура сбд.
- •Дополнительная литература: 9[28:36], 10[65:88].
- •Тема 15. Модели данных.
- •Дополнительная литература: 9[56:70],10[56:58].
- •2.3 Планы лабораторных занятий
- •Контрольные вопросы:
- •Контрольные вопросы:
- •Контрольные вопросы:
- •Дополнительная литература: 10[1028:1040]. Контрольные вопросы:
- •Дополнительная литература: 10[1028:1040]. Контрольные вопросы:
- •Контрольные вопросы:
- •Контрольные вопросы:
- •2.4 Планы занятий в рамках самостоятельной работы студентов под руководством преподавателя (срсп)
- •2.5 Планы занятий в рамках самостоятельной работы студентов (срс)
- •2.6 Тематика письменных работ по курсу Тематика курсовых работ
- •Рекомендуемая литература
- •2.7 Тестовые задания для самоконтроля с указанием ключей правильных ответов
- •A) пять;
- •C) один;
- •Правильные ответы
- •Перечень экзаменационных вопросов по пройденному курсу
- •Глоссарий
- •Учебно-методический комплекс дисциплины для студентов
- •Системы управления базами данных
Дополнительная литература: 9[28:36], 10[65:88].
Контрольные вопросы:
1. Дайте определение внешнего уровня представления БД.
2. Дайте определение концептуального уровня представления БД.
3. Сколько уровней имеет стандартная архитектура баз данных?
4. Что собой представляет внешняя модель данных?
5. Что собой представляет концептуальная модель данных?
6. Что собой представляет внутренняя модель данных?
7. Как называется уровень архитектуры баз данных, доступный пользователям любой квалификации?
8. Как называется уровень архитектуры баз данных, в схеме и модели которого содержится вся информация о данных без учета структуры хранения и стратегии доступа?
Тема 15. Модели данных.
В процессе исторического развития в СУБД использовались следующие модели данных: иерархическая, сетевая, реляционная.
Иерархическая модель данных (ИМД) наиболее органично отражает естественную иерархию данных в предметной области. Иерархическая модель организует данные в виде древовидной структуры и является реализацией логических связей по типу «целое-часть». Хорошим примером иерархической модели является любая административная структура. В этой модели выделяется главный объект, через который обеспечивается доступ ко всем остальным объектам системы. Иерархическая модель данных использует такие понятия, как: поле (элемент данных), сегмент (группа), запись.
Для представления схемы в ИМД используется графовая форма. В ИМД объекты и связи между ними представляются в виде графа типа дерева. В узлах дерева размещены объекты, а его рёбра отображают связи между объектами. Верхняя вершина является корнем дерева, конечные вершины – листьями. Дерево – ориентированный граф без циклов, ориентация от корня, т.е. дуги, соответствующие функциональным связям, направлены от корня к листьям дерева. В дереве любые два узла, один из которых исходный, а другой зависимый, связаны иерархической связью. Длина пути – количество дуг, которые необходимо пройти для достижения определённой вершины. Иерархический путь включает все связанные между собой узлы, начиная с корневого узла и кончая заданным. В древовидной структуре иерархические пути – линейные. Любой узел, находящийся на иерархическом пути выше рассматриваемого узла, является для него исходным узлом (родительским). Любой узел, находящийся на иерархическом пути ниже рассматриваемого узла, является для него порождённым узлом (наследником). У каждого узла – объекта может быть несколько “наследников“ и существует один “родитель“. Узлы и функциональные связи между ними в ИМД – именованные, то есть имеют имя. Для каждого уровня связи вводится интерпретация, зависящая от предметной области и описывающая взаимоотношение между “родителями” и “наследниками”. Каждый экземпляр объекта представляется с помощью записи. Структура данных, используемая для представления этой записи, обычно содержит некоторые атрибуты – характеристики каждого объекта.
Операции в ИМД имеют нелогичный позаписный характер. Аппарат перемещения по структуре в графовых моделях служит для установки тех объектов данных, к которым будет применяться очередная операция манипулирования данными. Такие объекты называются текущими. Механизмы доступа к данным и перемещения по структуре данных в таких моделях достаточно сложны.
При использовании ИМД выделяются уровни иерархии данных.
Иерархическая модель очень хорошо подходит для устоявшихся предметных областей с четкими зависимостями “родитель-наследник”. В случае, когда эти условия выполнены, проявляются достоинства иерархической модели – очень быстрая скорость поиска. Основные достоинства ИМД: простота построения и использования, обеспечение определенного уровня независимости данных, простота оценки операционных характеристик. К достоинствам относится также возможность реализации быстрого поиска нужных значений, когда условия запроса соответствуют иерархии в схеме базы данных.
Недостатки иерархической модели проистекают оттого, что данная модель слишком жесткая. В ИМД возможны представления только двух типов отношений: “один-к-одному” и “один-к-многим”. Отношение «многие-к-многим» реализуется очень сложно, дает громоздкую структуру и требует хранения избыточных данных, что особенно нежелательно на физическом уровне, иерархическая упорядоченность усложняет операции удаления и включения, доступ к любой вершине возможен только через корневую, что увеличивает время доступа. Если запрос не соответствует имеющейся иерархии, то и его программирование, и его исполнение потребуют значительных усилий. Недостатком иерархической модели является также сложность внесения в нее изменений. Если изменились условия задачи, и модель предметной области перестала быть иерархической, то приведение схемы базы данных в соответствие предметной области становится нетривиальной задачей.
Что касается способов описания конкретных схем, базирующихся на иерархической модели, или языков манипулирования данными, работающими с такой моделью, то они зависят от конкретной реализации. Классическим примером СУБД, использующей иерархическую модель, является давно разработанная система IMS фирмы IBM. К числу СУБД иерархического типа можно отнести СУБД PC/Focus, Team-Up, Data Edge.
Сетевая модель данных. Если структура данных оказывалась сложнее, чем обычная иерархия, простота структуры иерархической базы данных становилась её недостатком. В связи с этим возникла необходимость в разработке сетевой модели данных (СМД). Сетевая модель позволяет любому объекту быть связанным с любым другим объектом. Сетевые модели образуют сложные структуры, что создаёт определённые трудности при необходимости модернизации или развития модели данных. Сетевая модель данных замышлялась как инструмент для пользователей баз данных – программистов. В связи с этим в СМД больше внимания уделяется структуризации данных, чем развитию ее операционных возможностей.
Сетевую модель данных (СМД) можно рассматривать, как более общий случай ИМД, в которой разрешены циклы и всевозможные связи. По своим базовым концепциям ИМД и СМД очень похожи. В сетевой модели, так же как и в иерархической модели, есть понятие узла и связи, которая может быть именована. Главное отличие сетевой модели от иерархической заключается в том, что к каждому узлу может идти связь не от одного родителя, а от нескольких.
Доминирующее влияние на развитие сетевой модели данных и соответствующих СБД, построенных на основе этой модели, оказали предложения рабочей группы по базам данных (DBTG) Ассоциации по языкам систем обработки данных (КОДАСИЛ). Модель КОДАСИЛ постоянно развивается и совершенствуется. Эта модель считается наиболее развитой сетевой моделью данных и лежит в основе построения всех СБД сетевого типа. Ниже использована терминология КОДАСИЛ. Основные типы структур данных, используемых при построении СБД сетевого типа: элемент данных, агрегат (группа), запись, набор, база данных.
В сетевых моделях данных объекты и связи между ними представляются в виде сети. Сеть – ориентированный циклический граф с помеченными вершинами и дугами. Каждая вершина данных описывает некоторое понятие из предметной области (объект), представляет собой запись и характеризуется некоторыми атрибутами.
В узлах сети расположены объекты, а рёбра отображают связи между объектами. Таким образом задается логика взаимоотношениями между данными в реальной предметной области. Сетевые структуры могут содержать циклы, когда связи между объектами образуют замкнутый контур, начинаясь и оканчиваясь у одного и того же объекта на сети. Связи от каждой вершины могут быть направлены на произвольное количество других вершин. На каждую вершину могут быть направлены связи от произвольного числа других вершин (объектов).
Записи в графовой форме схемы БД изображаются вершинами сети и используются для представления типов объектов. Элементы данных используются для представления атрибутов объектов. Для каждой записи (запись – это часть схемы) в реальной базе данных может существовать несколько экземпляров. Соответственно, с каждым конкретным экземпляром по конкретной связи может быть связано разное число экземпляров другой записи, но число видов связи одинаково для всех экземпляров одной записи.
Наборы представляют типы связей между типами объектов, которые представлены соответствующими записями. На схеме БД они изображаются поименованными дугами между соответствующими записями. Дуга исходит из записи – владельца набора и заходит в запись – член набора. Набор – основной структурный элемент, с помощью которого выполняется построение структуры БД сетевого типа.
При построении структуры БД сетевого типа исходят из следующих основных композиционных правил: база данных может содержать любое количество записей и наборов; между двумя типами записи может быть определено любое количество типов наборов; тип записи может быть владельцем и одновременно членом нескольких типов наборов.
В СМД реализованы все возможные типы групповых отношений: 1:1, 1:М, М:1, М:М, поэтому они используется при наличии самых различных связей между объектами.
Существует большое число удачных реализаций сетевой модели данных. В каждой из реализации, как правило, используется свой собственный язык для описания схемы базы данных и доступа к данным. Язык CODASYL является классическим примером работы с сетевыми моделями данных и является попыткой стандартизировать язык для работы с сетевой моделью данных.
Сетевые базы данных обладают рядом преимуществ.
Гибкость. Множественные отношения “родитель-наследник” позволяют сетевой базе данных хранить данные, структура которых сложнее простой иерархии.
Стандартизация. Появление стандарта CODASYL, популярность сетевой модели обусловили тот факт, что такие поставщики мини-компьютеров, как Digital Equipment Corporation и Data General, реализовали сетевые СУБД.
Быстродействие. Вопреки своей большой сложности, сетевые базы данных достигают быстродействия, сравнимого с быстродействием иерархических баз данных. Множества представлены указателями на физические записи данных, и в некоторых системах администратор может задать кластеризацию данных на основе множества отношений.
Конечно, у сетевых баз данных есть недостатки. Как и иерархические базы данных, сетевые базы данных имеют жесткую структуру. Наборы отношений и структуру записей необходимо задавать заранее. Изменение структуры базы данных означает перестройку всей базы данных.
В 70-х годах независимые производители программного обеспечения реализовали сетевую модель в таких продуктах, как IDMS компании Cullinet, Total компании Cincom и СУБД Adabas, которые приобрели большую популярность. Наиболее известной из СУБД сетевого типа в настоящее время является система DB_VISTA III, поддерживающая модель данных CODASYL. Она реализована на языке С и может эксплуатироваться в среде операционных систем MS DOS, OS/2, UNIX, XENIX, ULTRIX и ряде других ОС на персональных компьютерах IBM PC, PC/2, SUN и VAX.
Реляционная модель данных. В конце 60-х годов одновременно несколькими авторами были выдвинуты предложения об использовании теоретико-множественных операторов для организации доступа к данным, что и легло в основу реляционной модели данных. Реляционная модель представляет объекты и взаимосвязи между ними в виде таблиц. Впервые она была предложена доктором Э. Ф. Коддом в 1970 г. Реляционная модель данных (РМД) является в настоящее время самой распространенной. На этой модели данных базируются практически все современные СУБД для ПЭВМ. Существенными преимуществами реляционной модели является простота представления данных, естественный характер формирования запросов, так как они не привязаны жестко к заранее определённой структуре, и высокая степень независимости данных, так как интерфейс пользователя не связан с деталями физической структуры памяти и стратегией доступа.
В основе реляционной модели данных лежит математическое понятие отношения, представляющего собой подмножество декартова произведения доменов. Отношение определяется на множестве атрибутов. Домен – это множество значений, из которых извлекаются фактические значения атрибута.
По-английски отношение называется relation, отсюда и название реляционная. В реляционной модели данных объекты и связи между ними описываются в виде отношений, которые представляются двумерными таблицами. Каждому отношению соответствует своя таблица. Разница между таблицей в привычном смысле и понятием отношения заключается в том, что в отношении нет порядка – это, вообще говоря, неупорядоченное множество записей. Это, конечно, не значит, что там нет никакого порядка, просто он не подвластен ни программисту, ни администратору. Порядок определяется не отношением, а конкретной выборкой из отношения. Из одного и того же отношения можно выбрать данные в порядке возрастания зарплаты, в алфавитном порядке фамилий и т.д.
Столбцы таблицы являются атрибутами. Каждая строка таблицы образует кортеж (или запись). Домен есть множество значений, принадлежащих одной области определения. Значения атрибута берутся из домена, т.е. атрибут является подмножеством значений домена. Элементами отношения являются кортежи. Длина кортежа – количество значений в кортеже, взятых из различных доменов (столбцов таблицы). В отношении не может быть двух одинаковых кортежей. Длина кортежа определяет арность отношения. Для выполнения операций над отношениями используются реляционная алгебра и реляционное исчисление.
Достоинством реляционной модели является сравнительная простота инструментальных средств ее поддержки, недостатком – жесткость структуры данных (невозможность, например, задания строк таблицы произвольной длины) и зависимость скорости работы от размера базы данных. Для многих операций, определенных в такой модели, может оказаться необходимым просмотр всей базы данных.
Основная литература: 1[26:35].
