• TwitterFacebookGoogle PlusLinkedInRSS FeedEmail

Sql Server 2000 Standard Edition

02.09.2019 
  • Find great deals for Microsoft SQL Server™ 2000 Standard Edition. Shop with confidence on eBay!
  • This guide assumes you have Windows 2003 Server Sp1 installed and configured, if you don't know how to do that you could follow this RIS installation guide.

Main article: The history of Microsoft SQL Server begins with the first Microsoft SQL Server product – SQL Server 1.0, a 16-bit server for the operating system in 1989 - and extends to the current day. Milestones. MS SQL Server for OS/2 began as a project to port onto OS/2 in 1989, by, and. SQL Server 4.2 for NT is released in 1993, marking the entry onto.

SQL Server 6.0 is released in 1995, marking the end of collaboration with; Sybase would continue developing their own variant of SQL Server, Sybase, independently of Microsoft. SQL Server 7.0 is released in 1998, marking the conversion of the source code from C to C. SQL Server 2005, released in 2005, finishes the complete revision of the old Sybase code into Microsoft code. SQL Server 2017, released in 2017, adds Linux support for these Linux platforms:, &.

Currently As of October 2017 the following versions are supported by Microsoft:. SQL Server 2008. SQL Server 2008 R2. SQL Server 2012.

SQL Server 2014. SQL Server 2016. SQL Server 2017 From SQL Server 2016 onward, the product is supported on x64 processors only.

The current version is Microsoft SQL Server 2017, released October 2, 2017. The RTM version is 14.1709.3807.1. Editions Microsoft makes SQL Server available in multiple editions, with different feature sets and targeting different users. These editions are: Mainstream editions Enterprise SQL Server Enterprise Edition includes both the core database engine and add-on services, with a range of tools for creating and managing a SQL Server cluster. It can manage databases as large as 524 and address 12 of memory and supports 640 logical processors (CPU cores).

Hello This is my first thread When i install sql server 2000 standard edition i have a message ' Microsoft SQL Server 2000 Standard Edition Server.

Standard SQL Server Standard edition includes the core database engine, along with the stand-alone services. It differs from Enterprise edition in that it supports fewer active instances (number of nodes in a cluster) and does not include some high-availability functions such as hot-add memory (allowing memory to be added while the server is still running), and parallel indexes. Web SQL Server Web Edition is a low- option for Web hosting.

Business Intelligence Introduced in SQL Server 2012 and focusing on Self Service and Corporate Business Intelligence. It includes the Standard Edition capabilities and Business Intelligence tools: PowerPivot, Power View, the BI Semantic Model, Master Data Services, Data Quality Services and xVelocity in-memory analytics. Workgroup SQL Server Workgroup Edition includes the core database functionality but does not include the additional services. Note that this edition has been retired in SQL Server 2012.

SQL Server Express Edition is a scaled down, free edition of SQL Server, which includes the core database engine. While there are no limitations on the number of databases or users supported, it is limited to using one processor, 1 GB memory and 10 GB database files (4 GB database files prior to SQL Server Express 2008 R2). It is intended as a replacement for. Two additional editions provide a superset of features not in the original Express Edition. The first is SQL Server Express with Tools, which includes Basic. SQL Server Express with Advanced Services adds full-text search capability and reporting services.

Specialized editions Azure SQL Database is the version of Microsoft SQL Server, presented as a offering on. The compact edition is an embedded database engine. Unlike the other editions of SQL Server, the SQL CE engine is based on SQL Mobile (initially designed for use with hand-held devices) and does not share the same binaries. Due to its small size (1 MB DLL footprint), it has a markedly reduced feature set compared to the other editions.

For example, it supports a subset of the standard data types, does not support stored procedures or Views or multiple-statement batches (among other limitations). It is limited to 4 GB maximum database size and cannot be run as a Windows service, Compact Edition must be hosted by the application using it. The 3.5 version includes support for ADO.NET Synchronization Services. SQL CE does not support ODBC connectivity, unlike SQL Server proper. Developer SQL Server Developer Edition includes the same features as SQL Server Enterprise Edition, but is limited by the license to be only used as a development and test system, and not as production server. Starting early 2016, Microsoft made this version free of charge to the public.

SQL Server 2005 Embedded Edition is a specially configured named instance of the SQL Server Express database engine which can be accessed only by certain Windows Services. Evaluation SQL Server Evaluation Edition, also known as the Trial Edition, has all the features of the Enterprise Edition, but is limited to 180 days, after which the tools will continue to run, but the server services will stop.

Fast Track SQL Server Fast Track is specifically for enterprise-scale data warehousing storage and business intelligence processing, and runs on reference-architecture hardware that is optimized for Fast Track. LocalDB Introduced in SQL Server Express 2012, LocalDB is a minimal, on-demand, version of SQL Server that is designed for application developers. It can also be used as an embedded database.

Analytics Platform System (APS) Formerly Parallel Data Warehouse (PDW) A (MPP) SQL Server appliance optimized for large-scale such as hundreds of terabytes. Datawarehouse Appliance Edition Pre-installed and configured as part of an appliance in partnership with Dell & HP base on the Fast Track architecture.

This edition does not include SQL Server Integration Services, Analysis Services, or Reporting Services. Discontinued editions Microsoft SQL Server Data Engine / Desktop Engine / Desktop Edition.

SQL Server 7 and SQL Server 2000. Intended for use as an application component, it did not include GUI management tools. Later, Microsoft also made available a web admin tool. Included with some versions of, Microsoft development tools, and other editions of SQL Server.

Personal Edition SQL Server 2000. Had workload or connection limits like MSDE, but no database size limit. Includes standard management tools. Intended for use as a mobile / disconnected proxy, licensed for use with SQL Server 2000 Standard edition. Datacenter SQL Server 2008 R2 Datacenter is a full-featured edition of SQL Server and is designed for datacenters that need high levels of application support and scalability.

It supports 256 logical processors and virtually unlimited memory and comes with StreamInsight Premium edition. The Datacenter edition has been retired in SQL Server 2012; all of its features are available in SQL Server 2012 Enterprise Edition. Architecture The protocol layer implements the external interface to SQL Server. All operations that can be invoked on SQL Server are communicated to it via a Microsoft-defined format, called (TDS).

TDS is an application layer protocol, used to transfer data between a database server and a client. Initially designed and developed by Sybase Inc.

For their relational database engine in 1984, and later by Microsoft in Microsoft SQL Server, TDS packets can be encased in other physical transport dependent protocols, including, and. Consequently, access to SQL Server is available over these protocols. In addition, the SQL Server API is also exposed over. Data storage is a, which is a collection of tables with columns.

2000 sql server databases

SQL Server supports different data types, including such as Integer, Float, Decimal, Char (including character strings), Varchar (variable length character strings), binary (for unstructured of data), Text (for textual data) among others. The of floats to integers uses either Symmetric Arithmetic Rounding or Symmetric Round Down ( fix) depending on arguments: 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, and, along with a transaction log.

Microsoft

A SQL Server database can contain a maximum of 2 31 objects, and can span multiple OS-level files with a maximum file size of 2 60 bytes (1 exabyte). 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 to allow the data of a single database to be spread across more than one file, and optionally across more than one file system. 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 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 in the 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 extent which 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 varchar or varbinary data, the data in those columns are moved 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 over a. Rows in each partition are stored in either or structure. If the table has an associated, clustered 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 has the same storage structure as an indexed table. A table without a clustered index is stored in an unordered heap structure. However, the table may have non-clustered indices to allow fast retrieval of rows. In some situations the heap structure has performance advantages over the clustered structure. Both heaps and B-trees can span multiple allocation units. Buffer management SQL Server pages in RAM to minimize disk 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 pages will 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, 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 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. 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: and. 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 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 yield higher performance.

SQL Server also includes two more lightweight 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 —in case they do, SQL Server takes remedial measures, which in many cases are to kill one of the threads entangled in a deadlock and roll back 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 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 and programmability The main mode of retrieving data from a SQL Server database is for it. The query is expressed using a variant of called, a dialect Microsoft SQL Server shares with due to its legacy. The query specifies what is to be retrieved. It is processed by the query processor, 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. There might be multiple ways to process the same query. For example, for a query that contains a statement and a 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 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 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, 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 or not. While a concurrent execution is more costly in terms of total processor time, because the execution is actually split to different processors 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, the cached plan is used.

Unused plans are discarded after some time. SQL Server also allows 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). 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. Main article: T-SQL (Transact-SQL) is the secondary means of programming and managing SQL Server. It exposes keywords for the operations that can be performed on SQL Server, including creating and altering database schemas, entering and editing data in the database as well as monitoring and managing the server itself.

Client applications that consume data or manage the server will leverage SQL Server functionality by sending T-SQL queries and statements which are then processed by the server and results (or errors) returned to the client application. SQL Server allows it to be managed using T-SQL. For this it exposes read-only tables from which server statistics can be read. Management functionality is exposed via system-defined stored procedures which can be invoked from T-SQL queries to perform the management operation. It is also possible to create linked Servers using T-SQL. Linked servers allow a single query to process operations performed on multiple servers.

SQL Native Client (a.k.a. SNAC) SQL Native Client is the native client side data access for Microsoft SQL Server, version 2005 onwards.

It natively implements support for the SQL Server features including the implementation, support for mirrored SQL Server databases, full support for all data types supported by SQL Server, asynchronous operations, query notifications, support, as well as receiving multiple result sets in a single database session. SQL Native Client is used under the hood by SQL Server plug-ins for other data access technologies, including.

The SQL Native Client can also be directly used, bypassing the generic data access layers. On November 28, 2011, a preview release of the SQL Server driver for was released. Main article: Microsoft SQL Server 2005 includes a component named ('Common Language Runtime') via which it integrates with. Unlike most other applications that use.NET Framework, SQL Server itself hosts the.NET Framework, 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 resolution services for.NET code as well.

With SQL CLR, and can be written in any, including and. Can also be used to define UDT's , which can persist in the database. Is compiled to and after being verified for, registered at the database. After that, they can be invoked like any other procedure. However, only a subset of the is available, when running code under SQL CLR. Most APIs relating to functionality are not available. When writing code for SQL CLR, data stored in SQL Server databases can be accessed using the like any other 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 provider that allows the connection to be redirected to the same session which already hosts the running code. Such connections 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 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 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 and presents their own to control and interact with them.

Service Broker Used inside an instance, programming environment. For cross-instance applications, Service Broker communicates over and allows the different components to be synchronized, via exchange of messages.

The Service Broker, which runs as a part of the database engine, provides a reliable messaging and platform for SQL Server applications. 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. Lulla 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 three different 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.

Sql Server 2000 Standard Edition Download

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. Needs to be configured on a column if merge replication is configured.

Snapshot replication Snapshot replication publishes 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 adds and capabilities for SQL Server databases. The OLAP engine supports, and storage modes for data. Analysis Services supports the standard as the underlying communication protocol.

The cube data can be accessed using and LINQ queries. Data mining specific functionality is exposed via the query language. Analysis Services includes various algorithms—, clustering algorithm, algorithm, time series analysis, sequence clustering algorithm, linear and logistic analysis, and —for use in data mining. Reporting Services.

Main article: SQL Server Reporting Services is a report generation environment for data gathered from SQL Server databases. It is administered via a. Reporting services features a interface to support the development of custom reporting applications. Reports are created as files.

Reports can be designed using recent versions of (Visual Studio.NET 2003, 2005, and 2008) with, installed or with the included. Once created, RDL files can be rendered in a variety of formats, including Excel, and, and HTML Web Archive. Notification Services. Main article: 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. 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 was discontinued 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. 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 allows for inexact matching of the source string, indicated by a Rank value which can range from 0 to 1000—a higher rank means a more accurate match.

It also allows linguistic 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 match. T-SQL exposes special operators that can be used to access the FTS capabilities. 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 to extract meaningful text from the binary blob (for example, when a 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, an is created, associating each word with the columns they were found in. SQL Server itself includes a Gatherer component that monitors changes 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 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 returned to the client via the SQL Server process. SQLCMD SQLCMD is a command line application that comes with Microsoft SQL Server, and exposes the management features of SQL Server. It allows SQL queries to be written and executed from the command prompt.

It can also act as a to create and run a set of SQL statements as a script. Such scripts are stored as a.sql file, and are used either for management of databases or to create the database schema during the deployment of a database. SQLCMD was introduced with SQL Server 2005 and this continues with SQL Server 2012, 2014 and 2016. Its predecessor for earlier versions was OSQL and ISQL, which is functionally equivalent as it pertains to TSQL execution, and many of the command line parameters are identical, although SQLCMD adds extra versatility.

Visual Studio. Main article: is a tool included with SQL Server 2005 and later for configuring, managing, and administering all components within Microsoft SQL Server. The tool includes both script editors and graphical tools that work with objects and features of the server. SQL Server Management Studio replaces as the primary management interface for Microsoft SQL Server since SQL Server 2005. A version of SQL Server Management Studio is also available for SQL Server Express Edition, for which it is known as SQL Server Management Studio Express (SSMSE).

A central feature of SQL Server Management Studio is the Object Explorer, which allows the user to browse, select, and act upon any of the objects within the server. It can be used to visually observe and analyze query plans and optimize the database performance, among others. SQL Server Management Studio can also be used to create a new database, alter any existing database schema by adding or modifying tables and indexes, or analyze performance. It includes the query windows which provide a GUI based interface to write and execute queries. SQL Server Operations Studio SQL Server Operations Studio (Preview) is a cross platform query editor available as an optional download. The tool allows users to write queries; export query results; commit SQL scripts to repositories and perform basic server diagnostics. SQL Server Operations Studio supports Windows, Mac and Linux systems.

Business Intelligence Development Studio. Lextrait, Vincent (July 2010). Archived from on May 30, 2012. Retrieved September 5, 2010.

Microsoft Evaluation Center. Microsoft Corporation. Retrieved July 18, 2011.

December 21, 2017. Retrieved February 1, 2018. Retrieved 2016-07-28. SQL Server homepage. Microsoft Corporation.

Retrieved 2007-12-03. ^ Kalen Delaney.

Inside Microsoft SQL Server 2005: The Storage Engine. access-date= requires url=. Retrieved 2011-07-21. Retrieved 2013-06-15. Retrieved 2010-04-23.

Retrieved 2008-08-15. SQL Server home. Microsoft Corporation. Retrieved July 18, 2011.

Retrieved 2009-03-26. Retrieved 2009-03-26. Retrieved March 11, 2013. Retrieved 2015-04-29. Microsoft Corporation. Retrieved July 18, 2011. Retrieved 2007-12-02.

Retrieved 2007-12-02. Retrieved 2007-12-02. Retrieved 2007-12-03. Retrieved 2007-12-03. Retrieved 2007-12-03.

Retrieved 2007-12-03. SQL Server Team Blog.

Retrieved 2013-06-15. Retrieved 2007-12-03. Htc diag drivers windows 7 x64. Retrieved 2008-09-05. Retrieved 2007-12-03. Retrieved 2007-12-03. Retrieved 2007-12-03.

Retrieved 2007-12-03. Retrieved 2007-12-03. Retrieved 2011-09-29. Retrieved 2007-12-03.

Retrieved 2007-12-03. Retrieved 2007-12-03. Retrieved 2011-09-04.

Retrieved 2008-11-14. Archived from on 2008-10-16. Retrieved 2008-09-17. Retrieved 2008-09-17.

Retrieved 2007-12-03. Retrieved 2007-12-03. Retrieved 2007-12-03.

Retrieved 2007-12-03. Retrieved 2007-12-03. Retrieved 2011-09-04. Retrieved 2011-09-04. Retrieved 2011-09-04. Retrieved 2011-09-04.

Retrieved 2018-01-19. Retrieved 2007-12-03. Further reading.