What database program can be used for this? - database

I'm in a database class. We're learning about joins, unions, and projections.
Is there a program that would be helpful in getting practice? Like I an expression and it selects the appropriate fields in a table.

Please don't bother downloading and trying to install a server DBMS (plus one or more clients) for this simple task. If you're taking a course in being a database administrator you might want to spend hours learning these technologies (and, if you go on to work with these products seriously you will, eventually, need to master some of them), but if you just want to practice SQL queries, there are sites that let you do just this.
You can find some nice on-line exercises here: http://sqlzoo.net/.

MySql is easy to use and free so that would be my choice. The community server is the one you want to download.
http://www.mysql.com/
I would recommend getting the Workbench tool as well to make this easier to create tables and mess around with them.

Download and install Microsoft SQL Server 2008 R2 Express, with Management Tools. Has everything you need to get started and it's 100% free.
You can get it here: http://www.microsoft.com/sqlserver/en/us/editions/express.aspx
Or if you are willing to part with $50, you can buy SQL Server 2008 R2 Developer Edition (full enterprise/data center edition, just with licensing restricting only to development, testing, and demoing) to do some really cool stuff.

Related

Trying to deploy an Entity Framework Code First application without much luck? Best Deployment strategy?

Despite a few hiccups and a few workarounds, my MVC based Entity Framework (Code First) application is now complete and ready for deployment.
I originally tried developing through SQL Express, however, I had non stop problems with the Code First approach as I asked about here which made it completely unworkable.
So, in the end, I developed it following the majority of guidelines and used SQL Compact Edition. This has been absolutely brilliant for development - but - now it has come to deployment and I am stuck.
I have seen some people saying about generating the Schema from the .SDF file, however, there are differences and restrictions in Compact edition such as nvarchar being limited to a length of 4000, and I need max in my application.
So basically, what can I do?
In addition - but not essential - , I am going to be moving on to the next project shortly, It will involve heavy usage of items needing to be stored in a database that are longer than 4000 characters. Are there any better strategies now for development / Is it possible to use Code First with SQL Server Express or SQL Full (I have MSDN and willing to install/use anything that will help).
Here are my unofficial recommendations:
SQL CE is not a viable option for most production applications that are based on MVC (although I have used it in production services in rare cases).
I would try to avoid switching databases between development and production - i.e., don't test on SQL CE and deploy to SQL Express or something else.
I have never tried to open an MDF inside of Visual Studio - maybe I'm misunderstanding what you're saying here, but in general I'd recommend using the SQL Server-specific tools to manage databases: http://www.microsoft.com/download/en/search.aspx?q=sql+server+management+studio+express.
Regarding the other post, I would generally discourage using the AttachDBFilename portion of connection strings unless you need it for a specific purpose.
It sounds like you may want to review the available database initialization strategies: http://blog.oneunicorn.com/2011/03/31/configuring-database-initializers-in-a-config-file/.
There are lots of walkthroughs on our blog and the MVC MSDN site - if those don't work for you feel free to reach out to us from our blog and provide feedback on what we can do better!
Our blog: http://blogs.msdn.com/b/adonet/
MVC walkthroughs: http://www.asp.net/mvc/tutorials/getting-started-with-mvc3-part4-cs
On the one hand regarding deployment/migration you might want to take a look at http://exportsqlce.codeplex.com
On the other hand I've been checking Microsoft SQL Server Compact 4.0 Books Online and in principle there is no known issues with data types, although the limitation you mentioned for nvarchar is confirmed.
Finally in order to elaborate a strategy you might find interesting the Differences Between SQL Server Compact and SQL Server
You need to create a debug and a release specific web.config file:
In the release specific file you remove the connection string, so it creates a database for you.
In the debug specific file you keep the connection string.
However, I would suggest you to not use a connection string and use SQL Management Studio instead. Given that the Compact Edition does not support your requirement, this is a good time to switch...

Suggestions on including free database products to include in an application - SQL Server Express or other

I am working on an enterprise level product that is designed around SQL Server Express and specifically its features (views, concurrent users, stored procedures, CASE and IF statements).
Though we don't use any advanced SQL Server features, the database size limit of 4GB in the Express edition may up being a limitation. A work-around is that customers can move to more full-featured versions of SQL Server.
The problem is that SQL Server Express deployment is not easy, and the installer size is huge. This is a major drawback for someone looking to try our product. You don't want end-users to not buy a product because the download is huge.
Does anyone have any recommendations of a database that has a smaller footprint but all the features of Express and which can be migrated to express?
Check out SQL Server Compact.
If what you really need is just a relational database, you can probably use SQL Server Compact Edition or SQLite.
It depends what you're looking for when you say "all the features of Express."
Edit after comments and edited question:
It sounds like you need Express, but I hear you about the huge installer size, which will be an issue even if you embed it in your own installer ( http://msdn.microsoft.com/en-us/library/dd981032(SQL.100).aspx).
You could also offer several trial options:
Use an existing SQL instance (small download + instructions to configure DB)
Full, self-contained trial (big download)
Demo trial (small download, single-user database; no server required)
That way companies that have running SQL/Express instances don't have to download the installer again, if they don't want it, and those who just want to see how it looks and feels can get the "demo" trial, and those who simply must have the full-fledged product are going to see and understand that the database server component is what is huge and they'll have to be a little patient for it (or call/E-mail you for a CD copy).
PostgreSQL is one of your options.
Its not smaller, around 35M packe and over 100M unpacked.
But it fits your requirements by the licensing model.
It has all the features.
You can make the deployment easy because you can preconfigure the binaries version you can supply with your own software.
Users will never need to migrate because this is powerful enough (ex. Skype uses it for its backend)
EDIT:
An interesting alternative may be Firebird (free, 7MB)
and maybe some commercial ones like NexusDB
Check this Wikipedia article: Comparison of relational database management systems.
There's more than 50 RDBMS's listed and you'll probably find something that suits your needs.

What is The Best Local DataBase Managment Software?

I Want Implement a Software by C#.net.I want Use a DataBase Manager Software like Access or SqlLite or etc.My Program Saved Many Data in Local Machine.
I Do Not Want Publish or Move Data to Other Pcs
What DataBase Manager Software Must be Choose?
Not Different DataBase is Free or have a price.
what is the Best DataBase Manager Software to Save many Data in Local Machine?
For sure you are looking for a free database so for that you can use many databases like mysql ,postgresql , and sql server msde or access
but we still have other scenario, if you are going to distribute this application to other pcs so you have to think about deployment and in this case you can eliminate the mysql , postgresql because they depend on servers but msde (it's also server ) is much easier and you can found alot of tutorials how to deploy it with your project
It depends on how much you are expert in database and for what reason you are using it? are you going to need complex queries or it just a storage place for the data ?
if it's complex query i will go for msde for sql server if it's only for saving information may be i will go for access or even xml
Well if you are developing in C# consider using the MSSql Compact Edition. This allows you to create a local database and use it much like SqlLight. However, the support is much better, especially when you using Visual Studio. There you can find it as LocalDatabase under Data when you adding a new item. (Not 100% sure whether it is present on all versions of VS though).
Firefox has an SQLite Manager add-on.
I think the best choice depends on your needs, for example if you must synchronize data with sql server for me the best choise was sql express.
I would vote for SQL Express. You get essentially a scaled down SQL Server that is capable of working with quite a bit of data. SQL Express plays well with Visual Studio and you will be able to take advantage of the System.Data.SqlClient and related namespaces which come with the .NET framework out of the box. They are also better than the Odbc namespaces. Finally, there is a LOT of online support for SQL Express and, as far as I know, SQL Express's flavor of SQL (T-SQL) is the same as that of SQL Server. So should you one day need the flexibility of running with either or (local database, or server database) you will have it. Also, SQL Express is fairly commonly used in the microsoft world so you should be able to find lots of examples, if need by.
TurboDB for .NET from dataweb is a good solution, if you want a powerful engine with stored procedures and professional support from the manufacturer:
http://www.dataweb.de/en/products/dotnet_database.html

What are the downsides of sqlserver 2008 (vs 2005)

I'm starting a new project and I'm considering using sqlserver 2008.
I've had a lot of trouble getting teamsystem to work with it, and I'm wondering if sql server 2008 is widely used in productions environment yet.
What whould you choose? How do you compare sqlserver 2005 and 2008?
EDIT : I agree about the obvious and general tradeoff between new (new features, one painfull migration avoided in the future) and old (less bugs, more documentation). I've already browse the web about differences between 2005 and 2008. My question is more specific : Are YOU using 2008? are YOU experiencing problems (such as the FTS mentionned below?)
Maybe you should take a look at Breaking Changes to Database Engine Features in SQL Server 2008 for if you go with 2005 and try and upgrade later.
Personally at this stage I'd go with 2005 and avoid the features outlines in the article. Your customers/application/developers won't lose out on much (if any) functionality.
Database systems are one of the areas that considering the change is costly. From what I have seen so far, since 2005 works pretty well, large projects are probably still using it (some large projects even still use 2000). However, it doesn't mean 2008 is bad or doesn't worth it. If you are considering a new project, you should probably go with 2008. I don't think there are any big downside to do so.
About TFS, I got to say, team foundation server has one of the worst installation experiences I have ever seen in a Microsoft product. I believe it's an issue with TFS not SQL Server 2008. By the way TFS SP1 is compatible with 2008, but you have to integrate the service pack first.
One downside to 2008: Full-Text search is slower (in some cases, at least). This hit Stack Overflow (the link is to the SO blog). There are good reasons behind the change, but it's worth knowing about before you start.
If you don't need any of the functionality of SQL Server 2008, then I would recommend using SQL Server 2005 SP3. This is a mature, robust and feature-rich database platform. I am currently implementing a strategic database platform for a client right now and have standardised on SQL Server 2005 SP3 64bit clusters. None of my client's applications require any SQL Server 2008 features, and I get the comfort of knowing that SQL Server 2005 has been used in the field for three years now.
Main downside: you will be discovering the new bugs and you will be waiting for the corresponding packs or hotfixes. Please have a look at this page (cumulative update pack 11 for SQL server 2005) or navigate in the Microsoft Knowledge Base, close your eyes and imagine all the pain other users went through when they discovered these buggs ...
EDIT: we do not use SQL 2008. We do not need any of its new functionalities.
This is always a risk in moving to a new version of a program. These are some questions you should be asking yourself:
Have you already completed a lot of manual testing on the old version?
Can you cope with a bug in the new version?
How long has the new version been in use by other people?
Are you at the start or end of a project cycle?
The big risk in not moving to the new version now is that:
You will be forced to move later and that may not be such a good time for you. (But you may be able to skip a release so not having to repeat the pain as many times)
You can’t use what has been added to the new version
In the long term a lot less people will know how to use the old version
It is not good for your staff’s CV to be using too many very old versions of different things – hence it may affect your staff turnover etc.
So you need to plot, “pain” and “benefit” against time and then you will clearly see the right time to move; however we can’t see forward in time, and we can’t move back in time!

SQL Server Management Studio as Application Platform

Could the SQL Server IDE ever become an application development platform for enterprise applications? In a similar way to the old xBase applications, but, you know, better?
The main reason is that the Management Studio is one of the best “data centric” application I’ve ever used. It has most of the main ingredients for the proposed solutions:
powerful data manipulation language (SQL :o) )
good security
distributed architecture
The main features that it lacks:
a GUI toolkit: something simple and standard, enterprise applications usually don’t require fancy UIs
some form of automation (.Net, COM, I really don’t care as long as it works)
MS Office integration (especially Excel)
So…?
UPDATE:
The question above is a request for feedback on an idea. I'm not planning to use SSMS to build an interactive application in the near future. I would really like to hear what do you think about it and what other suggestions you might have (maybe there is already a product which does exactly that).
A shorter text for the question would be "If SSMS and MS Access could marry, how would their child look like?"
2nd UPDATE:
"Microsoft announces its new product codename 'Frankenstein'. The new product tries to combine the ease of development of database applications from the old Fox Pro and Access times, with the brand new SQL Server 2012 suite. As 'Frankenstein's Product Manager, Jim Bob, stated "[Frankenstein] will enable the developers to shut the f*#k up, and just build that thing already. Not spend their (highly remunerated) time arguing what's the best ORM, or AJAX toolkit, or should they use SOA etc... (btw, since 2009, SOA is dead)"
Well it depends on what way you look at it.
You can extend and build plugins for management studio but you can also use the visual studio shell as the base for new applications (altho I don't think this is what you want?)
However re-reading your question it looks like you actually want to build applications for SQL server. In that case you might want to check out Visual Studio Team Systems Database Edition
There's two risks involved with building applications on top of SQL Server Management Studio.
First, SQL Server Management Studio has been fairly consistent from 2005 to 2008, but that's only three years of release time. SQL Server 2000's tools were dramatically different, and there's no reason to expect SQL Server management tools to always remain the same.
For example, at the Professional Association for SQL Server (PASS) Summit in Seattle in 2008, Microsoft demoed a new management framework for SQL Server. The databases will be packaged and managed in a way quite different from what we're used to in SSMS. Project Kilimanjaro (think of it as SQL 2008 R2) will be the "down payment" on that management, with the rest of the tools coming in later versions. SSMS will look, feel and work differently in order to accomodate this new way of building database-driven applications.
Second, Microsoft's architecture for SSMS is not pluggable, and they haven't encouraged any third party development inside SSMS that I'm aware of. You can build some level of interactivity by using RDLC reports - standalone SQL Server Reporting Services applications that run inside SSMS - but for the most part, you're not encouraged to build atop SSMS because they do want the right to change it when they need to improve it.
I've got good news, though - you mentioned that you'd want some kind of Office tie-in. Keep your eye out for Project Gemini announcements. Donald Farmer did demos of it at PASS, and there's probably some video circulating around. It uses Excel as a front end for BI analytics, and they used million-row-spreadsheets that were storing data back in SQL. There's not much out out yet for the public, but keep your eyes peeled.
To answer the shorter question - Have you seen the various Frankenstein films?
The longer question - why would you want it to, you already have Visual Studio? SSMS is an excellent environment for developing stored procedures, queries, views and the like, lets leave it that way. And anyhow, the only good XBase environment was FoxPro and look where that ended up.

Resources