Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:prolog:prolog_lab:prolog_lab_rdbms [2009/05/13 12:17] wojnicki upload skryptu z schematem bazy i danymi |
pl:prolog:prolog_lab:prolog_lab_rdbms [2009/05/27 18:06] piw09 |
====== LAB: Integracja z RDBMS ====== | ====== LAB: Integracja z RDBMS ====== |
| |
| |
Celem laboratorium jest pokazanie możlwości integracji maszyny wnioskującej SWI Prolog z systemami zarządzania relacyjnymi bazami danych (RDBMS). | Celem laboratorium jest pokazanie możlwości integracji maszyny wnioskującej SWI Prolog z systemami zarządzania relacyjnymi bazami danych (RDBMS). |
</code> | </code> |
| |
Wartości pól ''Username'' oraz ''Password'' będą podane przez prowadzącego na zajęciach. | **Uwaga**: |
| - Wartości pól ''Username'' oraz ''Password'' będą podane przez prowadzącego na zajęciach. |
| - Prawa dostępu do pliku ''.odbc.ini'' powinny być ustawione na 600. |
| |
Powyższe działania konfigurują źródło danych ODBC o nazwie ''prolog''. | Powyższe działania konfigurują źródło danych ODBC o nazwie ''prolog'' (''[prolog]''). |
Źródło to jest skojarzone z systemem zarządzania relacyjnymi bazami danych PostgreSQL działającym na serwerze ''borg.ia.agh.edu.pl'', a konkretnie z bazą danych o nazwie ''prolog''. | Źródło to jest skojarzone z systemem zarządzania relacyjnymi bazami danych PostgreSQL działającym na serwerze ''borg.ia.agh.edu.pl'', a konkretnie z bazą danych o nazwie ''prolog'' (''Database''). |
| |
| **Ćwiczenie** |
| |
| Sprawdź, czy źródło danych jest poprawnie skonfigurowane. W tym celu uruchom narzędzie ''isql'' umożlwiające wykonywanie zapytań w języku SQL na źródle ODBC: |
| |
| <code> |
| isql prolog |
| </code> |
| |
| Jeżeli połączenie powiodło się zostanie wyświetlony stosowny komunikat: |
| <code> |
| ~$ isql prolog |
| +---------------------------------------+ |
| | Connected! | |
| | | |
| | sql-statement | |
| | help [tablename] | |
| | quit | |
| | | |
| +---------------------------------------+ |
| SQL> |
| </code> |
| |
| Następnie wykonaj proste zapytanie np. ''SELECT nazwa FROM kompozycje;''. Rezultat powinien być zbliżony do tego poniżej: |
| |
| <code> |
| SQL> SELECT nazwa FROM kompozycje; |
| +-----------------------------------------+ |
| | nazwa | |
| +-----------------------------------------+ |
| | Bukiet 1 | |
| | Bukiet 2 | |
| | Bukiet 3 | |
| | Kosz 1 | |
| | Kosz rozyczek | |
| | Kosz mix | |
| | Kompozycja suszona | |
| | Koszyk gozdzikowy | |
| | Hiacynty w koszyku | |
| | Biala azalia | |
| | Rozowa azalia | |
| | Orchidea rozowa | |
| | Kosz z azalia | |
| | Wiazanka czerwona | |
| | Bukiecik serc | |
| | Ikebana z rozami | |
| | Kwitnacy kosz | |
| | Sloneczniki z lilia | |
| | Strelicje | |
| | Anturium latem | |
| +-----------------------------------------+ |
| SQLRowCount returns 20 |
| 20 rows fetched |
| SQL> |
| </code> |
| |
===== - ODBC w SWI-Prolog ===== | ===== - ODBC w SWI-Prolog ===== |
| |
| SWI Prolog umożliwia wykonywanie zapytań na źródłach ODBC. |
| Rezultaty zapytania (pojedynczy wiersz) uzgodniane są ze wskazanymi szukanymi. |
| Wartości kolejnych kolejnych wierszy dostępne są poprzez mechanizm nawrotów. |
| |
| Przed wykonaniem zapytania należy nawiązać połączenie ze skonfigurowanym źródłem ODBC. |
| |
[[http://www.swi-prolog.org/pldoc/package/odbc.html|Dokumentacja]] dotycząca predykatów obsługujących połączenia ODBC z bazami danych. | [[http://www.swi-prolog.org/pldoc/package/odbc.html|Dokumentacja]] dotycząca predykatów obsługujących połączenia ODBC z bazami danych. |
</code> | </code> |
| |
Kompletny {{:pl:prolog:prolog_lab:baza.sql|skrypt}} z schematem i danymi. | Kompletny {{:pl:prolog:prolog_lab:baza.sql.txt|skrypt}} z schematem i danymi. |
| |
===== - Wykonywanie zapytań ===== | ===== - Wykonywanie zapytań ===== |
Zmodyfikuj kod programu z poprzedniego ćwiczenia, tak aby stanowił samodzielną aplikację. | Zmodyfikuj kod programu z poprzedniego ćwiczenia, tak aby stanowił samodzielną aplikację. |
Program po skonsultowaniu, powinien zapytać o kwotę i wyświetlić wszystkie możlwie kombinacje kompozycji kwiatowych, które można za podaną kwotę kupić, podając: identyfikator kompozycji, nazwę oraz cenę. | Program po skonsultowaniu, powinien zapytać o kwotę i wyświetlić wszystkie możlwie kombinacje kompozycji kwiatowych, które można za podaną kwotę kupić, podając: identyfikator kompozycji, nazwę oraz cenę. |
| |
| ====== Uwagi, komentarze, propozycje ====== |
| |
| Laboratorium jest za krótkie. Zostaje ok. 30 minut wolnego czasu. |
| |
| --- //[[szymek@adres.pl|Szymon Świerkosz]]// |