Andmelao pringumootor Janek Press Daniel Skornjakov Andmelao pringumootor

  • Slides: 14
Download presentation
Andmelao “päringumootor” Janek Press Daniel Skornjakov

Andmelao “päringumootor” Janek Press Daniel Skornjakov

Andmelao “päringumootor” • Java • Mysql Connector/J • Mysql

Andmelao “päringumootor” • Java • Mysql Connector/J • Mysql

Andmelao “päringumootor” • Klass “Warehouse” • Klass “Engine”

Andmelao “päringumootor” • Klass “Warehouse” • Klass “Engine”

Klass “Warehouse” • • • Ühendus Mysql-ga Andmeladu Andmekuup Hierarhiad Päringud

Klass “Warehouse” • • • Ühendus Mysql-ga Andmeladu Andmekuup Hierarhiad Päringud

Klass “Warehouse” meetodid • Ühendus Mysql-ga – public Warehouse(String host, String db, String user,

Klass “Warehouse” meetodid • Ühendus Mysql-ga – public Warehouse(String host, String db, String user, String pass); – public Connection Get. Connection() – public void Close() – public boolean Is. Connected()

Klass “Warehouse” meetodid • Andmeladu – Create. Warehouse(String name, String[] dims, String[][] hierarchies, String[]

Klass “Warehouse” meetodid • Andmeladu – Create. Warehouse(String name, String[] dims, String[][] hierarchies, String[] measures) – public boolean Drop. Warehouse(String name)

Klass “Warehouse” meetodid • Andmekuup – public boolean Create. Cube(String name, String[] dims, String[]

Klass “Warehouse” meetodid • Andmekuup – public boolean Create. Cube(String name, String[] dims, String[] hierarchies, String[] measures – public boolean Create. Cube(String name, String[] dims, int[] hierarchies, String[] measures) – public boolean Drop. Cubes(String name)

Klass “Warehouse” meetodid • Hierarhiad – public boolean Reset. Hierarchies() – public boolean Delete.

Klass “Warehouse” meetodid • Hierarhiad – public boolean Reset. Hierarchies() – public boolean Delete. Hierarchy(String base) – public boolean Create. Hierarchy(String base, String[] levels) – public String[] Get. Hierarchy(String base) – public int Get. Hierarchy. Count(String base)

Klass “Warehouse” meetodid • Päringud – private int Exec. SQL(String[] commands) • Näide String[]

Klass “Warehouse” meetodid • Päringud – private int Exec. SQL(String[] commands) • Näide String[] insert = new String[1]; Insert[0] = “INSERT INTO. . ”; Exec. Sql(Insert);

Klass “Engine” • public String[][] Execute. Query(String query);

Klass “Engine” • public String[][] Execute. Query(String query);

Näide Engine eng = new Engine(new Warehouse(cnf. My. SQL[0], cnf. My. SQL[1], cnf. My.

Näide Engine eng = new Engine(new Warehouse(cnf. My. SQL[0], cnf. My. SQL[1], cnf. My. SQL[2], cnf. My. SQL[3])); eng. Get. Warehouse(). Reset. Hierarchies(); String[] dims = { "aeg", "asukoht", "toode" }; String[][] hierarchies = { { "paev", "nadal", "kuu", "aasta" }, {"maakond", "linn"}, null}; String[] measures = { "summa", "kogus" }; eng. Get. Warehouse(). Create. Warehouse("myyk", dims, hierarchies, measures); eng. Get. Warehouse(). Insert. Data("data. txt"); Print. Results(eng. Execute. Query("SELECT aeg: nadal, asukoht: linn, summa FROM myyk; ")); Print. Results(eng. Execute. Query("SELECT nadal, linn, summa FROM myyk; "));

Näide: tabelid • • • Myyk (id_aeg, id_asukoht, id_toode, summa, kogus) Myyk_aeg (id_aeg, paev,

Näide: tabelid • • • Myyk (id_aeg, id_asukoht, id_toode, summa, kogus) Myyk_aeg (id_aeg, paev, nadal, kuu, aasta) Myyk_asukoht (id_asukoht, maakond, linn) Myyk_cube_aeg_asukoht (id_aeg, id_asukoht, summa, aggr_count) Hierarchies (base, element, level) aeg paev 0 aeg nadal 1 aeg kuu 2 aeg aasta 3 asukoht maakond 0 asukoht linn 1

Näide: “data. txt” • • • INSERT INTO myyk (id_aeg, id_asukoht, id_toode, summa, kogus)

Näide: “data. txt” • • • INSERT INTO myyk (id_aeg, id_asukoht, id_toode, summa, kogus) values('1', '1000', '1') INSERT INTO myyk (id_aeg, id_asukoht, id_toode, summa, kogus) values('1', '2', '1050', '1') INSERT INTO myyk (id_aeg, id_asukoht, id_toode, summa, kogus) values('1', '2', '1500', '1') INSERT INTO myyk (id_aeg, id_asukoht, id_toode, summa, kogus) values('1', '3', '1200', '1') INSERT INTO myyk (id_aeg, id_asukoht, id_toode, summa, kogus) values('1', '2', '4', '2000', '1') INSERT INTO myyk (id_aeg, id_asukoht, id_toode, summa, kogus) values('2', '1', '4', '2100', '1') INSERT INTO myyk (id_aeg, id_asukoht, id_toode, summa, kogus) values('3', '2', '4', '1800', '1') INSERT INTO myyk (id_aeg, id_asukoht, id_toode, summa, kogus) values('2', '1400', '1') INSERT INTO myyk (id_aeg, id_asukoht, id_toode, summa, kogus) values('3', '1', '2', '5000', '5') • • INSERT INTO myyk_toode values('1', 'Protsessor AMD') INSERT INTO myyk_toode values('2', 'Protsessor Intel') INSERT INTO myyk_toode values('3', 'Protsessor Celeron') INSERT INTO myyk_toode values('4', 'Emaplaat Asus') • • • INSERT INTO myyk_aeg (id_aeg, paev, nadal, kuu, aasta) values('1', '10', '2', '30', '4') INSERT INTO myyk_aeg (id_aeg, paev, nadal, kuu, aasta) values('2', '5', '3', '40', '4') INSERT INTO myyk_aeg (id_aeg, paev, nadal, kuu, aasta) values('3', '10', '2', '41', '4') • • INSERT INTO myyk_asukoht values('1', 'Tartumaa', 'Tartu') INSERT INTO myyk_asukoht values('2', 'Harjumaa', 'Tallinn')

Päring Sql’le • SELECT myyk_aeg. nadal AS nadal, myyk_asukoht. linn AS linn, SUM(myyk_cube_aeg_asukoht. summa)

Päring Sql’le • SELECT myyk_aeg. nadal AS nadal, myyk_asukoht. linn AS linn, SUM(myyk_cube_aeg_asukoht. summa) AS summa FROM myyk_cube_aeg_asukoht, myyk_aeg, myyk_asukoht WHERE myyk_cube_aeg_asukoht. id_aeg=myyk_aeg. id_aeg AND myyk_cube_aeg_asukoht. id_asukoht=myyk_asukoht. id_asukoht GROUP BY myyk_aeg. nadal, myyk_asukoht. linn