May
26
2012
I and my team recently managed the development of a huge database with Oracle. The same database already exists and successfully lives thanks to Firebird SQL.
The main goal of this development is the creation of a cross-platform application, able to work both with Firebird SQL and with Oracle at the same time.
We reached the goal after a lot of headache and frustration due to the subtle, and often incredible, differences between the two platforms. In this post I list the main differences we faced to. The next table summarize the major topics, this topics will be better discussed in a next post.
This analysis is not intended to be exhaustive and general for all types development. This comparison is based on the experience of a team that reaches great results following the "best practices" in designing a Firebird SQL and expects similar results, and possibly similar winning strategies, in developing with Oracle .
Topic
|
Oracle 11g
|
Firebird 2.5
|
Installation |
Cumbersome with a lot of unexpected incidents |
Simple and straightforward |
Resource eating |
As much RAM as possible
A lot of services running |
Minimal, proportional to DB size
Two services running |
Logs |
Widespread on the machine
Mainly non human readable |
One log for all |
Documentation |
Huge |
Not well structured |
Support form the community |
A lot of discussion forums and blogs
Low quality
Difficulties to find the right solution due different approaches and philosophies |
Sparse specific forums
Great support from Firebird enthusiasts |
Empty strings |
Automatically transformed to NULL |
Differentiation of empty strings and NULL strings |
INTEGER |
Automatically converted to NUMBER(38) |
INTEGER |
NULLs in expression |
NULL operators gives NULL results
String CONCATENATION has different behaviour: NULL treated as empty string |
SQL-92 Compliant: NULL operators gives NULL results |
Stored procedure as Tables |
Possible with "FROM Table()" construct |
Possible with "FROM" construct |
SELECT INTO with empty result set |
Fails |
Processed with NULL |
IF EXISTS() |
Non present. Workaround with tricks (for loop) |
Present |
SELECT FIRST SKIP or SELECT ROWS |
WHERE ROWNUM
Due to the prefiltering effect of the where clause, and odd solution should be used:
select * from (select .... order by) where rownum |
SQL-92 compliant |
SELECT COALESCE() with no rows |
Returns empty result set |
Executes the COALESCE |
Index on Foreing Keys |
Explicit creation required |
Automatically created |
CONTAINING |
Workaround: upper(filed) LIKE upper('%pattern%') |
Native |
Apr
24
2010
NKI41.com - the new official website of Noriyuki Haga, the awesome rider of Ducati in the SuperBike world championship, is online.
The new official website shows a new, fresh and immediate layout, it's rich of real time news about the events and the results, a lot of pictures from the current and previous championships, videos and detailed info about the upcoming races.
Like for the previous version of website, the designer is DTDesign. In this version the Flash has been substituted by a CMS in order to allow fast and real-time update in contents. This technology is provided by IdeaTech by means of leading solutions in the field of web content management.
IdeaTech is continuously working in the deployment of solution allowing fast response, high load, good-looking and high availability.
Stay tuned!
Feb
26
2009
I just read this post in which the author depicted the main differences between works involving static environments, like accountants management, in which the way of making things changes slowly and more dynamic environments, like IT related areas, in which things change terribly faster.
Reading this I realized what I recently thought about the continue and strong knowledge process I need to face to in my everyday work and I put myself a question: would I like to live without continuously learning new things?
In last few month I become aware of one big truth: I'm not happy at night if during the day I didn't learn something new.
I suppose that this is due mainly to two factors:
1. I'm forced to learn new things every day, because technologies and markets move faster and faster and the knowledge must run ,at least at the same speed. Any IT professional is on the cutting edge of the technology and has to remain on the edge in order to offer excellent products.
2. I physically require to learn something new every day. My soul and my brain ask this.
The first is an external conditioning, the second is a condition imposed by my way of being. These two penetrate mutually in such a strong way that I can't decide which of the two is the independent cause: is my soul that makes me "decide" to become an IT professional or is the IT market that addicted me to such an high rate of changes and making me unable to live without continuous improvements?
I suppose, and I like to think that, neither the first nor the second is the unique independent cause, but both com-penetrates in making me like I am.
I also realized that is really difficult to me working on repetitive duties (sometimes this is necessary even in IT activities) without giving up to the seduction of suspend my tasks and start exploring new solutions and paths in order to find optimized and more efficient ways of doing the same things.
This is good because improves my abilities and my background, but it is also a doom because it continuously train my brain and make me addicted to a continuous learning process.