tag:blogger.com,1999:blog-59350442098088289542024-02-08T05:00:35.293-08:00The Helsinki Declaration (IT-version)About how database web application development nowadays has gone absolutely and utterly absurd.<br>
May 2008 - in Helsinki - a new approach for designing and implementing database web applications was presented. It was there and then declared to be "the only right way to build these kind of applications."<br>
(New visitors: start <a href="http://thehelsinkideclaration.blogspot.com/2009/03/start-of-this-blog.html">here</a>.)Toon Koppelaarshttp://www.blogger.com/profile/08153913435188725112noreply@blogger.comBlogger27125tag:blogger.com,1999:blog-5935044209808828954.post-13701387706656710272017-06-30T12:40:00.000-07:002017-07-01T00:27:26.592-07:00My NoPlsql versus SmartDB deep-dive presentation materials
For those who are interested here are my two slidedecks used in yesterday's deep-dive session at ODTUG, here they are in ppsx format which includes all the animations.
Part 1: Comparison between NoPlsql and SmartDB approach
Part 2: SmartDB, how to do it?
Also a pdf-version of both slide-decks:
Part 1+2 as one pdf.
Enjoy.
Toon
Toon Koppelaarshttp://www.blogger.com/profile/08153913435188725112noreply@blogger.com0tag:blogger.com,1999:blog-5935044209808828954.post-4296780252263957822017-01-16T06:03:00.003-08:002017-01-16T06:03:36.484-08:00The Relational Data Model
Mid-eighties. I was studying Computer Science. Little did I know back then that this thing called "The Relational Data Model" (RDM) would become huge in the IT-industry. The topic was still hot in academia at that time. My luck was that I liked those courses. Predicate Logic, Set Theory, Database Design, SQL. I aced them all. It was no surprise then, that I ended up working with Oracle software Toon Koppelaarshttp://www.blogger.com/profile/08153913435188725112noreply@blogger.com28tag:blogger.com,1999:blog-5935044209808828954.post-44484504401663809802016-09-26T02:44:00.001-07:002016-11-03T02:54:46.285-07:00NoPlsql vs ThickDB: which one requires a bigger database server?
Slides of my Oaktable World presentation held during OOW 2016 can be found here: NoPlsql vs ThickDB
And a recording of this talk: https://www.youtube.com/watch?v=8jiJDflpw4Y
Toon Koppelaarshttp://www.blogger.com/profile/08153913435188725112noreply@blogger.com11tag:blogger.com,1999:blog-5935044209808828954.post-50502420441287580582013-07-12T03:20:00.004-07:002013-07-12T03:20:50.629-07:00New post on semantic query optimization bugSee: http://tkoppela.blogspot.com/2013/07/semantic-query-optimization-gone-bad.html
Toon Koppelaarshttp://www.blogger.com/profile/08153913435188725112noreply@blogger.com0tag:blogger.com,1999:blog-5935044209808828954.post-82547252409655901182013-05-25T11:53:00.000-07:002013-05-25T11:53:00.371-07:00New blog with general Oracle database posts.Started Oracle database tidbits blog here. Toon Koppelaarshttp://www.blogger.com/profile/08153913435188725112noreply@blogger.com5tag:blogger.com,1999:blog-5935044209808828954.post-3571525615265523682012-09-30T12:49:00.003-07:002012-09-30T12:54:06.426-07:00Just attended this session here at Oracle Openworld:
Flexible Design and Modeling: Planning for Constant Change
Gwen Shapira - Senior Consultant, Pythian
Robyn Sands - Principal Member of Technical Staff, Oracle
Which was expressing the same message as the Helsinki Declaration does:
Create API's in the database layer and do not let outside software layers access tables directly.
It Toon Koppelaarshttp://www.blogger.com/profile/08153913435188725112noreply@blogger.com2tag:blogger.com,1999:blog-5935044209808828954.post-20720955332857019222011-11-22T02:24:00.001-08:002011-11-22T02:26:34.803-08:00"Triggers considered harmful", considered harmfulI know I should finish posting here on TheHelsinkiDeclaration... But in the meantime I decided to start a new blog dedicated on database triggers. It will be like TheHelsinkiDeclaration a documentation of a presentation I have been giving recently entitled "Triggers considered harmful", considered harmful.Toon Koppelaarshttp://www.blogger.com/profile/08153913435188725112noreply@blogger.com4tag:blogger.com,1999:blog-5935044209808828954.post-4958483630558853432011-08-05T05:40:00.000-07:002011-08-05T05:43:21.374-07:00Nice one:http://ora-00001.blogspot.com/2011/07/mythbusters-stored-procedures-edition.htmlToon Koppelaarshttp://www.blogger.com/profile/08153913435188725112noreply@blogger.com1tag:blogger.com,1999:blog-5935044209808828954.post-45551471353414391392009-09-07T12:09:00.001-07:002010-01-04T12:38:06.915-08:00Using pipelined table function as the UI API objectIn my previous post I've introduced you to an example WoD application page, and showed how the render-flow could be built in an Helsinki manner using a ref-cursor. The UI technology stack would call a stored procedure which in turn would return a ref-cursor. Inside the UI code stack all that needs to be done is fetch the rows from the ref-cursor (until %NOTFOUND), then close the cursor, and Unknownnoreply@blogger.com3tag:blogger.com,1999:blog-5935044209808828954.post-61967267571047284352009-06-16T07:00:00.000-07:002009-06-16T12:10:01.235-07:00Continuing with part 2 of the Helsinki presentationThe second part of my two-hour Helsinki presentation brings the message that in order to avoid PL/SQL spaghetti when taking the "fat database" approach, one must employ a layered PL/SQL code architecture inside the DBMS. This means that UI-code, BL-code and DL-code should not be merged together inside single pieces of PL/SQL code blocks, but instead remain completely separated. Now, for UI-code Unknownnoreply@blogger.com8tag:blogger.com,1999:blog-5935044209808828954.post-48677994358940882982009-06-11T06:15:00.000-07:002009-06-11T06:18:33.776-07:00The Helsinki PlatformNice picture from "OraDude" showing the Fat Database, or Helsinki's first observation.Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-5935044209808828954.post-24853991924177529982009-06-06T09:37:00.000-07:002009-06-06T09:57:39.619-07:00Two weeks to go for ODTUGODTUG Kaleidoscoop 2009 is approaching soon. I'll be hosting two presentations.Fat Databases: a Layered ApproachThis will basically be the Helsinki Declaration talk, only crammed into just one hour. I'll probably skip the four observations and go straight to the WoD application and its code classification (DL, BL and UI-code). And close with a short demo by building a page (with Apex of course) Unknownnoreply@blogger.com3tag:blogger.com,1999:blog-5935044209808828954.post-46194279349926786022009-06-04T13:03:00.000-07:002009-06-04T13:18:02.502-07:00Rebound for database design?My fellow Oaktable member Robyn Sands posted something very "inline" with the Helsinki declaration. Good comments too.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5935044209808828954.post-89438439671154446102009-05-28T12:21:00.000-07:002009-05-28T13:00:54.222-07:00Resuming transmission...I've been busy lately: preparing papers and presentations for the upcoming ODTUG, presenting at Hotsos-revisited, and presenting at the Dutch DBA-symposium. All spare time went into these activities, and the Helsinki blog just had to wait in line. But now I intend to resume transmission over here again.A couple of weeks ago I received following comment on this blog:toon,Suppose we have a Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-5935044209808828954.post-33534560060595313212009-04-17T10:13:00.000-07:002009-04-24T05:33:59.447-07:00Helsinki code layers in the DBMSOk, let's continue with the second part of "The Helsinki Declaration". That would be the part where I zoom in on the DBMS and show you how best to do this database centric thing.We have seen that the DBMS is the most stable component in everybodies technology landscape. We have also concluded that the DBMS has been designed to handle WoD application BL-code and DL-code. And current DBMS's are Unknownnoreply@blogger.com3tag:blogger.com,1999:blog-5935044209808828954.post-76595872460284674212009-04-12T03:37:00.000-07:002009-04-13T12:37:52.583-07:00People ask the wrong questionPeople who know me, know that I am enthusiastic about Apex. But I am certainly not an Apex expert. By far not. The DBMS is where my knowledge is. But because they know of my enthusiasm, I often get the question whether Apex is mature enough for building a critical or large-scale WoD application.I then (sigh and) reply by saying: "You are asking the wrong question."Pay attention please.In the Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5935044209808828954.post-72036746556465984292009-04-07T12:58:00.000-07:002009-04-11T12:12:36.374-07:00The Helskinki approaches to WoD application development[continuing from my previous post]In a very similar way as I did here for MVC, the Helsinki UI/BL/DL code classes can be mapped across the client, middle and data tiers too:What I do differently here compared to the earlier display of MVC mapping across the tiers, is that whenever the M is distributed across two tiers, I divide the M into BL and DL. The guideline of how to split up the M, is now Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-5935044209808828954.post-6533885189353973792009-04-02T12:28:00.000-07:002009-04-06T08:32:06.296-07:00Issues with current trendIn my last post I have introduced the code classification used by the Helsinki declaration (as opposed to MVC used by JEE):User Interface (UI) code: all code that creates UI and responds to events in the UI, the same as JEE's View and ControlData Logic (DL) code: all code that maintains data integrity constraints, a well defined subset of JEE's ModelBusiness Logic (BL) code: all other code, the Unknownnoreply@blogger.com10tag:blogger.com,1999:blog-5935044209808828954.post-28499887322402236922009-03-31T11:38:00.000-07:002009-03-31T11:42:42.219-07:00(slightly off topic) Chris Date event @DallasYou may want to check out this unique event.[will return to the declaration shortly]Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5935044209808828954.post-17779354828451109442009-03-28T08:14:00.001-07:002010-12-22T23:24:13.793-08:00Window-on-Data applicationsUp till now I have been focussing on technology. We have seen DBMS´s evolve, the web and n-tier architectures come into existence, Yafets prosper, and developer productivity go down the drain. I also spent some time discussing the Java/JEE bandwagon. And used MVC to discuss various technical application architectures. Ohhh, if only there were just technology. Life as an application developer Unknownnoreply@blogger.com13tag:blogger.com,1999:blog-5935044209808828954.post-33819561249482752662009-03-25T11:52:00.000-07:002009-03-26T12:54:31.152-07:00JEE and traditional MVC (Part 2)In the previous post I gave a high level introduction into the MVC design pattern. This pattern classifies all code that you write to implement a database web application, into three classes:Model codeView codeControl codeI also showed that within the JEE architecture code can be deployed to many tiers. In this post I will talk about alternative MVC approaches by looking at the amount of Unknownnoreply@blogger.com9tag:blogger.com,1999:blog-5935044209808828954.post-17910657132276114632009-03-21T08:53:00.000-07:002009-03-22T21:21:50.601-07:00J2EE and traditional MVC (Part 1)A short note to new visitors: this blog documents my vision on how to build database web applications. Normally I do this by presenting a two hour presentation know as "A Database Centric Approach to J2EE Application Development". First given at Oracle Openworld 2002. You can find the original paper here (it's the one titled "A First Jdeveloper Project"). Since the Mayday Miracle gathering in Unknownnoreply@blogger.com47tag:blogger.com,1999:blog-5935044209808828954.post-64306496058396581312009-03-18T09:25:00.000-07:002009-03-18T14:25:45.878-07:00The Helsinki declaration: observation 4So here is the last observation while looking back at 20+ years of (web) database application development. The fourth observation is about the required developer knowledge investment. How much time do you, as a developer, need to invest in learning and taking on the tools with which you can build database (web) applications.Similar to the DBMS (observation 1) it was real simple to learn the Unknownnoreply@blogger.com3tag:blogger.com,1999:blog-5935044209808828954.post-17103488476275862012009-03-14T01:30:00.000-07:002009-03-15T02:00:25.715-07:00The Helsinki declaration: observation 3 (Yafets)After observation 1 "we-do-not-use-the-feature-rich-DBMS", and observation 2 "we-are-still-delivering-UFIs-only-in-ways-much-more-complicated-than-we-used-to-do-so", let's move on to the third observation on 20+ years of database application development. As you will see, all observations are (of course) somewhat related. They each just emphasize a different symptom of a single shared underlying Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-5935044209808828954.post-69456712911852117482009-03-12T09:08:00.001-07:002009-03-12T10:06:05.496-07:00The Helsinki declaration: observation 2To illustrate the second observation, let's take a look at the following quadrant. It maps character-mode / GUI-mode applications against stateless / statefull underlying protocol.At the end of the eighties the bottom-left square, is were we were. Database applications were provided to endusers who were sitting behind a dumb character-mode terminal, 25 by 40 characters, maybe 25 by 80.The backendUnknownnoreply@blogger.com2