MongoDB is the most famous and loved NoSQL database. It has many features that are easy to handle when compared to conventional RDBMS. These slides contain the basics of MongoDB.
MongoDB is the most famous and loved NoSQL database. It has many features that are easy to handle when compared to conventional RDBMS. These slides contain the basics of MongoDB.
In this presentation, Raghavendra BM of Valuebound has discussed the basics of MongoDB - an open-source document database and leading NoSQL database.
----------------------------------------------------------
Get Socialistic
Our website: http://valuebound.com/
LinkedIn: http://bit.ly/2eKgdux
Facebook: https://www.facebook.com/valuebound/
Twitter: http://bit.ly/2gFPTi8
Presentation that I gave as a guest lecture for a summer intensive development course at nod coworking in Dallas, TX. The presentation targets beginning web developers with little, to no experience in databases, SQL, or PostgreSQL. I cover the creation of a database, creating records, reading/querying records, updating records, destroying records, joining tables, and a brief introduction to transactions.
Intro to MongoDB
Get a jumpstart on MongoDB, use cases, and next steps for building your first app with Buzz Moschetti, MongoDB Enterprise Architect.
@BuzzMoschetti
This presentation is related to nosql database and nosql database types information. this presentationa also contains discussion about, how mongodb works and mongodb security and mongodb sharding information.
Jose Rodrigues, Agma J M Traina, Christos Faloutsos, Caetano Traina Jr (2006) SuperGraph Visualization In: 8th IEEE International Symposium on Multimedia 227-234 IEEE Press.
@inproceedings { DBLP:conf/ism/RodriguesTFT06,
title = "SuperGraph Visualization",
year = "2006",
author = "Jose Rodrigues and Agma J M Traina and Christos Faloutsos and Caetano Traina Jr",
booktitle = "8th IEEE International Symposium on Multimedia",
pages = "227-234",
publisher = "IEEE Press",
doi = "10.1109/ISM.2006.143",
url = "http://www.icmc.usp.br/~junio/PublishedPapers/RodriguesJr_et_al-ISM2006.pdf",
urllink = "http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4061172",
abstract = "Given a large social or computer network, how can we visualize it, find patterns, outliers, communities? Although several graph visualization tools exist, they cannot handle large graphs with hundred thousand nodes and possibly million edges. Such graphs bring two challenges: interactive visualization demands prohibitive processing power and, even if we could interactively update the visualization, the user would be overwhelmed by the excessive number of graphical items. To cope with this problem, we propose a formal innovation on the use of graph hierarchies that leads to GMine system. GMine promotes scalability using a hierarchy of graph partitions, promotes concomitant presentation for the graph hierarchy and for the original graph, and extends analytical possibilities with the integration of the graph partitions in an interactive environment.",
keywords = "Application software , Bipartite graph , Computer networks , Computer science , Data structures , Scalability , Technological innovation , Tree graphs , Visualization , Web pages"}
In this presentation, Raghavendra BM of Valuebound has discussed the basics of MongoDB - an open-source document database and leading NoSQL database.
----------------------------------------------------------
Get Socialistic
Our website: http://valuebound.com/
LinkedIn: http://bit.ly/2eKgdux
Facebook: https://www.facebook.com/valuebound/
Twitter: http://bit.ly/2gFPTi8
Presentation that I gave as a guest lecture for a summer intensive development course at nod coworking in Dallas, TX. The presentation targets beginning web developers with little, to no experience in databases, SQL, or PostgreSQL. I cover the creation of a database, creating records, reading/querying records, updating records, destroying records, joining tables, and a brief introduction to transactions.
Intro to MongoDB
Get a jumpstart on MongoDB, use cases, and next steps for building your first app with Buzz Moschetti, MongoDB Enterprise Architect.
@BuzzMoschetti
This presentation is related to nosql database and nosql database types information. this presentationa also contains discussion about, how mongodb works and mongodb security and mongodb sharding information.
Jose Rodrigues, Agma J M Traina, Christos Faloutsos, Caetano Traina Jr (2006) SuperGraph Visualization In: 8th IEEE International Symposium on Multimedia 227-234 IEEE Press.
@inproceedings { DBLP:conf/ism/RodriguesTFT06,
title = "SuperGraph Visualization",
year = "2006",
author = "Jose Rodrigues and Agma J M Traina and Christos Faloutsos and Caetano Traina Jr",
booktitle = "8th IEEE International Symposium on Multimedia",
pages = "227-234",
publisher = "IEEE Press",
doi = "10.1109/ISM.2006.143",
url = "http://www.icmc.usp.br/~junio/PublishedPapers/RodriguesJr_et_al-ISM2006.pdf",
urllink = "http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4061172",
abstract = "Given a large social or computer network, how can we visualize it, find patterns, outliers, communities? Although several graph visualization tools exist, they cannot handle large graphs with hundred thousand nodes and possibly million edges. Such graphs bring two challenges: interactive visualization demands prohibitive processing power and, even if we could interactively update the visualization, the user would be overwhelmed by the excessive number of graphical items. To cope with this problem, we propose a formal innovation on the use of graph hierarchies that leads to GMine system. GMine promotes scalability using a hierarchy of graph partitions, promotes concomitant presentation for the graph hierarchy and for the original graph, and extends analytical possibilities with the integration of the graph partitions in an interactive environment.",
keywords = "Application software , Bipartite graph , Computer networks , Computer science , Data structures , Scalability , Technological innovation , Tree graphs , Visualization , Web pages"}
Can we use information from social media and crowdsourced images to detect smoke and assist rescue forces? While there are computer vision methods for detecting smoke, they require movement information extracted from video data. In this paper we propose SmokeBlock: a method that is able to segment and detect smoke in still images. SmokeBlock uses superpixel segmentation and extracts local color and texture features from images to spot smoke. We used real data from Flickr and compared SmokeBlock against state-of-the-art methods for feature extraction. Our method achieved performance superior than the competitors, for the task of smoke detection. Our findings shall support further investigations in the field of image analysis, in particular, concerning images captured with mobile devices.
Effective and Unsupervised Fractal-based Feature Selection for Very Large Dat...Universidade de São Paulo
Given a very large dataset of moderate-to-high di-
mensionality, how to mine useful patterns from it? In such
cases, dimensionality reduction is essential to overcome the
“curse of dimensionality”. Although there exist algorithms to
reduce the dimensionality of Big Data, unfortunately, they
all fail to identify/eliminate non-linear correlations between
attributes. This paper tackles the problem by exploring con-
cepts of the Fractal Theory and massive parallel processing
to present Curl-Remover, a novel dimensionality reduction
technique for very large datasets. Our contributions are: Curl-
Remover eliminates linear and non-linear attribute correlations
as well as irrelevant ones; it is unsupervised and suits for
analytical tasks in general – not only classification; it presents
linear scale-up; it does not require the user to guess the
number of attributes to be removed, and; it preserves the
attributes’ semantics. We performed experiments on synthetic
and real data spanning up to 1.1 billion points and Curl-
Remover outperformed a PCA-based algorithm, being up to
8% more accurate.
Several graph visualization tools exist. However, they are not able to handle large graphs, and/or they do not allow interaction. We are interested on large graphs, with hundreds of thousands of nodes. Such graphs bring two challenges: the first one is that any straightforward interactive manipulation will be prohibitively slow. The second one is sensory overload: even if we could plot and replot the graph quickly, the user would be overwhelmed with the vast volume of information because the screen would be too cluttered as nodes and edges overlap each other. GMine system addresses both these issues, by using summarization and multi-resolution. GMine offers multi-resolution graph exploration by partitioning a given graph into a hierarchy of com-munities-within-communities and storing it into a novel R-tree-like structure which we name G-Tree. GMine offers summarization by implementing an innovative subgraph extraction algorithm and then visualizing its output.
http://www.icmc.usp.br/~junio/PublishedPapers/RodriguesJr_et_al_Frequency_Plot-SIBGRAPI2003.pdf
Jose Rodrigues, Agma J M Traina, Caetano Traina Jr (2003) Frequency Plot and Relevance Plot to Enhance Visual Data Exploration In: XVI Brazilian Symposium on Computer Graphics and Image Processing 117-124 IEEE Press.
@inproceedings { DBLP:conf/sibgrapi/RodriguesTT03,
title = "Frequency Plot and Relevance Plot to Enhance Visual Data Exploration",
year = "2003",
author = "Jose Rodrigues and Agma J M Traina and Caetano Traina Jr",
booktitle = " XVI Brazilian Symposium on Computer Graphics and Image Processing",
pages = "117-124",
publisher = "IEEE Press",
doi = "10.1109/SIBGRA.2003.1240999",
url = "http://www.icmc.usp.br/~junio/PublishedPapers/RodriguesJr_et_al_Frequency_Plot-SIBGRAPI2003.pdf",
urllink = "http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=1240999&",
abstract = "We present two techniques aiming at exploring databases through multivariate visualizations. Both techniques intend to deal with the problem caused by the limited amount of elements that can be presented simultaneously in traditional visual exploration procedures. The first technique, the Frequency Plot, combines data frequency with interactive filtering to identify clusters and trends in subsets of the database. Thus, graphical elements (lines, pixels, icons, or graphical marks) are color differentiated proportionally to how frequent the value being represented is, while interactive filtering allows the selection of interesting partitions of the database. The second technique, the Relevance Plot, corresponds to assigning different levels of color distinguishably to visual elements according to their relevance to a user's specified data properties set, which can be chosen visually and dynamically.",
keywords = "Computer science , Data analysis , Data visualization , Filtering , Frequency , Humans , Image databases , Information retrieval , Layout , Visual databases"}
On the Support of a Similarity-Enabled Relational Database Management System ...Universidade de São Paulo
Crowdsourcing solutions can be helpful to extract information from disaster-related data during crisis management. However, certain information can only be obtained through similarity operations. Some of them also depend on additional data stored in a Relational Database Management System (RDBMS). In this context, several works focus on crisis management supported by data. Nevertheless, none of them provides a methodology for employing a similarity-enabled RDBMS in disaster-relief tasks. To fill this gap, we introduce a similarity-enabled methodology together with a supporting architecture named Data-Centric Crisis Management (DCCM), which employs our methods over a RDBMS. We evaluate our proposal through three tasks: classification of incoming data regarding current events, identifying relevant information to guide rescue teams; filtering of incoming data, enhancing the decision support by removing near-duplicate data; and similarity retrieval of historical data, supporting analytical comprehension of the crisis context. To make it possible, similarity-based operations were implemented within one popular, open-source RDBMS. Results using real data from Flickr show that the proposed methodology over DCCM is feasible for real-time applications. In addition to high performance, accurate results were obtained with a proper combination of techniques for each task. At last, given its accuracy and efficiency, we expect our work to provide a framework for further developments on crisis management solutions.
StructMatrix: large-scale visualization of graphs by means of structure detec...Universidade de São Paulo
Given a large-scale graph with millions of nodes and edges, how to reveal macro patterns of interest, like cliques, bi-partite cores, stars, and chains? Furthermore, how to visualize such patterns altogether getting insights from the graph to support wise decision-making? Although there are many algorithmic and visual techniques to analyze graphs, none of the existing approaches is able to present the structural information of graphs at large-scale. Hence, this paper describes StructMatrix, a methodology aimed at high-scalable visual inspection of graph structures with the goal of revealing macro patterns of interest. StructMatrix combines algorithmic structure detection and adjacency matrix visualization to present cardinality, distribution, and relationship features of the structures found in a given graph. We performed experiments in real, large-scale graphs with up to one million nodes and millions of edges. StructMatrix revealed that graphs of high relevance (e.g., Web, Wikipedia and DBLP) have characterizations that reflect the nature of their corresponding domains; our findings have not been seen in the literature so far. We expect that our technique will bring deeper insights into large graph mining, leveraging their use for decision making.
Currently, link recommendation has gained more attention as networked data becomes abundant in several scenarios. However, existing methods for this task have failed in considering solely the structure of dynamic networks for improved performance and accuracy. Hence, in this work, we present a methodology based on the use of multiple topological metrics in order to achieve prospective link recommendations considering time constraints. The combination of such metrics is used as input to binary classification algorithms that state whether two pairs of authors will/should define a link. We experimented with five algorithms, what allowed us to reach high rates of accuracy and to evaluate the different classification paradigms. Our results also demonstrated that time parameters and the activity profile of the authors can significantly influence the recommendation. In the context of DBLP, this research is strategic as it may assist on identifying potential partners, research groups with similar themes, research competition (absence of obvious links), and related work.
Techniques for effective and efficient fire detection from social media imagesUniversidade de São Paulo
Social media provides information, in the form of images, that is valuable to a vast set of human activities, including salvage and rescue in the case of crisis situations (such as accidents, explosions, and fire). However, these services produce images in a rate that is impossible for human beings to absorb and analyze; thus, it is a requirement to have methods for automatic analysis. However, despite the multiple works on image analysis, there are no studies on the specific topic of fire detection over social media. To fill this gap, this work describes the use and the evaluation of an ample set of content-based image retrieval and classification techniques in the task of fire detection. In our intent, we (1) built a ground-truth set of annotated images regarding fire occurrence; (2) engineered the Fast-Fire Detection and Retrieval ($\FFDnR$) architecture to combine configurations of feature extractors and distance functions to work with instance-based learning; and (3) evaluated 36 image descriptors in the task of fire detection. Our results demonstrated that, for fire detection, the best image descriptors concerning efficacy (F-measure, Precision-Recall, and ROC) and processing efficiency (wall-clock time) are achieved with MPEG-7 feature extractors Color Structure and Scalable Color, and with distance functions City-Block and Euclidean. Our work shall provide basis for further developments regarding monitoring of images from social media.
Multimodal graph-based analysis over the DBLP repository: critical discoverie...Universidade de São Paulo
The use of graph theory for analyzing network-like data has gained central importance with the rise of the Web 2.0. However, many graph-based techniques are not well-disseminated and neither explored at their full potential, what might depend on a complimentary approach achieved with the combination of multiple techniques. This paper describes the systematic use of graph-based techniques of different types (multimodal) combining the resultant analytical insights around a common domain, the Digital Bibliography & Library Project (DBLP). To do so, we introduce an analytical ensemble based on statistical (degree, and weakly-connected components distribution), topological (average clustering coefficient, and effective diameter evolution), algorithmic (link prediction/machine learning), and algebraic techniques to inspect non-evident features of DBLP at the same time that we interpret the heterogeneous discoveries found along the work. As a result, we have put together a set of techniques demonstrating over DBLP what we call multimodal analysis, an innovative process of information understanding that demands a wide technical knowledge and a deep understanding of the data domain. We expect that our methodology and our findings will foster other multimodal analyses and also that they will bring light over the Computer Science research.
Fire Detection on Unconstrained Videos Using Color-Aware Spatial Modeling and...Universidade de São Paulo
The semantic segmentation of events on emergency contexts involves the identification of previously defined events of interest. In this work, the focused semantic event is the presence of fire in videos. The literature presents several methods for automatic video fire detection, but these methods were built under assumptions, such as stationary cameras and controlled lightening conditions that are often in contrast to the videos acquired by hand-held devices. To fulfill this gap, we propose a fire detection method, called SPATFIRE. Our method innovates on three aspects: (1) it relies on a specifically tailored color model named Fire-like Pixel Detector able to improve the accuracy of fire detection, (2) it employs a new technique for motion compensation, diminishing the problems observed in videos captured with non-stationary cameras, and, (3) it defines a segmentation method able to identify, not only the presence of fire in a video, but also the segments in the video where fire occurs. We experimented our proposal on two video datasets with different characteristics and summarize the results to demonstrate the superior efficacy, in terms of true positives and negatives, as compared to state-of-the-art methods.
Relational databases are rigid-structured data sources characterized by complex relationships among a set of relations (tables). Making sense of such relationships is a challenging problem because users must consider multiple relations, understand their ensemble of integrity constraints, interpret dozens of attributes, and draw complex SQL queries for each desired data exploration. In this scenario, we introduce a twofold methodology; we use a hierarchical graph representation to efficiently model the database relationships and, on top of it, we designed a visualization technique for rapidly relational exploration. Our results demonstrate that the exploration of databases is profoundly simplified as the user is able to visually browse the data with little or no knowledge about its structure, dismissing the need of complex SQL queries. We believe our findings will bring a novel paradigm in what concerns relational data comprehension.
Vertex Centric Asynchronous Belief Propagation Algorithm for Large-Scale GraphsUniversidade de São Paulo
Inference problems on networks and their algorithms were always important subjects, but more so now with so much data available and so little time to make sense of it.
Common applications range from product recommendation to social networks and protein interaction.
One of the main inferences in this types of networks is the guilty-by-association method, where labeled nodes propagate their information throughout the network, towards unlabeled nodes.
While there is a widely used algorithm for this context, called Belief Propagation, it lacks the necessary convergence guarantees for loopy-networks.
More recently, a new alternative method was proposed, called LinBP and while it solved the convergence issue, the scalability for large graphs that do not fit memory remains a challenge.
Additionally, most works that try to use BP considering large scale graphs rely on specific infrastructure such as supercomputers and computational clusters.
Therefore we propose a new algorithm, that leverages state-of-the-art asynchronous vertex-centric parallel processing techniques in conjunction with the state-of-the-art BP alternative LinBP, to provide a scalable framework for large graph inference that runs on a single commodity machine.
Our results show that our algorithm is up to 200 times faster than LinBP's SQL implementation on tested networks, while achieving the same accuracy rate.
We also show that due to the asynchronous processing, our algorithm actually needs less iterations to converge when compared to LinBP when using the same parameters.
Finally, we believe that our methodology highlights the yet not fully explored parallelism available on commodity machines, leaning towards a more cost-efficient computational paradigm.
Fast Billion-scale Graph Computation Using a Bimodal Block Processing ModelUniversidade de São Paulo
Recent graph computation approaches have demonstrated that a single PC can perform efficiently on billion-scale graphs. While these approaches achieve scalability by optimizing I/O operations, they do not fully exploit the capabilities of modern hard drives and processors. To overcome their performance, in this work, we introduce the Bimodal Block Processing (BBP), an innovation that is able to boost the graph computation by minimizing the I/O cost even further. With this strategy, we achieved the following contributions: (1) \mflash, the fastest graph computation framework to date; (2) a flexible and simple programming model to easily implement popular and essential graph algorithms, including the \textit{first} single-machine billion-scale eigensolver; and (3) extensive experiments on real graphs with up to 6.6 billion edges, demonstrating M-Flash's consistent and significant speedup.
Recent releases of the .NET driver have added lots of cool new features. In this webinar we will highlight some of the most important ones. We will begin by discussing serialization. We will describe how serialization is normally handled, and how you can customize the process when you need to, including some tips on migration strategies when your class definitions change. We will continue with a discussion of the new Query builder, which now includes support for typed queries. A major new feature of recent releases is support for LINQ queries. We will show you how the .NET driver supports LINQ and discuss what kinds of LINQ queries are supported. Finally, we will discuss what you need to do differently in your application when authentication is enabled at the server.
After a short introduction to the Java driver for MongoDB, we'll have a look at the more abtract persistence frameworks like Morphia, Spring Data, Jongo and Hibernate OGM.
MongoDB for Coder Training (Coding Serbia 2013)Uwe Printz
Slides of my MongoDB Training given at Coding Serbia Conference on 18.10.2013
Agenda:
1. Introduction to NoSQL & MongoDB
2. Data manipulation: Learn how to CRUD with MongoDB
3. Indexing: Speed up your queries with MongoDB
4. MapReduce: Data aggregation with MongoDB
5. Aggregation Framework: Data aggregation done the MongoDB way
6. Replication: High Availability with MongoDB
7. Sharding: Scaling with MongoDB
Dev Jumpstart: Build Your First App with MongoDBMongoDB
New to MongoDB? This talk will introduce the philosophy and features of MongoDB. We’ll discuss the benefits of the document-based data model that MongoDB offers by walking through how one can build a simple app to store books. We’ll cover inserting, updating, and querying the database of books. This session will jumpstart your knowledge of MongoDB development, providing you with context for the rest of the day's content.
Slides from a talk I gave at MongoNYC on using MongoDB with Drupal. I will most likely be doing this as a webcast and giving this presentation at Drupalcamp NYC 8 this July.
Informações sobre as oportunidade de estudo e carreira promovidos pelo curso de Ciências de Computação da Universidade de São Paulo, campus de São Carlos.
Introdução às ferramentas de Business Intelligence do ecossistema Hadoop:
Business Intelligence e Big Data
Big Data warehousing
Arquitetura de um data warehouse
Hadoop e Apache Hive
Extract Transform Load
Data warehouse vs Banco de dados operacional
OLAP – Online Analytical Processing
Apache Kylin
Soluções OLAP convencionais
Advanced Analytics com o Apache Mahout
Metric s plat - a platform for quick development testing and visualization of...Universidade de São Paulo
Jose Rodrigues, Luciana A S Romani, Luciana Zaina, Ricardo Ciferri (2009) MetricSPlat - A platform for quick development, testing and visualization of content-based retrieval techniques In: Simpósio Brasileiro de Bancos de Dados - SBBD2009 1-6.
@inproceedings { RodriguesSBBD09,
title = "MetricSPlat - A platform for quick development, testing and visualization of content-based retrieval techniques",
year = "2009",
author = "Jose Rodrigues and Luciana A S Romani and Luciana Zaina and Ricardo Ciferri",
booktitle = "Simpósio Brasileiro de Bancos de Dados - SBBD2009",
pages = "1-6",
url = "http://www.icmc.usp.br/~junio/PublishedPapers/RodriguesSBBD09-MetricSPlat.pdf",
urllink = "http://www.icmc.usp.br/~junio/MetricSPlat/index.htm",
abstract = "The development and testing of content-based data retrieval systems is a time-consuming task. Over the concept of metric space, such systems must integrate the three factors that deï¬ne an indexing environment. These factors are features extraction, metric structures and distance functions, not to mention a suitable user interface. This integration deviates the work from the real focus of research, suppressing quick experimentation of ideas. In this context, we present the Metric Space Platform (MetricSPlat), a system designed for content-based retrieval enabled with plug-in features. With minimal effort, MetricSPlat substantially speeds up the experimentation of new techniques by providing a well-deï¬ned framework aided with interactive data visualization techniques.",
note = "8 pages",
keywords = "visualization, content-based data retrieval"}
Hierarchical visual filtering pragmatic and epistemic actions for database vi...Universidade de São Paulo
Jose Rodrigues, Carlos E Cirilo, Luciana A M Zaina, Antonio F Prado (2013) Hierarchical Visual Filtering, pragmatic and epistemic actions for database visualization In: Proceedings of the ACM Symposium on Applied Computing Edited by:ACM Press. 946-952 ACM Press.
@inproceedings { ref35,
title = "Hierarchical Visual Filtering, pragmatic and epistemic actions for database visualization",
year = "2013",
author = "Jose Rodrigues and Carlos E Cirilo and Luciana A M Zaina and Antonio F Prado",
booktitle = "Proceedings of the ACM Symposium on Applied Computing",
editor = "A C M Press",
pages = "946-952",
publisher = "ACM Press",
doi = "10.1145/2480362.2480545",
url = "http://www.icmc.usp.br/~junio/PublishedPapers/RodriguesJr_et_al-ACMSAC2013.pdf",
urllink = "http://www.icmc.usp.br/~junio/VisTree/VisTree.htm",
abstract = "Visualization techniques of all sorts suffer from visual cluttering, the occlusion of visual information due to the overlap of graphical items, and from excessive complexity in analytical tasks due to multiple parallel perspectives drawn from the data at hand. To cope with these problems, we introduce Hierarchical Visual Filtering, a novel interaction principle that brings pragmatic and epistemic actions to visualization techniques. Pragmatic actions here mean that the analyst is able to visually select and filter information, determining visual configurations that reveal different perspectives of the data; epistemic actions mean that the analyst can record, annotate, and recall intermediate visualizations created over his pragmatic actions. To do so, we use a tree-like structure to keep multiple visualization workspaces linked according to the analytical decisions took by the user. Our goal is to promote an innovative systematization that can augment the potential for database visual inspection, and for visualization systems in general. It is our contention that Hierarchical Visual Filtering can inspire a novel scheme of visualization environments in which space limitations and complexity are treated by means of interactive tasks.",
keywords = "Information Visualization, Multiple Views, Visual Data Analysis, Databases, Interactive Filtering, Hierarchical Filtering"}
The Roman Empire A Historical Colossus.pdfkaushalkr1407
The Roman Empire, a vast and enduring power, stands as one of history's most remarkable civilizations, leaving an indelible imprint on the world. It emerged from the Roman Republic, transitioning into an imperial powerhouse under the leadership of Augustus Caesar in 27 BCE. This transformation marked the beginning of an era defined by unprecedented territorial expansion, architectural marvels, and profound cultural influence.
The empire's roots lie in the city of Rome, founded, according to legend, by Romulus in 753 BCE. Over centuries, Rome evolved from a small settlement to a formidable republic, characterized by a complex political system with elected officials and checks on power. However, internal strife, class conflicts, and military ambitions paved the way for the end of the Republic. Julius Caesar’s dictatorship and subsequent assassination in 44 BCE created a power vacuum, leading to a civil war. Octavian, later Augustus, emerged victorious, heralding the Roman Empire’s birth.
Under Augustus, the empire experienced the Pax Romana, a 200-year period of relative peace and stability. Augustus reformed the military, established efficient administrative systems, and initiated grand construction projects. The empire's borders expanded, encompassing territories from Britain to Egypt and from Spain to the Euphrates. Roman legions, renowned for their discipline and engineering prowess, secured and maintained these vast territories, building roads, fortifications, and cities that facilitated control and integration.
The Roman Empire’s society was hierarchical, with a rigid class system. At the top were the patricians, wealthy elites who held significant political power. Below them were the plebeians, free citizens with limited political influence, and the vast numbers of slaves who formed the backbone of the economy. The family unit was central, governed by the paterfamilias, the male head who held absolute authority.
Culturally, the Romans were eclectic, absorbing and adapting elements from the civilizations they encountered, particularly the Greeks. Roman art, literature, and philosophy reflected this synthesis, creating a rich cultural tapestry. Latin, the Roman language, became the lingua franca of the Western world, influencing numerous modern languages.
Roman architecture and engineering achievements were monumental. They perfected the arch, vault, and dome, constructing enduring structures like the Colosseum, Pantheon, and aqueducts. These engineering marvels not only showcased Roman ingenuity but also served practical purposes, from public entertainment to water supply.
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdfTechSoup
In this webinar you will learn how your organization can access TechSoup's wide variety of product discount and donation programs. From hardware to software, we'll give you a tour of the tools available to help your nonprofit with productivity, collaboration, financial management, donor tracking, security, and more.
Operation “Blue Star” is the only event in the history of Independent India where the state went into war with its own people. Even after about 40 years it is not clear if it was culmination of states anger over people of the region, a political game of power or start of dictatorial chapter in the democratic setup.
The people of Punjab felt alienated from main stream due to denial of their just demands during a long democratic struggle since independence. As it happen all over the word, it led to militant struggle with great loss of lives of military, police and civilian personnel. Killing of Indira Gandhi and massacre of innocent Sikhs in Delhi and other India cities was also associated with this movement.
Palestine last event orientationfvgnh .pptxRaedMohamed3
An EFL lesson about the current events in Palestine. It is intended to be for intermediate students who wish to increase their listening skills through a short lesson in power point.
Unit 8 - Information and Communication Technology (Paper I).pdfThiyagu K
This slides describes the basic concepts of ICT, basics of Email, Emerging Technology and Digital Initiatives in Education. This presentations aligns with the UGC Paper I syllabus.
How to Split Bills in the Odoo 17 POS ModuleCeline George
Bills have a main role in point of sale procedure. It will help to track sales, handling payments and giving receipts to customers. Bill splitting also has an important role in POS. For example, If some friends come together for dinner and if they want to divide the bill then it is possible by POS bill splitting. This slide will show how to split bills in odoo 17 POS.
2024.06.01 Introducing a competency framework for languag learning materials ...Sandy Millin
http://sandymillin.wordpress.com/iateflwebinar2024
Published classroom materials form the basis of syllabuses, drive teacher professional development, and have a potentially huge influence on learners, teachers and education systems. All teachers also create their own materials, whether a few sentences on a blackboard, a highly-structured fully-realised online course, or anything in between. Despite this, the knowledge and skills needed to create effective language learning materials are rarely part of teacher training, and are mostly learnt by trial and error.
Knowledge and skills frameworks, generally called competency frameworks, for ELT teachers, trainers and managers have existed for a few years now. However, until I created one for my MA dissertation, there wasn’t one drawing together what we need to know and do to be able to effectively produce language learning materials.
This webinar will introduce you to my framework, highlighting the key competencies I identified from my research. It will also show how anybody involved in language teaching (any language, not just English!), teacher training, managing schools or developing language learning materials can benefit from using the framework.
How to Make a Field invisible in Odoo 17Celine George
It is possible to hide or invisible some fields in odoo. Commonly using “invisible” attribute in the field definition to invisible the fields. This slide will show how to make a field invisible in odoo 17.
3. History
mongoDB = “Humongous DB”
Open-source
Document-based
“High performance, high
availability”
Automatic scaling
-blog.mongodb.org/post/475279604/on-distributed-consistency-part-1
-mongodb.org/manual
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
4. Motivations
Problems with SQL
Rigid schema
Not easily scalable (designed for 90’s
technology or worse)
Requires unintuitive joins (despite its claims, Mongo
does not do any better due to physical constraints)
Perks of mongoDB
Easy interface with common languages (Java,
Javascript, PHP, etc.)
Keeps essential features of RDBMS’s while
learning from key-value noSQL systems
http://www.slideshare.net/spf13/mongodb-9794741?v=qf1&b=&from_search=13
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
5. Company Using mongoDB
“MongoDB powers Under Armour’s online store, and
was chosen for its dynamic schema, ability to scale
horizontally and perform multi-data center
replication.”
http://www.mongodb.org/about/production-deployments/
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
7. Data Model
Document-Based (max 16 MB each entry)
Documents are in BSON format, consisting of
field-value pairs
Each document stored in a collection
Collections
Like tables of relational db’s.
Documents do not have to have uniform structure
-docs.mongodb.org/manual/
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
8. JSON
“JavaScript Object Notation”
Easy for humans to write/read, easy for
computers to parse/generate
Objects can be nested
Built on
name/value pairs
ordered list of values
http://json.org/
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
11. BSON Example
{
"_id" : "37010"
"city" : "ADAMS",
"pop" : 2660,
"state" : "TN",
“congressmen:”: [“John”, “Willian”, “Adolf”]
“mayor” : {
name: “John Smith”
address: “13 Scenic Way”
}
}
Embedding and arrays, more similar to what we have
in all-purpose programing languages
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
12. BSON Types
Type Number
Double 1
String 2
Object 3
Array 4
Binary data 5
Object id 7
Boolean 8
Date 9
Null 10
Regular Expression 11
JavaScript 13
Symbol 14
JavaScript (with scope) 15
32-bit integer 16
Timestamp 17
64-bit integer 18
Min key 255
Max key 127
http://docs.mongodb.org/manual/reference/bson-types/
https://docs.mongodb.com/manual/reference/operator/query/type/
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
13. The _id Field
• By default, each document contains an _id
field. This field has a number of special
characteristics:
– Primary key for collection.
– Value is unique, immutable, and may be any non-
array type.
– Default data type is ObjectId, which is “small,
likely unique, fast to generate, and ordered.”
Sorting on an ObjectId value is roughly equivalent
to sorting on creation time.
http://docs.mongodb.org/manual/reference/bson-types/
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
14. The _id Field
• Using the default _id:
db.collection.insert({city: “New York“, state:”NY”, pop:”5M”})
• Using your own _id:
db.collection.insert({_id: 10, city: “New York“, state:”NY”, pop:”5M”})
• Using your own composite _id:
db.collection.insert({_id: {city: “New York“, state:”NY”}, pop:”5M”})
http://docs.mongodb.org/manual/reference/bson-types/
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
The _id itself is a document.
15. mongoDB vs. SQL
mongoDB SQL
Document Tuple
Collection Table/View
PK: _id Field PK: Any Attribute(s)
Uniformity not Required Uniform Relation Schema
Index Index
Embedded Structure Joins
Shard Partition
CRUD DML
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
17. Getting Started with mongoDB
To install mongoDB, go to this link and click on the
appropriate OS and architecture:
http://www.mongodb.org/downloads
First, extract the files (preferably to the C drive).
Finally, create a data directory on C: for
mongoDB to use
i.e. “md data” followed by “md datadb”
http://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
18. Install
Unzip
Find executable “mongod”
Default connection at localhost:27017
Run
mongod --dbpath .
Or just
mongod
For the default dir (/var/lib/mongodb/ or c:datadb)
Or run from bin dir, and have data anywhere else
mongod --dbpath <any dir path>
Visual interface
https://www.mongodb.com/products/compass
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
19. CRUD: Using the Shell
To establish a connection to the server, open another command
prompt window and go to the same directory, entering
“mongo.exe”
To check which db you’re using db
Show all databases show dbs
Switch db’s/make a new one use <name>
See what collections exist show collections
Create collection db.createCollection(“<name>”)
Note: db’s are not actually created until you insert data!
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
21. CRUD: Using the Shell (cont.)
To insert documents into a collection/make a
new collection:
db.<collection>.insert(<document>)
<=>
INSERT INTO <table>
VALUES(<attributevalues>);
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
22. CRUD: Inserting Data
Insert one document
db.<collection>.insert({<field>:<value>})
Inserting a document with a field name new to the collection
is inherently supported by the BSON model.
To insert multiple documents, use an array.
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
23. CRUD: Querying
Get all docs: db.<collection>.find()
Returns a cursor, which is iterated over shell to
display first 20 results.
Add .limit(<number>) to limit results
db.<collection>.find().limit(2)
SELECT * FROM <table>;
Get one doc: db.<collection>.findOne(), the
first in the disk physical order, usually the
first inserted
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
24. CRUD: Querying
To match a specific value:
db.<collection>.find({<field>:<value>})
“AND”:
db.<collection>.find({<field1>:<value1>,
<field2>:<value2>
})
SELECT *
FROM <table>
WHERE <field1> = <value1> AND <field2> = <value2>;
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
25. CRUD: Querying
OR
db.<collection>.find({ $or: [
<field>:<value1>
<field>:<value2> ]
})
SELECT *
FROM <table>
WHERE <field> = <value1> OR <field> = <value2>;
Checking for multiple values of a set:
db.<collection>.find({<field>: {$in [<value>, <value>]}})
SELECT *
FROM <table>
WHERE <field> IN (<value>,<value>);
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
26. CRUD: Querying
Including/excluding document fields
db.<collection>.find({ }, {<field1>: 1})
SELECT field1
FROM <table>;
db.<collection>.find({<field1>:<value>}, {<field1>: 1})
SELECT field1
FROM <table>
WHERE <field1> = <value>;
0 false
>0 true
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
27. CRUD: Querying
Including/excluding document fields
db.<collection>.find({<field1>:<value>}, {<field2>: 0})
SELECT <all fields but not field2>
FROM <table>
WHERE <field1> = <value>;
- notice that find() takes two parameters
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
28. CRUD: Updating
db.<collection>.update(
{<field1>:<value1>}, //all docs in which field = value
{$set: {<field2>:<value2>}}, //set field to value
{multi:true} ) //update multiple docs
UPDATE <table>
SET <field2> = <value2>
WHERE <field1> = <value1>;
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
29. CRUD: Updating
To remove a field
db.<collection>.update({<field>:<value>},
{ $unset: { <field>: 1}})
ALTER TABLE DROP COLUMN <field>
“WHERE field = value”
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
30. CRUD: Removal
Remove all records where field = value
db.<collection>.remove({<field>:<value>})
DELETE FROM <table>
WHERE <field> = <value>;
As above, but only remove first document
db.<collection>.remove({<field>:<value>}, true)
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
31. CRUD: Isolation
• By default, all writes are atomic only on the level of a single
document.
• This means that writes over multiple documents of the same
collection can be interleaved with other operations.
• You can isolate writes on an entire collection by adding
“$isolated:1” in the query area:
db.foo.update(
{ status : "A" , $isolated : 1 },
{ $inc : { count : 1 } },
{ multi: true }
) --increments by 1 the field count of every document
--with status A in the collection foo
In this example, the $isolated :1 clause makes other clients wait to read and
to write the collection until the command is completed
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
search criterium
32. Access control included
Authentication mode must be set during start up:
mongod --auth
Then, users must be created:
use admin /*as administrator*/
db.createUser(
{ user: "reportsUser", pwd: "12345678",
roles: [
{ role: "read", db: "reporting" },
{ role: "read", db: "products" },
{ role: "readWrite", db: "accounts" }
]
}
)
password
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
35. Intuition – why database
exist in the first place?
Why can’t we just write programs that operate on
objects?
Memory limit
We cannot swap back from disk merely by OS via page-based
memory management mechanism
Why can’t we have the database operating on the
same data structures (like classes) as the ones
used in programs?
That is where mongoDB comes in
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
36. Mongo is basically schema-free
The purpose of schema in SQL is for meeting the
requirements of tables and guide the SQL
implementation
Every “row” in a database “table” is a data
structure, much like a “struct” in C, or a “class” in
Java. A table is then an array (or list) of such data
structures
So what we design in mongoDB is basically the same
way we design a compound data type binding in JSON
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
37. There are some patterns
Embedding (pre-joining)
Linking
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
41. Many to many relationship
Can put relation in either one of the
documents (embedding in one of the
documents)
Unavoidable redundancy
Possible (probable) inconsistency
It is also possible via linking
But, in this case, random access is
necessary – and joining is necessary in
case one needs all the relationships
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
44. Many to many relationship
Example:
Inserting a reference
1) Find the document to be referenced
var doc = db.courses.findOne(“name”: “Data Bases”);
2) Insert with _id field
db.students.insert(“name”: “Chris”, “courses”:[doc]);
45. Joins
MongoDB enthusiasts say that it avoids joining
by pre-joining (embedding documents). Is it
true?
Well, not
Embedding is also supported in RDBMs with a
more technical name: denormalization
In many situations, embedding is not
applicable:
M:N relationships
1:N relationships in which the left side (the 1) is
related to other entities
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
46. Joins
When embedding is not the case, it is
possible to do linking….and pay the same
price as RDBMs pay
In other cases, when the relationship was
not modeled into the data (usual, since
MongoDB does not have schema), an
explicit join is necessary:
$lookup aggregation
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
47. Joins
$lookup example
db.disciplina.aggregate(
{$lookup:
{from: ”professor”,
localField: “Prof”,
foreignField: “ProfCPF”,
as: “Ministrantes”}
)
SELECT *
FROM disciplina, professor
WHERE diciplina.Prof = Professor.ProfCPF
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
48. Checks
MongoDb also takes checks
They come in the form of “Document Validation”
The overall sintax is as follows:
db.runCommand( {
collMod: “<collection_name>",
validator: <boolean expression>,
validationAction: “error"|“warn" – warn or issues error
} )
Example: ensure that either phone or mail are provided
db.runCommand( {
collMod: "contacts",
validator: { $or: [ { phone: { $exists: true } }, { email: {
$exists: true } } ] },
validationAction : "warn"
} ) http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
“NOT NULL”
50. Before Index
What does database normally do when we query?
MongoDB must scan every document
Inefficient due to large volumes of data
db.users.find( { score: { “$lt” : 30} } )
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
51. Definition of Index
Definition
Indexes are special data structures
(B-Trees by default in MogoDB - just
as in RDBMSs) that store a small
portion of the collection’s data set in
an easy to traverse form.
Diagram of a query that uses an index to select
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
52. Index in MongoDB
Creation index
db.users.ensureIndex( { score: 1 } )
Show existing indexes
db.users.getIndexes()
Drop index
db.users.dropIndex( {score: 1} )
Explain—Explain
db.users.find().explain()
Returns a document that describes the
process and indexes
Operations
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
ascending
an attribute of the collection
53. Index in MongoDB
Types
• Single Field Indexes
– db.users.ensureIndex( { score: 1 } )
• Single Field Indexes
• Compound Field Indexes
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
54. Index in MongoDB
Types
• Compound Field Indexes
– db.users.ensureIndex( { userid: 1, score: -1 } )
• Single Field Indexes
• Compound Field Indexes
ascending descending
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
56. Pipelines
Modeled on the concept of data processing
pipelines.
Provides:
filters that operate like queries
document transformations that modify the
form of the output document
Provides tools for:
grouping and sorting by field
aggregating the contents of arrays, including
arrays of documents
Can use operators for tasks such as calculating the average or
concatenating a string.
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
58. Pipelines
$limit
$sort
db.zips.aggregate(
{$group: {_id:{state:"$state“}, pop:{$sum:"$pop"}}}}, -- group by
{$sort{pop,-1} -- sort descending
{$limit: 3}, -- only 3 first states
}
)
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
SELECT * FROM
(SELECT state, SUM(POP) AS pop
FROM ZIPS
GROUP BY state
ORDER BY pop DESC)
WHERE ROWNUM <= 3
59. Pipelines
$limit
$sort
db.zips.aggregate(
{$group: {_id:{state:"$state“}, pop:{$sum:"$pop"}}}}, -- group by
{$sort{pop,-1} -- sort descending
{$limit: 3}, -- only 3 first states
}
)
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
SELECT * FROM
(SELECT state, SUM(POP) AS pop
FROM ZIPS
GROUP BY state
ORDER BY pop DESC)
WHERE ROWNUM <= 3
Notice the diffence to
the former example
60. Pipelines
$limit
$sort
db.zips.aggregate(
{$group: {_id:{state:"$state“, city:“$city"}, pop:{$sum:"$pop"}}}},
{$sort{pop,-1} -- sort descending
{$limit: 3}, -- only 3 first states-cities
}
)
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
SELECT * FROM
(SELECT state, city, SUM(POP) AS pop
FROM ZIPS
GROUP BY state, city
ORDER BY pop DESC)
WHERE ROWNUM <= 3
Group-by on multiple fields
61. Single Purpose Aggregation
Operations
Special purpose database commands:
returning a count of matching documents
returning the distinct values for a field
grouping data based on the values of a field
Aggregate documents from a single collection.
https://docs.mongodb.com/manual/reference/meth
od/js-collection/
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
64. Install
Add to project libraries:
mongodb-driver
https://oss.sonatype.org/content/repositories/releases/org/mo
ngodb/mongodb-driver/
mongodb-driver-core
https://oss.sonatype.org/content/repositories/releases/org/mo
ngodb/mongodb-driver-core
bson
https://oss.sonatype.org/content/repositories/releases/org/mo
ngodb/bson
Make sure you use the same release for all of them
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
65. Hello Worldimport com.mongodb.*;
public class App {
public static void main(String[] args) {
try { /*Connect*/
MongoClient mongo = new MongoClient("localhost", 27017);
DB db = mongo.getDB("testdb");
DBCollection table = db.getCollection("user");
/*Insert*/
BasicDBObject document = new BasicDBObject();
document.put("name", "joao");
document.put("age", 30);
document.put("createdDate", new Date());
table.insert(document);
/*Find*/
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.put("name", "joao");
DBCursor cursor = table.find(searchQuery);
while (cursor.hasNext()) {
System.out.println(cursor.next());
}
} catch (Exception e) { e.printStackTrace(); }}}
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
67. Cons
No schema No project (tempting to start right
away)
No schema More expensive application-level
management later on
Joins might be necessary after all; RDBMs do it
better
Consistency is in risk when denormalization is
accepted by default
Very limited transaction support do not put
your bank account on MongoDB
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm
68.
69. MongoDB: The Definitive Guide,
By Kristina Chodorow and Mike Dirolf
Published: 9/24/2010
Pages: 216
Language: English
Publisher: O’Reilly Media, CA
http://conteudo.icmc.usp.br/pessoas/junio/Site/index.htm