Высокоуровневые методы информатики и программирования Лекция 26 Введение в работу с базами данных Упрощенная схема работы программы Данные программы Данные программы Программа пользователь Способ хранения данных Способы хранения данных – В файлах собственной структуры – В файлах базы данных База данных – специальный способ хранения данных, который имеет: – Структуру данных (модели данных) – сетевые, реляционные, объектные; – Специальные программы доступа к данным в базе данных - СУБД; – Универсальный язык общения с реляционными базами данных – SQL. База данных • Набор файлов (или отдельный файл) включающий – множество разнотипных данных пользователя (описанных в виде схемы базы данных) – программные модули работы с ними. – другую сервисную информацию. Система управления базой данных • Комплекс программ позволяющий – поддерживать состояние базы данных (просмотр, корректировка, архивирование и т.п.) – разрабатывать программы работы с базой данных Почему лучше хранить данные в базе данных? • появляется возможность многократного использования данных разными программами (данные становятся важнее программ) • есть программы для просмотра и корректировки данных (СУБД, в противном случае надо делать это самому). – Microsoft Office Access (для баз данных Access ) – Enterprise Manager (для баз данных SQL Server) • серверная поддержка работы с базами данных – – – – создание копий (обеспечение сохранности) обработка транзакций (выполнение группы операций только целиком) коллективное использование (удаленный доступ) частичное выполнение программы на сервере (хранимые процедуры) • в информационной системе данные общие, используются разными программами (бухгалтерские, отдел кадров, склад, планирование) • возможности выполнения различных операций над данными – выборка требуемых данных – поиска в данных – … Работа с файлами Директор Бухгалтер Продавец Снабженец Программа Программа Программа Программа Файл Файл Файл Файл Локальные приложения Работа с базой данных Директор Бухгалтер Продавец Снабженец Программа Программа Программа Программа СУБД Распределенная программная система База данных Типы СУБД • Файловые СУБД – поддерживают индивидуальное взаимодействие программы с базой данных (например, dBase3, FoxBase, Paradox, Access и др.) • Серверные СУБД – поддерживают коллективную работу множества программ с базой данных по технологии клиент/сервер (например, Oracle, SQL Server и др.). Файловые базы данных Компьютер пользователя Пользователь Файл Программа База данных Серверные базы данных (архитектура клиент/сервер) Компьютеры клиенты Пользователь Компьютер - сервер Программа SQL запросы Программа Программа Сервер БД Типы SQL серверов • • • • • • • • • Oracle (Oracle) SQL Server (Microsoft) Sybase SQL Server IBM DB2 Watcom SQL MySQL server Informix Ingres …. Структура приложений уровня предприятия (enterprise application) Уровень интерфейса пользователя Уровень бизнес-логики Уровень доступа к БД База данных системы Типы организации баз данных • • • • Иерархические Сетевые Реляционные Объектно-ориентированные Реляционные базы данных Таблицы (Tables) • Таблица – Набор данных о объектах одного вида – Организованы в виде строк и столбцов AuthID FirstName LastName 1 Joe Smith 2 Diane Jones • Столбцы (поля, column) – Описывают одно свойство объекта (e.g. FirstName) – Имеют определенный тип (e.g. integer, character, binary) – Могут иметь значение null – отсутствие • Строка (запись, record, row) – Описание одного объекта в таблице – Каждая строка уникальна, не может повторяться Связывание данных (Relating Data) • Таблицы могут быть связаны с помощью первичного/внешнего (primary/foreign) ключей (e.g., a book has an author – книга имеет автора) – Первичный ключ (Primary key ) • Гарантирует уникальность строки • Может включать несколько столбцов • Обеспечивает целостность БД – Внешний (Foreign key) • Устанавливает логические связи между таблицами • Один или более столбец таблицы, которые соответствуют первичному ключу другой таблицы • Обеспечивают ссылочную целостность БД Связывание данных • Диаграмма показывает таблицы, столбцы, и первичные и внешние ключи Books BookID AuthID Title Type 1 ∞ Authors AuthID FirstName LastName Диаграмма схемы Связывание данных Первичные ключи (PK) Books Table BookID AuthID Title Type 1 2 My Life as a DBA Autobiography 2 1 Database Handbook Reference PK/FK Связь ключей AuthID FirstName LastName 1 Joe Smith 2 Diane Jones Authors Table Внешний ключ (FK) Язык SQL (Structured Query Language ) • Язык запросов к реляционным СУБД, включает – операторы определения данных (Data Definition Language, DDL) • добавление таблиц • задание связей • удаление таблиц – операторы манипуляции данными (Data Manipulation Language, DML) • • • • вставка новых данных выборка по заданным условиям обновление имеющихся данных удаление имеющихся данных – операторы управления доступом к данным (Data Control Language, DCL) Оператор Select SELECT * | { [ DISTINCT | ALL ] { Поле данных} [,...] } FROM { таблица [ псевдоним ] } [,...] [ WHERE условие ] [ GROUP BY { поле | Integer } [,...] ] [ ORDER BY { поле | Integer [ ASC|DESC ] } [,...] ] Оператор Select SELECT * FROM table1 - вернуть все поля и все записи таблицы table1 SELECT id, name FROM table1 WHERE id<10 - вернуть поля id и name из таблицы table1 для которых значение поля id меньше 10. Пример выборки данных из БД SELECT * FROM Сhilds SELECT Name, Year, Address FROM Childs SELECT Name, Year, Address FROM Childs WHERE ClassId = 2 Изменение данных в БД • Вставка (Insert), изменение (update) и удаление (delete) данных INSERT INTO Childs (Name, Year, Address) VALUES (‘Peterson J.’, 1986, ‘Tomsk Lenina, 30, 213’) UPDATE childs SET id = 27 WHERE year = 1997 DELETE FROM Childs WHERE ID = 5 Хранимые процедуры (Stored Procedures) • Последовательность SQL операторов которые выполняются в базе данных • Не включены в стандарт SQL • Обеспечивают лучшую производительность • Могут контролировать доступ к данным • Могут принимать параметры • Могут возвращать данные – Выходные параметры (Output parameters) – Возвращаемое значение (Return value) – Результирующая выборка (Result set) Пример хранимой процедуры CREATE PROCEDURE CustOrderHist @CustomerID nchar(5) AS SELECT ProductName, Total=SUM(Quantity) FROM Products P, [Order Details] OD, Orders O, Customers C WHERE C.CustomerID = @CustomerID AND C.CustomerID = O.CustomerID AND O.OrderID = OD.OrderID AND OD.ProductID = P.ProductID GROUP BY ProductName Объектно-реляционное связывание (проекция) • object-relational mapping (O/RM, ORM, and O/R mapping). • технология программирования для преобразования данных между несовместимыми системами типов в реляционной базе данных и объектноориентированных языках программирования, что создает эффект «виртуальной объектной базы данных», которая может использоваться в языке программирования. Существуют как коммерческие, так и свободные пакеты для выполнения объектнореляционного связывания (en. Wikipedia.org). SQL Server Express • Сервер для обучения и разработки • Программа установки - SQLEXPR.EXE • Программа управления сервером Server Management Studio Express SQLServer2005_SSMSEE.msi Настройка работы Visual Studio c SQL Server Express • SQL Server Configuration Manager – запуск – протоколы взаимодействия • SQL Server Surface Area Configuration – разрешение на удаленное использование • Visual Studio – <сервер>\sqlexpress Проверка выполнения сервера Задание протоколов клиентов Задание протоколов сервера SQL Server Management Studio Express Утилита настройки удаленных соединений Задание удаленного соединения с SQL Server Запуск SQLBrowser Настройка Брандмауэра Настройка Брандмауэра Настройка режима подключения к серверу Создание соединения с SQL Server 1. Задание имени сервера – если на компьютере разработчика, то – localhost/sqlexpress 2. Выбор используемой БД 3. Проверка соединения с БД