Misplaced Pages

NoSQL

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

NoSQL (originally referring to "non- SQL " or "non-relational") is an approach to database design that focuses on providing a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases . Instead of the typical tabular structure of a relational database, NoSQL databases house data within one data structure. Since this non-relational database design does not require a schema , it offers rapid scalability to manage large and typically unstructured data sets. NoSQL systems are also sometimes called "Not only SQL" to emphasize that they may support SQL -like query languages or sit alongside SQL databases in polyglot-persistent architectures.

#973026

97-465: Non-relational databases have existed since the late 1960s, but the name "NoSQL" was only coined in the early 2000s, triggered by the needs of Web 2.0 companies. NoSQL databases are increasingly used in big data and real-time web applications. Motivations for this approach include simplicity of design , simpler "horizontal" scaling to clusters of machines (which is a problem for relational databases), finer control over availability , and limiting

194-413: A hash table : an array combined with a hash function that separates each key into a separate "bucket" of the array. The basic idea behind a hash table is that accessing an element of an array via its index is a simple, constant-time operation. Therefore, the average overhead of an operation for a hash table is only the computation of the key's hash, combined with accessing the corresponding bucket within

291-617: A red–black tree . Compared to hash tables, these structures have both strengths and weaknesses. The worst-case performance of self-balancing binary search trees is significantly better than that of a hash table, with a time complexity in big O notation of O(log n ). This is in contrast to hash tables, whose worst-case performance involves all elements sharing a single bucket, resulting in O( n ) time complexity. In addition, and like all binary search trees, self-balancing binary search trees keep their elements in order. Thus, traversing its elements follows

388-610: A user account or profile on the site, which may enable increased participation. By increasing emphasis on these already-extant capabilities, they encourage users to rely more on their browser for user interface , application software ("apps") and file storage facilities. This has been called "network as platform" computing. Major features of Web 2.0 include social networking websites, self-publishing platforms (e.g., WordPress ' easy-to-use blog and website creation tools), "tagging" (which enables users to label websites, videos or photos in some fashion), "like" buttons (which enable

485-472: A PC environment, and are able to run within any modern browser. However, these so-called "operating systems" do not directly control the hardware on the client's computer. Numerous web-based application services appeared during the dot-com bubble of 1997–2001 and then vanished, having failed to gain a critical mass of customers. Many regard syndication of site content as a Web 2.0 feature. Syndication uses standardized protocols to permit end-users to make use of

582-490: A Web-based word processor. As a widely available plug-in independent of W3C standards (the World Wide Web Consortium is the governing body of Web standards and protocols), Adobe Flash was capable of doing many things that were not possible pre- HTML5 . Of Flash's many capabilities, the most commonly used was its ability to integrate streaming multimedia into HTML pages. With the introduction of HTML5 in 2010 and

679-518: A campaign worth about $ 2.9 million. The tourism organisation can earn brand royalty from interactive marketing campaigns on social media with engaging passive communication tactics. For example, "Moms" advisors of the Walt Disney World are responsible for offering suggestions and replying to questions about the family trips at Walt Disney World. Due to its characteristic of expertise in Disney, "Moms"

776-418: A collection may have fields that are completely different. Graph databases are designed for data whose relations are well represented as a graph consisting of elements connected by a finite number of relations. Examples of data include social relations , public transport links, road maps, network topologies, etc. The performance of NoSQL databases is usually evaluated using the metric of throughput , which

873-434: A complete text representation of any group of objects by calling these methods, which are almost always already implemented in the base associative array class. For programs that use very large data sets, this sort of individual file storage is not appropriate, and a database management system (DB) is required. Some DB systems natively store associative arrays by serializing the data and then storing that serialized data and

970-411: A deletion operation, and if Pat checks out a book, that would cause an insertion operation, leading to a different state: For dictionaries with very few mappings, it may make sense to implement the dictionary using an association list , which is a linked list of mappings. With this implementation, the time to perform the basic dictionary operations is linear in the total number of mappings. However, it

1067-443: A document store is that of a "document". While the details of this definition differ among document-oriented databases, they all assume that documents encapsulate and encode data (or information) in some standard formats or encodings. Encodings in use include XML , YAML , and JSON and binary forms like BSON . Documents are addressed in the database via a unique key that represents that document. Another defining characteristic of

SECTION 10

#1732852550974

1164-420: A document-oriented database is an API or query language to retrieve documents based on their contents. Different implementations offer different ways of organizing and/or grouping documents: Compared to relational databases, collections could be considered analogous to tables and documents analogous to records. But they are different – every record in a table has the same sequence of fields, while documents in

1261-657: A few databases like MongoDB have made them central to their designs. Instead, most NoSQL databases offer a concept of " eventual consistency ", in which database changes are propagated to all nodes "eventually" (typically within milliseconds), so queries for data might not return updated data immediately or might result in reading data that is not accurate, a problem known as stale read . Additionally, some NoSQL systems may exhibit lost writes and other forms of data loss . Some NoSQL systems provide concepts such as write-ahead logging to avoid data loss. For distributed transaction processing across multiple databases, data consistency

1358-753: A future that extended beyond the browser/PC combination it was identified with. She focused on how the basic information structure and hyper-linking mechanism introduced by HTTP would be used by a variety of devices and platforms. As such, her "2.0" designation refers to the next version of the Web that does not directly relate to the term's current use. The term Web 2.0 did not resurface until 2002. Companies such as Amazon , Facebook, Twitter , and Google , made it easy to connect and engage in online transactions. Web 2.0 introduced new features, such as multimedia content and interactive web applications, which mainly consisted of two-dimensional screens. Kinsley and Eric focus on

1455-399: A given community or not, which can lead to emotional distress and disagreement. The impossibility of excluding group members who do not contribute to the provision of goods (i.e., to the creation of a user-generated website) from sharing the benefits (of using the website) gives rise to the possibility that serious members will prefer to withhold their contribution of effort and "free ride" on

1552-424: A least-to-greatest pattern, whereas traversing a hash table can result in elements being in seemingly random order. Because they are in order, tree-based maps can also satisfy range queries (find all values between two bounds) whereas a hashmap can only find exact values. However, hash tables have a much better average-case time complexity than self-balancing binary search trees of O(1), and their worst-case performance

1649-457: A map or dictionary) as their fundamental data model. In this model, data is represented as a collection of key–value pairs, such that each possible key appears at most once in the collection. The key–value model is one of the simplest non-trivial data models, and richer data models are often implemented as an extension of it. The key–value model can be extended to a discretely ordered model that maintains keys in lexicographic order . This extension

1746-447: A more permanent form, such as a computer file . A common solution to this problem is a generalized concept known as archiving or serialization , which produces a text or binary representation of the original objects that can be written directly to a file. This is most commonly implemented in the underlying object model, like .Net or Cocoa, which includes standard functions that convert the internal data into text. The program can create

1843-759: A package and many language systems provide them as part of their standard library. In some languages, they are not only built into the standard system, but have special syntax, often using array-like subscripting. Built-in syntactic support for associative arrays was introduced in 1969 by SNOBOL4 , under the name "table". TMG offered tables with string keys and integer values. MUMPS made multi-dimensional associative arrays, optionally persistent, its key data structure. SETL supported them as one possible implementation of sets and maps. Most modern scripting languages, starting with AWK and including Rexx , Perl , PHP , Tcl , JavaScript , Maple , Python , Ruby , Wolfram Language , Go , and Lua , support associative arrays as

1940-861: A primary container type. In many more languages, they are available as library functions without special syntax. In Smalltalk , Objective-C , .NET , Python , REALbasic , Swift , VBA and Delphi they are called dictionaries ; in Perl , Ruby and Seed7 they are called hashes ; in C++ , C# , Java , Go , Clojure , Scala , OCaml , Haskell they are called maps (see map (C++) , unordered_map (C++) , and Map ); in Common Lisp and Windows PowerShell , they are called hash tables (since both typically use this implementation); in Maple and Lua, they are called tables . In PHP and R , all arrays can be associative, except that

2037-562: A process called "the perpetual beta ". A similar difference can be seen between the Encyclopædia Britannica Online and Misplaced Pages – while the Britannica relies upon experts to write articles and release them periodically in publications, Misplaced Pages relies on trust in (sometimes anonymous) community members to constantly write and edit content. Misplaced Pages editors are not required to have educational credentials, such as degrees, in

SECTION 20

#1732852550974

2134-573: A programmer can easily use them to transmit structured data in their Web application. When this data is received via Ajax, the JavaScript program then uses the Document Object Model to dynamically update the Web page based on the new data, allowing for rapid and interactive user experience. In short, using these techniques, web designers can make their pages function like desktop applications. For example, Google Docs uses this technique to create

2231-452: A public space to interact with one another and the content of the class. Some studies suggest that Web 2.0 can increase the public's understanding of science, which could improve government policy decisions. A 2012 study by researchers at the University of Wisconsin–Madison notes that Ajax has prompted the development of Web sites that mimic desktop applications, such as word processing ,

2328-484: A recent article for Bank Technology News, Shane Kite describes how Citigroup's Global Transaction Services unit monitors social media outlets to address customer issues and improve products. In tourism industries, social media is an effective channel to attract travellers and promote tourism products and services by engaging with customers. The brand of tourist destinations can be built through marketing campaigns on social media and by engaging with customers. For example,

2425-483: A significant impact on travelers choices and organisation preferences. Travel 2.0 sparked radical change in receiving information methods for travelers, from business-to-customer marketing into peer-to-peer reviews. User-generated content became a vital tool for helping a number of travelers manage their international travels, especially for first time visitors. The travellers tend to trust and rely on peer-to-peer reviews and virtual communications on social media rather than

2522-428: A single patron may be able to check out multiple books. Therefore, the information about which books are checked out to which patrons may be represented by an associative array, in which the books are the keys and the patrons are the values. Using notation from Python or JSON , the data structure would be: A lookup operation on the key "Great Expectations" would return "John". If John returns his book, that would cause

2619-525: A site's data in another context (such as another Web site, a browser plugin , or a separate desktop application). Protocols permitting syndication include RSS (really simple syndication, also known as Web syndication), RDF (as in RSS 1.1), and Atom , all of which are XML -based formats. Observers have started to refer to these technologies as Web feeds . Associative array In computer science , an associative array , map , symbol table , or dictionary

2716-415: A transport mechanism, the ether through which interactivity happens. It will [...] appear on your computer screen, [...] on your TV set [...] your car dashboard [...] your cell phone [...] hand-held game machines [...] maybe even your microwave oven." Writing when Palm Inc. introduced its first web-capable personal digital assistant (supporting Web access with WAP ), DiNucci saw the Web "fragmenting" into

2813-507: A user has to wait for a page to complete the reload. This also increases the overall performance of the site, as the sending of requests can complete quicker independent of blocking and queueing required to send data back to the client. The data fetched by an Ajax request is typically formatted in XML or JSON (JavaScript Object Notation) format, two widely used structured data formats. Since both of these formats are natively understood by JavaScript,

2910-484: A user to indicate that they are pleased by online content), and social bookmarking . Users can provide the data and exercise some control over what they share on a Web 2.0 site. These sites may have an "architecture of participation" that encourages users to add value to the application as they use it. Users can add value in many ways, such as uploading their own content on blogs, consumer-evaluation platforms (e.g. Amazon and eBay ), news websites (e.g. responding in

3007-513: A way that was not common previously. Some Web 2.0 capabilities were present in the days of Web 1.0, but were implemented differently. For example, a Web 1.0 site may have had a guestbook page for visitor comments, instead of a comment section at the end of each page (typical of Web 2.0). During Web 1.0, server performance and bandwidth had to be considered—lengthy comment threads on multiple pages could potentially slow down an entire site. Terry Flew , in his third edition of New Media, described

NoSQL - Misplaced Pages Continue

3104-485: Is a debate over the use of Web 2.0 technologies in mainstream education. Issues under consideration include the understanding of students' different learning modes; the conflicts between ideas entrenched in informal online communities and educational establishments' views on the production and authentication of 'formal' knowledge; and questions about privacy, plagiarism, shared authorship and the ownership of knowledge and information produced and/or published on line. Web 2.0

3201-429: Is a form of direct hardware-level support for associative arrays. Associative arrays have many applications including such fundamental programming patterns as memoization and the decorator pattern . The name does not come from the associative property known in mathematics. Rather, it arises from the association of values with keys. It is not to be confused with associative processors . In an associative array,

3298-443: Is an abstract data type that stores a collection of (key, value) pairs , such that each possible key appears at most once in the collection. In mathematical terms, an associative array is a function with finite domain . It supports 'lookup', 'remove', and 'insert' operations. The dictionary problem is the classic problem of designing efficient data structures that implement associative arrays. The two major solutions to

3395-409: Is an even bigger challenge that is difficult for both NoSQL and relational databases. Relational databases "do not allow referential integrity constraints to span databases". Few systems maintain both ACID transactions and X/Open XA standards for distributed transaction processing . Interactive relational databases share conformational relay analysis techniques as a common feature. Limitations within

3492-413: Is an online travel community which enables user to rate and share autonomously their reviews and feedback on hotels and tourist destinations. Non pre-associate users can interact socially and communicate through discussion forums on TripAdvisor. Social media, especially Travel 2.0 websites, plays a crucial role in decision-making behaviors of travelers. The user-generated content on social media tools have

3589-555: Is available in one of these formats, another website can use it to integrate a portion of that site's functionality . Web 2.0 can be described in three parts: As such, Web 2.0 draws together the capabilities of client - and server -side software, content syndication and the use of network protocols . Standards-oriented Web browsers may use plug-ins and software extensions to handle the content and user interactions. Web 2.0 sites provide users with information storage , creation, and dissemination capabilities that were not possible in

3686-439: Is computationally powerful, in that it can efficiently retrieve selective key ranges . Key–value stores can use consistency models ranging from eventual consistency to serializability . Some databases support ordering of keys. There are various hardware implementations, and some users store data in memory (RAM), while others on solid-state drives (SSD) or rotating disks (aka hard disk drive (HDD)). The central concept of

3783-420: Is easy to implement and the constant factors in its running time are small. Another very simple implementation technique, usable when the keys are restricted to a narrow range, is direct addressing into an array: the value for a given key k is stored at the array cell A [ k ], or if there is no mapping for k then the cell stores a special sentinel value that indicates the lack of a mapping. This technique

3880-408: Is highly unlikely when a good hash function is used. A self-balancing binary search tree can be used to implement the buckets for a hash table that uses separate chaining. This allows for average-case constant lookup, but assures a worst-case performance of O(log n ). However, this introduces extra complexity into the implementation and may cause even worse performance for smaller hash tables, where

3977-499: Is measured as operations/second. Performance evaluation must pay attention to the right benchmarks such as production configurations, parameters of the databases, anticipated data volume, and concurrent user workloads . Ben Scofield rated different categories of NoSQL databases as follows: Performance and scalability comparisons are most commonly done using the YCSB benchmark. Since most NoSQL databases lack ability for joins in queries,

NoSQL - Misplaced Pages Continue

4074-401: Is simple and fast, with each dictionary operation taking constant time. However, the space requirement for this structure is the size of the entire keyspace, making it impractical unless the keyspace is small. The two major approaches for implementing dictionaries are a hash table or a search tree . The most frequently used general-purpose implementation of an associative array is with

4171-414: Is substantially different from prior Web technologies has been challenged by World Wide Web inventor Tim Berners-Lee , who describes the term as jargon . His original vision of the Web was "a collaborative medium, a place where we [could] all meet and read and write". On the other hand, the term Semantic Web (sometimes referred to as Web 3.0) was coined by Berners-Lee to refer to a web of content where

4268-450: Is to make sure consumers can use the online community to network among themselves on topics of their own choosing. Mainstream media usage of Web 2.0 is increasing. Saturating media hubs—like The New York Times , PC Magazine and Business Week  — with links to popular new Web sites and services, is critical to achieving the threshold for mass adoption of those services. User web content can be used to gauge consumer satisfaction. In

4365-655: Is used by companies, non-profit organisations and governments for interactive marketing . A growing number of marketers are using Web 2.0 tools to collaborate with consumers on product development, customer service enhancement, product or service improvement and promotion. Companies can use Web 2.0 tools to improve collaboration with both its business partners and consumers. Among other things, company employees have created wikis—Websites that allow users to add, delete, and edit content — to list answers to frequently asked questions about each product, and consumers have added significant contributions. Another marketing Web 2.0 lure

4462-490: The Document Object Model (DOM) to update selected regions of the page area without undergoing a full page reload. To allow users to continue interacting with the page, communications such as data requests going to the server are separated from data coming back to the page ( asynchronously ). Otherwise, the user would have to routinely wait for the data to come back before they can do anything else on that page, just as

4559-508: The database schema generally needs to be designed differently. There are three main techniques for handling relational data in a NoSQL database. (See table Join and ACID Support for NoSQL databases that support joins.) Instead of retrieving all the data with one query, it is common to do several queries to get the desired data. NoSQL queries are often faster than traditional SQL queries so the cost of additional queries may be acceptable. If an excessive number of queries would be necessary, one of

4656-569: The object-relational impedance mismatch . The data structures used by NoSQL databases (e.g. key–value pair , wide column , graph , or document ) are different from those used by default in relational databases, making some operations faster in NoSQL. The particular suitability of a given NoSQL database depends on the problem it must solve. Sometimes the data structures used by NoSQL databases are also viewed as "more flexible" than relational database tables . Many NoSQL stores compromise consistency (in

4753-431: The spreadsheet , and slide-show presentation . WYSIWYG wiki and blogging sites replicate many features of PC authoring applications. Several browser-based services have emerged, including EyeOS and YouOS .(No longer active.) Although named operating systems , many of these services are application platforms. They mimic the user experience of desktop operating systems, offering features and applications similar to

4850-470: The "Snow at First Sight" campaign launched by the State of Colorado aimed to bring brand awareness to Colorado as a winter destination. The campaign used social media platforms, for example, Facebook and Twitter, to promote this competition, and requested the participants to share experiences, pictures and videos on social media platforms. As a result, Colorado enhanced their image as a winter destination and created

4947-452: The Read/Write web. Talis believes that Library 2.0 means harnessing this type of participation so that libraries can benefit from increasingly rich collaborative cataloging efforts, such as including contributions from partner libraries as well as adding rich enhancements, such as book jackets or movie files, to records from publishers and others." Here, Miller links Web 2.0 technologies and

SECTION 50

#1732852550974

5044-408: The Web 2.0 era in enterprise uses. A third important part of Web 2.0 is the social web . The social Web consists of a number of online tools and platforms where people share their perspectives, opinions, thoughts and experiences. Web 2.0 applications tend to interact much more with the end user. As such, the end user is not only a user of the application but also a participant by: The popularity of

5141-399: The Web as opposed to upon the desktop. The unique aspect of this migration, they argued, is that "customers are building your business for you". They argued that the activities of users generating content (in the form of ideas, text, videos, or pictures) could be "harnessed" to create value. O'Reilly and Battelle contrasted Web 2.0 with what they called "Web 1.0". They associated this term with

5238-471: The around-2009 general concept of NoSQL databases. Strozzi suggests that, because the current NoSQL movement "departs from the relational model altogether, it should therefore have been called more appropriately 'NoREL'", referring to "not relational". Johan Oskarsson, then a developer at Last.fm , reintroduced the term NoSQL in early 2009 when he organized an event to discuss " open-source distributed, non-relational databases ". The name attempted to label

5335-447: The array. As such, hash tables usually perform in O(1) time, and usually outperform alternative implementations. Hash tables must be able to handle collisions : the mapping by the hash function of two different keys to the same bucket of the array. The two most widespread approaches to this problem are separate chaining and open addressing . In separate chaining, the array does not store

5432-415: The association between a key and a value is often known as a "mapping"; the same word may also be used to refer to the process of creating a new association. The operations that are usually defined for an associative array are: Associative arrays may also include other operations such as determining the number of mappings or constructing an iterator to loop over all the mappings. For such operations,

5529-431: The associative array are often used. There are two senses of an ordered dictionary: The latter is more common. Such ordered dictionaries can be implemented using an association list , by overlaying a doubly linked list on top of a normal dictionary, or by moving the actual data out of the sparse (unordered) array and into a dense insertion-ordered one. Associative arrays can be implemented in any programming language as

5626-560: The browser would, in theory, give Netscape the kind of market power enjoyed by Microsoft in the PC market. Much like the 'horseless carriage' framed the automobile as an extension of the familiar, Netscape promoted a 'webtop' to replace the desktop, and planned to populate that webtop with information updates and applets pushed to the webtop by information providers who would purchase Netscape servers. " In short, Netscape focused on creating software, releasing updates and bug fixes, and distributing it to

5723-426: The business models of Netscape and the Encyclopædia Britannica Online . For example, "Netscape framed 'the web as platform' in terms of the old software paradigm : their flagship product was the web browser, a desktop application, and their strategy was to use their dominance in the browser market to establish a market for high-priced server products. Control over standards for displaying content and applications in

5820-638: The characteristics of Web 2.0 are rich user experience, user participation, dynamic content , metadata , Web standards , and scalability . Further characteristics, such as openness, freedom, and collective intelligence by way of user participation, can also be viewed as essential attributes of Web 2.0. Some websites require users to contribute user-generated content to have access to the website, to discourage "free riding". The key features of Web 2.0 include: The client-side ( Web browser ) technologies used in Web 2.0 development include Ajax and JavaScript frameworks . Ajax programming uses JavaScript and

5917-476: The comment section), social networking services, media-sharing websites (e.g. YouTube and Instagram ) and collaborative-writing projects. Some scholars argue that cloud computing is an example of Web 2.0 because it is simply an implication of computing on the Internet. Web 2.0 offers almost all users the same freedom to contribute, which can lead to effects that are varyingly perceived as productive by members of

SECTION 60

#1732852550974

6014-415: The concepts currently associated with the term where, as Scott Dietzen puts it, "the Web becomes a universal, standards-based integration platform". In 2004, the term began to popularize when O'Reilly Media and MediaLive hosted the first Web 2.0 conference. In their opening remarks, John Battelle and Tim O'Reilly outlined their definition of the "Web as Platform", where software applications are built upon

6111-423: The contributions of others. This requires what is sometimes called radical trust by the management of the Web site. Encyclopaedia Britannica calls Misplaced Pages "the epitome of the so-called Web 2.0" and describes what many view as the ideal of a Web 2.0 platform as "an egalitarian environment where the web of social software enmeshes users in both their real and virtual-reality workplaces." According to Best,

6208-485: The culture of participation that they engender to the field of library science, supporting his claim that there is now a "Library 2.0". Many of the other proponents of new 2.0s mentioned here use similar methods. The meaning of Web 2.0 is role dependent. For example, some use Web 2.0 to establish and maintain relationships through social networks, while some marketing managers might use this promising technology to "end-run traditionally unresponsive I.T. department[s]." There

6305-402: The data types they can handle. The advantages of these alternative structures come from their ability to handle additional associative array operations, such as finding the mapping whose key is the closest to a queried key when the query is absent in the set of mappings. The basic definition of a dictionary does not mandate an order. To guarantee a fixed order of enumeration, ordered versions of

6402-666: The data you need for a specific task. A database is marked as supporting ACID properties (Atomicity, Consistency, Isolation, Durability) or join operations if the documentation for the database makes that claim. However, this doesn't necessarily mean that the capability is fully supported in a manner similar to most SQL databases. Web 2.0 Web 2.0 (also known as participative (or participatory ) web and social web ) refers to websites that emphasize user-generated content , ease of use , participatory culture , and interoperability (i.e., compatibility with other products, systems, and devices) for end users . The term

6499-412: The database. Thus this approach works better when reads are much more common than writes. With document databases like MongoDB it is common to put more data in a smaller number of collections. For example, in a blogging application, one might choose to store comments within the blog post document so that with a single retrieval one gets all the comments. Thus in this approach a single document contains all

6596-411: The dictionary problem are hash tables and search trees . It is sometimes also possible to solve the problem using directly addressed arrays , binary search trees , or other more specialized structures. Many programming languages include associative arrays as primitive data types , while many other languages provide software libraries that support associative arrays. Content-addressable memory

6693-399: The differences between Web 1.0 and Web 2.0 as a "move from personal websites to blogs and blog site aggregation, from publishing to participation, from web content as the outcome of large up-front investment to an ongoing and interactive process, and from content management systems to links based on "tagging" website content using keywords ( folksonomy )." Flew believed these factors formed

6790-435: The emergence of an increasing number of non-relational, distributed data stores, including open source clones of Google's Bigtable / MapReduce and Amazon's DynamoDB . There are various ways to classify NoSQL databases, with different categories and subcategories, some of which overlap. What follows is a non-exhaustive classification by data model, with examples: Key–value (KV) stores use the associative array (also called

6887-452: The end users. O'Reilly contrasted this with Google , a company that did not, at the time, focus on producing end-user software, but instead on providing a service based on data, such as the links that Web page authors make between sites. Google exploits this user-generated content to offer Web searches based on reputation through its " PageRank " algorithm. Unlike software, which undergoes scheduled releases, such services are constantly updated,

6984-419: The environment known as "Web 1.0". Web 2.0 sites include the following features and techniques, referred to as the acronym SLATES by Andrew McAfee: While SLATES forms the basic framework of Enterprise 2.0, it does not contradict all of the higher level Web 2.0 design patterns and business models. It includes discussions of self-service IT, the long tail of enterprise IT demand, and many other consequences of

7081-653: The functionality available to developers. Many of them also come with customizable, prefabricated ' widgets ' that accomplish such common tasks as picking a date from a calendar, displaying a data chart, or making a tabbed panel. On the server-side , Web 2.0 uses many of the same technologies as Web 1.0. Languages such as Perl , PHP , Python , Ruby , as well as Enterprise Java (J2EE) and Microsoft.NET Framework , are used by developers to output data dynamically using information from files and databases. This allows websites and web services to share machine readable formats such as XML ( Atom , RSS , etc.) and JSON . When data

7178-473: The growing concerns with Flash's security, the role of Flash became obsolete, with browser support ending on December 31, 2020. In addition to Flash and Ajax, JavaScript/Ajax frameworks have recently become a very popular means of creating Web 2.0 sites. At their core, these frameworks use the same technology as JavaScript, Ajax, and the DOM. However, frameworks smooth over inconsistencies between Web browsers and extend

7275-526: The information provided by travel suppliers. In addition, an autonomous review feature on social media would help travelers reduce risks and uncertainties before the purchasing stages. Social media is also a channel for customer complaints and negative feedback which can damage images and reputations of organisations and destinations. For example, a majority of UK travellers read customer reviews before booking hotels, these hotels receiving negative feedback would be refrained by half of customers. Therefore,

7372-412: The interface environment are overcome using semantic virtualization protocols, such that NoSQL services are accessible to most operating systems . The term NoSQL was used by Carlo Strozzi in 1998 to name his lightweight Strozzi NoSQL open-source relational database that did not expose the standard Structured Query Language (SQL) interface, but was still relational. His NoSQL RDBMS is distinct from

7469-412: The key associated with that value. The operations of the associative array should satisfy various properties: where k and j are keys, v is a value, D is an associative array, and new() creates a new, empty associative array. Suppose that the set of loans made by a library is represented in a data structure. Each book in a library may be checked out by one patron at a time. However,

7566-410: The key. Individual arrays can then be loaded or saved from the database using the key to refer to them. These key–value stores have been used for many years and have a history as long as that of the more common relational database (RDBs), but a lack of standardization, among other reasons, limited their use to certain niche roles. RDBs were used for these roles in most cases, although saving objects to

7663-509: The keys are limited to integers and strings. In JavaScript (see also JSON ), all objects behave as associative arrays with string-valued keys, while the Map and WeakMap types take arbitrary objects as keys. In Lua, they are used as the primitive building block for all data structures. In Visual FoxPro , they are called Collections . The D language also supports associative arrays. Many programs using associative arrays will need to store that data in

7760-545: The meaning can be processed by machines. Web 1.0 is a retronym referring to the first stage of the World Wide Web 's evolution, from roughly 1989 to 2004. According to Graham Cormode and Balachander Krishnamurthy, "content creators were few in Web 1.0 with the vast majority of users simply acting as consumers of content". Personal web pages were common, consisting mainly of static pages hosted on ISP -run web servers , or on free web hosting services such as Tripod and

7857-401: The million-channel people's network YouTube and the online metropolis MySpace . It's about the many wresting power from the few and helping one another for nothing and how that will not only change the world but also change the way the world changes." Instead of merely reading a Web 2.0 site, a user is invited to contribute to the site's content by commenting on published articles, or creating

7954-405: The now-defunct GeoCities . With Web 2.0, it became common for average web users to have social-networking profiles (on sites such as Myspace and Facebook ) and personal blogs (sites like Blogger , Tumblr and LiveJournal ) through either a low-cost web hosting service or through a dedicated host. In general, content was generated dynamically, allowing readers to comment directly on pages in

8051-724: The older, more static websites of the original Web. A Web 2.0 website allows users to interact and collaborate through social media dialogue as creators of user-generated content in a virtual community . This contrasts the first generation of Web 1.0 -era websites where people were limited passively viewing content. Examples of Web 2.0 features include social networking sites or social media sites (e.g., Facebook ), blogs , wikis , folksonomies ("tagging" keywords on websites and links), video sharing sites (e.g., YouTube ), image sharing sites (e.g., Flickr ), hosted services , Web applications ("apps"), collaborative consumption platforms, and mashup applications . Whether Web 2.0

8148-417: The order in which the mappings are returned is usually implementation-defined. A multimap generalizes an associative array by allowing multiple values to be associated with a single key. A bidirectional map is a related abstract data type in which the mappings operate in both directions: each value must be associated with a unique key, and a second lookup operation takes a value as an argument and looks up

8245-443: The organisations should develop strategic plans to handle and manage the negative feedback on social media. Although the user-generated content and rating systems on social media are out of a business' controls, the business can monitor those conversations and participate in communities to enhance customer loyalty and maintain customer relationships. Web 2.0 could allow for more collaborative education. For example, blogs give students

8342-403: The other two approaches is more appropriate. Instead of only storing foreign keys, it is common to store actual foreign values along with the model's data. For example, each blog comment might include the username in addition to a user id, thus providing easy access to the username without requiring another lookup. When a username changes however, this will now need to be changed in many places in

8439-474: The sense of the CAP theorem ) in favor of availability, partition tolerance, and speed. Barriers to the greater adoption of NoSQL stores include the use of low-level query languages (instead of SQL, for instance), lack of ability to perform ad hoc joins across tables, lack of standardized interfaces, and huge previous investments in existing relational databases. Most NoSQL stores lack true ACID transactions, although

8536-461: The source of the new version in their respective disciplines and areas. For example, in the Talis white paper "Library 2.0: The Challenge of Disruptive Innovation", Paul Miller argues "Blogs, wikis and RSS are often held up as exemplary manifestations of Web 2.0. A reader of a blog or a wiki is provided with tools to add a comment or even, in the case of the wiki, to edit the content. This is what we call

8633-660: The subjects in which they are editing. Misplaced Pages is not based on subject-matter expertise, but rather on an adaptation of the open source software adage "given enough eyeballs, all bugs are shallow" . This maxim is stating that if enough users are able to look at a software product's code (or a website), then these users will be able to fix any " bugs " or other problems. The Misplaced Pages volunteer editor community produces, edits, and updates articles constantly. Web 2.0 conferences have been held every year since 2004, attracting entrepreneurs , representatives from large companies, tech experts and technology reporters. The popularity of Web 2.0

8730-413: The table is mostly empty. However, as the table becomes filled with more elements, open addressing's performance degrades exponentially. Additionally, separate chaining uses less memory in most cases, unless the entries are very small (less than four times the size of a pointer). Another common approach is to implement an associative array with a self-balancing binary search tree , such as an AVL tree or

8827-445: The term Web 2.0, along with the increasing use of blogs, wikis, and social networking technologies, has led many in academia and business to append a flurry of 2.0's to existing concepts and fields of study, including Library 2.0 , Social Work 2.0, Enterprise 2.0 , PR 2.0, Classroom 2.0, Publishing 2.0, Medicine 2.0, Telco 2.0, Travel 2.0 , Government 2.0 , and even Porn 2.0 . Many of these 2.0s refer to Web 2.0 technologies as

8924-679: The time spent inserting into and balancing the tree is greater than the time needed to perform a linear search on all elements of a linked list or similar data structure. Associative arrays may also be stored in unbalanced binary search trees or in data structures specialized to a particular type of keys such as radix trees , tries , Judy arrays , or van Emde Boas trees , though the relative performance of these implementations varies. For instance, Judy trees have been found to perform less efficiently than hash tables, while carefully selected hash tables generally perform more efficiently than adaptive radix trees, with potentially greater restrictions on

9021-591: The trends that resulted in the onset of the Web 2.0 "craze". Some common design elements of a Web 1.0 site include: The term "Web 2.0" was coined by Darcy DiNucci , an information architecture consultant, in her January 1999 article "Fragmented Future": "The Web we know now, which loads into a browser window in essentially static screenfuls, is only an embryo of the Web to come. The first glimmerings of Web 2.0 are beginning to appear, and we are just starting to see how that embryo might develop. The Web will be understood not as screenfuls of text and graphics but as

9118-430: The value itself but stores a pointer to another container, usually an association list , that stores all the values matching the hash. By contrast, in open addressing, if a hash collision is found, the table seeks an empty spot in an array to store the value in a deterministic manner, usually by looking at the next immediate position in the array. Open addressing has a lower cache miss ratio than separate chaining when

9215-409: Was acknowledged by 2006 TIME magazine Person of The Year ( You ). That is, TIME selected the masses of users who were participating in content creation on social networks , blogs, wikis, and media sharing sites. In the cover story, Lev Grossman explains: "It's a story about community and collaboration on a scale never seen before. It's about the cosmic compendium of knowledge Misplaced Pages and

9312-760: Was chosen to represent the campaign. Social networking sites, such as Facebook, can be used as a platform for providing detailed information about the marketing campaign, as well as real-time online communication with customers. Korean Airline Tour created and maintained a relationship with customers by using Facebook for individual communication purposes. Travel 2.0 refers a model of Web 2.0 on tourism industries which provides virtual travel communities. The travel 2.0 model allows users to create their own content and exchange their words through globally interactive features on websites. The users also can contribute their experiences, images and suggestions regarding their trips through online travel communities. For example, TripAdvisor

9409-414: Was coined by Darcy DiNucci in 1999 and later popularized by Tim O'Reilly and Dale Dougherty at the first Web 2.0 Conference in 2004. Although the term mimics the numbering of software versions , it does not denote a formal change in the nature of the World Wide Web , but merely describes a general change that occurred during this period as interactive websites proliferated and came to overshadow

#973026