{"id":1138,"date":"2025-01-13T20:25:21","date_gmt":"2025-01-14T01:25:21","guid":{"rendered":"https:\/\/pressbooks.bccampus.ca\/nelson\/chapter\/chapter-8-implementation\/"},"modified":"2025-01-13T20:43:26","modified_gmt":"2025-01-14T01:43:26","slug":"chapter08thirdedition","status":"publish","type":"chapter","link":"https:\/\/pressbooks.bccampus.ca\/nelson\/chapter\/chapter08thirdedition\/","title":{"raw":"Chapter 8 Implementation","rendered":"Chapter 8 Implementation"},"content":{"raw":"<div class=\"chapter-8-implementation-\">\r\n<p class=\"import-Normal\">Original Chapter 13 Author: Adrienne Watt<\/p>\r\n<p class=\"import-Normal\">Rewrite: Fred Strickland<\/p>\r\n\r\n<h2>Learning Outcomes<\/h2>\r\n<table style=\"width: 467.5pt\">\r\n<tbody>\r\n<tr class=\"TableGrid-R\">\r\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\"><strong>Computing Sub Discipline<\/strong><\/p>\r\n<\/td>\r\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\"><strong>Document Code, Reference Code, and Page Number<\/strong><\/p>\r\n<\/td>\r\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\"><strong>Text<\/strong><\/p>\r\n<\/td>\r\n<\/tr>\r\n<tr class=\"TableGrid-R\" style=\"height: 67.9pt\">\r\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\">Computer Science<\/p>\r\n<\/td>\r\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\">CS2023<\/p>\r\n<p class=\"import-Normal\">DM-NoSQL: NoSQL Systems<\/p>\r\n<p class=\"import-Normal\">(Pages 120-121)<\/p>\r\n<p class=\"import-Normal\"><\/p>\r\n<\/td>\r\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\">KA Core 1. Why NoSQL? (e.g., Impedance mismatch between Application [CRUD] and RDBMS)<\/p>\r\n<p class=\"import-Normal\">KA Core 2. Key-Value and Document data model<\/p>\r\n<p class=\"import-Normal\">Non-core 5. Graph Databases<\/p>\r\n<p class=\"import-Normal\">Non-core 3. Storage systems (e.g., Key-Value systems, Data Lakes)<\/p>\r\n<p class=\"import-Normal\">ILO KA Core 1. Develop a use case for the use of NoSQL over RDBMS<\/p>\r\n<p class=\"import-Normal\">ILO KA Core 2. Describe the defining characteristics behind Key-Value and Document-based data models<\/p>\r\n<\/td>\r\n<\/tr>\r\n<tr class=\"TableGrid-R\" style=\"height: 67.9pt\">\r\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\">Data Science<\/p>\r\n<\/td>\r\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\">DS2021<\/p>\r\n<p class=\"import-Normal\">Data Mining (DM)<\/p>\r\n<p class=\"import-Normal\">DM-Information Retrieval -- T2<\/p>\r\n<p class=\"import-Normal\">(Pages 80-81)<\/p>\r\n<\/td>\r\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\">Students need to have knowledge of<\/p>\r\n\r\n<ul>\r\n \t<li>Various relational, non-relational, and other database formats.<\/li>\r\n<\/ul>\r\n<\/td>\r\n<\/tr>\r\n<tr class=\"TableGrid-R\" style=\"height: 67.9pt\">\r\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\">Information Systems<\/p>\r\n<\/td>\r\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\">IS2020<\/p>\r\n<p class=\"import-Normal\">A3.2 Data \/ Information Competency Realm<\/p>\r\n<p class=\"import-Normal\">A3.2.1 Competency Area \u2013 Data \/ Information Management<\/p>\r\n<p class=\"import-Normal\">(Page 5)<\/p>\r\n<\/td>\r\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\">5. Compare tradeoffs of different concurrency modes (Page 103)<\/p>\r\n<\/td>\r\n<\/tr>\r\n<tr class=\"TableGrid-R\" style=\"height: 61.6pt\">\r\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\" rowspan=\"2\">\r\n<p class=\"import-Normal\">Information Technology<\/p>\r\n<\/td>\r\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\">IT2017<\/p>\r\n<p class=\"import-Normal\">ITE-IMA-05 Data organization architecture<\/p>\r\n<p class=\"import-Normal\">(Page 92)<\/p>\r\n<\/td>\r\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\">b. Contrast and compare relational databases concepts and non-relational databases including object-oriented, XML, NewSQL and NoSQL databases.<\/p>\r\n<\/td>\r\n<\/tr>\r\n<tr class=\"TableGrid-R\" style=\"height: 58pt\">\r\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\">IT2017<\/p>\r\n<p class=\"import-Normal\">ITE-IMA-06 Special purpose databases<\/p>\r\n<p class=\"import-Normal\">(Page 92)<\/p>\r\n<\/td>\r\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\">a. Describe major concepts of object oriented, XML, NewSQL, and NoSQL databases.<\/p>\r\n<\/td>\r\n<\/tr>\r\n<tr>\r\n<td><\/td>\r\n<td><\/td>\r\n<td><\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<h2>Introduction to Chapter 8<\/h2>\r\n<p class=\"import-Normal\">Chapter 6 addressed the mechanisms for preventing bad or duplicate data from being entered into a database. We looked at integrity rules, constraints, and cardinality for ensuring the high quality of the data. From the \u201cseat of the pants,\u201d we figured out what tables we might need. What if you are starting with no suggestions and with no guidance? Chapter 7 provided the tools for dividing a \u201cmonster\u201d spreadsheet into a collection of workable database tables.<\/p>\r\n<p class=\"import-Normal\">The second edition\u2019s Chapter 13 used the software development life cycle to explain how to create a database. This edition placed those concepts throughout the early chapters. This chapter will look at the selection of a database management system.<\/p>\r\n\r\n<h2>The Third Edition Style Guide<\/h2>\r\n<p class=\"import-Normal\">This is the style guide that this book will follow for this chapter and for the other chapters.<\/p>\r\n\r\n<table style=\"width: 229.25pt\">\r\n<tbody>\r\n<tr class=\"TableGrid-R\">\r\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\">Naming Convention:<\/p>\r\n\r\n<ul>\r\n \t<li>All English names<\/li>\r\n \t<li>Plural table names<\/li>\r\n \t<li>Singular column names<\/li>\r\n \t<li>Capitalized words<\/li>\r\n \t<li>Pascal Case for composite names<\/li>\r\n \t<li>No underscores or special characters<\/li>\r\n \t<li>No unique SQL commands<\/li>\r\n \t<li>No object prefixes<\/li>\r\n<\/ul>\r\n<p class=\"import-Normal\">Using the IE\u2019s Notation with Crow\u2019s Foot Notation.<\/p>\r\n<\/td>\r\n<\/tr>\r\n<tr>\r\n<td><\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<p class=\"import-Normal\">Figure 8.1 The database style guide. Adapted from https:\/\/vertabelo.com\/blog\/database-schema-naming-conventions\/<\/p>\r\n\r\n<h2>Selecting the Best Database Management System<\/h2>\r\n<p class=\"import-Normal\">Our interest is in the situation where a client is interacting with data in a DBMS. We are not interested in a real-time DBMS<sup class=\"import-FootnoteReference\"><a id=\"sdfootnote1anc\" href=\"#sdfootnote1sym\">1<\/a><\/sup>, which is beyond the scope of this chapter.<\/p>\r\n<p class=\"import-Normal\">There are various websites that provide reviews of DBMS. Capterra\u2019s website lists 410 products. You can sort the list in various ways:<\/p>\r\n\r\n<ul>\r\n \t<li>Pricing Options\r\n<ul>\r\n \t<li>Free\r\n<ul>\r\n \t<li>There are 58 products<sup class=\"import-FootnoteReference\"><a id=\"sdfootnote2anc\" href=\"#sdfootnote2sym\">2<\/a><\/sup>.<\/li>\r\n<\/ul>\r\n<\/li>\r\n \t<li>Free Trial<\/li>\r\n \t<li>Monthly Subscription<\/li>\r\n \t<li>Annual Subscription<\/li>\r\n \t<li>One-Time License<\/li>\r\n<\/ul>\r\n<\/li>\r\n \t<li>Features\r\n<ul>\r\n \t<li>Backup and Recovery<\/li>\r\n \t<li>Data Connectors<\/li>\r\n \t<li>Data Import\/Export<\/li>\r\n \t<li>Data Migration<\/li>\r\n \t<li>Data Replication<\/li>\r\n \t<li>Data Synchronization<\/li>\r\n \t<li>Data Virtualization<\/li>\r\n \t<li>Database Conversion<\/li>\r\n \t<li>Mobile Access<\/li>\r\n \t<li>Multiple Programming Languages Supported<\/li>\r\n \t<li>NOSQL Database Management<\/li>\r\n \t<li>Performance Analysis<\/li>\r\n \t<li>Relational database Management<\/li>\r\n \t<li>Reporting and Statistics<\/li>\r\n \t<li>Search\/Filter<\/li>\r\n \t<li>Secure Data Storage<\/li>\r\n<\/ul>\r\n<\/li>\r\n \t<li>Deployment.\r\n<ul>\r\n \t<li>Cloud, SaaS, web-Based<\/li>\r\n \t<li>Desktop Mac<\/li>\r\n \t<li>Desktop Windows<\/li>\r\n \t<li>Desktop Linux<\/li>\r\n \t<li>On-Premise Windows<\/li>\r\n \t<li>On-Premise Linux<\/li>\r\n \t<li>Desktop Chromebook<\/li>\r\n \t<li>Mobile Android<\/li>\r\n \t<li>Mobile iPhone<\/li>\r\n \t<li>Mobile iPad<\/li>\r\n<\/ul>\r\n<\/li>\r\n \t<li>Number of Users\r\n<ul>\r\n \t<li>1<\/li>\r\n \t<li>2 to 10<\/li>\r\n \t<li>11 to 50<\/li>\r\n \t<li>51 to 20<\/li>\r\n \t<li>201 to 500<\/li>\r\n \t<li>501 to 1,000<\/li>\r\n \t<li>Over 1,000<\/li>\r\n<\/ul>\r\n<\/li>\r\n<\/ul>\r\n<p class=\"import-Normal\">The DB-Engines website ranks DBMSs. It has 423 systems. The ranking is based on popularity. The list has relational DBMSs<sup class=\"import-FootnoteReference\"><a id=\"sdfootnote3anc\" href=\"#sdfootnote3sym\">3<\/a><\/sup> and non-relational DBMSs. The following top ten DBMSs came from the September 2024 ranking:<\/p>\r\n\r\n<table>\r\n<tbody>\r\n<tr class=\"TableGrid-R\">\r\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\" style=\"text-align: center\"><strong>September 2024 Rank<\/strong><\/p>\r\n<\/td>\r\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\" style=\"text-align: center\"><strong>DBMS<\/strong><\/p>\r\n<\/td>\r\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\" style=\"text-align: center\"><strong>Database Model<\/strong><\/p>\r\n<\/td>\r\n<\/tr>\r\n<tr class=\"TableGrid-R\">\r\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\" style=\"text-align: center\">1<\/p>\r\n<\/td>\r\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\">Oracle<\/p>\r\n<\/td>\r\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\">Relational, Multi-model<sup class=\"import-FootnoteReference\"><a id=\"sdfootnote4anc\" href=\"#sdfootnote4sym\">4<\/a><\/sup><\/p>\r\n<\/td>\r\n<\/tr>\r\n<tr class=\"TableGrid-R\">\r\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\" style=\"text-align: center\">2<\/p>\r\n<\/td>\r\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\">MySQL<\/p>\r\n<\/td>\r\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\">Relational, Multi-model<\/p>\r\n<\/td>\r\n<\/tr>\r\n<tr class=\"TableGrid-R\">\r\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\" style=\"text-align: center\">3<\/p>\r\n<\/td>\r\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\">Microsoft SQL Server<\/p>\r\n<\/td>\r\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\">Relational, Multi-model<\/p>\r\n<\/td>\r\n<\/tr>\r\n<tr class=\"TableGrid-R\">\r\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\" style=\"text-align: center\">4<\/p>\r\n<\/td>\r\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\">PostgreSQL<\/p>\r\n<\/td>\r\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\">Relational, Multi-model<\/p>\r\n<\/td>\r\n<\/tr>\r\n<tr class=\"TableGrid-R\">\r\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\" style=\"text-align: center\">5<\/p>\r\n<\/td>\r\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\">MongoDB<\/p>\r\n<\/td>\r\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\">Document, Multi-model<\/p>\r\n<\/td>\r\n<\/tr>\r\n<tr class=\"TableGrid-R\">\r\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\" style=\"text-align: center\">6<\/p>\r\n<\/td>\r\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\">Redis<\/p>\r\n<\/td>\r\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\">Key-value, Multi-model<\/p>\r\n<\/td>\r\n<\/tr>\r\n<tr class=\"TableGrid-R\">\r\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\" style=\"text-align: center\">7<\/p>\r\n<\/td>\r\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\">Snowflake<\/p>\r\n<\/td>\r\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\">Relational<\/p>\r\n<\/td>\r\n<\/tr>\r\n<tr class=\"TableGrid-R\">\r\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\" style=\"text-align: center\">8<\/p>\r\n<\/td>\r\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\">Elasticsearch<\/p>\r\n<\/td>\r\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\">Search engine, Multi-model<\/p>\r\n<\/td>\r\n<\/tr>\r\n<tr class=\"TableGrid-R\">\r\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\" style=\"text-align: center\">9<\/p>\r\n<\/td>\r\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\">IBM Db2<\/p>\r\n<\/td>\r\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\">Relational, Multi-model<\/p>\r\n<\/td>\r\n<\/tr>\r\n<tr class=\"TableGrid-R\">\r\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\" style=\"text-align: center\">10<\/p>\r\n<\/td>\r\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\">SQLite<\/p>\r\n<\/td>\r\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\r\n<p class=\"import-Normal\">Relational<\/p>\r\n<\/td>\r\n<\/tr>\r\n<tr>\r\n<td><\/td>\r\n<td><\/td>\r\n<td><\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<p class=\"import-Normal\">Figure 8.2 Extract from the DB-Engines ranking list for September 2024. Source: <a class=\"rId8\" href=\"https:\/\/db-engines.com\/en\/ranking\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/ranking<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">Some of these have the option of working in the cloud. That option is beyond the scope of this chapter. For a review of these products, see<\/p>\r\n<p class=\"import-Normal\" style=\"padding-left: 40px\">\u201cCloud Database Management Systems Reviews and Ratings,\u201d Gartner, 2024. <a class=\"rId9\" href=\"https:\/\/www.gartner.com\/reviews\/market\/cloud-database-management-systems\"><span class=\"import-Hyperlink\">https:\/\/www.gartner.com\/reviews\/market\/cloud-database-management-systems<\/span><\/a><\/p>\r\n\r\n<h3>Microsoft Access: The Good and the Bad<\/h3>\r\n<p class=\"import-Normal\">Microsoft makes available its office suite to institutions of higher education. The arrangements frequently result in students receiving a free copy of the Microsoft Access database program. It is tempting to use Microsoft Access for the following frequently published reasons:<\/p>\r\n\r\n<ul>\r\n \t<li>Well known.<\/li>\r\n \t<li>Easy to use and quick learning curve.\r\n<ul>\r\n \t<li>It is similar to other Microsoft Office products.<\/li>\r\n<\/ul>\r\n<\/li>\r\n \t<li>Rapid development and prototyping.<\/li>\r\n \t<li>Works with the other parts of the Microsoft Office suite.<\/li>\r\n \t<li>Robust data security and permission features.\r\n<ul>\r\n \t<li>Users can control access to their databases. Administrators can define different levels of permissions and access.<\/li>\r\n<\/ul>\r\n<\/li>\r\n \t<li>Flexibility for designing the user interface.<\/li>\r\n \t<li>May be able to support up to ten users on a network at the same time.\r\n<ul>\r\n \t<li>Can share the data with 40 users.<\/li>\r\n<\/ul>\r\n<\/li>\r\n \t<li>Could be accessed via a web page front end.<\/li>\r\n \t<li>Queries can be created graphically or with SQL statements.<\/li>\r\n \t<li>Built-in templates and wizards.<\/li>\r\n \t<li>Easy to import and to export data.<\/li>\r\n<\/ul>\r\n<p class=\"import-Normal\">Microsoft Access has several disadvantages:<\/p>\r\n\r\n<ul>\r\n \t<li>Limited scalability and performance.\r\n<ul>\r\n \t<li>The data is stored in a single file and as the maximum size (2 GB) is approached, things begin to degrade.<\/li>\r\n \t<li>Multimedia data consumes space.<\/li>\r\n<\/ul>\r\n<\/li>\r\n \t<li>Relational database limitations.\r\n<ul>\r\n \t<li>It cannot handle complex relationships between tables.<\/li>\r\n \t<li>It has a poor relational database design and thus makes it difficult to learn how to use or how to access the database\u2019s forms.<\/li>\r\n<\/ul>\r\n<\/li>\r\n \t<li>Weak support for concurrency.\r\n<ul>\r\n \t<li>It cannot handle multiple users attempting to access and to modify data at the same time.<\/li>\r\n \t<li>Time critical transactions are difficult to capture.<\/li>\r\n<\/ul>\r\n<\/li>\r\n \t<li>Does not have easy support for triggers nor for handling scheduled tasks.<\/li>\r\n \t<li>Lack of version control and collaboration features.<\/li>\r\n \t<li>Works only on a Windows operating system.\r\n<ul>\r\n \t<li>If different Windows versions are used, the data could become corrupted.<\/li>\r\n<\/ul>\r\n<\/li>\r\n \t<li>Access does not support extensive database security protocols.<\/li>\r\n \t<li>Does not have an easy learning curve.\r\n<ul>\r\n \t<li>The controls and the forms are difficult to customize.<\/li>\r\n \t<li>Some understanding of the SQL programming language is needed.<\/li>\r\n<\/ul>\r\n<\/li>\r\n \t<li>The .accdb file format is not compatible with other systems.\r\n<ul>\r\n \t<li>Microsoft adopted the OpenDocument Format for Excel and for Word, but did not adopt the OpenDocument Format for Access.\r\n<ul>\r\n \t<li>The work-around is to export the data to a CSV format.<\/li>\r\n<\/ul>\r\n<\/li>\r\n<\/ul>\r\n<\/li>\r\n \t<li>The demand for individuals with Access programming language skills is dropping<sup class=\"import-FootnoteReference\"><a id=\"sdfootnote5anc\" href=\"#sdfootnote5sym\">5<\/a><\/sup>.\r\n<ul>\r\n \t<li>This decline means that project managers will want to avoid the situation that currently exists for the COBOL programming language<sup class=\"import-FootnoteReference\"><a id=\"sdfootnote6anc\" href=\"#sdfootnote6sym\">6<\/a><\/sup>.<\/li>\r\n \t<li>Microsoft announced in November 2017 that it plans to retire Access from its on-line productivity suite in April 2018. This has not happened yet as Microsoft continues to issue updates.<\/li>\r\n<\/ul>\r\n<\/li>\r\n<\/ul>\r\n<p class=\"import-Normal\">The biggest reason for not using Microsoft Access is that it violates the security principle of separating the front end from the database software and from the actual database. Microsoft has added the ability for Access to be used as a front end to more commercially successful DBMSs. As Stephen Cooper wrote, \u201c\u2026this repurposing of the Access application feels a little like a half-life. Is this the last resort for Access, acting as a skin to more successful RDBMSs?\u201d<\/p>\r\n<p class=\"import-Normal\">If a person feels the need to have Microsoft Access, then Stephen Cooper has a list of better alternatives to Microsoft Access:<\/p>\r\n\r\n<ul>\r\n \t<li>OpenOffice derivatives\r\n<ul>\r\n \t<li>Apache OpenOffice<\/li>\r\n \t<li>LibreOffice<\/li>\r\n \t<li>OxygenOffice Professional<\/li>\r\n<\/ul>\r\n<\/li>\r\n \t<li>Google Forms<\/li>\r\n \t<li>Calligra Office<\/li>\r\n \t<li>Zoho Creator<\/li>\r\n \t<li>Bubble<\/li>\r\n<\/ul>\r\n<p class=\"import-Normal\">Many individuals commented on the Stephen Cooper article. He updated his article to include suggestions from others:<\/p>\r\n\r\n<ul>\r\n \t<li>Claris FileMaker. It has a 45-day free trial.<\/li>\r\n \t<li>Wisej.<\/li>\r\n \t<li>Microsoft Power Platform (Power Apps). Microsoft may be developing this as a replacement for Access. It has a 30-day free trial.<\/li>\r\n \t<li>Airtable. It has a 14-day free trial.<\/li>\r\n \t<li>Monday.com. It has a 14-day free trial.<\/li>\r\n<\/ul>\r\n<h3>Overview of Some Popular DBMSs<\/h3>\r\n<p class=\"import-Normal\">These DBMSs are covered in DB-Engines September 2024 order.<\/p>\r\n<p class=\"import-Normal\">#1. Oracle is a relational DBMS. The initial release was in 1980. The current release is 23c (September 2023). There is a 23ai release that uses artificial intelligence. It has a commercial license. It can run on numerous operating systems including some less known operating systems. It supports the standard SQL and Oracle own extensions. It supports several access methods. It supports many programming languages. It supports stored procedures. It supports triggers. It supports foreign keys.<\/p>\r\n<p class=\"import-Normal\">#2 MySQL is a relational DBMS. The initial release was in 1995. It was first developed by the defunct Sun Microsystems. Oracle took over the development in 2010. The current release is 9.0.0 (July 2024). It has an Open Source license. There is a commercial license for the MySQL version that has more features. It can run on numerous operating systems. It supports the standard SQL and its own extensions. It supports several access methods including Microsoft\u2019s own ADO.NET. It supports many programming languages. It supports stored procedures. It supports triggers. It supports foreign keys.<\/p>\r\n<p class=\"import-Normal\">#3 Microsoft SQL Server is a relational DBMS. The initial release was in 1989. The current release is SQL Server 2022 (November 2022). There are three versions; two run on the Azure cloud and one runs in the local area (on-premise). There are two free specialized editions. The SQL Server 2022 Developer is a full-featured edition that can be used as a development and test database in a non-production environment. The SQL Server 2022 Express can be used for development and for production environments such as for the desktop, for the web, and for small server applications. These can run on Windows and on Linux operating systems. If the environment supports Docker Containers<sup class=\"import-FootnoteReference\"><a id=\"sdfootnote7anc\" href=\"#sdfootnote7sym\">7<\/a><\/sup>, then SQL Server 2022 can be installed. It supports the standard SQL and its own extensions. It supports several access methods including the Microsoft\u2019s own ADO.NET. It supports many programming languages. It supports stored procedures. It supports triggers. It supports foreign keys.<\/p>\r\n<p class=\"import-Normal\">#4 PostgreSQL is a relational DBMS. The initial release was in 1989. The current release is 16.4 (August 2024). It has an Open Source license. It can run on numerous operating systems. It supports the standard SQL and its own extensions. It supports several access methods including the Microsoft\u2019s own ADO.NET. It supports many programming languages. It supports stored procedures. It supports triggers. It supports foreign keys.<\/p>\r\n<p class=\"import-Normal\">#5 MongoDB is a document store database model. It is one of the most popular document store schemes. The initial release was in 2009. The current release is 7.0.5 (January 2024). It has an Open Source license. There is a commercial license available. It can run on numerous operating systems. It supports the standard read-only SQL. It supports several access methods. It supports many programming languages. It supports JavaScript written stored procedures. It supports triggers in the MongoDB Atlas version. It does not support foreign keys.<\/p>\r\n<p class=\"import-Normal\">#6 Redis is a key-value store database model. It is popular for in-memory data platform usage scheme. The initial release was in 2009. The current release is 7.2.5 (May 2024). It has an Open Source license. There is a commercial license available for the Enterprise edition. It can run on numerous operating systems. If the RedisSQL module is used, then it supports the standard SQL. It supports only its own access method. It supports many programming languages. It supports the Lua stored procedures. It supports some trigger functions. It does not support foreign keys.<\/p>\r\n<p class=\"import-Normal\">#7 Snowflake is a cloud-based data warehousing service for structured and semi-structured data. It does use the relational DBMS model. The initial release was in 2014. There is only a commercial license. It can run on the operating system provided by the host. It supports the standard SQL. It supports three access methods. It supports two programming languages. It supports stored procedures as user defined functions. It does not support triggers. It supports foreign keys.<\/p>\r\n<p class=\"import-Normal\">#8 Elasticsearch is a distributed, RESTful<sup class=\"import-FootnoteReference\"><a id=\"sdfootnote8anc\" href=\"#sdfootnote8sym\">8<\/a><\/sup> modern search and analytics engine based on the Apache Lucene. It does not support the relational DBMS model. It is one of the most popular data search engines. The initial release was in 2010. The current release is 8.6 (January 2023). It has its own Open-Source license. It can run on the operating system provided by a Java VM<sup class=\"import-FootnoteReference\"><a id=\"sdfootnote9anc\" href=\"#sdfootnote9sym\">9<\/a><\/sup>. It supports a SQL-like query language. It supports two access methods. It supports a small number of programming languages. It supports stored procedures. It does support triggers when the percolation feature is used. It does not support foreign keys.<\/p>\r\n<p class=\"import-Normal\">#9 IBM Db2 is a relational DBMS. The initial release was in 1983 and this was the host version. It has had other names such as \u201cDB2\u201d and \u201cIBM Database 2.\u201d The current release is 11.5.9 (late 2023)<sup class=\"import-FootnoteReference\"><a id=\"sdfootnote10anc\" href=\"#sdfootnote10sym\">10<\/a><\/sup>. There is a commercial license. IBM does have a non-licensed free version (DB2 Community Edition). It can run on numerous operating systems. It supports the standard SQL. It supports several access methods including the Microsoft\u2019s own ADO.NET. It supports many programming languages. It supports stored procedures. It supports triggers. It supports foreign keys.<\/p>\r\n<p class=\"import-Normal\">#10 SQLite is a widely used embeddable relational DBMS. The initial release was in 2000. The current release is 3.46.2 (August 13, 2024). Dwayne Richard Hipp has put this into the public domain. It runs with any operating system. It supports SQL, but it does not fully support the SQL-92 standard. It supports several access methods including the Microsoft\u2019s own ADO.NET. It supports many programming languages. It does not support stored procedures. It supports triggers. It supports foreign keys.<\/p>\r\n\r\n<h3>Overview of Some Non-Relational DBMS Schemes<\/h3>\r\n<p class=\"import-Normal\">DBMSs that are designed to handle and to store large volumes of unstructured and semi structured data are known as \u201c<em>NoSQL<\/em>\u201d or as \u201cnon-relational\u201d databases. The term has evolved to mean \u201cnot only SQL\u201d since some DBMSs include other options for working with the data. Those DBMS that can handle both NoSQL and traditional relational DBMS are now known as \u201c<em>NewSQL<\/em>.\u201d<\/p>\r\n<p class=\"import-Normal\">NoSQL has six advantages:<\/p>\r\n\r\n<ul>\r\n \t<li>High scalability<\/li>\r\n \t<li>Flexibility<\/li>\r\n \t<li>High availability<\/li>\r\n \t<li>Performance<\/li>\r\n \t<li>Cost-effectiveness<\/li>\r\n \t<li>Agility<\/li>\r\n<\/ul>\r\n<p class=\"import-Normal\">NoSQL has ten disadvantages:<\/p>\r\n\r\n<ul>\r\n \t<li>Lack of standardization<\/li>\r\n \t<li>Lack of ACID compliance<\/li>\r\n \t<li>Narrow focus<\/li>\r\n \t<li>Open source<\/li>\r\n \t<li>Lack of support for complex queries<\/li>\r\n \t<li>Lack of maturity<\/li>\r\n \t<li>Management challenge<\/li>\r\n \t<li>GUI is not available<\/li>\r\n \t<li>Weakness in performing backups<\/li>\r\n \t<li>Large document size.<\/li>\r\n<\/ul>\r\n<p class=\"import-Normal\">NewSQL on the surface appears to be a perfect combination of NoSQL and of traditional relational DBMS. But there are three issues:<\/p>\r\n\r\n<ol>\r\n \t<li>NewSQL offers only partial access to the rich resources of a traditional relational DBMS.<\/li>\r\n \t<li>NewSQL may cause problems for in-memory architectures when the volume exceeds the available memory.<\/li>\r\n \t<li>Users of the NewSQL DBMS need to understand the traditional relational DBMS.<\/li>\r\n<\/ol>\r\n<p class=\"import-Normal\">Geeks for Geeks listed four types. DB-Engines listed 15 types. We will look at the types as defined by DB-Engines.<\/p>\r\n<p class=\"import-Normal\"><strong>Columnar.<\/strong> DB-Engines listed this DBMS, but does not explain it. It has only one example.<\/p>\r\n\r\n<ul>\r\n \t<li>GridGain is an example of this approach. It has a popularity ranking of 150 and thus was not covered elsewhere in this chapter.<\/li>\r\n<\/ul>\r\n<p class=\"import-Normal\"><strong>Content <\/strong><strong>S<\/strong><strong>tores.<\/strong> This is also known as \u201ccontent repositories.\u201d It is specialized for the handling of digital content such as text, pictures, and videos. It stores metadata on each item.<\/p>\r\n\r\n<ul>\r\n \t<li>Apache Jackrabbit is an example of this approach. It has a popularity ranking of 64 and thus was not covered elsewhere in this chapter.<\/li>\r\n<\/ul>\r\n<p class=\"import-Normal\"><strong>Document.<\/strong> This is also known as \u201cdocument-oriented database systems.\u201d These are characterized by the lack of a schema for organizing the data. This approach means that:<\/p>\r\n\r\n<ul>\r\n \t<li>Records do not need to have a uniform structure, i.e. different records may have different columns.<\/li>\r\n \t<li>The types of the values of individual columns can be different for each record.<\/li>\r\n \t<li>Columns can have more than one value (arrays).<\/li>\r\n \t<li>Records can have a nested structure.<\/li>\r\n<\/ul>\r\n<ul>\r\n \t<li>MongoDB is an example of this approach.<\/li>\r\n<\/ul>\r\n<p class=\"import-Normal\"><strong>Event Stores.<\/strong> This implements the concept of event sourcing. This uses a timestamp in order to create a series of events for an object. This scheme is unique in that it stores the history. This scheme does not support making changes to an object. Nor does it support deleting any of the events. This could be used to support snapshots of something.<\/p>\r\n\r\n<ul>\r\n \t<li>EventStoreDB is an example of this approach. It has a popularity ranking of 181 and thus was not covered elsewhere in this chapter.<\/li>\r\n<\/ul>\r\n<p class=\"import-Normal\"><strong>Graph DBMS.<\/strong> This is also known as \u201cgraph-oriented DBMS\u201d or \u201cgraph database.\u201d Data is presented as nodes and edges with a relationship between the nodes. Direct access to a node based on an attribute value is not possible.<\/p>\r\n\r\n<ul>\r\n \t<li>Neo4j is an example of this approach. It has a popularity ranking of 21 and thus was not covered elsewhere in this chapter.<\/li>\r\n<\/ul>\r\n<p class=\"import-Normal\"><strong>Key-value<\/strong><strong>.<\/strong> This is a very simple DBMS. Each piece of data has a key that is used to locate it. It is not adequate for any complex application. Other schemes such as document stores and wide column stores may incorporate the key-value scheme.<\/p>\r\n\r\n<ul>\r\n \t<li>Redis is an example of this approach.<\/li>\r\n<\/ul>\r\n<p class=\"import-Normal\"><strong>Native XML DBMS.<\/strong> This may be abbreviated as \u201cNXD.\u201d This can represent hierarchical data. It works with special XML specific query languages.<\/p>\r\n\r\n<ul>\r\n \t<li>MarkLogic is an example of this approach. It has a popularity ranking of 70 and thus was not covered elsewhere in this chapter.<\/li>\r\n<\/ul>\r\n<p class=\"import-Normal\"><strong>Navigational DBMS.<\/strong> This allows access to data sets via linked records only. It is an old scheme from the 1960s.<\/p>\r\n\r\n<ul>\r\n \t<li>IMS is an example of this approach. It has a popularity ranking of 146 and thus was not covered elsewhere in this chapter.<\/li>\r\n<\/ul>\r\n<p class=\"import-Normal\"><strong>Object <\/strong><strong>O<\/strong><strong>riented DBMS.<\/strong> This is also known as \u201cobject databases.\u201d This follows the object-oriented data model as used in object-oriented programming languages. Instead of being a row in a table, the data pieces are stored in a single object. No complex joins would be needed.<\/p>\r\n\r\n<ul>\r\n \t<li>InterSystems IRIS is an example of this approach. It has a popularity ranking of 91 and thus was not covered elsewhere in this chapter<\/li>\r\n<\/ul>\r\n<p class=\"import-Normal\"><strong>RDF <\/strong><strong>S<\/strong><strong>tores.<\/strong> RDF stands for \u201cResource Description Framework.\u201d This was created for describing metadata of IT resources. Now it is used to store triples of data as in subject-predicate-object. This is a subclass of the graph DBMS.<\/p>\r\n\r\n<ul>\r\n \t<li>MarkLogic is an example of this approach. It has a popularity ranking of 70 and thus was not covered elsewhere in this chapter.<\/li>\r\n<\/ul>\r\n<p class=\"import-Normal\"><strong>Search <\/strong><strong>E<\/strong><strong>ngine<\/strong><strong>.<\/strong> This is a true NoSQL DBMS. The typical offering has the following features:<\/p>\r\n\r\n<ul>\r\n \t<li>Support for complex search expressions<\/li>\r\n \t<li>Full text search<\/li>\r\n \t<li>Stemming (reducing inflected words to their stem)<\/li>\r\n \t<li>Ranking and grouping of search results<\/li>\r\n \t<li>Distributed search for high scalability<\/li>\r\n<\/ul>\r\n<ul>\r\n \t<li>Ellasticsearch is an example of this approach.<\/li>\r\n<\/ul>\r\n<p class=\"import-Normal\"><strong>Spatial DBMS.<\/strong> This is able to efficiently store, to manipulate, and to query spatial data. Spatial data represents objects in a geometric space such as points or as polygons. This is used to describe locations on the surface of the earth and is used in geographic information systems (GIS).<\/p>\r\n\r\n<ul>\r\n \t<li>PostGIS is an example of this approach. It has a popularity ranking of 290 and thus was not covered elsewhere in this chapter.<\/li>\r\n<\/ul>\r\n<p class=\"import-Normal\"><strong>Time <\/strong><strong>S<\/strong><strong>eries DBMS.<\/strong> It is optimized for handling time series data. Each entry has a timestamp. This would be ideal for handling data from sensors, smart meters, or from other Internet of Things products.<\/p>\r\n\r\n<ul>\r\n \t<li>InfluxDB is an example of this approach. It has a popularity ranking of 28 and thus was not covered elsewhere in this chapter.<\/li>\r\n<\/ul>\r\n<p class=\"import-Normal\"><strong>Vector DBMS.<\/strong> This is also known as \u201cvector databases.\u201d This is optimized for efficient storage, indexing, and querying of high-dimensional vector data. Specialized algorithms and data structures are used for supporting search for machine learning, for data mining. These DBMSs can handle multiple data types, such as numerical, text, and binary.<\/p>\r\n\r\n<ul>\r\n \t<li>Kdb is an example of this approach. It has a popularity ranking of 45 and thus was not covered elsewhere in this chapter.<\/li>\r\n<\/ul>\r\n<p class=\"import-Normal\"><strong>Wide <\/strong><strong>C<\/strong><strong>olumn<\/strong> <strong>S<\/strong><strong>tores.<\/strong> It is also known as \u201cextensible record stores.\u201d It can store data in records with an ability to hold very large numbers of dynamic columns. These are not fixed. So a record could have billions of columns. This is like a two-dimensional key-value store scheme. These are schema free.<\/p>\r\n\r\n<ul>\r\n \t<li>Apache Cassandra is an example of this approach. It has a popularity ranking of 11 and thus was not covered elsewhere in this chapter.<\/li>\r\n<\/ul>\r\n<h2>Reviewing DBMSs for the Rest of the Textbook<\/h2>\r\n<p class=\"import-Normal\">Database courses have been taught with Oracle, with MySQL, with PostgreSQL, with Microsoft Access (#13 in September 2024), Microsoft Azure SQL Database (#16 in September 2024), and with Java Derby (not ranked).<\/p>\r\n<p class=\"import-Normal\">Ideally, the selected DBMS should be similar to what is used in the real world. Companies want students that can apply their knowledge immediately on the job. That is why programming languages such as Java, C++, C#, and other languages are taught instead of Pascal<sup class=\"import-FootnoteReference\"><a id=\"sdfootnote11anc\" href=\"#sdfootnote11sym\">11<\/a><\/sup>.<\/p>\r\n<p class=\"import-Normal\">The following are DBMSs that could be used in an academic environment.<\/p>\r\n\r\n<h3>Oracle<\/h3>\r\n<p class=\"import-Normal\">Oracle is an expensive relational DBMS. The following is based on a website with a date of May 22, 2024:<\/p>\r\n\r\n<ul>\r\n \t<li>Oracle Database Enterprise Edition \u2013 License price for processor is $47,500.<\/li>\r\n \t<li>Oracle Database Standard Edition 2 \u2013 License price for processor is $17,500.<\/li>\r\n \t<li>Personal Edition \u2013 License price per user is $400.<\/li>\r\n \t<li>Mobile Server \u2013 The license price for processor is $23,000.<\/li>\r\n \t<li>NoSQL Database Enterprise Edition \u2013 License price for processor is $10,000.<\/li>\r\n<\/ul>\r\n<p class=\"import-Normal\">The license price is based on used processor cores. So if a processor has four cores, then the above prices need to be increased by a factor of four.<\/p>\r\n\r\n<h3>MySQL<\/h3>\r\n<p class=\"import-Normal\">MySQL is a relational DBMS. Several websites have long lists of issues with MySQL. The following are the important issues:<\/p>\r\n\r\n<ul>\r\n \t<li>MySQL is inefficient in handling very large databases.\r\n<ul>\r\n \t<li>MySQL is hard to scale. It doesn\u2019t support auto <em>s<\/em><em>harding<\/em><sup class=\"import-FootnoteReference\"><a id=\"sdfootnote12anc\" href=\"#sdfootnote12sym\">12<\/a><\/sup>. One needs to maintain the nodes manually.<\/li>\r\n<\/ul>\r\n<\/li>\r\n \t<li>MySQL has limited support for advanced SQL features.\r\n<ul>\r\n \t<li>Limited support for stored procedures and triggers.<\/li>\r\n<\/ul>\r\n<\/li>\r\n \t<li>MySQL is inefficient in handling transactions as it is prone to data corruption.<\/li>\r\n \t<li>MySQL has limited security features.<\/li>\r\n \t<li>MySQL is resource intensive for complex queries.<\/li>\r\n \t<li>The development is not community driven.\r\n<ul>\r\n \t<li>Support and documentation are weak.<\/li>\r\n<\/ul>\r\n<\/li>\r\n \t<li>MySQL does not have good developing and debugging tools as compared to other databases.<\/li>\r\n \t<li>It does not support SQL check constraints.<\/li>\r\n \t<li>It does not support ROLE, COMMIT, and stored procedures in versions less than 5.0.<\/li>\r\n \t<li>MySQL has weak stored procedures.<\/li>\r\n \t<li>It is very difficult to install a consistent database cluster with MySQL.<\/li>\r\n \t<li>Group by function does not work correctly.<\/li>\r\n \t<li>Some errors are misleading.<\/li>\r\n \t<li>Correlated Subquery does not work as intended.<\/li>\r\n<\/ul>\r\n<p class=\"import-Normal\">Daniel Raymond wrote that the solution to fixing 1 is to use clustering or to split the database into smaller pieces or add Hadoop<sup class=\"import-FootnoteReference\"><a id=\"sdfootnote13anc\" href=\"#sdfootnote13sym\">13<\/a><\/sup> support or switch to a different DBMS such as MongoDB. He wrote that the solution to fixing 2 is to upgrade to a paid version or to a different DBMS such as PostgreSQL. He wrote that the solution to fixing 3 is to use a storage engine that supports row level locking or optimizing the database queries. He wrote that the solution to fixing 4 is to upgrade to the enterprise edition. He wrote that the solution to fixing 5 is to optimize the queries or to use a more efficient database engine. He wrote that the solution to fixing 6 is to seek support from third-party vendors and from MySQL user communities or hire an experienced database professional.<\/p>\r\n\r\n<h3>PostgreSQL<\/h3>\r\n<p class=\"import-Normal\">PostgreSQL is an open-source relational DBMS that is very popular. This is due to a community of devoted and talented software engineers and to the liberal open-source license. It has several components. It is difficult to configure and to maintain high availability and obtain optimal performance. PostgreSQL is not complete out of the box. One must determine what is needed and add those pieces. Curt Kolovson listed the components that must be added to a PostgreSQL installation:<\/p>\r\n\r\n<ul>\r\n \t<li>Monitoring tools for uptime and performance<\/li>\r\n \t<li>Scale-out distributed processing based on partitioning or sharding<\/li>\r\n \t<li>Connection pooling<\/li>\r\n \t<li>HA clustering<\/li>\r\n \t<li>Replication management<\/li>\r\n \t<li>Disaster recovery (DR) solutions<\/li>\r\n \t<li>Backup solutions<\/li>\r\n \t<li>Log archiving<\/li>\r\n<\/ul>\r\n<p class=\"import-Normal\">The actual PostgreSQL software has some issues:<\/p>\r\n\r\n<ul>\r\n \t<li>Software architecture based on process-per-connection can lead to inefficient resource utilization.<\/li>\r\n \t<li>Too many tunable parameters, many which are poorly documented, and some with poorly chosen default values.<\/li>\r\n \t<li>Garbage-collection implementation related to its multi-version concurrency control (MVCC) can lead to database bloat and performance problems.<\/li>\r\n \t<li>Query optimizer (\u201cplanner\u201d) can make very bad decisions, leading to performance problems that may be hard to diagnose and fix.<\/li>\r\n \t<li>Troubleshooting is sometimes very difficult.<\/li>\r\n<\/ul>\r\n<p class=\"import-Normal\">To compound the problems, there are many variants of PostgreSQL and many database-as-a-service (DBaaS) offerings that claim to be PostgreSQL compatible, but are not. To have a successful operation requires having many highly knowledgeable developers or consultants.<\/p>\r\n\r\n<h3>MongoDB<\/h3>\r\n<p class=\"import-Normal\">MongoDB is well-suited for some applications such as for web applications, for e-commerce, for big data, for demographic and biometric data, and for synchronization. The disadvantages come from the way that MongoDB handles data.<\/p>\r\n\r\n<ul>\r\n \t<li>It cannot handle situations when multiple things must be done across lots of data.<\/li>\r\n \t<li>It is not fully <em>ACID<\/em> compliance. That is, it supports Atomicity, Consistency, Isolation, and Durability (ACID) at the document level. It cannot support ACID across multiple documents.<\/li>\r\n \t<li>It does not support SQL join operations.<\/li>\r\n \t<li>It uses value pairs and the result is that there are some redundancy introduced.<\/li>\r\n \t<li>It has a maximum document size of 16 MB.<\/li>\r\n<\/ul>\r\n<p class=\"import-Normal\">The main emphasis of this textbook is the relational DBMS and MongoDB is not a relational DBMS.<\/p>\r\n\r\n<h3>Redis<\/h3>\r\n<p class=\"import-Normal\">Remote Dictionary Server (Redis) is a data storage system that is designed to be very quick. This is ideal for organizations that have data that must be written quickly and queried quickly. Example applications are caching, chat and messaging, game leaderboards, session storage, and live streaming.<\/p>\r\n<p class=\"import-Normal\">Redis is well-suited for some applications such as web applications, e-commerce, big data, demographic and biometric data, and for synchronization. The disadvantages come from the way that it handles data.<\/p>\r\n\r\n<ul>\r\n \t<li>It requires a huge amount of memory.<\/li>\r\n \t<li>It uses commands instead of a query language to find data.<\/li>\r\n \t<li>No support for relational algebra.<\/li>\r\n \t<li>No support for ad-hoc queries.<\/li>\r\n \t<li>Security is done at the instance level.<\/li>\r\n \t<li>It is not scalable. It uses a CPU core in a single-threaded mode. Scalability is obtained by deploying more Redis instances.<\/li>\r\n \t<li>Some functions are pushed to the client. (Traditional relational DBMSs handle many tasks on the server side.)<\/li>\r\n<\/ul>\r\n<p class=\"import-Normal\">The main emphasis of this textbook is the relational DBMS and Redis is not a relational DBMS.<\/p>\r\n\r\n<h3>Snowflake<\/h3>\r\n<p class=\"import-Normal\">Snowflake is a data warehouse. This is ideal for organizations that need a platform that offers unique solutions that a traditional data platform cannot provide. It requires a huge amount of memory<\/p>\r\n\r\n<ul>\r\n \t<li>It does not encourage the data to be structured.<\/li>\r\n \t<li>It does not provide an easy means of migrating data. The work around is Snowpipe, but this is not ideal for most situations.<\/li>\r\n \t<li>It has no data constraints. That is, if a company is using a service that bills for data usage, Snowflake can easily exceed a ceiling.\r\n<ul>\r\n \t<li>The pay-as-you-go pricing can result in a bill that is greater than Amazon Redshift. Snowflake pricing is based on usage, not actual storage.<\/li>\r\n<\/ul>\r\n<\/li>\r\n \t<li>Users cannot deploy Snowflake within the company\u2019s server room.<\/li>\r\n \t<li>It has a small community of experienced users.<\/li>\r\n<\/ul>\r\n<p class=\"import-Normal\">The main emphasis of this textbook is the relational DBMS and Snowflake is not a relational DBMS.<\/p>\r\n\r\n<h3>Elasticsearch<\/h3>\r\n<p class=\"import-Normal\">Elasticsearch is a distributed search and analytics engine. This is ideal for organizations that need a platform that permits many users to access a database at the same time while isolating their transactions. There are some issues:<\/p>\r\n\r\n<ul>\r\n \t<li>It has a complex setup. And maintenance is also complex.<\/li>\r\n \t<li>It is resource intensive and requires a huge amount of CPU, of memory, and of storage.<\/li>\r\n \t<li>It prioritizes search performance and scalability over data consistency and durability.<\/li>\r\n \t<li>It has a steep learning curve. One needs to under concepts such as indexing, querying, mapping, and cluster management.<\/li>\r\n<\/ul>\r\n<p class=\"import-Normal\">The main emphasis of this textbook is the relational DBMS and Elasticsearch is not a relational DBMS.<\/p>\r\n\r\n<h3>IBM Db2<\/h3>\r\n<p class=\"import-Normal\">IBM Db2 is a relational DBMS. This is ideal for organizations that need scalability, high security, high compatibility, high flexibility, and high availability. However, IBM Db2 has four disadvantages.<\/p>\r\n\r\n<ul>\r\n \t<li>It is expensive. Oracle, Microsoft SQL Server, and MySQL would be less expensive.<\/li>\r\n \t<li>It is very complex. It requires individuals with specialized expertise for implementing and for managing.<\/li>\r\n \t<li>It has a performance drop for certain types of queries.<\/li>\r\n \t<li>It needs regular maintenance and updates in order to have optimal performance and security.<\/li>\r\n<\/ul>\r\n<p class=\"import-Normal\">The main emphasis of this textbook is the relational DBMS and IBM Db2 is a relational DBMS. The IBM Db2 Community Edition is an option. It has the same core capabilities, but it is restricted to a maximum of four virtual processor cores and 16 GB of instance memory. There is no enterprise-level support.<\/p>\r\n\r\n<h3>SQLite<\/h3>\r\n<p class=\"import-Normal\">SQLite is a relational DBMS. This is ideal for a desktop application such as version control systems, financial analysis tools, media cataloging and editing suites, CAD<sup class=\"import-FootnoteReference\"><a id=\"sdfootnote14anc\" href=\"#sdfootnote14sym\">14<\/a><\/sup> packages, recording keeping programs, and so on. However, SQLite has at least six major disadvantages.<\/p>\r\n\r\n<ul>\r\n \t<li>It is limited to handling low to medium traffic HTTP requests.<\/li>\r\n \t<li>Its database size is restricted to two GB.\r\n<ul>\r\n \t<li>It may struggle when dealing with large datasets.<\/li>\r\n<\/ul>\r\n<\/li>\r\n \t<li>It has limited ability to scale up.<\/li>\r\n \t<li>It has limited functionality.\r\n<ul>\r\n \t<li>It does not support stored procedures nor user-defined functions.<\/li>\r\n<\/ul>\r\n<\/li>\r\n \t<li>It lacks user management features.\r\n<ul>\r\n \t<li>It does not handle user authentication and authorization.<\/li>\r\n<\/ul>\r\n<\/li>\r\n \t<li>It cannot be used in a centralized control environment.\r\n<ul>\r\n \t<li>It can only be used by one writer at a time.<\/li>\r\n<\/ul>\r\n<\/li>\r\n<\/ul>\r\n<p class=\"import-Normal\">The main emphasis of this textbook is the relational DBMS and SQLite is a relational DBMS, but SQLite is too limited.<\/p>\r\n\r\n<h2>The Reasons for Selecting Microsoft SQL Server Developer Edition<\/h2>\r\n<p class=\"import-Normal\">DataNumen considers the Microsoft SQL Server to be the best choice for \u201clarge enterprises for its capability of handling large amounts of data, and its wide array of built in features for data analysis and reporting.\u201d<\/p>\r\n<p class=\"import-Normal\">Microsoft SQL Server Developer edition is exactly like the Microsoft SQL Server Enterprise edition. The difference is that the Developer edition is free whereas the Enterprise edition is not.<\/p>\r\n<p class=\"import-Normal\">The Microsoft SQL Server Express edition is a free, deployable relational DBMS. However, it has some limitations and some missing components. For more information see<\/p>\r\n<p class=\"import-Normal\" style=\"text-indent: 36pt\">Alexandra. \u201cWhat is SQL Server Express? Definition, Benefits, and Limitations of SQL Server Express,\u201d Stackify, June 19, 2024. <a class=\"rId10\" href=\"https:\/\/stackify.com\/what-is-sql-server-express\/\"><span class=\"import-Hyperlink\">https:\/\/stackify.com\/what-is-sql-server-express\/<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">Express DB has a web page that has a very detailed listing of the features of each edition. Look in the reference for \u201cSQL Server Edition Feature Comparison\u201d information.<\/p>\r\n\r\n<h3>Advantages of Using Microsoft SQL Server<\/h3>\r\n<ul>\r\n \t<li>Extensive online product documentation.<\/li>\r\n \t<li>Can be used on a Linux platform.<\/li>\r\n \t<li>Many career opportunities<\/li>\r\n \t<li>Thriving on-line community.<\/li>\r\n \t<li>Works with many useful tools:\r\n<ul>\r\n \t<li>SQL Server Management Studio<\/li>\r\n \t<li>Azure Data Studio<\/li>\r\n \t<li>SQL Server Data Tools<\/li>\r\n \t<li>SQL Server Profiler<\/li>\r\n<\/ul>\r\n<\/li>\r\n \t<li>Increased data security.<\/li>\r\n \t<li>Installing and configuring Microsoft SQL Server is fairly easy to do.<\/li>\r\n \t<li>Support for data recovery.<\/li>\r\n<\/ul>\r\n<h3>Disadvantages of Using Microsoft SQL Server<\/h3>\r\n<ul>\r\n \t<li>In order to interact with the SQL Server databases, one must use the Transact-SQL (T-SQL) language, which is a Microsoft extension to the SQL standard.<\/li>\r\n \t<li>When switching to the Enterprise edition, one will have to deal with the difficult and always changing licensing process.\r\n<ul>\r\n \t<li>The Enterprise edition can cost as much as $14,256 for a per-core license.<\/li>\r\n<\/ul>\r\n<\/li>\r\n \t<li>Larger databases may require following complex performance tuning steps.<\/li>\r\n \t<li>There is no native support for source control.<\/li>\r\n \t<li>Vendor lock-in. Microsoft SQL Server is not compatibility with non-Microsoft products.<\/li>\r\n \t<li>New versions of Microsoft SQL Server may not run on older hardware.<\/li>\r\n \t<li>If you uninstall the software and it is not a complete removal, attempting to install it again may result in failure<sup class=\"import-FootnoteReference\"><a id=\"sdfootnote15anc\" href=\"#sdfootnote15sym\">15<\/a><\/sup>.<\/li>\r\n<\/ul>\r\n<h2>Downloading and Installing Microsoft SQL Server and Microsoft SQL Server Management Studio with Azure Data Studio<\/h2>\r\n<p class=\"import-Normal\">The following information assumes you are using a Windows operating system. Microsoft SQL Server can be installed on other platforms. The images will be similar to the Windows installation.<\/p>\r\n<p class=\"import-Normal\">In September 2024, the current version is SQL Server 2022. It appears that the Microsoft SQL Server team has an irregular release schedule. Here is a table that shows the release dates for SQL Server 2005 through SQL Server 2022:<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image1-3.png\" alt=\"image\" width=\"624px\" height=\"293.133333333333px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.3 SQL Server release dates and lifecycle as of September 2024. Source: <a class=\"rId12\" href=\"https:\/\/www.mssqltips.com\/sqlservertutorial\/9217\/sql-server-release-dates-and-lifecycle\/\"><span class=\"import-Hyperlink\">https:\/\/www.mssqltips.com\/sqlservertutorial\/9217\/sql-server-release-dates-and-lifecycle\/<\/span><\/a><\/p>\r\n\r\n<h3>Finding the Microsoft Landing Web Page for SQL Server<\/h3>\r\n<p class=\"import-Normal\">Use a search engine such as Microsoft Bing<sup class=\"import-FootnoteReference\"><a id=\"sdfootnote16anc\" href=\"#sdfootnote16sym\">16<\/a><\/sup> and type in \u201cMicrosoft SQL Server 2022.\u201d Ignore entries for Microsoft Azure and for third party websites. In September 2024, Microsoft Bing had the following display:<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image2-2.png\" alt=\"image\" width=\"609.085039370079px\" height=\"302.042099737533px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.3 Extract from the Microsoft Bing search engine for the search phrase \u201cMicrosoft SQL Server 2022.\u201d<\/p>\r\n<p class=\"import-Normal\">The top of the landing page may look like the following:<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image3-2.png\" alt=\"image\" width=\"624px\" height=\"311.533333333333px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.4 Microsoft SQL Server 2022 landing web page. Source: <a class=\"rId15\" href=\"https:\/\/www.microsoft.com\/en-us\/sql-server\/sql-server-2022\"><span class=\"import-Hyperlink\">https:\/\/www.microsoft.com\/en-us\/sql-server\/sql-server-2022<\/span><\/a><\/p>\r\n\r\n<h3>Finding the Microsoft SQL Server Developer Edition<\/h3>\r\n<p class=\"import-Normal\">Click on the small black box in the upper right corner. You will be brought to the download web page:<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image4-4.png\" alt=\"image\" width=\"624px\" height=\"439.733333333333px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.5 Microsoft SQL Server 2022 download web page. Source: <a class=\"rId17\" href=\"https:\/\/www.microsoft.com\/en-us\/sql-server\/sql-server-downloads\"><span class=\"import-Hyperlink\">https:\/\/www.microsoft.com\/en-us\/sql-server\/sql-server-downloads<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">Click on the download now button for Developer. In Microsoft Edge, a floating download menu may appear.<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image5-4.png\" alt=\"image\" width=\"354.049448818898px\" height=\"101.01406824147px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.6 Microsoft Edge download menu.<\/p>\r\n<p class=\"import-Normal\">Click on the open button. When prompted, install to your Windows computer instead of to the virtual machine in Azure.<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image6-4.png\" alt=\"image\" width=\"436.060892388451px\" height=\"261.036430446194px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.7 Windows or Virtual Machine in Azure option screen.<\/p>\r\n<p class=\"import-Normal\">Note: You could download the software and execute it from your local computer. The benefit of doing this is that you could mount the ISO image on your computer. Then you can execute the software with administrator privileges. You would use setup.exe. It would take you to the SQL Server Installation Center (Figure 8.12).<\/p>\r\n<p class=\"import-Normal\">You will see three options. Go with the Custom option.<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image7-4.png\" alt=\"image\" width=\"624px\" height=\"498.933333333333px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.8 SQL Server 2022 Developer Edition installation option screen.<\/p>\r\n<p class=\"import-Normal\">Accept the default download location.<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image8-2.png\" alt=\"image\" width=\"624px\" height=\"497.533333333333px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.9 SQL Server 2022 Developer Edition media download target location option screen.<\/p>\r\n<p class=\"import-Normal\">The download file may be corrupted (Figure 8.11). If so, then an error message will appear. The solution is to restart the download with a fresh file.<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image9.png\" alt=\"image\" width=\"624px\" height=\"494.8px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.10 SQL Server 2022 Developer Edition downloading package screen.<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image10-2.png\" alt=\"image\" width=\"624px\" height=\"487.2px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.11 SQL Server 2022 Developer Edition possible error message screen.<\/p>\r\n<p class=\"import-Normal\">The next message screen shows the SQL Server Installation Center.<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image11-2.png\" alt=\"image\" width=\"624px\" height=\"470.333333333333px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.12 SQL Server Installation Center screen.<\/p>\r\n<p class=\"import-Normal\">We will explore these:<\/p>\r\n\r\n<ul>\r\n \t<li>\u201cHardware and Software Requirements\u201d takes one to a hyper link with the title of \u201cSQL Server 2022: Hardware and software requirements.\u201d<\/li>\r\n \t<li>\u201cSecurity Documentation\u201d takes one to a hyper link with the title of \u201cSecurity for SQL Server Database Engine and Azure SQL Database\u201d<\/li>\r\n \t<li>\u201cOnline Release Notes\u201d takes one to a hyper link with the title of \u201cSQL Server 2022 release notes.\u201d<\/li>\r\n \t<li>\u201cAzure extension for SQL Server (New)\u201d takes one to a hyper link with the title of \u201cAzure Arc-enabled SQL Server.\u201d<\/li>\r\n \t<li>\u201cSystem Configuration checker\u201d takes one to a floating dialog box:<\/li>\r\n<\/ul>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image12-2.png\" alt=\"image\" width=\"624px\" height=\"548.133333333333px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.13 SQL System Configuration Checker floating dialog box.<\/p>\r\n\r\n<ul>\r\n \t<li>\u201cDownload Data Migration Assistant (DMA)\u201d does not seem to be needed for our purposes.<\/li>\r\n \t<li>\u201cOnline Installation Help\u201d would launch the documentation.<\/li>\r\n \t<li>\u201cHow to Get Started with SQL Server Failover Clustering\u201d assumes that there is more than one server involved. We are not set-up that way.<\/li>\r\n \t<li>\u201cUpgrade Documentation\u201d is of no interest to us since we did a clean install of SQL Server 2022.<\/li>\r\n \t<li>\u201cDownload SQL Server Migration Assistant (SSSMA)\u201d is of no interest to us since we did not have another database system to bring over.<\/li>\r\n \t<li>\u201cHow to apply SQL Server updates\u201d takes one to the latest updates and version history for SQL Server.<\/li>\r\n \t<li>See <a class=\"rId26\" href=\"https:\/\/learn.microsoft.com\/en-us\/troubleshoot\/sql\/releases\/find-my-sql-version\"><span class=\"import-Hyperlink\">https:\/\/learn.microsoft.com\/en-us\/troubleshoot\/sql\/releases\/find-my-sql-version<\/span><\/a> in order to find out which version you are running. You may need to install an update.<\/li>\r\n<\/ul>\r\n<h3>Launching the Actual Installation of the Microsoft SQL Server Developer Edition<\/h3>\r\n<p class=\"import-Normal\">From the SQL Server Installation Center screen, select \u201cInstallation.\u201d<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image13-1.png\" alt=\"image\" width=\"544px\" height=\"402.988556430446px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.14 The installation tab and menu from the SQL Server Installation Center.<\/p>\r\n<p class=\"import-Normal\">Select \u201cNew SQL Server standalone installation or add features to an existing installation.\u201d This will launch a wizard. This has a left-hand side menu. You may review the \u201cEdition,\u201d the \u201cLicenses Terms,\u201d the \u201cGlobal Rules,\u201d the \u201cProduct Updates,\u201d and the \u201cInstall Setup Files.\u201d Our interest is in the \u201cInstall Rules.\u201d<\/p>\r\n\r\n<h4>The Edition Screen<\/h4>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image14-1.png\" alt=\"image\" width=\"624px\" height=\"548.133333333333px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.15 The edition screen with the Developer edition selected.<\/p>\r\n\r\n<h4>The License Terms Screen<\/h4>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image15-2.png\" alt=\"image\" width=\"624px\" height=\"548.133333333333px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.16 The license terms screen.<\/p>\r\n<p class=\"import-Normal\">In the early days of SQL Server 2022, the \u201cMicrosoft Update\u201d screen does not appear. For example of this screen, see the Daniel Calbimonte article.<\/p>\r\n\r\n<h4>The Install Rules Screen<\/h4>\r\n<p class=\"import-Normal\">The \u201cInstall Rules\u201d will execute.<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image16-2.png\" alt=\"image\" width=\"488.571128608924px\" height=\"429.166719160105px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.17 The \u201cInstall Rules\u201d from the SQL Server 2022 Setup Wizard.<\/p>\r\n<p class=\"import-Normal\">The warning on the firewall is not a concern for a stand-alone installation.<\/p>\r\n\r\n<h4>The Azure Extension for SQL Server Screen<\/h4>\r\n<p class=\"import-Normal\">The \u201cAzure Extension for SQL Server\u201d menu provides the means to connect to Microsoft\u2019s own cloud platform. We will not be doing anything with this. So uncheck the \u201cAzure Extension for SQL Server.\u201d<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image17-2.png\" alt=\"image\" width=\"488.571128608924px\" height=\"429.166719160105px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.18 The \u201cAzure Extension for SQL Server\u201d from the SQL Server 2022 Setup Wizard.<\/p>\r\n\r\n<h4>Feature Selection Screen<\/h4>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image18-1.png\" alt=\"image\" width=\"624px\" height=\"548.133333333333px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.19 The \u201cFeature Selection\u201d from the SQL Server 2022 Setup Wizard.<\/p>\r\n<p class=\"import-Normal\">We will install the database engine and the full-text search feature<sup class=\"import-FootnoteReference\"><a id=\"sdfootnote17anc\" href=\"#sdfootnote17sym\">17<\/a><\/sup>. Select these two checkboxes. Hit \u201cNext.\u201d<\/p>\r\n\r\n<h4>Instance Configuration Screen<\/h4>\r\n<p class=\"import-Normal\">Explore the \u201cInstance Configuration\u201d from the SQL Server 2022 Setup Wizard. Notice the default name of \u201cMSSQLSERVER.\u201d This will be needed for the log-in screen.<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image19-1.png\" alt=\"image\" width=\"624px\" height=\"548.133333333333px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.20 The \u201cInstance Configuration\u201d from the SQL Server 2022 Setup Wizard.<\/p>\r\n<p class=\"import-Normal\">We are going with the default instance. Hit the \u201cNext\u201d button.<\/p>\r\n\r\n<h4>Server Configuration Screen<\/h4>\r\n<p class=\"import-Normal\">The \u201cServer Configuration\u201d provides information on the server configuration. The check box improves the performance, but there is a security risk. Until the old data and log files are overwritten, a hacker could read the old data. Microsoft recommends enabling instant file initialization as the benefits outweigh the security risk. The use of <em>discretionary access control list (DACL)<\/em> on the file should help to address this risk, because DACL allows file access only to the SQL Server service account and to the local administrator.<\/p>\r\n<p class=\"import-Normal\">We will go with the default setting and not do anything with the checkbox.<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image20-1.png\" alt=\"image\" width=\"488.571128608924px\" height=\"429.166719160105px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.21 The \u201cServer Configuration\u201d from the SQL Server 2022 Setup Wizard.<\/p>\r\n\r\n<h4>Database Engine Configuration Screen<\/h4>\r\n<p class=\"import-Normal\">In the \u201cDatabase Engine Configuration\u201d menu, select \u201cWindows authentication mode.\u201d<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image21-1.png\" alt=\"image\" width=\"488.571128608924px\" height=\"429.166719160105px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.22 The \u201cDatabase Engine Configuration\u201d from the SQL Server 2022 Setup Wizard.<\/p>\r\n<p class=\"import-Normal\">There are six tabs.<\/p>\r\n<p class=\"import-Normal\">The \u201cData Directories\u201d tab provides information on where these resources are stored.<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image22-1.png\" alt=\"image\" width=\"488.571128608924px\" height=\"429.166719160105px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.23 The \u201cData Directories\u201d tab in the \u201cDatabase Engine Configuration\u201d from the SQL Server 2022 Setup Wizard.<\/p>\r\n<p class=\"import-Normal\">The \u201cTempDB\u201d tab shows the configuration. No action is needed.<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image23-1.png\" alt=\"image\" width=\"488.571128608924px\" height=\"429.166719160105px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.24 The \u201cTempDB\u201d tab in the \u201cDatabase Engine Configuration\u201d from the SQL Server 2022 Setup Wizard.<\/p>\r\n<p class=\"import-Normal\">The \u201cMaxDOP\u201d tab shows information about the number of detected cores. Figure 8.25 shows a laptop with four cores.<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image24-1.png\" alt=\"image\" width=\"444.279895013123px\" height=\"371.427401574803px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.25 The \u201cMaxDOP\u201d tab in the \u201cDatabase Engine Configuration\u201d from the SQL Server 2022 Setup Wizard.<\/p>\r\n<p class=\"import-Normal\">The \u201cMemory\u201d tab provides information about the memory. No action is needed.<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image25-1.png\" alt=\"image\" width=\"488.571128608924px\" height=\"429.166719160105px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.26 The \u201cMemory\u201d tab in the \u201cDatabase Engine Configuration\u201d from the SQL Server 2022 Setup Wizard.<\/p>\r\n<p class=\"import-Normal\">The \u201cFILESTREAM\u201d tab has some check boxes. This is used to store files outside of a database such as videos, PDFs, Word files, Excel files, and other items. For our purposes, we will not be working with these types of files.<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image26-1.png\" alt=\"image\" width=\"624px\" height=\"519.866666666667px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.27 The \u201cFILESTREAM\u201d tab in the \u201cDatabase Engine Configuration\u201d from the SQL Server 2022 Setup Wizard.<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image27.png\" alt=\"image\" width=\"624px\" height=\"477.666666666667px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.28 Hitting the \u201cNext\u201d button without an entry in the \u201cSpecify SQL Server administrators\u201d box.<\/p>\r\n<p class=\"import-Normal\">If you hit the \u201cNext\u201d button without adding a user, an error message will appear (Figure 8.28). You need to add yourself at least. See Figure 8.29.<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image28-4.png\" alt=\"image\" width=\"624px\" height=\"548.133333333333px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.29 An example of an entry in the \u201cSpecify SQL Server administrators\u201d box. This is the user\u2019s name or the computer\u2019s name.<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image29-1.png\" alt=\"image\" width=\"555.077480314961px\" height=\"257.035905511811px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.30 Close up of the \u201cAdd Current User\u201d screen.<\/p>\r\n\r\n<h4>Ready to Install Screen<\/h4>\r\n<p class=\"import-Normal\">Click on the \u201cReady to Install\u201d menu. You can review the long list of options.<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image30.png\" alt=\"image\" width=\"488.571128608924px\" height=\"429.166719160105px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.31 The \u201cReady to Install\u201d screen from the SQL Server 2022 Setup Wizard.<\/p>\r\n<p class=\"import-Normal\">Click on the \u201cInstall\u201d button in the lower right-hand corner. The display will change to the \u201cInstallation Progress\u201d screen (Figure 8.32).<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image31.png\" alt=\"image\" width=\"488.571128608924px\" height=\"429.166719160105px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.32 The \u201cInstallation Progress\u201d screen from the SQL Server 2022 Setup Wizard.<\/p>\r\n\r\n<h4>Success Screen<\/h4>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image32-1.png\" alt=\"image\" width=\"624px\" height=\"519.866666666667px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.33 The success screen from the SQL Server 2022 Setup Wizard.<\/p>\r\n<p class=\"import-Normal\">SQL Server can fix some minor issues. If you are viewing an error message about the target principal name being incorrect, then repair take care of this. If you see a message about SQL-Engine_Core_Inst not being configured, repair cannot fix this.<\/p>\r\n\r\n<h3>Installing Additional Components<\/h3>\r\n<p class=\"import-Normal\">Microsoft provides the option of installing other components. You will need to explore to determine which ones are needed.<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image13-2.png\" alt=\"image\" width=\"544px\" height=\"402.988556430446px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.34 Available components<\/p>\r\n<p class=\"import-Normal\">Some companies use \u201cReporting Services\u201d whereas other companies use \u201cBusiness Intelligence.<\/p>\r\n<p class=\"import-Normal\">We will install \u201cSQL Server Management Tools\u201d and \u201cSQL Server Data Tools.\u201d<\/p>\r\n<p class=\"import-Normal\">We will want to have SQL Server Management Studio. Microsoft explained this:<\/p>\r\n<p class=\"import-Normal\" style=\"margin-left: 36pt\">SQL Server Management Studio (SSMS) is an integrated environment for managing any SQL infrastructure. Use SSMS to access, configure, manage, administer, and develop all components of SQL Server, Azure SQL Database, Azure SQL Managed Instance, SQL Server on Azure VM, and Azure Synapse Analytics. SSMS provides a single comprehensive utility that combines a broad group of graphical tools with many rich script editors to provide access to SQL Server for developers and database administrators of all skill levels.<\/p>\r\n<p class=\"import-Normal\">We will want to have the SQL Server Data Tools. Microsoft explained this:<\/p>\r\n<p class=\"import-Normal\" style=\"margin-left: 36pt\">SQL Server Data Tools (SSDT) is a set of development tools for building SQL Server databases, Azure SQL databases, Analysis Services (AS) data models, Integration Services (IS) packages, and Reporting Services (RS) reports. SSDT allows you to design and deploy SQL objects with the same project concept as other application development tools. The SQL projects capability extends to CI\/CD pipelines, enabling you to automate the build and deployment of your database projects with the SqlPackage CLI.<\/p>\r\n\r\n<h3>Installing SQL Server Management Tools<\/h3>\r\n<p class=\"import-Normal\">Click on the link. After a delay, a dialog box will appear. Figure 8.29 shows Release 19.1, which contains the Azure Data Studio.<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image33.png\" alt=\"image\" width=\"494.236325459318px\" height=\"429.166719160105px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.35 The welcome screen for installing Microsoft SQL Server Management Studio<\/p>\r\n<p class=\"import-Normal\">If the installation fails, reboot your computer and try it again. You will see a success message.<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image34.png\" alt=\"image\" width=\"494.458687664042px\" height=\"429.166719160105px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.36 The success screen for installing Microsoft SQL Server Management Studio<\/p>\r\n\r\n<h3>Installing SQL Server Data Tools<\/h3>\r\n<p class=\"import-Normal\">We will be installing the following tools:<\/p>\r\n\r\n<ul>\r\n \t<li>Support for Microsoft Azure SQL Database<\/li>\r\n \t<li>SQL Server Database Engine<\/li>\r\n \t<li>Reporting Services<\/li>\r\n \t<li>Analysis Services<\/li>\r\n \t<li>Integration Services<\/li>\r\n<\/ul>\r\n<p class=\"import-Normal\">Click on the link.<\/p>\r\n<p class=\"import-Normal\">If Visual Studio is not present on your computer, then this is needed. We will use this for writing programs to interact with a hosted database.<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image35-1.png\" alt=\"image\" width=\"624px\" height=\"44.6px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.31 Screenshot of Visual Studio 2022<\/p>\r\n<p class=\"import-Normal\">We will install the community version, because it is free and it is sufficient for our needs.<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image36.png\" alt=\"image\" width=\"624px\" height=\"215px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.37 Screenshot of Visual Studio 2022 three editions<\/p>\r\n<p class=\"import-Normal\">The Visual Studio Installer will show Figure 8.38. Notice what it has selected to install.<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image37.png\" alt=\"image\" width=\"624px\" height=\"315.266666666667px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.38 Screenshot of Visual Studio 2022 selected options.<\/p>\r\n<p class=\"import-Normal\">The Visual Studio installer has selected the following:<\/p>\r\n\r\n<ul>\r\n \t<li>ASP.NET and web development<\/li>\r\n \t<li>Azure development<\/li>\r\n \t<li>.NET desktop development<\/li>\r\n<\/ul>\r\n<p class=\"import-Normal\">And of course, the Visual Studio installer will include the core editor.<\/p>\r\n<p class=\"import-Normal\">Look for the \u201cData storage and processing\u201d toolset. Select this.<\/p>\r\n<p class=\"import-Normal\">As your needs grow, you can return to the Visual Studio Installer screen and add more components.<\/p>\r\n<p class=\"import-Normal\">Figure 8.39 shows the success screen.<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image38-1.png\" alt=\"image\" width=\"624px\" height=\"314px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.39 Screenshot of Visual Studio 2022 success screen<\/p>\r\n\r\n<h3>Starting the SQL Server Management Studio<\/h3>\r\n<p class=\"import-Normal\">On a recent Windows operating system, the start menu will have the appearance as shown in Figure 8.40.<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image39.png\" alt=\"image\" width=\"485.959160104987px\" height=\"558.196325459318px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.40 Screenshot of the start menu on a Windows computer<\/p>\r\n<p class=\"import-Normal\">Look for \u201cMicrosoft SQL Server Tools nn.\u201d Expand the menu. Select \u201cSQL Server Management Studio Management Studio nn.\u201d<\/p>\r\n<p class=\"import-Normal\">The startup screen will appear.<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image40.png\" alt=\"image\" width=\"624px\" height=\"309.2px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.41 Screenshot of launch of SQL Server Management Studio<\/p>\r\n<p class=\"import-Normal\">When the program opens up, a login dialog box will appear.<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image41.png\" alt=\"image\" width=\"624px\" height=\"189px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.42 Screenshot of SQL Server Management Studio login dialog box<\/p>\r\n\r\n<h2><a id=\"_Hlk176699740\"><\/a>Finding the Lost SQL Server Installation Center<\/h2>\r\n<p class=\"import-Normal\">Look on the C-Drive for the setup.exe program and launch it.<\/p>\r\n<p class=\"import-Normal\"><img src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image42.png\" alt=\"image\" width=\"272.207979002625px\" height=\"202.968083989501px\" \/><\/p>\r\n<p class=\"import-Normal\">Figure 8.43 Screenshot showing the location of the SQL Server Installation Center program<\/p>\r\n\r\n<h2>What is Next?<\/h2>\r\n<p class=\"import-Normal\">The next step is to execute commands to create a database. In Chapter 9, we will install the AdventureWorld database and begin to learn some of the common SQL commands (joins and group by are two examples).<\/p>\r\n<p class=\"import-Normal\">Some terms were used without being defined. For example, SQL will be defined in the next chapter. Commands used within the SQL environment will be defined in the next chapter. Terms like \u201cstored procedures\u201d and \u201ctriggers\u201d will be explained in another chapter. Relational algebra will be explained in another chapter.<\/p>\r\n<p class=\"import-Normal\"><\/p>\r\n\r\n<h2>Key Terms<\/h2>\r\n<p class=\"import-Normal\"><strong>ACID<\/strong><strong>: <\/strong>This stands for Atomicity, Consistency, Isolation, and Durability. These behaviors are highly desirable.<\/p>\r\n<p class=\"import-Normal\"><strong>discretionary <\/strong><strong>access control<\/strong><strong> list (DACL)<\/strong>: This allows file access only to the SQL Server service account and to the local administrator.<\/p>\r\n<p class=\"import-Normal\"><strong>NewSQL<\/strong><strong>: <\/strong> This is different from the traditional relational DBMS. A NewSQL DBMS uses the NoSQL approach with the traditional relational DBMS. Queries are executed against the DBMS using the best approach.<\/p>\r\n<p class=\"import-Normal\"><strong>NoSQL<\/strong><strong>: <\/strong> This is different from the traditional relational DBMS. Queries are executed against the DBMS using a different approach.<\/p>\r\n<p class=\"import-Normal\"><strong>Real-time DBMS<\/strong><strong>: <\/strong> This is a database that stores data in JSON files. All clients are synchronized in real-time with a connection to the database.<\/p>\r\n<p class=\"import-Normal\"><strong>Sharding<\/strong>: This is a technique that involves splitting a large database into smaller, more manageable pieces. These pieces are known as shards. Each shard contains a subset of the data and operates independently. This allows for horizonal scaling and improved performance.<\/p>\r\n<p class=\"import-Normal\"><strong>Spatial data<\/strong><strong>:<\/strong> This represents objects in a geometric space such as points or as polygons.<\/p>\r\n<p class=\"import-Normal\"><\/p>\r\n\r\n<h2>Exercises<\/h2>\r\n<ol>\r\n \t<li class=\"import-Normal\">Explain or define the following terms within the context of this chapter. (CCDSC2021 DM Information Retrieval \u2013 T2) (IT2017 ITE-IMA-05 b; IT2017 ITE-IMA-06 a)\r\n<ol>\r\n \t<li class=\"import-Normal\">Relational DBMS<\/li>\r\n \t<li class=\"import-Normal\">Content Stores<\/li>\r\n \t<li class=\"import-Normal\">Document<\/li>\r\n \t<li class=\"import-Normal\">Event Stores<\/li>\r\n \t<li class=\"import-Normal\">Graph DBMS<\/li>\r\n \t<li class=\"import-Normal\">Key-value<\/li>\r\n \t<li class=\"import-Normal\">Native XML DBMS<\/li>\r\n \t<li class=\"import-Normal\">Navigational DBMS<\/li>\r\n \t<li class=\"import-Normal\">Object Oriented DBMS<\/li>\r\n \t<li class=\"import-Normal\">RDF Stores<\/li>\r\n \t<li class=\"import-Normal\">Search Engine<\/li>\r\n \t<li class=\"import-Normal\">Spatial DBMS<\/li>\r\n \t<li class=\"import-Normal\">Time Series DBMS<\/li>\r\n \t<li class=\"import-Normal\">Vector DBMS<\/li>\r\n \t<li class=\"import-Normal\">Wide Column Stores<\/li>\r\n<\/ol>\r\n<\/li>\r\n \t<li class=\"import-Normal\">For question 1, provide an example of a DBMS product that uses each DBMS scheme.<\/li>\r\n \t<li class=\"import-Normal\">For question 2, which DBMS product may be considered to be a NewSQL?<\/li>\r\n \t<li class=\"import-Normal\">What is the drawback with using a NewSQL (NoSQL) over using a traditional relational DBMS?<\/li>\r\n \t<li class=\"import-Normal\">Which DBMS support concurrency better than other DBMS types? (IS2020 A3.2.1.5)<\/li>\r\n \t<li class=\"import-Normal\">What is sharding?<\/li>\r\n \t<li class=\"import-Normal\">Imagine your future employment. Of the various DBMS mentioned in this chapter, which one would you use? What is your reason for your choice?<\/li>\r\n<\/ol>\r\n<p class=\"import-Normal\"><\/p>\r\n\r\n<h2>A Running Project<\/h2>\r\n<p class=\"import-Normal\">A running project was introduced in Chapter 2. You were encouraged to collect insights about the needs. In Chapter 3, you were told to use a word processor to create tables with columns for the entity pieces. In Chapter 4, you were told to identify the data types. In Chapter 5, you were told to create ERD. In Chapter 6, you were told to revise your ERD to add PK and FK to your tables. You were told to add cardinality between the tables. In Chapter 7, you were to review your tables. Use the normalization steps to bring your database to 3NF.<\/p>\r\n<p class=\"import-Normal\">Select a DBMS. Explain your choice. Install the DBMS on your personal computer.<\/p>\r\n<p class=\"import-Normal\"><\/p>\r\n\r\n<h2>Attribution<\/h2>\r\n<p class=\"import-Normal\">This chapter of\u00a0<em>Database Design<\/em> is a derivative copy of\u00a0<a class=\"rId57\" href=\"http:\/\/cnx.org\/contents\/b57b8760-6898-469d-a0f7-06e0537f6817@1\"><span class=\"import-ListLabel112\">Database System Concepts<\/span><\/a>\u00a0by\u00a0Nguyen Kim Anh\u00a0licensed under\u00a0<a class=\"rId58\" href=\"http:\/\/creativecommons.org\/licenses\/by\/3.0\/\"><span class=\"import-ListLabel112\">Creative Commons Attribution License 3.0 license<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">The second edition chapter 13\u2019s approach was a bit misleading. The other second edition chapters covered the steps for creating a database, but the second edition chapter 13 was repeat of the material from a software engineering viewpoint.<\/p>\r\n<p class=\"import-Normal\"><a id=\"_Hlk165870885\"><\/a>This chapter drew from many sources. The information was completely revised by Fred Strickland for the third edition.<\/p>\r\n\r\n<h2>Image Attributions<\/h2>\r\n<p class=\"import-Normal\">No second edition images were used.<\/p>\r\n\r\n<h2>References<\/h2>\r\n<p class=\"import-Normal\">\u201c13 Advantages And Disadvantages of Redis?\u201d Prosconslab, 2023. <a class=\"rId59\" href=\"https:\/\/prosconslab.com\/articles\/32\/13-advantages-and-disadvantages-of-redis\"><span class=\"import-Hyperlink\">https:\/\/prosconslab.com\/articles\/32\/13-advantages-and-disadvantages-of-redis<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cAdvantages and Disadvantages of Elasticsearch,\u201d Geeks for Geeks, May 7, 2024. <a class=\"rId60\" href=\"https:\/\/www.geeksforgeeks.org\/advantages-and-disadvantages-of-elasticsearch\/\"><span class=\"import-Hyperlink\">https:\/\/www.geeksforgeeks.org\/advantages-and-disadvantages-of-elasticsearch\/<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cAdvantages and Disadvantages of Microsoft Access,\u201d theknowledgeacademy, n.d. <a class=\"rId61\" href=\"https:\/\/www.theknowledgeacademy.com\/blog\/advantages-and-disadvantages-of-microsoft-access\/\"><span class=\"import-Hyperlink\">https:\/\/www.theknowledgeacademy.com\/blog\/advantages-and-disadvantages-of-microsoft-access\/<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">Er R S Banger. \u201c30+ Advantages and Disadvantage of Microsoft Access | Features &amp; Benefits,\u201d DigitalThinkerHelp, July 24, 2023. <a class=\"rId62\" href=\"https:\/\/digitalthinkerhelp.com\/advantages-and-disadvantages-of-microsoft-access\/\"><span class=\"import-Hyperlink\">https:\/\/digitalthinkerhelp.com\/advantages-and-disadvantages-of-microsoft-access\/<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">Daniel Calbimonte. \u201cHow to install SQL Server 2022 step by step,\u201d MS SQL Tips, November 17, 2023. <a class=\"rId63\" href=\"https:\/\/www.mssqltips.com\/sqlservertip\/7313\/install-sql-server-2022\/\"><span class=\"import-Hyperlink\">https:\/\/www.mssqltips.com\/sqlservertip\/7313\/install-sql-server-2022\/<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">Vera Chen. \u201c11 Best Database Management Systems (2024) [FREE},\u201d April 18, 2024. <a class=\"rId64\" href=\"https:\/\/www.datanumen.com\/blogs\/11-best-database-management-systems-free\/\"><span class=\"import-Hyperlink\">https:\/\/www.datanumen.com\/blogs\/11-best-database-management-systems-free\/<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">The word \u201cFREE\u201d in the article title is misleading. The information is free, but most of the reviewed DBMSs are not free.<\/p>\r\n<p class=\"import-Normal\">\u201cContent Stores,\u201d DB-Engines, n.d. <a class=\"rId65\" href=\"https:\/\/db-engines.com\/en\/article\/Content+Stores\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/article\/Content+Stores<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">I tried to access this website on October 19, 2024 and it was down.<\/p>\r\n<p class=\"import-Normal\">Stephen Cooper. \u201cMicrosoft Access: Is it Still Relevant in 2024?\u201d Comparitech, January 3, 2024 <a class=\"rId66\" href=\"https:\/\/www.comparitech.com\/net-admin\/microsoft-access\/\"><span class=\"import-Hyperlink\">https:\/\/www.comparitech.com\/net-admin\/microsoft-access\/<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cDb2 database product editions and Db2 offerings,\u201d IBM, January 12, 2024. <a class=\"rId67\" href=\"https:\/\/www.ibm.com\/docs\/en\/db2\/11.5?topic=editions-db2-database-product-offerings\"><span class=\"import-Hyperlink\">https:\/\/www.ibm.com\/docs\/en\/db2\/11.5?topic=editions-db2-database-product-offerings<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cDocument Stores,\u201d DB-Engines, n.d. <a class=\"rId68\" href=\"https:\/\/db-engines.com\/en\/article\/Document+Stores\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/article\/Document+Stores<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cDatabase Software,\u201d Capterra, n.d. <a class=\"rId69\" href=\"https:\/\/www.capterra.com\/database-management-software\/\"><span class=\"import-Hyperlink\">https:\/\/www.capterra.com\/database-management-software\/<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">Capterra is a company that provides solutions to businesses. The company does not sell a product, but finds the best products that satisfy the needs of a business. See <a class=\"rId70\" href=\"https:\/\/www.capterra.com\/our-story\/\"><span class=\"import-Hyperlink\">https:\/\/www.capterra.com\/our-story\/<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cDB-engines Ranking,\u201d DB-Engines, September 2024. <a class=\"rId71\" href=\"https:\/\/db-engines.com\/en\/ranking\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/ranking<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cElasticsearch System Properties,\u201d DB-Engines, 2024. <a class=\"rId72\" href=\"https:\/\/db-engines.com\/en\/system\/Elasticsearch\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/system\/Elasticsearch<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cEvent Stores,\u201d DB-Engines, n.d. <a class=\"rId73\" href=\"https:\/\/db-engines.com\/en\/article\/Event+Stores\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/article\/Event+Stores<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">Brandon Gaille. \u201c13 Pros and Cons of Microsoft Access,\u201d BrandonGaille, September 13, 2016. <a class=\"rId74\" href=\"https:\/\/brandongaille.com\/13-pros-and-cons-of-microsoft-access\/\"><span class=\"import-Hyperlink\">https:\/\/brandongaille.com\/13-pros-and-cons-of-microsoft-access\/<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cThe Good and the Bad of Snowflake Data Warehouse,\u201d Altexsoft, January 30, 2023. <a class=\"rId75\" href=\"https:\/\/www.altexsoft.com\/blog\/snowflake-data-warehouse-pros-cons\/\"><span class=\"import-Hyperlink\">https:\/\/www.altexsoft.com\/blog\/snowflake-data-warehouse-pros-cons\/<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cGraph DBMS,\u201d DB-Engines, n.d. <a class=\"rId76\" href=\"https:\/\/db-engines.com\/en\/article\/Graph+DBMS\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/article\/Graph+DBMS<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cHow to Navigate the Oracle Technology Price List,\u201d Oracle Licensing Experts, May 22, 2024. <a class=\"rId77\" href=\"https:\/\/oraclelicensingexperts.com\/how-to-navigate-the-oracle-technology-price-list\/\"><span class=\"import-Hyperlink\">https:\/\/oraclelicensingexperts.com\/how-to-navigate-the-oracle-technology-price-list\/<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cIBM Db2 System Properties,\u201d DB-Engines, 2024. <a class=\"rId78\" href=\"https:\/\/db-engines.com\/en\/system\/IBM+Db2\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/system\/IBM+Db2<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cIntroduction to NoSQL,\u201d Geeks for Geeks, July 25, 2024. <a class=\"rId79\" href=\"https:\/\/www.geeksforgeeks.org\/introduction-to-nosql\/\"><span class=\"import-Hyperlink\">https:\/\/www.geeksforgeeks.org\/introduction-to-nosql\/<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">Geeks for Geeks has a second article that uses a table to compare SQL and NoSQL. See<\/p>\r\n<p class=\"import-Normal\">\u201cSQL vs NoSQL: Which One is Better to Use,\u201d Geeks for Geeks, August 8, 2024. <a class=\"rId80\" href=\"https:\/\/www.geeksforgeeks.org\/sql-vs-nosql-which-one-is-better-to-use\/\"><span class=\"import-Hyperlink\">https:\/\/www.geeksforgeeks.org\/sql-vs-nosql-which-one-is-better-to-use\/<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cKey-value Stored,\u201d DB-Engines, n.d. <a class=\"rId81\" href=\"https:\/\/db-engines.com\/en\/article\/Key-value+Stores\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/article\/Key-value+Stores<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">Curt Kolovson. \u201cWeighing the Pros and Cons of PostgreSQL,\u201d Medium, December 6, 2021. <a class=\"rId82\" href=\"https:\/\/medium.com\/@ckolovson\/weighing-the-pros-and-cons-of-postgresql-5a3603dd34ce\"><span class=\"import-Hyperlink\">https:\/\/medium.com\/@ckolovson\/weighing-the-pros-and-cons-of-postgresql-5a3603dd34ce<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cMicrosoft SQL Server System Properties,\u201d DB-Engines, 2024. <a class=\"rId83\" href=\"https:\/\/db-engines.com\/en\/system\/Microsoft+SQL+Server\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/system\/Microsoft+SQL+Server<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cMongoDB Advantages &amp; Disadvantages,\u201d Geeks for Geeks, December 1, 2023. <a class=\"rId84\" href=\"https:\/\/www.geeksforgeeks.org\/mongodb-advantages-disadvantages\/\"><span class=\"import-Hyperlink\">https:\/\/www.geeksforgeeks.org\/mongodb-advantages-disadvantages\/<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cMongoDB System Properties,\u201d DB-Engines, 2024. <a class=\"rId85\" href=\"https:\/\/db-engines.com\/en\/system\/MongoDB\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/system\/MongoDB<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cMySQL System Properties,\u201d DB-Engines, 2024. <a class=\"rId86\" href=\"https:\/\/db-engines.com\/en\/system\/MySQL\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/system\/MySQL<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cNative XML DBMS,\u201d DB-Engines, n.d. <a class=\"rId87\" href=\"https:\/\/db-engines.com\/en\/article\/Native+XML+DBMS\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/article\/Native+XML+DBMS<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cNavigational DBMS,\u201d DB-Engines, n.d. <a class=\"rId88\" href=\"https:\/\/db-engines.com\/en\/article\/Navigational+DBMS\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/article\/Navigational+DBMS<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cObject oriented DBMS,\u201d DB-Engines, n.d. <a class=\"rId89\" href=\"https:\/\/db-engines.com\/en\/article\/Object+oriented+DBMS\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/article\/Object+oriented+DBMS<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cOracle System Properties,\u201d DB-Engines, 2024. <a class=\"rId90\" href=\"https:\/\/db-engines.com\/en\/system\/Oracle\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/system\/Oracle<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">Roman Pijacek. \u201cMicrosoft SQL Server Pros and Cons,\u201d Learn SQL, January 17, 2019. <a class=\"rId91\" href=\"https:\/\/learnsql.com\/blog\/microsoft-sql-server-pros-and-cons\/\"><span class=\"import-Hyperlink\">https:\/\/learnsql.com\/blog\/microsoft-sql-server-pros-and-cons\/<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cPostgreSQL System Properties,\u201d DB-Engines, 2024. <a class=\"rId92\" href=\"https:\/\/db-engines.com\/en\/system\/PostgreSQL\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/system\/PostgreSQL<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cPros and Cons of Using Snowflake Cloud Data Warehouse,\u201d Zuar, February 12, 2022. <a class=\"rId93\" href=\"https:\/\/www.zuar.com\/blog\/pros-and-cons-of-using-snowflake-cloud-data-warehouse\/\"><span class=\"import-Hyperlink\">https:\/\/www.zuar.com\/blog\/pros-and-cons-of-using-snowflake-cloud-data-warehouse\/<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">Daniel Raymond. \u201cMySQL: 10 Cons &amp; Disadvantages with 5 Alternatives\u201d ProjectManagers.net, January 25, 2024. <a class=\"rId94\" href=\"https:\/\/projectmanagers.net\/mysql-10-cons-disadvantages-with-5-alternatives\/\"><span class=\"import-Hyperlink\">https:\/\/projectmanagers.net\/mysql-10-cons-disadvantages-with-5-alternatives\/<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cRDF Stores,\u201d DB-Engines, n.d. <a class=\"rId95\" href=\"https:\/\/db-engines.com\/en\/article\/RDF+Stores\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/article\/RDF+Stores<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cRedis System Properties,\u201d DB-Engines, 2024. <a class=\"rId96\" href=\"https:\/\/db-engines.com\/en\/system\/Redis\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/system\/Redis<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">Sophie Reed. \u201cThe Advantages and Disadvantages of Microsoft SQL Server,\u201d Rothobot, March 15, 2020. <a class=\"rId97\" href=\"https:\/\/rothmobot.com\/the-advantages-and-disadvantages-of-microsoft-sql-server\/\"><span class=\"import-Hyperlink\">https:\/\/rothmobot.com\/the-advantages-and-disadvantages-of-microsoft-sql-server\/<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cSearch Engines,\u201d DB-Engines, n.d. <a class=\"rId98\" href=\"https:\/\/db-engines.com\/en\/article\/Search+Engines\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/article\/Search+Engines<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cSnowflake System Properties,\u201d DB-Engines, 2024. <a class=\"rId99\" href=\"https:\/\/db-engines.com\/en\/system\/Snowflake\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/system\/Snowflake<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cSpatial DBMS,\u201d DB-Engines, n.d. <a class=\"rId100\" href=\"https:\/\/db-engines.com\/en\/article\/Spatial+DBMS\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/article\/Spatial+DBMS<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">Mike Springgay. \u201cSix new Db2 capabilities DBAs must try today with Db2 115.9,\u201d IBM, April 9, 2024. <a class=\"rId101\" href=\"https:\/\/www.ibm.com\/blog\/announcement\/6-new-db2-capabilities-dbas-must-try-today-with-db2-11-5-9\/\"><span class=\"import-Hyperlink\">https:\/\/www.ibm.com\/blog\/announcement\/6-new-db2-capabilities-dbas-must-try-today-with-db2-11-5-9\/<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cSQL Server Data Tools,\u201d Microsoft Learn, August 20, 2024. <a class=\"rId102\" href=\"https:\/\/learn.microsoft.com\/en-us\/sql\/ssdt\/sql-server-data-tools?view=sql-server-ver16\"><span class=\"import-Hyperlink\">https:\/\/learn.microsoft.com\/en-us\/sql\/ssdt\/sql-server-data-tools?view=sql-server-ver16<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cSQL Server Editon Feature Comparison,\u201d Express DB, n.d. <a class=\"rId103\" href=\"https:\/\/expressdb.io\/sql-server-express-feature-comparison.html\"><span class=\"import-Hyperlink\">https:\/\/expressdb.io\/sql-server-express-feature-comparison.html<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cSQLite Advantages\u201d Java T Point, https:\/\/www.javatpoint.com\/sqlite-advantages-and-disadvantages<\/p>\r\n<p class=\"import-Normal\">\u201cSQLite System Properties,\u201d DB-Engines, 2024. <a class=\"rId104\" href=\"https:\/\/db-engines.com\/en\/system\/SQLite\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/system\/SQLite<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cTime Series DBMS,\u201d DB-Engines, n.d. <a class=\"rId105\" href=\"https:\/\/db-engines.com\/en\/article\/Time+Series+DBMS\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/article\/Time+Series+DBMS<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cVector DBMS,\u201d DB-Engines, n. d. <a class=\"rId106\" href=\"https:\/\/db-engines.com\/en\/article\/Vector+DBMS\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/article\/Vector+DBMS<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cWhat is SQL Server Management Studio (SSMS)\u201d Microsoft Learn, August 19, 2024. <a class=\"rId107\" href=\"https:\/\/learn.microsoft.com\/en-us\/sql\/ssms\/sql-server-management-studio-ssms?view=sql-server-ver16\"><span class=\"import-Hyperlink\">https:\/\/learn.microsoft.com\/en-us\/sql\/ssms\/sql-server-management-studio-ssms?view=sql-server-ver16<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">\u201cWhat is the disadvantage of just using Redis instead of an RDBMS?\u201d Stackoverflow, n.d. <a class=\"rId108\" href=\"https:\/\/stackoverflow.com\/questions\/10906246\/what-is-the-disadvantage-of-just-using-redis-instead-of-an-rdbms\"><span class=\"import-Hyperlink\">https:\/\/stackoverflow.com\/questions\/10906246\/what-is-the-disadvantage-of-just-using-redis-instead-of-an-rdbms<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">Didier Spezia answered this question on June 6, 2012. Stackoverflow is a forum where people ask questions and others answer. The quality of the answers is high, but there is no one checking on the accuracy of the information.<\/p>\r\n<p class=\"import-Normal\">\u201cWide Column Stores,\u201d DB-Engines, n.d. <a class=\"rId109\" href=\"https:\/\/db-engines.com\/en\/article\/Wide+Column+Stores\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/article\/Wide+Column+Stores<\/span><\/a><\/p>\r\n<p class=\"import-Normal\">Christopher Wong. \u201cAdvantages and Disadvantages of Using SQLite,\u201d Medium, March 31, 2023. <a class=\"rId110\" href=\"https:\/\/medium.com\/@cw30355\/advantages-and-disadvantages-of-using-sqlite-2f490fa467bd\"><span class=\"import-Hyperlink\">https:\/\/medium.com\/@cw30355\/advantages-and-disadvantages-of-using-sqlite-2f490fa467bd<\/span><\/a><\/p>\r\n&nbsp;\r\n<div id=\"sdfootnote1sym\"><a href=\"#sdfootnote1anc\">1<\/a> According to Geeks for Geeks, \u201ca real-time database is a database that stores data in JSON files which is synchronized in real-time to every client that is connected to the database.\u201d For more information, see\u201c10 Best Real-Time Databases for 2024,\u201d Geeks for Geeks, June 19, 2024. https:\/\/www.geeksforgeeks.org\/real-time-databases\/<\/div>\r\n<div id=\"sdfootnote2sym\"><a href=\"#sdfootnote2anc\">2<\/a> Microsoft SQL Server appears in this group. The Capterra website does not mention anything about the fact that it is the Microsoft SQL Server Express that is the free product.<\/div>\r\n<div id=\"sdfootnote3sym\"><a href=\"#sdfootnote3anc\">3<\/a> Some sources will shorten \u201crelational DBMS\u201d to become \u201cRDBMS.\u201d I have chosen not to follow this practice. I wish to avoid confusion with \u201creal-time DBMS.\u201d Also I wish to emphasize that the book is about traditional relational DBMS. I did not \u201ccorrect\u201d this expression in the Stephen Cooper quote in the section on Microsoft Access.<\/div>\r\n<div id=\"sdfootnote4sym\"><a href=\"#sdfootnote4anc\">4<\/a> The term \u201cmulti-model\u201d means the DBMS can support other schemes. For example, Oracle can support document store, graphic DBMS, RDF store, spatial DBMS, and vector DBMS. MySQL can support document store and spatial DBMS. Microsoft SQL Server can support document store, graphic DBMS, and Spatial DBMS.<\/div>\r\n<div id=\"sdfootnote5sym\"><a href=\"#sdfootnote5anc\">5<\/a> The DB-Engines reflects that the popularity is dropping. In October 2022, Microsoft Access was 9th. In September 2023, Microsoft Access was 10th. In September 2024, Microsoft Access had dropped to 12th.<\/div>\r\n<div id=\"sdfootnote6sym\"><a href=\"#sdfootnote6anc\">6<\/a> COBOL is over 60 years old. Many programmers are retiring. COBOL is not addressed in many computer science academic programs. COBOL is being adapted for the cloud and for other needs. There is some renewed interest from the younger tech enthusiasts. Thus there are many questions about the future. For more information, see \u201cCOBOL\u2019s Legacy: Navigating the Future of Traditional Programming in a Modern World,\u201d Adaptigent, March 1, 2024. https:\/\/www.adaptigent.com\/blog\/cobols-legacy-navigating-the-future-of-traditional-programming-in-a-modern-world\/<\/div>\r\n<div id=\"sdfootnote7sym\"><a href=\"#sdfootnote7anc\">7<\/a> From the Docker website (https:\/\/www.docker.com\/resources\/what-container\/):A container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another. A Docker container image is a lightweight, standalone, executable package of software that includes everything needed to run an application: code, runtime, system tools, system libraries and settings.Container images become containers at runtime and in the case of Docker containers \u2013 images become containers when they run on Docker Engine. Available for both Linux and Windows-based applications, containerized software will always run the same, regardless of the infrastructure. Containers isolate software from its environment and ensure that it works uniformly despite differences for instance between development and staging.<\/div>\r\n<div id=\"sdfootnote8sym\"><a href=\"#sdfootnote8anc\">8<\/a> The RESTful API is an interface that two computer systems can use to exchange information securely over the Internet<\/div>\r\n<div id=\"sdfootnote9sym\"><a href=\"#sdfootnote9anc\">9<\/a> The Java Virtual Machine (VM) is a software layer that sits on an operating system. A programmer can create a program and the Java VM will handle the interface with the various types of operating systems.<\/div>\r\n<div id=\"sdfootnote10sym\"><a href=\"#sdfootnote10anc\">10<\/a> The DB-Engines web page gave the current release information as \u201c121, October 2016.\u201d The correct information came from the IBM website.<\/div>\r\n<div id=\"sdfootnote11sym\"><a href=\"#sdfootnote11anc\">11<\/a> Niklaus Wirth developed Pascal in the early 1970s as a way to teach good programming practices. It was the first programming language to emphasize structured programming, strong typing, and data structuring. Pascal influenced C++ and Java. Pascal began to decline with the rise of languages like C and C++. Turbo Pascal influenced the design of modern tools and integrated development environments (IDEs). See Nathan Pakovskie. \u201cThe Enduring Legacy of Pascal in Modern Coding Practices,\u201d Geekpedia, November 9, 2023. https:\/\/www.geekpedia.com\/the-enduring-legacy-of-pascal-in-modern-coding-practices\/<\/div>\r\n<div id=\"sdfootnote12sym\"><a href=\"#sdfootnote12anc\">12<\/a> <i>Sharding <\/i>is a technique that involves splitting a large database into smaller, more manageable pieces. These pieces are known as shards. Each shard contains a subset of the data and operates independently. This allows for horizonal scaling and improved performance.<\/div>\r\n<div id=\"sdfootnote13sym\"><a href=\"#sdfootnote13anc\">13<\/a> Hadoop is a framework for working with large data sets. It is not a DBMS.<\/div>\r\n<div id=\"sdfootnote14sym\"><a href=\"#sdfootnote14anc\">14<\/a> Computer-aided design (CAD) is the use of a computer in the design process.<\/div>\r\n<div id=\"sdfootnote15sym\"><a href=\"#sdfootnote15anc\">15<\/a> This is from firsthand experience. I removed an older version of Microsoft SQL Server. I installed a newer edition. It worked. Six months later it would not work. So I did a complete removal of the problem. I did a fresh install. The installation is having trouble with the database engine. All of the web experts state that the answer is to do a complete removal and a fresh installation. I have not found the answer when the removal-installation answer does not work.\u00a0 I discovered that I had to close out many programs in order to have a successful installation.<\/div>\r\n<div id=\"sdfootnote16sym\"><a href=\"#sdfootnote16anc\">16<\/a> Google uses content-based targeting. Microsoft Bing does not. So e-mail messages, chats, files, and other personal items are not tracked for advertising. For more information about the benefits of using Microsoft Bing, see Syak Boral. \u201c12 Things that Bing Does Better than Google,\u201d: maketecheasier, August 26, 2021. https:\/\/www.maketecheasier.com\/bing-better-than-google\/<\/div>\r\n<div id=\"sdfootnote17sym\"><a href=\"#sdfootnote17anc\">17<\/a> Mike Wolfe in his article entitled \u201cThe AdventureWorks SQL Server Sample Database,\u201d directed his readers to select full text search feature and the FILESTREAM feature. He did not explain why the FILESTREAM feature would be needed. See https:\/\/nolongerset.com\/adventureworks\/ for the whole article.<\/div>\r\n<\/div>","rendered":"<div class=\"chapter-8-implementation-\">\n<p class=\"import-Normal\">Original Chapter 13 Author: Adrienne Watt<\/p>\n<p class=\"import-Normal\">Rewrite: Fred Strickland<\/p>\n<h2>Learning Outcomes<\/h2>\n<table style=\"width: 467.5pt\">\n<tbody>\n<tr class=\"TableGrid-R\">\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\"><strong>Computing Sub Discipline<\/strong><\/p>\n<\/td>\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\"><strong>Document Code, Reference Code, and Page Number<\/strong><\/p>\n<\/td>\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\"><strong>Text<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr class=\"TableGrid-R\" style=\"height: 67.9pt\">\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\">Computer Science<\/p>\n<\/td>\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\">CS2023<\/p>\n<p class=\"import-Normal\">DM-NoSQL: NoSQL Systems<\/p>\n<p class=\"import-Normal\">(Pages 120-121)<\/p>\n<p class=\"import-Normal\">\n<\/td>\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\">KA Core 1. Why NoSQL? (e.g., Impedance mismatch between Application [CRUD] and RDBMS)<\/p>\n<p class=\"import-Normal\">KA Core 2. Key-Value and Document data model<\/p>\n<p class=\"import-Normal\">Non-core 5. Graph Databases<\/p>\n<p class=\"import-Normal\">Non-core 3. Storage systems (e.g., Key-Value systems, Data Lakes)<\/p>\n<p class=\"import-Normal\">ILO KA Core 1. Develop a use case for the use of NoSQL over RDBMS<\/p>\n<p class=\"import-Normal\">ILO KA Core 2. Describe the defining characteristics behind Key-Value and Document-based data models<\/p>\n<\/td>\n<\/tr>\n<tr class=\"TableGrid-R\" style=\"height: 67.9pt\">\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\">Data Science<\/p>\n<\/td>\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\">DS2021<\/p>\n<p class=\"import-Normal\">Data Mining (DM)<\/p>\n<p class=\"import-Normal\">DM-Information Retrieval &#8212; T2<\/p>\n<p class=\"import-Normal\">(Pages 80-81)<\/p>\n<\/td>\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\">Students need to have knowledge of<\/p>\n<ul>\n<li>Various relational, non-relational, and other database formats.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr class=\"TableGrid-R\" style=\"height: 67.9pt\">\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\">Information Systems<\/p>\n<\/td>\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\">IS2020<\/p>\n<p class=\"import-Normal\">A3.2 Data \/ Information Competency Realm<\/p>\n<p class=\"import-Normal\">A3.2.1 Competency Area \u2013 Data \/ Information Management<\/p>\n<p class=\"import-Normal\">(Page 5)<\/p>\n<\/td>\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\">5. Compare tradeoffs of different concurrency modes (Page 103)<\/p>\n<\/td>\n<\/tr>\n<tr class=\"TableGrid-R\" style=\"height: 61.6pt\">\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\" rowspan=\"2\">\n<p class=\"import-Normal\">Information Technology<\/p>\n<\/td>\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\">IT2017<\/p>\n<p class=\"import-Normal\">ITE-IMA-05 Data organization architecture<\/p>\n<p class=\"import-Normal\">(Page 92)<\/p>\n<\/td>\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\">b. Contrast and compare relational databases concepts and non-relational databases including object-oriented, XML, NewSQL and NoSQL databases.<\/p>\n<\/td>\n<\/tr>\n<tr class=\"TableGrid-R\" style=\"height: 58pt\">\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\">IT2017<\/p>\n<p class=\"import-Normal\">ITE-IMA-06 Special purpose databases<\/p>\n<p class=\"import-Normal\">(Page 92)<\/p>\n<\/td>\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\">a. Describe major concepts of object oriented, XML, NewSQL, and NoSQL databases.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Introduction to Chapter 8<\/h2>\n<p class=\"import-Normal\">Chapter 6 addressed the mechanisms for preventing bad or duplicate data from being entered into a database. We looked at integrity rules, constraints, and cardinality for ensuring the high quality of the data. From the \u201cseat of the pants,\u201d we figured out what tables we might need. What if you are starting with no suggestions and with no guidance? Chapter 7 provided the tools for dividing a \u201cmonster\u201d spreadsheet into a collection of workable database tables.<\/p>\n<p class=\"import-Normal\">The second edition\u2019s Chapter 13 used the software development life cycle to explain how to create a database. This edition placed those concepts throughout the early chapters. This chapter will look at the selection of a database management system.<\/p>\n<h2>The Third Edition Style Guide<\/h2>\n<p class=\"import-Normal\">This is the style guide that this book will follow for this chapter and for the other chapters.<\/p>\n<table style=\"width: 229.25pt\">\n<tbody>\n<tr class=\"TableGrid-R\">\n<td class=\"TableGrid-C\" style=\"background-color: transparent;border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\">Naming Convention:<\/p>\n<ul>\n<li>All English names<\/li>\n<li>Plural table names<\/li>\n<li>Singular column names<\/li>\n<li>Capitalized words<\/li>\n<li>Pascal Case for composite names<\/li>\n<li>No underscores or special characters<\/li>\n<li>No unique SQL commands<\/li>\n<li>No object prefixes<\/li>\n<\/ul>\n<p class=\"import-Normal\">Using the IE\u2019s Notation with Crow\u2019s Foot Notation.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p class=\"import-Normal\">Figure 8.1 The database style guide. Adapted from https:\/\/vertabelo.com\/blog\/database-schema-naming-conventions\/<\/p>\n<h2>Selecting the Best Database Management System<\/h2>\n<p class=\"import-Normal\">Our interest is in the situation where a client is interacting with data in a DBMS. We are not interested in a real-time DBMS<sup class=\"import-FootnoteReference\"><a id=\"sdfootnote1anc\" href=\"#sdfootnote1sym\">1<\/a><\/sup>, which is beyond the scope of this chapter.<\/p>\n<p class=\"import-Normal\">There are various websites that provide reviews of DBMS. Capterra\u2019s website lists 410 products. You can sort the list in various ways:<\/p>\n<ul>\n<li>Pricing Options\n<ul>\n<li>Free\n<ul>\n<li>There are 58 products<sup class=\"import-FootnoteReference\"><a id=\"sdfootnote2anc\" href=\"#sdfootnote2sym\">2<\/a><\/sup>.<\/li>\n<\/ul>\n<\/li>\n<li>Free Trial<\/li>\n<li>Monthly Subscription<\/li>\n<li>Annual Subscription<\/li>\n<li>One-Time License<\/li>\n<\/ul>\n<\/li>\n<li>Features\n<ul>\n<li>Backup and Recovery<\/li>\n<li>Data Connectors<\/li>\n<li>Data Import\/Export<\/li>\n<li>Data Migration<\/li>\n<li>Data Replication<\/li>\n<li>Data Synchronization<\/li>\n<li>Data Virtualization<\/li>\n<li>Database Conversion<\/li>\n<li>Mobile Access<\/li>\n<li>Multiple Programming Languages Supported<\/li>\n<li>NOSQL Database Management<\/li>\n<li>Performance Analysis<\/li>\n<li>Relational database Management<\/li>\n<li>Reporting and Statistics<\/li>\n<li>Search\/Filter<\/li>\n<li>Secure Data Storage<\/li>\n<\/ul>\n<\/li>\n<li>Deployment.\n<ul>\n<li>Cloud, SaaS, web-Based<\/li>\n<li>Desktop Mac<\/li>\n<li>Desktop Windows<\/li>\n<li>Desktop Linux<\/li>\n<li>On-Premise Windows<\/li>\n<li>On-Premise Linux<\/li>\n<li>Desktop Chromebook<\/li>\n<li>Mobile Android<\/li>\n<li>Mobile iPhone<\/li>\n<li>Mobile iPad<\/li>\n<\/ul>\n<\/li>\n<li>Number of Users\n<ul>\n<li>1<\/li>\n<li>2 to 10<\/li>\n<li>11 to 50<\/li>\n<li>51 to 20<\/li>\n<li>201 to 500<\/li>\n<li>501 to 1,000<\/li>\n<li>Over 1,000<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p class=\"import-Normal\">The DB-Engines website ranks DBMSs. It has 423 systems. The ranking is based on popularity. The list has relational DBMSs<sup class=\"import-FootnoteReference\"><a id=\"sdfootnote3anc\" href=\"#sdfootnote3sym\">3<\/a><\/sup> and non-relational DBMSs. The following top ten DBMSs came from the September 2024 ranking:<\/p>\n<table>\n<tbody>\n<tr class=\"TableGrid-R\">\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\" style=\"text-align: center\"><strong>September 2024 Rank<\/strong><\/p>\n<\/td>\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\" style=\"text-align: center\"><strong>DBMS<\/strong><\/p>\n<\/td>\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\" style=\"text-align: center\"><strong>Database Model<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr class=\"TableGrid-R\">\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\" style=\"text-align: center\">1<\/p>\n<\/td>\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\">Oracle<\/p>\n<\/td>\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\">Relational, Multi-model<sup class=\"import-FootnoteReference\"><a id=\"sdfootnote4anc\" href=\"#sdfootnote4sym\">4<\/a><\/sup><\/p>\n<\/td>\n<\/tr>\n<tr class=\"TableGrid-R\">\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\" style=\"text-align: center\">2<\/p>\n<\/td>\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\">MySQL<\/p>\n<\/td>\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\">Relational, Multi-model<\/p>\n<\/td>\n<\/tr>\n<tr class=\"TableGrid-R\">\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\" style=\"text-align: center\">3<\/p>\n<\/td>\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\">Microsoft SQL Server<\/p>\n<\/td>\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\">Relational, Multi-model<\/p>\n<\/td>\n<\/tr>\n<tr class=\"TableGrid-R\">\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\" style=\"text-align: center\">4<\/p>\n<\/td>\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\">PostgreSQL<\/p>\n<\/td>\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\">Relational, Multi-model<\/p>\n<\/td>\n<\/tr>\n<tr class=\"TableGrid-R\">\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\" style=\"text-align: center\">5<\/p>\n<\/td>\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\">MongoDB<\/p>\n<\/td>\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\">Document, Multi-model<\/p>\n<\/td>\n<\/tr>\n<tr class=\"TableGrid-R\">\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\" style=\"text-align: center\">6<\/p>\n<\/td>\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\">Redis<\/p>\n<\/td>\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\">Key-value, Multi-model<\/p>\n<\/td>\n<\/tr>\n<tr class=\"TableGrid-R\">\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\" style=\"text-align: center\">7<\/p>\n<\/td>\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\">Snowflake<\/p>\n<\/td>\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\">Relational<\/p>\n<\/td>\n<\/tr>\n<tr class=\"TableGrid-R\">\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\" style=\"text-align: center\">8<\/p>\n<\/td>\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\">Elasticsearch<\/p>\n<\/td>\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\">Search engine, Multi-model<\/p>\n<\/td>\n<\/tr>\n<tr class=\"TableGrid-R\">\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\" style=\"text-align: center\">9<\/p>\n<\/td>\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\">IBM Db2<\/p>\n<\/td>\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\">Relational, Multi-model<\/p>\n<\/td>\n<\/tr>\n<tr class=\"TableGrid-R\">\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\" style=\"text-align: center\">10<\/p>\n<\/td>\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\">SQLite<\/p>\n<\/td>\n<td class=\"TableGrid-C\" style=\"border: solid windowtext 0.5pt\">\n<p class=\"import-Normal\">Relational<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p class=\"import-Normal\">Figure 8.2 Extract from the DB-Engines ranking list for September 2024. Source: <a class=\"rId8\" href=\"https:\/\/db-engines.com\/en\/ranking\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/ranking<\/span><\/a><\/p>\n<p class=\"import-Normal\">Some of these have the option of working in the cloud. That option is beyond the scope of this chapter. For a review of these products, see<\/p>\n<p class=\"import-Normal\" style=\"padding-left: 40px\">\u201cCloud Database Management Systems Reviews and Ratings,\u201d Gartner, 2024. <a class=\"rId9\" href=\"https:\/\/www.gartner.com\/reviews\/market\/cloud-database-management-systems\"><span class=\"import-Hyperlink\">https:\/\/www.gartner.com\/reviews\/market\/cloud-database-management-systems<\/span><\/a><\/p>\n<h3>Microsoft Access: The Good and the Bad<\/h3>\n<p class=\"import-Normal\">Microsoft makes available its office suite to institutions of higher education. The arrangements frequently result in students receiving a free copy of the Microsoft Access database program. It is tempting to use Microsoft Access for the following frequently published reasons:<\/p>\n<ul>\n<li>Well known.<\/li>\n<li>Easy to use and quick learning curve.\n<ul>\n<li>It is similar to other Microsoft Office products.<\/li>\n<\/ul>\n<\/li>\n<li>Rapid development and prototyping.<\/li>\n<li>Works with the other parts of the Microsoft Office suite.<\/li>\n<li>Robust data security and permission features.\n<ul>\n<li>Users can control access to their databases. Administrators can define different levels of permissions and access.<\/li>\n<\/ul>\n<\/li>\n<li>Flexibility for designing the user interface.<\/li>\n<li>May be able to support up to ten users on a network at the same time.\n<ul>\n<li>Can share the data with 40 users.<\/li>\n<\/ul>\n<\/li>\n<li>Could be accessed via a web page front end.<\/li>\n<li>Queries can be created graphically or with SQL statements.<\/li>\n<li>Built-in templates and wizards.<\/li>\n<li>Easy to import and to export data.<\/li>\n<\/ul>\n<p class=\"import-Normal\">Microsoft Access has several disadvantages:<\/p>\n<ul>\n<li>Limited scalability and performance.\n<ul>\n<li>The data is stored in a single file and as the maximum size (2 GB) is approached, things begin to degrade.<\/li>\n<li>Multimedia data consumes space.<\/li>\n<\/ul>\n<\/li>\n<li>Relational database limitations.\n<ul>\n<li>It cannot handle complex relationships between tables.<\/li>\n<li>It has a poor relational database design and thus makes it difficult to learn how to use or how to access the database\u2019s forms.<\/li>\n<\/ul>\n<\/li>\n<li>Weak support for concurrency.\n<ul>\n<li>It cannot handle multiple users attempting to access and to modify data at the same time.<\/li>\n<li>Time critical transactions are difficult to capture.<\/li>\n<\/ul>\n<\/li>\n<li>Does not have easy support for triggers nor for handling scheduled tasks.<\/li>\n<li>Lack of version control and collaboration features.<\/li>\n<li>Works only on a Windows operating system.\n<ul>\n<li>If different Windows versions are used, the data could become corrupted.<\/li>\n<\/ul>\n<\/li>\n<li>Access does not support extensive database security protocols.<\/li>\n<li>Does not have an easy learning curve.\n<ul>\n<li>The controls and the forms are difficult to customize.<\/li>\n<li>Some understanding of the SQL programming language is needed.<\/li>\n<\/ul>\n<\/li>\n<li>The .accdb file format is not compatible with other systems.\n<ul>\n<li>Microsoft adopted the OpenDocument Format for Excel and for Word, but did not adopt the OpenDocument Format for Access.\n<ul>\n<li>The work-around is to export the data to a CSV format.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>The demand for individuals with Access programming language skills is dropping<sup class=\"import-FootnoteReference\"><a id=\"sdfootnote5anc\" href=\"#sdfootnote5sym\">5<\/a><\/sup>.\n<ul>\n<li>This decline means that project managers will want to avoid the situation that currently exists for the COBOL programming language<sup class=\"import-FootnoteReference\"><a id=\"sdfootnote6anc\" href=\"#sdfootnote6sym\">6<\/a><\/sup>.<\/li>\n<li>Microsoft announced in November 2017 that it plans to retire Access from its on-line productivity suite in April 2018. This has not happened yet as Microsoft continues to issue updates.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p class=\"import-Normal\">The biggest reason for not using Microsoft Access is that it violates the security principle of separating the front end from the database software and from the actual database. Microsoft has added the ability for Access to be used as a front end to more commercially successful DBMSs. As Stephen Cooper wrote, \u201c\u2026this repurposing of the Access application feels a little like a half-life. Is this the last resort for Access, acting as a skin to more successful RDBMSs?\u201d<\/p>\n<p class=\"import-Normal\">If a person feels the need to have Microsoft Access, then Stephen Cooper has a list of better alternatives to Microsoft Access:<\/p>\n<ul>\n<li>OpenOffice derivatives\n<ul>\n<li>Apache OpenOffice<\/li>\n<li>LibreOffice<\/li>\n<li>OxygenOffice Professional<\/li>\n<\/ul>\n<\/li>\n<li>Google Forms<\/li>\n<li>Calligra Office<\/li>\n<li>Zoho Creator<\/li>\n<li>Bubble<\/li>\n<\/ul>\n<p class=\"import-Normal\">Many individuals commented on the Stephen Cooper article. He updated his article to include suggestions from others:<\/p>\n<ul>\n<li>Claris FileMaker. It has a 45-day free trial.<\/li>\n<li>Wisej.<\/li>\n<li>Microsoft Power Platform (Power Apps). Microsoft may be developing this as a replacement for Access. It has a 30-day free trial.<\/li>\n<li>Airtable. It has a 14-day free trial.<\/li>\n<li>Monday.com. It has a 14-day free trial.<\/li>\n<\/ul>\n<h3>Overview of Some Popular DBMSs<\/h3>\n<p class=\"import-Normal\">These DBMSs are covered in DB-Engines September 2024 order.<\/p>\n<p class=\"import-Normal\">#1. Oracle is a relational DBMS. The initial release was in 1980. The current release is 23c (September 2023). There is a 23ai release that uses artificial intelligence. It has a commercial license. It can run on numerous operating systems including some less known operating systems. It supports the standard SQL and Oracle own extensions. It supports several access methods. It supports many programming languages. It supports stored procedures. It supports triggers. It supports foreign keys.<\/p>\n<p class=\"import-Normal\">#2 MySQL is a relational DBMS. The initial release was in 1995. It was first developed by the defunct Sun Microsystems. Oracle took over the development in 2010. The current release is 9.0.0 (July 2024). It has an Open Source license. There is a commercial license for the MySQL version that has more features. It can run on numerous operating systems. It supports the standard SQL and its own extensions. It supports several access methods including Microsoft\u2019s own ADO.NET. It supports many programming languages. It supports stored procedures. It supports triggers. It supports foreign keys.<\/p>\n<p class=\"import-Normal\">#3 Microsoft SQL Server is a relational DBMS. The initial release was in 1989. The current release is SQL Server 2022 (November 2022). There are three versions; two run on the Azure cloud and one runs in the local area (on-premise). There are two free specialized editions. The SQL Server 2022 Developer is a full-featured edition that can be used as a development and test database in a non-production environment. The SQL Server 2022 Express can be used for development and for production environments such as for the desktop, for the web, and for small server applications. These can run on Windows and on Linux operating systems. If the environment supports Docker Containers<sup class=\"import-FootnoteReference\"><a id=\"sdfootnote7anc\" href=\"#sdfootnote7sym\">7<\/a><\/sup>, then SQL Server 2022 can be installed. It supports the standard SQL and its own extensions. It supports several access methods including the Microsoft\u2019s own ADO.NET. It supports many programming languages. It supports stored procedures. It supports triggers. It supports foreign keys.<\/p>\n<p class=\"import-Normal\">#4 PostgreSQL is a relational DBMS. The initial release was in 1989. The current release is 16.4 (August 2024). It has an Open Source license. It can run on numerous operating systems. It supports the standard SQL and its own extensions. It supports several access methods including the Microsoft\u2019s own ADO.NET. It supports many programming languages. It supports stored procedures. It supports triggers. It supports foreign keys.<\/p>\n<p class=\"import-Normal\">#5 MongoDB is a document store database model. It is one of the most popular document store schemes. The initial release was in 2009. The current release is 7.0.5 (January 2024). It has an Open Source license. There is a commercial license available. It can run on numerous operating systems. It supports the standard read-only SQL. It supports several access methods. It supports many programming languages. It supports JavaScript written stored procedures. It supports triggers in the MongoDB Atlas version. It does not support foreign keys.<\/p>\n<p class=\"import-Normal\">#6 Redis is a key-value store database model. It is popular for in-memory data platform usage scheme. The initial release was in 2009. The current release is 7.2.5 (May 2024). It has an Open Source license. There is a commercial license available for the Enterprise edition. It can run on numerous operating systems. If the RedisSQL module is used, then it supports the standard SQL. It supports only its own access method. It supports many programming languages. It supports the Lua stored procedures. It supports some trigger functions. It does not support foreign keys.<\/p>\n<p class=\"import-Normal\">#7 Snowflake is a cloud-based data warehousing service for structured and semi-structured data. It does use the relational DBMS model. The initial release was in 2014. There is only a commercial license. It can run on the operating system provided by the host. It supports the standard SQL. It supports three access methods. It supports two programming languages. It supports stored procedures as user defined functions. It does not support triggers. It supports foreign keys.<\/p>\n<p class=\"import-Normal\">#8 Elasticsearch is a distributed, RESTful<sup class=\"import-FootnoteReference\"><a id=\"sdfootnote8anc\" href=\"#sdfootnote8sym\">8<\/a><\/sup> modern search and analytics engine based on the Apache Lucene. It does not support the relational DBMS model. It is one of the most popular data search engines. The initial release was in 2010. The current release is 8.6 (January 2023). It has its own Open-Source license. It can run on the operating system provided by a Java VM<sup class=\"import-FootnoteReference\"><a id=\"sdfootnote9anc\" href=\"#sdfootnote9sym\">9<\/a><\/sup>. It supports a SQL-like query language. It supports two access methods. It supports a small number of programming languages. It supports stored procedures. It does support triggers when the percolation feature is used. It does not support foreign keys.<\/p>\n<p class=\"import-Normal\">#9 IBM Db2 is a relational DBMS. The initial release was in 1983 and this was the host version. It has had other names such as \u201cDB2\u201d and \u201cIBM Database 2.\u201d The current release is 11.5.9 (late 2023)<sup class=\"import-FootnoteReference\"><a id=\"sdfootnote10anc\" href=\"#sdfootnote10sym\">10<\/a><\/sup>. There is a commercial license. IBM does have a non-licensed free version (DB2 Community Edition). It can run on numerous operating systems. It supports the standard SQL. It supports several access methods including the Microsoft\u2019s own ADO.NET. It supports many programming languages. It supports stored procedures. It supports triggers. It supports foreign keys.<\/p>\n<p class=\"import-Normal\">#10 SQLite is a widely used embeddable relational DBMS. The initial release was in 2000. The current release is 3.46.2 (August 13, 2024). Dwayne Richard Hipp has put this into the public domain. It runs with any operating system. It supports SQL, but it does not fully support the SQL-92 standard. It supports several access methods including the Microsoft\u2019s own ADO.NET. It supports many programming languages. It does not support stored procedures. It supports triggers. It supports foreign keys.<\/p>\n<h3>Overview of Some Non-Relational DBMS Schemes<\/h3>\n<p class=\"import-Normal\">DBMSs that are designed to handle and to store large volumes of unstructured and semi structured data are known as \u201c<em>NoSQL<\/em>\u201d or as \u201cnon-relational\u201d databases. The term has evolved to mean \u201cnot only SQL\u201d since some DBMSs include other options for working with the data. Those DBMS that can handle both NoSQL and traditional relational DBMS are now known as \u201c<em>NewSQL<\/em>.\u201d<\/p>\n<p class=\"import-Normal\">NoSQL has six advantages:<\/p>\n<ul>\n<li>High scalability<\/li>\n<li>Flexibility<\/li>\n<li>High availability<\/li>\n<li>Performance<\/li>\n<li>Cost-effectiveness<\/li>\n<li>Agility<\/li>\n<\/ul>\n<p class=\"import-Normal\">NoSQL has ten disadvantages:<\/p>\n<ul>\n<li>Lack of standardization<\/li>\n<li>Lack of ACID compliance<\/li>\n<li>Narrow focus<\/li>\n<li>Open source<\/li>\n<li>Lack of support for complex queries<\/li>\n<li>Lack of maturity<\/li>\n<li>Management challenge<\/li>\n<li>GUI is not available<\/li>\n<li>Weakness in performing backups<\/li>\n<li>Large document size.<\/li>\n<\/ul>\n<p class=\"import-Normal\">NewSQL on the surface appears to be a perfect combination of NoSQL and of traditional relational DBMS. But there are three issues:<\/p>\n<ol>\n<li>NewSQL offers only partial access to the rich resources of a traditional relational DBMS.<\/li>\n<li>NewSQL may cause problems for in-memory architectures when the volume exceeds the available memory.<\/li>\n<li>Users of the NewSQL DBMS need to understand the traditional relational DBMS.<\/li>\n<\/ol>\n<p class=\"import-Normal\">Geeks for Geeks listed four types. DB-Engines listed 15 types. We will look at the types as defined by DB-Engines.<\/p>\n<p class=\"import-Normal\"><strong>Columnar.<\/strong> DB-Engines listed this DBMS, but does not explain it. It has only one example.<\/p>\n<ul>\n<li>GridGain is an example of this approach. It has a popularity ranking of 150 and thus was not covered elsewhere in this chapter.<\/li>\n<\/ul>\n<p class=\"import-Normal\"><strong>Content <\/strong><strong>S<\/strong><strong>tores.<\/strong> This is also known as \u201ccontent repositories.\u201d It is specialized for the handling of digital content such as text, pictures, and videos. It stores metadata on each item.<\/p>\n<ul>\n<li>Apache Jackrabbit is an example of this approach. It has a popularity ranking of 64 and thus was not covered elsewhere in this chapter.<\/li>\n<\/ul>\n<p class=\"import-Normal\"><strong>Document.<\/strong> This is also known as \u201cdocument-oriented database systems.\u201d These are characterized by the lack of a schema for organizing the data. This approach means that:<\/p>\n<ul>\n<li>Records do not need to have a uniform structure, i.e. different records may have different columns.<\/li>\n<li>The types of the values of individual columns can be different for each record.<\/li>\n<li>Columns can have more than one value (arrays).<\/li>\n<li>Records can have a nested structure.<\/li>\n<\/ul>\n<ul>\n<li>MongoDB is an example of this approach.<\/li>\n<\/ul>\n<p class=\"import-Normal\"><strong>Event Stores.<\/strong> This implements the concept of event sourcing. This uses a timestamp in order to create a series of events for an object. This scheme is unique in that it stores the history. This scheme does not support making changes to an object. Nor does it support deleting any of the events. This could be used to support snapshots of something.<\/p>\n<ul>\n<li>EventStoreDB is an example of this approach. It has a popularity ranking of 181 and thus was not covered elsewhere in this chapter.<\/li>\n<\/ul>\n<p class=\"import-Normal\"><strong>Graph DBMS.<\/strong> This is also known as \u201cgraph-oriented DBMS\u201d or \u201cgraph database.\u201d Data is presented as nodes and edges with a relationship between the nodes. Direct access to a node based on an attribute value is not possible.<\/p>\n<ul>\n<li>Neo4j is an example of this approach. It has a popularity ranking of 21 and thus was not covered elsewhere in this chapter.<\/li>\n<\/ul>\n<p class=\"import-Normal\"><strong>Key-value<\/strong><strong>.<\/strong> This is a very simple DBMS. Each piece of data has a key that is used to locate it. It is not adequate for any complex application. Other schemes such as document stores and wide column stores may incorporate the key-value scheme.<\/p>\n<ul>\n<li>Redis is an example of this approach.<\/li>\n<\/ul>\n<p class=\"import-Normal\"><strong>Native XML DBMS.<\/strong> This may be abbreviated as \u201cNXD.\u201d This can represent hierarchical data. It works with special XML specific query languages.<\/p>\n<ul>\n<li>MarkLogic is an example of this approach. It has a popularity ranking of 70 and thus was not covered elsewhere in this chapter.<\/li>\n<\/ul>\n<p class=\"import-Normal\"><strong>Navigational DBMS.<\/strong> This allows access to data sets via linked records only. It is an old scheme from the 1960s.<\/p>\n<ul>\n<li>IMS is an example of this approach. It has a popularity ranking of 146 and thus was not covered elsewhere in this chapter.<\/li>\n<\/ul>\n<p class=\"import-Normal\"><strong>Object <\/strong><strong>O<\/strong><strong>riented DBMS.<\/strong> This is also known as \u201cobject databases.\u201d This follows the object-oriented data model as used in object-oriented programming languages. Instead of being a row in a table, the data pieces are stored in a single object. No complex joins would be needed.<\/p>\n<ul>\n<li>InterSystems IRIS is an example of this approach. It has a popularity ranking of 91 and thus was not covered elsewhere in this chapter<\/li>\n<\/ul>\n<p class=\"import-Normal\"><strong>RDF <\/strong><strong>S<\/strong><strong>tores.<\/strong> RDF stands for \u201cResource Description Framework.\u201d This was created for describing metadata of IT resources. Now it is used to store triples of data as in subject-predicate-object. This is a subclass of the graph DBMS.<\/p>\n<ul>\n<li>MarkLogic is an example of this approach. It has a popularity ranking of 70 and thus was not covered elsewhere in this chapter.<\/li>\n<\/ul>\n<p class=\"import-Normal\"><strong>Search <\/strong><strong>E<\/strong><strong>ngine<\/strong><strong>.<\/strong> This is a true NoSQL DBMS. The typical offering has the following features:<\/p>\n<ul>\n<li>Support for complex search expressions<\/li>\n<li>Full text search<\/li>\n<li>Stemming (reducing inflected words to their stem)<\/li>\n<li>Ranking and grouping of search results<\/li>\n<li>Distributed search for high scalability<\/li>\n<\/ul>\n<ul>\n<li>Ellasticsearch is an example of this approach.<\/li>\n<\/ul>\n<p class=\"import-Normal\"><strong>Spatial DBMS.<\/strong> This is able to efficiently store, to manipulate, and to query spatial data. Spatial data represents objects in a geometric space such as points or as polygons. This is used to describe locations on the surface of the earth and is used in geographic information systems (GIS).<\/p>\n<ul>\n<li>PostGIS is an example of this approach. It has a popularity ranking of 290 and thus was not covered elsewhere in this chapter.<\/li>\n<\/ul>\n<p class=\"import-Normal\"><strong>Time <\/strong><strong>S<\/strong><strong>eries DBMS.<\/strong> It is optimized for handling time series data. Each entry has a timestamp. This would be ideal for handling data from sensors, smart meters, or from other Internet of Things products.<\/p>\n<ul>\n<li>InfluxDB is an example of this approach. It has a popularity ranking of 28 and thus was not covered elsewhere in this chapter.<\/li>\n<\/ul>\n<p class=\"import-Normal\"><strong>Vector DBMS.<\/strong> This is also known as \u201cvector databases.\u201d This is optimized for efficient storage, indexing, and querying of high-dimensional vector data. Specialized algorithms and data structures are used for supporting search for machine learning, for data mining. These DBMSs can handle multiple data types, such as numerical, text, and binary.<\/p>\n<ul>\n<li>Kdb is an example of this approach. It has a popularity ranking of 45 and thus was not covered elsewhere in this chapter.<\/li>\n<\/ul>\n<p class=\"import-Normal\"><strong>Wide <\/strong><strong>C<\/strong><strong>olumn<\/strong> <strong>S<\/strong><strong>tores.<\/strong> It is also known as \u201cextensible record stores.\u201d It can store data in records with an ability to hold very large numbers of dynamic columns. These are not fixed. So a record could have billions of columns. This is like a two-dimensional key-value store scheme. These are schema free.<\/p>\n<ul>\n<li>Apache Cassandra is an example of this approach. It has a popularity ranking of 11 and thus was not covered elsewhere in this chapter.<\/li>\n<\/ul>\n<h2>Reviewing DBMSs for the Rest of the Textbook<\/h2>\n<p class=\"import-Normal\">Database courses have been taught with Oracle, with MySQL, with PostgreSQL, with Microsoft Access (#13 in September 2024), Microsoft Azure SQL Database (#16 in September 2024), and with Java Derby (not ranked).<\/p>\n<p class=\"import-Normal\">Ideally, the selected DBMS should be similar to what is used in the real world. Companies want students that can apply their knowledge immediately on the job. That is why programming languages such as Java, C++, C#, and other languages are taught instead of Pascal<sup class=\"import-FootnoteReference\"><a id=\"sdfootnote11anc\" href=\"#sdfootnote11sym\">11<\/a><\/sup>.<\/p>\n<p class=\"import-Normal\">The following are DBMSs that could be used in an academic environment.<\/p>\n<h3>Oracle<\/h3>\n<p class=\"import-Normal\">Oracle is an expensive relational DBMS. The following is based on a website with a date of May 22, 2024:<\/p>\n<ul>\n<li>Oracle Database Enterprise Edition \u2013 License price for processor is $47,500.<\/li>\n<li>Oracle Database Standard Edition 2 \u2013 License price for processor is $17,500.<\/li>\n<li>Personal Edition \u2013 License price per user is $400.<\/li>\n<li>Mobile Server \u2013 The license price for processor is $23,000.<\/li>\n<li>NoSQL Database Enterprise Edition \u2013 License price for processor is $10,000.<\/li>\n<\/ul>\n<p class=\"import-Normal\">The license price is based on used processor cores. So if a processor has four cores, then the above prices need to be increased by a factor of four.<\/p>\n<h3>MySQL<\/h3>\n<p class=\"import-Normal\">MySQL is a relational DBMS. Several websites have long lists of issues with MySQL. The following are the important issues:<\/p>\n<ul>\n<li>MySQL is inefficient in handling very large databases.\n<ul>\n<li>MySQL is hard to scale. It doesn\u2019t support auto <em>s<\/em><em>harding<\/em><sup class=\"import-FootnoteReference\"><a id=\"sdfootnote12anc\" href=\"#sdfootnote12sym\">12<\/a><\/sup>. One needs to maintain the nodes manually.<\/li>\n<\/ul>\n<\/li>\n<li>MySQL has limited support for advanced SQL features.\n<ul>\n<li>Limited support for stored procedures and triggers.<\/li>\n<\/ul>\n<\/li>\n<li>MySQL is inefficient in handling transactions as it is prone to data corruption.<\/li>\n<li>MySQL has limited security features.<\/li>\n<li>MySQL is resource intensive for complex queries.<\/li>\n<li>The development is not community driven.\n<ul>\n<li>Support and documentation are weak.<\/li>\n<\/ul>\n<\/li>\n<li>MySQL does not have good developing and debugging tools as compared to other databases.<\/li>\n<li>It does not support SQL check constraints.<\/li>\n<li>It does not support ROLE, COMMIT, and stored procedures in versions less than 5.0.<\/li>\n<li>MySQL has weak stored procedures.<\/li>\n<li>It is very difficult to install a consistent database cluster with MySQL.<\/li>\n<li>Group by function does not work correctly.<\/li>\n<li>Some errors are misleading.<\/li>\n<li>Correlated Subquery does not work as intended.<\/li>\n<\/ul>\n<p class=\"import-Normal\">Daniel Raymond wrote that the solution to fixing 1 is to use clustering or to split the database into smaller pieces or add Hadoop<sup class=\"import-FootnoteReference\"><a id=\"sdfootnote13anc\" href=\"#sdfootnote13sym\">13<\/a><\/sup> support or switch to a different DBMS such as MongoDB. He wrote that the solution to fixing 2 is to upgrade to a paid version or to a different DBMS such as PostgreSQL. He wrote that the solution to fixing 3 is to use a storage engine that supports row level locking or optimizing the database queries. He wrote that the solution to fixing 4 is to upgrade to the enterprise edition. He wrote that the solution to fixing 5 is to optimize the queries or to use a more efficient database engine. He wrote that the solution to fixing 6 is to seek support from third-party vendors and from MySQL user communities or hire an experienced database professional.<\/p>\n<h3>PostgreSQL<\/h3>\n<p class=\"import-Normal\">PostgreSQL is an open-source relational DBMS that is very popular. This is due to a community of devoted and talented software engineers and to the liberal open-source license. It has several components. It is difficult to configure and to maintain high availability and obtain optimal performance. PostgreSQL is not complete out of the box. One must determine what is needed and add those pieces. Curt Kolovson listed the components that must be added to a PostgreSQL installation:<\/p>\n<ul>\n<li>Monitoring tools for uptime and performance<\/li>\n<li>Scale-out distributed processing based on partitioning or sharding<\/li>\n<li>Connection pooling<\/li>\n<li>HA clustering<\/li>\n<li>Replication management<\/li>\n<li>Disaster recovery (DR) solutions<\/li>\n<li>Backup solutions<\/li>\n<li>Log archiving<\/li>\n<\/ul>\n<p class=\"import-Normal\">The actual PostgreSQL software has some issues:<\/p>\n<ul>\n<li>Software architecture based on process-per-connection can lead to inefficient resource utilization.<\/li>\n<li>Too many tunable parameters, many which are poorly documented, and some with poorly chosen default values.<\/li>\n<li>Garbage-collection implementation related to its multi-version concurrency control (MVCC) can lead to database bloat and performance problems.<\/li>\n<li>Query optimizer (\u201cplanner\u201d) can make very bad decisions, leading to performance problems that may be hard to diagnose and fix.<\/li>\n<li>Troubleshooting is sometimes very difficult.<\/li>\n<\/ul>\n<p class=\"import-Normal\">To compound the problems, there are many variants of PostgreSQL and many database-as-a-service (DBaaS) offerings that claim to be PostgreSQL compatible, but are not. To have a successful operation requires having many highly knowledgeable developers or consultants.<\/p>\n<h3>MongoDB<\/h3>\n<p class=\"import-Normal\">MongoDB is well-suited for some applications such as for web applications, for e-commerce, for big data, for demographic and biometric data, and for synchronization. The disadvantages come from the way that MongoDB handles data.<\/p>\n<ul>\n<li>It cannot handle situations when multiple things must be done across lots of data.<\/li>\n<li>It is not fully <em>ACID<\/em> compliance. That is, it supports Atomicity, Consistency, Isolation, and Durability (ACID) at the document level. It cannot support ACID across multiple documents.<\/li>\n<li>It does not support SQL join operations.<\/li>\n<li>It uses value pairs and the result is that there are some redundancy introduced.<\/li>\n<li>It has a maximum document size of 16 MB.<\/li>\n<\/ul>\n<p class=\"import-Normal\">The main emphasis of this textbook is the relational DBMS and MongoDB is not a relational DBMS.<\/p>\n<h3>Redis<\/h3>\n<p class=\"import-Normal\">Remote Dictionary Server (Redis) is a data storage system that is designed to be very quick. This is ideal for organizations that have data that must be written quickly and queried quickly. Example applications are caching, chat and messaging, game leaderboards, session storage, and live streaming.<\/p>\n<p class=\"import-Normal\">Redis is well-suited for some applications such as web applications, e-commerce, big data, demographic and biometric data, and for synchronization. The disadvantages come from the way that it handles data.<\/p>\n<ul>\n<li>It requires a huge amount of memory.<\/li>\n<li>It uses commands instead of a query language to find data.<\/li>\n<li>No support for relational algebra.<\/li>\n<li>No support for ad-hoc queries.<\/li>\n<li>Security is done at the instance level.<\/li>\n<li>It is not scalable. It uses a CPU core in a single-threaded mode. Scalability is obtained by deploying more Redis instances.<\/li>\n<li>Some functions are pushed to the client. (Traditional relational DBMSs handle many tasks on the server side.)<\/li>\n<\/ul>\n<p class=\"import-Normal\">The main emphasis of this textbook is the relational DBMS and Redis is not a relational DBMS.<\/p>\n<h3>Snowflake<\/h3>\n<p class=\"import-Normal\">Snowflake is a data warehouse. This is ideal for organizations that need a platform that offers unique solutions that a traditional data platform cannot provide. It requires a huge amount of memory<\/p>\n<ul>\n<li>It does not encourage the data to be structured.<\/li>\n<li>It does not provide an easy means of migrating data. The work around is Snowpipe, but this is not ideal for most situations.<\/li>\n<li>It has no data constraints. That is, if a company is using a service that bills for data usage, Snowflake can easily exceed a ceiling.\n<ul>\n<li>The pay-as-you-go pricing can result in a bill that is greater than Amazon Redshift. Snowflake pricing is based on usage, not actual storage.<\/li>\n<\/ul>\n<\/li>\n<li>Users cannot deploy Snowflake within the company\u2019s server room.<\/li>\n<li>It has a small community of experienced users.<\/li>\n<\/ul>\n<p class=\"import-Normal\">The main emphasis of this textbook is the relational DBMS and Snowflake is not a relational DBMS.<\/p>\n<h3>Elasticsearch<\/h3>\n<p class=\"import-Normal\">Elasticsearch is a distributed search and analytics engine. This is ideal for organizations that need a platform that permits many users to access a database at the same time while isolating their transactions. There are some issues:<\/p>\n<ul>\n<li>It has a complex setup. And maintenance is also complex.<\/li>\n<li>It is resource intensive and requires a huge amount of CPU, of memory, and of storage.<\/li>\n<li>It prioritizes search performance and scalability over data consistency and durability.<\/li>\n<li>It has a steep learning curve. One needs to under concepts such as indexing, querying, mapping, and cluster management.<\/li>\n<\/ul>\n<p class=\"import-Normal\">The main emphasis of this textbook is the relational DBMS and Elasticsearch is not a relational DBMS.<\/p>\n<h3>IBM Db2<\/h3>\n<p class=\"import-Normal\">IBM Db2 is a relational DBMS. This is ideal for organizations that need scalability, high security, high compatibility, high flexibility, and high availability. However, IBM Db2 has four disadvantages.<\/p>\n<ul>\n<li>It is expensive. Oracle, Microsoft SQL Server, and MySQL would be less expensive.<\/li>\n<li>It is very complex. It requires individuals with specialized expertise for implementing and for managing.<\/li>\n<li>It has a performance drop for certain types of queries.<\/li>\n<li>It needs regular maintenance and updates in order to have optimal performance and security.<\/li>\n<\/ul>\n<p class=\"import-Normal\">The main emphasis of this textbook is the relational DBMS and IBM Db2 is a relational DBMS. The IBM Db2 Community Edition is an option. It has the same core capabilities, but it is restricted to a maximum of four virtual processor cores and 16 GB of instance memory. There is no enterprise-level support.<\/p>\n<h3>SQLite<\/h3>\n<p class=\"import-Normal\">SQLite is a relational DBMS. This is ideal for a desktop application such as version control systems, financial analysis tools, media cataloging and editing suites, CAD<sup class=\"import-FootnoteReference\"><a id=\"sdfootnote14anc\" href=\"#sdfootnote14sym\">14<\/a><\/sup> packages, recording keeping programs, and so on. However, SQLite has at least six major disadvantages.<\/p>\n<ul>\n<li>It is limited to handling low to medium traffic HTTP requests.<\/li>\n<li>Its database size is restricted to two GB.\n<ul>\n<li>It may struggle when dealing with large datasets.<\/li>\n<\/ul>\n<\/li>\n<li>It has limited ability to scale up.<\/li>\n<li>It has limited functionality.\n<ul>\n<li>It does not support stored procedures nor user-defined functions.<\/li>\n<\/ul>\n<\/li>\n<li>It lacks user management features.\n<ul>\n<li>It does not handle user authentication and authorization.<\/li>\n<\/ul>\n<\/li>\n<li>It cannot be used in a centralized control environment.\n<ul>\n<li>It can only be used by one writer at a time.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p class=\"import-Normal\">The main emphasis of this textbook is the relational DBMS and SQLite is a relational DBMS, but SQLite is too limited.<\/p>\n<h2>The Reasons for Selecting Microsoft SQL Server Developer Edition<\/h2>\n<p class=\"import-Normal\">DataNumen considers the Microsoft SQL Server to be the best choice for \u201clarge enterprises for its capability of handling large amounts of data, and its wide array of built in features for data analysis and reporting.\u201d<\/p>\n<p class=\"import-Normal\">Microsoft SQL Server Developer edition is exactly like the Microsoft SQL Server Enterprise edition. The difference is that the Developer edition is free whereas the Enterprise edition is not.<\/p>\n<p class=\"import-Normal\">The Microsoft SQL Server Express edition is a free, deployable relational DBMS. However, it has some limitations and some missing components. For more information see<\/p>\n<p class=\"import-Normal\" style=\"text-indent: 36pt\">Alexandra. \u201cWhat is SQL Server Express? Definition, Benefits, and Limitations of SQL Server Express,\u201d Stackify, June 19, 2024. <a class=\"rId10\" href=\"https:\/\/stackify.com\/what-is-sql-server-express\/\"><span class=\"import-Hyperlink\">https:\/\/stackify.com\/what-is-sql-server-express\/<\/span><\/a><\/p>\n<p class=\"import-Normal\">Express DB has a web page that has a very detailed listing of the features of each edition. Look in the reference for \u201cSQL Server Edition Feature Comparison\u201d information.<\/p>\n<h3>Advantages of Using Microsoft SQL Server<\/h3>\n<ul>\n<li>Extensive online product documentation.<\/li>\n<li>Can be used on a Linux platform.<\/li>\n<li>Many career opportunities<\/li>\n<li>Thriving on-line community.<\/li>\n<li>Works with many useful tools:\n<ul>\n<li>SQL Server Management Studio<\/li>\n<li>Azure Data Studio<\/li>\n<li>SQL Server Data Tools<\/li>\n<li>SQL Server Profiler<\/li>\n<\/ul>\n<\/li>\n<li>Increased data security.<\/li>\n<li>Installing and configuring Microsoft SQL Server is fairly easy to do.<\/li>\n<li>Support for data recovery.<\/li>\n<\/ul>\n<h3>Disadvantages of Using Microsoft SQL Server<\/h3>\n<ul>\n<li>In order to interact with the SQL Server databases, one must use the Transact-SQL (T-SQL) language, which is a Microsoft extension to the SQL standard.<\/li>\n<li>When switching to the Enterprise edition, one will have to deal with the difficult and always changing licensing process.\n<ul>\n<li>The Enterprise edition can cost as much as $14,256 for a per-core license.<\/li>\n<\/ul>\n<\/li>\n<li>Larger databases may require following complex performance tuning steps.<\/li>\n<li>There is no native support for source control.<\/li>\n<li>Vendor lock-in. Microsoft SQL Server is not compatibility with non-Microsoft products.<\/li>\n<li>New versions of Microsoft SQL Server may not run on older hardware.<\/li>\n<li>If you uninstall the software and it is not a complete removal, attempting to install it again may result in failure<sup class=\"import-FootnoteReference\"><a id=\"sdfootnote15anc\" href=\"#sdfootnote15sym\">15<\/a><\/sup>.<\/li>\n<\/ul>\n<h2>Downloading and Installing Microsoft SQL Server and Microsoft SQL Server Management Studio with Azure Data Studio<\/h2>\n<p class=\"import-Normal\">The following information assumes you are using a Windows operating system. Microsoft SQL Server can be installed on other platforms. The images will be similar to the Windows installation.<\/p>\n<p class=\"import-Normal\">In September 2024, the current version is SQL Server 2022. It appears that the Microsoft SQL Server team has an irregular release schedule. Here is a table that shows the release dates for SQL Server 2005 through SQL Server 2022:<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image1-3.png\" alt=\"image\" width=\"624px\" height=\"293.133333333333px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.3 SQL Server release dates and lifecycle as of September 2024. Source: <a class=\"rId12\" href=\"https:\/\/www.mssqltips.com\/sqlservertutorial\/9217\/sql-server-release-dates-and-lifecycle\/\"><span class=\"import-Hyperlink\">https:\/\/www.mssqltips.com\/sqlservertutorial\/9217\/sql-server-release-dates-and-lifecycle\/<\/span><\/a><\/p>\n<h3>Finding the Microsoft Landing Web Page for SQL Server<\/h3>\n<p class=\"import-Normal\">Use a search engine such as Microsoft Bing<sup class=\"import-FootnoteReference\"><a id=\"sdfootnote16anc\" href=\"#sdfootnote16sym\">16<\/a><\/sup> and type in \u201cMicrosoft SQL Server 2022.\u201d Ignore entries for Microsoft Azure and for third party websites. In September 2024, Microsoft Bing had the following display:<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image2-2.png\" alt=\"image\" width=\"609.085039370079px\" height=\"302.042099737533px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.3 Extract from the Microsoft Bing search engine for the search phrase \u201cMicrosoft SQL Server 2022.\u201d<\/p>\n<p class=\"import-Normal\">The top of the landing page may look like the following:<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image3-2.png\" alt=\"image\" width=\"624px\" height=\"311.533333333333px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.4 Microsoft SQL Server 2022 landing web page. Source: <a class=\"rId15\" href=\"https:\/\/www.microsoft.com\/en-us\/sql-server\/sql-server-2022\"><span class=\"import-Hyperlink\">https:\/\/www.microsoft.com\/en-us\/sql-server\/sql-server-2022<\/span><\/a><\/p>\n<h3>Finding the Microsoft SQL Server Developer Edition<\/h3>\n<p class=\"import-Normal\">Click on the small black box in the upper right corner. You will be brought to the download web page:<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image4-4.png\" alt=\"image\" width=\"624px\" height=\"439.733333333333px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.5 Microsoft SQL Server 2022 download web page. Source: <a class=\"rId17\" href=\"https:\/\/www.microsoft.com\/en-us\/sql-server\/sql-server-downloads\"><span class=\"import-Hyperlink\">https:\/\/www.microsoft.com\/en-us\/sql-server\/sql-server-downloads<\/span><\/a><\/p>\n<p class=\"import-Normal\">Click on the download now button for Developer. In Microsoft Edge, a floating download menu may appear.<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image5-4.png\" alt=\"image\" width=\"354.049448818898px\" height=\"101.01406824147px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.6 Microsoft Edge download menu.<\/p>\n<p class=\"import-Normal\">Click on the open button. When prompted, install to your Windows computer instead of to the virtual machine in Azure.<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image6-4.png\" alt=\"image\" width=\"436.060892388451px\" height=\"261.036430446194px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.7 Windows or Virtual Machine in Azure option screen.<\/p>\n<p class=\"import-Normal\">Note: You could download the software and execute it from your local computer. The benefit of doing this is that you could mount the ISO image on your computer. Then you can execute the software with administrator privileges. You would use setup.exe. It would take you to the SQL Server Installation Center (Figure 8.12).<\/p>\n<p class=\"import-Normal\">You will see three options. Go with the Custom option.<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image7-4.png\" alt=\"image\" width=\"624px\" height=\"498.933333333333px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.8 SQL Server 2022 Developer Edition installation option screen.<\/p>\n<p class=\"import-Normal\">Accept the default download location.<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image8-2.png\" alt=\"image\" width=\"624px\" height=\"497.533333333333px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.9 SQL Server 2022 Developer Edition media download target location option screen.<\/p>\n<p class=\"import-Normal\">The download file may be corrupted (Figure 8.11). If so, then an error message will appear. The solution is to restart the download with a fresh file.<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image9.png\" alt=\"image\" width=\"624px\" height=\"494.8px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.10 SQL Server 2022 Developer Edition downloading package screen.<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image10-2.png\" alt=\"image\" width=\"624px\" height=\"487.2px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.11 SQL Server 2022 Developer Edition possible error message screen.<\/p>\n<p class=\"import-Normal\">The next message screen shows the SQL Server Installation Center.<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image11-2.png\" alt=\"image\" width=\"624px\" height=\"470.333333333333px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.12 SQL Server Installation Center screen.<\/p>\n<p class=\"import-Normal\">We will explore these:<\/p>\n<ul>\n<li>\u201cHardware and Software Requirements\u201d takes one to a hyper link with the title of \u201cSQL Server 2022: Hardware and software requirements.\u201d<\/li>\n<li>\u201cSecurity Documentation\u201d takes one to a hyper link with the title of \u201cSecurity for SQL Server Database Engine and Azure SQL Database\u201d<\/li>\n<li>\u201cOnline Release Notes\u201d takes one to a hyper link with the title of \u201cSQL Server 2022 release notes.\u201d<\/li>\n<li>\u201cAzure extension for SQL Server (New)\u201d takes one to a hyper link with the title of \u201cAzure Arc-enabled SQL Server.\u201d<\/li>\n<li>\u201cSystem Configuration checker\u201d takes one to a floating dialog box:<\/li>\n<\/ul>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image12-2.png\" alt=\"image\" width=\"624px\" height=\"548.133333333333px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.13 SQL System Configuration Checker floating dialog box.<\/p>\n<ul>\n<li>\u201cDownload Data Migration Assistant (DMA)\u201d does not seem to be needed for our purposes.<\/li>\n<li>\u201cOnline Installation Help\u201d would launch the documentation.<\/li>\n<li>\u201cHow to Get Started with SQL Server Failover Clustering\u201d assumes that there is more than one server involved. We are not set-up that way.<\/li>\n<li>\u201cUpgrade Documentation\u201d is of no interest to us since we did a clean install of SQL Server 2022.<\/li>\n<li>\u201cDownload SQL Server Migration Assistant (SSSMA)\u201d is of no interest to us since we did not have another database system to bring over.<\/li>\n<li>\u201cHow to apply SQL Server updates\u201d takes one to the latest updates and version history for SQL Server.<\/li>\n<li>See <a class=\"rId26\" href=\"https:\/\/learn.microsoft.com\/en-us\/troubleshoot\/sql\/releases\/find-my-sql-version\"><span class=\"import-Hyperlink\">https:\/\/learn.microsoft.com\/en-us\/troubleshoot\/sql\/releases\/find-my-sql-version<\/span><\/a> in order to find out which version you are running. You may need to install an update.<\/li>\n<\/ul>\n<h3>Launching the Actual Installation of the Microsoft SQL Server Developer Edition<\/h3>\n<p class=\"import-Normal\">From the SQL Server Installation Center screen, select \u201cInstallation.\u201d<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image13-1.png\" alt=\"image\" width=\"544px\" height=\"402.988556430446px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.14 The installation tab and menu from the SQL Server Installation Center.<\/p>\n<p class=\"import-Normal\">Select \u201cNew SQL Server standalone installation or add features to an existing installation.\u201d This will launch a wizard. This has a left-hand side menu. You may review the \u201cEdition,\u201d the \u201cLicenses Terms,\u201d the \u201cGlobal Rules,\u201d the \u201cProduct Updates,\u201d and the \u201cInstall Setup Files.\u201d Our interest is in the \u201cInstall Rules.\u201d<\/p>\n<h4>The Edition Screen<\/h4>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image14-1.png\" alt=\"image\" width=\"624px\" height=\"548.133333333333px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.15 The edition screen with the Developer edition selected.<\/p>\n<h4>The License Terms Screen<\/h4>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image15-2.png\" alt=\"image\" width=\"624px\" height=\"548.133333333333px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.16 The license terms screen.<\/p>\n<p class=\"import-Normal\">In the early days of SQL Server 2022, the \u201cMicrosoft Update\u201d screen does not appear. For example of this screen, see the Daniel Calbimonte article.<\/p>\n<h4>The Install Rules Screen<\/h4>\n<p class=\"import-Normal\">The \u201cInstall Rules\u201d will execute.<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image16-2.png\" alt=\"image\" width=\"488.571128608924px\" height=\"429.166719160105px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.17 The \u201cInstall Rules\u201d from the SQL Server 2022 Setup Wizard.<\/p>\n<p class=\"import-Normal\">The warning on the firewall is not a concern for a stand-alone installation.<\/p>\n<h4>The Azure Extension for SQL Server Screen<\/h4>\n<p class=\"import-Normal\">The \u201cAzure Extension for SQL Server\u201d menu provides the means to connect to Microsoft\u2019s own cloud platform. We will not be doing anything with this. So uncheck the \u201cAzure Extension for SQL Server.\u201d<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image17-2.png\" alt=\"image\" width=\"488.571128608924px\" height=\"429.166719160105px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.18 The \u201cAzure Extension for SQL Server\u201d from the SQL Server 2022 Setup Wizard.<\/p>\n<h4>Feature Selection Screen<\/h4>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image18-1.png\" alt=\"image\" width=\"624px\" height=\"548.133333333333px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.19 The \u201cFeature Selection\u201d from the SQL Server 2022 Setup Wizard.<\/p>\n<p class=\"import-Normal\">We will install the database engine and the full-text search feature<sup class=\"import-FootnoteReference\"><a id=\"sdfootnote17anc\" href=\"#sdfootnote17sym\">17<\/a><\/sup>. Select these two checkboxes. Hit \u201cNext.\u201d<\/p>\n<h4>Instance Configuration Screen<\/h4>\n<p class=\"import-Normal\">Explore the \u201cInstance Configuration\u201d from the SQL Server 2022 Setup Wizard. Notice the default name of \u201cMSSQLSERVER.\u201d This will be needed for the log-in screen.<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image19-1.png\" alt=\"image\" width=\"624px\" height=\"548.133333333333px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.20 The \u201cInstance Configuration\u201d from the SQL Server 2022 Setup Wizard.<\/p>\n<p class=\"import-Normal\">We are going with the default instance. Hit the \u201cNext\u201d button.<\/p>\n<h4>Server Configuration Screen<\/h4>\n<p class=\"import-Normal\">The \u201cServer Configuration\u201d provides information on the server configuration. The check box improves the performance, but there is a security risk. Until the old data and log files are overwritten, a hacker could read the old data. Microsoft recommends enabling instant file initialization as the benefits outweigh the security risk. The use of <em>discretionary access control list (DACL)<\/em> on the file should help to address this risk, because DACL allows file access only to the SQL Server service account and to the local administrator.<\/p>\n<p class=\"import-Normal\">We will go with the default setting and not do anything with the checkbox.<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image20-1.png\" alt=\"image\" width=\"488.571128608924px\" height=\"429.166719160105px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.21 The \u201cServer Configuration\u201d from the SQL Server 2022 Setup Wizard.<\/p>\n<h4>Database Engine Configuration Screen<\/h4>\n<p class=\"import-Normal\">In the \u201cDatabase Engine Configuration\u201d menu, select \u201cWindows authentication mode.\u201d<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image21-1.png\" alt=\"image\" width=\"488.571128608924px\" height=\"429.166719160105px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.22 The \u201cDatabase Engine Configuration\u201d from the SQL Server 2022 Setup Wizard.<\/p>\n<p class=\"import-Normal\">There are six tabs.<\/p>\n<p class=\"import-Normal\">The \u201cData Directories\u201d tab provides information on where these resources are stored.<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image22-1.png\" alt=\"image\" width=\"488.571128608924px\" height=\"429.166719160105px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.23 The \u201cData Directories\u201d tab in the \u201cDatabase Engine Configuration\u201d from the SQL Server 2022 Setup Wizard.<\/p>\n<p class=\"import-Normal\">The \u201cTempDB\u201d tab shows the configuration. No action is needed.<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image23-1.png\" alt=\"image\" width=\"488.571128608924px\" height=\"429.166719160105px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.24 The \u201cTempDB\u201d tab in the \u201cDatabase Engine Configuration\u201d from the SQL Server 2022 Setup Wizard.<\/p>\n<p class=\"import-Normal\">The \u201cMaxDOP\u201d tab shows information about the number of detected cores. Figure 8.25 shows a laptop with four cores.<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image24-1.png\" alt=\"image\" width=\"444.279895013123px\" height=\"371.427401574803px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.25 The \u201cMaxDOP\u201d tab in the \u201cDatabase Engine Configuration\u201d from the SQL Server 2022 Setup Wizard.<\/p>\n<p class=\"import-Normal\">The \u201cMemory\u201d tab provides information about the memory. No action is needed.<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image25-1.png\" alt=\"image\" width=\"488.571128608924px\" height=\"429.166719160105px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.26 The \u201cMemory\u201d tab in the \u201cDatabase Engine Configuration\u201d from the SQL Server 2022 Setup Wizard.<\/p>\n<p class=\"import-Normal\">The \u201cFILESTREAM\u201d tab has some check boxes. This is used to store files outside of a database such as videos, PDFs, Word files, Excel files, and other items. For our purposes, we will not be working with these types of files.<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image26-1.png\" alt=\"image\" width=\"624px\" height=\"519.866666666667px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.27 The \u201cFILESTREAM\u201d tab in the \u201cDatabase Engine Configuration\u201d from the SQL Server 2022 Setup Wizard.<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image27.png\" alt=\"image\" width=\"624px\" height=\"477.666666666667px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.28 Hitting the \u201cNext\u201d button without an entry in the \u201cSpecify SQL Server administrators\u201d box.<\/p>\n<p class=\"import-Normal\">If you hit the \u201cNext\u201d button without adding a user, an error message will appear (Figure 8.28). You need to add yourself at least. See Figure 8.29.<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image28-4.png\" alt=\"image\" width=\"624px\" height=\"548.133333333333px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.29 An example of an entry in the \u201cSpecify SQL Server administrators\u201d box. This is the user\u2019s name or the computer\u2019s name.<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image29-1.png\" alt=\"image\" width=\"555.077480314961px\" height=\"257.035905511811px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.30 Close up of the \u201cAdd Current User\u201d screen.<\/p>\n<h4>Ready to Install Screen<\/h4>\n<p class=\"import-Normal\">Click on the \u201cReady to Install\u201d menu. You can review the long list of options.<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image30.png\" alt=\"image\" width=\"488.571128608924px\" height=\"429.166719160105px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.31 The \u201cReady to Install\u201d screen from the SQL Server 2022 Setup Wizard.<\/p>\n<p class=\"import-Normal\">Click on the \u201cInstall\u201d button in the lower right-hand corner. The display will change to the \u201cInstallation Progress\u201d screen (Figure 8.32).<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image31.png\" alt=\"image\" width=\"488.571128608924px\" height=\"429.166719160105px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.32 The \u201cInstallation Progress\u201d screen from the SQL Server 2022 Setup Wizard.<\/p>\n<h4>Success Screen<\/h4>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image32-1.png\" alt=\"image\" width=\"624px\" height=\"519.866666666667px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.33 The success screen from the SQL Server 2022 Setup Wizard.<\/p>\n<p class=\"import-Normal\">SQL Server can fix some minor issues. If you are viewing an error message about the target principal name being incorrect, then repair take care of this. If you see a message about SQL-Engine_Core_Inst not being configured, repair cannot fix this.<\/p>\n<h3>Installing Additional Components<\/h3>\n<p class=\"import-Normal\">Microsoft provides the option of installing other components. You will need to explore to determine which ones are needed.<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image13-2.png\" alt=\"image\" width=\"544px\" height=\"402.988556430446px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.34 Available components<\/p>\n<p class=\"import-Normal\">Some companies use \u201cReporting Services\u201d whereas other companies use \u201cBusiness Intelligence.<\/p>\n<p class=\"import-Normal\">We will install \u201cSQL Server Management Tools\u201d and \u201cSQL Server Data Tools.\u201d<\/p>\n<p class=\"import-Normal\">We will want to have SQL Server Management Studio. Microsoft explained this:<\/p>\n<p class=\"import-Normal\" style=\"margin-left: 36pt\">SQL Server Management Studio (SSMS) is an integrated environment for managing any SQL infrastructure. Use SSMS to access, configure, manage, administer, and develop all components of SQL Server, Azure SQL Database, Azure SQL Managed Instance, SQL Server on Azure VM, and Azure Synapse Analytics. SSMS provides a single comprehensive utility that combines a broad group of graphical tools with many rich script editors to provide access to SQL Server for developers and database administrators of all skill levels.<\/p>\n<p class=\"import-Normal\">We will want to have the SQL Server Data Tools. Microsoft explained this:<\/p>\n<p class=\"import-Normal\" style=\"margin-left: 36pt\">SQL Server Data Tools (SSDT) is a set of development tools for building SQL Server databases, Azure SQL databases, Analysis Services (AS) data models, Integration Services (IS) packages, and Reporting Services (RS) reports. SSDT allows you to design and deploy SQL objects with the same project concept as other application development tools. The SQL projects capability extends to CI\/CD pipelines, enabling you to automate the build and deployment of your database projects with the SqlPackage CLI.<\/p>\n<h3>Installing SQL Server Management Tools<\/h3>\n<p class=\"import-Normal\">Click on the link. After a delay, a dialog box will appear. Figure 8.29 shows Release 19.1, which contains the Azure Data Studio.<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image33.png\" alt=\"image\" width=\"494.236325459318px\" height=\"429.166719160105px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.35 The welcome screen for installing Microsoft SQL Server Management Studio<\/p>\n<p class=\"import-Normal\">If the installation fails, reboot your computer and try it again. You will see a success message.<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image34.png\" alt=\"image\" width=\"494.458687664042px\" height=\"429.166719160105px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.36 The success screen for installing Microsoft SQL Server Management Studio<\/p>\n<h3>Installing SQL Server Data Tools<\/h3>\n<p class=\"import-Normal\">We will be installing the following tools:<\/p>\n<ul>\n<li>Support for Microsoft Azure SQL Database<\/li>\n<li>SQL Server Database Engine<\/li>\n<li>Reporting Services<\/li>\n<li>Analysis Services<\/li>\n<li>Integration Services<\/li>\n<\/ul>\n<p class=\"import-Normal\">Click on the link.<\/p>\n<p class=\"import-Normal\">If Visual Studio is not present on your computer, then this is needed. We will use this for writing programs to interact with a hosted database.<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image35-1.png\" alt=\"image\" width=\"624px\" height=\"44.6px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.31 Screenshot of Visual Studio 2022<\/p>\n<p class=\"import-Normal\">We will install the community version, because it is free and it is sufficient for our needs.<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image36.png\" alt=\"image\" width=\"624px\" height=\"215px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.37 Screenshot of Visual Studio 2022 three editions<\/p>\n<p class=\"import-Normal\">The Visual Studio Installer will show Figure 8.38. Notice what it has selected to install.<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image37.png\" alt=\"image\" width=\"624px\" height=\"315.266666666667px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.38 Screenshot of Visual Studio 2022 selected options.<\/p>\n<p class=\"import-Normal\">The Visual Studio installer has selected the following:<\/p>\n<ul>\n<li>ASP.NET and web development<\/li>\n<li>Azure development<\/li>\n<li>.NET desktop development<\/li>\n<\/ul>\n<p class=\"import-Normal\">And of course, the Visual Studio installer will include the core editor.<\/p>\n<p class=\"import-Normal\">Look for the \u201cData storage and processing\u201d toolset. Select this.<\/p>\n<p class=\"import-Normal\">As your needs grow, you can return to the Visual Studio Installer screen and add more components.<\/p>\n<p class=\"import-Normal\">Figure 8.39 shows the success screen.<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image38-1.png\" alt=\"image\" width=\"624px\" height=\"314px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.39 Screenshot of Visual Studio 2022 success screen<\/p>\n<h3>Starting the SQL Server Management Studio<\/h3>\n<p class=\"import-Normal\">On a recent Windows operating system, the start menu will have the appearance as shown in Figure 8.40.<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image39.png\" alt=\"image\" width=\"485.959160104987px\" height=\"558.196325459318px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.40 Screenshot of the start menu on a Windows computer<\/p>\n<p class=\"import-Normal\">Look for \u201cMicrosoft SQL Server Tools nn.\u201d Expand the menu. Select \u201cSQL Server Management Studio Management Studio nn.\u201d<\/p>\n<p class=\"import-Normal\">The startup screen will appear.<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image40.png\" alt=\"image\" width=\"624px\" height=\"309.2px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.41 Screenshot of launch of SQL Server Management Studio<\/p>\n<p class=\"import-Normal\">When the program opens up, a login dialog box will appear.<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image41.png\" alt=\"image\" width=\"624px\" height=\"189px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.42 Screenshot of SQL Server Management Studio login dialog box<\/p>\n<h2><a id=\"_Hlk176699740\"><\/a>Finding the Lost SQL Server Installation Center<\/h2>\n<p class=\"import-Normal\">Look on the C-Drive for the setup.exe program and launch it.<\/p>\n<p class=\"import-Normal\"><img decoding=\"async\" src=\"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-content\/uploads\/sites\/2211\/2025\/01\/image42.png\" alt=\"image\" width=\"272.207979002625px\" height=\"202.968083989501px\" \/><\/p>\n<p class=\"import-Normal\">Figure 8.43 Screenshot showing the location of the SQL Server Installation Center program<\/p>\n<h2>What is Next?<\/h2>\n<p class=\"import-Normal\">The next step is to execute commands to create a database. In Chapter 9, we will install the AdventureWorld database and begin to learn some of the common SQL commands (joins and group by are two examples).<\/p>\n<p class=\"import-Normal\">Some terms were used without being defined. For example, SQL will be defined in the next chapter. Commands used within the SQL environment will be defined in the next chapter. Terms like \u201cstored procedures\u201d and \u201ctriggers\u201d will be explained in another chapter. Relational algebra will be explained in another chapter.<\/p>\n<p class=\"import-Normal\">\n<h2>Key Terms<\/h2>\n<p class=\"import-Normal\"><strong>ACID<\/strong><strong>: <\/strong>This stands for Atomicity, Consistency, Isolation, and Durability. These behaviors are highly desirable.<\/p>\n<p class=\"import-Normal\"><strong>discretionary <\/strong><strong>access control<\/strong><strong> list (DACL)<\/strong>: This allows file access only to the SQL Server service account and to the local administrator.<\/p>\n<p class=\"import-Normal\"><strong>NewSQL<\/strong><strong>: <\/strong> This is different from the traditional relational DBMS. A NewSQL DBMS uses the NoSQL approach with the traditional relational DBMS. Queries are executed against the DBMS using the best approach.<\/p>\n<p class=\"import-Normal\"><strong>NoSQL<\/strong><strong>: <\/strong> This is different from the traditional relational DBMS. Queries are executed against the DBMS using a different approach.<\/p>\n<p class=\"import-Normal\"><strong>Real-time DBMS<\/strong><strong>: <\/strong> This is a database that stores data in JSON files. All clients are synchronized in real-time with a connection to the database.<\/p>\n<p class=\"import-Normal\"><strong>Sharding<\/strong>: This is a technique that involves splitting a large database into smaller, more manageable pieces. These pieces are known as shards. Each shard contains a subset of the data and operates independently. This allows for horizonal scaling and improved performance.<\/p>\n<p class=\"import-Normal\"><strong>Spatial data<\/strong><strong>:<\/strong> This represents objects in a geometric space such as points or as polygons.<\/p>\n<p class=\"import-Normal\">\n<h2>Exercises<\/h2>\n<ol>\n<li class=\"import-Normal\">Explain or define the following terms within the context of this chapter. (CCDSC2021 DM Information Retrieval \u2013 T2) (IT2017 ITE-IMA-05 b; IT2017 ITE-IMA-06 a)\n<ol>\n<li class=\"import-Normal\">Relational DBMS<\/li>\n<li class=\"import-Normal\">Content Stores<\/li>\n<li class=\"import-Normal\">Document<\/li>\n<li class=\"import-Normal\">Event Stores<\/li>\n<li class=\"import-Normal\">Graph DBMS<\/li>\n<li class=\"import-Normal\">Key-value<\/li>\n<li class=\"import-Normal\">Native XML DBMS<\/li>\n<li class=\"import-Normal\">Navigational DBMS<\/li>\n<li class=\"import-Normal\">Object Oriented DBMS<\/li>\n<li class=\"import-Normal\">RDF Stores<\/li>\n<li class=\"import-Normal\">Search Engine<\/li>\n<li class=\"import-Normal\">Spatial DBMS<\/li>\n<li class=\"import-Normal\">Time Series DBMS<\/li>\n<li class=\"import-Normal\">Vector DBMS<\/li>\n<li class=\"import-Normal\">Wide Column Stores<\/li>\n<\/ol>\n<\/li>\n<li class=\"import-Normal\">For question 1, provide an example of a DBMS product that uses each DBMS scheme.<\/li>\n<li class=\"import-Normal\">For question 2, which DBMS product may be considered to be a NewSQL?<\/li>\n<li class=\"import-Normal\">What is the drawback with using a NewSQL (NoSQL) over using a traditional relational DBMS?<\/li>\n<li class=\"import-Normal\">Which DBMS support concurrency better than other DBMS types? (IS2020 A3.2.1.5)<\/li>\n<li class=\"import-Normal\">What is sharding?<\/li>\n<li class=\"import-Normal\">Imagine your future employment. Of the various DBMS mentioned in this chapter, which one would you use? What is your reason for your choice?<\/li>\n<\/ol>\n<p class=\"import-Normal\">\n<h2>A Running Project<\/h2>\n<p class=\"import-Normal\">A running project was introduced in Chapter 2. You were encouraged to collect insights about the needs. In Chapter 3, you were told to use a word processor to create tables with columns for the entity pieces. In Chapter 4, you were told to identify the data types. In Chapter 5, you were told to create ERD. In Chapter 6, you were told to revise your ERD to add PK and FK to your tables. You were told to add cardinality between the tables. In Chapter 7, you were to review your tables. Use the normalization steps to bring your database to 3NF.<\/p>\n<p class=\"import-Normal\">Select a DBMS. Explain your choice. Install the DBMS on your personal computer.<\/p>\n<p class=\"import-Normal\">\n<h2>Attribution<\/h2>\n<p class=\"import-Normal\">This chapter of\u00a0<em>Database Design<\/em> is a derivative copy of\u00a0<a class=\"rId57\" href=\"http:\/\/cnx.org\/contents\/b57b8760-6898-469d-a0f7-06e0537f6817@1\"><span class=\"import-ListLabel112\">Database System Concepts<\/span><\/a>\u00a0by\u00a0Nguyen Kim Anh\u00a0licensed under\u00a0<a class=\"rId58\" href=\"http:\/\/creativecommons.org\/licenses\/by\/3.0\/\"><span class=\"import-ListLabel112\">Creative Commons Attribution License 3.0 license<\/span><\/a><\/p>\n<p class=\"import-Normal\">The second edition chapter 13\u2019s approach was a bit misleading. The other second edition chapters covered the steps for creating a database, but the second edition chapter 13 was repeat of the material from a software engineering viewpoint.<\/p>\n<p class=\"import-Normal\"><a id=\"_Hlk165870885\"><\/a>This chapter drew from many sources. The information was completely revised by Fred Strickland for the third edition.<\/p>\n<h2>Image Attributions<\/h2>\n<p class=\"import-Normal\">No second edition images were used.<\/p>\n<h2>References<\/h2>\n<p class=\"import-Normal\">\u201c13 Advantages And Disadvantages of Redis?\u201d Prosconslab, 2023. <a class=\"rId59\" href=\"https:\/\/prosconslab.com\/articles\/32\/13-advantages-and-disadvantages-of-redis\"><span class=\"import-Hyperlink\">https:\/\/prosconslab.com\/articles\/32\/13-advantages-and-disadvantages-of-redis<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cAdvantages and Disadvantages of Elasticsearch,\u201d Geeks for Geeks, May 7, 2024. <a class=\"rId60\" href=\"https:\/\/www.geeksforgeeks.org\/advantages-and-disadvantages-of-elasticsearch\/\"><span class=\"import-Hyperlink\">https:\/\/www.geeksforgeeks.org\/advantages-and-disadvantages-of-elasticsearch\/<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cAdvantages and Disadvantages of Microsoft Access,\u201d theknowledgeacademy, n.d. <a class=\"rId61\" href=\"https:\/\/www.theknowledgeacademy.com\/blog\/advantages-and-disadvantages-of-microsoft-access\/\"><span class=\"import-Hyperlink\">https:\/\/www.theknowledgeacademy.com\/blog\/advantages-and-disadvantages-of-microsoft-access\/<\/span><\/a><\/p>\n<p class=\"import-Normal\">Er R S Banger. \u201c30+ Advantages and Disadvantage of Microsoft Access | Features &amp; Benefits,\u201d DigitalThinkerHelp, July 24, 2023. <a class=\"rId62\" href=\"https:\/\/digitalthinkerhelp.com\/advantages-and-disadvantages-of-microsoft-access\/\"><span class=\"import-Hyperlink\">https:\/\/digitalthinkerhelp.com\/advantages-and-disadvantages-of-microsoft-access\/<\/span><\/a><\/p>\n<p class=\"import-Normal\">Daniel Calbimonte. \u201cHow to install SQL Server 2022 step by step,\u201d MS SQL Tips, November 17, 2023. <a class=\"rId63\" href=\"https:\/\/www.mssqltips.com\/sqlservertip\/7313\/install-sql-server-2022\/\"><span class=\"import-Hyperlink\">https:\/\/www.mssqltips.com\/sqlservertip\/7313\/install-sql-server-2022\/<\/span><\/a><\/p>\n<p class=\"import-Normal\">Vera Chen. \u201c11 Best Database Management Systems (2024) [FREE},\u201d April 18, 2024. <a class=\"rId64\" href=\"https:\/\/www.datanumen.com\/blogs\/11-best-database-management-systems-free\/\"><span class=\"import-Hyperlink\">https:\/\/www.datanumen.com\/blogs\/11-best-database-management-systems-free\/<\/span><\/a><\/p>\n<p class=\"import-Normal\">The word \u201cFREE\u201d in the article title is misleading. The information is free, but most of the reviewed DBMSs are not free.<\/p>\n<p class=\"import-Normal\">\u201cContent Stores,\u201d DB-Engines, n.d. <a class=\"rId65\" href=\"https:\/\/db-engines.com\/en\/article\/Content+Stores\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/article\/Content+Stores<\/span><\/a><\/p>\n<p class=\"import-Normal\">I tried to access this website on October 19, 2024 and it was down.<\/p>\n<p class=\"import-Normal\">Stephen Cooper. \u201cMicrosoft Access: Is it Still Relevant in 2024?\u201d Comparitech, January 3, 2024 <a class=\"rId66\" href=\"https:\/\/www.comparitech.com\/net-admin\/microsoft-access\/\"><span class=\"import-Hyperlink\">https:\/\/www.comparitech.com\/net-admin\/microsoft-access\/<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cDb2 database product editions and Db2 offerings,\u201d IBM, January 12, 2024. <a class=\"rId67\" href=\"https:\/\/www.ibm.com\/docs\/en\/db2\/11.5?topic=editions-db2-database-product-offerings\"><span class=\"import-Hyperlink\">https:\/\/www.ibm.com\/docs\/en\/db2\/11.5?topic=editions-db2-database-product-offerings<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cDocument Stores,\u201d DB-Engines, n.d. <a class=\"rId68\" href=\"https:\/\/db-engines.com\/en\/article\/Document+Stores\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/article\/Document+Stores<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cDatabase Software,\u201d Capterra, n.d. <a class=\"rId69\" href=\"https:\/\/www.capterra.com\/database-management-software\/\"><span class=\"import-Hyperlink\">https:\/\/www.capterra.com\/database-management-software\/<\/span><\/a><\/p>\n<p class=\"import-Normal\">Capterra is a company that provides solutions to businesses. The company does not sell a product, but finds the best products that satisfy the needs of a business. See <a class=\"rId70\" href=\"https:\/\/www.capterra.com\/our-story\/\"><span class=\"import-Hyperlink\">https:\/\/www.capterra.com\/our-story\/<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cDB-engines Ranking,\u201d DB-Engines, September 2024. <a class=\"rId71\" href=\"https:\/\/db-engines.com\/en\/ranking\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/ranking<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cElasticsearch System Properties,\u201d DB-Engines, 2024. <a class=\"rId72\" href=\"https:\/\/db-engines.com\/en\/system\/Elasticsearch\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/system\/Elasticsearch<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cEvent Stores,\u201d DB-Engines, n.d. <a class=\"rId73\" href=\"https:\/\/db-engines.com\/en\/article\/Event+Stores\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/article\/Event+Stores<\/span><\/a><\/p>\n<p class=\"import-Normal\">Brandon Gaille. \u201c13 Pros and Cons of Microsoft Access,\u201d BrandonGaille, September 13, 2016. <a class=\"rId74\" href=\"https:\/\/brandongaille.com\/13-pros-and-cons-of-microsoft-access\/\"><span class=\"import-Hyperlink\">https:\/\/brandongaille.com\/13-pros-and-cons-of-microsoft-access\/<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cThe Good and the Bad of Snowflake Data Warehouse,\u201d Altexsoft, January 30, 2023. <a class=\"rId75\" href=\"https:\/\/www.altexsoft.com\/blog\/snowflake-data-warehouse-pros-cons\/\"><span class=\"import-Hyperlink\">https:\/\/www.altexsoft.com\/blog\/snowflake-data-warehouse-pros-cons\/<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cGraph DBMS,\u201d DB-Engines, n.d. <a class=\"rId76\" href=\"https:\/\/db-engines.com\/en\/article\/Graph+DBMS\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/article\/Graph+DBMS<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cHow to Navigate the Oracle Technology Price List,\u201d Oracle Licensing Experts, May 22, 2024. <a class=\"rId77\" href=\"https:\/\/oraclelicensingexperts.com\/how-to-navigate-the-oracle-technology-price-list\/\"><span class=\"import-Hyperlink\">https:\/\/oraclelicensingexperts.com\/how-to-navigate-the-oracle-technology-price-list\/<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cIBM Db2 System Properties,\u201d DB-Engines, 2024. <a class=\"rId78\" href=\"https:\/\/db-engines.com\/en\/system\/IBM+Db2\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/system\/IBM+Db2<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cIntroduction to NoSQL,\u201d Geeks for Geeks, July 25, 2024. <a class=\"rId79\" href=\"https:\/\/www.geeksforgeeks.org\/introduction-to-nosql\/\"><span class=\"import-Hyperlink\">https:\/\/www.geeksforgeeks.org\/introduction-to-nosql\/<\/span><\/a><\/p>\n<p class=\"import-Normal\">Geeks for Geeks has a second article that uses a table to compare SQL and NoSQL. See<\/p>\n<p class=\"import-Normal\">\u201cSQL vs NoSQL: Which One is Better to Use,\u201d Geeks for Geeks, August 8, 2024. <a class=\"rId80\" href=\"https:\/\/www.geeksforgeeks.org\/sql-vs-nosql-which-one-is-better-to-use\/\"><span class=\"import-Hyperlink\">https:\/\/www.geeksforgeeks.org\/sql-vs-nosql-which-one-is-better-to-use\/<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cKey-value Stored,\u201d DB-Engines, n.d. <a class=\"rId81\" href=\"https:\/\/db-engines.com\/en\/article\/Key-value+Stores\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/article\/Key-value+Stores<\/span><\/a><\/p>\n<p class=\"import-Normal\">Curt Kolovson. \u201cWeighing the Pros and Cons of PostgreSQL,\u201d Medium, December 6, 2021. <a class=\"rId82\" href=\"https:\/\/medium.com\/@ckolovson\/weighing-the-pros-and-cons-of-postgresql-5a3603dd34ce\"><span class=\"import-Hyperlink\">https:\/\/medium.com\/@ckolovson\/weighing-the-pros-and-cons-of-postgresql-5a3603dd34ce<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cMicrosoft SQL Server System Properties,\u201d DB-Engines, 2024. <a class=\"rId83\" href=\"https:\/\/db-engines.com\/en\/system\/Microsoft+SQL+Server\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/system\/Microsoft+SQL+Server<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cMongoDB Advantages &amp; Disadvantages,\u201d Geeks for Geeks, December 1, 2023. <a class=\"rId84\" href=\"https:\/\/www.geeksforgeeks.org\/mongodb-advantages-disadvantages\/\"><span class=\"import-Hyperlink\">https:\/\/www.geeksforgeeks.org\/mongodb-advantages-disadvantages\/<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cMongoDB System Properties,\u201d DB-Engines, 2024. <a class=\"rId85\" href=\"https:\/\/db-engines.com\/en\/system\/MongoDB\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/system\/MongoDB<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cMySQL System Properties,\u201d DB-Engines, 2024. <a class=\"rId86\" href=\"https:\/\/db-engines.com\/en\/system\/MySQL\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/system\/MySQL<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cNative XML DBMS,\u201d DB-Engines, n.d. <a class=\"rId87\" href=\"https:\/\/db-engines.com\/en\/article\/Native+XML+DBMS\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/article\/Native+XML+DBMS<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cNavigational DBMS,\u201d DB-Engines, n.d. <a class=\"rId88\" href=\"https:\/\/db-engines.com\/en\/article\/Navigational+DBMS\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/article\/Navigational+DBMS<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cObject oriented DBMS,\u201d DB-Engines, n.d. <a class=\"rId89\" href=\"https:\/\/db-engines.com\/en\/article\/Object+oriented+DBMS\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/article\/Object+oriented+DBMS<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cOracle System Properties,\u201d DB-Engines, 2024. <a class=\"rId90\" href=\"https:\/\/db-engines.com\/en\/system\/Oracle\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/system\/Oracle<\/span><\/a><\/p>\n<p class=\"import-Normal\">Roman Pijacek. \u201cMicrosoft SQL Server Pros and Cons,\u201d Learn SQL, January 17, 2019. <a class=\"rId91\" href=\"https:\/\/learnsql.com\/blog\/microsoft-sql-server-pros-and-cons\/\"><span class=\"import-Hyperlink\">https:\/\/learnsql.com\/blog\/microsoft-sql-server-pros-and-cons\/<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cPostgreSQL System Properties,\u201d DB-Engines, 2024. <a class=\"rId92\" href=\"https:\/\/db-engines.com\/en\/system\/PostgreSQL\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/system\/PostgreSQL<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cPros and Cons of Using Snowflake Cloud Data Warehouse,\u201d Zuar, February 12, 2022. <a class=\"rId93\" href=\"https:\/\/www.zuar.com\/blog\/pros-and-cons-of-using-snowflake-cloud-data-warehouse\/\"><span class=\"import-Hyperlink\">https:\/\/www.zuar.com\/blog\/pros-and-cons-of-using-snowflake-cloud-data-warehouse\/<\/span><\/a><\/p>\n<p class=\"import-Normal\">Daniel Raymond. \u201cMySQL: 10 Cons &amp; Disadvantages with 5 Alternatives\u201d ProjectManagers.net, January 25, 2024. <a class=\"rId94\" href=\"https:\/\/projectmanagers.net\/mysql-10-cons-disadvantages-with-5-alternatives\/\"><span class=\"import-Hyperlink\">https:\/\/projectmanagers.net\/mysql-10-cons-disadvantages-with-5-alternatives\/<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cRDF Stores,\u201d DB-Engines, n.d. <a class=\"rId95\" href=\"https:\/\/db-engines.com\/en\/article\/RDF+Stores\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/article\/RDF+Stores<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cRedis System Properties,\u201d DB-Engines, 2024. <a class=\"rId96\" href=\"https:\/\/db-engines.com\/en\/system\/Redis\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/system\/Redis<\/span><\/a><\/p>\n<p class=\"import-Normal\">Sophie Reed. \u201cThe Advantages and Disadvantages of Microsoft SQL Server,\u201d Rothobot, March 15, 2020. <a class=\"rId97\" href=\"https:\/\/rothmobot.com\/the-advantages-and-disadvantages-of-microsoft-sql-server\/\"><span class=\"import-Hyperlink\">https:\/\/rothmobot.com\/the-advantages-and-disadvantages-of-microsoft-sql-server\/<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cSearch Engines,\u201d DB-Engines, n.d. <a class=\"rId98\" href=\"https:\/\/db-engines.com\/en\/article\/Search+Engines\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/article\/Search+Engines<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cSnowflake System Properties,\u201d DB-Engines, 2024. <a class=\"rId99\" href=\"https:\/\/db-engines.com\/en\/system\/Snowflake\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/system\/Snowflake<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cSpatial DBMS,\u201d DB-Engines, n.d. <a class=\"rId100\" href=\"https:\/\/db-engines.com\/en\/article\/Spatial+DBMS\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/article\/Spatial+DBMS<\/span><\/a><\/p>\n<p class=\"import-Normal\">Mike Springgay. \u201cSix new Db2 capabilities DBAs must try today with Db2 115.9,\u201d IBM, April 9, 2024. <a class=\"rId101\" href=\"https:\/\/www.ibm.com\/blog\/announcement\/6-new-db2-capabilities-dbas-must-try-today-with-db2-11-5-9\/\"><span class=\"import-Hyperlink\">https:\/\/www.ibm.com\/blog\/announcement\/6-new-db2-capabilities-dbas-must-try-today-with-db2-11-5-9\/<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cSQL Server Data Tools,\u201d Microsoft Learn, August 20, 2024. <a class=\"rId102\" href=\"https:\/\/learn.microsoft.com\/en-us\/sql\/ssdt\/sql-server-data-tools?view=sql-server-ver16\"><span class=\"import-Hyperlink\">https:\/\/learn.microsoft.com\/en-us\/sql\/ssdt\/sql-server-data-tools?view=sql-server-ver16<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cSQL Server Editon Feature Comparison,\u201d Express DB, n.d. <a class=\"rId103\" href=\"https:\/\/expressdb.io\/sql-server-express-feature-comparison.html\"><span class=\"import-Hyperlink\">https:\/\/expressdb.io\/sql-server-express-feature-comparison.html<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cSQLite Advantages\u201d Java T Point, https:\/\/www.javatpoint.com\/sqlite-advantages-and-disadvantages<\/p>\n<p class=\"import-Normal\">\u201cSQLite System Properties,\u201d DB-Engines, 2024. <a class=\"rId104\" href=\"https:\/\/db-engines.com\/en\/system\/SQLite\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/system\/SQLite<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cTime Series DBMS,\u201d DB-Engines, n.d. <a class=\"rId105\" href=\"https:\/\/db-engines.com\/en\/article\/Time+Series+DBMS\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/article\/Time+Series+DBMS<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cVector DBMS,\u201d DB-Engines, n. d. <a class=\"rId106\" href=\"https:\/\/db-engines.com\/en\/article\/Vector+DBMS\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/article\/Vector+DBMS<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cWhat is SQL Server Management Studio (SSMS)\u201d Microsoft Learn, August 19, 2024. <a class=\"rId107\" href=\"https:\/\/learn.microsoft.com\/en-us\/sql\/ssms\/sql-server-management-studio-ssms?view=sql-server-ver16\"><span class=\"import-Hyperlink\">https:\/\/learn.microsoft.com\/en-us\/sql\/ssms\/sql-server-management-studio-ssms?view=sql-server-ver16<\/span><\/a><\/p>\n<p class=\"import-Normal\">\u201cWhat is the disadvantage of just using Redis instead of an RDBMS?\u201d Stackoverflow, n.d. <a class=\"rId108\" href=\"https:\/\/stackoverflow.com\/questions\/10906246\/what-is-the-disadvantage-of-just-using-redis-instead-of-an-rdbms\"><span class=\"import-Hyperlink\">https:\/\/stackoverflow.com\/questions\/10906246\/what-is-the-disadvantage-of-just-using-redis-instead-of-an-rdbms<\/span><\/a><\/p>\n<p class=\"import-Normal\">Didier Spezia answered this question on June 6, 2012. Stackoverflow is a forum where people ask questions and others answer. The quality of the answers is high, but there is no one checking on the accuracy of the information.<\/p>\n<p class=\"import-Normal\">\u201cWide Column Stores,\u201d DB-Engines, n.d. <a class=\"rId109\" href=\"https:\/\/db-engines.com\/en\/article\/Wide+Column+Stores\"><span class=\"import-Hyperlink\">https:\/\/db-engines.com\/en\/article\/Wide+Column+Stores<\/span><\/a><\/p>\n<p class=\"import-Normal\">Christopher Wong. \u201cAdvantages and Disadvantages of Using SQLite,\u201d Medium, March 31, 2023. <a class=\"rId110\" href=\"https:\/\/medium.com\/@cw30355\/advantages-and-disadvantages-of-using-sqlite-2f490fa467bd\"><span class=\"import-Hyperlink\">https:\/\/medium.com\/@cw30355\/advantages-and-disadvantages-of-using-sqlite-2f490fa467bd<\/span><\/a><\/p>\n<p>&nbsp;<\/p>\n<div id=\"sdfootnote1sym\"><a href=\"#sdfootnote1anc\">1<\/a> According to Geeks for Geeks, \u201ca real-time database is a database that stores data in JSON files which is synchronized in real-time to every client that is connected to the database.\u201d For more information, see\u201c10 Best Real-Time Databases for 2024,\u201d Geeks for Geeks, June 19, 2024. https:\/\/www.geeksforgeeks.org\/real-time-databases\/<\/div>\n<div id=\"sdfootnote2sym\"><a href=\"#sdfootnote2anc\">2<\/a> Microsoft SQL Server appears in this group. The Capterra website does not mention anything about the fact that it is the Microsoft SQL Server Express that is the free product.<\/div>\n<div id=\"sdfootnote3sym\"><a href=\"#sdfootnote3anc\">3<\/a> Some sources will shorten \u201crelational DBMS\u201d to become \u201cRDBMS.\u201d I have chosen not to follow this practice. I wish to avoid confusion with \u201creal-time DBMS.\u201d Also I wish to emphasize that the book is about traditional relational DBMS. I did not \u201ccorrect\u201d this expression in the Stephen Cooper quote in the section on Microsoft Access.<\/div>\n<div id=\"sdfootnote4sym\"><a href=\"#sdfootnote4anc\">4<\/a> The term \u201cmulti-model\u201d means the DBMS can support other schemes. For example, Oracle can support document store, graphic DBMS, RDF store, spatial DBMS, and vector DBMS. MySQL can support document store and spatial DBMS. Microsoft SQL Server can support document store, graphic DBMS, and Spatial DBMS.<\/div>\n<div id=\"sdfootnote5sym\"><a href=\"#sdfootnote5anc\">5<\/a> The DB-Engines reflects that the popularity is dropping. In October 2022, Microsoft Access was 9th. In September 2023, Microsoft Access was 10th. In September 2024, Microsoft Access had dropped to 12th.<\/div>\n<div id=\"sdfootnote6sym\"><a href=\"#sdfootnote6anc\">6<\/a> COBOL is over 60 years old. Many programmers are retiring. COBOL is not addressed in many computer science academic programs. COBOL is being adapted for the cloud and for other needs. There is some renewed interest from the younger tech enthusiasts. Thus there are many questions about the future. For more information, see \u201cCOBOL\u2019s Legacy: Navigating the Future of Traditional Programming in a Modern World,\u201d Adaptigent, March 1, 2024. https:\/\/www.adaptigent.com\/blog\/cobols-legacy-navigating-the-future-of-traditional-programming-in-a-modern-world\/<\/div>\n<div id=\"sdfootnote7sym\"><a href=\"#sdfootnote7anc\">7<\/a> From the Docker website (https:\/\/www.docker.com\/resources\/what-container\/):A container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another. A Docker container image is a lightweight, standalone, executable package of software that includes everything needed to run an application: code, runtime, system tools, system libraries and settings.Container images become containers at runtime and in the case of Docker containers \u2013 images become containers when they run on Docker Engine. Available for both Linux and Windows-based applications, containerized software will always run the same, regardless of the infrastructure. Containers isolate software from its environment and ensure that it works uniformly despite differences for instance between development and staging.<\/div>\n<div id=\"sdfootnote8sym\"><a href=\"#sdfootnote8anc\">8<\/a> The RESTful API is an interface that two computer systems can use to exchange information securely over the Internet<\/div>\n<div id=\"sdfootnote9sym\"><a href=\"#sdfootnote9anc\">9<\/a> The Java Virtual Machine (VM) is a software layer that sits on an operating system. A programmer can create a program and the Java VM will handle the interface with the various types of operating systems.<\/div>\n<div id=\"sdfootnote10sym\"><a href=\"#sdfootnote10anc\">10<\/a> The DB-Engines web page gave the current release information as \u201c121, October 2016.\u201d The correct information came from the IBM website.<\/div>\n<div id=\"sdfootnote11sym\"><a href=\"#sdfootnote11anc\">11<\/a> Niklaus Wirth developed Pascal in the early 1970s as a way to teach good programming practices. It was the first programming language to emphasize structured programming, strong typing, and data structuring. Pascal influenced C++ and Java. Pascal began to decline with the rise of languages like C and C++. Turbo Pascal influenced the design of modern tools and integrated development environments (IDEs). See Nathan Pakovskie. \u201cThe Enduring Legacy of Pascal in Modern Coding Practices,\u201d Geekpedia, November 9, 2023. https:\/\/www.geekpedia.com\/the-enduring-legacy-of-pascal-in-modern-coding-practices\/<\/div>\n<div id=\"sdfootnote12sym\"><a href=\"#sdfootnote12anc\">12<\/a> <i>Sharding <\/i>is a technique that involves splitting a large database into smaller, more manageable pieces. These pieces are known as shards. Each shard contains a subset of the data and operates independently. This allows for horizonal scaling and improved performance.<\/div>\n<div id=\"sdfootnote13sym\"><a href=\"#sdfootnote13anc\">13<\/a> Hadoop is a framework for working with large data sets. It is not a DBMS.<\/div>\n<div id=\"sdfootnote14sym\"><a href=\"#sdfootnote14anc\">14<\/a> Computer-aided design (CAD) is the use of a computer in the design process.<\/div>\n<div id=\"sdfootnote15sym\"><a href=\"#sdfootnote15anc\">15<\/a> This is from firsthand experience. I removed an older version of Microsoft SQL Server. I installed a newer edition. It worked. Six months later it would not work. So I did a complete removal of the problem. I did a fresh install. The installation is having trouble with the database engine. All of the web experts state that the answer is to do a complete removal and a fresh installation. I have not found the answer when the removal-installation answer does not work.\u00a0 I discovered that I had to close out many programs in order to have a successful installation.<\/div>\n<div id=\"sdfootnote16sym\"><a href=\"#sdfootnote16anc\">16<\/a> Google uses content-based targeting. Microsoft Bing does not. So e-mail messages, chats, files, and other personal items are not tracked for advertising. For more information about the benefits of using Microsoft Bing, see Syak Boral. \u201c12 Things that Bing Does Better than Google,\u201d: maketecheasier, August 26, 2021. https:\/\/www.maketecheasier.com\/bing-better-than-google\/<\/div>\n<div id=\"sdfootnote17sym\"><a href=\"#sdfootnote17anc\">17<\/a> Mike Wolfe in his article entitled \u201cThe AdventureWorks SQL Server Sample Database,\u201d directed his readers to select full text search feature and the FILESTREAM feature. He did not explain why the FILESTREAM feature would be needed. See https:\/\/nolongerset.com\/adventureworks\/ for the whole article.<\/div>\n<\/div>\n","protected":false},"author":2276,"menu_order":8,"template":"","meta":{"pb_show_title":"on","pb_short_title":"","pb_subtitle":"","pb_authors":["fredstrickland"],"pb_section_license":""},"chapter-type":[],"contributor":[66],"license":[],"class_list":["post-1138","chapter","type-chapter","status-publish","hentry","contributor-fredstrickland"],"part":3,"_links":{"self":[{"href":"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-json\/pressbooks\/v2\/chapters\/1138","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-json\/pressbooks\/v2\/chapters"}],"about":[{"href":"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-json\/wp\/v2\/types\/chapter"}],"author":[{"embeddable":true,"href":"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-json\/wp\/v2\/users\/2276"}],"version-history":[{"count":2,"href":"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-json\/pressbooks\/v2\/chapters\/1138\/revisions"}],"predecessor-version":[{"id":1141,"href":"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-json\/pressbooks\/v2\/chapters\/1138\/revisions\/1141"}],"part":[{"href":"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-json\/pressbooks\/v2\/parts\/3"}],"metadata":[{"href":"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-json\/pressbooks\/v2\/chapters\/1138\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-json\/wp\/v2\/media?parent=1138"}],"wp:term":[{"taxonomy":"chapter-type","embeddable":true,"href":"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-json\/pressbooks\/v2\/chapter-type?post=1138"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-json\/wp\/v2\/contributor?post=1138"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/pressbooks.bccampus.ca\/nelson\/wp-json\/wp\/v2\/license?post=1138"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}