28. C-sharp 24 25-02-2014

Created Tuesday 25 February 2014

  1. Читать в учебниках
    1. Subquery
    2. Subtotals (Group by) — группировочные запросы, в которых используются группировочные функции типа count, max, min, sum ...
  2. В рассылке фирмы RedGate много статей о базах данных (оптимизация и т.д.)
  3. Базы данных следует проектировать, опираясь на требования — какие действия нужны от базы данных
  4. Провайдеры — для каждой СУБД есть провайдер (адаптер, драйвер..), умеющий обрабатывать запросы SQL и преобразовывать их в программный код самой СУБД
    1. ODBC (Open DataBase Connectivity) drivers — двоичный код, не .NET, но до сих пор есть часть Windows и их можно использовать (список драйверов можно найти в Administrative Tools) — где-то до 95 года
    2. COM (Common Object Model) — компилированная объектная модель, которую можно использовать в разных языках — одно из названий (кроме ActiveX и других) этой технологии было OLEDB provider
    3. Сегодня есть ещё и .NET провайдер для OLEDB, в том числе и непосредственно для SQL-сервера (это наиболее эффективный метод работы с базой данных)
  5. Метод SqlCommand.ExecuteScalar() оптимизирован для получения 1-го столбца результата запроса (если результат содержит несколько столбцов, будет получен только 1-й)
  6. SqlCommand.ExecuteNonQuery() — метод для выполнения остальных видов запросов (не select)
  7. SqlCommand.CommandText — свойство, в которое можно записать строку запроса SQL
  8. String.Format() — метод записи строки с параметрами (вместо +)
  9. Учебник 6464 — ADO.NET
  10. Connection pool — соединение с базой ресурсоёмко, поэтому для идентичных connection strings новые соединения не создаются, а используется pool
  11. Типизированная коллекция Parameters — для улучшенной параметризации запросов
  12. Переменные в SQL объявляются так
    1. declare @p int
    2. set @p = 15
    3. select @p
  13. Почитать о Provided-Independent Code in ADO.NET
  14. Constraint
    1. Способ "попросить" систему следить за следующим:
      1. При удалении записи из родительской таблицы удалить и всех сирот, т.о., сохранив целостность базы
      2. При изменении первичного ключа все дочернии записи должны изменить свой внешний ключ
      3. Запрет вводить в дочернюю таблицу запись без родительской записи
  15. Транзакция — любая операция на SQL сервере
    1. Может состоит из последовательности команд SQL, все из которых необходимы для успешного завершения транзакции (если хоть одна не прошла — отмена всей операции (с помощью лог-файла))
  16. Задача на SQL (скриптами):
    1. Спроектировать базу данных для хранения информации о рабочих местах. База данных хранит информацию о компаниях, рабочих местах, городах (в которых находятся рабочие места), и о том, когда рабочие места были опубликованы. Базу данных заполнить инсертами, чтобы в каждой таблице было 5-10 записей. База данных должна позволять выполнять следующие операции:
      1. Изменение требований к рабочему месту (update).
      2. Изменение города, в котором требуется та или иная позиция (update).
      3. Изменение даты публикации рабочего места (update).
      4. Получить список рабочих мест из указанных городов (select).
      5. Получить список компаний, в требованиях рабочих мест которых упоминается .NET
      6. Получить список рабочих мест, опубликованных в указанный период времени (в диапазоне)
      7. Сколько рабочих мест опубликовано в каждом городе в каждом году (есть функции month(), year(), day() — чтобы получить требуемый параметр от даты)
    2. Создать файлы create.sql, insert.sql и т.д.



Backlinks: