The foundation of every database application is its database design, a.k.a. its data model. Having a good database design is the primary driver in being able to both achieve good performance, as well as adapt to changing requirments. A good database design a) fits the business requirements, and b) follows sound relational principles. Developing a design that fits the requirements mainly involves experience and creativity. Following sound relational principles requires professionalism, i.e. understanding the roots of the relational database profession, and not shying away from learning a bit of set-theory and formal logic. During the talk we’ll discuss a couple of the major principles in this area and illustrate them with examples.

Why Layered Software Architectures Do Not Scale Well:

Layered software architectures come with a huge overhead in the area of cpu's required on both application server and database server. Many architects, designers and developers are unaware of the extent of this overhead. Re-architecting your application to get rid of this overhead, enables orders of magnitude of speedups (think 10X, 100X). We see this daily in our jobs in the Real-World Performance Group. In this talk we will explain the root-causes of the inefficient use of application and database servers by layered software architectures. And discuss an alternative way of architecting your next application.