Professional Documents
Culture Documents
ODBC Architecture
Application: The application level is responsible for calling ODBC functions to submit the
SQL statements and retrieve the results.
Driver Manager: It requests the ODBC function call or passes them to the driver. Also loads
and unloads the drivers on behalf of an application.
Driver: The driver is responsible for the ODBC function call. It submits the SQL request and
returns its results to the application.
Data Sources: The data that the user wants to access comes under data sources. The
operating systems, DBMS, and network platform associated with data sources are used to
access the Database management systems.
Advantages of ODBC
Without any concern to the database server used, the ODBC provides a consistent interface.
The ODBC allows interoperability which means a single application can access different
database management systems.
The ODBC allows editing multiple objects at the same time.
The ODBC uses relevant functions mentioned in the database to apply a filter to sort the
information.
It provides simplicity and speed to application development.
Disadvantages of ODBC
ODBC keeps evolving just like the other Microsoft products. The companies using ODBC
have to cope with it and need to pay for the latest versions.
It is a bit complicated to build and maintain the ODBC drivers.
It is tough in ODBC to maintain speed when it comes to large databases
Both of these are programming languages that we mostly utilize in competitive coding and various
other industries due to the range of features they offer. C++ is pretty popular among various coders
because it is very efficient, utilizes memory dynamically, and works at a great speed. Java, on the
other hand, is most popular in the IT sector because it offers an incomparable software development
service to all of its users.
What is C++?
It is a computer programming language, and it contains the features of both- the C programming
language and Simula67 (it is the first object-oriented language). The concept of Objects and Class
came into existence with C++. It means that it encapsulates both- low-level and high-level features.
Thus, it acts as a language of the intermediate level. This language was previously known as C with
Classes since it came with all the properties contained in the C language.
What is Java?
Sun Microsystems developed this programming language. A team of software developers worked on
developing it. These people were called the Green Team, and they initiated this language in 1991.
A stable form of The JDK 14 or Java SE was finally released The C++ 17 was released back in
Release on 17th March 2020. December 2017.
Founder James Gosling developed Java at Sun Bjarne Stroustrup developed C++ at Bell
Microsystems. Labs back in 1979 in the form of an
extension to the C language.
Platform The Java bytecode can easily work on any The C++ language is platform-
Dependency given OS (operating system). It is very much dependent. It means that we need to
platform-independent. compile it for a different platform.
Official Website The official website for Java is The official website for C++ is
oracle.com/java isocpp.org
Influenced By The C#, C++, Pascal, Ada 83, and many Smalltalk, Simula, ML, C, ALGOL 68,
more languages have an influence on the Java Ada, and many more languages have an
language. influence on the C++ language.
Influenced To The Java language gets influenced to develop The C++ language gets influenced to
the BeanShell, Python, PHP, Kotlin, J#, develop the Seed7, Rust, Python, PHP,
Hack, Groovy, Scala, C#, Clojure, and many Perl, Lua, JS++, Java, C99, and many
more languages. more languages.
Portability It is a portable language. We can easily run It is not a portable language. It is because
Java on any given platform. the C++ language is platform-dependent.
Compilation The Java language is both- interpreted as well The C++ language is only a compiled
as combined. language.
Virtual Keyword Java does not contain a virtual keyword. C++ contains a virtual keyword.
Overloading Java only provides support for method C++ provides support for both- operator
overloading, and it does not come with overloading as well as method
operator overloading. overloading.
Pointers Java provides very limited support for C++ provides strong support for
pointers. pointers.
Multiple Java provides support only for single C++ can partially achieve multiple
Inheritance inheritance. inheritance using interfaces. It provides
support for both multiple as well as
single inheritance.
Global Scope Java does not have support for global scope. C++ provides support for both
namespace scope and global scope.
Management of Java has automatic object management and C++ uses delete and supports manual
Objects also a garbage collection. object management using new and
delete.
Libraries There is no support for direct native library C++ comes with support for direct
calls. It uses the Java Native Interfaces. system library calls. Thus, it is very
suitable for system-level programming.
Unions and There is no support for Unions and Structures There is support for Unions and
Structures in Java. Structures in C++.
Passing Parameter Java provides support for only the technique C++ provides support for both Pass by
of Pass by Value. Reference and Pass by Value.
Thread Support It provides support for documentation It does not come with built-in support for
comment for source code (e.g, /**.. */). threads. It depends a lot on the third-
party threading libraries.
Documentation Java provides support for documentation C++ does not provide any support for
Comment comment for source code (e.g, /**.. */). documentation comments for the source
code.
What is FAT32?
The term FAT32 is an acronym for File Allocation Table 32. It is basically an extension to the
file systems used previously that stores kits data in 32-bit chunks. The FAT16 comes with some
limitations, and FAT32 merged as an upgraded version to overcome these limitations. It also
supports larger media. The older versions of OS, like Windows XP, Windows 95, etc., utilized
the FAT32.
Pros of FAT32:
What is NTFS?
The term NTFS is an acronym for New Technology File System. It first came into existence in
1993. Now, we use it in the newer operating system versions, like Windows 2000, Windows NT,
and the later versions. NTFS is a very high-performance logging and robust file system that has
access control for multiple users. It also comes with ACLs and various other things that make
NTFS appropriate for working with an OS with protection. It includes various characteristics like
security, fault tolerance, multi-streaming, data recovery, UNICODE names, extended file size,
and many more.
We use the exFAT wherever the NTFS doesn’t deem suitable, mainly because of the overhead in
the data structure. But it also needs a greater limit of file size as compared to the standard
FAT32.
Pros of NTFS:
The overall performance of an NTFS file system ultimately degrades with its partitions of 400 MB
each.
It comes with no extensive support.
Full-Form The term FAT32 is an acronym for The term NTFS is an acronym for New
File Allocation Table 32. Technology File System.
Structure FAT32 has a very simple NTFS comes with a very complex structure.
structure.
Maximum Size of Files FAT32 has a maximum file size of NTFS has a maximum file size of 16 TB.
4 GB.
Maximum Character FAT32 supports a maximum of 83 NTFS supports a maximum of 255 characters.
Support provided in a characters.
File Name
Security It comes with only network-type It comes with both- network type and local
security. securities.
Encryption It does not come encrypted. It comes encrypted with the EFS (Encrypting
File System).
Fault Tolerance The FAT32 does not provide fault NTFS comes with the system of automatic
tolerance. troubleshooting.
Conversions FAT32 allows conversions. NTFS does not allow any conversions.
Compatibility with the It is compatible with Windows 95, It is compatible with Windows NT, Windows
OS Windows 98, Windows 2000, Vista, Windows XP, Windows 7, Windows
Windows 2003, Windows XP, etc. 2000, Windows 8, Windows 10, Linux, macOS,
etc
What is Hacking?
It is a form of planning or a technique that people use to get access to various unauthorized
systems, software, and devices. In simpler words, hacking is the process of gaining access to a
computer or a network that might not be legal or permitted for any random user. The people who
master hacking are very skilled with computer systems and have a great deal of knowledge about
various software and hardware devices.
The people who have hacking skills are basically of two types:
Hackers
Crackers
Definition Hackers are good people who hack Crackers are people who hack a system by
devices and systems with good breaking into it and violating it with some bad
intentions. They might hack a system for intentions. They may hack a system remotely
a specified purpose or for obtaining more for stealing the contained data or for harming
knowledge out of it. it permanently.
Skills and They have advanced knowledge of These people may be skilled. But most of the
Knowledge programming languages and computer time, they don’t even need extensive skills.
OS. Hackers are very skilled and Some crackers only have a knowledge of a few
intelligent people. illegal tricks that help them in stealing data.
Role in an Hackers work with specific organizations Crackers harm an organization. These are the
Organization to help them in protecting their people from whom hackers defend sensitive
information and important data. They data and protect the organizations as a whole.
mainly provide organizations with
expertise in security and internet safety.
Ethics These are ethical types of professionals. These are illegal and unethical types of people
who only focus on benefiting themselves with
their hacking.
Data Security They protect the data and never steal or They usually steal, delete, corrupt, or
damage it. Their only intention is to gain compromise the data they find from a
knowledge from the concerned data and system’s loopholes. Your data stays vulnerable
information. in the hands of a cracker.
Use of Tools Hackers use their own legal tools for Crackers don’t have any tools of their own.
checking network strength, establishing They make use of someone else’s tools for
security, and protecting an organization performing illegal activities and harming/
from internet threats. compromising a system.
Network They help improve a network’s strength. They harm and deplete a network’s strength.
Strength
Certification They always have legal certificates for They usually don’t have any certificates as
hacking, for example, XCEH certificates. they are unskilled. But some of them may
Hackers have nothing to hide and even have certificates. Crackers usually refrain
perform legal activities. Thus, they need away from certification because they prefer
certification for the work they do. staying anonymous about their wor
What is 3NF?
The term 3NF is an acronym for Third Normal Form. We can say that a relation is in Third
Normal Form when it’s in 2NF, and none of the non-key attributes transitively depend on the
given primary key. It means that no transitive dependency is present there. Along with that, the
relation should satisfy one of the conditions given below.
For a function dependency of C->D:
The D should be the prime attribute. It means that the D must be the candidate key’s part.
The C should be a super key.
We use 3NF for reducing duplication of data and for attaining data integrity.
What is BCNF?
The term BCNF is an acronym for Boyce-Codd NF (normal form). E.F Codd and R.F Boyce
made BCNF in 1974. We can say that a functional dependency is in BCNF only if it holds these
properties:
Strength 3NF is comparatively less strong than BCNF is comparatively much stronger than
that of the BCNF. that of the 3NF.
Redundancy 3NF has a comparatively much higher BCNF has a comparatively much lower
redundancy. redundancy.
Functional In the case of 3NF, preservation occurs In the case of BCNF, there is no
Dependencies for all the functional dependencies. preservation for all the functional
dependencies.
What is a Compiler?
A compiler is a translator that produces an output of low-level language (like an assembly or
machine language) by taking an input of high-level language. It is basically a computer program
used to transform codes written in a programming language into machine code (human-readable
code to a binary 0 and 1 bits language for a computer processor to understand). The computer then
processes the machine code for performing the corresponding tasks.
Compilers check all types of errors, limits, and ranges. Thus, it’s more intelligent.
The run time of its program is longer, and it occupies more memory.
What Is an Interpreter?
It is a program that functions for the translation of a programming language into a comprehensible
one. It is a computer program used for converting high-level program statements into machine
codes. It includes pre-compiled code, source code, and scripts.
Advantage The code execution time is They are fairly easy to use and execute, even for
comparatively less because the a beginner.
program code already gets translated
into machine code.
Disadvantage One can’t change a program without Only computers with the corresponding
getting back to the source code. Interpreter can run the interpreted programs.
Machine Code It stores the machine language on the It doesn’t save the machine language at all.
disk in the form of machine code.
Running Time The compiled codes run comparatively The interpreted codes run comparatively slower.
faster.
Model It works on the basis of the language- It works on the basis of the Interpretation
translation linking-loading model. method.
Generation of It generates an output program in the It doesn’t generate an output program. Meaning,
Program exe format. A user can run it it evaluates the source program every time during
independently from the originally individual execution.
intended program.
Execution One can separate the program Execution of the program is one of the steps of
execution from the compilation. Thus, the Interpretation process. So, you can perform it
you can perform it only after line by line.
completing the compilation of the
entire output.
Memory Target programs execute Interpreter originally exists in the memory at the
Requirement independently. They don’t require the time of interpretation.
Compiler in the memory.
Best Fitted For You cannot port the Compiler because They work the best in web environments- where
it stays bound to the specific target the load time is very crucial. Compiling takes a
machine. The compilation model is relatively long time, even with small codes that
very common in programming may not run multiple times due to the exhaustive
languages like C and C++. analysis. Interpretations are better in such cases.
Optimization of A compiler is capable of seeing the An interpreter sees a code line by line. The
Code entire code upfront. Thus, it makes the optimization is, thus, not very robust when
codes run faster by performing plenty compared to Compilers.
of optimizations.
Dynamic Compilers are very difficult to The Interpreted language supports Dynamic
Typing implement because they can’t predict Typing.
anything that happens during the turn
time.
Use It works best for the Production It works the best for the programming and
Environment. development environment.
Execution of A Compiler displays every error and An Interpreter reads every statement, then
Error warning while compiling. So, you displays the errors, if any. A user must resolve
can’t run this program unless you fix these errors in order to interpret the next line.
the errors.
Output The Compilers generate intermediate The Interpreters never generate any intermediate
machine codes. machine codes.
Errors This translator displays all the errors It displays the errors of every single line one by
after compiling- together at the same one.
time.
Programming Java, Scala, C#, C, C++ use Compilers. Perl, Ruby, PHP use Interpreters.
Languages