#OTNTourLA, Ecuador

The last leg of my OTN LA Tour was Ecuador. It was already interesting enough because of the altitude of Quito: about 3 km! I am not good with high places… But it became even more interesting when we learnt the news about the erupting volcano…

I arrived to Quito on Sunday evening and on the way to the hotel we had a chance to see the active volcano but unfortunately we were not able to stop and take photos. The first evening for me was simply a running nose, one of the symptoms you might get due to the altitude. I was a bit afraid the migraine would hit and I kept drinking a lot of water. The next morning I was very fine: no running nose, no headache. The conference was on Monday and Tuesday and luckily I had some free time on Monday so I was able to attend a fantastic sightseeing tour organized by my friends Paola Pullas and Soraya Reinoso. I visited both the Equators: the historical and the GPS measured. I saw the statue of Virgin Mary on top of the “little bread” mountain and visited the old town.

This conference only had two tracks which guaranteed us a good number of attendees in both parallel sessions. My first session was about Data Modeler and comparing functionalities. The room was quite crowded and the audience was extremely active. I enjoyed that a lot! My second session was 15.30 in the afternoon. The room was quite full again but I could see that the audience was getting a bit tired already after the long two days, just as I was. But they did not let me down: still plenty of questions and very active participations for guessing my number. The one who guessed the right number got my new book, signed ;-)

After the tense day (8.00-19.00!), Paola and her team invited us speakers for a wonderful dinner in a restaurant located on the top of the “little bread” mountain. I was back at the hotel around midnight and my alarm rang at 3.30 to make sure I will make the taxi to the airport at 4.30 to start my long journey home: Miami, London and finally Helsinki….

#OTNTourLA, Panama

The fourth country on my OTN LA Tour: Panama. It is hot and moisture and very friendly. In Panama I gave three talks back to back: designing databases, reporting and comparing. In three hours everything important about Oracle SQL Developer Data Modeler! None of my audience was using Data Modeler but they promised to start using it. And why would they not: it is an amazing product and free of any costs!

The venue for the conference was a hotel in a thirteenth biggest mall in the world. Very interesting. I forgot to ask the number of attendees but I did have a good amount in my classes so I was very happy with the numbers, once again. Great conference, good food and wonderful people.

After the conference we had a nice dinner in a restaurant specialized in Panamanian food and we saw a dance performance by local dancers.

Now some rest and next stop will be Ecuador… Let’s hope no issues with volcanoes.

#OTNTourLA, El Salvador

The third leg of my OTN LA Tour was El Salvador. This might be the most beautiful country I have ever visited. Unfortunately my visit here is very short and I had the chance of seeing this beautiful country only through the window of a taxi.

The event was held in the most beautiful venue with beautiful rooms and even a swimming pool. There were a little fewer attendees than in previous countries but I still had a very good audience in all my three presentations and a lot of good questions and conversation. I did have a wonderful day, again!

Thank you Oracle User Group in El Salvador and thank you OTN and the ACE Program! Now packing and next to Panama…

#OTNTourLA, Guatemala

I am so impressed with these user groups in Latin America! Being honest I was not expecting them to be so organized and the events to be this great. And please do not ask me why I though like that, I do not know. I was thinking Mexico is an exception because it is big etc but now in Guatemala I experienced the same: extremely well-organized event with top quality content. I am so happy and privileged to be part of this wonderful tour!

I arrived to the airport of Guatemala City on Sunday morning and Julio from user group was waiting with the most beautiful roses. I felt immediately extremely welcome. At the hotel room we had a nice speaker gift waiting for us: coffee (of course), local sweets, a beautiful pen and a bottle of local alcohol. All packed in a beautiful gift bag made in Guatemala. AND a personalized booklet telling all the important details about Guatemala and the event. Even my sessions were highlighted so it was easier for me to read the schedule.

In the afternoon I received a message from my friend Deiby that he would like to see and go for a dinner before the event that will be tomorrow. We had a dinner in a nice local restaurant eating local specialities. And then I was totally ready to sleep.

In the morning Deiby picked us up from the hotel at 7 and we drove to the conference venue. My first presentation (Reporting with Oracle SQL Developer Data Modeler) was at 8:40 and the room was literally packed: they brought at least 20 extra seats and still some people were standing. My next session was at 12:00 (Comparing designs and databases with Oracle SQL Developer Data Modeler) right before the lunch. The room was again really packed. The last session (Database Design with Oracle SQL Developer Data Modeler) was the last session before closing session and I spoke in the biggest room. I was very happy after all my sessions because I felt my audience liked them and learned new things. I really felt it was worth all the travel. Thank you so much for attending and I hope my feeling is right and you liked my sessions.

At the end of the day there was a session for audience to take pictures with us and ask for autographs. To my surprise they also wanted pictures with me and they wanted my autographs. I do not think I have ever experienced that in such a big scale.

After the  event the user group took us for dinner and to play some golf. That was fun!

Thank you everybody I had a wonderful day!

Now packing and heading to El Salvador at noon… After all the fantastic hospitality and amazing events in Mexico and Guatemala I am really curious to see the next stops.

#OTNTourLA, Mexico

My first leg of the #OTNTourLA is now over. The event was held in a local university (HUGE university!) and I must say I do not often see this well-organized events! Thank you ORAMEX and UVM Sede Coyoacan!

I was told that there were more than 1000 registered attendees and more people were still asking if they could attend. I do not know what was the final number of attendees but I had a full house for my first presentation (Database Design with Oracle SQL Developer Data Modeler) and about 2/3 of the room for my second presentation (Reporting with Oracle SQL Developer Data Modeler). I had a bad migraine the whole day so my apologies if I was not 100% myself but I hope nobody noticed that. Despite of the headache I had a wonderful day and I am so glad I accepted the invitation from my friend Francisco to attend also the Mexico event of this tour! I had a wonderful audience and people were very active with excellent questions! And Mexicans do speak excellent English! Thank you so much for attending my session! I hope you learned new things in my sessions and please do not hesitate to email me if you have more questions. Congratulations, Paola, for winning the book!

Thank you MEXORA for taking such a good care of me! All the transportations, the wonderful dinner last night etc.

Today is a day off and my Mexican friend Rene Antunez has kindly volunteered to show us a little bit of Mexico, including the pyramids. This will be a great day. Tomorrow off to Guatemala…

I would be very happy to be invited to Mexico again :-D



On my way to Mexico for the OTN LAD Tour

Here I am at Heathrow airport in London waiting for my flight to Mexico City where my OTN LAD Tour starts. Well, waiting is a mild word: I have 8h wait in London :-) and then more that 11 hours to fly to Mexico City. But I am not complaining! Having a nice mushroom soup and champagne (they ran out of sparkling wine in this lounge and serve champagne today ;-) ) and the wi-fi is working. I should land to Mexico City at 22.05 this evening. In the morning I will be picked up at 8.00 for the conference. I am really looking forward to it! I only hope I am not too tired after my more than 24h trip and the 9 hour jet lag :-)

See you soon!

  • Heli

Recognizion for a DB Designer, FINALLY!

Finally the work of a database designer will be recognized! Oracle has announced the Oracle Database Developer Choice Awards nomination and one of the categories makes me very, very happy: DB Design.

It has been too long that the work of a database designer has been ignored. If you know a great database designer, somebody who has been speaking up for the importance of database design even in bad times or somebody who has been helping you with database designing, go and nominate him/her NOW: https://community.oracle.com/community/database/awards

Thank you Oracle, for understanding the importance of database designing and promoting it!

Preparing for the OTN LA Tour

Next week I will pack my bags again and head to the OTN LA Tour. I will visit five countries:

Mexico 14/08
Guatemala 17/08
El Salvador 19/08
Panama 21/08
Ecuador 24-25/08

Please see these pages to learn more about the tour: https://community.oracle.com/community/other-languages/portuguese/otn-lad-tour/

I have never been to LA so this will be an interesting trip to me. I was also told that there will be a lot of University students in our sessions. That will be so interesting!

Next week I will know more!



How to define a PK using Data Modeler?

Primary Key (PK) identifies uniquely each row in a table. There can never be two tuples with same values in PK.

There are two ways of defining a PK: a natural key or a surrogate key. I would say that if you can find a natural key that is always better. But it is not always possible and therefore we can also use surrogate PKs. Surrogates are usually sequence numbers that has no meaning to the business people, the end users.

Let’s have an example of an entity for all the users in a company.



1. Defining a natural PK

What I want is that there will never be more than one user with the same username. If this means that there can NEVER be two with the same username, I would define the PK like this:


You can see the PK definition from Unique Identifiers tab:


And by clicking the Properties button (XYZ and a pen) you can see and edit the properties for this unique identifier.

You can for instance change the name


Or see what attributes or relationships are involved in this PK. You can add or remove attributes or relationships to/from the PK using the arrows pointing to right and left. And you can change the order of the PK elements using the arrows pointing up and down.


If the requirement would be that there can never be two users at the same time with a same valid username I might think a bit. If I am sure that a pair (Username, Valid) would be enough as a PK, it means that I can only have max two users with the same Username: one with Valid=true and another one with Valid=false, I could define that as the PK, but what happens when the second one needs to be disabled eg. Valid changed to false? Then I would have two tuples with same values in Username and Valid, that would not work because that is my PK. So having a PK with just Username and Valid would not be quite smart. I could also use Created date in PK but would that be smart? No. Having a PK (Username, Valid, Created) would help me to disable a username even though there is already another of the same Username disabled or adding the third user with the same Username but it would not guarantee that only one user would have that Username at a point of time. And that was exactly what the requirement was.

I could add BeginDate and EndDate as attributes:


But that would not help me because I could not use those attributes in the PK because I should be checking that the two rows are not valid at the same time, eg. comparing the BeginDates and EndDates for all rows having the same Username. Of cause I could check those attributes using PL/SQL and check that only one row is valid at a time but that is not a PK.

No wonder many people end up to the conclusion that the requirement means that there can NEVER be two users with the same Username :-) Then the PK (Username) would be sufficient.

But what if the requirement really is that there cannot be more than one at the same point of time? Then I would use surrogate as the PK and use PL/SQL (trigger) for checking the rest.

2. Defining a surrogate PK

There are two ways to define a surrogate PK: manually or automatically.

If I want to create it manually, I simply define an attribute for it and define it as the PK. My recommendation is that if this is the way you want to work, start by defining a Domain for surrogates and always use that when defining a surrogate PK manually. Otherwise defining a surrogate PK manually is done just like I explained earlier on Defining a natural PK.

You can also define a surrogate PK automatically. In entity properties enable Create Surrogate Key and when you engineer to relational model, this surrogate key and the surrogate column are created automatically.


If using surrogate keys is the preferred way of working for you, you might consider enabling that property so that the default would be Create Surrogate Key enabled.


Remember that you can define the naming standard for the surrogate key and the column created in Design Properties (right-click on the Design name and select Properties):


This was a quick look to PKs. A natural key is always the best and being able to define one you must know the requirements and understand them. If a natural key does not work, then a surrogate key is an option.


In June I attended my second KScope and as expected it was an excellent event! This year was even better than last because I had so many new friends I did not have last year :-)

The Kscope15 was held in Hollywood, Florida June 21-25.

On Sunday I attended the “Database Development for Cloud” session by Jeff Smith and Kris Rice. I also attended the speakers’ reception, welcome reception and a user group leader reception. After all that I was pretty ready to sleep, there it a 7h time difference to my own timezone :-)

On Monday I attended Tom Kyte’s session about SQL and Chet Justice’s session about “How to Model Your Data”. Then I gave my own session with a title “What’s New with SQL Developer Data Modeler” and gave away two copies of my new book. I had my two sons in the audience and their impression after the session was that I know “all” :-D Thank you for attending my session! After lunch I gave a couple of interviews. I was told that I am very natural in front of a camera, I could not disagree more :-) The General Session was the funnies ever! And next year we will go to Chicago for Kscope16! After the general session it was time for some mojitos in the Exhibition Hall. Then the ACE reception by the pool at one of the hotels near by and the networking events sponsored by OTN. Too bad I do not like beer because Jeff Smith organized an amazing beer tasking Networking Hopportunity event :-( Well, I still had fun :-)

On Tuesday I attended Kent Graziano’s “Introduction to Oracle SQL Developer Data Modeler” session and was one of the panelists at the Database Development panel led by Tim Gorman. In the afternoon I attended Michelle Kolbe’s session “Overview of Dimensional Modeling Principles Using Oracle SQL Developer Data Modeler” and Jeff Smith’s “Tuning with Oracle SQL Developer”. Then it was time for some drinks and food and tattoos on Tattoo Tuesday event. Then I had a meeting and a nice evening with friends. Thank you MindStream Analytics for your amazing hospitality!

On Wednesday I had plans to attend presentations by Pete Sharman, Alex Zaballa and Melanie Caffrey but I missed them because I had a busy morning meeting people and then helping Ashley Chen with the Data Modeler Hands-On-Lab. Several people showed up without their laptops so we decided that Ashley will handle the lab and I will do a demo for those without a laptop. I had so much fun! Thank you Ashley for letting me to be part of that! After the HOL I ran to the WIT roundtable where I was moderating one of the tables. Our topic was “Best Qualities of Female Tech Leaders”. I must say I enjoyed the conversation and based on the comments I heard afterwards so did the rest of our table. Thank you for attending and thank you for letting me to be the moderator! In the evening there was a White Party at Nikki Beach. My sons got tickets from Tom and Mel and we did quite a lot of shopping just for the party but just at the last minute we heard the age limit for the party was 21 and doh… No party for us (me and my sons). Instead we went for a nice dinner close to the party venue and early back to the hotel. I was kind of sad because I heard there was a lot of dancing involved the party and I simply love dancing :-( Well, you cannot always get everything :-)

On Thursday I slept a bit later and only attended the closing session and then some meetings afterwards.

A busy but wonderful week I must say! Thank you all those wonderful people who made this event happen: Natalie, Monty, Crystal, Lori, Mike, Opal, Sarah, Danny, Martin, Mia, Cameron, Lauren, Melissa and everybody else whose names I just do not remember right now because of my stupid jet lag ;-)

It was wonderful to be part of it and it was really great to meet so many friends again! See you next year in Chicago!


Get every new post delivered to your Inbox.