Difference between AI, Data Science and BI

 

Introduction

Today, a conversation with a friend inspired me to write this whitepaper. I initially believed that people had a good understanding of AI, Data Science, and Business Intelligence (BI). However, through our discussion, I realized that many people find it challenging to differentiate between these overlapping subjects.

In today's world, the buzz around Artificial Intelligence (AI) and Data Science is ubiquitous. Executive management is increasingly integrating AI and Data Science into various business domains. Developers are keen to implement these technologies across all possible areas. This whitepaper aims to distinguish between Automation and AI/Data Science.

Difference between Automation and Artificial Intelligence

Automation refers to the process of streamlining existing workflows to enhance efficiency. On the other hand, AI and Data Science involve predicting and forecasting based on historical data.

Data Science and Artificial Intelligence

 

A diagram of machine learning

AI-generated content may be incorrect.

Data science integrates mathematics, statistics, specialized programming, advanced analytics, artificial intelligence (AI), and machine learning with domain-specific expertise to uncover actionable insights hidden within an organization’s data. These insights can guide decision-making and strategic planning based on historical data. The rapid increase in data sources and the exponential growth of data have made data science one of the fastest-growing fields across all domains.

Artificial Intelligence, on the other hand, can learn, reason, solve problems, and make decisions autonomously, often by mimicking human intelligence. AI and Data Science complement each other very well. Machine Learning (ML) and Deep Learning (DL) leverage the exploratory analysis of organizational data using data science and autonomously solve problems by mimicking human intelligence through ML and DL models.

 

Business Intelligence (BI) and Data Science

Business Intelligence (BI) is typically a platform that enables data preparation, data mining, data management, and data visualization. BI tools and processes allow end users to identify actionable information from raw data, transforming data-driven decision-making within organizations across various domains.

Data science tools overlap with BI, but they focus more on historical data, providing descriptive insights to understand past events and inform future actions. BI is geared toward static, structured data. While data science uses descriptive data, it typically utilizes it to determine predictive variables, which are then used for categorization and forecasting.

Data science and BI are not mutually exclusive; organizations use both to fully understand and extract value from their data.

Types of Learning

Criteria

Supervised Learning

Unsupervised Learning

Reinforcement Learning

Definition

The Machine learns  by using Labeled Data

The machine learns using unlabeled data without any guidance

An agent interacts with its environment by performing actions and Learning from rewards and errors.

Type of Problems

Regression and Classification

Association and Clustering

Reward-based

Type of data

Labeled Data

Unlabeled data

No Predefined data

Approach

Maps Labeled Inputs to the known outputs

Understand Pattern and discovers the output

Follows the trial and error method.


SQL Server Auditing

Auditing the SQL Server is a major task for the DBA as well as for the developers. Developers and DBA should be regularly monitoring the changes done in the database where the key transactions have been made.

SQL Server provides various types of Audit 

Database Level

To implement the Audit at the database level, the system provides a function of SQL Server Audit. This helps  auditing an instance of the SQL Server Database Engine or an individual database involves tracking and logging events that occur on the Database Engine

Table Level

To Implement the audit at the Table Data level, there are two major mechanism
a. Change Data Capture
b. Change Tracking

The tracking mechanism in change data capture involves an asynchronous capture of changes from the transaction log so that changes are available after the DML operation. In change tracking, the tracking mechanism involves synchronous tracking of changes in line with DML operations so that change information is available immediately. The major difference is change tracking doesn't hold the history of the data. 

For more details click here






SIMPLIFY YOUR AUTOMATED TEST CASES

Maintaining test automation can take a lot of time.  I have seen automation engineers creating test cases that are very long and that don’t have a clear purpose. If their test cases were more streamlined and focused, the teams that use them would save a lot of time.

Lets discuss how we can simplify those

1. Decrease your scope

2. Single Responsibility

3. Identify the simplest thing you can automate

4. Avoid unnecessary dependencies

and to summarise, Keep it simple, stupid

Angular - HttpClient

The browsers support two different APIs for making HTTP requests:
1. XMLHttpRequest interface
2. fetch() API

Angular 4.3 introduced a new HttpClient service, which is a replacement for the Http service from Angular 2.

The HttpClient in @angular/common/http offers a simplified client HTTP API for Angular applications that rests on the XMLHttpRequest interface exposed by browsers. Additional benefits of HttpClient include testability features, typed request and response objects, request and response interception, Observable apis, and streamlined error handling.

Setup

Before you can use the HttpClient, you need to import the Angular HttpClientModule.

import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { HttpClientModule } from '@angular/common/http'; @NgModule({ imports: [ BrowserModule, HttpClientModule, ], declarations: [ AppComponent, ], bootstrap: [ AppComponent ] }) export class AppModule {}



Having imported HttpClientModule into the AppModule, you can inject the HttpClient into an application class as shown in the following ServiceClient example.


import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; @Injectable() export class ServiceClient { constructor(private http: HttpClient) { } }


The ServiceClient fetches this file with a get() method on HttpClient.


srvUrl = 'srv/srv.json'; getConfig() { return this.http.get(this.srvUrl); }


Programming - Good, The Bad and the Ugly

Here are some thoughts. Looking forward to your _flaming_. I am sure some of you will disagree, but thats the whole point. I will keep on adding to the list, maybe from your comments.

Let the arguments begin!

  1. Premature optimization is the root of all evil.
  2. Saving that byte is not worth your time. Indulge!
  3. Performance lost the war to Scalability long back (for business apps)
  4. Button click optimization is a ….
  5. If you optimize everything, you will always be unhappy – Donald Knuth
  6. Good performance always comes with good design, and less often from implementation.
  7. Not everything is an object. (Don’t derive classes from class Atom, which itself is a SubAtomicParticleCollection)
  8. Drinking Coffee is not a noun, it is a verb. (Actions speak louder than classes)
  9. Most Properties I met need counseling. Many of them are Method Parameters, with an identity crisis.
  10. Don’t go looking for Design Patterns. Design Patterns find you. (In fact they seem to have gone into hiding, and get talked about less, and is probably disguised as something else. Good.)
  11. Factories are ugly. Let’s have Gardens instead.
  12. With SOA, we finally agree that humans cannot build a system that looks good while it gets older.
  13. Too much abstraction is worse than too little abstraction.