Bazy Danych Laboratorium

4.11.2013/18.11.2013

Tzw. eksploracja danych i wyznaczanie statystyk wielowymiarowych za pomocą zagnieżdżonych

zapytań:

1) Uruchomić przykład statystyk w układzie (kategorie -lata).

2) Zmodyfikować przykład tak by wyświetlał dane dla miesięcy

3) Karkołomne zadanie domowe : (2013 zmiana). Zamienić wiersze i kolumny! Teraz w

wierszach mają być lata a w kolumnach kategorie(dotyczy kategorie lata nie miesiące).

Wskazówka: umiejętnie posłużyć się schowkiem. Na zajęciach spróbować uzyskać wynik dla

dwóch kolumn. Potem już z górki.

4) Rozważyć ogólny przypadek statystyki dwuwymiarowej.

5) Statystyka kraj (country) z tabeli Customers wiersze i regiony dla klientów

6) Zapoznać się z funkcją raport tabeli przestawnej w arkuszu kalkulacyjnym.

7) Powtórka z zapytań SQL (złączenie i grupowanie) – baza CJDate

a. Sumaryczne wartości (QTY) dla dostawców z Londynu

b. Sumaryczne wartości dla unikalnych par miasto dostawcy miasto odbiorcy

c. (premiowane) Wypisać unikalne pary miast dostawca (S) odbiorca (J). Jest ich 15.

Wierszy uzyskanych w punkcje b jest 11 – wiadomo dlaczego. Zmodyfikować

zapytanie w taki sposób żeby brakujące 4 pary też się pojawiły z wartością 0. (super

premiowane) Uzyskać ten sam efekt posługując się tylko złączeniami (wskazówka –

użyć outer join) – było na wykładzie o anti-semijoin.

d. Sumaryczny ciężar (QTY*WEIGTH) dla miast odbiorców

e. Liczba części dostarczanych przez poszczególnych dostawców (S)

f. Dostawcy dostarczający większą od przeciętnej liczbę części

g. Liczba dostawców dostarczających poszczególne części

8) Zapoznać się z prostymi przykładami programów w języku c#, ze szczególnym

uwzględnieniem programowania aplikacji baz danych.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Data.OleDb;

namespace ConsoleApplication3

{

class Program

{

static void Main(string[] args)

{

OleDbConnection conn = new

OleDbConnection(@"Provider=SQLNCLI.1;Data Source=MIROSŁAW-

PC\SQLEXPRESS;Integrated Security=SSPI");

conn.Open();

conn.Close();

}

}

}

Uwaga: Postać parametru konstruktora OleDbConnection tzw. ConnectionString zależy od typu sterownika oraz od konkretnego serwera SQL. Znaleźć w Google różne postaci tego parametru. W lab.111 nie ma sterownika dla OleDB (stan na 17.10.2011) dlatego należy posłużyć się klasą SQLConnection.

Przykład:

SqlConnection conn = new SqlConnection(@"Data Source=p10;Integrated Security=SSPI;

Initial Catalog=Northwind");

Nieco bardziej złożony przykład.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Data.OleDb;

namespace ConsoleApplication3

{

class Program

{

static void Main(string[] args)

{

OleDbConnection conn = new

OleDbConnection(@"Provider=SQLNCLI.1;Data Source=MIROSŁAW-

PC\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=Northwind");

conn.Open();

OleDbCommand cmd = new OleDbCommand("select * from

Employees",conn);

Console.WriteLine("Employees");

OleDbDataReader rdr=

cmd.ExecuteReader();

while (rdr.Read())

{

for (int i = 0; i < rdr.FieldCount; i++)

{

Console.Write(rdr.GetValue(i).ToString());

Console.Write("\t");

}

}

conn.Close();

}

}

}

9) Zaimplementować przykład connectDS w języku C#. (Zadanie dodatkowo premiowane)

Zaimplementować rozwiązanie zadania 13 z zestawu 2. Samodzielnie znaleźć opis funkcji

ExecuteScalar. Objaśnić jej przydatność w rozwiązaniu zadania 2/13 wykorzystującego język C# i ADO.NET.