1.
Software developer
–
A software developer is a person concerned with facets of the software development process, including the research, design, programming, and testing of computer software. Other job titles which are used with similar meanings are programmer, software analyst. According to developer Eric Sink, the differences between system design, software development, and programming are more apparent, even more so that developers become systems architects, those who design the multi-leveled architecture or component interactions of a large software system. In a large company, there may be employees whose sole responsibility consists of one of the phases above. In smaller development environments, a few people or even an individual might handle the complete process. The word software was coined as a prank as early as 1953, before this time, computers were programmed either by customers, or the few commercial computer vendors of the time, such as UNIVAC and IBM. The first company founded to provide products and services was Computer Usage Company in 1955. The software industry expanded in the early 1960s, almost immediately after computers were first sold in mass-produced quantities, universities, government, and business customers created a demand for software. Many of these programs were written in-house by full-time staff programmers, some were distributed freely between users of a particular machine for no charge. Others were done on a basis, and other firms such as Computer Sciences Corporation started to grow. The computer/hardware makers started bundling operating systems, systems software and programming environments with their machines, new software was built for microcomputers, so other manufacturers including IBM, followed DECs example quickly, resulting in the IBM AS/400 amongst others. The industry expanded greatly with the rise of the computer in the mid-1970s. In the following years, it created a growing market for games, applications. DOS, Microsofts first operating system product, was the dominant operating system at the time, by 2014 the role of cloud developer had been defined, in this context, one definition of a developer in general was published, Developers make software for the world to use. The job of a developer is to crank out code -- fresh code for new products, code fixes for maintenance, code for business logic, bus factor Software Developer description from the US Department of Labor
2.
Oracle Corporation
–
Oracle Corporation is a multinational computer technology corporation, headquartered in Redwood Shores, California. In 2015 Oracle was the second-largest software maker by revenue, after Microsoft, larry Ellison co-founded Oracle Corporation in 1977 with Bob Miner and Ed Oates under the name Software Development Laboratories. Ellison took inspiration from the 1970 paper written by Edgar F. Codd on relational database management systems named A Relational Model of Data for Large Shared Data Banks and he heard about the IBM System R database from an article in the IBM Research Journal provided by Oates. Also derived from Codds theories, Ellison wanted to make Oracles product compatible with System R, SDL changed its name to Relational Software, Inc in 1979, then again to Oracle Systems Corporation in 1982, to align itself more closely with its flagship product Oracle Database. At this stage Bob Miner served as the senior programmer. In 1995, Oracle Systems Corporation changed its name to Oracle Corporation, officially named Oracle, but sometimes referred to as Oracle Corporation, part of Oracle Corporations early success arose from using the C programming language to implement its products. This eased porting to different operating systems, many of the products have been added to Oracles portfolio through acquisitions. Oracles E-delivery service provides generic downloadable Oracle software and documentation, Oracle Database Release 10, In 2004, Oracle Corporation shipped release 10g as the then latest version of Oracle Database. Release 11, Release 11g became the current Oracle Database version in 2007, Oracle Corporation released Oracle Database 11g Release 2 in September 2009. This version was available in four commercial editions—Enterprise Edition, Standard Edition, Standard Edition One, the licensing of these editions shows various restrictions and obligations that are considered complex. The Enterprise Edition, the most expensive of the Database Editions, has the fewest restrictions —, Oracle Corporation constrains the Standard Edition and Standard Edition One with more licensing restrictions, in accordance with their lower price. Release 12, Release 12c became available on July 1,2013, Oracle acquired Rdb in 1994 from Digital Equipment Corporation. Oracle has since made many enhancements to product and development continues as of 2008. Released in 2008, the Oracle Beehive collaboration software provides team workspaces, email, calendar, instant messaging, customers can use Beehive as licensed software or as software as a service. Oracle also sells a suite of business applications, users can access these facilities through a browser interface over the Internet or via a corporate intranet. The Social Engagement and Monitoring cloud provides the most effective and efficient responses across social, SEM is able to route correct responses to the right team, member, or customer-experience channel to ensure the best customer service. The analysis helps vendors to understand what is important to customers and it identifies trends, spikes, and anomalies to make real-time course corrections. It also can identify brand advocates, the SEM cloud identifies customer intention and interests by analyzing the common ways customers talk about a product or a service
3.
C (programming language)
–
C was originally developed by Dennis Ritchie between 1969 and 1973 at Bell Labs, and used to re-implement the Unix operating system. C has been standardized by the American National Standards Institute since 1989, C is an imperative procedural language. Therefore, C was useful for applications that had formerly been coded in assembly language. Despite its low-level capabilities, the language was designed to encourage cross-platform programming, a standards-compliant and portably written C program can be compiled for a very wide variety of computer platforms and operating systems with few changes to its source code. The language has become available on a wide range of platforms. In C, all code is contained within subroutines, which are called functions. Function parameters are passed by value. Pass-by-reference is simulated in C by explicitly passing pointer values, C program source text is free-format, using the semicolon as a statement terminator and curly braces for grouping blocks of statements. The C language also exhibits the characteristics, There is a small, fixed number of keywords, including a full set of flow of control primitives, for, if/else, while, switch. User-defined names are not distinguished from keywords by any kind of sigil, There are a large number of arithmetical and logical operators, such as +, +=, ++, &, ~, etc. More than one assignment may be performed in a single statement, function return values can be ignored when not needed. Typing is static, but weakly enforced, all data has a type, C has no define keyword, instead, a statement beginning with the name of a type is taken as a declaration. There is no function keyword, instead, a function is indicated by the parentheses of an argument list, user-defined and compound types are possible. Heterogeneous aggregate data types allow related data elements to be accessed and assigned as a unit, array indexing is a secondary notation, defined in terms of pointer arithmetic. Unlike structs, arrays are not first-class objects, they cannot be assigned or compared using single built-in operators, There is no array keyword, in use or definition, instead, square brackets indicate arrays syntactically, for example month. Enumerated types are possible with the enum keyword and they are not tagged, and are freely interconvertible with integers. Strings are not a data type, but are conventionally implemented as null-terminated arrays of characters. Low-level access to memory is possible by converting machine addresses to typed pointers
4.
Operating system
–
An operating system is system software that manages computer hardware and software resources and provides common services for computer programs. All computer programs, excluding firmware, require a system to function. Operating systems are found on many devices that contain a computer – from cellular phones, the dominant desktop operating system is Microsoft Windows with a market share of around 83. 3%. MacOS by Apple Inc. is in place, and the varieties of Linux is in third position. Linux distributions are dominant in the server and supercomputing sectors, other specialized classes of operating systems, such as embedded and real-time systems, exist for many applications. A single-tasking system can run one program at a time. Multi-tasking may be characterized in preemptive and co-operative types, in preemptive multitasking, the operating system slices the CPU time and dedicates a slot to each of the programs. Unix-like operating systems, e. g. Solaris, Linux, cooperative multitasking is achieved by relying on each process to provide time to the other processes in a defined manner. 16-bit versions of Microsoft Windows used cooperative multi-tasking, 32-bit versions of both Windows NT and Win9x, used preemptive multi-tasking. Single-user operating systems have no facilities to distinguish users, but may allow multiple programs to run in tandem, a distributed operating system manages a group of distinct computers and makes them appear to be a single computer. The development of networked computers that could be linked and communicate with each other gave rise to distributed computing, distributed computations are carried out on more than one machine. When computers in a work in cooperation, they form a distributed system. The technique is used both in virtualization and cloud computing management, and is common in large server warehouses, embedded operating systems are designed to be used in embedded computer systems. They are designed to operate on small machines like PDAs with less autonomy and they are able to operate with a limited number of resources. They are very compact and extremely efficient by design, Windows CE and Minix 3 are some examples of embedded operating systems. A real-time operating system is a system that guarantees to process events or data by a specific moment in time. A real-time operating system may be single- or multi-tasking, but when multitasking, early computers were built to perform a series of single tasks, like a calculator. Basic operating system features were developed in the 1950s, such as resident monitor functions that could run different programs in succession to speed up processing
5.
Software license
–
A software license is a legal instrument governing the use or redistribution of software. Under United States copyright law all software is copyright protected, in code as also object code form. The only exception is software in the public domain, most distributed software can be categorized according to its license type. Two common categories for software under copyright law, and therefore with licenses which grant the licensee specific rights, are proprietary software and free, unlicensed software outside the copyright protection is either public domain software or software which is non-distributed, non-licensed and handled as internal business trade secret. Contrary to popular belief, distributed unlicensed software is copyright protected. Examples for this are unauthorized software leaks or software projects which are placed on public software repositories like GitHub without specified license. As voluntarily handing software into the domain is problematic in some international law domains, there are also licenses granting PD-like rights. Therefore, the owner of a copy of software is legally entitled to use that copy of software. Hence, if the end-user of software is the owner of the respective copy, as many proprietary licenses only enumerate the rights that the user already has under 17 U. S. C. §117, and yet proclaim to take away from the user. Proprietary software licenses often proclaim to give software publishers more control over the way their software is used by keeping ownership of each copy of software with the software publisher. The form of the relationship if it is a lease or a purchase, for example UMG v. Augusto or Vernor v. Autodesk. The ownership of goods, like software applications and video games, is challenged by licensed. The Swiss based company UsedSoft innovated the resale of business software and this feature of proprietary software licenses means that certain rights regarding the software are reserved by the software publisher. Therefore, it is typical of EULAs to include terms which define the uses of the software, the most significant effect of this form of licensing is that, if ownership of the software remains with the software publisher, then the end-user must accept the software license. In other words, without acceptance of the license, the end-user may not use the software at all, one example of such a proprietary software license is the license for Microsoft Windows. The most common licensing models are per single user or per user in the appropriate volume discount level, Licensing per concurrent/floating user also occurs, where all users in a network have access to the program, but only a specific number at the same time. Another license model is licensing per dongle which allows the owner of the dongle to use the program on any computer, Licensing per server, CPU or points, regardless the number of users, is common practice as well as site or company licenses
6.
GNU General Public License
–
The GNU General Public License is a widely used free software license, which guarantees end users the freedom to run, study, share and modify the software. The license was written by Richard Stallman of the Free Software Foundation for the GNU Project. The GPL is a license, which means that derivative work can only be distributed under the same license terms. This is in distinction to permissive free licenses, of which the BSD licenses. GPL was the first copyleft license for general use, historically, the GPL license family has been one of the most popular software licenses in the free and open-source software domain. Prominent free software licensed under the GPL include the Linux kernel. In 2007, the version of the license was released to address some perceived problems with the second version that were discovered during its long-time usage. To keep the license up to date, the GPL license includes an optional any later version clause, developers can omit it when licensing their software, for instance the Linux kernel is licensed under GPLv2 without the any later version clause. The GPL was written by Richard Stallman in 1989, for use with programs released as part of the GNU project, the original GPL was based on a unification of similar licenses used for early versions of GNU Emacs, the GNU Debugger and the GNU C Compiler. These licenses contained similar provisions to the modern GPL, but were specific to each program, rendering them incompatible, Stallmans goal was to produce one license that could be used for any project, thus making it possible for many projects to share code. The second version of the license, version 2, was released in 1991, version 3 was developed to attempt to address these concerns and was officially released on 29 June 2007. Version 1 of the GNU GPL, released on 25 February 1989, the first problem was that distributors may publish binary files only—executable, but not readable or modifiable by humans. To prevent this, GPLv1 stated that any vendor distributing binaries must also make the source code available under the same licensing terms. The second problem was that distributors might add restrictions, either to the license, the union of two sets of restrictions would apply to the combined work, thus adding unacceptable restrictions. To prevent this, GPLv1 stated that modified versions, as a whole, had to be distributed under the terms in GPLv1. Therefore, software distributed under the terms of GPLv1 could be combined with software under more permissive terms, according to Richard Stallman, the major change in GPLv2 was the Liberty or Death clause, as he calls it – Section 7. The section says that licensees may distribute a GPL-covered work only if they can all of the licenses obligations. In other words, the obligations of the license may not be severed due to conflicting obligations and this provision is intended to discourage any party from using a patent infringement claim or other litigation to impair users freedom under the license
7.
MySQL
–
MySQL is an open-source relational database management system. Its name is a combination of My, the name of co-founder Michael Widenius daughter, and SQL, the MySQL development project has made its source code available under the terms of the GNU General Public License, as well as under a variety of proprietary agreements. MySQL was owned and sponsored by a single firm, the Swedish company MySQL AB. For proprietary use, several paid editions are available, and offer additional functionality, MySQL is a central component of the LAMP open-source web application software stack. LAMP is an acronym for Linux, Apache, MySQL, Perl/PHP/Python, applications that use the MySQL database include, TYPO3, MODx, Joomla, WordPress, phpBB, MyBB, and Drupal. MySQL is also used in many high-profile, large-scale websites, including Google, Facebook, Twitter, Flickr, MySQL is written in C and C++. Its SQL parser is written in yacc, but it uses a lexical analyzer. A port of MySQL to OpenVMS also exists, the MySQL server software itself and the client libraries use dual-licensing distribution. They are offered under GPL version 2, beginning from 28 June 2000 or to use a proprietary license, support can be obtained from the official manual. Free support additionally is available in different IRC channels and forums, Oracle offers paid support via its MySQL Enterprise products. They differ in the scope of services and in price, additionally, a number of third party organisations exist to provide support and services, including MariaDB and Percona. MySQL has received positive reviews, and reviewers noticed it performs well in the average case and that the developer interfaces are there. It has also tested to be a fast, stable and true multi-user. MySQL was created by a Swedish company, MySQL AB, founded by David Axmark, Allan Larsson, original development of MySQL by Widenius and Axmark began in 1994. The first version of MySQL appeared on 23 May 1995 and it was initially created for personal usage from mSQL based on the low-level language ISAM, which the creators considered too slow and inflexible. They created a new SQL interface, while keeping the same API as mSQL, by keeping the API consistent with the mSQL system, many developers were able to use MySQL instead of the mSQL antecedent. Documentation of some of the short-comings appears in MySQL Federated Tables, Sun Microsystems acquired MySQL AB in 2008. Version 5.1, production release 27 November 2008 Version 5.1 contained 20 known crashing and wrong result bugs in addition to the 35 present in version 5.0
8.
Relational database management system
–
A relational database management system is a database management system that is based on the relational model as invented by E. F. Codd, of IBMs San Jose Research Laboratory. In 2017, many of the databases in widespread use are based on the database model. Relational databases have often replaced legacy hierarchical databases and network databases because they are easier to understand, however, relational databases have received unsuccessful challenge attempts by object database management systems in the 1980s and 1990s and also by XML database management systems in the 1990s. Despite such attempts, RDBMSs keep most of the market share, according to DB-Engines, in 2016, the most widely used systems are Oracle, MySQL, Microsoft SQL Server, PostgreSQL, IBM DB2, Microsoft Access, and SQLite. According to research company Gartner, in 2011, the five leading commercial relational database vendors by revenue were Oracle, IBM, Microsoft, SAP including Sybase, however, the first commercially available RDBMS was Oracle, released in 1979 by Relational Software, now Oracle Corporation. Other examples of an RDBMS include DB2, SAP Sybase ASE, in 1984, the first RDBMS for Macintosh began being developed, code-named Silver Surfer, it was later released in 1987 as 4th Dimension and known today as 4D. The term relational database was invented by E. F. Codd at IBM in 1970, Codd introduced the term in his seminal paper A Relational Model of Data for Large Shared Data Banks. In this paper and later papers, he defined what he meant by relational, one well-known definition of what constitutes a relational database system is composed of Codds 12 rules. The first system sold as an RDBMS was Multics Relational Data Store, others have been Ingres and IBM BS12. The most common definition of an RDBMS is a product that presents a view of data as a collection of rows and columns, by this definition, RDBMS products typically implement some but not all of Codds 12 rules. A second school of thought argues that if a database does not implement all of Codds rules and this view, shared by many theorists and other strict adherents to Codds principles, would disqualify most DBMSs as not relational. For clarification, they refer to some RDBMSs as truly-relational database management systems. As of 2009, most commercial relational DBMSes employ SQL as their query language, alternative query languages have been proposed and implemented, notably the pre-1996 implementation of Ingres QUEL. SQL Object database Wikibook SQL Online analytical processing and ROLAP Data warehouse Star schema Snowflake schema
9.
Data warehouse
–
In computing, a data warehouse, also known as an enterprise data warehouse, is a system used for reporting and data analysis, and is considered a core component of business intelligence. DWs are central repositories of integrated data from one or more disparate sources and they store current and historical data in one single place and are used for creating analytical reports for knowledge workers throughout the enterprise. Examples of reports could range from annual and quarterly comparisons and trends to detailed daily sales analysis, the data stored in the warehouse is uploaded from the operational systems. The data may pass through a data store and may require data cleansing for additional operations to ensure data quality before it is used in the DW for reporting. The typical Extract, transform, load -based data warehouse uses staging, data integration, the staging layer or staging database stores raw data extracted from each of the disparate source data systems. The integration layer integrates the disparate data sets by transforming the data from the staging layer often storing this transformed data in a data store database. The combination of facts and dimensions is called a star schema. The access layer helps users retrieve data and this definition of the data warehouse focuses on data storage. However, the means to retrieve and analyze data, to extract, transform, and load data, many references to data warehousing use this broader context. Thus, a definition for data warehousing includes business intelligence tools, tools to extract, transform, and load data into the repository. A data warehouse maintains a copy of information from the source transaction systems and this architectural complexity provides the opportunity to, Integrate data from multiple sources into a single database and data model. Mere congregation of data to single database so a single query engine can be used to present data is an ODS, mitigate the problem of database isolation level lock contention in transaction processing systems caused by attempts to run large, long running, analysis queries in transaction processing databases. Maintain data history, even if the source transaction systems do not, Integrate data from multiple source systems, enabling a central view across the enterprise. This benefit is always valuable, but particularly so when the organization has grown by merger, improve data quality, by providing consistent codes and descriptions, flagging or even fixing bad data. Provide a single common data model for all data of interest regardless of the datas source, restructure the data so that it makes sense to the business users. Restructure the data so that it delivers excellent query performance, even for complex analytic queries, add value to operational business applications, notably customer relationship management systems. Make decision–support queries easier to write, optimized data warehouse architectures allow data scientists to organize and disambiguate repetitive data. In regards to source systems listed above, Rainer states, A common source for the data in data warehouses is the companys operational databases, which can be relational databases
10.
Referential integrity
–
Referential integrity is a property of data which, when satisfied, requires every value of one attribute of a relation to exist as a value of another attribute in a different relation. In other words, when a key value is used it must reference a valid. For instance, deleting a record that contains a value referred to by a key in another table would break referential integrity. Which method is used may be determined by a referential integrity constraint defined in a data dictionary, the adjective referential describes the action that a foreign key performs, referring to a link column in another table. In simple terms, referential integrity is a guarantee that the target it refers to will be found, a lack of referential integrity in a database can lead relational databases to return incomplete data, usually with no indication of an error. An inclusion dependency over two predicates R and S from a schema is written R ⊆ S, where the A i, B i are distinct attributes of R and S and it implies that the tuples of values appearing in columns A1. A n for facts of R must also appear as a tuple of values in columns B1, B n for some fact of S. Logical implication between inclusion dependencies can be axiomatized by inference rules and can be decided by a PSPACE algorithm. The problem can be shown to be PSPACE-complete by reduction from the problem for a linear bounded automaton. However, logical implication between dependencies that can be inclusion dependencies or functional dependencies is undecidable by reduction from the problem for monoids. Dangling pointer Declarative Referential Integrity Domain/key normal form Entity integrity Functional dependency Propagation constraint Surrogate key Slowly changing dimension
11.
Concurrency (computer science)
–
In computer science, concurrency is the decomposability property of a program, algorithm, or problem into order-independent or partially-ordered components or units. This means that if the concurrent units of the program, algorithm, or problem are executed out-of-order or in partial order. This allows for execution of the concurrent units, which can significantly improve overall speed of the execution in multi-processor. The ensuing decades have seen a growth of interest in concurrency—particularly in distributed systems. Looking back at the origins of the field, what stands out is the role played by Edsger Dijkstra. Concurrent use of shared resources can be a source of indeterminacy leading to such as deadlocks. Concurrency theory has been a field of research in theoretical computer science. One of the first proposals was Carl Adam Petris seminal work on Petri Nets in the early 1960s, in the years since, a wide variety of formalisms have been developed for modeling and reasoning about concurrency. g. Some of these are based on passing, while others have different mechanisms for concurrency. The proliferation of different models of concurrency has motivated some researchers to develop ways to unify these different theoretical models, various types of temporal logic can be used to help reason about concurrent systems. Some of these logics, such as linear temporal logic and computational tree logic, others, such as action computational tree logic, Hennessy-Milner logic, and Lamports temporal logic of actions, build their assertions from sequences of actions. The principal application of these logics is in writing specifications for concurrent systems, concurrent programming encompasses programming languages and algorithms used to implement concurrent systems. The base goals of concurrent programming include correctness, performance and robustness, concurrent systems such as Operating systems and Database management systems are generally designed to operate indefinitely, including automatic recovery from failure, and not terminate unexpectedly. Because they use shared resources, concurrent systems in general require the inclusion of some kind of arbiter somewhere in their implementation, the use of arbiters introduces the possibility of indeterminacy in concurrent computation which has major implications for practice including correctness and performance. Some concurrent programming models include coprocesses and deterministic concurrency, in these models, threads of control explicitly yield their timeslices, either to the system or to another process. Tanenbaum, Andrew S. Van Steen, Maarten, a Practical Theory of Reactive Systems. Concurrency, State Models and Java Programming, concurrent Systems at The WWW Virtual Library Concurrency patterns presentation given at scaleconf
12.
MariaDB
–
MariaDB is a community-developed fork of the MySQL relational database management system intended to remain free under the GNU GPL. Development is led by some of the developers of MySQL. Contributors are required to share their copyright with the MariaDB Foundation, MariaDB intends to maintain high compatibility with MySQL, ensuring a drop-in replacement capability with library binary equivalency and exact matching with MySQL APIs and commands. Its lead developer is Michael Monty Widenius, one of the founders of MySQL AB, on 16 January 2008, MySQL AB announced that it had agreed to be acquired by Sun Microsystems for approximately $1 billion. The acquisition completed on 26 February 2008, MariaDB is named after Montys younger daughter Maria, similar to how MySQL is named after his other daughter My. MariaDB version numbers follow the MySQLs numbering scheme up to version 5.5, thus, MariaDB5.5 offers all of the MySQL5.5 features. There exists a gap in MySQL versions between 5.1 and 5.5, while MariaDB issued 5.2 and 5.3 point releases, since specific new features have been developed in MariaDB, the developers decided that a major version number change was necessary. MariaDBs API and protocol are compatible with those used by MySQL, plus some features to support native non-blocking operations and this means that all connectors, libraries and applications which work with MySQL should also work on MariaDB—whether or not they support its native features. On this basis, Fedora developers replaced MySQL with MariaDB in Fedora 19, openBSD likewise in April 2013 dropped MySQL for MariaDB5.5. In December 2012, Michael Widenius, David Axmark, and Allan Larsson announced the creation of a foundation that would oversee the development of MariaDB, phipps quit in 2014 on the sale of the MariaDB trademark to SkySQL. He later said I quit as soon as it was obvious the company was not going to allow an independent foundation, skySQLs CEO Patrik Sallner would lead the new merged company, and Widenius was appointed as its CTO by the MariaDB Foundation. MariaDB is a trademark of MariaDB Corporation AB, used under license by the MariaDB Foundation. Google has sent an engineer to the MariaDB Foundation, a group of investment companies led by Intel has invested $20 million in SkySQL. Comparison of relational database management systems Bartholomew, Daniel, official website MariaDB Foundation website MariaDB, the Backward Compatible Branch of MySQL Database Server on YouTube – a lecture given by Monty Widenius at Google
13.
Drizzle (database server)
–
Drizzle was a free software/open source relational database management system that was forked from the now-defunct 6.0 development branch of the MySQL DBMS. Like MySQL, Drizzle had an architecture and uses SQL as its primary command language. Old Drizzle files are distributed under version 2 and 3 of the GNU General Public License with portions, including the protocol drivers, early work on the fork was done mid-2008 by Brian Aker. Ongoing development is handled by a team of contributors that includes members from Canonical Ltd. Google, Six Apart, Sun Microsystems, Rackspace, Data Differential, Blue Gecko, Intel, Percona, Hewlett-Packard, Red Hat, Drizzle source code, along with instructions on compiling it, are available via the projects Launchpad website. In October 2010, Drizzle had 13,478 total contributions,96 total contributors and it was also announced that Drizzle had entered Beta. The first GA version was released in March 2011, Drizzle has actively participated in the Google Summer of Code Project since 2010. Drizzle is targeted at the web-infrastructure and cloud computing markets, the developers of the product describe it as a smaller, slimmer and faster version of MySQL. Drizzle is written in the C++ programming language, and stores its data in the UTF-8 format. Microsoft Windows is not supported at this time, mainly for lack of Autotools support, Drizzle is a re-designed version of the MySQL v6.0 codebase and is designed around a central concept of having a microkernel architecture. Features such as the cache and authentication system are now plugins to the database. It supports PAM, LDAP, and HTTP AUTH for authentication via plugins it ships, via its plugin system it currently supports logging to files, syslog, and remote services such as RabbitMQ and Gearman. Drizzle is an ACID-compliant relational database that supports transactions via an MVCC design, plugin points have been added to support replication, storage engines, query rewrite, table functions, user-defined functions, protocol adapters, and multiple query caches. Like MySQL, Drizzle supports concurrent multiple engines, via this, Drizzle includes built-in support for B+ tree and hash indexes. Drizzles query planner is capable of using multiple indexes, from engines to satisfy complex queries. Database triggers in Drizzle are supported for DML, DDL, the PrimeBase BLOB streaming system, which allows Drizzle to stream binary large objects via HTTP, makes use of this system. All triggers for Drizzle currently must be written in C++, any query can be matched and rewritten dynamically that is sent to the server. This action is done before parsing occurs, via the keyword CONCURRENT it can operate these statements in parallel
14.
MySQL Cluster
–
MySQL Cluster is a technology providing shared-nothing clustering and auto-sharding for the MySQL database management system. It is designed to provide high availability and high throughput with low latency, MySQL Cluster is implemented through the NDB or NDBCLUSTER storage engine for MySQL. MySQL Cluster is designed around a distributed, multi-master ACID compliant architecture with no point of failure. Two copies of the data are required to guarantee availability, MySQL Cluster automatically creates “node groups” from the number of replicas and data nodes specified by the user. Updates are synchronously replicated between members of the group to protect against data loss and support fast failover between nodes. It is also possible to replicate asynchronously between clusters, this is referred to as MySQL Cluster Replication or geographical replication. This is typically used to replicate clusters between data centers for disaster recovery or to reduce the effects of network latency by locating data physically closer to a set of users. Starting with MySQL Cluster 7.2, support for synchronous replication between data centers was supported with the Multi-Site Clustering feature, Data within MySQL Cluster tables is automatically partitioned across all of the data nodes in the system. This is done based on an algorithm based on the primary key on the table. Clients can connect to any node in the cluster and have queries automatically access the correct shards needed to satisfy a query or commit a transaction, MySQL Cluster is able to support cross-shard queries and transactions. Users can define their own partitioning schemes and this allows developers to add “distribution awareness” to applications by partitioning based on a sub-key that is common to all rows being accessed by high running transactions. This ensures that data used to complete transactions is localized on the same shard, MySQL Cluster allows datasets larger than the capacity of a single machine to be stored and accessed across multiple machines. MySQL Cluster maintains all indexed columns in distributed memory, non-indexed columns can also be maintained in distributed memory or can be maintained on disk with an in-memory page cache. Storing non-indexed columns on disk allows MySQL Cluster to store larger than the aggregate memory of the clustered machines. MySQL Cluster writes Redo logs to disk for all data changes as well as check pointing data to disk regularly and this allows the cluster to consistently recover from disk after a full cluster outage. The current default asynchronous write delay is 2 seconds, and is configurable, normal single point of failure scenarios do not result in any data loss due to the synchronous data replication within the cluster. When a MySQL Cluster table is maintained in memory, the cluster will only access disk storage to write Redo records and this checkpointing to disk of in-memory table data can be disabled if disk-based persistence isnt needed. MySQL Cluster is designed to have no point of failure
15.
MySQL Workbench
–
It is the successor to DBDesigner 4 from fabFORCE. net, and replaces the previous package of software, MySQL GUI Tools Bundle. DBDesigner4 is an open source visual database design and querying tool for the MySQL database released under the GPL and it was written in 2002/2003 by the Austrian programmer Michael G. Zinner for his fabFORCE. net platform using Delphi 7 / Kylix 3. It is available for MS Windows, Mac OS X and Linux, in late 2003, Zinner was approached by representatives from MySQL AB and joined the company to take over the development of graphical user interface tools for MySQL. This led to the creation of the MySQL GUI Tools Bundle and it was developed by MySQL AB and later by Sun Microsystems and released under the GPL. Development on the GUI Tools bundle has stopped, and is now preserved under the Download Archives of the MySQL site. The GUI Tools bundle has been superseded by MySQL Workbench, however, the MySQL Support team continued to provide assistance for the bundle until June 30,2010. The first preview version of MySQL Workbench was released in September 2005, development was started again in 2007 and MySQL Workbench was set to become the MySQL GUI flagship product. Version numbering was started at 5.0 to emphasise that MySQL Workbench was developed as the successor to DBDesigner4, MySQL Workbench 5.0 and 5.1 are specialized visual database design tools for the MySQL database. While MySQL Workbench 5.0 was a MS Windows-only product, cross-platform support was added to MySQL Workbench 5.1, starting with MySQL Workbench 5.2 the application has evolved to a general database GUI application. Apart from physical database modeling it features an SQL Editor, database migration tools, on May 22,2013, the MySQL Workbench Team announced that they were working on Version 6.0. The first public beta, labeled version 6.0.2, was released on June 14,2013, on January 23,2014 the MySQL Workbench Team announced its first public beta release of Version 6.1. The first general-availability release was made on March 31,2014, new features include improved Visual Explain output, a Performance dashboard, Performance Schema support, additional query result views, and MSAA support. On August 19,2014, the MySQL Workbench Team announced its first public release of Version 6.2. The first general-availability release was made on September 23,2014, on March 5,2015, the MySQL Workbench Team announced its first public beta release of Version 6.3. The first general-availability release was made on April 23,2015, up to version 6.3.8, MySQL Workbench for MacOS has incompatibilities with MacOS Sierra. The Community Edition is a featured product that is not crippled in any way. Being the foundation for all other editions it will benefit from all future development efforts, the proprietary Standard Edition extends the Community Edition with a series of modules and plugins. As this business decision was announced soon after the takeover of MySQL by Sun Microsystems, since its introduction MySQL Workbench has become popular within the MySQL community
16.
PhpMyAdmin
–
PhpMyAdmin is a free and open source tool written in PHP intended to handle the administration of MySQL or MariaDB with the use of a web browser. It can perform tasks such as creating, modifying or deleting databases, tables, fields or rows, executing SQL statements, or managing users. Tobias Ratschiller, then an IT consultant and later founder of the software company Maguma, started to work on a PHP-based web front-end to MySQL in 1998 and he gave up the project in 2000 because of lack of time. By that time, phpMyAdmin had already one of the most popular PHP applications and MySQL administration tools. In order to coordinate the growing number of patches, a group of three developers registered The phpMyAdmin Project at SourceForge and took over the development in 2001, in July 2015, the main website and the downloads left SourceForge and moved to a content delivery network. At the same time, the releases began to be PGP-signed, afterwards, issue tracking moved to GitHub and the mailing lists migrated. Before version 4, which uses Ajax extensively to enhance usability, the software, which is currently available in 78 languages, is maintained by The phpMyAdmin Project. Comparison of database tools Official website
17.
HeidiSQL
–
HeidiSQL, previously known as MySQL-Front, is a free and open source client, or frontend for MySQL, as well as Microsoft SQL Server and PostgreSQL. To manage databases with HeidiSQL, users must log in to a local or remote MySQL server with acceptable credentials, within this session users may manage MySQL databases within the connected MySQL server, disconnecting from the server when done. Private development continued up to version 2.5, until in April 2006, Ansgar open-sourced the application on SourceForge, HeidiSQL was re-engineered to use a newer and more popular database-interface layer, ZeosLib, which debuted in the version 3.0 major release in April 2006. Due to shortcomings in SourceForge project hosting and other advantages, Ansgar shifted HeidiSQLs code repository, HeidiSQL was then rewritten to use a custom database-interface implementation rather than existing libraries. Support for Microsoft SQL Server was added in March 2011 for the 7.0 release, since the 8.0 release, HeidiSQL offers its GUI in about 22 languages other than English. Translations are contributed by users from various countries via Transifex, PostgreSQL support was introduced in March 2014 for the 9.0 release. HeidiSQL has the following GUI features and capabilities, virtual columns on MariaDB servers are supported. The jHeidi project has been discontinued since March 2010, http, //www. heidisql. com/jheidi/ DBeaver MySQL SQLyog MySQL Workbench phpMyAdmin Official website HeidiSQL project page on Google Code
18.
Navicat
–
Navicat is a series of graphical database management and development software produced by PremiumSoft CyberTech Ltd. for MySQL, MariaDB, Oracle, SQLite, PostgreSQL and Microsoft SQL Server. It has an Explorer-like graphical user interface and supports multiple database connections for local and its design is made to meet the needs of a variety of audiences, from database administrators and programmers to various businesses/companies that serve clients and share information with partners. The initial version of Navicat was developed in 2001, the main target of the initial version was to simplify the management of MySQL installations. In 2008, Navicat for MySQL was the winner of the Hong Kong ICT2008 Award of the Year, Best Business Grand Award, Navicat is a cross-platform tool and works on Microsoft Windows, Mac OS X and Linux platforms. Officially released in March 2002, the Windows version of Navicat for MySQL became the first product offered to the public by PremiumSoft, subsequently, the company released two additional versions of Navicat for MySQL on the Mac OS X and Linux operating system in June and October 2003 respectively. In November 2013, added the support of MariaDB, PremiumSoft continued to expand their Navicat series by releasing Navicat for PostgreSQL for Windows in October 2005 and then for Mac OS X in June 2006. The Linux version of Navicat for PostgreSQL would not be released until 3 years later in August 2009, in August 2008 Navicat decided to further continue their product line and branch out into the Oracle community, creating Navicat for Oracle for Windows and Mac. In August of the year they followed up with a version for the Linux Platform. The Oracle version of Navicat supports most of the latest Oracle objects features including Directory, Tablespace, Synonym, Materialized View, Trigger, Sequence, and Type, etc. Navicat for SQLite was released for Windows and Mac OS X simultaneously in April 2009, in April 2010, Navicat Premium began including Navicat for SQLite starting from version 9 to expand the usability of Navicat Premium. Navicat for SQL Server was released in November 2010 for the Windows platform, also at the release, the SQL server version was included in the Premium version of Navicat. In January 2011, support for SQL Azure was added, MariaDB is currently the newest addition to the list of database Navicat supports. The new line of product, called Navicat for MariaDB, was released in November 2013 for the Windows, Mac OS X and it provides a native environment for MariaDB database management and supports the extra features like new storage engines, microsecond, virtual columns. Also at the release, the MariaDB version was included in both Navicat Premium and Navicat for MySQL, Navicat Premium version also supports cross-platform administration, serving Windows, Mac OS X and Linux. In November 2010, support for Microsoft SQL Server was added, in January 2011, SQL Azure was included. In November 2013, added the support of MariaDB, Navicat Essentials was officially released in November 2011. This is a simple Navicat version for commercial use, Navicat Data Modeler Windows version was officially released in March 2012. Then, Mac OS X and Linux version were released in May 2012 and this is a standalone product for developers to create data models for MySQL, SQL Server, Oracle, PostgreSQL and SQLite databases
19.
Database Workbench
–
Database Workbench started out as a developer tool specifically for InterBase, InterBase Workbench, initially modeled after the SQL Navigator tool for Oracle Database by Quest Software. During its early years, InterBase became open source for a short while, the main developer of Database Workbench, Martijn Tonies, was closely involved in the early development of Firebird and has been a committee member of the Firebird Foundation. Database Workbench continued to support both systems, initially through a separate Firebird Workbench release. Early 2010, a full Unicode version of Database Workbench was released, a free version with limited functionality, Data Workbench Lite, based on Data Workbench 4 is also available. Under Linux, FreeBSD or Mac OS X Database Workbench can operate using Wine, Database Workbench can be used to view, create and edit tables, indexes, stored procedures and other database meta data objects
20.
Fork (software development)
–
The term often implies not merely a development branch, but also a split in the developer community, a form of schism. Free and open-source software is that which, by definition, may be forked from the development team without prior permission without violating copyright law. However, licensed forks of proprietary software also happen, the word fork stems from the Latin word furca, meaning a fork or similarly shaped instrument. Fork in the meaning of to divide in branches, go separate ways has been used as early as the 14th century. In the software environment, the word evokes the fork system call, however, fork was in use in the present sense by 1995 to describe the XEmacs split, and was an understood usage in the GNU Project by 1996. Thus, there is a penalty associated with forking. The relationship between the different teams can be cordial or very bitter and he notes in the Jargon File, David A. Wheeler notes four possible outcomes of a fork, with examples, The death of the fork. This is by far the most common case and it is easy to declare a fork, but considerable effort to continue independent development and support. With a DVCS such as Mercurial or Git, the way to contribute to a project is to first branch the repository. Forks often restart version numbering from 0.1 or 1.0 even if the software was at version 3.0,4.0. An exception is when the software is designed to be a drop-in replacement for the original project. In proprietary software, the copyright is held by the employing entity. This is almost always an economic decision to generate a greater market share, a notable proprietary fork not of this kind is the many varieties of proprietary Unix—almost all derived from AT&T Unix under license and all called Unix, but increasingly mutually incompatible. The BSD licenses permit forks to become proprietary software, and some say that commercial incentives thus make proprietisation almost inevitable, examples include macOS, Cedega and CrossOver, EnterpriseDB, Supported PostgreSQL with their proprietary ESM storage system, and Netezzas proprietary highly scalable derivative of PostgreSQL. Some of these vendors contribute back changes to the community project, while some keep their changes as their own competitive advantages
21.
WebScaleSQL
–
WebScaleSQL was an open-source relational database management system created as a software branch of the production-ready community releases of MySQL. The source code of WebScaleSQL is hosted on GitHub and licensed under the terms of version 2 of the GNU General Public License, the project website announced in December 2016 that the companies involved would no longer contribute to the project. More than a few companies have faced the same set of difficulties in their production environments, WebScaleSQL was created as a branch of the MySQLs latest production-ready community release, which was version 5.6 as of March 2013. As of March 27,2014, compiling the code and running WebScaleSQL is supported only on x86-64 Linux hosts, requiring at the same time a toolchain that supports C99. The source code is hosted on GitHub and available under version 2 of the GNU General Public License, in December 2016, the WebScaleSQL website announced the companies originally involved in collaborating on the project would no longer contribute to the project. The announcement blamed differences among the needs of the companies for the end of the collaboration. Comparison of relational database management systems Official website WebScaleSQL5.6 source code on GitHub