Narzędzia użytkownika

Narzędzia witryny


ewdprocedurybazaszkol

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Nowa wersja
Poprzednia wersja
ewdprocedurybazaszkol [2014/04/26 12:40]
t.zoltak utworzono
ewdprocedurybazaszkol [2016/09/08 12:51]
t.zoltak
Linia 1: Linia 1:
-====I. Aktualizacja bazy szkół====+=====II. Aktualizacja bazy szkół====
 Opisane działania należy przeprowadzić oddzielnie dla gimnazjów, LO i⁠ T. Opisane działania należy przeprowadzić oddzielnie dla gimnazjów, LO i⁠ T.
  
   - **Wyeksportowanie bazy szkół do plików arkusza kalkulacyjnego.**   - **Wyeksportowanie bazy szkół do plików arkusza kalkulacyjnego.**
-    * **Obecnie realizowane ​przez:​**\\ ​skrypt ​<​html><​span style="​color:​ darkblue; font-styleitalic;">D:/​Prace/​EWD/​dane/​bazy szkół/​pobieranie danych z bazy.r</​span></​html>​ +    * **Realizowane ​przez:​**\\ ​funkcja ​<​html><​span style="​color:​ darkblue; font-facemonospace;">pobierz_baze_szkol()</​span></​html> ​w ramach biblioteki [[ewdpakiety#​EWDdane]] ​ 
-    * **Docelowa implementacja:**\\ Utworzenie funkcji ​<​html><​span style="​color:​ darkblue; font-facemonospace;">pobierz_baze_szkol()</​span></​html> ​w ramach biblioteki [[ewdpakiety#​EWDdane]].+    * **Wcześniejsze rozwiązania:**\\ skrypt R ([[ewdprocedury_pobieranie_bazy_szkol|szczegóły]]) na podstawie pierwowzoru: ​<​html><​span style="​color:​ darkblue; font-styleitalic;">D:/​Prace/​EWD/​dane/​bazy szkół/​pobieranie danych z bazy.r</​span></​html>​.
   - **Ręczna aktualizacja przeprowadzana na plikach arkusza kalkulacyjnego przez Annę.**   - **Ręczna aktualizacja przeprowadzana na plikach arkusza kalkulacyjnego przez Annę.**
 +    - [[bazaszkolbledy|Lista znanych błędów]] (niescalonych szkół, które trzeba połączyć).
   - **Weryfikacja spójności bazy po poprawkach:​**   - **Weryfikacja spójności bazy po poprawkach:​**
     * **Zadanie obejmuje:​** ​     * **Zadanie obejmuje:​** ​
Linia 11: Linia 13:
       - oględne sprawdzenie,​ czy 1)⁠ nazwa szkoły nie zawiera pełnego adresu (nie ma po co go tam duplikować),​ 2)⁠ czy w kolumnie ulica nie występuje aby nazwa miejscowości,​ 3)⁠ czy kody PNA przystają do wzorca dd-ddd;       - oględne sprawdzenie,​ czy 1)⁠ nazwa szkoły nie zawiera pełnego adresu (nie ma po co go tam duplikować),​ 2)⁠ czy w kolumnie ulica nie występuje aby nazwa miejscowości,​ 3)⁠ czy kody PNA przystają do wzorca dd-ddd;
       - przyrównanie bazy po zmianach do zrzutu sprzed aktualizacji (z⁠ 1.).       - przyrównanie bazy po zmianach do zrzutu sprzed aktualizacji (z⁠ 1.).
-    * **Obecnie realizowane ​przez:​**\\ ​skrypty ​<​html><​span style="​color:​ darkblue; font-styleitalic;">D:/​Prace/​EWD/​dane/​bazy szkół/​weryfikacja ​(gimn|LO|T).r</​span></​html>​ +    * **Realizowane ​przez:​**\\ ​funkcja ​<​html><​span style="​color:​ darkblue; font-facemonospace;">weryfikuj_baze_szkol()</​span></​html> ​w ramach biblioteki [[ewdpakiety#​EWDdane]]. 
-    * **Docelowa implementacja:**\\ Utworzenie funkcji ​<​html><​span style="​color:​ darkblue; font-facemonospace;">weryfikuj_baze_szkol()</​span></​html> ​w ramach biblioteki [[ewdpakiety#​EWDdane]]+    * **Wcześniejsze rozwiązania:**\\ skrypt R ([[ewdprocedury_weryfikacja_bazy_szkol|szczegóły]]) na podstawie pierwowzorów: ​<​html><​span style="​color:​ darkblue; font-styleitalic;">D:/​Prace/​EWD/​dane/​bazy szkół/​weryfikacja ​(gimn|LO|T).r</​span></​html>​. 
-    * **Uwagi:​**\\ Jeśli zaszły zmiany w⁠ przypisaniu id OKE do naszego id w⁠ latach ubiegłych (skrypty zwracają listę takich zmian, które wykryją), naniesienie takich zmian w⁠ bazie SQL będzie raczej ​wymagało ręcznej ​roboty (która musi być przeprowadzona bardzo ​uważnie i⁠ z⁠ rozmysłem!).+    * **Uwagi:​**\\ Jeśli zaszły zmiany w⁠ przypisaniu id OKE do naszego id w⁠ latach ubiegłych (skrypty zwracają listę takich zmian, które wykryją), naniesienie takich zmian w⁠ bazie wymaga ręcznej, *uważnej* roboty (szczęśliwie odpowiednie klucze obce w bazie mają //ON UPDATE CASCADE//, co znacznie ułatwia sprawę):<code sql>​BEGIN;​ 
 +-- przepięcie wyników egzaminacyjnych uczniów 
 +UPDATE dane_osobowe.testy_obserwacje SET id_szkoly = {powinno_być} WHERE id_szkoly = {jest} AND id_testu IN (SELECT id_testu FROM testy JOIN arkusze USING (arkusz) WHERE extract(year FROM data_egzaminu) = {korygowany_rok});​ 
 +-- przepięcie danych adresowych szkoły 
 +UPDATE szkoly_dane SET id_szkoly = {powinno_być} WHERE id_szkoly = {jest} AND rok = {korygowany_rok};​ 
 +-- usunięcie niepotrzebnej szkoły 
 +DELETE FROM szkoly WHERE id_szkoly = {jest}; 
 +COMMIT; 
 +</​code>​
     * <​html><​span style="​color:​ darkblue; font-style: italic;">​[pkt 2.-3. powtarzać w⁠ kółko do osiągnięcia zadowalających rezultatów]</​span></​html>​     * <​html><​span style="​color:​ darkblue; font-style: italic;">​[pkt 2.-3. powtarzać w⁠ kółko do osiągnięcia zadowalających rezultatów]</​span></​html>​
   - **Przyłączenie do bazy informacji z RSPO.**   - **Przyłączenie do bazy informacji z RSPO.**
-    * **Obecnie realizowane przez:**\\ <​html><​span style="​background-color:​ yellow;">​obecnie nierealizowane</​span></​html>;​ +    * **Obecnie realizowane przez:**\\ <​html><​span style="​background-color:​ yellow;">​obecnie nierealizowane ​(sprawa rozbija się o to, że w praktyce nie daje się pozyskać REGONów z OKE)</​span></​html>;​ 
-    * **Docelowa implementacja:​**\\ Do pobierania RSPO - pakiet [[ewdpakiety#​EWDrspo]], pisany obecnie przez Grześka.\\ Samo łączenie - <​html><​span style="​background-color:​ yellow;">???</​span></​html>​.+    * **Docelowa implementacja:​**\\ Do pobierania RSPO - pakiet [[ewdpakiety#​EWDrspo]].\\ Samo łączenie - <​html><​span style="​background-color:​ yellow;">???</​span></​html>​.
     * **Uwagi:​**\\ Sposób zrealizowania tego punktu procedury będzie rzutował na następny punkt - jeśli szkołom będzie się udawało przyłączyć dane z RSPO, TERYTy będą wiarygodne.     * **Uwagi:​**\\ Sposób zrealizowania tego punktu procedury będzie rzutował na następny punkt - jeśli szkołom będzie się udawało przyłączyć dane z RSPO, TERYTy będą wiarygodne.
-  - **Weryfikacja informacji o kodzie TERYT gminy, w⁠ której znajduje się szkoła.** +  ​- **Wstępne dodanie szkół do bazy i zaktualizowanie informacji o typie placówki** ([[ewdprocedury_bazaszkol_wstepnyimport|szczegółowy opis]]) 
-    * **Obecnie realizowane przez:​**\\ ​Przepuszczenie przez skrypt PHP używany przez Mateusza do weryfikacji danych teleadresowych szkół z zamówień na arkusze egzaminacyjne. ​Skrypt ten: +    * Wygenerowanie w Excelu poleceń SQL INSERT i UPDATE i wywołanie ich na bazie. 
-      - Upewnia się, że w kodzie OKE szkoły nie ma grubych błędów (kod musi mieć 12 znaków długości, w tym pierwsze 6 liczbowych, a potem myślnik, a 9 znak musi być poprawnym kodem typu szkoły). +  ​- **Weryfikacja informacji o kodzie TERYT gminy, w⁠ której znajduje się szkoła** ​([[ewdprocedury_bazaszkol_teryt|szczegółowy opis]]) 
-      - Próbuje dopasować TERYT: +    * Przepuszczenie przez skrypt PHP używany przez Mateusza do weryfikacji danych teleadresowych szkół z zamówień na arkusze egzaminacyjne. ​W wyniku powstaje CSV proponowanymi ​TERYT-ami. 
-        - Na podstawie OKE szkoły: +    * Ręczną analizę rezultatów ​rozwiązanie znalezionych problemów. 
-          - pobiera ​kodu OKE szkoły pierwsze 6 znaków, które powinny być TERYT-em; +    * Wygenerowanie ​Excel-u poleceń SQL UPDATE i dopisanie ​kodów TERYT do bazy
-          - stosuje na nich znane aktualizacje (czasem OKE utrzymywały nieaktualny człon TERYT-owy w kodzie OKE szkoły) +  - **Przypisanie szkołom informacji o⁠ wielkości miejscowości,​ w⁠ której znajduje się szkoła** ​([[ewdprocedury_bazaszkol_ludnosc|szczegóły]]) 
-          - sprawdza, czy taki TERYT ma w danym roku sens (czy istnieje taka gmina), jeśli tak, to zapamiętuje +    * Skrypt w R działający na danych ​BDL
-        - Na podstawie adresu: +  - **Aktualizacja ​informacji ​o tym, dla których ​szkół ​powinny być pokazywane wskaźniki ​na stronie www**  
-          - sprawdza, czy kod pocztowy wyznacza TERYT, jeśli tak, to zapamiętuje,​ jeśli nie,  sprawdza dalej +    * Jeśli w danym roku wskaźniki trzyletnie nie będą przeliczane wstecz, a podczas aktualizacji bazy szkół dokonano ​zmian dotyczących klasyfikacji szkół jako dla dorosłych, specjalnych czy przyszpitalnychnależy ​oparciu ​zaktualizowane dane nadać odpowiednie wartości kolumnie '​pomin'​ w tabeli '​wartosci_wskaznikow'​.
-          - sprawdza, czy kod pocztowy i miejscowość wyznaczają TERYT, jeśli tak, to zapamiętuje, jeśli nie, sprawdza dalej +
-          - sprawdza, czy kod pocztowy, miejscowość,​ ulica numer domu wyznaczają TERYT, jeśli tak, to zapamiętuje,​ jeśli nie, sprawdza dalej +
-          - sprawdza czy dopasowany TERYT (jeśli został dopasowany) jest sensowny ​dany roku (istnieje taka gmina), jeśli nie, to go odrzuca, jeśtli tak, to zapamiętuje +
-        ​Na podstawie danych z innych lat: +
-          - odnajduje w bazie dane szkoły (szkół) o takim samym kodzie OKE szkoły w innych latach (w praktyce w latach ubiegłych, w ogólności nie ma to znaczenia) +
-          - zapamiętuje ten TERYT, który pochodzi z jak najwcześniejszych danych późniejszych niż aktualnie przetwarzane,​ a jeśli takiego nie ma, to z jak najpóźniejszych danych wcześniejszych. +
-        - Dokonuje wyboru najbardziej wiarygodnego kodu TERYT +
-          - wiarygodność jest taka sama, jak kolejność metod dopasowywania wymienionych powyżej +
-          - odnotowywane są statystyki zgodności ​kodów TERYT dopasowanych różnymi metodami +
-        - Zapisuje ​do pliku CSV macierz z wynikami dopasowania. +
-      * **Docelowa implementacja:​**\\ <​html><​span style="​background-color:​ yellow;">???</​span></​html>​ +
-  - **Przypisanie szkołom informacji o⁠ wielkości miejscowości,​ w⁠ której znajduje się szkoła.** +
-    * **Obecnie realizowane przez:**\\ <​html><​span style="​background-color:​ yellow;">​obecnie nierealizowane</​span></​html>;​\\ rozwiązanie stosowane kiedyś, bazujące nie na informacjach ​plików egzaminacyjnych,​ ale na podłączaniu informacji z BDLu na podstawie TERYTu gminy i⁠ ewnazwy miejscowości:​ <​html><​span style="​color:​ darkblue; font-style: italic;">​D:/​Prace/​EWD/​dane/​gimnazjum/​źródła/​lokalizacja.r</​span></​html>​ +
-    * **Docelowa implementacja:​**\\ <​html><​span style="​background-color:​ yellow;">???</​span></​html>​ +
-  - **Zapis zaktualizowanych ​informacji ​do bazy.** +
-    * **Obecnie realizowane przez:**\\ Wpisanie do pliku Excela z bazą szkół ​formuły generującej polecenia INSERT / UPDATE, powielenie ​na wszystkie wierszy i wykonanie na bazie. +
-    ​* **Docelowa implementacja:​**\\ <​html><​span style="​background-color:​ yellow;">???</​span></​html>​ +
-    * **Uwagi:​**\\ ​Jeśli w pkt 3. wykryto zmiany w⁠ przypisaniu id OKE do naszego id w⁠ latach ubiegłych (skrypty zwracają listę takich ​zmian, które wykryją)naniesienie takich zmian w⁠ bazie SQL będzie raczej wymagałręcznej roboty (która musi być przeprowadzona bardzo uważnie i⁠ z⁠ rozmysłem!).+
  
ewdprocedurybazaszkol.txt · ostatnio zmienione: 2016/09/08 12:51 przez t.zoltak