Лекція1. Принципи роботи з даними. Введення до

advertisement
Принципы работы с данными.
Введение в ADO.NET.
Соединение с базой данных.
Выполнение операций в
соединенной среде
331
Современные технологии
программирования
Понятие «База данных»


База данных – это совокупность связанных данных,
организованных по определенным правилам,
предусматривающим общие принципы описания,
хранения и манипулирования, независимая от
прикладных программ.
Отличительные признаки БД:
База данных хранится и обрабатывается в
вычислительной системе
 Данные в базе данных логически структурированы
(систематизированы)
 База данных включает метаданные, описывающие
логическую структуру БД

2
Система управления базами данных


Система управления базами данных (СУБД) – это
специализированная программа (чаще
комплекс программ), предназначенная для
организации и ведения базы данных
Cовременная СУБД содержит следующие
компоненты:
 ядро
 процессор
языка базы данных
 подсистему поддержки времени исполнения
 сервисные программы
3
Компоненты СУБД
Подсистема времени
исполнения
Программа в машинном
коде
Операторы языка общего пользования
Процессор
языка запросов
Программа во
внутреннем коде
СУБД
Ядро СУБД
Операторы языка управления данными
Операторы языка общего пользования
Физическая
база данных
4
Функции компонентов обработки
баз данных
Приложение
базы данных
Пользователь
1. Создание и обработка
форм
2. Создание и передача
запросов
3. Создание и обработка
отчетов
4. Выполнение логики
приложения
5. Управление приложением
СУБД
1. Создание базы данных
2. Создание таблиц
3. Создание поддерживающих
структур
4. Чтение данных из базы
5. Изменение данных базы
6. Поддержка структур базы
данных
7. Установка правил
8. Управление параллельной
обработкой
9. Обеспечение безопасности
10. Сохранение и извлечение
копий
База данных
1. Данные пользователя
2. Метаданные
3. Индексы и
регулярные структуры
4. Хранимые процедуры
5. Триггеры
6. Метаданные
приложения
5
Проектирование баз данных


Проектирование баз данных – процесс решения
класса задач, связанных с созданием баз данных
Основные задачи:
обеспечение хранения в БД необходимой информации
 обеспечение возможности получения данных по всем
необходимым запросам
 сокращение избыточности и дублирования данных
 обеспечение целостности данных


Основные этапы проектирования баз данных:
Концептуальное (инфологическое) проектирование
 Логическое (даталогическое) проектирование
 Физическое проектирование

6
Язык SQL

SQL является инструментом, предназначенным
для обработки и чтения данных, содержащихся
в компьютерной базе данных
SQL-запрос
База
данных
Система управления
базой данных
Данные
7
SQL

Язык SQL делится на несколько частей:
 операторы
определения данных
 операторы манипуляции данными
 операторы определения доступа к данным
 операторы управления транзакциями
 операторы определения курсора
Ключевое слово
Операторы
Название таблицы
SELECT * FROM Orders
WHERE ORDER_ID > 1024
Ключевое слово
Название столбца
8
Процедурные расширения SQL
популярных СУБД
СУБД
Расширение
InterBase/Firebird PSQL – Procedural SQL
IBM DB2
SQL PL – SQL Procedural Language (расширяет
SQL/PSM)
MS SQL Server/ Transact-SQL
Sybase ASE
MySQL
SQL/PSM – SQL/Persistent Stored Module
(соответствует стандарту SQL:2003)
Oracle
PL/SQL – Procedural Language/SQL (основан на
языке Ada)
PostgreSQL
PL/pgSQL – Procedural Language/PostgreSQL
Structured Query Language (очень похож на Oracle
PL/SQL)
9
Доступ к данным в .NET



ADO.NET – основная модель доступа к данным
для приложений, основанных на Microsoft .NET
Linq – проект Microsoft по добавлению
синтаксиса языка запросов, напоминающего SQL,
в языки программирования платформы .NET
Framework 3.5
ADO.NET Entity Framework – объектноориентированная технология доступа к данным,
является ORM-решением для .NET Framework 3.5
10
ADO.NET Entity Framework



ADO.NET Entity Framework (EF) – объектноориентированная технология доступа к данным,
является object-relational mapping (ORM)
решением для .NET Framework от Microsoft
Возможность взаимодействия посредством LINQ
to Entities и с использованием Entity SQL
Используется ADO.NET Data Services и связка из
Windows Communication Foundation и Windows
Presentation Foundation
11
ADO.NET



ADO.NET представляет собой набор библиотек,
входящих в Microsoft .NET Framework
предназначенных для взаимодействия с
различными хранилищами данных из .NET
приложений
Библиотеки ADO.NET включают все необходимые
классы для подключения к источникам данных
практически произвольного формата, выполнения
запросов к этим источникам и получения
результата
Возможность работы с отсоединенными
источниками данных
12
Компоненты Entity Framework








Модель Entity Data Model (EDM)
Компонент Object Services
Компонент LINQ to Entities
Язык Entity SQL
Поставщик EntityClient
Компонент метаданных ADO.NET
Набор средств, которые создают сопоставления
и разделяемые классы, представляющие
сущности концептуальной модели
Поставщик данных SqlClient
13
Отсоединенная модель программирования

В ADO .NET используется модель доступа – доступ к отсоединенным
данным. При этом соединение устанавливается лишь на то время,
которое необходимо для проведения определенной операции над
базой данных.

Возникает возможность поддержки большего количества
параллельно работающих пользователей за счет постепенного
увеличения количества клиентских компьютеров. Это преимущество
имеет особенно большое значение при создании Web-приложений.
Провайдеры данных ADO.NET



Несмотря на подчеркнутое значение отсоединенной модели
программирования, для извлечения, обновления, вставки и удаления
данных необходимо подключиться к физической базе данных.
Программное обеспечение ADO.NET для подсоединения и
взаимодействия с физической базой данных называется
провайдером данных ADO.NET.
Провайдер данных (data provider) — это управляемый код .NET,
который эквивалентен провайдеру OLEDB или драйверу ODBC.
Провайдер данных состоит из нескольких объектов, которые
реализуют необходимую функциональность в соответствии с
определениями своих классов и интерфейсов.
Провайдеры данных


В настоящее время существует три разных
провайдера данных ADO.NET, каждый из
которых определен в своем собственном
пространстве имен. Для всех объектов в этих
пространствах имен используются следующие
префиксы:
OleDb, Sql и Odbc.
Провайдер данных SqICIient

Оптимизирован для работы с SQL Server версии 7.0 (и выше) и
позволяет добиться более высокой производительности по
следующим причинам:

взаимодействует с базой данных непосредственно через
собственный протокол табличной передачи данных (Tabular Data
Stream — TDS), а не через OLEDB с отображением интерфейса OLEDB
на протокол TDS;

исключает накладные расходы, связанные с использованием СОМслужб взаимодействия;

отсутствуют ненужные функции, которые не поддерживаются в SQL
Server (объекты этого провайдера данных находятся в
пространстве имен System. Data. SqlClient) .
Провайдер данных Oledb



Основан на существующем СОМ-поставщике OLEDB и
COM-службах платформы .NET Framework,
предназначенных для доступа к базе данных.
Этот провайдер данных используется для работы с SQL
Server более ранних версий, чем 7.0. Он позволяет
осуществлять доступ к любой базе данных, для которой
имеется поставщик OLEDB. Объекты этого провайдера
данных находятся в пространстве имен
System. Data. Oledb.
Провайдер данных Odbc



Используется для доступа к базам данных, которые не
имеют собственного провайдера данных .NET или СОМпоставщика OLEDB.
Иногда драйвер ODBC демонстрирует более высокую
производительность, чем драйвер OLEDB, поэтому для
сравнения их фактической производительности при
работе с конкретной базой данных рекомендуется
провести ряд тестов.
Объекты этого провайдера данных находятся в
пространстве имен System. Data. Odbc
Пространства имен

Таким образом уровень включает несколько
пространств имен (групп классов и других
определений), предназначенных для
организации доступа к данным: System.Data,
 System.OleDb
 и System.Data.SQLCIient.
Основные объекты провайдера данных








Connection
Устанавливает соединение с указанным источником данных
Command
Выполняет команду по отношению к источнику данных.
Содержит коллекцию объектов Parameters и методы для выполнения
команд разного типа
DataReader
Считывает данные и возвращает из источника поток данных,
предназначенный только для чтения и только в одном направлении
DataAdapter
Соединяет набор данных DataSet и источник данных для
извлечения и сохранения данных
Иерархия объектов ADO.NET
ADO.NET
DataSet
Connection
Transaction
DataTable
DataAdapter
DataRow
Command
DataColumn
Parameter
DataReader
DataView
Constraint
DataRelation
22
23
Присоединенный режим

Объект Connection представляет соединение с источником данных.

Объект Transaction позволяет осуществлять транзакции.

Объект DataAdapter представляет собой связующее звено между
отсоединенными объектами ADO.NET и базой данных. С его помощью
осуществляется заполнение таких объектов как DataSet или DataTable значениями,
полученными в результате выполнения запроса к базе данных для последующей
автономной работы с ними. Помимо этого, DataAdapter реализует эффективный
механизм выполнения обновления данных, хранимых в базе данных
изменениями, внесенными в данные объектов DataSet и DataTable.

Объект Command представляет запрос к источнику данных, вызов хранимой
процедуры или прямой запрос на возврат содержимого конкретной таблицы.

Объект Parameter позволяет вводить в запрос элемент, значение которого может
быть задано непосредственно перед исполнением запроса.

Объект DataReader предназначен для максимально быстрой выборки и
просмотра возвращаемых запросом записей.
24
Отсоединенный режим

Объект DataSet представляет собой отсоединенный набор данных, который может
рассматриваться как контейнер для объектов DataTable. DataSet позволяет
организовывать внутри себя структуру, полностью соответствующую реальной
структуре таблиц и связей между ними в БД.

Объект DataTable позволяет просматривать данные в виде наборов записей и
столбцов.

Объект DataColumn представляет собой столбец объекта DataTable. Набор же всех
столбов объекта DataTable представляет собой коллекцию Columns.

Объект DataRow представляет собой строку объекта DataTable. Набор всех строк
этого объекта представляет собой коллекцию Rows.

Объект DataView предназначен для организации возможности просмотра
содержимого DataTable различными способами. Это относится к таким операциям,
как сортировка и фильтрация записей.

Объект DataRelation представляет собой описание связей между таблицами
реляционной базы данных. Он предоставляется объектом DataSet и позволяет
организовывать взаимосвязи между таблицами отсоединенного набора данных
объекта DataSet.
Уровни моделей поставщиков
ADO.NET
Приложение .NET
Поставщик SQL Server
для .NET
Поставщик OleDb для
.NET
Поставщик Oracle
для .NET
Поставщик OleDb
База Данных
SQL Server
Источник данных
База данных
Oracle
25
Организация взаимодействия с БД в
ADO.NET




Устанавливается соединение, открывается
подключение к базе данных
Выполняется один или несколько запросов
Осуществляется отключение от источника
данных
При необходимости переноса изменений, из
отсоединенного набора данных в БД, а также
при необходимости просмотра изменений,
внесенных в БД другими пользователями,
осуществляется подключение к источнику
данных, выполняются необходимые действия,
после чего производится отключение от БД
26
Транзакции


Транзакция – это неделимая, с точки зрения
воздействия на СУБД, последовательность
операций манипулирования данными
Свойства ACID:
 Атомарность
(Atomicity)
 Согласованность (Consistency)
 Изоляция (Isolation)
 Долговечность (Durability)
27
Ссылки
28







Введение в платформу .NET Framework и ASP.NET
http://www.intuit.ru/studies/courses/4455/712/lecture/10049
C#. Введение в программирование
http://window.edu.ru/resource/674/41674/files/marchenko.pdf
Учебник по C# http://www.dotsite.spb.ru/Tutorials/CSharp
Visual studio Express
http://www.microsoft.com/visualstudio/rus/products/visual-studio-expressproducts
В. Фаронов. Программирование на языке C#. ПИТЕР, 2007
Разработка приложений на C# в среде Visual Studio
В.М. Снетков http://www.intuit.ru/department/se/csharpvs2005
Обучающие уроки по C#
http://www.programmer-lib.ru/csharp.php
Спасибо за внимание!
331
Современные технологии
программирования
Download