SQL Server Tutorial
Introduction to SQL Server
The SQL Server is a highly scalable Relational Database Management System (RDBMS). It is possible to run the software from a single laptop to a network of cloud servers with high performance. It would work with absolutely anything. A few hardware and software requirements need to be solved, which are quite modest compared to the capabilities of the SQL Server. The SQL Server ranks among the most popular databases according to every survey. This SQL Server tutorial can help to understand the usage and the importance of the RDBMS software.
Usage of SQL Server
The SQL Server would act like a client-server database system, unlike most other desktop systems. These systems run on a central server or multiple central servers. This allows multiple users to access the data simultaneously from the network. The users can access the database through an application. The data is stored using the database and it is made available. There are some useful features in SQL Server that assist the CRM applications to offer its functionalities. The employees can be in different countries and access and update the data through the browser.
Versions of SQL Server
There have been about 19 different versions of SQL Server. However, there have surely been some noticeable ones. They are stated below.
- The first one came out in 1989 as a project to port the Sybase SQL Server onto OS/2.
- The SQL Server made entry into Windows NT with the Server 4.2 for NT that was released in 1993.
- The SQL Server 6.0 was released into 1995 and ended the collaboration with Sybase.
- The SQL Server 7.0 was released in 1998 where the source code was converted from C to C++.
- In 2005, the SQL Server 2005 was released where the old Sybase code was completely removed.
- The SQL Server 2012 included new features like Availability Groups and Always On SQL Server Failover Cluster Instances, which offers options to improve database availability.
- The SQL Server 2014 provided a new in-memory capability for tables that helped them to fit entirely in memory.
- In 2017, the SQL Server 2017 or version 14.0, codenamed vNext, was released where support for Linux was added.
SQL Server Architecture
The SQL Server Architecture is based on the client/server architecture model where the data in the server is shared and accessed by the users through the client applications. The best approach to study the technology is to understand the internal build or the architecture.
- General Architecture - The General Architecture cares about a few details like query, protocols, servers, and relational engine. It also involves the division of the queries into logical units and having clients for initiating requests. It also involves working with query optimizer and a proper execution plan.
- Memory Architecture - One of the primary design goals of the memory architecture is to minimize the disk reads and writes. It is a vital part of the SQL Server architecture.
- Data File Architecture - The most important part of Data File Architecture is that the database is grouped into database files, which are used for allocation and administration. A file cannot be a member of more than a single group.
- Log File Architecture - Logical operation is performed by the SQL Server transaction log. Here, the transaction log acts as a string of log records. All the operations are logged. The SQL Server Architecture relies heavily on the Log File Architecture.
SQL Server Components
The modern versions of SQL Server are released every 18 months. Major enhancements often do not make the marketing headlines but still offer productivity and performance enhancements. Microsoft started to include feature releases in the cumulative updates.
- Database Engine - The relational databases are created and driven by this part of the SQL Server.
- SQL Server Analysis Services - This part handles the data-analysis of the SQL Server. Online Analytical Processing cubes are created by them, which are sophisticated programming objects that can organize data inside the relational database.
- SQL Server Reporting Services - It is a component of the SQL Server that offers reporting in spite of the operating system of the database.
- SQL Server Integration Services - The Extract, Transform, and Load or ETL phase of the SQL Server is performed by the SQL Server.
Types of SQL Keys
The keys act as a combination of single or multiple fields in the database tables. They are used to retrieve the records or information from the rows in a table according to the requirements. These keys can also be used to dictate the relationship between tables. The types of keys include:
- Super Key - A set of one or more than one key that would uniquely identify a record in the table.
- Candidate Key - A set of one or more fields that would be able to uniquely identify a record. Multiple candidate keys can be present in a table, where each can be a Primary Key.
- Primary Key - A set of one or more fields that would uniquely identify a record in the database table, which cannot accept null or duplicate values.
- Alternate Key - A candidate key that is not acting as the Primary Key.
- Foreign Key - A field in a database table that is acting as a Primary Key in another table and is used to create a relation between the tables. Null and duplicate values can be accepted.
Instance of SQL Server
The SQL Server instance actually refers to an instance of the Database Engine. It is a copy of the sqlservr.exe and can run on the operating system. Each of these instances would be able to manage several system databases. This means multiple instances of the Database Engine can be run on a computer independently of the other instances.
These instances can be installed at any time and even after the SQL Server has been running on the system for some time. The instances apply primarily to the database engine and the supporting components. They do not apply to the client tools.
Advantages of Instances
When it comes to multiple instances, the sky is the limit. The reasons could vary across different organizations. Some of the uses are as follows:
- Functional or Load testing - Load testing refers to having the multiple code bases loaded and coordinating with the instances to perform load testing. The load testing is then to be conducted to restart all of the instances once complete. Functional Testing allows having multiple code bases to be tested independently with preallocated resources.
- Server Sharing - A departmental solution can be considered with SQL Server. Multiple instances of Server 1 can be used to equally share the resources of the server. It is ideal for chargebacks to the departments.
- Server Consolidation - Here, multiple instances are consolidated to a single server. It is possible to perform full SQL Server backups and restorations to the single instance and maintain the same functionality as the original server.
- Security - Multiple instances are quite good for third-party applications. These require elevated SQL Server privileges where you would not like to commingle the applications on the same instance.
These are some of the advantages of the SQL Server Instances.
Client/Server Database Systems
The client-server applications are those programs that allow the user to access data stored in the server. The computer system does not matter. Both of these could be workstations and could be running on the same type of operating system. The servers would hold databases and the users would be able to access the database from the workstations. A client/server database application can be created by using any other database application.
- Server - The server is a part of the client/server system that stores the database. The server software is also present, which also is a part of the database management system that interprets the commands that come from the clients. These commands are translated as operations in the database.
- Client - The most important job of the client is to create a user interface. To the end users, the client machine is the computer itself and the user interface is the application. The users would generally be not able to realize that a server is involved in the process.
Database Management Tasks
Several database management tasks are involved in the process. They are as follows:
- Modifying the SQL Server Configuration Settings - The major part of the configuration settings can be changed through the SQL Server Management Studio currently. The SP_CONFIGURE TSQL command also helps to change the required settings.
- Managing the Database Engine Informational Reports - Proper management can be performed using the SQL Server instances. Several standard ones are already included in the system.
- Detaching and Attaching Databases - Detachment of a database means complete removal of the SQL Server instance. The files would, however, be kept intact and they would reside on the file system. The state of the database would remain intact when the database is attached again.
- Scripting the Database Objects - Two levels of scripting functionality assists in transferring the SQL Server task or the action to a TSQL script. This scripting functionality is a wonderful way to automate the redundant administration responsibilities or settings. Solid scripts can be created easily without even being an expert.
- Restoring the Database - Creating backups and the recovery strategy is the most important task. It is imperative to understand the recovery models associated with the database while creating backups.
SQL Server Editions & Features
The SQL Server is available in a lot of editions. Various editions with their features are listed below:
- Enterprise - It is the best edition and includes all the different features available with the SQL Server. It is meant for large organisations and business administrators.
- Standard - The features available in this edition are less than that of Enterprise. It finds use when there is no requirement for advanced features. Companies that do not need the advances features can use these.
- Workgroup - This edition finds employment in the remote offices of large companies.
- Web - This edition is used particularly for web applications.
- Express - This edition is entry-level. Only 1 CPU can be used along with 1 GB of memory and the maximum size of the database is 10 GB.
- Developer - Similar to the Enterprise edition, it is licensed to just a single user for testing, demo and development. The Developer edition can be upgraded to the Enterprise edition without any need for reinstallation.
- Datacenter - The Datacenter Edition is the new major upgrade in the new SQL Server 2008 R2. It has no limitations in terms of memory. It would even offer support for more than 25 instances.
- Compact - This edition is free and is available for mobile application development. 4 GB is the maximum allocated size of the database.
- Enterprise Evaluation - The Evaluation Edition offers a fully functional and free instance of the SQL Server. It is best for learning and developing solutions and would expire automatically after 6 months.
- Business Intelligence - All the features in the Standard edition are included. Some advanced features include PowerPivot and Power View. However, many advanced online operations are available.
[Related Article: SQL Server 2014 Editions]
How do I determine SQL version?
You need to follow the underlying steps if you would want to find out the version of your SQL.
- Start by pressing the Windows Key + S. You will get the Search box.
- You should enter "SQL Server Configuration Manager" in the box and press Enter.
- Then, highlight the SQL Server Services in the top-left frame.
- SQL Server (PROFXENGAGEMENT) needs to be right-clicked, and then click on Properties.
- You should click on the Advanced tab.
- You will find the relevant information in the "Stock Keeping Unit Name" and "Version" columns. The "Stock Keeping Unit Name" column shows the edition of SQL and the "Version" of the editions can also be seen.
Which is the latest version of SQL Server?
The latest SQL Server version available today is the SQL Server 2017. Please check out the below two sections to know more about this version.
SQL Server 2017 Edition
The release of the SQL Server 2017 as the first one for Linux had been a big milestone. The SQL Server 2017 was released simultaneously for both Windows and Linux. The porting effect would be based on a compatibility layer called the SQLPAL, where PAL stands for Platform Abstraction Layer. The subset of Windows libraries used by the SQL Server to run on Linux is enabled. The SQL Server would perform the thread and memory management through the SOS or the SQL Operating System. SOS becomes a part of the SQLPAL in the SQL Server 2017.
The performance of the edition has remained the same over the years. Replication is not supported in this edition if the context of high availability is not considered. File Table would not work on Linux, which exposes the SQL Server table as part of the file system. Most of the features that haven't yet been made available to Linux would soon be made available.
Frequently Asked SQL Server Interview Questions
What's New in SQL Server 2017?
Let us look at the new features that have been made available in SQL Server 2017.
- SQL Server on Linux - The RDBMS is no longer exclusive only for Windows, but is now available on different flavours of the Linux operating systems. SQL Server applications can be developed on Windows, Linux, Ubuntu, Docker, and can be deployed on these platforms.
- SQL Server Machine Learning services - The R programming language was integrated in SQL Server 2016. It can be run within the database server and embedded into the Transact-SQL (T-SQL) script. Now, the Python scripts can be executed within the database server.
- Resumable online index rebuild - The added feature would resume the operation from where the events have stopped like database failovers, pauses or running out of disk space.
- Automatic database tuning - If there is a potential performance issue, this feature offers notifications and corrective actions can be applied. The database engine is enabled to automatically fix the performance issues.
- Smart Differential backup - modified_extent_page_count has been introduced as a new column that can be used to track the differential changes in each of the database files. Smart backup solutions can be created as a result, which would perform differential backups if the percentage of changed pages is below a certain threshold. A full database backup would be performed otherwise. The restore and recovery times can be improved with the differential backups.
- Security enhancement - It is now possible to revoke, grant, or deny permissions on the database-scoped credentials like ALTER, CONTROL, REFERENCES, VIEW DEFINITION, and TAKE OWNERSHIP.
How do I use SQL Server?
To use SQL Server, it needs to be installed first. There are two types of installations:
Step 1 - You need to download the Evaluation Edition from the official website of Microsoft. You will find some files depending on the bit-version selected:
Step 2 - You should select the "Install.exe", which would extract the necessary files from the downloaded folders.
Step 3 - You should then double-click on the 'SETUP' application.
Step 4 - Click on Installation on the left side of the SQL Server Installation Center screen.
Step 5 - You should click on the first option that you can find on the right-hand tab.
Step 6 - You should click on "OK" on the following screen.
Step 7 - Click on "Next".
Step 8 - You would need to check the product key select and click on Next.
Step 9 - The checkbox to accept the license option needs to be selected, and then click on Next.
Step 10 - The SQL Server feature installation option needs to be selected, and then Next.
Step 11 - You should select the Database engine services checkbox and then click on Next.
Step 12 - You should enter the named Instance, offer a suitable name and click on Next.
Step 13 - Simply click on Next on the following screen.
Step 14 - You should select the service account names and the start-up types for the listed services and then move to the Collation tab.
Step 15 - Ensure to select the correct collation type and then click on Next.
Step 16 - You need to make sure that the authentication mode selection and administrators are checked and then click on Data Directories.
Step 17 - You need to select the above directory locations and then click on Next.
Step 19 - Simply click on "Next".
Step 20 - Select the above installations and then click on Install.
This is how you would be able to start using SQL Server.
How much does SQL Server cost?
The cost would depend on the MS SQL Server editions being used. For instance, the Enterprise edition would cost $14,256 per core, while the Standard costs $3,737. The Standard - server + CAL costs $931. The developer edition is free, while charges for the web edition would depend on the hosting partner. The Express edition is free.
How do I create a new SQL Server?
To create a new database in SQL server, the following steps need to be followed:
Step 1: You would need to open the Microsoft SQL Management Studio.
Step 2: You should connect to the database engine and use the database administrator credentials.
Step 3: You should expand the server node.
Step 4: You should right click on the Databases and then select the new Database option.
Step 5: You should enter a name and then click on OK.
How to learn SQL Server?
To learn SQL Server, you first need to have the Microsoft SQL Server and the SQL Server Management Studio installed on your system. You should even look at the sample databases for queries. Proper training is required to get a good grasp on the internal build and architecture. Mindmajix provides comprehensive training on SQL Server which covers all the key concepts and enables you to acquire expertise in this field. You should also follow the user community and seek proper answers.
SQL Server Developer - Career path, Roles & Responsibilities, and salaries
The career paths include SQL Server Database Administrator and Database Developer, Data Scientist, Business intelligence Developer, and other engineering prospects. Database testers, ETL developers, application interface developers, cloud database experts are some of the roles the SQL Server developers can take on in the future. They are described below.
- Database Administrator - The Database Administrator is responsible for maintaining and the administration of the SQL Server database. The administrator can design, implement and maintain the database and automate the tasks. He also maintains statistics, indexes and a recovery strategy.
- Database Developer - The Database Developer oversees the design of the database and implementation for different applications. A deep knowledge of T-SQL and ETL solutions is required for successful completion of this responsibility.
- Data Scientist - The responsibility is related to Data Mining, Machine Learning, Big Data and Databases. The scientist is responsible for collecting, analyzing and predicting business data.
- Business Intelligence Developer - The job description is related to Reporting, Data Warehousing and data transformations. Query languages like MDX and DAX would need to be handled as well.
- Database Engineering - The skills required would depend on the needs of the company.
The salaries of SQL professionals vary from $40,000 a year to $200,000, and payments might be hourly for the contractors. The SQL skills should be great to negotiate the salary figures.
Explore SQL Server Sample Resumes! Download & Edit, Get Noticed by Top Employers!Download Now!
SQL Server is among the most popular databases in the world and can be used for various applications. Other than maintaining databases and maintaining backups, it can be used for replication, maintaining users, roles and optimization tasks. Since the virtual world today is based on data, which is properly organised with the help of databases, learning SQL Server can offer lucrative jobs in the leading MNCs and secure a great future ahead.
Subscribe For Free Demo
Free Demo for Corporate & Online Trainings.