12Базы данных и СУБД.ppt
- Количество слайдов: 47
БАЗЫ ДАННЫХ (БД) и СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ (СУБД) ОБЗОР
Систематизация и хранение информации В каком виде может храниться информация, чтобы с ней было удобно работать? Информационной системой (ИС) можно считать совокупность любой связанной структурированной информации. Примеры ИС: расписание поездов, книга регистрации данных о заказах. ИС может храниться как в «бумажном» варианте, так и в памяти компьютера. Объект Человек Элемент ИС, информация о котором сохраня ется в ней Атрибуты объекта Свойства, характеризующие объект Фамилия Имя Отчество Адрес База данных - это информационная система, которая хранится в электронном виде.
Классификация БД n n n По технологии обработки данных БД разделяются на: Централизованные (хранятся в памяти одной вычислительной системы) Распределенные (состоит из нескольких, возможно пересекающихся, дублирующих частей, хранится в различных ЭВМ) По способу доступа: БД с локальным доступом БД с удаленным (сетевым) доступом
Классификация (продолжение) n n n Системы централизованных БД с сетевым доступом могут иметь архитектуру: Файл-сервер (БД хранится на сервере, обработка ведется на рабочих станциях, на которые передаются файлы с БД) Клиент-сервер (БД хранится и обрабатывается на сервере, на рабочие станции передаются только извлеченные данные)
Виды моделей данных n n Модель данных – это совокупность структуры данных и операций обработки СУБД (система управления базой данных) основывается на использовании иерархической, сетевой или реляционной модели данных или их комбинации.
Иерархическая модель данных А В 2 В 1 С 2 С 3 Уровень 1 В 3 С 4 С 5 Уровень 2 С 6 Уровень 3 Такая база данных может например хранить данные о студентах (уровень 3), которые учатся в группах (уровень 2) и на факультете ФЗОи. Э (уровень 1)
Сетевая модель данных Иванов Петров Сидоров Сергеев Некрасова Кириллов Студенты Павлова Руководители Такая база данных может хранить сведения о студентах, занимающихся НИРС, и их руководителях. Каждый студент может выполнять не одну научно-иссл. работу, а каждый руководитель НИРС занимается не с одним студентом.
Реляционная модель данных (relation - отношение) Базы данных, организованные в виде нескольких связанных таблиц называются реляционными Каждая строка таблицы называется записью, записью каждый столбец - полем поля Фамилия Пол Дата рождения Зарплата Аванс Аксененко Ж 12/02/79 960, 00 р 300, 00 р Бережная Ж 01/12/65 1020, 00 р 400, 00 р Савельев М 23/03/50 820, 00 р 250, 00 р Тарасов М 14/07/70 1150, 00 р 500, 00 р записи
Свойства таблицы (БД) n n n Каждый элемент таблицы – один элемент данных Все данные в столбце таблицы – однородные, одинакового типа Каждый столбец имеет уникальное имя Одинаковые строки в таблице отсутствуют Порядок следования строк и столбцов произвольный
Типы полей в MS Access n n n n n Текстовый (буквы, цифры, знаки препинания и пр. ) Числовой (целые, вещественные числа) Дата/Время Гиперссылка Логический ( «истина» или «ложь» ) Денежный OLE-объект (рисунки, звук, видео) MEMO-поле (символьное поле длиной до 65535) Счетчик (целое число)
Системы управления базами данных (СУБД) Для взаимодействия пользователя с БД используются СУБД. Возможности СУБД: - набор средств для поддержки таблиц, отношений между ними; - развитый пользовательский интерфейс (ввод информации, поиск информации, представление информации в текстовом или графическом виде) - средства программирования. Примеры СУБД: Языки программирования, СУБД Microsoft Access содержащие средства для работы с БД: БД Visual Fox. Pro Oracle Paradox Delphi Visual Basic Visual C++
Ключевые поля Ключевым полем (ключом) называется такой элемент, по которому можно определить значения других полей. Ключ однозначно определяет запись. Различают первичный и альтернативный ключи. Первичный ключ – это поле, которое единственным образом идентифицирует строку в таблице (запись), это основной ключ. В таблице может быть только один первичный ключ. Альтернативный ключ – это поле или группа полей, не совпадающих с первичным ключом и уникально идентифицирующих каждую строку в таблице. В таблице может быть несколько альтернативных ключей. Ключи бывают также внешними, простыми и составными. Личный номер сотрудника Фамилия Серия и номер паспорта Категория Должность 102 Аксененко XHII 234351 2 Бухгалтер 98 Бережная AHI 234512 1 Продавец
Типы отношений В реляционной БД между таблицами возможны четыре типа отношений: n n «один к одному» «один ко многим» «многие к одному» «многие ко многим»
«Один к одному» 1 Код сотрудника Фамилия Зарплата Адрес Аванс Телефон Год рождения Код сотрудника Фамилия Адрес Телефон Год рождения 101 Аксененко Садовая, 56 -5 324155 1980 103 Соколов Газетный, 41 -71 112345 1975 106 Савченко Советская, 4454 342256 1958 109 Григорьев Островского, 34 222245 1978 Код сотрудника Зарплата Аванс 102 960, 00 р 300, 00 р 98 1020, 00 р 400, 00 р 178 820, 00 р 250, 00 р 23 1150, 00 р 500, 00 р
«Один ко многим» «Многие к одному» Код сотрудника ∞ 1 Фамилия Код сотрудника Адрес Дата выполнения работы Телефон Количество часов Год рождения Код сотрудника – внешний ключ Стоимость работы Код сотрудника Фамилия Адрес Телефон Год рождения 101 Аксененко Садовая, 56 -5 324155 1980 103 Соколов Газетный, 41 -71 112345 1975 106 Савченко Советская, 44 -54 342256 1958 109 Григорьев Островского, 34 222245 1978 Код сотрудника Дата Выполнения работы Количество часов Стоимость работы 101 01. 03. 02 8 150 101 04. 03. 02 8 160 103 05. 03. 02 12 85 103 10. 03. 02 14 240
«Многие ко многим» Код поставщика Код покупателя Товар Код товара 1 ∞ Минимальная партия 1 Код товара 2 Цена Дата заказа 1 ∞ Код товара 2 Количество товара Срок поставки Код поставщика Товар Цена Минимальная партия Сроки поставки (в днях) 10 Сок яблочный 27, 5 1000 10 10 Сок вишневый 28 1000 10 15 Сок яблочный 25, 6 2000 12 15 Сок вишневый 28, 5 2000 12 5 Сок вишневый 27 500 5 Код покупате ля Товар Дата заказа Количеств о товара 5 Сок яблочный 12. 03. 02 25 6 Сок яблочный 15. 03. 02 25 7 Сок яблочный 08. 03. 02 200 5 Сок вишневый 09. 03. 02 100
Нормализация реляционных баз данных n Целью нормализации реляционной базы данных является устранение недостатков структуры базы данных, приводящих к избыточности, которая, в свою очередь, потенциально приводит к различным аномалиям и нарушениям целостности данных.
Первая нормальная форма n n Переменная отношения находится в первой нормальной форме (1 НФ) тогда и только тогда, когда в любом допустимом значении отношения каждый его кортеж содержит только одно значение для каждого из атрибутов. Другими словами, каждый атрибут отношения должен хранить одноединственное значение и не являться ни списком, ни множеством значений.
Пример: таблица «Контрагенты» Наимен ование Город Адрес Эл. почт а WWW Поршне вой з-д Владим ир Ул. 2 -я info@plu www. plu Кольцев nger. ru ая, 17 Вид Контакт лица Пост авщи к Иванов И. И. , зам. дир. , тел (3254)7615 -95 Петров П. П. , нач. отд. сбыта, тел (3254)76 -15 -35 ООО Вымпел Курск Ул. Гоголя, 25 vymp@ mail. ru ИЧП Альфа Владим ир Ул. Пушк alpha@li инская, st. ru 5, оф. 225 Клие нт Сидоров С. С. , директор, тел. (7634)66 -65 -38 Клие нт Васильев В. В. , директор, тел (3254)74 -57 -45
Очевидно, что в данном случае атрибут "конт-лица" не является атомарным, поскольку в нем попадаются списки из нескольких лиц. Разделим эти кортежи таким образом, чтобы каждый кортеж содержал данные только об одном лице: Наиме нован ие Гор од Адрес Поршн Вла евой з дим -д ир Ул. 2 -я Кольце вая, 17 info@pl www. plun Постав unger. ru щик u Иванов И. И. , зам. дир. , тел (3254)76 -15 -95 Поршн Вла евой з дим -д ир Ул. 2 -я Кольце вая, 17 info@pl www. plun Постав unger. ru щик u Петров П. П. , нач. отд. сбыта, тел (3254)76 -15 -35 ООО Вымп ел Ул. Гоголя, 25 vymp@ mail. ru Клиент Сидоров С. С. , директор, тел. (7634)66 -65 -38 Ул. Пуш alpha@ кинская, list. ru 5, оф. 225 Клиент Васильев В. В. , директор, тел (3254)74 -57 -45 Кур ск ИЧП Вла Альфа дим ир Эл. поч та WWW Вид Контакт лица
Наиме нован ие Город Адрес Эл. поч та WWW Вид Должн ость ФИО Код Телеф города он Поршн Влади евой з мир -д Ул. 2 -я Кольц евая, 17 info@p www. p Поста lunger. вщик ru ru зам. дир Ивано в И. И. 3254 76 -1595 Поршн Влади евой з мир -д Ул. 2 -я Кольц евая, 17 info@p www. p Поста lunger. вщик ru ru нач. отд. сбыта Петро в П. П. 3254 76 -1535
Вторая нормальная форма n Переменная отношения находится во второй нормальной форме тогда и только тогда, когда она находится в первой нормальной форме, и при этом все неключевые атрибуты зависят только от ключа целиком, а не от какой-то его части.
Пример Наимен ование Город Адрес Эл. поч та WWW Вид Поршн евой зд Влади мир Ул. 2 -я Кольце вая, 17 info@pl unger. r u www. pl unger. r u Постав щик зам. дир Иванов 76 -15 И. И. 95 Поршн евой зд Влади мир Ул. 2 -я Кольце вая, 17 info@pl unger. r u www. pl unger. r u Постав щик нач. отд. сбыта Петров П. П. 76 -1535 ООО Вымпе л Курск Ул. vymp@ Гоголя, mail. ru 25 Клиент директ ор Сидор ов С. С. 66 -6538 ИЧП Альфа Влади мир Ул. Пуш кинска я, 5, оф. 225 Клиент директ ор Василь 74 -57 ев В. В. 45 alpha@ list. ru Должн ость ФИО Телеф он
Город Код города Владимир 3254 Курск 7634
Третья нормальная форма n n Переменная отношения находится в третьей нормальной форме тогда и только тогда, когда она находится во второй нормальной форме, и отсутствуют транзитивные функциональные зависимости неключевых атрибутов от ключевых. Другими словами, факты, хранимые в таблице, должны зависеть только от ключа.
В нашем случае присутствует функциональная зависимость между атрибутами "Ф. И. О. ", "Должность" и "Тел. " Очевидно, что на предприятии некий человек занимает определенную должность и располагает определенным рабочим телефоном. Обратное в общем случае неверно - на предприятии может быть несколько аналогичных штатных единиц, например, менеджеры по сбыту, и несколько человек могут пользоваться одним рабочим телефоном. Таблица 1 хранит факты, относящиеся только к предприятию Наимен ование Город Адрес Эл. почт а WWW Вид Поршн Влади евой з- мир д Ул. 2 -я info@p www. pl Поста Кольц lunger. r вщик евая, ru u 17 ООО Курск Вымпе л Ул. vymp Гоголя, @mail. 25 ru Клиент ИЧП Влади Альфа мир Ул. Пу alpha шкинск @list. r ая, 5, u Клиент
Вторая таблица хранит факты, относящиеся только к конкретному лицу, исполняющему некоторые обязанности на данном предприятии: Наименов ание Город ФИО Поршневой з-д Владимир зам. дир Иванов И. И. 76 -15 -95 Поршневой з-д Владимир нач. отд. сбыта Петров П. П. 76 -15 -35 ООО Вымпел Курск директор Сидоров С. С. 66 -65 -38 директор Васильев В. В. 74 -57 -45 ИЧП Альфа Владимир Должност ь Телефон
Третья таблица хранит факты, связанные с телефонными кодами городов Город Код города Владимир 3254 Курск 7634
Создание таблиц в MS Access В Access используются три способа создания таблиц: - путем ввода данных (by entering data), - с помощью Конструктора таблиц (in Design view) - с помощью Мастера создания таблиц (by using wizard). Для каждого из этих способов существует специальный ярлык новых объектов в списке таблиц (рис. 2. 3). Если вы создали новый файл базы данных, то, кроме этих ярлыков, в списке таблиц больше ничего нет.
Рис. 2. 3. Ярлыки новых объектов в списке таблиц пустой базы данных
Создание таблицы с помощью Конструктора таблиц В режиме Конструктора таблицы создаются путем задания имен полей, их типов и свойств. Рис. Окно новой таблицы в режиме Конструктора
Создание таблицы Сотрудники
Создание таблицы Оплата Ввести данные в созданную таблицу можно, открыв таблицу в режиме Таблицы.
Связывание таблиц на схеме данных Чтобы открыть схему данных, необходимо выполнить команду Сервис, Схема данных. По умолчанию схема будет содержать все таблицы со связями. Добавить необходимые таблицы. Установить новые связи - выбрать команду Связи, Изменить связь из главного меню Access. Эта команда появляется в меню, когда открыто окно Схема данных. Когда создается новая связь, можно также воспользоваться кнопкой Новое и в окне Создание ввести имена связываемых таблиц и имена полей, используемых для связи. Нажать кнопку ОК.
Схема данных
Заполнение таблицы данными Для заполнения таблицы данными следует открыть ее в режиме таблицы. Можно также заполнять таблицы с помощью форм.
Сортировка, поиск и фильтрация данных Данные, которые хранятся в таблицах базы данных, могут быть эффективно использованы только при условии если существуют простые и доступные средства поиска нужной информации. Таблицы могут содержать огромное число записей, и хорошая СУБД должна обеспечить возможность быстро и легко найти и отобрать среди них нужные. Сортировка данных По умолчанию, когда таблица открывается в режиме Таблицы, она упорядочивается по значению ключевого поля. Если ключевое поле для таблицы не определено, записи выводятся в порядке их ввода в таблицу. Если нужно отсортировать записи по значению другого поля, достаточно установить курсор на любую строку соответствующего столбца и нажать одну из кнопок на панели инструментов: Сортировка по возрастанию (Sort Ascending) или Сортировка по убыванию (Sort Descending). Другой способ выполнения этой операции: щелкнуть правой кнопкой мыши по любой строке нужного столбца и выбрать из контекстного меню (рис. 2. 55) соответствующую команду. Таким образом можно упорядочить записи по любому столбцу таблицы. Ограничения существуют только на тип данных, которые можно упорядочивать — нельзя сортировать значения полей типа MEMO, гиперссылки или объекты OLE.
Поиск и замена данных В режиме Таблицы предусмотрены возможности поиска данных по образцу либо в конкретном поле, либо во всей таблице. Если известно, в каком столбце нужно вести поиск, выделить этот столбец (достаточно поместить курсор в любое поле этого столбца). Нажать кнопку Найти на панели инструментов Режим таблицы и открыть вкладку Поиск или выполнить команду меню Правка, Найти. Появится диалоговое окно Поиск и замена. Остальные параметры в окне можно изменить или оставить так, как они установлены по умолчанию: значение в поле со списком Поиск в, определяющее место поиска, по умолчанию содержит название выбранного столбца; значение в поле со списком Совпадение определяет один из трех вариантов совпадения образца со значением поля — С любой частью поля, Поля целиком, С начала поля; поле со списком Просмотр, в котором можно задать направление поиска: Все, Вверх, Вниз; флажок С учетом регистра позволяет при поиске учитывать начертание букв — прописные или строчные; флажок С учетом формата полей позволяет выполнять поиск данных в указанном формате отображения.
Фильтрация данных В Microsoft Access предусмотрено четыре способа отбора записей с помощью фильтров: фильтр по выделенному фрагменту, обычный фильтр, поле Фильтр для (Filter For) и расширенный фильтр. Фильтр по выделенному фрагменту, обычный фильтр и поле Фильтр для (Filter For) являются очень простыми способами отбора записей, причем самым простым является фильтр по выделенному фрагменту — он позволяет найти все записи, содержащие определенное значение в выбранном поле. Обычный фильтр используется для отбора записей по значениям нескольких полей. Поле Фильтр для (Filter For) используется, если фокус ввода находится в поле таблицы и нужно ввести конкретное искомое значение или выражение, результат которого будет применяться в качестве условия отбора. Для создания сложных фильтров следует использовать окно расширенного фильтра. Набор записей, которые были отобраны в процессе фильтрации, называется результирующим набором. Чтобы использовать фильтр по выделенному фрагменту, необходимо: В поле объекта в режиме Таблицы найти значение, которое должны содержать записи, включаемые в результирующий набор применении фильтра. . Выделить это значение и нажать кнопку Фильтр по выделенному (Filter by Selection) на панели инструментов Режим таблицы (Table Datasheet).
Создание запроса в режиме конструктора n Запрос – это требование на извлечение данных из таблиц БД, на выполнение вычислений над данными, на внесение изменений в базу данных.
Пример создания запроса на выборку n Запрос на выборку – наиболее часто используемый тип запроса. Его результатом является динамическая таблица, которая может быть просмотрена, проанализирована.
Создание запроса в режиме конструктора
Результат запроса – динамическая таблица
Запрос с параметром – это запрос, который при выполнении отображает в собственном диалоговом окне приглашение ввести интересующее пользователя значение критерия отбора записей
Запрос с параметром в работе
Пример создания итогового запроса
n n n Базовые понятия реляционных баз данных Основными понятиями реляционных баз данных являются тип данных, домен, атрибут, кортеж, первичный ключ и отношение. Для начала покажем смысл этих понятий на примере отношения СОТРУДНИКИ, содержащего информацию о сотрудниках некоторой организации: n n n n n 4. 1. 1. Тип данных Понятие тип данных в реляционной модели данных полностью адекватно понятию типа данных в языках программирования. Обычно в современных реляционных БД допускается хранение символьных, числовых данных, битовых строк, специализированных числовых данных (таких как "деньги"), а также специальных "темпоральных" данных (дата, время, временной интервал). Достаточно активно развивается подход к расширению возможностей реляционных систем абстрактными типами данных (соответствующими возможностями обладают, например, системы семейства Ingres/Postgres). В нашем примере мы имеем дело с данными трех типов: строки символов, целые числа и "деньги". 4. 1. 2. Домен Понятие домена более специфично для баз данных, хотя и имеет некоторые аналогии с подтипами в некоторых языках программирования. В самом общем виде домен определяется заданием некоторого базового типа данных, к которому относятся элементы домена, и произвольного логического выражения, применяемого к элементу типа данных. Если вычисление этого логического выражения дает результат "истина", то элемент данных является элементом домена. Наиболее правильной интуитивной трактовкой понятия домена является понимание домена как допустимого потенциального множества значений данного типа. Например, домен "Имена" в нашем примере определен на базовом типе строк символов, но в число его значений могут входить только те строки, которые могут изображать имя (в частности, такие строки не могут начинаться с мягкого знака). Следует отметить также семантическую нагрузку понятия домена: данные считаются сравнимыми только в том случае, когда они относятся к одному домену. В нашем примере значения доменов "Номера пропусков" и "Номера групп" относятся к типу целых чисел, но не являются сравнимыми. Заметим, что в большинстве реляционных СУБД понятие домена не используется, хотя в Oracle V. 7 оно уже поддерживается. 4. 1. 3. Схема отношения, схема базы данных Схема отношения - это именованное множество пар {имя атрибута, имя домена (или типа, если понятие домена не поддерживается)}. Степень или "арность" схемы отношения - мощность этого множества. Степень отношения СОТРУДНИКИ равна четырем, то есть оно является 4 -арным. Если все атрибуты одного отношения определены на разных доменах, осмысленно использовать для именования атрибутов имена соответствующих доменов (не забывая, конечно, о том, что это является всего лишь удобным способом именования и не устраняет различия между понятиями домена и атрибута). Схема БД (в структурном смысле) - это набор именованных схем отношений. 4. 1. 4. Кортеж, отношение Кортеж, соответствующий данной схеме отношения, - это множество пар {имя атрибута, значение}, которое содержит одно вхождение каждого имени атрибута, принадлежащего схеме отношения. "Значение" является допустимым значением домена данного атрибута (или типа данных, если понятие домена не поддерживается). Тем самым, степень или "арность" кортежа, т. е. число элементов в нем, совпадает с "арностью" соответствующей схемы отношения. Попросту говоря, кортеж - это набор именованных значений заданного типа. Отношение - это множество кортежей, соответствующих одной схеме отношения. Иногда, чтобы не путаться, говорят "отношение-схема" и "отношение-экземпляр", иногда схему отношения называют заголовком отношения, а отношение как набор кортежей - телом отношения. На самом деле, понятие схемы отношения ближе всего к понятию структурного типа данных в языках программирования. Было бы вполне логично разрешать отдельно определять схему отношения, а затем одно или несколько отношений с данной схемой. Однако в реляционных базах данных это не принято. Имя схемы отношения в таких базах данных всегда совпадает с именем соответствующего отношения-экземпляра. В классических реляционных базах данных после определения схемы базы данных изменяются только отношенияэкземпляры. В них могут появляться новые и удаляться или модифицироваться существующие кортежи. Однако во многих реализациях допускается и изменение схемы базы данных: определение новых и изменение существующих схем отношения. Это принято называть эволюцией схемы базы данных. Обычным житейским представлением отношения является таблица, заголовком которой является схема отношения, а строками - кортежи отношения-экземпляра; в этом случае имена атрибутов именуют столбцы этой таблицы. Поэтому иногда говорят "столбец таблицы", имея в виду "атрибут отношения". Когда мы перейдем к рассмотрению практических вопросов организации реляционных баз данных и средств управления, мы будем использовать эту житейскую терминологию. Этой терминологии придерживаются в большинстве коммерческих реляционных СУБД. Реляционная база данных - это набор отношений, имена которых совпадают с именами схем отношений в схеме БД. Как видно, основные структурные понятия реляционной модели данных (если не считать понятия домена) имеют очень простую интуитивную интерпретацию, хотя в теории реляционных БД все они определяются абсолютно формально и точно.
12Базы данных и СУБД.ppt