ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τµήµα Πληροφορικής ΕΠΛ 646 Προχωρηµένα Θέµατα Βάσεων Δεδοµένων

Σχετικά έγγραφα
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τµήµα Πληροφορικής ΕΠΛ 646 Προχωρηµένα Θέµατα Βάσεων Δεδοµένων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τµήµα Πληροφορικής ΕΠΛ 646 Προχωρηµένα Θέµατα Βάσεων Δεδοµένων

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Εργαστήριο Εγκατάσταση Ubuntu με VirtualBox Εγκατάσταση Ubuntu με Unetbootin Απομακρυσμένη πρόσβαση με Putty/WinSCP

Σύντομος Οδηγός Github Μηνάς Δασυγένης (

20 Νοεμβρίου Οδηγός Εκτύπωσης. Πανεπιστήμιο Κύπρου, Τμήμα Πληροφορικής. Ομάδα Τεχνικής Υποστήριξης. v2.2

Αραπογιάννης Β. Τεχν.ΚΕΠΛΗΝΕΤ Αγρινίου

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο. Εργαστηριακή Άσκηση 1 17/01/2012

ΔΙΑΔΙΚΑΣΙA ΜΕΤΑΦΟΡΑΣ ΥΛΙΚΟΥ ΜΑΘΗΜΑΤΟΣ ΑΠΟ BLACKBOARD VISTA ΣΕ MOODLE

Σενάριο Χρήσης Moodle

ΔΗ Μ Ι Ο ΥΡ Γ Ι Α W I K I με τ η χρήση τ η ς υπ ηρεσίας h t t p : / id ot.com /

server : Ο υπολογιστής του καθηγητή που θέλουμε να ελέγχει τους υπόλοιπους του εργαστηρίου client : Οι υπολογιστές των μαθητών

How to register an account with the Hellenic Community of Sheffield.

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Εαρινό Εξάμηνο

26 Ιουλίου Οδηγός Εκτύπωσης. Πανεπιστήμιο Κύπρου, Τμήμα Πληροφορικής. Ομάδα Τεχνικής Υποστήριξης. v2.0

(1) Επιλέξτε την εντολή QUERIES για να μπείτε στο περιβάλλον δημιουργίας

Εγχειρίδιο Χρήστη για Wi-Fi Εφαρμογή κλιματιστικών APP

Εισαγωγή στο MATLAB. Κολοβού Αθανασία, ΕΔΙΠ,

ΡΥΘΜΙΣΕΙΣ ΓΙΑ ΔΥΝΑΜΙΚΟ IP

Οδηγός Χρήσης Η-Βιβλίων Ebrary ΒΙΒΛΙΟΘΗΚΗ & ΚΕΝΤΡΟ ΠΛΗΡΟΦΟΡΗΣΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΛΕΥΚΩΣΙΑΣ

Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο. Microsoft Word Μέρος 3

Social Network : Programming on FACEBOOK

Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο. Microsoft Word Μέρος 3

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία. AtYourService CY : Create a REST API. Δημήτρης Χριστοδούλου

Εγκατάσταση λογαριασμού ηλεκτρονικού ταχυδρομείου στο MICROSOFT OUTLOOK

Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018. Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια)

ΠΩΣ ΘΑ ΑΝΟΙΞΕΤΕ ΤΟ ΔΙΚΟ ΣΑΣ. Avon Store

Γενική Γραμματεία Πληροφοριακών Συστημάτων. General Secretariat of Information Systems

ΑΠΟΘΕΤΗΡΙΟ ΕΦΑΡΜΟΓΩΝ ΥΠΠΕΘ ΚΑΙ ΕΠΟΠΤΕΥΟΜΕΝΩΝ ΦΟΡΕΩΝ (git.minedu.gov.gr)

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Οδηγός Χρήσης της Υπηρεσίας Τηλεομοιότυπου (RightFax Fax Service) Web Utility. (διαδικτυακή εφαρμογή)

Cloud Computing with Google and Microsoft. Despoina Trikomitou Andreas Diavastos Class: EPL425

Cloud Computing & Data Management (Υπολογιστικά Νέφη & Διαχείριση Δεδομένων)

ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ Α2Α

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΥΠΗΡΕΣΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΥΠΟΔΟΜΗΣ ΟΔΗΓΟΣ ΧΡΗΣΗΣ ΤΗΣ ΥΠΗΡΕΣΙΑΣ ΤΗΛΕΟΜΟΙΟΤΥΠΟΥ (FAX) ΜΕΣΩ ΤΗΣ ΔΙΑΔΙΚΤΥΑΚΗΣ ΕΦΑΡΜΟΓΗΣ WEBUTIL

Εισαγωγή στον Προγραμματισμό

Σενάριο Εστίασης Win XP:

Τεχνικός Εφαρμογών Πληροφορικής

Εργαστήριο Βάσεων Δεδομένων

Οδηγός Εγκατάστασης Pylon Auto Moto Cube

Εγκατάσταση αρχείων βιβλιοθήκης VHOPE και VHOPE

Vodafone Business Connect

ΤΕΙ ΚΡΗΤΗΣ ΚΕΝΤΡΙΚΗ ΒΙΒΛΙΟΘΗΚΗ. Η χρήση του. Βήμα προς Βήμα

Βάιος Κολοφωτιάς Msc Informational Systems. Μια εισαγωγή στο GIT

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Πρόσβαση μέσω webdav. ΚΕ.Δ.Δ. Τ.Ε.Ι. Μεσολογγίου. 3. Στην συνέχεια πληκτρολογούμε το username και το password και πατάμε στο κουμπί Είσοδος.

Οδηγίες Εργασίας 1 Facility-Game

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Ενότητα 2 Εργαλεία για την αναζήτηση εργασίας: Το Βιογραφικό Σημείωμα

TaxiCounter Android App. Περδίκης Ανδρέας ME10069

Προγραµµατισµός Η/Υ. Μέρος2

1. ΑΝΟΙΞΤΕ ΤΟΝ ΠΙΝΑΚΑ CUSTOMER ΚΑΙ ΣΤΟ ΜΕΝΟΥ ΕΠΙΛΕΞΤΕ

ΔΙΑΔΙΚΑΣΙA ΜΕΤΑΦΟΡΑΣ ΥΛΙΚΟΥ ΜΑΘΗΜΑΤΟΣ ΑΠΟ BLACKBOARD VISTA ΣΕ OPEN ECLASS

Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων

Οδηγίες χρήσης της υπηρεσίας πιστοποιηµένης ασύρµατης πρόσβασης µε χρήση εικονικού ιδεατού δικτύου [UCNET-VPN]

ΤΕΧΝΙΚΕΣ ΠΡΟΔΙΑΓΡΑΦΕΣ WEB SERVICES ΓΙΑ ΔΙΑΣΥΝΔΕΣΗ ΜΕ ΤΟ ΥΦΙΣΤΑΜΕΝΟ ΠΛΗΡΟΦΟΡΙΑΚΟ ΣΥΣΤΗΜΑ

Εγκατάσταση και δοκιμή προγραμμάτων για προγραμματισμό στη C

ΕΠΛ425 : Τεχνολογίες Διαδικτύου Εργαστήρια

Υπηρεσία Απομακρυσμένης Πρόσβασης VPN Οδηγός Εγκατάστασης και Διαμόρφωσης για χρήστες λειτουργικών συστημάτων MAC OS X

ΠΡΟΓΡΑΜΜΑ ΑΠΟΜΑΚΡΥΣΜΕΝΗΣ ΕΙΣΑΓΩΓΗΣ ΒΑΘΜΟΛΟΓΙΩΝ ΑΠΟ ΔΙΔΑΣΚΟΝΤΕΣ

Σχεδιασμός Βάσεων Δεδομένων

Στοιχεία Αιτήσεων Ενιαίου Συστήματος Κινητικότητας

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών

ΟΔΗΓΟΣ ΔΗΜΙΟΥΡΓΙΑΣ ΛΟΓΑΡΙΑΣΜΟΥ ΣΤΟ GOOGLE SCHOLAR ΓΙΑ ΤΑ ΜΕΛΗ ΔΙΔΑΚΤΙΚΟΥ - ΕΡΕΥΝΗΤΙΚΟΥ ΠΡΟΣΩΠΙΚΟΥ

CYTA Cloud Server Set Up Instructions

Μανώλης Κιαγιάς, MSc. Aiolos Project. Αρχικές Ρυθμίσεις SSH και εγκατάσταση OpenMPI

(3) Από την εργαλειοθήκη επιλέξτε το εργαλείο «ετικέτας (Label)». Δημιουργήστε μια ετικέτα στην φόρμα σας.

Ανάπτυξη διαδικτυακών εφαρμογών με την Python Το εργαλείο Flask

X-Order Client: ΟΔΗΓΙΕΣ ΓΙΑ ΤΗΝ ΕΝΕΡΓΟΠΟΙΗΣΗ ΤΗΣ ΕΦΑΡΜΟΓΗΣ σε ΔΧΣ Τερματικό

Οδηγός ηµιουργίας Εξετάσεων Adobe Περιεχόµενα:

Paybybank RESTful API GUIDE

ΒΟΗΘΕΙΑ ΓΙΑ ΤΟ ΗΛΕΚΤΡΟΝΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ ( )

Βάσεις Δεδομένων Ι Εξεταστική Περίοδος Φεβρουαρίου 2006

Open eclass Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης

ΣΥΣΤΗΜΑ ΠΑΡΑΚΟΛΟΥΘΗΣΗΣ ΑΕΡΟΣΩΜΑΤΙ ΙΑΚΗΣ ΡΥΠΑΝΣΗΣ ΣΕ ΣΧΕ ΟΝ ΠΡΑΓΜΑΤΙΚΟ ΧΡΟΝΟ

Οδηγός Χρήσης Εργαστηρίων UNIX (LINUX) B103 και 103 και απομακρυσμένης πρόσβασης με την χρήση Free NX

Σχεδιασμός Βάσεων Δεδομένων

ΛΥΚΕΙΟ ΣΧΟΛΙΚΗ ΧΡΟΝΙΑ ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ 2010

X-Order Client: ΟΔΗΓΙΕΣ ΓΙΑ ΤΗΝ ΕΝΕΡΓΟΠΟΙΗΣΗ ΤΗΣ ΕΦΑΡΜΟΓΗΣ σε ΔΧΣ Τερματικό

Φροντιστήριο Ομαδικής Εργασίας ΗΥ360. Αυγουστάκη Αργυρώ

EdoorLock Programmer. EdoorLock Programmer_App.doc

Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης eclass 2.0. Οδηγίες Αναβάθµισης (Upgrade) Αθήνα, 1 Ιουνίου Εισαγωγή

ARTius με PostgreSQL

Vodafone Business Connect

Εργαστήριο 3. Εγκατάσταση LAMP Stack στο AWS

ΚΟΙΝΩΝΙΚΗ ΔΙΚΤΥΩΣΗ ΜΕΣΩ ΚΙΝΗΤΩΝ ΣΥΣΚΕΥΩΝ: ΧΡΗΣΗ ΔΕΚΤΗ GPS ΓΙΑ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΚΟΙΝΩΝΙΚΗΣ ΔΙΚΤΥΩΣΗΣ ΣΕ ΚΙΝΗΤΗ ΣΥΣΚΕΥΗ

Περιήγηση Σύνταξη στο Clilstore

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης

Οδηγός Βήμα-Βήμα για να εγκαταστήσετε τα Windows 7 στον Η/Υ σας

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ LIVETRIP TRAVELLER

Εγχειρίδιο εγκατάστασης και βασικής παραμετροποίησης σεναρίου εστίασης

Οδηγίες εγκατάστασης plug-in για δημιουργία του σχήματος της Europeana σε αποθετήριο DSpace, εκτέλεση και παραμετροποίηση

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ «ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ»

PayByBank RESTful API GUIDE

Άσκηση. Εξοικείωση με την πλατφόρμα Moodle

Οδηγός Εκτύπωσης. Πανεπιστήμιο Κύπρου, Τμήμα Πληροφορικής. Ομάδα Τεχνικής Υποστήριξης

Μεθόδων Επίλυσης Προβλημάτων

Διαδικτυακές Εφαρμογές Ενότητα 7: Προσπέλαση ΒΔ με το JDBC

Εργαστήριο #10 (Ε10) 1

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τµήµα Πληροφορικής ΕΠΛ 646 Προχωρηµένα Θέµατα Βάσεων Δεδοµένων ΑΣΚΗΣΗ 3 ΝοSQL Βάσεις Δεδοµένων (Δηµιουργία Εφαρµογής για Επερωτήσεις σε Web 2.0 APIs) Ι. Στόχος Άσκησης Ηµεροµηνία Ανάθεσης: Πέµπτη, 12/11/2015 Ηµεροµηνία Παράδοσης: Σάββατο, 21/11/2015 (9 ηµέρες) Διδάσκων: Δηµήτρης Ζεϊναλιπούρ (Να υποβληθούν όλα τα Design Documents µέσω του Moodle) Ο στόχος της άσκησης είναι η δηµιουργία µιας υποθετικής εφαρµογής στη βάση εγγράφων CouchDB και η εισαγωγή σε αυτή δεδοµένων JSON τα οποία θα έχετε ανακτήσει από το GitHub API (http://developer.github.com/). Τελικός στόχος της άσκησης είναι η δηµιουργία ανάλογων Design Views για την εξαγωγή των δεδοµένων που θα ζητηθούν πιο κάτω από τη CouchDB µέσω curl (http://curl.haxx.se/) και η προσοµοίωση του δικού σας GitHub API µε επαυξηµένες δυνατότητες (enhanced GitHub API). Επίσης, µέρος της άσκησης έχει σαν στόχο τη δηµιουργία Master-Master replicas της βάσης σας στην ίδια τοποθεσία µε τον διαθέτη σας. ΙΙ. Προεργασία Εγκαταστήστε την CouchDB και το curl αν δεν είναι ήδη εγκατεστηµένα στο Virtual Machine (VM) που σας έχει δοθεί ή στον προσωπικό σας Η/Υ. Στη συνέχεια σιγουρευτείτε ότι εγκαταστήσατε επιτυχηµένα την CouchDB ανοίγοντας το τερµατικό στο VM και εκτελώντας την εντολή: curl http://127.0.0.1:5984/ Η απάντηση η οποία θα πάρετε θα πρέπει να είναι JSON µορφής και να µοιάζει: {"couchdb":"welcome","uuid":"ef4ae6807d42cfc62aa32a787f961332","version":"1.6.1","vendor":{"version":"1.6.1-1","name":"homebrew"}} Σηµείωση: Μην ξεχνάτε ότι αν δεν έχετε ρυθµίσει το CouchDB service να ξεκινάει µε την εκκίνηση του συστήµατος σας θα πρέπει να το κάνετε αλλιώς δεν θα µπορείτε να πάρετε καµία απάντηση. Για να το ξεκινήσετε χρησιµοποιείστε την εντολή: service couchdb start σαν root χρήστης 1 από 5

ΙΙΙ. Εξαγωγή δεδοµένων από το GitHub και εισαγωγή δεδοµένων στη δική σας βάση Χρησιµοποιώντας τo curl και µέσω του GitHub API (το οποίο µπορείτε να βρείτε στο http://developer.github.com/) προσπαθήστε να εξάγετε όλα τα διαθέσιµα αποθετήρια του Twitter και του Facebook (παράδειγµα δίνεται στο τέλος της εκφώνησης). Για να σιγουρευτείτε ότι έχετε εξάγει τα σωστά αποτελέσµατα µπορείτε να ελέγξετε και να συγκρίνετε τα αποτελέσµατα σας µε τα αποθετήρια τα οποία µπορείτε να βρείτε στους ακόλουθους συνδέσµους: Facebook GitHub Page: https://github.com/twitter Twitter GitHub Page https://github.com/facebook Δηµιουργήστε τη δική σας βάση στην CouchDB την οποία είχατε εγκαταστήσει στο προηγούµενο βήµα και εισάγετε τα δεδοµένα τα οποία εξάγατε από το GitHub API σε αυτή. ΙV. Δηµιουργία Design Documents και MAP/REDUCE επερωτηµάτων Χρησιµοποιώντας τη βάση την οποία θα έχετε σε αυτό το στάδιο προσπαθήστε να δηµιουργήσετε τα ανάλογα Design Documents µε τα ανάλογα Views και τις ανάλογες Map/Reduce συναρτήσεις µε την βοήθεια των οποίων θα προσπαθήσετε να δώσετε απαντήσεις στις πιο κάτω επερωτήσεις δηµιουργώντας έτσι τη δική σας version του GitHub API (enhanced GitHub API). Κατά τη διάρκεια αυτή της άσκησης θα πρέπει να δηµιουργήσετε ένα Design Document ως ακολούθως: _design_both Και τα οποία παράγουν τον πιο κάτω σύνδεσµο: http://127.0.0.1:5984/mydb/_design/both Στο πιο πάνω Design Document θα πρέπει να προσθέσετε τα Views (Q1, Q2,, Q14) έτσι ώστε να καταφέρετε να απαντήσετε τα παρακάτω ερωτήµατα (queries). Οι επί µέρους όψεις πρέπει να είναι διαθέσιµες µέσω: http://127.0.0.1:5984/github/_design/both/_view/qid ή µε επιπλέον ορίσµατα στο URL (π.χ., http://127.0.0.1:5984/github/_design/both/_view/qid?group=true, ascending, descending, startkey, endkey, limit, κτλ., βλέπε https://wiki.apache.org/couchdb/http_view_api) ΙV. MAP/REDUCE ερωτήµατα Q1. Επιλέξτε όλα τα name των διαθέσιµων αποθετηρίων. Αποτέλεσµα: {"id":"facebook","key":165883,"value":"codemod"... Q2. Επιλέξτε όλα τα name των διαθέσιµων αποθετηρίων που ανήκουν στο Twitter. Αποτέλεσµα: {"id":"twitter","key":578435,"value":"elephant-bird"... Q3. Επιλέξτε όλα τα name των διαθέσιµων αποθετηρίων που ανήκουν στον owner.id 69631. Αποτέλεσµα: {"id":"facebook","key":165883,"value":"codemod"... Q4. Επιλέξτε το αποθετήριο µε τους πιο πολλούς watchers από όλα τα αποθετήρια. Αποτέλεσµα: {"id":"<repository>","key":<watchers>,"value":[<id>,"<name>"]} 2 από 5

Q5. Επιλέξτε το αποθετήριο µε τους πιο πολλούς watchers από τα αποθετήρια του Twitter Αποτέλεσµα: {"id":"<repository>","key":<watchers>,"value":[<id>,"<name>"]} Q6. Επιλέξτε τα δύο πιο διακλαδωµένα (forked) αποθετήρια από όλα τα αποθετήρια Αποτέλεσµα:[ {"id":"<repository>","key":<forks>,"value":[<id>,"<name>"] ] Q7. Επιλέξτε τα δύο πιο διακλαδωµένα (forked) αποθετήρια από τα αποθετήρια του Facebook Αποτέλεσµα:[ {"id":"<repository>","key":<forks>,"value":[<id>,"<name>"] ] Q8. Επιλέξτε το πιο παλιό χρονολογικά (created_at) αποθετήριο του Twitter Αποτέλεσµα:{"id":"<repository>","key":<created_at>,"value":[<id>,"<name>"]} Q9. Επιλέξτε τα 5 πιο ανανεωµένα (updated_at) αποθετήρια του Twitter που είναι υλοποιηµένα στην (language) Java. Αποτέλεσµα:[ {"id":"<repository>","key":<updated_at>,"value":[<id>,"<name>","<language>"]},... ] Q10. Επιστρέψετε τον αριθµό των συνολικών forks για τα αποθετήρια του Twitter Αποτέλεσµα:{"key":null,"value":<answer>} Q11. Επιστρέψετε τον αριθµό των συνολικών forks για τα ΟΛΑ τα αποθετήρια Αποτέλεσµα:{"key":null,"value":<answer>} Q12. Επιστρέψετε τον αριθµό των συνολικών forks για τα όλα τα αποθετήρια ανά κατηγορία Twitter και για το Facebook στο ίδιο JSON αποτέλεσµα. Αποτέλεσµα: [ {"key":"facebook","value":<answer>{"key":"twitter","value":<answer>} ] Παραδοτέα Παραδώσετε όλα τα πηγαία αρχεία σας µέσω του Moodle σε 1 συµπιεσµένο αρχείο (as3.zip): Α) download.txt: καταγράψετε τις εντολές που χρησιµοποιήσατε για ανάκτηση και προσθήκη των δεδοµένων από το Github στην CouchDB. Β) queries.txt: καταγράψετε για κάθε επί µέρους Query τα πιο κάτω: Map/Reduce συνάρτηση URL για εκτέλεση του Query Απάντηση 3 από 5

Παράδειγµα διαλογικής επικοινωνίας µε github.com curl i https://api.github.com/users/facebook/repos [ { "id": 39573797, "name": "android-jsc", "full_name": "facebook/android-jsc", "owner": { "login": "facebook", "id": 69631, "avatar_url": "https://avatars.githubusercontent.com/u/69631?v=3", "gravatar_id": "", "url": "https://api.github.com/users/facebook", "html_url": "https://github.com/facebook", "followers_url": "https://api.github.com/users/facebook/followers", "following_url": "https://api.github.com/users/facebook/following{/other_user}", "gists_url": "https://api.github.com/users/facebook/gists{/gist_id}", "starred_url": "https://api.github.com/users/facebook/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/facebook/subscriptions", "organizations_url": "https://api.github.com/users/facebook/orgs", "repos_url": "https://api.github.com/users/facebook/repos", "events_url": "https://api.github.com/users/facebook/events{/privacy}", "received_events_url": "https://api.github.com/users/facebook/received_events", "type": "Organization", "site_admin": false "private": false, "html_url": "https://github.com/facebook/android-jsc", "description": "Scripts for building JSC for Android", "fork": false, "url": "https://api.github.com/repos/facebook/android-jsc", "forks_url": "https://api.github.com/repos/facebook/android-jsc/forks", "keys_url": "https://api.github.com/repos/facebook/android-jsc/keys{/key_id}", "collaborators_url": "https://api.github.com/repos/facebook/androidjsc/collaborators{/collaborator}", "teams_url": "https://api.github.com/repos/facebook/android-jsc/teams", "hooks_url": "https://api.github.com/repos/facebook/android-jsc/hooks", "issue_events_url": "https://api.github.com/repos/facebook/androidjsc/issues/events{/number}", "events_url": "https://api.github.com/repos/facebook/android-jsc/events", "assignees_url": "https://api.github.com/repos/facebook/android-jsc/assignees{/user}", "branches_url": "https://api.github.com/repos/facebook/android-jsc/branches{/branch}", "tags_url": "https://api.github.com/repos/facebook/android-jsc/tags", "blobs_url": "https://api.github.com/repos/facebook/android-jsc/git/blobs{/sha}", "git_tags_url": "https://api.github.com/repos/facebook/android-jsc/git/tags{/sha}", "git_refs_url": "https://api.github.com/repos/facebook/android-jsc/git/refs{/sha}", "trees_url": "https://api.github.com/repos/facebook/android-jsc/git/trees{/sha}", "statuses_url": "https://api.github.com/repos/facebook/android-jsc/statuses/{sha}", "languages_url": "https://api.github.com/repos/facebook/android-jsc/languages", "stargazers_url": "https://api.github.com/repos/facebook/android-jsc/stargazers", "contributors_url": "https://api.github.com/repos/facebook/android-jsc/contributors", "subscribers_url": "https://api.github.com/repos/facebook/android-jsc/subscribers", "subscription_url": "https://api.github.com/repos/facebook/android-jsc/subscription", "commits_url": "https://api.github.com/repos/facebook/android-jsc/commits{/sha}", "git_commits_url": "https://api.github.com/repos/facebook/android-jsc/git/commits{/sha}", "comments_url": "https://api.github.com/repos/facebook/android-jsc/comments{/number}", "issue_comment_url": "https://api.github.com/repos/facebook/androidjsc/issues/comments{/number}", "contents_url": "https://api.github.com/repos/facebook/android-jsc/contents/{+path}", "compare_url": "https://api.github.com/repos/facebook/android-jsc/compare/{base}...{head}", "merges_url": "https://api.github.com/repos/facebook/android-jsc/merges", "archive_url": "https://api.github.com/repos/facebook/android-jsc/{archive_format}{/ref}", "downloads_url": "https://api.github.com/repos/facebook/android-jsc/downloads", "issues_url": "https://api.github.com/repos/facebook/android-jsc/issues{/number}", "pulls_url": "https://api.github.com/repos/facebook/android-jsc/pulls{/number}", "milestones_url": "https://api.github.com/repos/facebook/android-jsc/milestones{/number}", "notifications_url": "https://api.github.com/repos/facebook/android- 4 από 5

jsc/notifications{?since,all,participating}", "labels_url": "https://api.github.com/repos/facebook/android-jsc/labels{/name}", "releases_url": "https://api.github.com/repos/facebook/android-jsc/releases{/id}", "created_at": "2015-07-23T15:01:12Z", "updated_at": "2015-11-08T15:15:02Z", "pushed_at": "2015-10-05T10:10:39Z", "git_url": "git://github.com/facebook/android-jsc.git", "ssh_url": "git@github.com:facebook/android-jsc.git", "clone_url": "https://github.com/facebook/android-jsc.git", "svn_url": "https://github.com/facebook/android-jsc", "homepage": "", "size": 192, "stargazers_count": 27, "watchers_count": 27, "language": "C", "has_issues": true, "has_downloads": true, "has_wiki": true, "has_pages": false, "forks_count": 5, "mirror_url": null, "open_issues_count": 2, "forks": 5, "open_issues": 2, "watchers": 27, "default_branch": "master" { "id": 21265042, "name": "AsyncDisplayKit", "full_name": "facebook/asyncdisplaykit",...... ] Σηµείωση για Github API v3: Rate Limiting For requests using Basic Authentication or OAuth, you can make up to 5,000 requests per hour. For unauthenticated requests, the rate limit allows you to make up to 60 requests per hour. Unauthenticated requests are associated with your IP address, and not the user making requests. Καλή Επιτυχία! 5 από 5