Обобщенная архитектура СУБД
Информационные системы
Термин «информационная система» соответствует системе, используемой для получения нужной в данный конкретный момент времени информации. В настоящее время информационные системы (ИС) функционируют на ЭВМ (компьютерах).
Информационные системы можно разделить на:
1) одиночные;
2) групповые;
3) корпоративные.
Одиночные системы реализуются на персональных компьютерах (ПК), содержат БД и несколько простых приложений, рассчитаны на работу одного пользователя, создаются с помощью “настольных” СУБД (Foxpro, Paradox, Access, Dbase, Clarion, Clipper).
Групповые системы ориентированы на коллективное использование информации, строятся как локальная вычислительная сеть ПК или централизованная вычислительная система (в основе большая ЭВМ и множество терминалов (ПК), обращающихся к этой ЭВМ). Совместное использование информации из БД организуется с помощью блокировок записей и таблиц (файлов). Для разработки ИП используются многопользовательские “настольные” СУБД и серверы БД для рабочих групп, а также инструментальные средства разработки.
Корпоративные системы поддерживают территориально разнесенные узлы сети, используют архитектуру клиент-сервер со специализацией серверов, а также независимые многоплатформенные инструментальные средства (PowerBuilder, Visual Basic, Visual C и др.), интерфейсы, драйверы и шлюзы для связи с разными СУБД.
Основные типы ИС:
1) Обработка транзакций (OLTP):
А) оперативная обработка транзакций;
Б) пакетная обработка транзакций (на больших ЭВМ).
2) Системы поддержки принятия решений (DSS) – технология OLAP:
А) Оперативная аналитическая обработка;
Б) Экспертные системы.
3) Информационно-справочные системы:
А) системы электронной документации;
Б) географические информационные системы;
В) гипертекстовые системы.
4) Офисные информационные системы:
А) документальные системы;
Б) автоматизация делопроизводства;
В) управление документооборотом.
В нашем курсе рассматриваются первые 2 типа ИС (обработка транзакций и оперативная аналитическая обработка), где фундаментом ИС является БД.
Информационное приложение (ИП) - прикладная программная подсистема, ориентированная на сбор, хранение, поиск и обработку текстовой и/или структурированной информации, работающая с пользователем в диалоговом режиме.
В ИП входят следующие программные компоненты:
1) Средства представления диалогового ввода/вывода – PS(текстовый терминал или ПК в режиме эмуляции);
2) Логика представления диалогового ввода/вывода – PL(взаимодействие пользователя с ЭВМ: выбор пункта меню, нажатие кнопки, выбор элемента из списка и т.д.);
3) прикладная логика обработки данных – BL (набор правил для принятия решений, вычислений и операций приложения);
4) логика управления данными – DL (операции с БД: SELECT, UPDATE, INSERT, DELETE, реализующие прикладную логику обработки данных);
5) операции с БД – DS ( определение данных, манипулирование данными, фиксация или откат транзакций, компиляция SQL-операторов и др.);
6) функции ОС – FS (дисковые операции чтения и записи данных для СУБД, обеспечение взаимодействия узлов сети и др.).
Значительная часть возможностей приложения закладывается в системном программном обеспечении, в библиотеках и конструкциях инструментальных средств разработки. Однако обязательна часть ИП, специфичная для конкретной предметной области.
Кроме программной составляющей в ИП есть информационная составляющая, задающая:
1) структуру данных;
2) атрибутику и типизацию данных;
3) ограничения целостности БД.
Информационная составляющая тесно связана с логикой управления данными, поэтому CASE-средства для приложений отдают приоритет информационной модели.
Существует 7 вариантов построения ИП:
1) многотерминальные централизованные вычислительные системы;
2) файл-серверные приложения;
3) системы с архитектурой клиент-сервер;
4) системы с распределенными вычислениями;
5) офисные системы;
6) системы на основе Internet/Intranet-технологий;
7) средства автоматизации проектирования приложений.
I Многотерминальные централизованные системы
В централизованной системе терминал реализует функции PS, а остальные функции (PL, BL, DL, DS, FS) – центр (большая ЭВМ). ИП разрабатываются с помощью традиционных систем программирования представлены 3GL (C, Pascal, Basic и др.). Для создания полноценных ИП необходимо расширение за счет библиотек диалога и доступа к БД, а также встроенного языка SQL.
В этих системах имеются две большие проблемы:
1) трудно обеспечить графический интерфейс;
2) каждый дополнительный пользователь и ИП вносят существенную нагрузку на сервер (теряется масштабируемость).
II Файл-серверные приложения
Объектами разработки в файл-серверном приложении являются компоненты PL, BL и DL. Каждый новый клиент добавляет вычислительную мощность к сети. Для разработки ИП используется инструментальное окружение «настольных» СУБД (FoxPro, Access, Paradox и др.). Эти средства предоставляют 3 уровня доступа:
1) к языку 3GL добавляются некоторые возможности языков 4GL;
2) создание и ведение структуры БД и индексов, а также интерактивная генерация ИП и его компонентов;
3) использование диалоговой среды и генераторов конечными пользователями для создания, ведения и просмотра БД, а также формирования несложных запросов и отчетов.
Однако “файл-сервер” имеет 3 недостатка:
1) некоторые запросы к БД могут перекачивать всю БД, что создает значительный сетевой трафик и время реакции;
2) проблема “толстого клиента” (Windows-интерфейс, СУБД и само ИП) - возможна перегрузка ПК;
3) “настольные” СУБД не поддерживают транзакции (не отвечают требованиям сохранности данных).
III Приложения клиент-сервер
Особенности “клиент-сервера”:
1) использование выделенных серверов БД, понимающих SQL-операторы;
2) выполнение поиска, сортировки и агрегирования информации серверами без перекачки данных на рабочие станции;
3) сервер БД содержит словарь-справочник данных, в котором записаны структура БД, ограничения целостности данных, форматы и серверные продукты обработки данных.
Для эффективной реализации двухзвенной модели «клиент-сервер» ИП располагается на клиенте, а СУБД - на сервере. Т.е. компоненты PS, PL (диалога) и BL, DL (логики) располагают на клиенте, а компоненты управления данными DS и FS - на сервере. Сложные ИП могут перегрузить клиента и сеть, поэтому компонент BL можно переместить на сервер, оформив эту логику в виде хранимых процедур. Хранимые процедуры улучшают целостность приложений и БД, а также безопасность доступа к данным.
Среды разработки ИП для серверов БД – это системы программирования 4GL или инструментальные средства быстрой разработки ИП - RAD.
Двухзвенные схемы «клиент-сервер» имеют следующие проблемы:
1) необходимость администрирования приложений для большого числа клиентов;
2) чрезмерное использование хранимых процедур снижает масштабируемость сервера и не способствует переносимости ИП;
3) возрастает время реакции для диалоговых пользователей во время работы пакетных заданий;
4) обеспечение целостности распределенной транзакции в неоднородной распределенной БД.
IV Распределенные вычисления
Распределенные вычисления выполняются с помощью трехзвенной архитектуры «клиент-сервер», где явно выделяется сервер приложений, на котором выполняются процедуры, запросы и задания клиента.
Клиент выделен для выполнения компонент PS и PL и имеет программный интерфейс для вызова ИП на сервере приложений. Сервер приложений выполняет BL и с которого DL вызывает операции с БД - DS. Сервер БД выделен для DS и FS.
Достоинства трехзвенной архитектуры:
1) централизация логики приложения упрощает администрирование и сопровождение, а также обеспечивает доступ к ресурсам по именам;
2) четко разделяются платформы и инструменты для реализации интерфейса и прикладной логики, что позволяет с наибольшей отдачей реализовать их специалистам узкого профиля;
3) изменения прикладной логики не затрагивают интерфейса, и наоборот;
4) границы между PL, BL и DL размыты, поэтому прикладная логика может появиться во всех трех звеньях;
5) сервер приложений с помощью монитора транзакций обеспечивает интерфейс с клиентами и другими серверами, может управлять транзакциями и гарантировать целостность распределенной БД путем двухфазной фиксации в неоднородной среде;
6) средства удаленного вызова процедур обеспечивают вызов из любого узла сети прикладной процедуры, расположенной на другом узле, передачу параметров, удаленную обработку и возврат результатов;
7) сервер приложений управляет асинхронными очередями сообщений, которые обеспечивают надежное завершение транзакций.
К средствам поддержки распределенных приложений относятся:
1) интерфейсы доступа к БД ODBC и IDAPI;
2) шлюзы для СУБД;
3) протоколы и команды мониторов обработки транзакций;
4) почтовые интерфейсы MAPI, VIM, MHS, X.400 и EDI;
5) средства обмена сообщениями MOM;
6) протоколы связывания и включения объектов OLE и динамического обмена данными DDE;
7) протоколы удаленного вызова процедур RPC и именованных конвейеров Named Pipes;
8) средства коммуникационного ввода-вывода BSD Sockets и WinSock.
Инструментальные наборы для разработки приложений клиент-сервер необходимо выбирать, исходя из следующих критериев:
1) объектно-ориентированная инфраструктура;
2) распределение приложений между клиентом и сервером;
3) поддержка мониторов транзакций;
4) CASE-репозитарий;
5) возможность переноса приложений и контроль версий.
V Офисные системы
В офисных системах для хранения информации, обрабатываемой с помощью текстовых процессоров и электронных таблиц, используется файловый или почтовый серверы. В системах управления электронными документами файл-сервер используется для хранения документов, а сервер БД служит для ведения библиотеки карточек документов. Существуют универсальные серверы БД, которые интегрируют структурированную и неструктурированную информацию.
VI Информационные системы на основе Internet/Intranet-технологии
В этой технологии клиент выполняет функции интерфейса пользователя и обеспечивает доступ к Internet. БД HTML-документов - это часть файловой системы, которая содержит текстовые файлы в формате гипертекста и связанные с ними графику и другие ресурсы.
При работе с приложениями БД адрес URL указывает не на Web-страницу, а на программу (сценарий), которая запускает запрос к БД и преобразует результаты (отчет по запросу) в формат HTML. Затем Web-сервер посылает полученную HTML-страницу Web-клиенту.
VII Средства автоматизации проектирования приложений
Для автоматизации проектирования ИП используются CASE-системы, которые поддерживают целостность системы в течение жизненного цикла, обеспечивают коллективную разработку, параллельное внесение изменений, откат к предыдущей версии и контроль доступа.
Лекция № 2
Базы данных
История появления БД
1)
ПП 2) ОП ПП 3) ПП 4) ПП
ОП Д
ВП Д ОП МД ОС ОП СУБД
Д МД ОС
Д
5)
ППП
ОС СУБД БД АИС
Словарь БД
Существуют самостоятельно наука о БД и технология БД.
Разделы теории (науки) БД:
1) Теория моделей данных и методы их эквивалентных преобразований;
2) Теория функциональных зависимостей в БД;
3) Методы эквивалентных представлений БД и их схем;
4) Проблемы полноты и эквивалентности в реляционном исчислении;
5) Теория БД с неполной информацией;
6) Методы обеспечения целостности БД в условиях потока конкурентных запросов;
7) Методы структурирования памяти для хранения разнообразных данных.
Мы будем изучать технологию БД. Основное, что изучают в технологии БД – это проектирование БД, создание БД и эксплуатация БД. Чтобы хорошо знать и владеть БД, нужно хорошо знать ОС и СУБД, языки и технологии программирования, системы обработки данных (СОД), системы искусственного интеллекта.
Основная концепция технологии БД:
С одной стороны, данные должны быть структурированы так, чтобы наиболее адекватно отображать предметную область (ПО), с другой стороны, средства общения пользователей с данными должны быть такими, чтобы наиболее полно, своевременно, достоверно обеспечить пользователя информацией.
Основные понятия курса (определения):
1) БД – это большой набор именованных данных, расположенный во внешней памяти и отображающий предметную область.
2) ПО – это совокупность объектов, их свойств и связей между ними.
3) СУБД – это мощный комплекс технических, языковых и программных средств для создания, управления и использования БД многими пользователями.
4) СОД – это система, предназначенная для накопления, хранения, ведения, коллективного и многоаспектного использования данных в интересах конечного пользователя.
СОД включает в себя:
1) одна или несколько БД;
2) СУБД;
3) Вычислительные средства (компьютеры + общее программное обеспечение);
4) Группа администратора БД;
5) Словарь-справочник (метаданные).
Пример ПО «Учащийся»:
Свойства объекта «Учащийся»: Свойства объекта «Учебное заведение»:
1) Фамилия; 1) Название;
2) Имя; 2) Город, в котором находится;
3) Отчество; 3) Министерство, которому подчинено;
4) Дата рождения; 4) Страна, в которой находится.
5)Семейное положение;
6)Специальность;
7) Форма обучения;
8) Учебное заведение;
9) Дата приема;
10) Дата окончания.
Современные требования к СУБД:
1) поддержка широкого спектра представлений данных и операций над ними в БД (включая структурные, документальные, картинно-графические данные);
2) управление неоднородными мультибазами данных;
3) управление распределенными БД и интеграция неоднородных БД;
4) естественные и эффективные представления в моделях данных разнообразных отношений объектов ПО (например, пространственно-временных с обеспечением визуализации данных);
5) интеграция концепций БД и баз знаний и реализация дедуктивных БД;
6) обеспечение целостности БД в широком диапазоне разнообразных ПО и операционных обстановок.
Трудности развития СУБД:
1) фон-неймановская архитектура ЭВМ не соответствует требованиям СУБД, так как поиск, обновление, защита данных и обработка транзакций с помощью программ осуществляются неэффективно ( по производительности и по стоимости);
2) многоуровневое и сложное программное обеспечение СУБД снижает эффективность и надежность функционирования БД и СОД в целом;
3) ЭВМ оказываются существенно загруженными функциями управления БД;
4) Централизация и интеграция данных в сетях ЭВМ не реализуема с приемлемой стоимостью без специальных архитектурных и аппаратурных решений.
Примеры СУБД:
СУПЕРСУБД: | Средние СУБД: | Малые СУБД: |
1) INFORMIX; | 1) UNIFY; | 1)dBase; |
2) ORACLE; | 2) UNISQL; | 2) FoxPro; |
3) SYBASE; | 3) EMPRESS; | 3) Paradox; |
4) MS SQL SERVER; | 4) Btrieve. | 4) Access; |
5) DB2. | 5) Clarion; | |
6) Clipper. |
Характеристики СУБД
I Функциональная полнота – это набор средств, необходимый для успешной разработки и сопровождения СОД. Эти средства делятся на:
1) Язык описания данных (ЯОД), предоставляющий большое множество типов данных;
2) Язык манипулирования данными (ЯМД), примерами которого являются SQL, QBE, Transact SQL, языки программирования «настольных» СУБД и др.
3) CASE-средства (например: ERWIN) для автоматизации процессов описания модели ПО, ее проектирования и автоматическое отображение в описание модели ПО средствами СУБД.
II Разграничение прав доступа к данным для различных категорий пользователей (полномочия и роли), а также парольная защита, шифрование, создание представлений, сжатие и др.
III Различные технологии многопользовательского режима работы:
- файл-сервер (запросы реализуются на клиенте);
- клиент-сервер (запросы реализуются на сервере);
- распределенные БД.
IV Поддержка средств multi-media (видео и звук).
V Разработка современного многооконного графического интерфейса для различных групп пользователей. Для этого нужно использовать современный язык объектно-ориентированного программирования, умеющего работать с БД (примеры: VB, VC, PB).
VI Экспорт-импорт данных для различных программных продуктов.
VII Интеграция с программными и информационными ресурсами сетей различных типов.
VIII Защита данных от потерь и разрушений.
Аварийные ситуации: 1) технические сбои; 2) неправильные действия пользователя.
Защита: 1) многооконный интерфейс; 2) блоки бесперебойного питания; 3) наличие архивных копий, журналов и др.
IX Задание компьютерной платформы.
Основные свойства БД:
I Объемность: БД по мере своего развития имеют тенденцию роста своего объема: малые БД (до 1 Гб), средние БД (1 : 10 ГБ) и большие БД ( > 10 Гб). ОП для малых БД – до 32 Мб, для средних – 32 : 64 Мб, для больших > 64 Мб.
II Коллективное использование и производительность:
Коллективное использование в трех режимах: а) пакетный; б) диалоговый; в) режим «запрос-ответ».
Все режимы работают: а) как локальный, так и удаленный варианты;
б) как в режиме реального времени, так и в режиме разделения вычислительных ресурсов.
2 Характеристики производительности:
1) Время ответа на запрос:
t = t 1символ ответа – t последний символ запроса < 2 сек. (при пакетном режиме это не существенно).
2) Пропускная способность – количество сообщений на единицу времени.
III Интегрируемость:
1) Исходные данные вводятся в БД 1 раз, затем они только корректируются;
2) Данные используются всеми пользователями;
3) Каждый пользователь имеет свою часть БД;
4) Часть БД используется несколькими пользователями одновременно (режим блокировки данных).
Интегрируемость дает min избыточность данных и устраняет противоречивость данных. Если в БД появляются избыточные данные, то требуется процедура реорганизации БД.
IV Взаимосвязь данных или отношения в БД:
1) между двумя объектами (отношения вхождения, порядка, следования, подчиненности и т.д.);
2) внутри одного объекта (между свойствами);
3) количественные отношения между объектами:
1:1 – однозначное;
1:n – иерархическое;
n:1
n:m - сетевое.
V Централизация обработки: группа АБД создает концептуальную модель ПО.
Традиционная обработка: Централизованная обработка:
П1Ф1 П2Ф2 П1 Ф1 П3
БД: Ф2
П3Ф3 П4Ф4 Ф3
П2 Ф4 П4
![]() |
Централизация обработки дает:
1) min избыточность;
2) отсутствие противоречивости;
3) разработка новых программ для имеющихся данных;
4) защита от несанкционированного доступа;
5) обеспечение целостности данных;
6) возможность стандартизации процедур обработки данных, документации и всей технологии;
7) комплексная оптимизация ( - это удовлетворение некоторой целевой функции, которая формируется руководителем ПО).
VI Экономичность (БД позволяет упростить программирование приложений).
VII Форматность: в БД каждый объект однозначно определяется совокупностью его свойств.
VIII Унификация доступа к данным: каждый пользователь работает со своим представлением БД с помощью операторов ЯМД.
IX Ответы на непредусмотренные запросы (детерминированные и недетерминированные запросы по информации и по времени).
X Независимость программ от данных:
1) логическая (глобальный логический уровень данных);
2) физическая (физический уровень данных).
В СУБД используется динамическая привязка прикладной программы (ПП) к данным (непосредственно в процессе обращения к данным). Введение СУБД подняло на более высокий уровень логическое представление о данных.
Лекция №3
Этапы проектирования БД
Обобщенная архитектура СУБД
П1 П2 … Пi Пj … Пn
![]() | ![]() | ![]() | ![]() | ||||
ВМ1БД … ВМkБД
![]() |
О1
АБД К М Б Д
О2 УП СУБД
Вн М Б Д
![]() |
Ф Б Д О С
Эта схема предложена группой ANSI/X3/SPARC института стандартов США и является общепризнанной при проектировании СУБД.
I Пользователи (П1, П2, Пi, Пj, Пn): 1) прикладные программисты; 2) АБД; 3)конечные пользователи - непрогаммисты. Каждый пользователь имеет один или несколько языков для общения с СУБД.
II Внутренняя модель ПО – это хранимый уровень представления данных. На этом уровне представлены структуры хранимых данных и способы доступа к ним. Внутренняя модель включает хранимые файлы, хранимые записи и определяет связи между записями. Известны методы доступа СУБД к этим записям (HSAM, HISAM, HDAM, HIDAM и др.). Описание этой модели осуществляется внутренней схемой. Связь ВнМБД с ФБД осуществляется методами доступа ОС.
III Концептуальная модель ПО – это глобально-логический уровень представления данных:
1) В ней отображены информационные потребности предметной области в целом и каждого пользователя в отдельности.
2) В ней отражены объекты, свойства, связи между ними. Эти элементы представлены в виде концептуальных файлов, записей и полей.
3) В КМ нет ничего от хранимого уровня представления данных.
4) В КМ отражены правила разграничения прав доступа и правила сохранения целостности данных.
5) Определение КМ осуществляется с помощью концептуальной схемы.
IV Внешняя модель ПО (логический уровень пользователя):
- ВМ отражает информационное содержание БД в таком виде, в каком оно используется в конкретном приложении.
- Допускается множество таких ВМ.
- ВМ специфицируется внешней схемой, при этом описываются файлы, записи, поля ВМ.
V Отображения:
О1 – соответствие между ВМ и КМ;
О2 - соответствие между КМ и ВнМ.
Эти соответствия также имеют описания и хранятся в СУБД (как и схемы ВМ, КМ и ВнМБД). АБД, используя описание отображений и утилиты устанавливает соответствие между МД.
При изменениях на уровне КМ АБД меняет отображение О1 таким образом, чтобы не было изменений во ВМ. Таким образом обеспечивается логическая независимость ПП от данных.
При изменениях на уровне ВнМ АБД меняет отображение О2 таким образом, чтобы не было изменений на уровне КМ. Тем самым обеспечивается физическая независимость ПП от данных.
Этапы проектирования БД
IА)
МПО
ЛП1 … ЛПn
IБ)
КМ ПО
II
ВМ1БД … ВМnБД
IIIА)
КМ БД
IIIБ)
ВнМ БД
I Информационно-логическое проектирование:
А) Анализ предметной области;
Б) Концептуальное проектирование ПО.
II Выбор СУБД
III Даталогическое проектирование:
А) Логическое проектирование;
Б) Физическое проектирование.
IV Проектирование словаря-справочника.
I Информационно-логическое проектирование
Задача информационно-логического проектирования получить КМ ПО и локальные представления (ЛП) пользователей, не зависящих от конкретной СУБД.
А) Анализ ПО – анализируются информационные потоки: источники / потребители информации, документопотоки, технология хранения, обработки и использования документов. В результате анализа определяется:
1) Перечень сервисных и функциональных задач, возложенных на компьютер.
2) Кодификаторы и классификаторы информационных объектов.
Б) Концептуальное проектирование (моделирование) ПО.
Формируются ЛП для каждого конечного пользователя (КП). ЛП – это фрагмент ПО, удовлетворяющий запросы КП. Путем интеграции ЛП создается КМ ПО. Это процесс итерационный. КМ ПО удовлетворяет запросы всех конечных пользователей. КМ ПО не зависит от используемой СУБД.
Этапы КМ ПО:
1) Выделение объектов, их свойств и связей между ними. Связи устанавливаются с учетом задач (запросов), решаемых КП.
2) На основе выделенных задач строятся сценарии диалога КП с ЭВМ (в виде графа, дерева). КМ осуществляется с помощью CASE-средств (например: ERWIN).
II Выбор СУБД
1) Установка внешних ограничений:
- ограничения вычислительного комплекса (модель ЭВМ, конфигурация, объем памяти, скорость обмена данных по шине);
- ОС;
- Ограничения сети.
2) Выбор СУБД – претендента: на основе КМ ПО и внешних ограничений формулируются требования к СУБД и в соответствии с характеристиками СУБД выбирается из каталога.
III Даталогическое проектирование – это проектирование средствами СУБД.
1) Логическое проектирование:
- конфигурирование системы КМ БД и обеспечение отображения КМ ПО в КМ БД;
- конфигурирование ВМ БД и обеспечение отображения ЛПi в ВМi.
- Согласование всех ВМi и КМ БД.
2) Физическое проектирование: определение параметров ВнМ БД и обеспечение отображения КМ БД во ВнМ БД, а также обеспечение отображения ВнМ БД на ФБД.
IV Параллельно с I, II, III осуществляется разработка словаря-справочника системы, комплекса программ решения сервисных и функциональных задач, обеспечение надежности хранения и обработки данных, обеспечение интерфейса.
Лекция №4
Модели данных
Модель данных (МД) – это средство абстракции данных, которое позволяет перейти от информационного содержания к конкретным значениям. Чем выше уровень абстракции, тем больше она ориентирована, как модель, на КП.
Элементарной единицей данных в МД являются следующие кортежи:
1) <O, P, t>
2) <(O1, O2, …, On), r, t>
где O – объект, P – свойства объекта, O1, O2, …, On – объекты, r – связь между объектами, t – время.
Эти элементарные единицы данных могут быть реализованы различными способами. Отсюда различные модели.
Схемой МД называется совокупность описанных типов структур данных на формализованном языке.
МД – это совокупность экземпляров типов структур данных, описанных схемой МД.
Модели данных делятся на семантические и структурные.
Семантические МД: ER-модель, семантическая сеть, расширенная реляционная модель, модель бинарных ассоциаций.
Структурные МД: иерархическая, сетевая, реляционная.
В иерархической МД объекты представлены в явном виде, т.е. в виде записей или сегментов, а отношения представлены неявно и отображаются с помощью взаимного расположения записей. В сетевой МД объекты и отношения представлены в явном виде: объекты – в виде записей, отношения - в виде указателя. Главное, что объединяет эти модели, это то, что объекты и отношения представлены различным способом, поэтому требуются различные операции ЯМД для обработки объектов и отношений. В ИМД и СМД пользователь с помощью ЯМД обязан динамически воспроизводить структуру модели. В РМД объект и отношение представлены одинаково с помощью понятий теории отношений (таблиц – отношений).
Пример:
Классы объектов: Поставщик (П), Детали (Д).
Свойства объектов: П (№П, НГ (название города)), Д (№Д, СТ (стоимость))
Значения свойства №П = {П1, П2}
Значения свойства НГ = {М, С_П}
Значения свойства №Д = {Д1, Д2, Д3}
Значения свойства СТ = {СТ1, СТ2, СТ3}
П = {<П1, М>, <П2, С_П>}
Д = {<Д1, СТ1>, <Д2, СТ2>, <Д3, СТ3>}
Устанавливаем связь: П Д (Поставщик детали): П1 поставляет детали Д1, Д2, Д3, а П2 – Д2, Д3.
Иерархическая МД:
П1 М1 П2 С_П
Д1 СТ1 Д2 СТ2
Д2 СТ2 Д3 СТ3
Д3 СТ3
Сетевая МД: вводится связующая запись – стоимость между П и Д
П1 М П2 С_П
СТ1 СТ2 СТ3 СТ2 СТ3
![]() | |||||
![]() | ![]() |
Д1 Д2 Д3
Реляционная МД:
П | №П | НГ |
П1 | М | |
П2 | С_П |
Д | №Д | СТ |
Д1 | СТ1 | |
Д2 | СТ2 | |
Д3 | СТ3 |
П_Д | №П | НГ | №Д | СТ |
П1 | М | Д1 | СТ1 | |
П1 | М | Д2 | СТ2 | |
П1 | М | Д3 | СТ3 | |
П2 | С_П | Д2 | СТ2 | |
П2 | С_П | Д3 | СТ3 |
Модели данных включают в себя следующие компоненты: МД = <S, R, I>
1) S – типы структур данных
Эта компонента устанавливает основные структуры данных: дерево, сеть, таблица. Они поддерживают в СУБД язык описания данных (ЯОД).
2) R – операторы (правила вывода)
Они применяются к любому экземпляру типа данных в S для получения новых данных, для модификации текущих и для восстановления исходных. Эта компонента поддерживает в СУБД язык манипулирования данными (ЯМД).
3) I – основные правила обеспечения целостности данных. Они делятся на:
А) внутренние ограничения модели данных;
Б) явные ограничения, связанные с семантикой предметной области.
Реляционная модель данных (РМД)
Автор – Кодд (первая статья – 1970 год).
Исторически первой СУБД была иерархическая, затем сетевая, потом реляционная. Поэтому в реляционных СУБД есть свойства иерархических и сетевых СУБД, а основы теории реляционных СУБД распространяются на иерархические и сетевые.
Центральным понятием РМД является отношение. Теория РМД базируется на теории отношений, теории множеств и теории предикатов 1-го порядка. РМД весьма проста в структурном плане, поскольку единственным средством структуризации является отношение.
Язык описания данных (ЯОД) – основные определения
Атрибут – это такая информационная величина, которая представляет в РМД свойство объекта ПО. Атрибут имеет имя и значение. Например: «Цвет» - свойство объекта «Деталь» (имя атрибута); «Черный» - значение свойства объекта (значение атрибута).
Домен – это множество допустимых значений. Обозначения:
Ai – имя i-того атрибута;
Di – имя домена для i-того атрибута;
Di = dom (Ai)
Например: Dцвет = dom (цвет) = {красный, черный, синий}.
Схема отношения:
В РМД некоторому классу объектов R ставится в соответствие множество имен атрибутов: {A1, A2, …, An}, т.е. R {A1, A2, …, An}. Это соответствие называется схемой отношения и обозначается R(A1, A2, …, An). Например, схема отношения для класса объектов Деталь: Деталь (ШД, Цвет, Стоимость, Количество)
Отношение:
Имеется схема отношения R(A1, A2, …An). Введем понятие домена схемы отношения: dom(R).
dom (R) = dom(A1) * dom(A2) * … * dom(Ai) * … * dom(An) =
= {<a1k, a2k, …, aik, …, ank> ½k=
};
кортеж tk
aik – это значение I-того атрибута в k-том кортеже.
tk – k-тый кортеж – это упорядоченное множество значений атрибутов.
P= pi, где pi – мощность dom(Ai), а P – мощность dom(R).
Таким образом, dom(R) – это универсальное множество, состоящее из кортежей tk, где k=
.
Отношением r со схемой R(A1, A2, …, An) называется некоторое подмножество кортежей, входящих в dom(R):
R(A1, …, An) Í dom(R) = {<a1kr, a2kr, …, ankr> ½ k=1, Pr}, Pr<p
Где n – степень отношения, P – мощность отношения (число кортежей, входящих в r).
Пример: ДЕТАЛЬ (ШД, Цвет) – схема отношения;
dom (ШД) = {Г, Б} P1=2
dom (Цвет) = {к, с, ч} P2=3
dom (Деталь) = dom (ШД) * dom (Цвет) n=2; P=P1*P2=2*3=6
dom (Деталь) = {<Г, к>, <Г, с>, <Г, ч>, <Б, к>, <Б, с>, <Б, ч>}
деталь1 (ШД, Цвет) Ì dom (Деталь) и деталь2 (ШД, Цвет) Ì dom (Деталь)
деталь1 (ШД, Цвет) = {<Г, с>, <Г, ч>, <Б, ч>} n=2 P=3
деталь2 (ШД, Цвет) = {<Г, к>, <Г, с>} n=2 P=2
Представление отношений
Одним из естественных способов представления отношений является двумерная таблица, обладающая следующими свойствами:
1) Таблица имеет имя, совпадающее с именем отношения.
2) Каждая строка таблицы является кортежем отношения.
3) Каждый столбец таблицы имеет имя, совпадающее с именем атрибута
4) Все строки различны.
5) Порядок строк несущественен.
6) Порядок столбцов существенен.
Пример: деталь1 (ШД, Цвет) = {<Г, с>, <Г, ч>, <Б, ч>}
деталь1 | ШД | Цвет |
Г | С | |
Г | ч | |
Б | ч |
7) В теории отношений атрибуты отношений могут быть простыми и составными. Простой атрибут – это унарное отношение, т.е. n=1
Составной атрибут – это отношение с n>=2
Пример: Служ (#служ., фамилия, дети (имя, возраст))
Простые атрибуты составной атрибут
#служ | Фамилия | Дети | |
имя | возраст | ||
Иванов | Катя | ||
Маша | |||
Сидоров | Витя | ||
Коля |
Отношение, которое состоит из простых атрибутов, называется нормализованным и находится по меньшей мере в 1НФ. В РМД используются только нормализованные отношения, чтобы обеспечить единообразие структур данных и простоту доступа к ним.
8) В отношении не должно быть неопределенных значений атрибутов. Если значение атрибута неизвестно, то оно заменяется некоторым значением, которое означает, что это значение «неизвестно» (например, NULL).
Лекция №5
РМД – продолжение
Идентификация отношения и его элементов.
Любое отношение в РМД имеет уникальное имя. Любой атрибут внутри отношения также имеет уникальное имя. Для идентификации кортежей вводится понятие ключа отношения.
Определение ключа: дано отношение r(R), кортежи t(R), t(K)
Пусть t1(R) и t2(R) – два любых различных кортежа отношения и пусть имеется подмножество K имен атрибутов R; K Í R. Набор атрибутов K является ключом отношения r(R) при выполнении двух условий:
1) условие однозначной идентификации кортежа в отношении: t1(K) ¹ t2(K).
2) условие отсутствия избыточности: "k’ Ì K: t1(k’) = t2(k’)
Пример:
r | A | B | C |
a1 | b1 | c1 | |
a1 | b2 | c2 | |
a1 | b3 | c3 | |
a2 | b1 | c1 | |
a2 | b2 | c2 | |
a1 | b1 | c2 |
Возможные ключи: k1={A, B}, k2={A, C} – удовлетворяют двум условиям
k3={A, B, C} – это не ключ, т.к. удовлетворяет только первому условию.
Атрибуты, входящие в возможные ключи, называются первичными атрибутами. Остальные – непервичные атрибуты.
Пример: студент (#зачетной_книжки, ФИО, год_рождения)
k1 k2 непервичный
первичные
Ключ, выбранный из возможных ключей для идентификации кортежей отношения, называется ключом отношения.
Ключ отношения выбирается из семантических соображений, удобства использования.
Ключ – это свойство схемы отношения.
Представление связей в РМД.
Связь между объектами представлена так же, как и объект, т.е. с помощью отношений.
Пример:
Пост. | ШП | НГ |
П1 | М | |
П2 | К |
Деталь | ШД | НД |
Д1 | Г | |
Д2 | Б | |
Д3 | Ш |
Пост. Дет. | ШП | ШД | Стоим. |
П1 | Д1 | ||
П1 | Д2 | ||
П1 | Д3 | ||
П2 | Д1 | ||
П2 | Д2 |
Таким образом, единообразие в представлении объектов и связей между ними способствует созданию единых процедур поиска и обработки данных (объектов и связей).
Таблица соответствия понятий ПО и РМД:
ПО | РМД |
Свойство объекта | Имя атрибута (столбца) |
Значение свойства | Значение атрибута (столбца) |
Конкретный объект (связь) | Кортеж (строка) |
Значения класса объектов (связей) | Отношение (таблица) |
Класс объектов | Схема отношения (заголовок таблицы) |
Описание ПО | Множество схем отношений (множество заголовков таблиц) |
ПО | Множество отношений (множество таблиц) |
Таким образом, с точки зрения структурной компоненты РМД – это множество отношений. Схема РМД – это множество схем отношений.
РМД: языки манипулирования данными (ЯМД)
ЯМД разбиваются на 3 больших класса:
1) Основанные на реляционной алгебре (РА) (процедурные языки);
2) Основанные на исчислении отношений (непроцедурные языки);
3) Основанные на операции отображения (SQL, QBE и др.)
ЯМД, основанный на РА
РА: UR=<R, FR>, где R – основное множество (отношения); FR - сигнатура (множество операций).
РА является замкнутой алгеброй относительно R, т.е. операнды и результаты операций являются отношениями.
Теоретико-множественные операции РА
Они применяются к отношениям, имеющим одинаковую схему отношений:
R (A1, A2, …, An) и S (A1, A2, …, An)
1) одинаковое количество атрибутов;
2) одноименные атрибуты определены на одних и тех же доменах.
Такие отношения имеют одну и ту же область определения – U:
U = dom (A1) * dom (A2) * … * dom (An)
РА определяется кортежом <P(n), Ú, Ù, Ø, Æ, U>
Пусть r и s – отношения со схемой R (A1, A2, …, An);
r(R) и s(R) – это исходные отношения, а q(R) – результирующее отношение.
r(R) | ШД | Цвет |
Б | ч | |
Г | ч | |
Г | с |
s(R) | ШД | Цвет |
Г | с | |
Г | к |
1) Операция объединения: q(R) = r(R) Ú s(R) = {t(R) ½ t Î r Ú t Î s}
Операция объединения используется для первоначальной загрузки таблиц БД, для добавления записей.
q(R) | ШД | Цвет |
Б | ч | |
Г | ч | |
Г | с | |
Г | к |
2) Операция пересечения: q(R) = r(R) Ù s(R) = {t(R) ½ t Î r Ù t Î s}
Используется для выделения необходимых коррекций.
q(R) | ШД | Цвет |
Г | с |
3) Операция разности: q(R) = r(R) \ s(R) = {t(R) ½ t Î r Ù t Ï s}
Используется для удаления кортежей из отношения.
q(R) | ШД | Цвет |
Г | ч | |
Б | ч |
4) Операция дополнения (унарная операция): q(R) = r(R) = {t(R) ½ t Ï r}
Или q(R) = dom (R) \ r
q(R) | ШД | Цвет |
Б | к | |
Б | с | |
Г | к |
Специальные операции РА
1) Операция проекции отношения на один или несколько атрибутов (унарная операция)
Исходные данные: r(R) X Í R
Результирующее отношение: q(X)
q(X) = { t(X) ½ t(R) Î r Ù t(X) Î t(R)}
В q(X) входят такие подкортежи t(X), которые являются частью кортежей t(R), входящих в отношение r. Обозначение операции: px(r) или r(X)
Пример:
R | ШД | Цвет |
Б | ч | |
Г | с | |
Г | ч |
Найти имена всех деталей – q(ШД) = pШД(r)
q | ШД |
Б | |
Г | |
|
Дублирующие кортежи вычеркиваются (по определению)
2) q - соединение, где q - некоторая операция отношения.
Введем понятие q - сравнимых атрибутов. Если операция q определена на декартовом произведении доменов dom (A) * dom (B), то A и B называются
q-сравнимыми. Один атрибут может рассматриваться q-сравнимым сам с собой.
Исходные данные: r(R) и s(S); R Ù S = Æ; T = R Ú S; A Î R; B Î S; A и B
q-сравнимы. Обозначим: tr для t(R) Î r, ts для t(S) Î s. Результирующее отношение: q(T).
q(T) = {t(T) ½ t(R)= tr Ù t(S)= ts Ù tr(A) q ts(B)}
В q(T) входят различные сцепления кортежей tr и ts, для которых предикат tr(A) q ts(B) является истинным.
Короткая запись операции: q(T)=r[A q B]s
Пример: A®B®C
AB | № рейса | Вылет | Прилет |
BC | № рейса1 | Вылет1 | Прилет1 |
AC = AB [Прилет < Вылет1] BC
Условие вхождения кортежей может быть логически сложным (логические операции: Ú, Ù, Ø).
На языке SQL: SELECT AB.*, BC.* FROM AB, BC WHERE AB.ПРИЛЕТ < BC.ВЫЛЕТ1
3) q - ограничение (или выборка) – частный случай q - соединения.
Исходные данные: r(R); A Î R; a Î dom (A);
Результирующее отношение: q(R).
q(R) = {t(R) ½ t(A) q a} Короткая запись: q(R) = dAqa(R)
В q(R) входят такие кортежи t(R) из отношения r, для которых предикат t(A) q a является истинным.
Пример:
R | ШД | Цвет |
Б | ч | |
Г | с | |
Г | ч |
Найти кортежи, в которых черные детали: q(R) = dЦвет=’ч’(R)
Q | ШД | Цвет |
Б | ч | |
Г | ч |
4) Операция декартова произведения кортежей отношения.
Исходные данные: r(R) и s(S); T = R Ú S; R Ù S = Æ.
Результирующее отношение: q(T).
q(T) = {t(T) ½ t(R)= tr Ú t(S)= ts} Короткая запись: q(T)=r(R) * s(S)
В q(T) входят всевозможные сцепления кортежей tr и ts. Это очень опасная операция, т.к. мощность результата P=P1*P2.
5) Операция эквисоединения
Исходные данные: r(R) и s(S); F = R Ù S ¹ Æ (имеются одноименные атрибуты).
Результирующее отношение: q(T).
q(T) = {t(T) ½ t(R)= tr Ù t(S)= ts Ù tr(F) = ts(F)} Короткая запись: q(T) = r ¥ s
В q(T) входят различные сцепления tr и ts, для которых значения одноименных атрибутов равны.
Пример:
Пост. | ШП | ШД |
П1 | Б | |
П2 | Г |
Деталь | ШД | Цвет |
Б | ч | |
Г | с | |
Г | ч |
q(ШП, ШД, Цвет) = Пост. (ШП, ШД) ¥ Деталь(ШД, Цвет)
q | ШП | ШД | Цвет |
П1 | Б | ч | |
П2 | Г | с | |
П2 | Г | ч |
Лекция №6
Определение ЯМД, основанного на ИО.
Исчисление отношений (ИО) – это совокупность обозначений и правил (формула) для описания результирующего отношения, выводимого из РМД. Эта формула называется a-выражением:
{ (t1, t2, …, tn): W}
целевой список предикат
Этот ЯМД в нашем курсе не рассматривается.
ЯМД, основанный на операции отображения.
Эти языки занимают промежуточное положение между РА и ИО. Под отображением в данном случае понимают операцию выбора данных, которая имитирует действия человека при поиске данных в таблице.
r | ФАМ | Г_Р | Группа | Пол |
Действия:
1) Пример столбца: группа
2) Выделение в нем некоторого элемента (аргумент отображения) А8-97
3) Просмотр строки, содержащей аргумент отображения
4) Выделение из строки значений, которые входят в столбцы ФАМ, Г_Р
Таким образом, главная конструкция этого языка – это операция отображения, например:
Язык SQL
SELECT ФАМ, Г_Р FROM r WHERE Группа = ‘А8-97’
аргумент отображения
Здесь нет ничего от РА; только исчисление отношений. В языке SQL есть блочная структура, т.е. возможно вложение одного элементарного блока в другой.
Пример: Сотрудники_ЗИЛ (ФАМ, Г_Р)
ВУЗ (ФАМ, Н_ВУЗА)
Выдать года рождения сотрудников ЗИЛа, которые учатся в МЭИ.
SELECT Г_Р FROM СОТР_ЗИЛ WHERE ФАМ IN (SELECT ФАМ FROM ВУЗ WHERE
Н_ВУЗА = ‘МЭИ’)
Запрос реализуется в 2 этапа: сначала – внутренний блок SELECT: из отношения ВУЗ извлекается множество ФАМ, которые учатся в МЭИ; затем полученный список ФАМ используется в условиях внешнего SELECT. Это вносит определенную процедурность в формулировку запросов и приближает рассмотренную группу языков к алгебраическим языкам.
Язык QBE (Query by Example)
Язык, сходный с SQL, однако QBE разработан специально для работы с терминала.
Всякая операция в QBE специфицируется с помощью одной или нескольких таблиц; каждая такая таблица строится на экране монитора частично системой, частично пользователем.
Первоначально система выдает на экран пустую таблицу. Пользователь, знающий, что ответ на запрос находится в таблице r, запишет r в качестве имени таблицы; тогда система ответит заполнением соответствующих имен столбцов:
R | A | B | C | D |
P.ax | P.bx | C1 |
условие запроса
Пользователь формулирует запрос, заполняя три позиции в таблице. P. – означает печать. P указывает цель запроса (результат), которая должна быть выведена.
Q = pAB (dC=C1(r))
Нормализация отношений
Нормализацией называется процесс приведения отношения к одной из нормальных форм (НФ). Отношения могут находиться в следующих состояниях: ненормализованное отношение, 1НФ, 2НФ, 3НФ, 4НФ, 5НФ. Однако 5НФ практического значения не нашла. Нормализация используется на этапе концептуального проектирования РМД.
Для чего вводится нормализация:
1) минимизация избыточности хранения данных;
2) обеспечение непротиворечивости данных;
3) расширение возможностей БД по добавлению, удалению и обновлению;
4) сделать БД более наглядной, семантически выразительной.
НФ
Отношение, которое состоит из простых атрибутов, называется нормализованным и находится, по меньшей мере, в 1НФ.
Любое ненормализованное отношение можно привести к 1НФ.
Пример: Служ (#служ, ФИО, дети(имя, Г_Р))
составной атрибут
служ
![]() | ![]() |
#служ ФИО дети
корневое отношение имя Г_Р
подчиненное отношение
Существует алгоритм приведения к 1НФ:
1) Корневое отношение помещается в результирующее отношение.
2) Подчиненное отношение помещается в результирующее отношение вместе с атрибутами ключа корневого отношения.
3) Этот процесс продолжается до удаления всех деревьев из исходного отношения.
Таким образом, в нашем случае в результирующее отношение попадут 2 отношения:
Служ(#служ, ФИО)
Дети(#служ, имя, Г_Р) 1НФ
При анализе нормализации важную роль играет понятие функциональной зависимости (ФЗ).
Определение ФЗ