410 likes | 678 Views
Высокоуровневые методы информатики и программирования Лекция 26. Введение в р аботу с базами данных. Упрощенная схема работы программы. Данные программы. Данные программы. Программа. пользователь. Способ хранения данных. Способы хранения данных В файлах собственной структуры
E N D
Высокоуровневые методы информатики и программирования Лекция 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) • Таблица • Набор данных о объектах одного вида • Организованы в виде строк и столбцов • Столбцы (поля, 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) • Устанавливает логические связи между таблицами • Один или более столбец таблицы, которые соответствуют первичному ключу другой таблицы • Обеспечивают ссылочную целостность БД
Связывание данных • Диаграмма показывает таблицы, столбцы, и первичные и внешние ключи 1 ∞ Диаграмма схемы
Связывание данных Books Table Первичные ключи (PK) PK/FK Связь ключей Внешний ключ (FK) Authors Table
Язык 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 * FROMtable1 - вернуть все поля и все записи таблицы table1 SELECTid, nameFROMtable1WHEREid<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
Настройка режима подключения к серверу
Создание соединения с SQL Server • Задание имени сервера – если на компьютере разработчика, то – localhost/sqlexpress • Выбор используемой БД • Проверка соединения с БД