Лекция Базы Данных.ppt
- Количество слайдов: 74
Структуры (модели) данных
2 Структуры (модели) данных В информатике совокупность взаимосвязанных данных называется информационной структурой или моделью данных. Известны 3 основные типы моделей данных: иерархическая (дерево), сетевая и реляционная. Иерархическая модель данных является реализацией отношений «целое- часть» . Графическим способом представления иерархической структуры является дерево- разновидность графа, в котором нет циклических путей.
Модели данных
• Иерархическая структура данных состоят из совокупности элементов, расположенных в порядке подчинения. В иерархической модели имеется корневой узел. Он находится на самом верхнем уровне. Остальные узлы, называемые порожденными (листьями), связаны между собой следующим образом: для каждого узла существует один и только один исходный узел и может быть 0, 1, 2 и более порожденных. ПГПУ ИНЭК Кафедра информатики Кафедра экономики Кабинет информатики Матфак Кафедра Прикладной информатики Кафедра алгебры Ин. яз Кафедра геометрии Кафедра Анг. языка Кафедра нем. языка 4
Свойства «дерева» : • иерархическое «дерево» имеет только одну вершину ( «корень» дерева); • порожденные узлы могут добавляться как по горизонтали, так и по вертикали; • доступ к порожденным узлам возможен только через исходный узел. Существует только один путь доступа к каждому узлу; • несколько узлов уровня связаны только с одним узлом более высокого уровня; • теоретически возможно существование неограниченного числа экземпляров узла каждого уровня. 5
6 Сетевую структуру данных можно представить в виде следующей схемы: Иванов КВН Петров КСП Клуб «Турист Сидоров СТЭМ СНО Отличие сетевой структуры от иерархической заключается в том, что любой объект в сетевой структуре может быть связан с любым другим объектом.
7 Свойства «сети» : • они также имеют уровни, узлы, связи; • связи между уровнями свободные, нет строгого подчинения. За внешней простотой и универсальностью сетевой модели кроется очень сложная реализация этой модели в реальных базах данных.
Реляционные структуры данных(от латинского relatio – отношение) состоят из одной и более взаимосвязанных двумерных таблиц. Свойства (атрибуты) объектов выделяются в отдельные столбцы и озаглавливаются. Каждая строка таблицы – есть совокупность значений атрибутов, относящихся к конкретному объекту. Такую строку называют записью (кортеж), а столбцы – полями записи. В этом подходе таблица, как совокупность атрибутов объекта называется отношением. ФИО Адрес Телефон Е-mail Аликин И. О. Ким 2 -154 248 -34 -67 alikin@mail. ru Волегова А. Н. Ленина 112 -4 212 -25 -60 - Сабиров Р. И. Юрша 60 -15 266 -42 -65 sabirov@pspu. ru Маслова С. Е. Грачева 34 -8 248 -97 -33 -
9 Свойства реляционной структуры: • записи могут иметь одинаковые значения в некоторых полях, кроме ключевого; • каждая запись имеет уникальное значение в ключевом поле; • несколько таблиц связаны ключами.
10 Из рассмотренных примеров видно, что важно не только собрать вместе нужную информацию, но и удачно её структурировать. Самым ярким примером удачной информационной структуры является таблица Менделеева. Построение структуры данных происходит в следующем порядке: 1. определяются объекты описания; 2. определяются атрибуты этих объектов; 3. Выбирается тип структуры, отображающий отношение между объектами (табличная, древовидная, сеть); 4. Строится конкретная информационная структура.
БАЗЫ ДАННЫХ. ИНФОРМАЦИОННЫЕ СИСТЕМЫ Тема 1. Информационные системы
Определения База данных (БД) – это хранилище данных о некоторой предметной области, организованное в виде специальной структуры. Важно: q данные о некоторой области (не обо всем) q упорядоченные Система управления базой данных (СУБД) – это программное обеспечение для работы с БД. Функции: q поиск информации в БД q выполнение несложных расчетов q вывод отчетов на печать q редактирование БД 12
Системы управления базами данных Система управления базами данных (СУБД) – комплекс программных и языковых средств для создания баз данных, поддержки их в актуальном состоянии и организации поиска в них необходимой информации. СУБД является интерфейсом между БД и прикладными задачами. Входящие в состав СУБД средства совместно выполняют следующие функции: 1. описание данных и их структуры; 2. первичный ввод, пополнение информации в БД; 3. удаление устаревшей информации из БД; 4. корректировку данных для поддержки их актуальности; 5. упорядочение (сортировку) данных по некоторому признаку; 6. поиск информации по некоторым признакам; 7. подготовку и генерацию отчетов; 8. защиту информации и разграничение доступа пользователей к ней; 9. резервное сохранение и восстановление БД при сбоях аппаратуры; 10. Поддержку дружественного интерфейса с пользователями.
14 Дружественный интерфейс предполагает: a) наличие развитой системы помощи; b) защиту от необдуманных действий, предупреждающую пользователя; c) наличие нескольких вариантов выполнения одних и тех же действий, из которых пользователь может выбрать наиболее удобные для себя, соответствующие его подготовке, квалификации, привычкам. Широкое распространение имеют СУБД для персональных компьютеров : Lotus, Access, d. Base, Fox. Pro, Paradox, Clarion, Clipper и т. п. Информационная система – это БД + СУБД.
Типы информационных систем • локальные ИС БД и СУБД находятся на одном компьютере. • файл-серверные БД находится на сервере сети (файловом сервере), а СУБД на компьютере пользователя. • клиент-серверные БД и основная СУБД находятся на сервере, СУБД на рабочей станции посылает запрос и выводит на экран результат. 15
Локальные ИС 16 БД СУБД автономность (независимость) 1) с БД работает только один человек 2) сложно обновлять при большом количестве пользователей 3) практически невозможно «стыковать» изменения, вносимые несколькими пользователями
17 Файл-серверные ИС СУБД БД СУБД несколько человек работают с одной базой 1) основную работу выполняют рабочие станции (РС), они должны быть мощными 2) для поиска строки на РС копируется вся БД – нагрузка на сеть 3) слабая защита от взлома (только на РС) 4) проблемы при одновременном изменении с разных РС
18 Клиент-серверные ИС СУБД-клиент БД запрос на SQL СУБД-сервер: • MS SQL Server • Oracle • My. SQL • Interbase • Sy. Base СУБД-клиент ответ СУБД-клиент SQL (Structured Query Language) – язык структурных запросов 1) основную работу выполняет сервер, рабочие станции могут быть маломощными 2) проще модернизация (только сервер) 3) по сети идут только нужные данные 4) защиту и права доступа ставят на сервере (сложнее взломать) 5) разделение доступа (очередь заданий) 1) сложность настройки 2) высокая стоимость ПО (тысячи $)
БАЗЫ ДАННЫХ. ИНФОРМАЦИОННЫЕ СИСТЕМЫ Тема 2. Базы данных
Типы баз данных • табличные БД данные в виде одной таблицы • сетевые БД набор узлов, в которых каждый может быть связан с каждым. • иерархические БД в виде многоуровневой структуры • реляционные БД (99, 9%) набор взаимосвязанных таблиц 20
21 Табличные БД Модель – картотека Примеры: • записная книжка • каталог в библиотеке Петров Вася Суворовский пр. , д. 32, кв. 11 275 -75 -75 поля записи Фамилия Имя Адрес Телефон Петров Вася Суворовский пр. , д. 32, кв. 11 275 -75 -75 Иванов Дима Кирочная ул. , д. 25, кв. 12 276 -76 -76 1) самая простая структура 2) все другие типы БД используют таблицы во многих случаях – дублирование данных: А. С. Пушкин Сказка о царе Салтане 20 стр. А. С. Пушкин Сказка о золотом петушке 12 стр.
Табличные БД 1. Количество полей определяется разработчиком и не может изменяться пользователем. 2. Любое поле должно иметь уникальное имя. 3. Поля могут иметь различный тип: • строка символов (длиной до 255 символов) • вещественное число (с дробной частью) • целое число • денежная сумма • счетчик • дата, время, дата и время • логическое поле (истина или ложь, да или нет) • многострочный текст (МЕМО) • рисунок, звук или другой объект (объект OLE) 4. Поля могут быть обязательными для заполнения или нет. 5. Таблица может содержать сколько угодно записей (это количество ограничено только объемом диска); записи можно добавлять, удалять, редактировать, сортировать, искать. 22
Ключевое поле (ключ таблицы) Ключевое поле (ключ) – это поле (или комбинация полей), которое однозначно определяет запись. В таблице не может быть двух записей с одинаковым значением ключа. Могут ли эти данные быть ключом? • фамилия • имя • номер паспорта • номер дома • регистрационный номер автомобиля • город проживания • дата выполнения работы • марка стиральной машины ? 23
24 Сетевые БД Сетевая БД - это набор узлов, в которых каждый может быть связан с каждым. А Г Б В наиболее полно отражает структуру некоторых задач (например, сетевое планирование в экономике) 1) сложно хранить и искать информацию о всех связях 2) запутанность структуры ! Можно хранить в виде таблицы, но с дублированием данных!
25 Иерархическая БД – это набор данных в виде многоуровневой структуры. Прайс-лист: Кей Продавец (уровень 1) Мониторы Sony Изготовитель (уровень 3) Модель (уровень 4) S 93 X 93 B Цена (уровень 5) $306 $312 Принтеры Phillips Товар (уровень 2) Samsung
26 Иерархическая БД Приведение к табличной форме: Продавец Товар Изготовитель Модель Цена Кей Монитор Sony S 93 $306 Кей Монитор Sony X 93 B $312 Key Монитор Phillips 190 B 5 CG $318 Кей Монитор Samsung Sync. Master 193 P $452 … 1) дублирование данных 2) при изменении адреса фирмы надо менять его во всех строках 3) нет защиты от ошибок ввода оператора (Кей – Key), лучше было бы выбирать из списка
БАЗЫ ДАННЫХ. ИНФОРМАЦИОННЫЕ СИСТЕМЫ Тема 3. Реляционные базы данных
28 Реляционные БД 1970 -е гг. Э. Кодд, англ. relation – отношение. Реляционная база данных – это набор простых таблиц, между которыми установлены связи (отношения) с помощью числовых кодов. Изготовители Продавцы Код Название Адрес Телефон Сайт Код Прайс-лист Код записи Название Код продавца Страна Код изготовителя Сайт Код товара Код модели Цена Модели Товары Код Название Код изготовителя
Реляционные БД 1) нет дублирования информации; 2) при изменении адреса фирмы, достаточно изменить его в только таблице Продавцы; 3) защита от неправильного ввода: можно выбрать только фирму, которая заранее введена в таблицу Продавцы. 1) сложность структуры (не более 40 -50 таблиц); 2) при поиске надо обращаться к нескольким таблицам; 3) нужно поддерживать целостность: при удалении фирмы продавца надо удалять все связанные записи из всех таблиц (в СУБД – автоматически, каскадное удаление). 29
БАЗЫ ДАННЫХ. ИНФОРМАЦИОННЫЕ СИСТЕМЫ Тема 4. Базы данных Access. Работа с таблицами
Базы данных Access (Microsoft Office) 31 Расширение: *. mdb, один файл Состав: • таблицы; • формы – диалоговые окна для ввода и редактирования данных; • запросы – обращения к базе данных для выбора нужной информации или изменения базы; • отчеты – документы для вывода на печать; • макросы – средства автоматизации работы; • модули – дополнительные процедура на языке Visual Basic.
Начало работы 32 Пуск – Программы – Microsoft Office – Microsoft Access 2003
33 Сервис – Схема данных таблица ключевое поле связь « 1 - » Удалить связь: ЛКМ + Delete. Создать связь: перетащить нужное поле на соответствующее поле второй таблицы.
34 Работа с таблицами Таблицы – Заказы – или двойной щелчок ЛКМ
35 Работа с таблицами область выделения текущее поля записи текущая запись последняя запись новая запись на 1 -ую запись предыдущая запись номер текущей записи следующая запись перейти на новую запись всего записей
36 Сортировка и поиск Сортировка по текущему полю (столбцу): по возрастанию (в алфавитном порядке) по убыванию (в обратном алфавитном порядке) Поиск и замена: текущее поле или все поля всё, вверх, вниз целиком, с любой частью, с началом
Фильтрация 37 Фильтрация – это отбор записей, удовлетворяющих некоторому условию (фильтру). Остальные записи временно скрываются, пока фильтр не будет снят. Фильтр по выделенному 1. Щелкнуть в нужной ячейке или выделить часть текста. 2. Щелкнуть по кнопке. 3. Снятие фильтра.
38 Фильтрация Сложные условия Записи – Фильтр – Изменить фильтр Одновременно (операция И) Точное совпадение Начинается с ‘С’ новое условие, связанное через ИЛИ Полный вариант: Записи – Фильтр – Расширенный фильтр • можно переставлять столбцы • можно выводить не все столбцы • можно устанавливать порядок сортировки
БАЗЫ ДАННЫХ. ИНФОРМАЦИОННЫЕ СИСТЕМЫ Проектирование таблиц
Создание таблиц • ввод данных и названий полей (режим таблицы); • конструктор – ручная настройка; • мастер таблиц – создание таблиц стандартных типов (Товары, Клиенты, Сотрудники, …); • импорт таблиц – загрузка данных из других источников (БД других форматов, Excel, текстовые файлы, …). 40
41 Создание таблиц Мастер Импорт • из других БД Access • из БД других форматов (*. db, *. dbf) • из таблиц Excel • из документов XML • из текстовых БД (CSV – comma separated values) Ввод данных
42 Конструктор таблиц перейти в конструктор перейти в режим таблицы
43 Конструктор таблиц ключ текущее поле тип поля (выбор из списка) свойства текущего поля
Свойства полей 44 Размер поля: байт, целое, вещественное, … Формат поля: как выводить на экран. Маска ввода: шаблон (ввод телефона). Подпись: как называется столбец при выводе на экран (можно использовать скобки, знаки и т. д. ( «Население, млн. чел. » ) Значение по умолчанию (вписывается автоматически). Условие на значение: защита от ошибок ввода ( «>18» ). Сообщение об ошибке ( «Возраст должен быть больше 18 лет!» ) Обязательное поле (да/нет) Индексированное поле (да/нет)
45 Операции с полями сделать поле ключевым (отменить…) добавить поле выше текущего индексы Primary Key: ключ таблицы название индекса удалить текущее поле (или все выделенные) поле таблицы (выбор из списка)
БАЗЫ ДАННЫХ. ИНФОРМАЦИОННЫЕ СИСТЕМЫ Тема 6. Формы
47 Формы Форма – это диалоговое окно для • просмотра и редактирования данных • ввода новых записей • управления ходом работы (кнопки) • вывода вспомогательной информации Создание форм: источник данных
48 Создание форм Конструктор – полностью вручную. Мастер форм – режим «вопросы – ответы» . Автоформа в столбец: Автоформа ленточная: Диаграмма: Автоформа табличная:
49 Конструктор форм перейти в конструктор область выделения кнопки перехода перейти в режим формы
50 Конструктор форм выбранный элемент заголовок формы область данных примечание формы изменение размеров
БАЗЫ ДАННЫХ. ИНФОРМАЦИОННЫЕ СИСТЕМЫ Запросы
52 Запросы «Ну и запросы у вас!» - сказала база данных и «повисла» . (Фольклор) Запрос – это обращение к СУБД для выполнения каких-либо операций с данными. Типы запросов: • выборка • создание таблицы • обновление (изменение данных) • добавление записей • удаление записей • …
Запрос и фильтрация В запросе можно: • отобрать информацию из нескольких связанных таблиц • использовать сложные условия отбора • пользователь может сам ввести параметры (сумму денег) • добавить вычисляемые поля • выполнить итоговые расчеты 53
Создание запросов 54
БАЗЫ ДАННЫХ. ИНФОРМАЦИОННЫЕ СИСТЕМЫ Макросы
Мастер запросов 56
Запуск запроса 57
58 Конструктор перейти в конструктор перейти в режим таблицы
59 Конструктор все поля • по возрастанию • по убыванию • отсутствует фильтр таблица (ПКМ – Добавить таблицу) перетащить ЛКМ
60 Работа со столбцами перетащить (ЛКМ) выделить (ЛКМ) ПКМ: • вырезать • копировать • вставить • свойства
Условия отбора Совпадение Шаблон * любое количество любых символов ? один любой символ # любая цифра Неравенство 61
БАЗЫ ДАННЫХ. ИНФОРМАЦИОННЫЕ СИСТЕМЫ Отчеты
63 Создание отчетов Отчет – это документ, содержащий информацию из базы данных и предназначенный для вывода на печать. Источник: таблица или запрос ! Только один источник!
64 Автоотчеты Автоотчет в столбец Автоотчет ленточный
Режим просмотра отчета 2 x ЛКМ 65
Режим просмотра отчета – перейти в конструктор – печать – масштаб (переключение режима) – одна страница – две страницы – несколько страниц – масштаб в процентах – закрыть окно просмотра – настройка (поля, формат бумаги) 66
Конструктор отчетов =Now() ="Страница " & [Page] & " из " & [Pages] Заголовок отчета – один раз в начале отчета. Верхний колонтитул – в начале каждой страницы. Область данных – информация из БД. Нижний колонтитул – в конце каждой страницы. Примечание отчета – один раз в конце отчета. 67
Редактирование отчетов Так же, как в конструкторе форм: ЛКМ – выделить элемент – свойства выбранного элемента – вывести (скрыть) панель элементов 68
Макросы 69 Макрос – это набор макрокоманд. Макрокоманда описывает действие, которое надо выполнить: • открытие и закрытие таблиц, отчетов, форм • выполнение запроса • установка значений полей • поиск данных • управление выводом на экран • печать данных • сообщения пользователю • запуск других программ Событие (для запуска макроса) • действия пользователя (клавиатура, мышь) • внутреннее событие (открытие и закрытие формы изменение записи и т. д. )
Простой макрос 70 Конструктор
71 Связи между таблицами Один к одному ( « 1 -1» ) – одной записи в первой таблице соответствует ровно одна записи во второй. Применение: выделение часто используемых данных. 1 1 Код Фамилия Имя Код Год рождения Адрес 1 Иванов Кузьма 1 1992 Суворовский, д. 20, кв. 6 2 Петров Василий 2 1993 Кирочная ул. , д. 30, кв 18 … … Один ко многим ( « 1 - » ) – одной записи в первой таблице соответствует сколько угодно записей во второй. товары прайслист 1 Код Название Код товара Цена 1 Монитор 123 1 10 999 2 Винчестер 345 1 11 999 … …
72 Связи между таблицами Многие ко многим ( « - » ) – одной записи в первой таблице соответствует сколько угодно записей во второй, и наоборот. учителя Код Фамилия Код Название 2 Петров … История 2 Иванов 1 География 3 1 предметы Биология … Реализация – через третью таблицу и две связи « 1 - » . расписание Код учителя Код предмета Класс 1 1 1 9 -А 2 1 2 8 -Б 3 2 3 7 -В 1 Код Фамилия 1 Иванов 2 Петров … Код … 1 Код Название 1 История 2 География 3 Биология …
73 Нормализация базы данных Нормализация – это разработка такой структуры БД, в которой нет избыточных данных и связей. Основные принципы: q Любое поле должно быть неделимым. Фамилия и имя Иванов Петров Иванов Петр Иван … Петров Иван q Не должно быть полей, которые обозначают различные виды … одного и того же, например, товаров. Год Бананы Киви 2006 3200 1200 2007 5600 1500 … 1 Год Код товара Кол-во 2006 1 2007 2 … Код Товар 1 Бананы 1200 2 Киви 1500 …
74 Нормализация базы данных Основные принципы: q Любое поле должно зависеть только от ключа (ключ – это поле или комбинация полей, однозначно определяющая запись). зависит не только от названия товара! товары Код Название Цена 1 Монитор 9 000 р. 2 Винчестер 11 000 р. прайс-лист … q Не должно быть полей, которые могут быть найдены с помощью остальных. Код Товар Цена за тонну Количество, тонн Стоимость 1 Бананы 1200 10 12 000 2 Киви 1500 20 30 000 …


