Get an introduction to RDBMS and how Java leverages it.
- [Instructor] Before we get too deep into working with JDBC, I want to spend a little bit of time and talk about Relational Database Management Systems, and why they are so important to application developers today. A little bit of brief history about relational databases that I want to talk about. The term relational database, was actually coined by Edgar Codd in the 1970 paper titled "A Relational Model of Data for Large Shared Data Banks." And he created this while he work for IBM.
Now, this was developed originally by IBM at San Jose's research facility. And this was really the beginning of what became databases. IBM would eventually begin developing System R at that same facility. Now, Larry Ellison, of Software Development Laboratories, soon to be Relational Software, Inc., mimicked most of the RDBMS, except for the error codes from System R, and created a product called Oracle Database.
They were the first to market. Now, IBM didn't release its commercial version, DB2, for several years. And if you've ever followed anything in the software world, especially around databases, you know where Oracle is. IBM's still there, but Oracle definitely has a lion share of the market with large database deployments. Now, Codd's paper, that he wrote at IBM, "A Relational Model of Data for Large Shared Data Banks," was developed at IBM. And out of this paper, came the so-called 12 rules, Codd's 12 Rules.
Now, really, there's 13, but we call them Codd's 12 Rules. Now, today, no single RDBMS implements all of his rules. But part of his paper yielded the concept of normalized databases and normal form. BCNF, or Boyce-Codd normal form, was a result of the work after the paper, on a stricter version of third normal form. And it's kind of where his name continues to grow today. A Codd's theorem, dealing with the quality of relational algebra, and relational calculus, is named after him as well.
So it definitely has a name in the database community that continues to grow. Now, I do think it's only fair to briefly talk about NoSQL databases. And I will be remise if I didn't at least mention him, especially in today's market, especially with cloud computing. Relational models in this set have significant issues that NoSQL has risen, especially in dealing with globally distributed data, and where Atomic operations become difficult, if not impossible.
Now, I would argue, that both relational and NoSQL databases have their place in the market, and ultimately the market would still agree. Now I want to give you a little bit of a disclaimer here, I work for a company that is the premier vendor for an open source top 10 NoSQL database. But the fact is that, however, there are more RDBMS systems in the top 10 every month, at least up to the time of this recording, than there are NoSQL versions.
There are, however, many signs of some changes to that top 10 list, but I don't think RDMS is going away anytime soon. Now this course will focus on RDBMS only. Know that both are valid, useful, and important to today's developers. And really, it comes down to knowing your Use Cases. RDBMS excels at data that has relations inherent to its storage. And if you need Atomic transactions, you really need an RDBMS.
Now, NoSQL databases excel in distributed systems, especially where the distance between clusters becomes part of the problem, because we no longer worry about ACID transactions or Atomic operations, we start looking at eventual consistency. Again, both have their place, and really, it comes down to their Use Cases. But for this course, we're going to focus on RDBMS.
- Deciphering JDBC terminology
- Using containerized PostgreSQL
- Creating, reading, updating, and deleting data
- The Repository pattern
- Using stored procedures
- Ordering and limiting results
- Transactions in JDBC
- Handling exceptions