Databases basic

advertisement
Высокоуровневые методы
информатики и
программирования
Лекция 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. Проверка соединения с БД
Download