Tuesday, December 19, 2006

SQL Server File Extension (*.MDF)

The file extension for a SQL Server file is *.MDF.

Monday, December 04, 2006

DB Code Like Normal Code

Something could be done either within the DTS stuff or within the database.

Might be hard to see where something is being done.

General SQL 2000 Site


This site looks pretty good and has some nice detail:

http://www.functionx.com/sqlserver/

Data Transformation Services (SQL 2000)

This is a neat site that talks about the data transformation services (DTS):




http://www.sqldts.com/


This is also a nice tutorial:




One lone link. Click on picture :-)





In SQL 2005 DTS has becomes SQL Server Integrated Services (SSIS):




http://www.sqlis.com/




Friday, December 01, 2006

SQL Server Tutorial

This tutorial is found here: http://www.functionx.com/sqlserver/Lesson01.htm

Your start and stop the server using the SQL Server Service Manager. This is installed on my current machine.

Introduction

Can open database from Query Analyzer or Enterprise Manager.

SQL

SQL Server 'highly adheres' to the SQL standard. However, there are internal detail that may not apply to other databases.

the SQL command are run internally through an interpreter.

SQL is not case sensitive. It is tradition to write all SQL key words in uppercase.

What are the different way to bring up a SQL Query Analyzer?

  1. From the start menu.
  2. You can also get to from inside the Enterprise Manager
The issue of the semicolon seems to be a problem. It is not really used.

SQL Server uses the 'GO' statement for a set of statements to be processed.

Can easily create a database from SQL Analyzer using:

CREATE databasename;

I think I should use semicolons so that the SQL code is more portable.

Using SQL Analyzer for a simple query is quick and probably not as prone to crashing.

Collation Name - a collation is bit patterns that represent each character and rules by which the characters are sorted and compared.

When a SQL Server database is created it creates 20 tables that define things about the database.

The post fix for a SQL Server database file is 'MDF'.

The 'Compatibility Level' is the version of SQL Server under which the database was created. Database created in SLQ Server 2000 are 80. This value seem to correspond one-to-one with the version, version 8.0 is 80, and version 6.5 is 65, etc.

'GO' is a set SQL Server statements indicates the end of a batch of Transact-SQL statments. It is a utility command that requires no permissions so it can be executed by any user.

The 'USE' statement will change the database in the SQL Analyzer Query window.

Is DECLARE an SQL statement or just a Transact-SQL statement?

The SQL Server GUI in SQL Server Enterprise Manager has many similarities with ACCESS.

SQL Server has a whole bunch of store procedures:

sp_help
sp_rename
sp_who

SQL Server

The following is my notes from the tutorial found here:

http://www.functionx.com/sqlserver/Lesson01.htm

I have also gleaned some information from the wikipedia:

http://en.wikipedia.org/wiki/Microsoft_SQL_Server

The current version of SQL Server is "SQL Server 2005" and it version is 9.0 and its codename is Yukon.

Extract, transform, load (ETL): http://en.wikipedia.org/wiki/Extract%2C_transform%2C_load

Is one of the features added to SQL Server since 2000.

The next release is code named Katmai.

It look like the MicroSoft may have some interesting things coming up like: WinFS, SQL Server capabilities being integrated directly into Windows itself.

Window Future Storage (WinFS) - http://en.wikipedia.org/wiki/WinFS

Wednesday, November 29, 2006

Details of the Relational Algebra

Access's Query Design mode provides a graphical environment to create and edit queries.

Table schemes are added in the upper portion of the Query Design window.

The design grid is in the lower part of the window.

Access takes care of forming the appropriate join based on the relationship information shown in the upper portion of the window.

Access SQL is more powerful than the Access Query Design interface.

Query Languages and the Relational Algebra

Access SQL is a special form of standard SQL.

Query Languages

query - a request of the database, the response to which is a result table.

Queries permit me to extract the data from the database in meaningful forms.

Query languages can be based on algebraic expression or logical expressions.

base table - a table whose data are actually stored in the database.

view - a query expression that has been given a name, and is stored in the database. The expression is the view and not the result table.

virtual table - a view because it is an expression that results in a table.

Relational Algebra and Relational Calculus

relational algebra - the most common algebraic query language.

procedural - the expression describe an explicit procedure for returning the results. Relational algebra is a procedural language.

relational calculus - uses logic.

nonprocedural - expressions represent statements that describe conditions that must be met for a row to be in the result. Example is relational calculus.

Plan English:

Get the names and phone numbers for publishers who publish books costing under $20.00.

Relational Algebra:

projPubName,PubPhone(selPrice<20.00(BOOKS join PUBLISHERS))

Relational Calculus:

{(x,y) | PUBLISHERS(z,x,y) and BOOKS(a,b,z,c) and c < $20.00}

Relational Database Design Principles

Keys and Superkeys

superkey - a set of attributes that uniquely identifies any entity from among all possible entities in the entity class.

key - A superkey that has no proper subset of it is also a superkey.

Redundancy

Attributes can be used for identification and/or informational purposes.

Normal Forms

A normal form is a special set of forms, properties, or constraints a table scheme may possess, in order to achieve certian desired goals.

normalization - the process of changing a database design to produce table schemes in normal from.

First Normal Form

First Normal Form (1NF) occurs when all attributes in a table scheme are indivisible.

scalar or atomic attribute - an attribute that only allows indivisible values.

structured attribute - an attribute that allows a list of divisible items.

Good database design almost always requires that an attribute be atomic so that the table scheme is in first normal form.

Functional Dependencies

The attribute of left completely determines the attribute of the right.

{PubName, PubPhone} -> {PubID}

superkey - a set of attributes upon which all other attributes of the table scheme are functionally dependent.

trivial dependencies - If we know the values of A, B, C, then we know the value of A and B.

nontrivial - If is is not a trivial dependency.

Second Normal Form

Second Normal Form (2NF) occurs when all strictly informational attributes are attributes of the entities in the table scheme, and not of some other class of entities.

example: {City, Street, HouseNumber, HouseColor, CityPopulation}

CityPopulation is strictly informational and gives information about that city and not the house address.

{City} -> {CityPopulation}

Third Normal Form

Third Normal Form (3NF) occurs only if strictly informational attributes depend only upon superkeys.

Boyce-Codd Normal Form

Boyce-Codd Normal Form (BCNF) occurs if no attribute depends upon anything other than a superkey.

Table Scheme {City, StreetName, ZipCode}

{City, StreetName} -> {ZipCode}

and:

{Zipcode} -> {City}

Normalization

{ISBN, Title, Authors} becomes {ISBN, Title, AuID} and {AuID, AuName} which is 1NF.

{City, StreetName, ZipCode} becomes {ZipCode, City} and {ZipCode, StreetName} which is BCNF.

A design of a database may begin with E/R diagram. If some of the table schemes have redundanceis, it may be desirable to split them into smaller table schemes that satisfy a higher normal form.

Decomposition

lossless decomposition - decomposing a table scheme into small schemes does not cause any information to be lost.

dependency-preserving decomposition- decomposing that doesn't cause any dependencies to be lost.

Books I'm Using

I am using the following books to study from:

"Access Database Design & Programming," by Steven Roman, published by O'Reilly Press.

I like this because it is a typical O'Reilly book and keep it coming fast.

"Mastering Microsoft Access 2000 Development" by Alison Balter, published by SAMS.

The lady that wrote this book seems to know a lot about database and the development and business process involved.

"SQL Server 2000" by Robin Dewson, published by WROX.

"Mastering Access '97" by ?, published by ?.

I have used this book enough to have an opinion.

Learning About Database

Although I have some knowledge of databases, I have come to realize that I really know very little. Therefore, I am starting this blog to record my experiences as I learn.