включає в себе деякі правила нормалізації - правила, які перевіряють правильність моделі бази даних. Таким чином, ми бачимо, структура програми, може бути спроектована, вже після того, як буде спроектована, а часто і реалізована, база даних. Це означає, що не завжди розробник програми точно знає структуру бази даних і СУБД, на якій вона реалізована.
Додаток повинен взаємодіяти з базою даних, така взаємодія, як правило, відбувається за допомогою мови SQL. Однак, запити до бази даних пишуться не на чистому SQL, а з використанням спеціальних інтерфейсів для доступу до даних. Одними з таких інтерфейсів є LINQ і ADO.NET. Ці програмні засоби були розроблені компанією Microsoft і є частиною платформи. NET Framework, призначеної для написання звичайних програм і веб-додатків.
Якщо додаток буде написано на мовах. NET (C #, Visual Basic, F # та ін), то зручніше за все буде використовувати ці програмні інтерфейси.
У книзі Сахіла Маліка, великого фахівця в області технологій. NET, наводиться діаграма показана на малюнку 2.5, з якої видно, що великим плюсом ADO.NET є те, що розробнику додатки необов'язково знати структуру і СУБД ( система управління базами даних) бази даних. Тут база даних являє собою просто джерело даних, який зазвичай містить інформацію в таблицях і працює за допомогою мови зразок SQL.
Рисунок 2.5 - Діаграма ADO.NET
З цієї діаграми, опублікованій у книзі цього ж автора, ми бачимо, як реалізована технологія доступу до даних ADO.NET малюнок 2.6:
Малюнок 2.6 - Принцип роботи ADO. NET
. NET надає набір класів, в яких реалізовано взаємодія з постачальниками даних для різних СУБД. Класи ADO.NET діляться на автономні і підключення. Підключення класи вимагають з'єднання з джерелом даних (Connection, Transaction, Command, Parameter). Автономні класи (DataSet, DataTable, DataRow, DataColumn) з'єднання з джерелом даних не вимагають, вони працюють з даними, розміщеними на носіях клієнтської машини. Важливим класом ADO.NET є DataAdapter, який призначений для взаємодії класів, які вимагають поєднання і автономних. Більшість авторів наукової літератури з ADO.NET відносять цей клас до підключеним класам [8].
Другий програмний інтерфейс - LINQ, здебільшого орієнтований на запити - будь то запити, які повертають набір відповідних об'єктів, єдиний об'єкт або підмножина полів з об'єкта або безлічі об'єктів. У LINQ цей повернутий набір об'єктів називається послідовністю (sequence).
LINQ (Language-Integrated Query) - це набір з'явилися в Visual Studio 2008 функцій, який значно розширює можливості синтаксису мов C # і Visual Basic. LINQ надає стандартні, прості у вивченні шаблони для запиту і зміни даних і технології, які можуть бути розширені для підтримки практично будь-якого типу джерела даних. До складу Visual Studio входять збірки постачальників LINQ для використання LINQ з колекціями. NET Framework, базами даних SQL Server, наборами даних ADO.NET і XML-документами.
Сімейство технологій LINQ дозволяє писати запити не тільки до реляційних джерел даних (LINQ to SQL), але і об'єктам (LINQ to Objects), XML-документами (LINQ to XML) та ін
Найбільш важливим класом LINQ to SQL є клас DataContext, який надає широкий доступ до бази даних. У своїй книзі «LINQ мо...