Date post: | 07-Apr-2018 |
Category: |
Documents |
Upload: | anupam-pandey |
View: | 219 times |
Download: | 0 times |
of 26
8/3/2019 Flight Reservation
1/26
[1]
AJAY KUMAR GARG ENGINEERING COLLEGE
27TH
DELHI-HAPUR BYPASS ROAD
GHAZIABAD-201001
A
TRANING REPORT
ON
FLIGHT RESERVATION
AT
Dear flight trade Pvt. Ltd.
(C-85, sector-63 Noida 201301)
Submitted by- Under the guidance :-
Anupam Pandey Mr. Peeyush bedi
Branch- Information Technology ( HR Manager)
8/3/2019 Flight Reservation
2/26
[2]
AJAY KUMAR GARG ENGINEERING COLLEGE
27TH
DELHI-HAPUR BYPASS ROAD
GHAZIABAD-201001
TRAINING CERTIFICATE
This is certifying that Anupam pandey student of AJAY KUMAR GARG
ENGINEERING COLLEGE B.tech Final year in INFORMATION
TECHNOLOGY has undergone industrial training at Dear flight Pvt. Ltd. from
20/06/11 to 20/07/11.
Y.K.Mittal Gp.Capt.P.K.CHOPRA VSM (Retd.)
Professor & HOD-IT Professor & HOD-T&P
8/3/2019 Flight Reservation
3/26
[3]
ACKNOWLEDGEMENT
I take this opportunity to place on record my grateful thanks and
sincere gratitude to Mr.Brij Bhushan and Mr. peeyush Bedi (HR manager ), who
gave me valuable advice and inputs for my study. My study could not have been
completed if I had not been able to get the reference materials from the company.
Last but not least, I would also like to express my
thanks to my family members who inspired me to put in my best efforts for the
Research/Project Report.
Date- ..... Anupam Pandey
Place-. (Signature of Candidate)
8/3/2019 Flight Reservation
4/26
[4]
PREFACE
Training for each and every student of B-TECH is an essential part of
competition of the said course. Hence every student undergoes this same training.
The main objective of this training is to expose the student to the actual
environment that prevails in to todays organizations. In this project a student
watches how the theories of book are put in to the practice and how much they
are suitable and useful.
As per the Training is concerned I underwent in Dear flight Pvt. Ltd. My work
includes SQL server 2005 Data base maintenance.
8/3/2019 Flight Reservation
5/26
[5]
CONTENTS
Page no
Introduction to airline reservation 6 Robinflights.co.uk 7 Trade services 8 Credit card policy 9 User obligations 13 Database maintenance(SQL server 2005) 15 Bibliography 26
Introduction to airline reservation
8/3/2019 Flight Reservation
6/26
[6]
Aircraft: A vehicle capable of air transport, such as an airplane, ahelicopter, etc.
Airline: A company that provides air transport services for passengers orfreight under license from a recognized public authority. Also known as
Carrier in some geographies
Scheduled airline: An airline that operates its flights to a fixed schedule, i.e.flight timings are fixed
Charter airline: An airline whose flights do not have a fixed schedule Cabin: A class of service usually identified by a unique set of services
offered (e.g. Economy, Business, First, etc.)
Flight: A trip made by an aircraft between two geographical locations Itinerary: A route of journey proposed by a traveler Ticket: (Usually) a printed piece of paper or card showing that its holder has
the right to use services on one or more specific flights
Travel agency: A business that attends to the travel needs of an individualor a group of individuals
8/3/2019 Flight Reservation
7/26
[7]
robinflights.co.uk
robinflights is one of the leading providers of consumer-direct travel services for
the leisure and business traveler. The company provides the best services to its
customers so that they can get the best deals in the process of getting cheap flights.
It markets and distributes travel-related products and services directly to
individuals through Online booking website and contact centers. robinflights has
the expertise in providing cheap flights to Bangkok.
robinflights provides all the pricing information about air tickets, discounted
flights, last minute deals and other travel-related services to its customers.
robinflights customers can also access cheap flights offerings and bargain flights.
We specialize in last minute deals on cheap flights to Bangkok. Our goal is to benot only, informative and inspirational but also to offer great prices coupled with
excellent customer services. In the process of booking flights, we provide all the
background knowledge to our customers so that they can make the best decision.
robinflights saves the time spent surfing around in search of cheap flights. Just call
us and you will get the best deal in cheap flights.
8/3/2019 Flight Reservation
8/26
[8]
About robinflights Trade Services:
Welcome to robinflights.co.uk:
We specialize in travel products at value for money prices - be it flights, hotels, a
package or tour, our goal is to be not only, informative and inspirational but to
offer great prices coupled with excellent customer services.
We have a highly trained and dedicated sales team of travel professionals who
have in- depth knowledge of worldwide destinations. We are a truly global
Company with our directors being drawn from the UK & India.
While our initial launch covered the United Kingdom, we have since launched
other regions such as Australia & Newzeland, Africa and Thailand. We will be
launching other regions shortly such as North America, India, Europe and rest of
the world.
COMPANY PROFILE:
Robinflights.co.uk offers flights over top worldwide destinations. Our aim is to
give you the ultimate travel experience at an affordable price. With discounted
fares on over 85 of the world's leading airlines, we are your one stop shop for the
best competitive travel deals.
As our customer, you are fully protected by our membership's of ATOL.
Our Website: http://www.robinflights.co.uk
Our easy to use website offers instant access to the very best travel offers around,
which can be booked quickly, easily and securely online. Recently improved
navigation across the whole site means you can find exactly what you want more
http://www.robinflights.co.uk/http://www.robinflights.co.uk/8/3/2019 Flight Reservation
9/26
[9]
quickly and easily than ever.
If it's inspiration you need, take some time to browse our special offers, which we
update daily so that you get the freshest offers at the best prices. When you sign up
to our newsletter we'll send you the hottest exclusives straight to your inbox. Signup here.
Your Financial Protection:
Robinflights.co.uk is a ensures the flights shown are ATOL protected by the Civil
Aviation Authority. ATOL is a financial protection scheme for UK tour operators.
Over 28 million consumers are protected each year. As an ATOL tour operator, weprovide full financial protection and peace of mind when you book with us.
Credit Card Policy
In order to protect robin flights from widespread credit card fraud in travel
bookings, we reserve the right to refuse payment by credit card over the phone or
through a website booking.
Any bookings made over the phone or through the website which we deem may bea security risk will be held on option for an agreed time to enable payment by the
following means:
Payment in Person at our offices, Cardholders must present their payment card plus
their passport for verification. Cleared funds deposited into our bank account.
Please note that where the cardholder is not traveling or where the booking is for a
destination with historically high levels of credit card fraud, this policy will be
applied automatically.
8/3/2019 Flight Reservation
10/26
[10]
Privacy and Legal Policy:
Information we may collect about you
When using this web site we may ask you for some personal information. You are
free to decide as to whether you will give this information to us. Some services that
we offer may not be available if you do not supply the information requested.
We may request personal information in the following circumstances.
When you:
Purchase or reserve a product with us.
submit a product enquiry to us.
provide us with feedback about our web site.
request a brochure from us.
register to receive emails about our products and special offers.
take part in one of our online surveys.
apply for a job.
Product and special offer emails
If you register to receive product emails from us then we will hold your email
address and send you information regarding our products. You may choose to opt
our of our mailing list at any time by using the un-subscribe link in the emails you
receive.
Computer information
We may collect technical information about your computer when you visit our web
site. This may include your IP address, operating system, web browser software,
screen resolution and referring web site.
We do not link any of this computer information to any personal information we
8/3/2019 Flight Reservation
11/26
[11]
hold about you. This information is used purely to ensure our web site is built to
provide the best experience for you.
How we use this information?
To fulfill booking requests:
When you book or reserve a product with us we will hold the information you
submit to process, administer and account for your booking. You should expect to
receive an email confirmation from us shortly after you complete your booking or
reservation. In addition we may call you if necessary to fulfill the service offered to
you.
The information you provide may be passed to third parties as necessary to provide
the services requested. These third parties may be located outside of the UK.
Product enquiries:
If you submit a product enquiry to us using one of the forms on the web site, we
will use this information to produce a quotation for you. You can expect to receive
and email or a phone call as a follow up to a product enquiry.
Feedback and surveys:
If you submit feedback to us regarding our services, then we will use the
information submitted to improve our services. We may contact you by email or
phone to discuss any feedback that you provide.
If you volunteer to take part in a survey on our web site, then any information
collected will only be used for statistical purposes. You personal information will
not be identifiable from the results of any survey.
Brochure requests:
The information you submit for a brochure request is used solely for this purpose.
The information you supply is sent to a third party, Dawson Holdings Plc, who
8/3/2019 Flight Reservation
12/26
[12]
manage the distribution of brochures on our behalf. They do not use this
information for any other purposes
Product and special offer emails:
If you register to receive product emails from us you can expect to receive emailsregarding all of our travel services and products. The details you submit to receive
this information is not used for any other purpose and will not be shared with any
third parties.
Is your information secure:
We take great care in ensuring that any personal information you submit is secure
and held securely. The information you submit will only be used for the purposes
described in this privacy policy.
Other web sites:
We provide links to related web sites throughout our web site. These are placed
here for your convenience. You should be aware that the content or information
provided on these third party web site is not the responsibility of the
http://www.robinflights.co.uk and is not covered by this privacy policy.
Use of the Site:
The Site is provided on an 'as is' and 'as available' basis. Robin flight does not
accept any liability in respect of your ability to access or use the site at any time or
any interruption in that access or use or any failure to complete any transaction.
Robin flight does not warrant that the Site is free from computer viruses or other
properties that may cause loss or damage.
Information on the Site:
Robin flight offers all of the general information on the Site for purposes of
guidance only. Please note that Robin flight may at any time change any aspect of
the Site or its content, including the availability of any suppliers, features,
8/3/2019 Flight Reservation
13/26
[13]
information, database or content. You need to check with the relevant Travel
Supplier, destination, embassy, or tourist office to confirm the guidance is up to
date. In particular, with respect to passports, visas, and vaccination requirements,
Robin flight does not guarantee that the information is always up to date and it is
your responsibility to ensure that you understand and comply with all relevantpassport, visa, and vaccination requirements.
Robin flight does not guarantee that information on the Site (including without
limitation prices, descriptions or dates) is free from errors or omissions but we will
use all reasonable endeavors to correct any errors or omissions as soon as
practicable once they have been brought to our attention. By way of example, the
majority of hotel and other accommodation descriptions are fed directly to our Site
by the Travel Supplier.
User Obligations
You agree to be bound by the following obligations, including without limitation :
You accept financial responsibility for all transactions made under your name or
account.
You must be 18 years of age or over and have legal capacity.
You warrant that all information you provide about yourself or members of your
household shall be true and accurate.
The Site must not be used for speculative, false or fraudulent bookings.
The transmission of threatening, defamatory, pornographic, political, or racist
material or any material that is otherwise unlawful is expressly prohibited.
The Site and any content may not be modified, copied, transmitted, distributed,
sold, displayed, licensed or reproduced in any way by you, except that one copy of
the information contained within the Site may be made for personal, non-
commercial use.
8/3/2019 Flight Reservation
14/26
[14]
Denial of Access:
Robin flight reserves the right to deny access to the Site at any time without notice.
Links to Third Party Web Sites:
The Site may contain hyper links to external web sites owned and operated by third
parties. Robin flight has no control over or association with such third party sites
and no responsibility in relation to the accuracy, completeness and quality of the
information contained within them. Any and all contents on these external web
sites do not reflect products, services or information provided by Robin flight. You
should direct any concerns regarding any external link to the site administrator or
webmaster of such site.
In the event of Force Majeure:
Robin flight shall not be liable for any failure in the course of this Agreement if the
same shall arise out of a force majeure event. This shall include without limitation
government intervention, wars, civil commotion, hijacking, fire, flood, accident,
storm, strikes, lockouts, terrorist attacks, or industrial action affecting Robin flight
or its suppliers.
Currency Converter:
Currency rates quoted in the Site are derived from a number of sources and may
not in all cases be updated daily. You may wish to verify actual rates on the date of
booking. In addition, where hotels are payable on check-out, the exchange rate
may have changed since the time of booking.
Copyright and Trademarks:
The copyright and all proprietary rights in the Site and all content are reserved by
Robin flight. The material contained within the Site is the property of Robin flight
or its affiliates unless identified as belonging to third parties. The name Robin
flight and any other marks, logos and graphics of Robin flight displayed on the Site
8/3/2019 Flight Reservation
15/26
[15]
are registered trademarks of Robin flight or its affiliates. Other company and
product or service names displayed on the Site may be the trademarks of their
respective owners.
You are not granted any right or license to use any trademarks.
Privacy Policy:
The terms of the Robin flight Privacy Policy are incorporated into these Terms and
Conditions. You agree to the use of personal information by Robin flight and its
affiliates or third party suppliers in accordance with the terms of and for the
purposes set forth in the Robin flight Privacy Policy.
Security Policy:
Robin flight uses secure technology in order to safeguard personal information and
financial transactions. Robin flight complies with the procedures and security
standards as further set out in the Robin flight Security Policy.
ATOL:
The air holidays shown are ATOL Protected by the Civil Aviation Authority, and
we act as agents for licensed tour operators; the relevant ATOL number is
displayed with each holiday shown. The flight bookings we make are also ATOL
Protected, except when tickets for scheduled flights are sent to you within 24 hours
of payment being accepted, or where your payment is made direct to airlines.
ATOL Protection extends primarily to customers who book and pay in the United
Kingdom. If your booking is ATOL protected, this will be clearly stated in your
confirmation email. Visit www.atol.org.uk if you want to know more.
Database maintenance
SQL Server 2005
QLS Server 2005 (codename Yukon), released in October 2005, is the successor to
SQL Server 2000. It included native support for managing XML data, in addition
to relational data. For this purpose, it defined an xml data type that could be used
either as a data type in database columns or as literals in queries. XML columns
http://en.wikipedia.org/wiki/XMLhttp://en.wikipedia.org/wiki/Relational_databasehttp://en.wikipedia.org/wiki/Data_typehttp://en.wikipedia.org/wiki/Literal_(computer_science)http://en.wikipedia.org/wiki/Literal_(computer_science)http://en.wikipedia.org/wiki/Data_typehttp://en.wikipedia.org/wiki/Relational_databasehttp://en.wikipedia.org/wiki/XML8/3/2019 Flight Reservation
16/26
[16]
can be associated with XSD schemas; XML data being stored is verified against
the schema. XML is converted to an internal binary data type before being stored
in the database. Specialized indexing methods were made available for XML data.
XML data is queried using XQuery; Common Language Runtime (CLR)
integration was a main feature with this edition, enabling one to write SQL code as
Managed Code by the CLR. SQL Server 2005 added some extensions to the T-
SQL language to allow embedding XQuery queries in T-SQL. In addition, it also
defines a new extension to XQuery, called XML DML that allows query-based
modifications to XML data. SQL Server 2005 also allows a database server to be
exposed over web services using Tabular Data Stream (TDS) packets encapsulated
within SOAP (protocol) requests. When the data is accessed over web services,results are returned as XML.
For relational data, T-SQL has been augmented with error handling features
(try/catch) and support for recursive queries with CTEs (Common TableExpressions). SQL Server 2005 has also been enhanced with new indexing
algorithms, syntax and better error recovery systems. Data pages are check
summed for better error resiliency, and optimistic concurrency support has been
added for better performance. Permissions and access control have been made
more granular and the query processor handles concurrent execution of queries in a
more efficient way. Partitions on tables and indexes are supported natively, so
scaling out a database onto a cluster is easier. SQL CLR was introduced with SQL
Server 2005 to let it integrate with the .NET Framework.
SQL Server 2005 introduced "MARS" (Multiple Active Results Sets), a method ofallowing usage of database connections for multiple purposes.
SQL Server 2005 introduced DMVs (Dynamic Management Views), which are
specialized views and functions that return server state information that can be
used to monitor the health of a server instance, diagnose problems, and tune
performance.
SQL Server 2005 introduced Database Mirroring, but it was not fully supported
until the first Service Pack release (SP1). In the initial release (RTM) of SQL
Server 2005, database mirroring was available, but unsupported. In order to
implement database mirroring in the RTM version, you had to apply trace flag
1400 at startup. Database mirroring is a high availability option that provides
redundancy and failover capabilities at the database level. Failover can be
performed manually or can be configured for automatic failover. Automaticfailover requires a witness partner and an operating mode of synchronous.
http://en.wikipedia.org/wiki/XSDhttp://en.wikipedia.org/wiki/XQueryhttp://en.wikipedia.org/wiki/Common_Language_Runtimehttp://en.wikipedia.org/wiki/T-SQLhttp://en.wikipedia.org/wiki/T-SQLhttp://en.wikipedia.org/wiki/Web_servicehttp://en.wikipedia.org/wiki/Tabular_Data_Streamhttp://en.wikipedia.org/wiki/SOAP_(protocol)http://en.wikipedia.org/wiki/T-SQLhttp://en.wikipedia.org/wiki/Checksumhttp://en.wikipedia.org/wiki/Checksumhttp://en.wikipedia.org/wiki/Cluster_(computing)http://en.wikipedia.org/wiki/Cluster_(computing)http://en.wikipedia.org/wiki/Checksumhttp://en.wikipedia.org/wiki/Checksumhttp://en.wikipedia.org/wiki/T-SQLhttp://en.wikipedia.org/wiki/SOAP_(protocol)http://en.wikipedia.org/wiki/Tabular_Data_Streamhttp://en.wikipedia.org/wiki/Web_servicehttp://en.wikipedia.org/wiki/T-SQLhttp://en.wikipedia.org/wiki/T-SQLhttp://en.wikipedia.org/wiki/Common_Language_Runtimehttp://en.wikipedia.org/wiki/XQueryhttp://en.wikipedia.org/wiki/XSD8/3/2019 Flight Reservation
17/26
[17]
Data storage:
The main unit of data storage is a database, which is a collection of tables with
typed columns. SQL Server supports different data types, including primary types
such as Integer, Float, Decimal, Char (including character strings), Varchar
(variable length character strings), binary (for unstructured blobs of data), Text(for
textual data) among others. The rounding of floats to integers uses either
Symmetric Arithmetic Rounding or Symmetric Round Down (Fix) depending onarguments: SELECT Round(2.5, 0) gives 3.
Microsoft SQL Server also allows user-defined composite types (UDTs) to be
defined and used. It also makes server statistics available as virtual tables and
views (called Dynamic Management Views or DMVs). In addition to tables, a
database can also contain other objects including views, stored procedures, indexes
and constraints, along with a transaction log. A SQL Server database can contain amaximum of 2
31objects, and can span multiple OS-level files with a maximum file
size of 220
TB. The data in the database are stored in primary data files with an
extension .mdf. Secondary data files, identified with a .ndf extension, are used tostore optional metadata. Log files are identified with the .ldf extension.
Storage space allocated to a database is divided into sequentially numbered pages,
each 8 KB in size. A page is the basic unit of I/O for SQL Server operations. A
page is marked with a 96-byte header which stores metadata about the page
including the page number, page type, free space on the page and the ID of the
object that owns it. Page type defines the data contained in the page - data stored inthe database, index, allocation map which holds information about how pages are
allocated to tables and indexes, change map which holds information about the
changes made to other pages since last backup or logging, or contain large data
types such as image or text. While page is the basic unit of an I/O operation, space
is actually managed in terms of an extentwhich consists of 8 pages. A database
object can either span all 8 pages in an extent ("uniform extent") or share an extent
with up to 7 more objects ("mixed extent"). A row in a database table cannot span
more than one page, so is limited to 8 KB in size. However, if the data exceeds 8
KB and the row contains Varcharor Varbinary data, the data in those columns aremoved to a new page (or possibly a sequence of pages, called an Allocation unit)
and replaced with a pointer to the data.
For physical storage of a table, its rows are divided into a series of partitions
(numbered 1 to n). The partition size is user defined; by default all rows are in a
single partition. A table is split into multiple partitions in order to spread a database
http://en.wikipedia.org/wiki/Computer_data_storagehttp://en.wikipedia.org/wiki/Databasehttp://en.wikipedia.org/wiki/Type_systemhttp://en.wikipedia.org/wiki/Primary_typehttp://en.wikipedia.org/wiki/Binary_large_objecthttp://en.wikipedia.org/wiki/Roundinghttp://en.wikipedia.org/wiki/View_(database)http://en.wikipedia.org/wiki/Stored_procedurehttp://en.wikipedia.org/wiki/Index_(database)http://en.wikipedia.org/wiki/Constraint_(database)http://en.wikipedia.org/wiki/Terabytehttp://en.wikipedia.org/wiki/Terabytehttp://en.wikipedia.org/wiki/Constraint_(database)http://en.wikipedia.org/wiki/Index_(database)http://en.wikipedia.org/wiki/Stored_procedurehttp://en.wikipedia.org/wiki/View_(database)http://en.wikipedia.org/wiki/Roundinghttp://en.wikipedia.org/wiki/Binary_large_objecthttp://en.wikipedia.org/wiki/Primary_typehttp://en.wikipedia.org/wiki/Type_systemhttp://en.wikipedia.org/wiki/Databasehttp://en.wikipedia.org/wiki/Computer_data_storage8/3/2019 Flight Reservation
18/26
[18]
over a cluster. Rows in each partition are stored in either B-tree or heap structure.
If the table has an associated index to allow fast retrieval of rows, the rows are
stored in-order according to their index values, with a B-tree providing the index.
The data is in the leaf node of the leaves, and other nodes storing the index values
for the leaf data reachable from the respective nodes. If the index is non-clustered,
the rows are not sorted according to the index keys. An indexed view has the same
storage structure as an indexed table. A table without an index is stored in an
unordered heap structure. Both heaps and B-trees can span multiple allocation
units.
Buffer management:
SQL Server buffers pages in RAM to minimize disc I/O. Any 8 KB page can be
buffered in-memory, and the set of all pages currently buffered is called the buffer
cache. The amount of memory available to SQL Server decides how many pageswill be cached in memory. The buffer cache is managed by the Buffer Manager.
Either reading from or writing to any page copies it to the buffer cache. Subsequent
reads or writes are redirected to the in-memory copy, rather than the on-disc
version. The page is updated on the disc by the Buffer Manager only if the in-
memory cache has not been referenced for some time. While writing pages back to
disc, asynchronous I/O is used whereby the I/O operation is done in a background
thread so that other operations do not have to wait for the I/O operation to
complete. Each page is written along with its checksum when it is written. When
reading the page back, its checksum is computed again and matched with the
stored version to ensure the page has not been damaged or tampered with in the
meantime.
Logging and Transaction:
SQL Server ensures that any change to the data is ACID-compliant, i.e. it uses
transactions to ensure that the database will always revert to a known consistent
state on failure. Each transaction may consist of multiple SQL statements all of
which will only make a permanent change to the database if the last statement in
the transaction (a COMMIT statement) completes successfully. If the COMMITsuccessfully completes the transaction is safely on disk.
SQL Server implements transactions using a write-ahead log.
Any changes made to any page will update the in-memory cache of the page,
simultaneously all the operations performed will be written to a log, along with the
http://en.wikipedia.org/wiki/Cluster_computinghttp://en.wikipedia.org/wiki/B-treehttp://en.wikipedia.org/wiki/Heap_(data_structure)http://en.wikipedia.org/wiki/Index_(database)http://en.wikipedia.org/wiki/View_(database)http://en.wikipedia.org/wiki/Data_bufferhttp://en.wikipedia.org/wiki/RAMhttp://en.wikipedia.org/wiki/Checksumhttp://en.wikipedia.org/wiki/ACIDhttp://en.wikipedia.org/wiki/Transaction_(database)http://en.wikipedia.org/wiki/Transaction_(database)http://en.wikipedia.org/wiki/ACIDhttp://en.wikipedia.org/wiki/Checksumhttp://en.wikipedia.org/wiki/RAMhttp://en.wikipedia.org/wiki/Data_bufferhttp://en.wikipedia.org/wiki/View_(database)http://en.wikipedia.org/wiki/Index_(database)http://en.wikipedia.org/wiki/Heap_(data_structure)http://en.wikipedia.org/wiki/B-treehttp://en.wikipedia.org/wiki/Cluster_computing8/3/2019 Flight Reservation
19/26
[19]
transaction ID which the operation was a part of. Each log entry is identified by an
increasingLog Sequence Number(LSN) which is used to ensure that all changes
are written to the data files. Also during a log restore it is used to check that no
logs are duplicated or skipped. SQL Server requires that the log is written onto the
disc before the data page is written back. It must also ensure that all operations in a
transaction are written to the log before any COMMIT operation is reported as
completed.
At a later point the server will checkpointthe database and ensure that all pages in
the data files have the state of their contents synchronised to a point at or after the
LSN that the checkpoint started. When completed the checkpoint marks that
portion of the log file as complete and may free it (see Simple transaction logging
vs Full transaction logging). This enables SQL Server to ensure integrity of the
data, even if the system fails.
On failure the database log has to be replayed to ensure the data files are in a
consistent state. All pages stored in the roll forward part of the log (not marked as
completed) are rewritten to the database, when the end of the log is reached all
open transactions are rolled back using the roll back portion of the log file.
The database engine usually checkpoints quite frequently. However, in a heavily
loaded database this can have a significant performance impact. It is possible to
reduce the frequency of checkpoints or disable them completely but the rollforwardduring a recovery will take much longer.
Concurrency and locking:
SQL Server allows multiple clients to use the same database concurrently. As such,
it needs to control concurrent access to shared data, to ensure data integrity - when
multiple clients update the same data, or clients attempt to read data that is in the
process of being changed by another client. SQL Server provides two modes of
concurrency control: pessimistic concurrency and optimistic concurrency. When
pessimistic concurrency control is being used, SQL Server controls concurrent
access by using locks. Locks can be either shared or exclusive. Exclusive lock
grants the user exclusive access to the data - no other user can access the data as
long as the lock is held. Shared locks are used when some data is being read -
multiple users can read from data locked with a shared lock, but not acquire an
exclusive lock. The latter would have to wait for all shared locks to be released.
Locks can be applied on different levels of granularity - on entire tables, pages, or
even on a per-row basis on tables. For indexes, it can either be on the entire index
http://en.wikipedia.org/wiki/Concurrency_controlhttp://en.wikipedia.org/wiki/Optimistic_concurrency_controlhttp://en.wikipedia.org/wiki/Optimistic_concurrency_controlhttp://en.wikipedia.org/wiki/Concurrency_control8/3/2019 Flight Reservation
20/26
[20]
or on index leaves. The level of granularity to be used is defined on a per-database
basis by the database administrator. While a fine grained locking system allows
more users to use the table or index simultaneously, it requires more resources. So
it does not automatically turn into higher performing solution. SQL Server also
includes two more lightweight mutual exclusion solutions - latches and spinlocks -
which are less robust than locks but are less resource intensive. SQL Server uses
them for DMVs and other resources that are usually not busy. SQL Server also
monitors all worker threads that acquire locks to ensure that they do not end up in
deadlocks - in case they do, SQL Server takes remedial measures, which in many
cases is to kill one of the threads entangled in a deadlock and rollback the
transaction it started. To implement locking, SQL Server contains the Lock
Manager. The Lock Manager maintains an in-memory table that manages the
database objects and locks, if any, on them along with other metadata about the
lock. Access to any shared object is mediated by the lock manager, which either
grants access to the resource or blocks it.
SQL Server also provides the optimistic concurrency control mechanism, which is
similar to the multiversion concurrency control used in other databases. The
mechanism allows a new version of a row to be created whenever the row is
updated, as opposed to overwriting the row, i.e., a row is additionally identified by
the ID of the transaction that created the version of the row. Both the old as well as
the new versions of the row are stored and maintained, though the old versions are
moved out of the database into a system database identified as Tempdb. When a
row is in the process of being updated, any other requests are not blocked (unlike
locking) but are executed on the older version of the row. If the other request is an
update statement, it will result in two different versions of the rows - both of them
will be stored by the database, identified by their respective transaction IDs.
Data retrieval
The main mode of retrieving data from an SQL Server database is querying for it.
The query is expressed using a variant ofSQL called T-SQL, a dialect Microsoft
SQL Server shares with Sybase SQL Server due to its legacy. The query
declaratively specifies what is to be retrieved. It is processed by the queryprocessor, which figures out the sequence of steps that will be necessary to retrieve
the requested data. The sequence of actions necessary to execute a query is called a
query plan. There might be multiple ways to process the same query. For example,
for a query that contains ajoin statement and a select statement, executing join on
both the tables and then executing select on the results would give the same result
as selecting from each table and then executing the join, but result in different
http://en.wikipedia.org/wiki/Mutual_exclusionhttp://en.wikipedia.org/wiki/Deadlockhttp://en.wikipedia.org/wiki/Multiversion_concurrency_controlhttp://en.wikipedia.org/wiki/Database_queryhttp://en.wikipedia.org/wiki/SQLhttp://en.wikipedia.org/wiki/T-SQLhttp://en.wikipedia.org/wiki/Adaptive_Server_Enterprisehttp://en.wikipedia.org/wiki/Declarative_programming_languagehttp://en.wikipedia.org/wiki/Join_(SQL)http://en.wikipedia.org/wiki/Select_(SQL)http://en.wikipedia.org/wiki/Select_(SQL)http://en.wikipedia.org/wiki/Join_(SQL)http://en.wikipedia.org/wiki/Declarative_programming_languagehttp://en.wikipedia.org/wiki/Adaptive_Server_Enterprisehttp://en.wikipedia.org/wiki/T-SQLhttp://en.wikipedia.org/wiki/SQLhttp://en.wikipedia.org/wiki/Database_queryhttp://en.wikipedia.org/wiki/Multiversion_concurrency_controlhttp://en.wikipedia.org/wiki/Deadlockhttp://en.wikipedia.org/wiki/Mutual_exclusion8/3/2019 Flight Reservation
21/26
[21]
execution plans. In such case, SQL Server chooses the plan that is expected to
yield the results in the shortest possible time. This is called query optimization and
is performed by the query processor itself.
SQL Server includes a cost-based query optimizer which tries to optimize on the
cost, in terms of the resources it will take to execute the query. Given a query, then
the query optimizer looks at the database schema, the database statistics and the
system load at that time. It then decides which sequence to access the tables
referred in the query, which sequence to execute the operations and what access
method to be used to access the tables. For example, if the table has an associated
index, whether the index should be used or not - if the index is on a column which
is not unique for most of the columns (low "selectivity"), it might not be
worthwhile to use the index to access the data. Finally, it decides whether to
execute the query concurrently or not. While a concurrent execution is more costly
in terms of total processor time, because the execution is actually split to differentprocessors might mean it will execute faster. Once a query plan is generated for a
query, it is temporarily cached. For further invocations of the same query, thecached plan is used. Unused plans are discarded after some time.
SQL Server also allows stored procedures to be defined. Stored procedures are
parameterized T-SQL queries, that are stored in the server itself (and not issued by
the client application as is the case with general queries). Stored procedures can
accept values sent by the client as input parameters, and send back results as output
parameters. They can call defined functions, and other stored procedures, including
the same stored procedure (up to a set number of times). They can be selectivelyprovided access to. Unlike other queries, stored procedures have an associated
name, which is used at runtime to resolve into the actual queries. Also because the
code need not be sent from the client every time (as it can be accessed by name), it
reduces network traffic and somewhat improves performance. Execution plans for
stored procedures are also cached as necessary.
SQL CLR
Main article: SQL CLR
Microsoft SQL Server 2005 includes a component named SQL CLR ("Common
Language Runtime") via which it integrates with .NET Framework. Unlike most
other applications that use .NET Framework, SQL Server itself hosts the .NET
Framework runtime, i.e., memory, threading and resource management
requirements of .NET Framework are satisfied by SQLOS itself, rather than the
underlying Windows operating system. SQLOS provides deadlock detection and
http://en.wikipedia.org/wiki/Query_optimizationhttp://en.wikipedia.org/wiki/Database_schemahttp://en.wikipedia.org/wiki/Concurrent_computinghttp://en.wikipedia.org/wiki/Stored_procedurehttp://en.wikipedia.org/wiki/Access_controlhttp://en.wikipedia.org/wiki/Access_controlhttp://en.wikipedia.org/wiki/SQL_CLRhttp://en.wikipedia.org/wiki/.NET_Frameworkhttp://en.wikipedia.org/wiki/Common_Language_Runtimehttp://en.wikipedia.org/wiki/Common_Language_Runtimehttp://en.wikipedia.org/wiki/.NET_Frameworkhttp://en.wikipedia.org/wiki/SQL_CLRhttp://en.wikipedia.org/wiki/Access_controlhttp://en.wikipedia.org/wiki/Access_controlhttp://en.wikipedia.org/wiki/Stored_procedurehttp://en.wikipedia.org/wiki/Concurrent_computinghttp://en.wikipedia.org/wiki/Database_schemahttp://en.wikipedia.org/wiki/Query_optimization8/3/2019 Flight Reservation
22/26
[22]
resolution services for .NET code as well. With SQL CLR, stored procedures and
triggers can be written in any managed .NET language, including C# and VB.NET.
Managed code can also be used to define UDT's (user defined types), which can
persist in the database. Managed code is compiled to .NET assemblies and after
being verified for type safety, registered at the database. After that, they can be
invoked like any other procedure. However, only a subset of the Base Class
Library is available, when running code under SQL CLR. Most APIs relating touser interface functionality are not available.
When writing code for SQL CLR, data stored in SQL Server databases can be
accessed using the ADO.NET APIs like any other managed application that
accesses SQL Server data. However, doing that creates a new database session,
different from the one in which the code is executing. To avoid this, SQL Server
provides some enhancements to the ADO.NET provider that allows the connection
to be redirected to the same session which already hosts the running code. Suchconnections are called context connections and are set by setting context
connection parameter to true in the connection string. SQL Server also provides
several other enhancements to the ADO.NET API, including classes to work with
tabular data or a single row of data as well as classes to work with internal
metadata about the data stored in the database. It also provides access to the XML
features in SQL Server, including XQuery support. These enhancements are also
available in T-SQL Procedures in consequence of the introduction of the new
XML Datatype (query,value,nodes functions).
Services:
SQL Server also includes an assortment of add-on services. While these are not
essential for the operation of the database system, they provide value added
services on top of the core database management system. These services either run
as a part of some SQL Server component or out-of-process as Windows Serviceand presents their own API to control and interact with them.
Service Broker:
Used inside an instance, it is used to provide an asynchronous programming
environment. For cross instance applications, Service Broker communicates The
Service Broker, which runs as a part of the database engine, provides a reliable
messaging and message queuing platform for SQL Server applications. over
TCP/IP and allows the different components to be synchronized together, via
exchange of messages.
http://en.wikipedia.org/wiki/Stored_procedurehttp://en.wikipedia.org/wiki/Trigger_(database)http://en.wikipedia.org/wiki/Managed_codehttp://en.wikipedia.org/wiki/List_of_CLI_languageshttp://en.wikipedia.org/wiki/C_Sharp_(programming_language)http://en.wikipedia.org/wiki/VB.NEThttp://en.wikipedia.org/wiki/Managed_codehttp://en.wikipedia.org/wiki/User_defined_typehttp://en.wikipedia.org/wiki/Managed_codehttp://en.wikipedia.org/wiki/Assembly_(.NET)http://en.wikipedia.org/wiki/Type_safetyhttp://en.wikipedia.org/wiki/Base_Class_Libraryhttp://en.wikipedia.org/wiki/Base_Class_Libraryhttp://en.wikipedia.org/wiki/User_interfacehttp://en.wikipedia.org/wiki/ADO.NEThttp://en.wikipedia.org/wiki/APIhttp://en.wikipedia.org/wiki/Managed_codehttp://en.wikipedia.org/wiki/ADO.NEThttp://en.wikipedia.org/wiki/ADO.NEThttp://en.wikipedia.org/wiki/XQueryhttp://en.wikipedia.org/wiki/Windows_Servicehttp://en.wikipedia.org/wiki/APIhttp://en.wikipedia.org/wiki/Message_queuinghttp://en.wikipedia.org/wiki/TCP/IPhttp://en.wikipedia.org/wiki/TCP/IPhttp://en.wikipedia.org/wiki/Message_queuinghttp://en.wikipedia.org/wiki/APIhttp://en.wikipedia.org/wiki/Windows_Servicehttp://en.wikipedia.org/wiki/XQueryhttp://en.wikipedia.org/wiki/ADO.NEThttp://en.wikipedia.org/wiki/ADO.NEThttp://en.wikipedia.org/wiki/Managed_codehttp://en.wikipedia.org/wiki/APIhttp://en.wikipedia.org/wiki/ADO.NEThttp://en.wikipedia.org/wiki/User_interfacehttp://en.wikipedia.org/wiki/Base_Class_Libraryhttp://en.wikipedia.org/wiki/Base_Class_Libraryhttp://en.wikipedia.org/wiki/Type_safetyhttp://en.wikipedia.org/wiki/Assembly_(.NET)http://en.wikipedia.org/wiki/Managed_codehttp://en.wikipedia.org/wiki/User_defined_typehttp://en.wikipedia.org/wiki/Managed_codehttp://en.wikipedia.org/wiki/VB.NEThttp://en.wikipedia.org/wiki/C_Sharp_(programming_language)http://en.wikipedia.org/wiki/List_of_CLI_languageshttp://en.wikipedia.org/wiki/Managed_codehttp://en.wikipedia.org/wiki/Trigger_(database)http://en.wikipedia.org/wiki/Stored_procedure8/3/2019 Flight Reservation
23/26
[23]
Replication Services:
SQL Server Replication Services are used by SQL Server to replicate and
synchronize database objects, either in entirety or a subset of the objects present,
across replication agents, which might be other database servers across the
network, or database caches on the client side. Replication follows a
publisher/subscriber model, i.e., the changes are sent out by one database server
("publisher") and are received by others ("subscribers"). SQL Server supports threedifferent types of replication:
Transaction replication
Each transaction made to the publisher database (master database) is synced
out to subscribers, who update their databases with the transaction.
Transactional replication synchronizes databases in near real time.
Merge replication
Changes made at both the publisher and subscriber databases are tracked,
and periodically the changes are synchronized bi-directionally between the
publisher and the subscribers. If the same data has been modified differently
in both the publisher and the subscriber databases, synchronization will
result in a conflict which has to be resolved - either manually or by using
pre-defined policies. rowguid needs to be configured on a column if mergereplication is configured.
Snapshot replication
Snapshot replication published a copy of the entire database (the then-
snapshot of the data) and replicates out to the subscribers. Further changes to
the snapshot are not tracked.
Analysis Services:
Main article: SQL Server Analysis Services
SQL Server Analysis Services adds OLAP and data mining capabilities for
SQL Server databases. The OLAP engine supports MOLAP, ROLAP and
HOLAP storage modes for data. Analysis Services supports the XML for
Analysis standard as the underlying communication protocol. The cube data
can be accessed using MDX queries. Data mining specific functionality is
http://en.wikipedia.org/w/index.php?title=Rowguid&action=edit&redlink=1http://en.wikipedia.org/wiki/SQL_Server_Analysis_Serviceshttp://en.wikipedia.org/wiki/OLAPhttp://en.wikipedia.org/wiki/Data_mininghttp://en.wikipedia.org/wiki/MOLAPhttp://en.wikipedia.org/wiki/ROLAPhttp://en.wikipedia.org/wiki/HOLAPhttp://en.wikipedia.org/wiki/XMLAhttp://en.wikipedia.org/wiki/XMLAhttp://en.wikipedia.org/wiki/Multidimensional_Expressionshttp://en.wikipedia.org/wiki/Multidimensional_Expressionshttp://en.wikipedia.org/wiki/XMLAhttp://en.wikipedia.org/wiki/XMLAhttp://en.wikipedia.org/wiki/HOLAPhttp://en.wikipedia.org/wiki/ROLAPhttp://en.wikipedia.org/wiki/MOLAPhttp://en.wikipedia.org/wiki/Data_mininghttp://en.wikipedia.org/wiki/OLAPhttp://en.wikipedia.org/wiki/SQL_Server_Analysis_Serviceshttp://en.wikipedia.org/w/index.php?title=Rowguid&action=edit&redlink=18/3/2019 Flight Reservation
24/26
[24]
exposed via the DMX query language. Analysis Services includes various
algorithms - Decision trees, clustering algorithm, Naive Bayes algorithm,
time series analysis, sequence clustering algorithm, linear and logisticregression analysis, and neural networks - for use in data mining.
Reporting Services:
Main article: SQL Server Reporting Services
SQL Server Reporting Services is a report generation environment for data
gathered from SQL Server databases. It is administered via a web interface.
Reporting services features a web services interface to support the
development of custom reporting applications. Reports are created as RDLfiles.
Reports can be designed using recent versions of Microsoft Visual Studio(Visual Studio.NET 2003, 2005, and 2008) with Business Intelligence
Development Studio, installed or with the included Report Builder. Once
created, RDL files can be rendered in a variety of formats including Excel,
PDF, CSV, XML, TIFF (and other image formats), and HTML Web
Archive.
Notification Services:
Main article: SQL Server Notification Services
Originally introduced as a post-release add-on for SQL Server 2000,
Notification Services was bundled as part of the Microsoft SQL Server
platform for the first and only time with SQL Server 2005. with Sql Server
2005, SQL Server Notification Services is a mechanism for generating data-
driven notifications, which are sent to Notification Services subscribers. A
subscriber registers for a specific event or transaction (which is registered on
the database server as a trigger); when the event occurs, Notification
Services can use one of three methods to send a message to the subscriber
informing about the occurrence of the event. These methods include SMTP,
SOAP, or by writing to a file in the filesystem. Notification Services wasdiscontinued by Microsoft with the release of SQL Server 2008 in August
2008, and is no longer an officially supported component of the SQL Server
database platform.
Integration Services:
Main article: SQL Server Integration Services
http://en.wikipedia.org/wiki/Data_Mining_Extensionshttp://en.wikipedia.org/wiki/Decision_tree_learninghttp://en.wikipedia.org/wiki/Naive_Bayeshttp://en.wikipedia.org/wiki/Regression_analysishttp://en.wikipedia.org/wiki/Neural_networkhttp://en.wikipedia.org/wiki/SQL_Server_Reporting_Serviceshttp://en.wikipedia.org/wiki/World_Wide_Webhttp://en.wikipedia.org/wiki/Web_serviceshttp://en.wikipedia.org/wiki/Report_Definition_Languagehttp://en.wikipedia.org/wiki/Microsoft_Visual_Studiohttp://en.wikipedia.org/wiki/Business_Intelligence_Development_Studiohttp://en.wikipedia.org/wiki/Business_Intelligence_Development_Studiohttp://en.wikipedia.org/w/index.php?title=Report_Builder&action=edit&redlink=1http://en.wikipedia.org/wiki/PDFhttp://en.wikipedia.org/wiki/Comma-separated_valueshttp://en.wikipedia.org/wiki/XMLhttp://en.wikipedia.org/wiki/TIFFhttp://en.wikipedia.org/wiki/SQL_Server_Notification_Serviceshttp://en.wikipedia.org/wiki/SQL_Server_Integration_Serviceshttp://en.wikipedia.org/wiki/SQL_Server_Integration_Serviceshttp://en.wikipedia.org/wiki/SQL_Server_Notification_Serviceshttp://en.wikipedia.org/wiki/TIFFhttp://en.wikipedia.org/wiki/XMLhttp://en.wikipedia.org/wiki/Comma-separated_valueshttp://en.wikipedia.org/wiki/PDFhttp://en.wikipedia.org/w/index.php?title=Report_Builder&action=edit&redlink=1http://en.wikipedia.org/wiki/Business_Intelligence_Development_Studiohttp://en.wikipedia.org/wiki/Business_Intelligence_Development_Studiohttp://en.wikipedia.org/wiki/Microsoft_Visual_Studiohttp://en.wikipedia.org/wiki/Report_Definition_Languagehttp://en.wikipedia.org/wiki/Web_serviceshttp://en.wikipedia.org/wiki/World_Wide_Webhttp://en.wikipedia.org/wiki/SQL_Server_Reporting_Serviceshttp://en.wikipedia.org/wiki/Neural_networkhttp://en.wikipedia.org/wiki/Regression_analysishttp://en.wikipedia.org/wiki/Naive_Bayeshttp://en.wikipedia.org/wiki/Decision_tree_learninghttp://en.wikipedia.org/wiki/Data_Mining_Extensions8/3/2019 Flight Reservation
25/26
[25]
SQL Server Integration Services is used to integrate data from different data
sources. It is used for the ETL capabilities for SQL Server for data
warehousing needs. Integration Services includes GUI tools to build data
extraction workflows integration various functionality such as extracting
data from various sources, querying data, transforming data including
aggregating, duplication and merging data, and then loading the transformed
data onto other sources, or sending e-mails detailing the status of theoperation as defined by the user.
Full Text Search Service:
Main article: SQL Server Full Text Search
The SQL Server Full Text Search service architecture
SQL Server Full Text Search service is a specialized indexing and querying
service for unstructured text stored in SQL Server databases. The full text
search index can be created on any column with character based text data. It
allows for words to be searched for in the text columns. While it can be
performed with the SQL LIKE operator, using SQL Server Full Text Search
service can be more efficient. Full Text Search (FTS) allows for inexact
matching of the source string, indicated by a Rankvalue which can range
from 0 to 1000 - a higher rank means a more accurate match. It also allowslinguistic matching ("inflectional search"), i.e., linguistic variants of a word
(such as a verb in a different tense) will also be a match for a given word
(but with a lower rank than an exact match). Proximity searches are also
supported, i.e., if the words searched for do not occur in the sequence they
are specified in the query but are near each other, they are also considered a
http://en.wikipedia.org/wiki/SQL_Server_Integration_Serviceshttp://en.wikipedia.org/wiki/SQL_Server_Integration_Serviceshttp://en.wikipedia.org/wiki/SQL_Server_Integration_Serviceshttp://en.wikipedia.org/wiki/Extract,_transform,_loadhttp://en.wikipedia.org/wiki/Data_warehousehttp://en.wikipedia.org/wiki/Data_warehousehttp://en.wikipedia.org/wiki/Workflowhttp://en.wikipedia.org/wiki/E-mailshttp://en.wikipedia.org/w/index.php?title=SQL_Server_Full_Text_Search&action=edit&redlink=1http://en.wikipedia.org/wiki/File:SQL_Server_FTS.svghttp://en.wikipedia.org/wiki/File:SQL_Server_FTS.svghttp://en.wikipedia.org/wiki/File:SQL_Server_FTS.svghttp://en.wikipedia.org/wiki/File:SQL_Server_FTS.svghttp://en.wikipedia.org/w/index.php?title=SQL_Server_Full_Text_Search&action=edit&redlink=1http://en.wikipedia.org/wiki/E-mailshttp://en.wikipedia.org/wiki/Workflowhttp://en.wikipedia.org/wiki/Data_warehousehttp://en.wikipedia.org/wiki/Data_warehousehttp://en.wikipedia.org/wiki/Extract,_transform,_load8/3/2019 Flight Reservation
26/26
match. T-SQL exposes special operators that can be used to access the FTScapabilities.
The Full Text Search engine is divided into two processes - the Filter
Daemon process (msftefd.exe) and the Search process (msftesql.exe). These
processes interact with the SQL Server. The Search process includes the
indexer (that creates the full text indexes) and the full text query processor.
The indexer scans through text columns in the database. It can also index
through binary columns, and use iFilters to extract meaningful text from the
binary blob (for example, when a Microsoft Word document is stored as an
unstructured binary file in a database). The iFilters are hosted by the Filter
Daemon process. Once the text is extracted, the Filter Daemon process
breaks it up into a sequence of words and hands it over to the indexer. The
indexer filters out noise words, i.e., words like A, And etc., which occur
frequently and are not useful for search. With the remaining words, aninverted index is created, associating each word with the columns they were
found in. SQL Server itself includes a Gatherer component that monitorschanges to tables and invokes the indexer in case of updates.
When a full text query is received by the SQL Server query processor, it is
handed over to the FTS query processor in the Search process. The FTS
query processor breaks up the query into the constituent words, filters out
the noise words, and uses an inbuilt thesaurus to find out the linguistic
variants for each word. The words are then queried against the inverted
index and a rank of their accurateness is computed. The results are returnedto the client via the SQL Server process.
BIBLIOGRAPHY
Sources of above information are:
Dearflight.co.uk Robinflights.co.uk Pro SQL Server 2005by Robin Dewson
http://en.wikipedia.org/wiki/IFilterhttp://en.wikipedia.org/wiki/Microsoft_Wordhttp://en.wikipedia.org/wiki/Inverted_indexhttp://en.wikipedia.org/wiki/Thesaurushttp://www.amazon.com/Pro-Server-2005-Thomas-Rizzo/dp/1590594770/ref=cm_lmf_tit_2http://www.amazon.com/Pro-Server-2005-Thomas-Rizzo/dp/1590594770/ref=cm_lmf_tit_2http://www.amazon.com/Pro-Server-2005-Thomas-Rizzo/dp/1590594770/ref=cm_lmf_tit_2http://en.wikipedia.org/wiki/Thesaurushttp://en.wikipedia.org/wiki/Inverted_indexhttp://en.wikipedia.org/wiki/Microsoft_Wordhttp://en.wikipedia.org/wiki/IFilter