I just installed my oracle database and made some tables for school. My problem is that it looked kind of different because the one we use in school had no tables(clean and empty) but the one that I had installed is filled with tables that I do not understand(I did not make them either).
It is a new install I got from the official website and it had tables named like: AQ$_INTERNET_AGENT_PRIVS, AQ$QUEUES and much more. I have no idea where they come from and every time I go look at my tables I just get confused because of all these things mixed in.
Is it safe to remove them or are they important enough to keep? If removing them is a bad idea, what do I have to do so that I don't see them anymore and all that is listed are the tables that I have created myself?
Those are system tables, you're probably logging in to an account with DBA privileges. Create yourself a new schema (user_id/password) and don't give yourself dba privileges, then you can remain as ignorant as you want about what Oracle is doing under the hood.
Is there a way to store all timestamps and details of modifications of fields in a table automatically in Filemaker Pro 13? ie is there an easy option somewhere that Filemaker provides, or must I do this programmatically / manually?
Ray Cologon, PhD and allround FileMaker superstar, wrote a custom function that works well for us. It is free to use, but you must have a copy of FileMaker Pro Advanced to install the custom function.
http://www.nightwing.com.au/FileMaker/demosX/demoX01.html
FileMaker does not provide a ready-to-go method of audit logging. However, there are a few decent options. Linear Blue provides fmDataGuard and SyncDek just for this purpose, and does a very nice job. (SyncDek is great for [and requires] FileMaker Server; fmDataguard is great for standalone databases and small server deployments.)
Nightwing's solution is clever and hooks up very similarly to fmDataGuard, but I think fmDataGuard is more robust.
All of these audit logging solutions have a critical limitation. You cannot log deletions as a [Full Access] user. If this is critical for your application, SyncDek is the only solution that offers a work-around in the latest versions: record change polling.
There is a final possibility that might be worth considering for some applications. Databases like MySQL have audit log plugins without the permissions limitations of FileMaker. You can connect FileMaker to one or more MySQL databases and use their tables more-or-less like native FileMaker tables. With the MySQL audit log plugin, you can get your audit logging and use FileMaker for your UI.
You can do this programmatically. But with the help of MBS Plugin you can achieve this easily.
Here is the documentation link
Example :
MBS( "Audit.Changed"; timestamp; TableName { ; FieldsToIgnore } )
I'm leading a small software development team (4 people), and have just broken ground on a source-controlled SQL Server 2008 database project, with isolated development databases for each developer. I'm still implementing this one step at a time, but I'm envisioning each developer having their own database, with a naming scheme something like <ProjectName>_DEVELOPMENT_<TFSUserName>. This was all recommended per the MSDN articles I've been reading, but someone let me know if that sounds way off.
Anyway, we have a shared application solution that we've been developing for some time. In the past, we had no database version control, and just modified our database directly from SQL Server Management Studio when new reference data needed to be populated, or when we were testing functionality -- one change immediately affected everyone else. So with this new change, I'm wondering what the best way would be to have each person connect to their isolated development databases from the application solution. Prior to isolated databases, our connection to the database was specified in our application's web.config as a connection string. If we're each going to have our own database, the only way I can see it working is for each developer to set their connection string in their local solution to point to their personal database. But changing the web.config will check out that file in the solution, so developers will always have to specifically uncheck that file when checking in application changes to the baseline. Is there a less clunky way for each developer to use their isolated database when doing application testing?
I recommend that you not make the database names username-specific. Instead make the database the same name for each developer and always reference it via localhost (localhost\<ProjectName>_DEVELOPMENT). Then the same connection string will work for every developer.
MSDN's suggestion to use username-specific databases is better for a shared development environment. It's definitely not ideal for a localized environment.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I'm developing a small application with C# in .NET and I want to have a small light weight database which does not use much resources.
Could you please list some of the best known light weight database softwares.
14/06/2016 Yep... still getting upvotes :-/
17/03/2014 I'm still receiving upvotes for this, be mindful of the date this was originally answered. Though the main three items listed are still entirely viable, the list will tend towards becoming stale. There are further database technologies available that are not listed.
You have a couple of immediately recognisable and free options:
SQL Server Express LocalDB
SQL Server Compact Edition
SQLite
The SQL Server Compact download comes with the ADO.NET provider that you will need to reference in code. The SQLite download might not have it so here is a link:
http://sqlite.phxsoftware.com/
All three use SQL, though likely with a few limitations / quirks. Management Studio works with Compact and LocalDB, whereas with SQLite you will need another UI tool such as SQLite Administrator:
http://sqliteadmin.orbmu2k.de/
There are NoSQL alternatives, such as:
Sterling
RavenDb
Personally I would avoid using MS Access in the face of other free options. You cannot go wrong with LocalDB, Compact, or SQLite. They are all lovely small databases that run relatively quickly in little RAM - personal preference as to the religious aspects about liking a Microsoft product I suppose :-)
I use Sterling for Windows Phone programming as it is built to use Isolated Storage. I have only seen articles on RavenDb, but I can tell you that it is a JSON based document storage framework.
Not to confuse the situation (go with SQLite, SQL Server Express LocalDB, or SQL Server Compact Edition), but there are other embedded / local databases out there, some are relational others are object-oriented:
Embedded Firebird
db4o
VistaDb
SharpHSQL
Berkeley DB
Eloquera
SiaqoDb
Not all of these are free. SQL / LINQ / in-proc support differs across them all. This list is just for curiosity.
There is now also Karvonite, however the code gallery link is broken. When it's live again I'll be looking into this one for WP7 development.
I'd recommend SQLite. We are using it for almost all of the apps we develop where I work.
It's small and compact. It does require a DLL to be in the app directory, but you don't have to have other software installed like Access or SQL Server. Also, as stated by danielkza below, "SQLite is public domain, so you don't have to worry at all about licensing." That can really make a big difference.
You can use System.Data.SQLite or csharp-sqlite to access it in a C# app using the same methods as that of SQL or OleDB.
You will also need an application to edit/manage the database. The best one in my opinion is SQLite Studio. Here are a couple more:
SQLite Admin
SQLite 2009 Pro (bottom of the page)
Update - 7/25/11 - More SQLite apps (question here on SO)
Here's more on SQLite:
SQLite on Wikipedia
Companies that use SQLite
Custom Functions:
As an addition, if you are looking in the SQLite Core Functions and don't see one you like, you can create your own custom functions. Here are a couple of examples:
From SOAnoter example
Firebird embedded can be a good choice
The embedded version is an amazing variation of the server. It is a
fully featured Firebird server packed in just a few files. It is very
easy to deploy, since there is no need to install the server.
There is some very good dot net drivers
SQL Server Compact if you want to use the official microsoft solution. This has the advantage of being able to use replication with SQL server if you need that sort of thing.
SQLite if you want to somthing very simple small and free. This is what android uses for it's internal databases so it is very well supported and there are very good .NET bindings available.
One distinct advantage of SQLite is that it is cross-platform. So if you wanted to port your application to Mono.NET then you wouldn't have any modifications to make to the database implementation.
I do not like MS Access for this solution but a lot of people have included it in their answer. It is limited due to the proprietary format and platform dependence. It does have it's advantages though. You can manipulate data easily if you have a copy of MS Access, you can build queries graphically and create macros. You can easily integrate it with the rest of MS Office.
Out of all these SQLite would be my recommendation due to it being so compact, well documented and supported by a growing army of fellow developers regardless of platform.
EDIT
I realized that there is another option that everybody here forgot to mention
So long as you don't need relational tables you could use CSV file read as a dataset via ADO.NET. (More of a lulz suggestion than anything else but would be suitable in some cases and doesn't require additional libraries for a MS deployment.
If you are building a project with .NET 4.0.2 or greater and want embedded database support, consider SQL Server Express LocalDB.
It's a relatively new addition to the Express family that features a smaller installation footprint and reduced management overhead (when compared to other editions of Express), yet it maintains the programmability aspects of SQL Server. That is, unlike Compact Edition, LocalDB does not require the installation of a separate ADO.NET provider to communicate with SQL.
See the following for more details:
SQL Express v LocalDB v SQL Compact Edition (MSDN Blogs)
SQL LocalDB vs SQL Server CE (Stack Overflow)
what about http://en.wikipedia.org/wiki/NoSQL_(RDBMS) ?
in particular MongoDB for .Net
http://www.mongodb.org/display/DOCS/Home
You could use Sql Server Express Edition as its free and is equally powerful until and unless you want functionality like mirroring etc. Have a look at this.
I've used db4o with success.
File based, large community, simple to use.
http://www.db4o.com/
Licensing Details
Free General Public License db4o is licensed under the GPL by default.
The GPL license is ideal if you plan to use db4o in house or you plan
to develop and distribute your own derivative work as free software
under the GPL as well.
Commercial License A commercial license is required if you want to
embed db4o in a commercial non-GPL product. Commercial licensees gain
access to premium services and support.
An alternative that hasn't been mentioned if you don't require it to be a free database is VistaDB. It's all managed code, provides tons of features for an embedded database, and offers pretty good performance. A pretty good bridge between SQL CE and SQL Server Express since the majority of your VistaDB stored procedures will run without modification in SQL Server Express. I've been pretty pleased with customer service at this point as well. I've been using it at work. No services to start. An empty DB is around 1MB and the DLL is pretty lightweight too. Has ADO.NET providers and such things. I liked it a good bit.
VistaDB
SQL server Compact Edition best as it is free and Light in Size and integrates Well
SQL Server Express or MS Access
I am developing a small web application,Its data size is constant.
i.e data dosent grow with date/user.
I would like to know if I can use Oracle Express for this application.
http://www.oracle.com/technology/software/htdocs/xe_lic_prod.html
Any use of the Oracle Database Express Edition is subject to the following limitations;
1. Express Edition is limited to a single instance on any server;
2. Express Edition may be installed on a multiple CPU server,
but may only be executed on one processor in any server;
3. Express Edition may only be used to support up to 4GB of user data
(not including Express Edition system data);
4. Express Edition may use up to 1 GB RAM of available memory.
So I would say, yes.
Does Oracle enforce these limits themselves? If not, how to limit the instance to run on only one CPU?
I think the limitations of Oracle are pretty deep. My experience with Oracle shows that they make money selling consultancy, and to do this they don't document their products. Expect to have a really though time if you want to do a non-default install or some fancy configuring.
Why not choose:
MySql, MS SQL Express or Postgre SQL ?
They are all free and have less limitations. If you develop your site using ASP.NET or Java or PHP all of these make sense. Postgre SQL is probably one of the strongest free database engines out there.
If you want to be really cool and flexible, use an ORM like (N)Hibernate or Linq. This will abstract the database you use, so you can easily change databases later on.
Without knowing the details of all the things you require my response will reflect that.
To name a few:
1. How many users will be connecting into this database?
2. Will it be CPU or IO bound system?
3. What DB features do you need?
Oracle Express will most likely handle your vague CURRENT needs. The issue you will most likely run into first is if your data grows beyond 4GB. I wouldn't assume your data will stay constant, few things stay constant. The pain of dealing with purging data every time you hit the 4GB data limit or having to move data to a new database is not worth the FREE marketing hook that got you to use it in the first place. If you don't plan to ever pay for an Oracle license you might be better off using an open source database such as PostgreSQL or even MySQL that won't have artificial limits placed on the software and who's license will always be free. Personally I would go with PostgreSQL.
I find Oracle Express a nice tool to get a quick install of Oracle on my laptop to learn with. I wouldn't use it for anything in production though many people probably do.
Those are my thoughts without knowing all your requirements.
And yes Oracle enforces the limitations stated previously by Thilo in the software.