Database Design
- Design is one of the most important aspects of this class.
- The author breaks this into three different types
- Design from existing data (Ch 3-4)
- Design for a new system (Ch 5-6)
- Redesign of an existing system. (Ch 8)
- This includes
- Proper tables/table structure
- Relationships between tables
- Proper constraints on data
- If you get it wrong
- Queries may be overly complex
- The database may be exceptionally slow.
- You may lose data.
- But we know this, we have been designing programs!
What you need to learn
- I sort of don't like this section, but what the heck.
- It breaks the world into
- Knowledge Worker - Someone who uses a db to produce reports, mine for data, ...
- Programmer - Someone who builds applications that use the database
- Database Administrator - Someone who designs, constructs and manages the database.
- This is nice, but Knowledge Workers should not be in the class.
- And programmers and DBAs should know what is going on.
- And if you are in a small company, you are likely to be all three.
- Look at the chart on P 20 - You need to read the entire book, cover to cover!
History of Databases
- Flat files, managed by the application.
- About '73, some commercial data base products were developed.
- '70. E. F. Codd published a paper on using relational algebra in databases.
- At first this was too theoretical for use, but now it dominates.
- Look at page 22, 7th paragraph, "The 1977 ..."
- The 80s saw the rise of many relational databases.
- This includes products from Oracle and IBM
- Personal database systems were also on the rise.
- Microsoft charged in during the 90s and killed all of the personal DBMS.
- There have been attempts at building Object Oriented DBMS, but htis sems to have died out.
- The current push is driven by the internet
- XML is becoming a standard for information interchange.
- Some big data companies are using NoSQL databases. (Ch 12 if we get there)