diff --git a/Lab4-SQL/1_b.py b/Lab4-SQL/1_b.py new file mode 100644 index 0000000..848b4a5 --- /dev/null +++ b/Lab4-SQL/1_b.py @@ -0,0 +1,30 @@ +import csv + +table = "COVID" +csv_files = ["data1.csv","data2.csv","data3.csv","data4.csv","data5.csv"] + +for csv_filename in csv_files: + sql_filename = csv_filename.split('.')[0] + ".sql" + sql_file = open(sql_filename, "w") + sql_file.close() + sql_file = open(sql_filename, "a") + sql_file.write("begin;\n") + sql_file.write("delete from " + table + ";\n") + + with open(csv_filename, 'r') as csvfile: + csvreader = csv.reader(csvfile) + header = next(csvreader) + for row in csvreader: + sql_file.write("insert into " + table + " values (") + n = len(row) + for i in range(n): + if row[i] in ["NULL", ""]: + sql_file.write("NULL") + else: + sql_file.write("'" + row[i] + "'") + if i < n-1: + sql_file.write(", ") + sql_file.write(");\n") + + sql_file.write("end;\n") + sql_file.close() \ No newline at end of file diff --git a/Lab4-SQL/1_c.py b/Lab4-SQL/1_c.py new file mode 100644 index 0000000..045bc97 --- /dev/null +++ b/Lab4-SQL/1_c.py @@ -0,0 +1,24 @@ +import psycopg2, config, time + +table = "COVID" +csv_files = ["data1.csv","data2.csv","data3.csv","data4.csv","data5.csv"] + +for file in csv_files: + conn = psycopg2.connect(database=config.name, user=config.user, password=config.pswd, host=config.host, port=config.port) + cur = conn.cursor() + sql = "delete from " + table + ";" + cur.execute(sql) + cur.close() + conn.commit() + conn.close() + t1 = time.time() + conn = psycopg2.connect(database=config.name, user=config.user, password=config.pswd, host=config.host, port=config.port) + cur = conn.cursor() + sql = "copy " + table + " from STDIN csv header;" + f = open(file, "r") + cur.copy_expert(sql, f) + cur.close() + conn.commit() + conn.close() + t2 = time.time() + print(file, " ", t2-t1) \ No newline at end of file diff --git a/Lab4-SQL/1_d.py b/Lab4-SQL/1_d.py new file mode 100644 index 0000000..1a7df34 --- /dev/null +++ b/Lab4-SQL/1_d.py @@ -0,0 +1,36 @@ +import psycopg2, config, csv, time + +table = "COVID" +csv_files = ["data1.csv","data2.csv","data3.csv","data4.csv","data5.csv"] + +for file in csv_files: + conn = psycopg2.connect(database=config.name, user=config.user, password=config.pswd, host=config.host, port=config.port) + cur = conn.cursor() + sql = "delete from " + table + ";" + cur.execute(sql) + cur.close() + conn.commit() + conn.close() + t1 = time.time() + conn = psycopg2.connect(database=config.name, user=config.user, password=config.pswd, host=config.host, port=config.port) + cur = conn.cursor() + + with open(file, 'r') as csvfile: + csvreader = csv.reader(csvfile) + header = next(csvreader) + + for row in csvreader: + sql = "insert into " + table + " values (" + n = len(row) + for i in range(n): + sql += "'" + row[i] + "'" + if i < n-1: + sql += ", " + sql += ");" + cur.execute(sql) + + cur.close() + conn.commit() + conn.close() + t2 = time.time() + print(file, " ", t2-t1) \ No newline at end of file diff --git a/Lab4-SQL/1_e.py b/Lab4-SQL/1_e.py new file mode 100644 index 0000000..aae51ee --- /dev/null +++ b/Lab4-SQL/1_e.py @@ -0,0 +1,36 @@ +import psycopg2, config, csv, time + +table = "COVID" +csv_files = ["data6.csv","data7.csv","data8.csv","data9.csv","data10.csv"] + +for file in csv_files: + conn = psycopg2.connect(database=config.name, user=config.user, password=config.pswd, host=config.host, port=config.port) + cur = conn.cursor() + sql = "delete from " + table + ";" + cur.execute(sql) + cur.close() + conn.commit() + conn.close() + t1 = time.time() + + with open(file, 'r') as csvfile: + csvreader = csv.reader(csvfile) + header = next(csvreader) + + for row in csvreader: + sql = "insert into " + table + " values (" + n = len(row) + for i in range(n): + sql += "'" + row[i] + "'" + if i < n-1: + sql += ", " + sql += ");" + conn = psycopg2.connect(database=config.name, user=config.user, password=config.pswd, host=config.host, port=config.port) + cur = conn.cursor() + cur.execute(sql) + cur.close() + conn.commit() + conn.close() + + t2 = time.time() + print(file, " ", t2-t1) \ No newline at end of file diff --git a/Lab4-SQL/2_a.py b/Lab4-SQL/2_a.py new file mode 100644 index 0000000..caaa6a8 --- /dev/null +++ b/Lab4-SQL/2_a.py @@ -0,0 +1,32 @@ +import psycopg2, config, time +from matplotlib import pyplot as plt + +table = "COVID" +num_rows = 100 +x = [] +y = [] + +conn = psycopg2.connect(database=config.name, user=config.user, password=config.pswd, host=config.host, port=config.port) +cur = conn.cursor() + +for i in range(100000//num_rows): + sql = "select * from " + table + " limit " + str(num_rows) + " offset " + str(i*num_rows) + ";" + t1 = time.time() + cur.execute(sql) + rows = cur.fetchall() + t2 = time.time() + t = t2-t1 + if t > 0: + x += [i+1] + y += [t] + +bin = 40 +x = [sum(x[i:i+bin])/bin for i in range(0,len(x),bin)] +y = [sum(y[i:i+bin])/bin for i in range(0,len(y),bin)] + +cur.close() +conn.close() +plt.plot(x,y) +plt.xlabel("iteration") +plt.ylabel("time (s)") +plt.show() \ No newline at end of file diff --git a/Lab4-SQL/2_b.py b/Lab4-SQL/2_b.py new file mode 100644 index 0000000..4c3a99c --- /dev/null +++ b/Lab4-SQL/2_b.py @@ -0,0 +1,33 @@ +import psycopg2, config, time +from matplotlib import pyplot as plt + +table = "COVID" +num_rows = 100 +x = [] +y = [] + +conn = psycopg2.connect(database=config.name, user=config.user, password=config.pswd, host=config.host, port=config.port) +cur = conn.cursor() + +sql = "select * from " + table + ";" +cur.execute(sql) + +for i in range(100000//num_rows): + t1 = time.time() + rows = cur.fetchmany(num_rows) + t2 = time.time() + t = t2-t1 + if t > 0 or True: + x += [i+1] + y += [t] + +bin = 40 +x = [sum(x[i:i+bin])/bin for i in range(0,len(x),bin)] +y = [sum(y[i:i+bin])/bin for i in range(0,len(y),bin)] + +cur.close() +conn.close() +plt.plot(x,y) +plt.xlabel("iteration") +plt.ylabel("time (s)") +plt.show() \ No newline at end of file diff --git a/Lab4-SQL/Problem Statement.pdf b/Lab4-SQL/Problem Statement.pdf new file mode 100644 index 0000000..f5e4b58 Binary files /dev/null and b/Lab4-SQL/Problem Statement.pdf differ diff --git a/Lab4-SQL/README.md b/Lab4-SQL/README.md new file mode 100644 index 0000000..9c700d4 --- /dev/null +++ b/Lab4-SQL/README.md @@ -0,0 +1,5 @@ +# Benchmarking different methods in PostgreSQL + +* used psycopg2 library to connect to database via python +* comparing bulk loading with individual INSERT statements wrt time-taken +* using CURSORS to reduce fetch time of bulk queries \ No newline at end of file diff --git a/Lab4-SQL/Report.pdf b/Lab4-SQL/Report.pdf new file mode 100644 index 0000000..2227795 Binary files /dev/null and b/Lab4-SQL/Report.pdf differ diff --git a/Lab4-SQL/config.py b/Lab4-SQL/config.py new file mode 100644 index 0000000..4e8a31e --- /dev/null +++ b/Lab4-SQL/config.py @@ -0,0 +1,5 @@ +name = "lab4db" +user = "postgres" +pswd = "1234" +host = "127.0.0.1" +port = "5432" \ No newline at end of file diff --git a/Lab6-Neo4j/Problem Statement.pdf b/Lab6-Neo4j/Problem Statement.pdf new file mode 100644 index 0000000..7e4436a Binary files /dev/null and b/Lab6-Neo4j/Problem Statement.pdf differ diff --git a/Lab6-Neo4j/README.md b/Lab6-Neo4j/README.md new file mode 100644 index 0000000..6e58f25 --- /dev/null +++ b/Lab6-Neo4j/README.md @@ -0,0 +1,4 @@ +# Graph Databases using Neo4j + +* loading Twitter dataset (in CSV format) using Python +* querying the database with Cypher Query Language \ No newline at end of file diff --git a/Lab6-Neo4j/contains.csv b/Lab6-Neo4j/contains.csv new file mode 100644 index 0000000..50465ec --- /dev/null +++ b/Lab6-Neo4j/contains.csv @@ -0,0 +1,201 @@ +tweet_id,hashtag_id +1,1 +2,2 +2,3 +2,4 +4,5 +5,6 +6,7 +8,8 +8,9 +8,10 +8,11 +8,12 +8,13 +8,14 +9,15 +9,16 +9,17 +9,18 +9,19 +10,20 +11,21 +11,22 +11,23 +11,24 +11,25 +12,26 +12,27 +12,28 +12,29 +12,30 +12,31 +12,32 +12,33 +12,34 +13,35 +13,36 +14,37 +14,38 +14,39 +15,40 +15,41 +15,42 +15,43 +15,44 +16,45 +16,46 +16,47 +16,48 +17,49 +17,50 +19,51 +19,52 +21,53 +22,54 +22,55 +22,56 +22,57 +22,58 +22,59 +23,60 +23,61 +25,62 +25,63 +25,64 +25,65 +25,66 +25,67 +26,68 +26,69 +27,70 +27,71 +27,72 +27,73 +27,74 +27,75 +28,76 +30,77 +32,78 +32,79 +32,80 +32,81 +32,82 +32,83 +34,84 +34,85 +35,86 +35,87 +36,88 +37,89 +37,90 +37,91 +38,92 +38,93 +38,94 +38,95 +39,96 +41,97 +41,98 +45,99 +45,100 +45,101 +45,102 +45,103 +45,104 +45,105 +46,106 +46,107 +48,108 +48,109 +48,110 +49,111 +51,112 +51,113 +51,114 +52,115 +52,116 +52,117 +52,118 +53,119 +55,120 +57,121 +58,122 +58,123 +58,124 +58,125 +58,126 +58,127 +58,128 +59,129 +59,130 +59,131 +59,132 +59,133 +60,134 +60,135 +60,136 +60,137 +61,138 +61,139 +62,140 +62,141 +62,142 +63,143 +63,144 +63,145 +63,146 +66,147 +67,148 +70,149 +70,150 +70,151 +70,152 +71,153 +71,154 +71,155 +72,156 +72,157 +73,158 +76,159 +76,160 +76,161 +77,162 +78,163 +78,164 +78,165 +80,166 +80,167 +80,168 +81,169 +81,170 +82,171 +82,172 +82,173 +82,174 +82,175 +83,176 +83,177 +85,178 +85,179 +85,180 +85,181 +88,182 +88,183 +88,184 +88,185 +89,186 +91,187 +91,188 +91,189 +92,190 +93,191 +93,192 +94,193 +94,194 +99,195 +99,196 +100,197 +100,198 +100,199 +100,200 diff --git a/Lab6-Neo4j/follows.csv b/Lab6-Neo4j/follows.csv new file mode 100644 index 0000000..4a84eb2 --- /dev/null +++ b/Lab6-Neo4j/follows.csv @@ -0,0 +1,43 @@ +user1_id,user2_id +8,1 +3,1 +4,1 +5,1 +5,2 +10,2 +7,2 +3,2 +8,2 +9,2 +6,2 +6,3 +10,3 +8,3 +1,3 +9,3 +4,3 +4,5 +3,5 +2,6 +8,6 +8,7 +3,7 +2,7 +4,7 +6,7 +1,7 +5,7 +6,8 +3,9 +4,9 +5,9 +8,9 +6,9 +2,9 +7,9 +1,9 +10,9 +4,10 +5,10 +5,11 +10,11 diff --git a/Lab6-Neo4j/hashtags.csv b/Lab6-Neo4j/hashtags.csv new file mode 100644 index 0000000..97f41ee --- /dev/null +++ b/Lab6-Neo4j/hashtags.csv @@ -0,0 +1,201 @@ +id,hashtag +1,run +2,lyft +3,disapointed +4,getthanked +5,model +6,motivation +7,allshowandnogo +8,school +9,exams +10,hate +11,imagine +12,actorslife +13,revolutionschool +14,girl +15,allin +16,cavs +17,champions +18,cleveland +19,clevelandcavaliers +20,gr8 +21,ireland +22,blog +23,silver +24,gold +25,forex +26,orlando +27,standwithorlando +28,pulseshooting +29,orlandoshooting +30,biggerproblems +31,selfish +32,heabreaking +33,values +34,love +35,80days +36,gettingfed +37,cnn +38,michigan +39,tcot +40,australia +41,opkillingbay +42,seashepherd +43,helpcovedolphins +44,thecove +45,ngry#got7 +46,junior +47,yugyoem +48,omg +49,thankful +50,positive +51,friday! +52,cookies +53,euro2016 +54,badday +55,coneofshame +56,cats +57,pissed +58,funny +59,laughs +60,wine +61,weekend? +62,tgif +63,ff +64,gamedev +65,indiedev +66,indiegamedev +67,squad! +68,upsideofflorida +69,shopalyssas +70,smiles +71,media +72,pressconference +73,antalya +74,turkey +75,throwback +76,ica16 +77,rip#orlando +78,alohafriday +79,time +80,not +81,exist +82,positivevibes +83,hawaiian +84,goodnight +85,badmonday +86,neverump +87,xenophobia +88,taylorswift1989 +89,travelingram +90,dalat +91,ripinkylife +92,photoshop. +93,enoughisenough +94,dontphotoshopeverything +95,wheresallthenaturalphotos +96,cedarpoint. +97,bookworm +98,ontothenextnovel +99,looms#flowers +100,grow +101,gardening +102,iphonesia +103,bliss +104,blooms +105,basilicabotanica +106,i_am +107,affirmation +108,whenever +109,something +110,wrong +111,illustration +112,abc2020 +113,pulseclub +114,prayfororlando +115,bihday +116,nose +117,job +118,petunia +119,albanpilgrimage +120,wedding# +121,peace +122,video +123,fathers +124,day +125,rayos +126,world +127,hotvideo +128,videos +129,ascot +130,fashion +131,monochrome +132,style +133,instahappyday +134,selfie +135,yolo +136,xoxo +137,like4like +138,work +139,mindset +140,christinarip +141,voice +142,christinagrimmie +143,roar +144,preschoolers +145,students +146,proud +147,chatiado +148,ay# +149,travel +150,yeah +151,thejourneybegins +152,hello +153,luv +154,hottweets +155,venusexchange +156,aworks +157,solutions +158,disneygatorattack +159,udtapunjab' +160,"amarinder," +161,aap +162,senseaboutmaths +163,race +164,identity +165,med +166,golfstrengthandconditioning +167,strong +168,felixfoisgolf +169,greathonour +170,careerconvos +171,innovative +172,wateringhole +173,cave +174,mountaintop +175,campfire +176,altright +177,whitesupremacy +178,heal +179,altwaystoheal +180,healthy +181,peace! +182,midweek +183,newmusic +184,watchthisspace +185,guitar +186,up +187,snapchat +188,redhead +189,vermillionred +190,people +191,goodtimes +192,history +193,summeime +194,memories +195,hump +196,humpers +197,shop +198,cool +199,home +200,fun diff --git a/Lab6-Neo4j/loaddata.py b/Lab6-Neo4j/loaddata.py new file mode 100644 index 0000000..a14797b --- /dev/null +++ b/Lab6-Neo4j/loaddata.py @@ -0,0 +1,45 @@ +import csv + +file = open("loaddata.cypher", 'w') + +with open("users.csv", 'r') as csvfile: + csvreader = csv.reader(csvfile) + fields = next(csvreader) + for row in csvreader: + file.write('CREATE (:User {id: ' + row[0] + ', name: "' + row[1] + '"});\n') + +with open("tweets.csv", 'r') as csvfile: + csvreader = csv.reader(csvfile) + fields = next(csvreader) + for row in csvreader: + file.write('CREATE (:Tweet {id: ' + row[0] + ', text: "' + row[1] + '"});\n') + +with open("hashtags.csv", 'r') as csvfile: + csvreader = csv.reader(csvfile) + fields = next(csvreader) + for row in csvreader: + file.write('CREATE (:Hashtag {id: ' + row[0] + ', tag: "' + row[1] + '"});\n') + +with open("follows.csv", 'r') as csvfile: + csvreader = csv.reader(csvfile) + fields = next(csvreader) + for row in csvreader: + file.write('MATCH (a:User {id: ' + row[0] + '}), (b:User {id: ' + row[1] + '}) CREATE (a)-[:Follows]->(b);\n') + +with open("sent.csv", 'r') as csvfile: + csvreader = csv.reader(csvfile) + fields = next(csvreader) + for row in csvreader: + file.write('MATCH (a:User {id: ' + row[0] + '}), (b:Tweet {id: ' + row[1] + '}) CREATE (a)-[:Sent]->(b);\n') + +with open("mentions.csv", 'r') as csvfile: + csvreader = csv.reader(csvfile) + fields = next(csvreader) + for row in csvreader: + file.write('MATCH (a:Tweet {id: ' + row[0] + '}), (b:User {id: ' + row[1] + '}) CREATE (a)-[:Mentions]->(b);\n') + +with open("contains.csv", 'r') as csvfile: + csvreader = csv.reader(csvfile) + fields = next(csvreader) + for row in csvreader: + file.write('MATCH (a:Tweet {id: ' + row[0] + '}), (b:Hashtag {id: ' + row[1] + '}) CREATE (a)-[:Contains]->(b);\n') \ No newline at end of file diff --git a/Lab6-Neo4j/mentions.csv b/Lab6-Neo4j/mentions.csv new file mode 100644 index 0000000..60f973f --- /dev/null +++ b/Lab6-Neo4j/mentions.csv @@ -0,0 +1,66 @@ +tweet_id,user_id +1,1 +2,2 +2,3 +7,4 +7,5 +7,6 +7,7 +7,8 +7,9 +7,10 +7,11 +10,1 +10,2 +14,3 +19,4 +24,5 +24,6 +25,7 +25,8 +25,9 +25,10 +25,11 +25,1 +27,2 +29,3 +32,4 +32,5 +32,6 +32,7 +33,8 +38,9 +44,10 +52,11 +53,1 +54,2 +55,3 +57,4 +59,5 +62,6 +65,7 +66,8 +71,9 +74,10 +77,11 +77,1 +77,2 +77,3 +77,4 +78,5 +78,6 +79,7 +79,8 +81,9 +81,10 +82,11 +82,1 +82,2 +90,3 +90,4 +91,5 +91,6 +93,7 +95,8 +96,9 +99,10 diff --git a/Lab6-Neo4j/queries.txt b/Lab6-Neo4j/queries.txt new file mode 100644 index 0000000..a3da163 --- /dev/null +++ b/Lab6-Neo4j/queries.txt @@ -0,0 +1,19 @@ +a. MATCH (n:User)-[:Sent]->(:Tweet)-[:Mentions]->(n:User) RETURN n.name ORDER BY n.name; + +b. MATCH (t:Tweet)-[:Contains]->(h:Hashtag) WHERE h.tag = 'proud' AND t.text =~ 'we.*' RETURN t.text; + +c. MATCH (n:User)-[:Sent]->(t:Tweet)<-[:Sent]-(:User {name: "Jessica"}) WHERE NOT (t)-[:Contains]->(:Hashtag) RETURN n.name, t.text; + +d. MATCH (n:User)-[:Sent]->(t:Tweet)<-[:Sent]-(j:User {name: "Jessica"}) WHERE NOT (t)-[:Contains]->(:Hashtag) AND NOT (n)-[:Follows]->(j) RETURN n.name; + +e. MATCH (:User)-[:Follows]->(n:User) RETURN n.name, count(*) as followers ORDER BY followers DESC LIMIT 5; + +f. MATCH p = (:User {name: "Ashley"})-[:Follows*]->(n:User) WHERE n.name<>"Ashley" RETURN n.name, max(length(p)) + +g. MATCH (:User {name: "Thomas"})-[:Follows]->(:User)<-[:Follows]-(n:User) RETURN n.name, count(*) as cnt ORDER BY cnt DESC, n.name LIMIT 5; + +h. MATCH (n:User)-[:Sent]->(t:Tweet)-[:Mentions]->(x:User) WHERE NOT (n)-[:Follows]->(x) and n<>x RETURN n.name, x.name, t.text; + +i. MATCH (n:User)-[:Sent]->(:Tweet)-[:Contains]->(h:Hashtag) WHERE (:User {name: "Thomas"})-[:Sent]->(:Tweet)-[:Contains]->(h:Hashtag) and n.name<>"Thomas" RETURN DISTINCT n.name; + +j. MATCH (:User {name: "Thomas"})-[:Follows]->(:User)<-[:Follows]-(m:User) WITH m, count(*) as c ORDER By c DESC, m.name LIMIT 5 MATCH (x:User)<-[:Follows]-(m:User) RETURN x.name, count(*) as cnt ORDER BY cnt DESC, x.name LIMIT 2; \ No newline at end of file diff --git a/Lab6-Neo4j/sent.csv b/Lab6-Neo4j/sent.csv new file mode 100644 index 0000000..821bd33 --- /dev/null +++ b/Lab6-Neo4j/sent.csv @@ -0,0 +1,109 @@ +user_id,tweet_id +1,1 +2,2 +3,3 +4,4 +5,5 +6,6 +7,7 +8,8 +9,9 +10,10 +11,11 +1,12 +2,13 +3,14 +4,15 +5,16 +6,17 +7,18 +8,19 +9,20 +10,21 +11,22 +1,23 +2,24 +3,25 +4,26 +5,27 +6,28 +7,29 +8,30 +9,31 +10,32 +11,33 +1,34 +2,35 +3,36 +4,37 +5,38 +6,39 +7,40 +8,41 +9,42 +10,43 +11,44 +1,45 +2,46 +3,47 +4,48 +5,49 +6,50 +7,51 +8,52 +9,53 +10,54 +11,55 +1,56 +2,57 +3,58 +4,59 +5,60 +6,61 +7,62 +8,63 +9,64 +10,65 +11,66 +1,67 +2,68 +3,69 +4,70 +5,71 +6,72 +7,73 +8,74 +9,75 +10,76 +11,77 +1,78 +2,79 +3,80 +4,81 +5,82 +6,83 +7,84 +8,85 +9,86 +10,87 +11,88 +1,89 +2,90 +3,91 +4,92 +5,93 +6,94 +7,95 +8,96 +9,97 +10,98 +11,99 +1,100 +2,5 +3,16 +4,3 +5,18 +6,18 +8,18 +9,18 +10,84 diff --git a/Lab6-Neo4j/tweets.csv b/Lab6-Neo4j/tweets.csv new file mode 100644 index 0000000..493b9c9 --- /dev/null +++ b/Lab6-Neo4j/tweets.csv @@ -0,0 +1,101 @@ +id,tweet +1,@James when a father is dysfunctional and is so selfish he drags his kids into his dysfunction. #run +2,@Elizabeth @John thanks for #lyft credit i can't use cause they don't offer wheelchair vans in pdx. #disapointed #getthanked +3,bihday your majesty +4,#model i love u take with u all the time in ur!!! +5,factsguide: society now #motivation +6,[2/2] huge fan fare and big talking before they leave. chaos and pay disputes when they get there. #allshowandnogo +7,@Richard camping tomorrow @Thomas @Susan @Jessica @Ashley @Steven @Dorothy @Karen danny +8,the next school year is the year for exams. can't think about that #school #exams #hate #imagine #actorslife #revolutionschool #girl +9,we won!!! love the land!!! #allin #cavs #champions #cleveland #clevelandcavaliers +10,@James @Elizabeth welcome here ! i'm it's so #gr8 ! +11,#ireland consumer price index (mom) climbed from previous 0.2% to 0.5% in may #blog #silver #gold #forex +12,we are so selfish. #orlando #standwithorlando #pulseshooting #orlandoshooting #biggerproblems #selfish #heabreaking #values #love # +13,i get to see my daddy today!! #80days #gettingfed +14,@John #cnn calls #michigan middle school 'build the wall' chant '' #tcot +15,no comment! in #australia #opkillingbay #seashepherd #helpcovedolphins #thecove #helpcovedolphins +16,ouch...junior is angry#got7 #junior #yugyoem #omg +17,i am thankful for having a paner. #thankful #positive +18,retweet if you agree! +19,its #friday! smiles all around via ig user: @Richard #cookies make people +20,"as we all know, essential oils are not made of chemicals." +21,#euro2016 people blaming ha for conceded goal was it fat rooney who gave away free kick knowing bale can hit them from there. +22,sad little dude.. #badday #coneofshame #cats #pissed #funny #laughs +23,product of the day: happy man #wine tool who's it's the #weekend? time to open up & drink up! +24,@Thomas @Susan lumpy says i am a . prove it lumpy. +25,@Jessica #tgif #ff to my #gamedev #indiedev #indiegamedev #squad! @Ashley @Steven @Dorothy @Karen @James +26,beautiful sign by vendor 80 for $45.00!! #upsideofflorida #shopalyssas #love +27,@Elizabeth all #smiles when #media is !! #pressconference in #antalya #turkey ! sunday #throwback love! +28,we had a great panel on the mediatization of the public service #ica16 +29,happy father's day @John +30,50 people went to nightclub to have a good night and 1 man's actions means those people are lost to their families forever #rip#orlando +31,i have never had a chance to vote for a presidential candidate i was excited about and this cycle looks to be no different. +32,#alohafriday #time does #not #exist #positivevibes #hawaiian @Richard @Thomas @Susan @Jessica +33,"@Ashley rip to the fellow nohern ireland fan who sadley passed away tonight!.. gawa, forever singing and cheering on fire" +34,it was a hard monday due to cloudy weather. disabling oxygen production for today. #goodnight #badmonday +35,it's unbelievable that in the 21st century we'd need something like this. again. #neverump #xenophobia +36,#taylorswift1989 bull up: you will dominate your bull and you will direct it whatever you want it to do. w +37,morning~~ #travelingram #dalat #ripinkylife +38,@Steven once more only one word tells it all: #photoshop. #enoughisenough #dontphotoshopeverything #wheresallthenaturalphotos +39,"oh, #cedarpoint. waited 2 hours in the valravn line and it stopped working. we were so close." +40,i am thankful for sunshine. #thankful #positive +41,when you finally finish a book you've been working on for awhile... #bookworm #ontothenextnovel +42,"yup, being a knicks fan is hard, so its easier to just be an nba fan when the playoffs roll around" +43,there is life after social networking. embrace each day. be +44,my mom shares the same bihday as @Dorothy bihday snake! see you this weekend +45,lovely echeveria blooms#flowers #grow #gardening #iphonesia #bliss #blooms #basilicabotanica +46,i am amazing. #i_am #positive #affirmation +47,#model i love u take with u all the time in ur!!! +48,#whenever im and #something goes #wrong | +49,feeling blue #illustration +50,the best pa about life is knowing who you are! +51,#abc2020 getting ready 2 remove the victums frm #pulseclub #prayfororlando +52,for her #bihday we got her a #nose #job @Karen #bihday #petunia we love you +53,off to concelebrate at the #albanpilgrimage for the first time. @James +54,@Elizabeth let the scum-baggery begin..... +55,"thank you! super love it! zpamdelacruz #wedding# @John dolores, capas tarlac." +56,a scourge on those playing baroque pieces on piano beyond belief +57,@Richard lets fight against #love #peace +58,"happy fathers day, mr. rayos #video #fathers #day #rayos #world #hotvideo #videos" +59,@Thomas ascot times with this babe #ascot #fashion #monochrome #style #instahappyday +60,the weekend..is here!! #selfie #yolo #xoxo #like4like +61,happy at work conference: right' mindset leads to culture-of-development organizations #work #mindset +62,christina grimmie's last performance before being shot... via @Susan #christinarip #voice #christinagrimmie +63,we are ready to dance #roar #preschoolers #students #proud +64,you've really hu my feelings +65,@Jessica my wife whom i adore had to miss your poland show because she had surgery. her name is bridget & she's my everything. +66,@Ashley i am so jealous of you right now.... #chatiado +67,i celebrate every man that has played it's fatherly role. father's day# +68,i'm sure they are just as happy.... hour +69,the white establishment can't have blk folx running around loving themselves and promoting our greatness +70,good morning! the journey begins! #travel #yeah #thejourneybegins #hello +71,@Steven # if you #luv #hottweets like this from #venusexchange +72,our new brochures have arrived! how exciting!! #aworks #solutions +73,so much stuff happening in florida! first #orlando shooting and now #disneygatorattack on a two year old kid +74,"@Dorothy ferrari will do it for the sake of the championship. this gp is clearly a turning point rb, ferrari,mercs..." +75,aced my first test! #proud +76,"seeks probe into #udtapunjab' leak, points finger at #amarinder, #aap" +77,@Karen wrapping up #senseaboutmaths @James 6th @Elizabeth @John @Richard +78,"@Thomas hey, white people: you can call people 'white' by @Susan #race #identity #med" +79,@Jessica @Ashley you might be. just have not shown here today. regurgitated talking points and name calling? +80,sometimes you have to raise a few brows to raise the bar. #golfstrengthandconditioning #strong #felixfoisgolf +81,about that #greathonour #careerconvos @Steven @Dorothy +82,@Karen designing #innovative learning space @James to include #wateringhole #cave #mountaintop #campfire @Elizabeth h +83,how the #altright uses & insecurity to lure men into #whitesupremacy +84,carrying a gun wouldn't of helped if you can't take it in with you. gun control won't stop the black market! terrorism will get worse! +85,use the power of your mind to #heal your body!! - #altwaystoheal #healthy #peace! +86,woohoo!! just over 5 weeks to go! +87,being in a far away place where you have no family members hus +88,"ready to rehearse tonight with new music and new videos, look out for the announcement! #midweek #newmusic #watchthisspace #guitar" +89,now on monday nights at 8pm on #up channel!!!! i finally get to see what all the fuss is about!!! +90,watching the new episodes of @John on @Richard +91,@Thomas offline now after a very nice and long night.. #snapchat @Susan #redhead #vermillionred +92,15 things incredibly #people do +93,yes! received my acceptance letter for my masters so will be back at @Jessica again in october! #goodtimes #history +94,"daughter riding her bike around driveway, son playing his guitar for us while we enjoy by the campfire... #summeime #memories" +95,omg!!! loving this station!!! way to jam out at work!!! while getting work done of course!!!! #memories @Ashley +96,"@Steven i'll always hope that one day i'll get to hug you, but i don't think that it's gonna happen anytime soon..." +97,#model i love u take with u all the time in ur!!! +98,couple having sex fat naked japanese girls +99,"#hump on that #hump day #humpers @Dorothy edwardsville, pennsylvania" +100,personalised we... gbp 7.99 get here: #shop #cool #home #fun diff --git a/Lab6-Neo4j/users.csv b/Lab6-Neo4j/users.csv new file mode 100644 index 0000000..31344aa --- /dev/null +++ b/Lab6-Neo4j/users.csv @@ -0,0 +1,12 @@ +id,name +1,James +2,Elizabeth +3,John +4,Richard +5,Thomas +6,Susan +7,Jessica +8,Ashley +9,Steven +10,Dorothy +11,Karen diff --git a/README.md b/README.md index ca3a372..f3db95a 100644 --- a/README.md +++ b/README.md @@ -1 +1,9 @@ -Assignments in Course CS 387 : Database and information systems Lab at IIT Bombay Spring 2021 +# Database and Information Systems Lab + +Assignments in the course CS 387: Database and information systems Lab at IIT Bombay, Spring 2021 + + +### Authors + +**Nimay Gupta** +**Shalabh Gupta** \ No newline at end of file