Bazy Danych Laboratorium

5.11.2012

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 : zamienić wiersze i kolumny! Teraz w wierszach mają być lata a w kolumnach kategorie. 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. Sumaryczny ciężar (QTY*WEIGTH) dla miast odbiorców

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

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

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

8) Zadanie domowe: 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();

}

}

}