Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Кудравцев Создание баз данных 2010

.pdf
Скачиваний:
83
Добавлен:
16.08.2013
Размер:
2.65 Mб
Скачать

Министерство образования и науки РФ

Национальный исследовательский ядерный университет «МИФИ»

К. Я. Кудрявцев

СОЗДАНИЕ БАЗ ДАННЫХ

Учебное пособие

Москва 2010

УДК (004.738.5(075) ББК (32.973.202я7) К88

Кудрявцев К.Я. Создание баз данных. Учебное пособие. М.:

НИЯУ МИФИ, 2010.– 155 с.

Рассмотрены теоретические вопросы проектирования баз данных, особенности применения редактора ERWin, приведено большое количество практических примеров построения концептуальных моделей (ER-диаграмм) различных предметных областей.

Представлены реляционная модель данных, нормализация отношений, математический аппарат реляционной алгебры и реляционного исчисления.

Описаны подходы к созданию сложных интерфейсов (форм) для работы с данными, а также структура семейств и объектов для манипулирования данными с

помощью VBA в СУБД MS Access.

Рассмотрены особенности архитектуры, системы безопасности и механизмы аутентификации и авторизации в клиент-серверных СУБД MySQL и PostgreSQL. Дано описание программного интерфейса для соединения и доступа к серверу базы данных. Приведены примеры сеансов работы по созданию базы данных.

Описана структура языка SQL, подробно рассматривается построение сложных SQL-запросов.

Предназначено для студентов, обучающихся по специальности 010501 – «Прикладная математика и информатика», изучающих курс «Базы данных и экспертные системы» (ОПД.Ф.11), а также всех желающих узнать больше о технологии разработки баз данных.

Рецензент В.С. Лаврентьев

 

ISBN 978-5-7262-1302-6

Рекомендовано к изданию

 

редсоветом НИЯУ МИФИ

 

в качестве учебного пособия

© Национальный исследовательский ядерный университет «МИФИ», 2010 г.

2

ОГЛАВЛЕНИЕ

 

ВВЕДЕНИЕ ......................................................................................................

7

Глава 1. КОНЦЕПТУАЛЬНОЕ МОДЕЛИРОВАНИЕ ..........................

10

ТИПЫ МОДЕЛЕЙ ДАННЫХ .......................................................................

10

Иерархическая модель данных ........................................................

12

Сетевая модель данных ...................................................................

14

Реляционная модель данных ............................................................

15

ПОСТРОЕНИЕ КОНЦЕПТУАЛЬНОЙ МОДЕЛИ ............................................

15

CASE-СРЕДСТВА ПОСТРОЕНИЯ КОНЦЕПТУАЛЬНЫХ МОДЕЛЕЙ..............

18

СОЗДАНИЕ ER-ДИАГРАММ С ПОМОЩЬЮ ERWIN ..................................

21

РЕЛЯЦИОННЫЕ СХЕМЫ И ER-ДИАГРАММЫ ...........................................

29

ПРИМЕРЫ ER-ДИАГРАММ ......................................................................

34

ER-диаграмма «Обменный пункт валюты» ..................................

34

ER-диаграмма «Родственные отношения»...................................

35

ER-диаграмма «Теннисный турнир» ..............................................

36

ER-диаграмма «Библиотека» .........................................................

37

КОНТРОЛЬНЫЕ ВОПРОСЫ .......................................................................

39

Глава 2. РЕЛЯЦИОННАЯ МОДЕЛЬ ДАННЫХ..................................

40

БАЗОВЫЕ ПОНЯТИЯ РЕЛЯЦИОННОЙ МОДЕЛИ ДАННЫХ ..........................

41

Тип данных ........................................................................................

42

Связанные отношения .....................................................................

46

Внешние ключи отношения .............................................................

47

Условия целостности данных .........................................................

48

Типы связей между таблицами ......................................................

50

РЕЛЯЦИОННАЯ АЛГЕБРА И РЕЛЯЦИОННОЕ ИСЧИСЛЕНИЕ .......................

51

РЕЛЯЦИОННАЯ АЛГЕБРА .........................................................................

52

Операции реляционной алгебры ......................................................

52

3

Теоретико-множественные операции реляционной алгебры ......

54

Специальные реляционные операции ..............................................

55

РЕЛЯЦИОННОЕ ИСЧИСЛЕНИЕ..................................................................

58

Целевые списки и выражения реляционного исчисления ..............

62

Реляционное исчисление доменов....................................................

62

НОРМАЛИЗАЦИЯ ОТНОШЕНИЙ ...............................................................

64

Аномалия обновления .......................................................................

64

Аномалия удаления ...........................................................................

65

Аномалия ввода.................................................................................

65

Первая нормальная форма (1НФ)...................................................

65

Функциональные зависимости ........................................................

66

Вторая нормальная форма (2НФ) ..................................................

68

Третья нормальная форма (3НФ) ..................................................

69

Многозначные зависимости ............................................................

71

КОНТРОЛЬНЫЕ ВОПРОСЫ .......................................................................

73

Глава 3. РАБОТА с MS ACCESS ...............................................................

74

АРХИТЕКТУРА ПРИЛОЖЕНИЯ MS ACCESS..............................................

74

Обобщенная модель ядра приложения...........................................

74

Модель Data Access Object...............................................................

76

Ссылки на семейства, объекты и свойства ..................................

78

Работа с объектными переменными .............................................

79

ПРАКТИЧЕСКИЕ АСПЕКТЫ РАБОТЫ С MS ACCESS..................................

80

Динамическое изменение «Поля со списком» ................................

80

Динамическое изменение «Текстового поля» ...............................

83

Параметрические запросы в формах. ............................................

84

Отображение взаимосвязанной информации ...............................

85

Многопараметрические запросы ....................................................

89

КОНТРОЛЬНЫЕ ВОПРОСЫ .......................................................................

92

4

Глава 4. КЛИЕНТ-СЕРВЕРНЫЕ СУБД ..................................................

93

СУБД MYSQL .......................................................................................

95

Запуск и работа с MySQL................................................................

95

Структура хранения данных в MySQL...........................................

97

Система безопасности MySQL ......................................................

98

СУБД POSTGRESQL.............................................................................

103

Запуск и работа с PostgreSQL ......................................................

104

Структура хранения данных в PostgreSQL .................................

105

Система безопасности PostgreSQL .............................................

106

ПРОГРАММНЫЙ ИНТЕРФЕЙС ДЛЯ РАБОТЫ С СЕРВЕРОМ БД .................

108

API для MySQL................................................................................

108

API для PostgreSQL.........................................................................

110

ТРАНЗАКЦИИ ........................................................................................

113

ХРАНИМЫЕ ПРОЦЕДУРЫ.......................................................................

117

ТРИГГЕРЫ .............................................................................................

121

КОНТРОЛЬНЫЕ ВОПРОСЫ .....................................................................

123

Глава 5. ЯЗЫК SQL....................................................................................

124

CТРУКТУРА ЯЗЫКА SQL .......................................................................

124

ОПРЕДЕЛЕНИЕ СХЕМЫ ДАННЫХ. ОПЕРАТОР CREATE........................

126

ВЫБОРКА ДАННЫХ. ОПЕРАТОР SELECT .............................................

129

ТАБЛИЧНОЕ ВЫРАЖЕНИЕ ОПЕРАТОРА SELECT ..................................

131

Раздел FROM ..................................................................................

132

Раздел WHERE................................................................................

132

Раздел GROUP BY ..........................................................................

136

Раздел HAVING...............................................................................

136

Агрегатные функции......................................................................

137

ПРИМЕРЫ ПОСТРОЕНИЯ SQL-ЗАПРОСОВ .............................................

139

База данных туристических поездок ...........................................

139

5

Запрос 1 ...........................................................................................

140

Запрос 2 ...........................................................................................

142

Запрос 3 ...........................................................................................

144

Запрос 4 ...........................................................................................

145

Запрос 5 ...........................................................................................

145

Запрос 6 ...........................................................................................

146

Запрос 7 ...........................................................................................

148

Запрос 8 ...........................................................................................

149

Запрос 9 ...........................................................................................

150

КОНТРОЛЬНЫЕ ВОПРОСЫ .....................................................................

153

СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ .................................

154

6

ВВЕДЕНИЕ

Развитие компьютерных технологий, связанных с хранением и обработкой данных, привело к появлению с середины 1960-х гг. понятия базы данных и специализированного программного обеспечения, получившего название систем управления базами данных

(СУБД) — DataBase Management Systems, (DBMS) [1].

База данных (БД) — это поименованная совокупность структурированных данных, относящихся к определенной предметной области. По технологии обработки данных базы данных подразделяются на централизованные и распределенные (клиентсерверные).

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

Основные функции СУБД:

физическое размещение в памяти данных и их описаний;

реализация механизмов поиска запрашиваемых данных;

разрешение проблем, возникающих при одновременном запросе одних и тех же данных многими пользователями (прикладными программами);

обеспечения защиты данных от некорректных обновлений и (или) несанкционированного доступа;

поддержания баз данных в актуальном состоянии;

обеспечение целостности и непротиворечивости данных.

СУБД можно определить как некую систему управления данными, обладающую следующими свойствами:

поддержание логически согласованного набора файлов;

обеспечение языка манипулирования данными;

восстановление информации после разного рода сбоев;

обеспечение одновременной работы нескольких пользователей.

В истории развития и совершенствования систем управления базами данных можно выделить три основных этапа.

7

Иерархические и сетевые СУБД

Первый этап был связан с созданием первого поколения СУБД, опиравшихся на иерархическую и сетевую модели данных (на основе спецификаций CODASYL). В этот период времени на рынке вычислительной техники доминировали большие вычислительные машины (mainframe), такие как система IBM 360/370, которые в совокупности с СУБД первого поколения составили аппаратнопрограммную платформу больших информационных систем.

Реляционные СУБД

Началом второго этапа в эволюции СУБД можно считать публикации в начале 70-х годов ряда статей Э. Кодда, в которых выдвигались, по сути, революционные идеи, существенно изменившие устоявшиеся представления о базах данных. Кодд предложил использовать для обработки данных аппарат теории множеств (реляционную алгебру и реляционное исчисление). Одна из главных идей Кодда заключалась в том, что связь между данными должна устанавливаться в соответствии с их внутренними логическими взаимоотношениями, в отличие от иерархических и сетевых СУБД, где для связи записей из разных файлов использовались физические указатели. Это означало, что в том случае, когда в разных файлах хранится логически связанная информация, а физическая связь между этими файлами отсутствует, то для получения выборки (извлечения информации) из такой базы данных необходимо использовать низкоуровневые средства работы с файлами.

В настоящее время реляционные базы данных получили очень широкое распространение, и фактически их можно рассматривать как стандарт СУБД для современных информационных систем.

Объектно-ориентированные СУБД

Развитие реляционных баз данных и обеспечение возможностей решения более сложных задач привели к появлению объектноориентированных баз данных. Для них характерны использование идей объектно-ориентированного подхода, управления распределенными базами данных, активного сервера базы данных, языков программирования четвертого поколения, фрагментации и парал-

8

лельной обработки запросов, технологии тиражирования данных, многопоточной архитектуры и других революционных достижений в области обработки данных.

Несмотря на все достоинства объектно-ориентированных СУБД, их использование далеко не всегда оправданно. Нередко декомпозиция данных объекта не вызывает никаких проблем и вполне логична. В этом случае использование реляционной модели может быть более эффективно.

В данном пособии будут рассмотрены основные этапы проектирования реляционных баз данных, как наиболее широко используемых в настоящее время.

9

Глава 1. КОНЦЕПТУАЛЬНОЕ МОДЕЛИРОВАНИЕ

Типы моделей данных

В широком смысле слова база данных — это совокупность сведений о конкретных объектах реального мира в какой-либо предметной области [1]. Под предметной областью принято понимать часть реального мира, подлежащего изучению для организации управления и, в конечном счете, автоматизации, например, предприятие, вуз и т.д.

Создавая базу данных, пользователь стремится упорядочить информацию по различным признакам и быстро извлекать данные с произвольным сочетанием признаков. Сделать это возможно, только если данные структурированы.

Структурирование — это введение соглашений о способах представления данных. Неструктурированными называют данные, записанные, например, в текстовом файле.

На рис. 1.1 представлен пример неструктурированных данных, содержащих сведения о студентах (номер личного дела, фамилию, имя, отчество и год рождения). Легко убедиться, что сложно организовать поиск необходимых данных, хранящихся в неструктурированном виде, а упорядочить подобную информацию практически не представляется реальным.

Личное дело № 16493, Сергеев Петр Михайлович, дата рождения 1 января

1986 г.

Л/д № 16593, Петрова Анна Владимировна, дата рожд. 15 марта 1985 г.

№ личн. дела 16693, д.р. 14.04.86,

Анохин Андрей Борисович.

Рис.1.1. Пример неструктурированных данных

10