ЛЕКЦИЯ № 1 (9) Тема: БАЗЫ ДАННЫХ План 1. 2. 3. 4. 5. Основные понятия СУБД. Классификация СУБД Архитектура информационных систем Модели данных Основные понятия реляционной модели данных
Основные понятия • Информационная система (ИС) — это взаимосвязанная совокупность средств, методов и персонала, используемых для хранения, обработки и выдачи информации в интересах достижения поставленной цели. • Для функционирования любой ИС необходимы компоненты: 1. База данных (БД) 2. Система управления базами данных (СУБД) 3. Приложения 4. Пользователи 5. Технические средства
• База данных представляет собой совокупность структурированных данных, хранимых в памяти вычислительной системы и отображающих состояние объектов и их взаимосвязей в рассматриваемой предметной области. • БД обязательно содержит данные и метаданные. Данные — это данные пользователя или предприятия, использующего систему, и связанные с его деятельностью. Например, данные о продукции, счетах, коровах. • Метаданные — это данные о данных или схема базы данных, которая описывает структуру обычных данных и дает о них фундаментальную информацию. Обычно мы не видим эту схему, потому что она спрятана от нас программными средствами.
• СУБД – это комплекс языковых и программных средств, предназначенный для создания, ведения и совместного использования БД многими пользователями.
• Банк данных совокупность баз данных для централизованного накопления и коллективного использования однородных данных в какой-либо области человеческой деятельности. • Администратор базы данных – лицо или группа лиц, отвечающих за проектирование, создание, эффективное использование и сопровождение баз данных.
Пользователи БД Пользователей можно разделить на три большие группы: 1. 2. 3. прикладные программисты; пользователи; администраторы. • Прикладные программисты — отвечают за написание бизнес-приложений, использующих базу данных (например, приложения по автоматизации бухгалтерского учета, маркетинга). Все эти функции выполняются через соответствующий запрос к СУБД. • Конечные пользователи (например, менеджер, бухгалтер) — работают с информационной системой непосредственно через рабочую станцию или терминал. Пользователь получает доступ к БД, используя одно из приложений.
• Техническим специалистом, ответственным за реализацию решений администратора данных, является администратор БД. Его работа заключается в создании самой БД и техническом контроле, необходимом для осуществления решений администратора данных. Между БД (т. е. данными) и пользователями располагается уровень программного обеспечения — система управления базой данных. Все запросы пользователей на доступ к БД обрабатываются СУБД.
Классификация СУБД • • Полнофункциональные СУБД; Серверы БД; Клиенты БД; Средства разработки программ работы с БД
• Полнофункциональные СУБД позволяют с помощью команд меню выполнять основные действия с БД: создавать и модифицировать структуру таблиц, вводить данные, формировать запросы, разрабатывать отчеты, выводить их на печать и т. д. MS Access, MS Fox. Pro, Paradox R: BASE • Серверы БД предназначены для организации центров обработки данных в сетях ЭВМ. MS SQL Server (Microsoft), Interbase (Borland), SQLBase Server (Gupta), Intelligent Database (Ingress) • В роли клиентских программ для серверов БД могут использоваться различные программы: ПФСУБД, электронные таблицы, текстовые процессоры, программы электронной почты и т. д.
По характеру использования СУБД делят на персональные и многопользовательские. • Персональные СУБД обычно обеспечивают возможность создания персональных БД и недорогих приложений, работающих с ними. К персональным СУБД относятся Visual Fox. Pro, Paradox, Clipper, d. Base, Access. • Многопользовательские СУБД включают в себя сервер БД и клиентскую часть и как правило могут работать в неоднородной вычислительной среде (с разными типами ЭВМ и ОС). К ним относятся Oracle, Informix.
Языки СУБД • Язык описания данных - SQL (Structured Query Language) – структурированный язык запросов • Язык манипулирования данными - QBE (Query By Example) – язык запросов по образцу, SQL (Structured Query Language) – структурированный язык запросов
МОДЕЛИ ДАННЫХ • Сетевая модель набор узлов, в котором каждый может быть связан с каждым. • Иерархическая модель в виде многоуровневой структуры • Реляционная модель набор взаимосвязанных таблиц 12
Иерархические БД Иерархическая модель БД представляет собой совокупность элементов, расположенных в порядке их подчинения от общего к частному и образующих перевернутое дерево. Данная модель характеризуется такими понятиями, как уровни, узлы, связи. Принцип работы модели таков, что несколько узлов более низкого уровня соединяются с одним узлом более высокого уровня. Узел – информационная модель элемента, находящегося на данном уровне иерархии.
Свойства иерархической модели данных: • Несколько узлов низшего уровня связано только с одним узлом высшего уровня; • Иерархическое дерево имеет только одну вершину (корень), не подчиненную никакой другой вершине; • Каждый узел имеет свое имя (идентификатор); • Существует только один путь от корневой записи к более частной записи данных (тип отношений один ко многим).
Пример иерархической модели Рабочий стол Мои документы Моя музыка Мои рисунки Сетевое окружение Мой компьютер Мои видеозаписи A: С: D: Учебники Задания Рисунки
Иерархические БД Прайс-лист: Кей Продавец (уровень 1) Мониторы Товар Принтеры (уровень 2) Sony Изготовитель Phillips Samsung (уровень 3) Модель S 93 X 93 B Цена $306 $312 (уровень 4) (уровень 5) 16
Иерархические БД Приведение к табличной форме: Продавец Товар Изготовитель Модель Цена Кей Монитор Sony S 93 $306 Кей Монитор Sony X 93 B $312 Key Монитор Phillips 190 B 5 CG $318 Кей Монитор Samsung Sync. Master 193 P $452 … § дублирование данных § при изменении адреса фирмы надо менять его во всех строках § нет защиты от ошибок ввода оператора (Кей – Key), лучше было бы выбирать из списка 17
Сетевые БД Сетевая БД – это набор узлов, в которых каждый может быть связан с каждым (схема дорог). Старые Васюки Средние Васюки А Г Васюки Новые Васюки Б В § лучше всего отражает структуру некоторых задач (сетевое планирование в экономике) § сложно хранить информацию о всех связях § запутанность структуры ! Можно хранить в виде таблицы, но с дублированием данных! 18
Реляционные БД 1970 -е гг. Э. Кодд, англ. relation – отношение. Реляционная база данных – это набор простых таблиц, между которыми установлены связи с помощью ключевых полей. 19
Структурные элементы реляционной базы данных • Поле – это неделимая единица информации; • Запись – совокупность логически связанных полей; • Таблица – совокупность записей одной структуры.
Структура таблицы должна быть спроектирована и создана перед вводом данных в таблицу. Она включает следующую информацию: • Имя таблицы – имя, по которому к таблице можно обратиться; • Поля таблицы – категории информации, сохраненной в таблице. Каждое поле имеет свойства: имя, тип данных, размер.
Структура таблицы Таблица Сотрудники Табельный номер Фамилия Имя Отчество 122 Свиридов Павел Анатольевич Маркетинга 124 Морозов Николай Иванович 125 Кузнецов Михаил Васильевич Доставка Запись 1 - 122 Свиридов Павел Анатольевич Маркетинг Запись 2 - 124 Морозов Николай Иванович Склад Запись 3 - 125 Кузнецов Михаил Васильевич Доставка Отдел Склад Поля таблицы • Табельный номер • Фамилия Имя Отчество • Отдел
Свойства реляционной модели • Каждое поле имеет уникальное имя; • Одинаковые записи в таблице отсутствуют; • Порядок записей в таблице может быть произвольным; • Каждое поле таблицы является однородным, т. е. имеет один тип.
Ключевое поле (ключ таблицы) Ключевое поле (ключ или первичный ключ) – это поле (или комбинация полей), которое однозначно определяет запись. В таблице не может быть двух записей с одинаковым значением ключа. Могут ли эти данные быть первичным ключом? • фамилия • имя • номер паспорта • номер дома • регистрационный номер автомобиля • город проживания • дата выполнения работы • номер зачетки 24
Назначение ключей Ключи обычно используются для достижения следующих целей: • исключения дублирования значений в ключевых атрибутах (остальные атрибуты в расчет не принимаются); • упорядочения записей; • ускорения работы с записями; • организации связывания двух или более таблиц в единую базу данных.
Для чего устанавливают связь между таблицами? 1. Многие СУБД при связывании таблиц автоматически выполняют контроль целостности вводимых в базу данных в соответствии с установленными связями. Это повышает достоверность хранимой в БД информации. 2. Установление связи между таблицами облегчает доступ к данным. Связывание таблиц при выполнении таких операций, как поиск, просмотр, редактирование, выборка и подготовка отчетов, обычно обеспечивает возможность обращения к произвольным полям связанных записей.
Типы связей между таблицами Один к одному ( « 1 -1» ) – одной записи в первой таблице соответствует ровно одна запись во второй. 1 Код 1 Фамилия Имя Код Год рожд. Адрес 1 Иванов Кузьма 1 1992 Суворовский, д. 20, кв. 6 2 Петров Василий 2 1993 Кирочная, д. 30, кв 18 … … Один ко многим ( « 1 - » ) – одной записи в первой таблице соответствует сколько угодно записей во второй. 1 товары Код Название 1 Монитор 2 Винчестер … прайс-лист Произ водит ель Код товара Sony 1 10 999 LG 1 11 999 … Цена 27
ПРИМЕР РЕЛЯЦИОННОЙ БАЗЫ ДАННЫХ «РЕАЛИЗАЦИЯ ТОВАРОВ»
Реляционные БД § нет дублирования информации; § механизм транзакций (операций с БД): любые изменения вносятся в базу только тогда, когда они полностью завершены; § поддержка целостности базы данных, т. е. непротиворечивом состоянии; в 29