Ws2009ba-i-5.datenbank

Aus Labor für Echtzeitsysteme

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
Version vom 21:06, 30. Okt. 2009 (bearbeiten)
David (Diskussion | Beiträge)
(Team log)
← Zum vorherigen Versionsunterschied
Version vom 21:07, 30. Okt. 2009 (bearbeiten) (rückgängig)
David (Diskussion | Beiträge)
(20.10.2009)
Zum nächsten Versionsunterschied →
Zeile 45: Zeile 45:
SET client_encoding to 'UTF8'; SET client_encoding to 'UTF8';
-==20.10.2009==+==30.10.2009==
*Server mit Postgres und phppgadmin installiert und konfiguriert. *Server mit Postgres und phppgadmin installiert und konfiguriert.
**jeder der einen Datenbank Account haben braucht bitte bei Stephan/David melden. **jeder der einen Datenbank Account haben braucht bitte bei Stephan/David melden.
*erster Test mit unseren Script erfolgreich Daten stehen in der xdrive_tmp Datenbank. *erster Test mit unseren Script erfolgreich Daten stehen in der xdrive_tmp Datenbank.
- 
==29.10.2009== ==29.10.2009==

Version vom 21:07, 30. Okt. 2009

Inhaltsverzeichnis

Team log

TODO

  • Script: nochmal drüber gucken. entschlacken ?
  • Script: Anfaelligkeit gegen falsche Daten optimieren.
  • Import: Woher infos Gruppe, Datum, Uhrzeit, Ort, pc_id ?
  • Server Accounts
  • Foreignkey Constraint für Koordinaten xdrive_id
  • DB Hosten
  • Anleitung zum Connecten!?
  • ERD
  • Straßennamen einpflegen
  • Präsipunkte
  • Straßenname? -> Gebiet? Wurst?

Namenskonvention für Netdetectlogfiles

<kr/mg>_<Straßenname ohne Sonderzeichen>_<messungsnr> Gruppe (SSH User) -> 1 User pro Netbook mit Netbookname als loginname

Kür :

selbst erstellen:

#in bash: cd /tmp
#downloaden
wget http://standards.ieee.org/regauth/oui/oui.txt

#Eintraege filtern
cat oui.txt | grep 'base 16' > tmp.txt

#insert erstellen ! falsch weil wiki irgendwas ersetzt :/
sed -e 's/'\/'\\/' -e  's/^/INSERT INTO oui VALUES \('\/g' -e  's/     (base 16)\t\t/'\, '\/g' -e  's/$/'\);/g' tmp.txt > insert.sql

#in psql:
#Tabelle erstellen
CREATE TABLE oui ( mac varchar(6) primary key, name varchar(255));

#encoding setzen
SET client_encoding to 'latin1';

#inserten...
\i insert.sql

#encoding zurueck setzen
SET client_encoding to 'UTF8';

30.10.2009

  • Server mit Postgres und phppgadmin installiert und konfiguriert.
    • jeder der einen Datenbank Account haben braucht bitte bei Stephan/David melden.
  • erster Test mit unseren Script erfolgreich Daten stehen in der xdrive_tmp Datenbank.

29.10.2009

Script von Stephan erweitert. Nun werden die Daten in die Sql Datenbank geschrieben. Link

Edit: Vorher muss allerdings das Zusatzmodul pygresql installiert werden!

sudo apt-get install python-pygresql

27.10.2009

Ich habe ein kleines Pythonscript zum parsen des Logfiles geschrieben -> Script Das Script ist noch keinesfalls vollständig!

  • liest die Daten aus dem Logfile in eine Liste ein
  • Das erstellen der SQL Statements muss noch angepasst werden
  • Bisher nur Testweise Dummy- Statements

Wird gestartet mit:

python filter.py <logfile>.ndd

SQL Statements sind dann in der Datei script.sql im selben Ordner wie das Filterscript zu finden.

26.10.2009

  • Design der Tabellen, erstellen der create Befehle
  • netdetect .ndd Format
  • Um die Daten auf den Server zu kopieren haben wir eine Lösung mit winscp überlegt.
    • als Server openssh-server. pro Netbook ein Account.
    • Dafür wird ein Datenbankserver benötigt (EZS Labor?)

Design der Datenbank

Tabellen:

xdrive_t:

CREATE TABLE xdrive_t (
    id SERIAL Primary Key,
    messung_id int,
    bssid varchar(12),
    essid varchar(32),
    verschluesselung_id int,
    kanal int,
    speed int,
    typ_id int,
    first_seen int,
    last_seen int
);

messung_t

CREATE TABLE messung_t(
    id SERIAL Primary Key,
    datum date,
    uhrzeit time,
    ort varchar(255),
    pc_id int
    );

koordinaten_t

CREATE TABLE koordinaten_t (
    id SERIAL Primary Key,
    xdrive_id int,
    latitude varchar(255),
    longitude varchar(255),
    signal_quality int
);

verschluesselung_t

CREATE TABLE verschluesselung_t (
    id SERIAL Primary Key,
    name varchar(10)
);
INSERT INTO verschluesselung_t VALUES (0, 'OPEN');
INSERT INTO verschluesselung_t VALUES (1, 'WEP?');
INSERT INTO verschluesselung_t VALUES (2, 'WEP');
INSERT INTO verschluesselung_t VALUES (3, 'WPA');
INSERT INTO verschluesselung_t VALUES (4, 'WPA2');
INSERT INTO verschluesselung_t VALUES (5, 'WPA-WPA2');

typ_t

CREATE TABLE typ_t (
    id SERIAL Primary Key,
    name varchar(10)
);
INSERT INTO typ_t VALUES (0, 'BSS');
INSERT INTO typ_t VALUES (1, 'IBSS');

constraints

ALTER TABLE xdrive_t ADD CONSTRAINT messung_c FOREIGN KEY(messung_id) REFERENCES messung_t(id);
ALTER TABLE xdrive_t ADD CONSTRAINT typ_c FOREIGN KEY (typ_id) REFERENCES typ_t(id);
ALTER TABLE xdrive_t ADD CONSTRAINT versch_c FOREIGN KEY (verschluesselung_id) REFERENCES verschluesselung_t(id);

Aufsetzen der Datenbank

SQL Server: PostgreSQL

  • sudo apt-get install postgresql
  • sudo -u postgres createuser --superuser $USER
  • createdb
  • psql

PyGreSQL

Skript zum Einpflegen von Daten

  • TODO
Persönliche Werkzeuge