Did you know that MySQL and Microsoft SQL servers ranked in the top three in the list of the globe’s most sought-after database management systems (DBMS)?
MySQL and MsSQL are giants in the relational database management system (RDBMS) spectrum. Although both are powerful in their own way, they offer varying features and advantages that cater to different needs. This can make it challenging for one to choose between MySQL vs MsSQL.
In this blog, we will explore the 13 key differences between MySQL vs MsSQL to help you make an informed decision according to your enterprise’s requirements.
Table Of Contents
- What is Microsoft SQL Server?
- What is MySQL?
- What is MsSQL?
- MySQL vs MsSQL: Similarities
- MsSQL vs MySQL: Key Differences
What is Microsoft SQL Server?
Credits: Microsoft Website
Before we dive into MySQL vs MsSQL, it is important to understand what a Microsoft SQL server is.
Microsoft SQL Server is a relational database management system established by Microsoft. It is designed to store, retrieve, and manage significant volumes of data in enterprise environments. SQL Server offers a platform for building robust and scalable database applications, providing tools for data integration, analysis, and reporting.
Over the years, Microsoft has improved SQL Server with features like advanced analytics, machine learning integrations, and powerful security measures. Due to its versatility and comprehensive features, SQL Server is a popular choice among businesses of all sizes for their data storage and processing needs, from simple data transactions to complex data warehousing and business intelligence operations.
Do you want to master how to create a database in MySQL using the command line? Read our informative blog, ‘How to Create A Database In MySQL Using The Command Line.’
What is MySQL?
MySQL is an open-source relational database management system (RDBMS) that uses Structured Query Language (SQL) to manage, retrieve, and store data. Established in the mid-1990s by a Swedish company, MySQL AB, Sun Microsystems later acquired it and Oracle Corporation. MySQL has since become one of the world’s most sought-after databases, renowned for its speed, reliability, and ease of use.
Often used in web applications, MySQL forms the ‘M’ in the LAMP stack, a common software stack that includes Apache, MySQL, PHP/Perl/Python, and Linux. Its open-source nature and robust performance make it a go-to choice for many small to large-scale applications and sites.
Key Features of MySQL
Below are some of the standout features of MySQL:
MySQL is open-source software, making it freely available to the public. This reduces business costs and allows developers to modify and customize the source code to fit specific needs. The open-source model fosters a large and active community that contributes to its continuous improvement and support.
Scalability and Flexibility
MySQL is known for its scalability, ensuring it can handle deep and extensive databases. It can manage almost any data, from a few rows to as many as 50 million rows or more. Its flexibility ensures it can run on various Windows, Linux, or Mac platforms.
MySQL offers robust data protection with solid data security layers that prevent unauthorized access. It uses powerful mechanisms like encrypted connections and password security to ensure data safety. MySQL provides backup and recovery utilities to prevent data loss.
MySQL boasts a unique storage-engine architecture that facilitates system fine-tuning for maximum performance. Its speed is a hallmark, with features like memory caches and full-text indexes ensuring swift query returns. Regular updates and improvements mean that performance optimization is an ongoing endeavor.
MySQL emphasizes data integrity, ensuring it remains accurate and consistent throughout its lifecycle. Built-in tools and features, such as atomic transactions and ACID (Atomicity, Consistency, Isolation, Durability) compliance, ensure operations are complete, and data remains uncorrupted. Automatic checks are run to guarantee data validity and consistency.
Replication and High Availability
Replication capabilities in MySQL allow data from one MySQL database server (the master) to be copied to one or more MySQL database servers (the slaves). This ensures data availability and facilitates load balancing as read requests can be distributed across multiple nodes. This feature ensures high performance and reliability, especially for read-intensive applications.
Comprehensive Transactional Support
MySQL fully supports transactional processes, ensuring that database operations are executed seamlessly. Features like commit, rollback, and crash recovery ensure that databases maintain their integrity, even in the face of unexpected failures. These features are crucial for businesses where data consistency and reliability are paramount.
Support for Partitioning
MySQL supports table partitioning, subdividing databases into smaller, more manageable pieces. This not only enhances performance but also ensures quicker backups and maintenance. Partitioning optimizes data retrieval processes by facilitating the efficient querying of vast databases.
Pros and Cons of Using MySQL
Weighing the pros and cons of MySQL can offer valuable insight into whether it is a suitable relational database management system for you:
- Open-Source Nature: MySQL is freely available, which reduces licensing costs. The open-source model allows customization and benefits from a vast and active community.
- Cross-Platform Support: MySQL is platform-independent and can run on various operating systems, including Windows, Linux, and macOS, offering flexibility in deployment.
- Performance and Reliability: MySQL offers high performance and is known for its reliable uptime, making it suitable for both small-scale applications and large-scale enterprise solutions.
- Scalability: MySQL can handle extensive databases and provides features for scaling out, ensuring it meets the demands of both growing and large applications.
- Security: With encrypted data communication, password security, and support for SSL, MySQL offers robust security features to protect data.
- Comprehensive Transactional Support: MySQL supports ACID (Atomicity, Consistency, Isolation, Durability) transactions, ensuring data integrity and consistency.
- Constrained for Extremely Large Databases: While MySQL is scalable, it might not be the best fit for databases that have a size in the multi-terabyte range or require horizontal scalability at a massive scale.
- Memory Usage: MySQL can be memory-intensive, sometimes requiring fine-tuning to optimize performance on specific server configurations.
- Complexity with Some Advanced Features: Some features, like stored procedures or triggers, can be more complicated to implement in MySQL than other databases.
- Fewer Features in Standard Edition: Some advanced features are available only in the MySQL Enterprise Edition, which is not open source and comes at a cost.
- GIS Features: While MySQL supports geographic data, its GIS (Geographic Information Systems) functionalities are less advanced than other databases.
- Concurrency Issues: In scenarios with high concurrency, MySQL might face challenges with lock contention, especially when using specific storage engines like MyISAM.
How MySQL Works
Below is detailed step-by-step information on the mechanics of MySQL:
At its core, MySQL uses a layered architecture. The uppermost layer deals with client-server communication and authentication, while the middle focuses on query processing, and the lowest layer handles data storage and retrieval. This multi-layered approach allows for modular development and ensures each component functions independently, enhancing the system’s overall efficiency.
When a client sends a request, it’s received by the MySQL server, which processes the query. MySQL uses the standard TCP/IP protocol for network communication, ensuring reliable data transmission between the client and the server. MySQL offers APIs and connectors for various programming languages, allowing for smooth integration and interaction with several applications.
Once a query reaches MySQL, it undergoes various stages, including:
- Parsing: The query is analyzed and broken down into an understandable format.
- Optimization: The query optimizer evaluates the most efficient way to execute the request.
- Execution: The optimized query is then run, and the results are fetched from the data storage.
One of MySQL’s key features is its pluggable storage engine architecture. Depending on the specific data storage and retrieval needs, MySQL enables users to select from several storage engines, like InnoDB (default and ACID-compliant) and MyISAM (known for its speed). Each storage engine has its characteristics, pros, and optimal use cases.
Data Storage and Retrieval
Data in MySQL is stored inside the chosen storage engine, within tables that follow the relational model. Each table contains rows (records) and columns (attributes). The primary method for data retrieval is the Structured Query Language (SQL), a standardized language that facilitates data manipulation and retrieval. Indexes, particularly in the InnoDB engine, help accelerate these retrieval processes.
MySQL, especially with the InnoDB storage engine, supports transactional operations. This means a series of operations can be grouped as a single transaction, ensuring data integrity. If any operation within the transaction fails, the entire transaction can be rolled back, keeping the data consistent.
Security in MySQL is multi-faceted:
- Authentication: Ensuring only authorized users can access the database.
- Authorization: Granting different privileges to users based on roles.
- Encryption: Protecting data, both at rest and during transmission.
Backup and Recovery
MySQL provides tools and utilities for backing up data, ensuring that data can be restored without loss in the event of system failures. This is achieved through complete, incremental, and binary log backups. Restoration processes are simple, ensuring business continuity even in crisis scenarios.
Do you want to learn how to create MySQL tables? Read our detailed step-by-step guide, ‘Creating MySQL Tables: A Guide to Structuring Your Data‘.
What is MsSQL?
Microsoft SQL Server, commonly called MsSQL, is a relational database management system (RDBMS) developed by Microsoft. Designed to hold, retrieve, and manage considerable volumes of data, MsSQL offers solutions for data warehousing, e-commerce, line-of-business applications, etc.
Equipped with a range of tools for database management, business intelligence, and analytics, it provides robust security features and high-performance capabilities and supports both on-premises and cloud-based deployments. Over the years, SQL Server has evolved through numerous editions, catering to different needs, from lightweight applications to large-scale enterprise solutions.
Key Features of MsSQL
Below are some of the top features of MsSQL:
MsSQL is celebrated for its high-performance capabilities. It leverages advanced query optimization techniques to ensure rapid data retrieval and processing. Built-in caching and efficient memory usage mean operations are quick, even with extensive data sets.
MsSQL offers a commendable security model that is integral for protecting sensitive data. Features like Transparent Data Encryption (TDE) ensure data at rest is encrypted, while Row-Level Security (RLS) allows for fine-grained control over who can see what data. Always Encrypted technology means sensitive data remains encrypted at rest and in transit.
Scalability and Flexibility
Microsoft has designed MsSQL to grow with a business’s needs. Whether a small business or a large enterprise, you can scale up or out with its distributed architecture. It also offers both on-premises and cloud-based deployments. This allows businesses to choose the best setup based on their needs.
Comprehensive Business Intelligence Tools
MsSQL isn’t just about storing data. It’s about understanding it. With integrated Analysis Services, BI tools like Reporting Services, and Integration Services, businesses can effortlessly analyze, visualize, and gain insights from their data. These tools help in transforming raw data into actionable business insights.
Integration with Microsoft Products
Since MsSQL is a Microsoft product, it boasts effortless integration with other Microsoft offerings like Excel, Azure, and Power BI. This makes data transfer and report generation across Microsoft platforms straightforward and efficient. It’s a significant advantage for businesses already invested in the Microsoft ecosystem.
Automated Backup and Restore
Data safety is critical, and MsSQL recognizes this. The platform offers automated backup procedures, ensuring data is safe and retrievable. In case of unforeseen incidents or disasters, the restore capabilities ensure that businesses can get back up and running with minimal downtime.
Mobile Reports and Dashboards
In today’s fast-paced world, access to data on the go is important. MsSQL supports mobile reports and dashboards. This allows decision-makers to access critical business insights from anywhere, anytime. This feature ensures data-driven decisions can be made outside the traditional office environment.
Pros and Cons of Using MsSQL
Weighing the pros and cons of MsSQL can offer valuable information on whether the pros of the relational database management system outweigh the cons for you:
- Integrated Environment: Microsoft provides an integrated environment with tools like SQL Server Management Studio (SSMS) for managing, deploying, and monitoring SQL Server instances.
- Performance: With advanced features like in-memory processing, MsSQL can handle large datasets and deliver high performance.
- Security: MsSQL offers robust features like Transparent Data Encryption (TDE), Always Encrypted, and row-level security, ensuring data is protected at rest and in transit.
- Business Intelligence Integration: MsSQL smoothly integrates with other Microsoft products, especially BI tools like Power BI, making it easier to transform and visualize data.
- Advanced Analytics: With Machine Learning Services and R integration, MsSQL allows for executing R and Python scripts, providing advanced data analytics capabilities.
- High Availability and Disaster Recovery: Features like AlwaysOn Availability Groups and failover clustering provide high availability and efficient disaster recovery solutions.
- Cost: Licensing costs can be high, especially for the Enterprise edition. This might make it less attractive for smaller businesses or startups than open-source alternatives.
- Platform Limitation: When it was first established, MsSQL was limited to the Windows environment. Though recent versions support Linux, its history means there’s less experience and knowledge about running MsSQL on non-Windows platforms.
- Memory Consumption: MsSQL can be resource-intensive, often consuming significant amounts of memory, especially as databases grow.
- Complexity: While MsSQL offers a wide range of features, it also has a steep learning curve, especially for those new to databases.
- Less Community Support: Compared to some open-source databases, the community around MsSQL is smaller. This can sometimes mean fewer community-driven resources, plugins, or tools.
- Vendor Lock-in: Being a proprietary product, there’s potential for vendor lock-in, which can limit flexibility, especially if you want to migrate to a different system.
How MsSQL Works
Below is step-by-step information on the working mechanisms that make MsSQL a powerhouse in data management:
MsSQL is a software product that provides database services to other software applications, whether they’re on the same computer or spread across a network. At its core, MsSQL uses a client-server architecture, where the ‘client’ can be any application that requires database operations, and the ‘server’ is the MsSQL Server software handling those database operations.
The architecture of MsSQL is modular and layered, allowing it to handle tasks efficiently and ensuring quick data retrieval. Some of its essential components include:
- SQL Server Database Engine: The core service for storing, processing, and securing data. It ensures data integrity, consistency, and durability.
- SQL Server Agent: Automates jobs, monitors SQL Server instances, and manages alerts and scheduled tasks.
- Relational Engine: Processes queries, determines the most efficient way to execute them, and then coordinates with the Storage Engine to fulfill the request.
- Storage Engine: Responsible for storing and retrieving data from the disk.
Data in MsSQL is stored in databases. Each database features a collection of tables that store data, views that present data in a specific format, indexes to accelerate data retrieval, and other objects that help in data management.
- Tables: The basic storage structure. Table rows correspond to individual records, while columns pertain to the record’s attributes.
- Indexes: Enhance the speed of data retrieval operations on a database. They work similarly to the index of a book, offering a pathway to the data in the tables.
When a user sends a request (often in the form of an SQL query), MsSQL Server undergoes several steps:
- Parsing: The SQL query is checked for syntax accuracy.
- Compilation: The query is then converted into a series of low-level instructions.
- Optimization: MsSQL’s Query Optimizer determines the most efficient method to execute the query, considering the current state of the database and the specific structures available.
- Execution: The query is executed, and results are returned to the client.
Security is an integral aspect of MsSQL. It offers many features, including:
- Authorization: MsSQL implements robust authorization mechanisms to control user access to database resources.
- Authentication: It employs stringent authentication protocols to verify users’ identities accessing the database.
- Encryption: MsSQL provides comprehensive encryption capabilities to secure data at rest and in transit.
This helps protect data against unauthorized access and breaches.
MsSQL leverages the ACID properties (Atomicity, Consistency, Isolation, Durability) to ensure the reliability of database transactions. If a transaction fails at any stage, the system can roll back to its previous stable state, ensuring data integrity.
MsSQL employs sophisticated concurrency control mechanisms to manage several transactions co-occurring. This ensures data accuracy and system reliability when multiple users access and modify data simultaneously.
MySQL vs MsSQL: Similarities
Below are the similarities between MySQL vs MsSQL:
Both MsSQL and MySQL offer robust scalability features, crucial for businesses with growing data needs. Whether it’s a startup that grows into a multinational company or an e-commerce platform that sees sudden spikes in user traffic, both databases can handle increased workloads effectively. They achieve this through mechanisms such as partitioning, clustering, and replication.
Performance is a critical metric for any database system. In the MySQL vs MsSQL comparison, both databases stand tall in this domain. They are engineered to handle large data sets and complex queries efficiently, ensuring that applications run smoothly and users receive timely responses. Both databases have performance optimization tools and best practices to ensure peak performance.
At the heart of any relational database lie tables, and both MsSQL and MySQL are no exception. They use tables to store data in a structured manner, allowing for efficient querying, updating, and data retrieval. The basic table structures, including rows and columns, remain consistent across both databases.
Keys are vital in relational databases, establishing relationships between tables and ensuring data integrity. Both MySQL and MsSQL support primary, foreign, and unique keys, ensuring that data remains consistent and connections between tables are clearly defined.
While nuances and differences might exist, the basic SQL syntax remains consistent between MsSQL and MySQL. Queries to retrieve, update, or delete data, such as SELECT, UPDATE, and DELETE, work similarly in both databases. This similarity in syntax means that developers familiar with one system can easily transition to the other.
Regarding web development, both MsSQL and MySQL are popular choices. They’re frequently found backing websites, from small personal blogs to expansive e-commerce platforms. Their support for various programming languages and integration with popular web development frameworks ensures they remain top picks for web developers.
Drivers act as the bridge between databases and applications. MySQL and MsSQL have many drivers available for different programming languages, like Python, Java, C#, PHP, etc. These drivers ensure that applications interact smoothly with the database, fetching and updating data as required.
Now that we have discussed the key features, pros and cons, working mechanisms, and similarities between MySQL vs MsSQL, let’s explore the differences between MySQL vs MsSQL.
MsSQL vs MySQL: Key Differences
Credits: Created with Canva
When comparing MySQL vs MsSQL, a common query most individuals ask is, ‘what is the difference between mySQL and MsSQL.’ Below is the answer:
Below is the difference between MySQL vs MsSQL in terms of platform compatibility:
● MySQL: Being open-source, MySQL offers broad platform compatibility, making it adaptable across various operating systems like macOS, Windows, and Linux.
● MsSQL: Exclusively developed by Microsoft, MsSQL is primarily designed for the Windows environment but has recently introduced support for Linux.
Syntax and Query Language
Below is the difference between MySQL vs MsSQL in terms of syntax and query language:
● MySQL: MySQL uses standard SQL but has its own slight variations and extensions in syntax and functions.
● MsSQL: While MsSQL also uses standard SQL, it employs T-SQL (Transact-SQL) for its procedural programming, offering more in-depth querying capabilities.
Below is the difference between MySQL vs MsSQL in terms of programming languages:
● MySQL: MySQL provides native support for various programming languages, including PHP, C, and Java.
● MsSQL: MsSQL prominently supports .NET languages but also offers compatibility with PHP, Java, and Python.
Below is the MySQL vs MsSQL performance difference:
● MySQL: MySQL is often praised for its speed and reliability in medium-scale applications, especially with read-intensive operations.
● MsSQL: MsSQL is designed for high-performance requirements and handles large-scale applications seamlessly, particularly with transaction-heavy operations.
Below is the difference between MySQL vs MsSQL in terms of security features:
- MySQL: MySQL offers robust security features such as SSL support, encrypted data communication, and a privileged system.
- MsSQL: MsSQL provides advanced security measures like transparent data encryption, dynamic data masking, and row-level security.
Below is the difference between MySQL vs MsSQL in terms of storage engines:
● MySQL: MySQL boasts a variety of storage engines like InnoDB, MyISAM, and Memory, allowing flexibility in storage management.
● MsSQL: MsSQL uses a single storage engine, which ensures consistent performance but offers less flexibility in terms of storage optimization.
Query Execution Differences
Below is the difference between MySQL vs MsSQL in terms of query execution:
- MySQL: MySQL optimizes queries using a cost-based model, relying on available statistics.
- MsSQL: MsSQL employs a more sophisticated query optimizer, considering statistics and the overall query workload.
Below is the difference between MySQL vs MsSQL in terms of filtering:
- MySQL: MySQL utilizes standard SQL commands for data filtering and manipulation.
- MsSQL: With T-SQL, MsSQL introduces more complex filtering options and conditional statements.
Backup and Restore
Below is the difference between MySQL vs MsSQL in terms of backup and restore:
- MySQL: MySQL offers efficient backup solutions like mysqldump and binary log-based rollback.
- MsSQL: MsSQL provides a comprehensive backup and restore system with differential backups and point-in-time recovery.
Documentation and Community
Below is the difference between MySQL vs MsSQL in terms of documentation and community:
- MySQL: Being open-source, MySQL boasts an extensive community, leading to robust documentation and community-driven support.
- MsSQL: MsSQL benefits from detailed official documentation by Microsoft, supplemented by an active global community.
Connectors and Synchronization Support
Below is the difference between MySQL vs MsSQL in terms of connectors and synchronization support:
- MySQL: MySQL offers various connectors for different programming languages and supports replication for data synchronization.
- MsSQL: MsSQL provides SQL Server Integration Services (SSIS) for advanced integration and synchronization tasks.
Below is the difference between MySQL vs MsSQL in terms of IDE tools:
- MySQL: MySQL uses MySQL Workbench as its primary IDE tool, supporting data modeling, SQL development, and comprehensive administration.
- MsSQL: MsSQL employs SQL Server Management Studio (SSMS) and Azure Data Studio, offering a rich set of tools for database management.
Editions and Cost
Below is the difference between MySQL vs MsSQL in terms of editions and cost:
- MySQL: MySQL is open-source with a free community version, while its enterprise edition comes with additional features and support at a cost.
- MsSQL: MsSQL offers a free Express edition, but its Standard and Enterprise editions, with advanced functionalities, come at a significant price.
When discussing MySQL vs MsSQL, it is evident that both databases have unique advantages and potential limitations. Your final choice between the two should resonate with your organization’s objectives, technical demands, and expected growth trajectory. As you consider which database aligns best with your aspirations for 2024, consider entrusting your database hosting needs to RedSwitches.
Our specialized hosting solutions ensure outstanding performance, security, and support, regardless of whether you lean toward MySQL or MsSQL. Making the right database decision is critical, but so is partnering with a hosting provider that understands and meets your demands. So what are you waiting for?
Get in touch with us today.
Q. Which is better, MySQL or MsSQL?
The decision between MySQL vs MsSQL often ginges on the specific needs of a project. MySQL is renowned for web applications and platforms like WordPress. It’s known for its reliability and cross-platform support. MsSQL, developed by Microsoft, integrates well with other Microsoft products and might be preferred in enterprise settings or for applications built using .NET framework.
Q. Is MsSQL faster than MySQL?
The speed comparison in MySQL vs MsSQL is complex. Performance can vary based on the specific use case, hardware, configuration, and the nature of the workload. While MsSQL might offer certain optimizations for complex queries, especially in enterprise settings, MySQL can be equally performant, particularly in web-based applications.
Q. Is MySQL and MsSQL same?
No, MySQL and MsSQL are not the same. While both are relational database management systems, they differ in licensing, features, and integrations. MySQL is open-source and developed by Oracle Corporation, whereas MsSQL is a proprietary system developed by Microsoft. Each offers different features and benefits tailored to varying application needs and environments.
Q. What is the main difference between MySQL and SQL Server?
The main difference between MySQL and SQL Server lies in their origin and ownership. MySQL is an open-source relational database management system, while SQL Server is a Microsoft product.
Q. When to use MySQL over SQL Server?
MySQL is commonly utilized for web applications, especially those using open-source software stack, such as the LAMP (Linux, Apache, MySQL, PHP/Python/Perl) stack. It’s often preferred for small to medium-sized projects due to its ease of use and cost-effectiveness.
Q. What are the main advantages of using SQL Server over MySQL?
SQL Server offers strong support for enterprise-level applications, advanced security features, and seamless integration with other Microsoft products. It is often preferred for large-scale, mission-critical applications.
Q. Can SQL statements for MySQL be directly used in SQL Server and vice versa?
SQL statements that are more generic and standard, such as simple SELECT or UPDATE statements, can often be used interchangeably between MySQL and SQL Server. However, there might be syntax differences and specific features that are not compatible with both platforms.
Q. What are the key differences between MySQL and SQL Server in terms of database files and server support?
MySQL uses MyISAM and InnoDB as the primary storage engines, while SQL Server uses .MDF and .LDF files for data storage. SQL Server offers comprehensive support and management tools through its SQL Server Management Studio (SSMS), while MySQL uses utilities like MySQL Workbench and phpMyAdmin for administration.
Q. How do MySQL and SQL Server differ in handling multiple SQL statements and amount of data?
MySQL traditionally supported handling of multiple SQL statements within a single query, while SQL Server required the use of stored procedures or specific syntax for multiple queries. Additionally, MySQL had limitations on the amount of data it could handle compared to SQL Server in previous versions.
Q. What are the main differences between MySQL and SQL Server in terms of community editions and availability?
MySQL offers a free and open-source community edition that is widely used for small to medium-sized applications, whereas SQL Server offers Express Edition as the free variant, which has limitations on database size and utilized resources. SQL Server Developer Edition is available for free for non-production use, providing full functionalities.
Q. How does MySQL differ from SQL Server in terms of platform compatibility and support?
MySQL has the advantage of being platform-independent and supports multiple operating systems and architectures. On the other hand, SQL Server historically was limited to Windows, but in recent years, it has expanded its support to include Linux and Docker containers.
Q. What are the main differences in offerings between MySQL and SQL Server in terms of services and community support?
MySQL has a strong community support system and offers a variety of community-driven resources and forums. SQL Server provides comprehensive enterprise-grade services, including additional offerings like SQL Server Reporting Services (SSRS), Analysis Services (SSAS), and Integration Services (SSIS).
Q. Can MySQL and SQL Server be used interchangeably for PHP applications and other technologies?
Both MySQL and SQL Server can be utilized with PHP and other technologies, but MySQL has historically been a popular choice due to its seamless integration with PHP and the open-source ecosystem. However, with advancements in SQL Server, it has also become a viable option for PHP applications.